ZitatUnd wie mache ich z.b wenn er zu weit weg geht das der Timer dann abbricht ?.
Hast du einen Sekunden Timer oder einen Timer der startet und wenn der Timer endet ist der raub erfolgreich?
ZitatUnd wie mache ich z.b wenn er zu weit weg geht das der Timer dann abbricht ?.
Hast du einen Sekunden Timer oder einen Timer der startet und wenn der Timer endet ist der raub erfolgreich?
Hallöschen,
zunächst einmal zu meiner Situation:
Ich möchte das in einem Dialog alle eingegangenen Notrüfe aufgelistet sind.
Soweit weis ich alles,
jedoch muss man in diesem fall ja mit einem string arbeiten um den Namen etc anzuzeigen.
Das problem dabei liegt darin das ich dem string keine genaue größe geben kann, da sich der
string ja der Anzahl der Notrüfe anpassen müsste.
Hat jemand einen vorschlag wie ich das problem lösen kann?
if(DMArena[playerid] == 1)
{
SetPlayerPos(playerid,2621.1709,2328.0825,10.8203); // DM Arena Spawn
}
else
{
SetPlayerPos(playerid,298.7798,-1155.9940,80.9099); //Normaler Spawn
}
Falls nötig, findest du hier auch eine übersicht der Parameter.
bei if Abfragen must du immer mit == Arbeiten.
Wenn du die variable auf etwas setzen must, dann arbeite mit =
nur mal so am rande: braucht man um in deinem Script ein Zug zu fahren irgend ein Schein, z.b. Führerschein?
Du kannst den Motor mit NUM 1 starten
Diese Zeile sagt uns das:
if(newkeys == KEY_SUBMISSION && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
Wenn die Taste "KEY_SUBMISSION" gedrückt wird.
eine Liste der Tasten:
http://wiki.sa-mp.com/wiki/GetPlayerKeys
dort erfährst du das "KEY_SUBMISSION" für NUM 1 steht.
if(IsPlayerConnected(i)
bedeutet soviel wie "Wenn i Online ist."
if(!IsPlayerConnected(i)
bedeutet soviel wie "Wenn i nicht Online ist."
und da du möchtest das die Meldung kommt wenn i nicht online ist, must du mit ! arbeiten.
geh auf
kopier in das Leere Feld dort dein Script oder wenn möglich dein Motor System.
und klicke auf "Submit".
2. Möglichkeit:
oder wir arbeiten uns langsam zum Ziel^^
such mal nach dem Wort "Motor" und schau ob du irgend etwas nach Motorsystem findest.
Wenn ja schreibe es hier in den Thread mit
Mfg, Soniny
auch wenn es viele schon kennen. Mein Lieblingsvideo^^
Alles anzeigenOh Leute bitte...
ich erkläre euch mal kurz etwas
Der Callback OnGameModeInit wird dann aufgerufen, wenn der Server gestartet wird (also wenn das Gamemode geladen wird), zu diesem Zeitpunkt allerdings befinden sich 0 Spieler auf dem Server, also ist die Abfrage:
if(IsPlayerConnected(playerid))
Schonmal total sinnlos und die Schleife auch, da nichts da aufgerufen wird
Man schreibt das unter OnPlayerConnect und verwendet PlayerTextDraws und Aktualisiert dieses TextDraw mit SetTimerEx für einen Spieler....
mfg.
So weit hast du recht, es geht darum das dass Textdraw erstmal für die Spieler einzeln ist und das Textdraw dort definiert wird.
Das Textdraw selber soll logischer weise auch erst bei OnPlayerConnect angezeigt werden.
for(new playerid =0; playerid < MAX_PLAYERS; playerid++)
{
if(IsPlayerConnected(playerid))
{
new bankstring[256];
format(bankstring,sizeof(bankstring),"~g~Bank: ~w~%i",GetPVarInt(playerid,"Bank"));
StatistikBank[playerid] = TextDrawCreate(500.000000, 162.000000,bankstring);
TextDrawBackgroundColor(StatistikBank[playerid], 255);
TextDrawFont(StatistikBank[playerid], 1);
TextDrawLetterSize(StatistikBank[playerid], 0.350000, 0.899999);
TextDrawColor(StatistikBank[playerid], -1);
TextDrawSetOutline(StatistikBank[playerid], 1);
TextDrawSetProportional(StatistikBank[playerid], 1);
TextDrawUseBox(StatistikBank[playerid], 1);
TextDrawBoxColor(StatistikBank[playerid], 0x00000044);
TextDrawTextSize(StatistikBank[playerid], 605.000000, 0.000000);
}
}
das StatistikBank solltest du auch überall zu StatistikBank[playerid] machen^^
Ja, unter der Schleife... sonst hast du ja playerid nicht definiert^^
mach
StatistikBank
benutzerdefiniert
also:
StatistikBank[playerid], so zeigst du jedem Spieler sein individuelles Textdraw. (natürlich must du das [playerid] überall anpassen^^)
Dann musst du das aber auch ganz durchziehen mit playerid
for(new playerid =0; playerid < MAX_PLAYERS; playerid++)
sorry, das passier wenn man Copy & Paste mit "i" macht ;D
Wenn er eingesperrt wird setzt du z.b. die variable knastzeit auf 6 (6 Minuten)
Du fragst im Timer ab ob der Spieler eingeloggt ist und im Knast sitzt.
Wenn ja setzt du die variable immer -1 (weil der Timer 1 Minute geht und dann wieder neu los geht)
Wenn knastzeit jetzt auf 0 steht (also er seine Zeit abgesessen hat) holst du ihn aus dem Knast raus.
Unter OnGameModeInit kannst du kein Playerid verwenden. Das musst du woanders machen. Wie beispielsweise unter OnPlayerConnect.
Ist möglich, allerdings nur mit einer Schleife
for(new playerid =0; i < MAX_PLAYERS; playerid++)
if(strcmp(cmd,"/112",true) == 0)
{
new Float:x,Float:y,Float:z; //Du definierst die Variable x,y,z
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "[Funk] {FFCF00}%s Braucht die Feuerwehr.", sendername);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(IsAFeuer(i) || IsACop(i)|| PlayerInfo[i][pAdmin] >= 1337)
{
SendClientMessage(i, 0xFF9800FF, string);
GetPlayerPos(playerid,x,y,z); //Du holst die die position von "playerid"
SetPlayerCheckpoint(i,x,y,z,3.0); //du erstellst für "i" ein Checkpoint von x,y,z
SendClientMessage(playerid, 0xE4B900FF, "Du hast die Feuerwehr gerufen");
SendClientMessage(playerid, 0xE4B900FF, "Habe gedult die Feuerwehr ist unterwegs");
}
}
}
return 1;
}