Hey Breadfisher,
ich hab ein Problem, dass ich komischerweise einfach nicht beseitigen kann.
Wenn ich ein Befehl mit Timer benutze, dann bekommt immer die falsche ID im Server die Informationen.
Z.B. wenn man /robbank eingibt. Der Spieler bekommt 5 Wanteds, und ein Timer ( SetTimer("Bankraub", 300000, 0); ) wird gesetzt. Nachdem die Zeit abgelaufen ist, wird ja der Public abgerufen. Und genau hier ist das Problem. Der Spieler, der die Bank ausraubt, bekommt keine Meldung darüber, dass die 5 Min vorbei sind und er die Bank ausgeraubt hat. Dafür bekommt diese Meldung entweder keiner, oder ein anderen Spieler ingame. Hier ist der Public, vielleicht könnt ihr mir sagen, was daran falsch ist:
public RobBank()
{
for(new i = 0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(BankRobberID[i] == i)
{
if(IsPlayerInRangeOfPoint(i, 17.0, 2309.1926,-8.5856,26.7422))
{
new string[256];
new price = 10000 + random(49999);
new sendername[MAX_PLAYER_NAME];
GetPlayerName(i, sendername, sizeof(sendername));
format(string, sizeof(string), "* %s hat es geschafft die Bank auszurauben. Geklaut wurden %d €!",sendername,price);
SendClientMessageToAll(COLOR_LIGHTBLUE, string);
PayLog(string);
SendClientMessage(i, COLOR_YELLOW, "Du hast die Bank erfolgreich ausgeraubt!");
format(string, sizeof(string), "~w~ Bank ausgeraubt ~n~ ~b~+ %d EUR",price);
GameTextForPlayer(i, string, 5000, 1);
DD_GivePlayerMoney(i, price);
BankRobber = 999;
BankRobberID[i] = 999;
return 1;
}
}
}
}
return 0;
}