Code
void BotTimer()
{
for(new i = 0; i < sizeof(RobBot); i++)
{
if(RobBot[i][RobSperre] > 0)
{
RobBot[i][RobSperre]--;
}
}
for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
{
new playerTargetActor = GetPlayerTargetActor(playerid);
for(new i = 0; i < sizeof(RobBot); i++)
{
if(playerTargetActor == RobBot[i][rob_ID] && Spieler[playerid][Team] == 2 )
{
new playerWeapon = GetPlayerWeapon(playerid);
new keys, updown, leftright;
GetPlayerKeys(playerid, keys, updown, leftright);
printf("Spieler %d zielt auf Actor %d", playerid, i);
if(!ActorHandsup[RobBot[i][rob_ID]] && playerWeapon >= 22 && playerWeapon <= 42 && keys & KEY_AIM)
{
printf("Actor %d hat eine Sperre von: %d", i, RobBot[i][RobSperre]);
if(RobBot[i][RobSperre] > 0)
{
printf("Robbing: %d", IsRobbing[playerid]);
if(IsRobbing[playerid] == false)
{
new Sperre[145];
format(Sperre, sizeof(Sperre), "Dieses Geschäft kann erst wieder in %02d:%02d ausgeraubt werden.", RobBot[i][RobSperre]/60, RobBot[i][RobSperre]%60);
SendClientMessage(playerid, COLOR_RED, Sperre);
}
printf("Beende.");
break;
}
else
{
printf("Raube Actor %d aus.", i);
ApplyActorAnimation(RobBot[i][rob_ID], "SHOP", "SHP_HandsUp_Scr",4.1,0,0,0,1,0); // Handsup
ActorHandsup[RobBot[i][rob_ID]] = true;
//ab hier startet der ROb
IsRobbing[playerid] = true;
RobbedBot[playerid] = playerTargetActor;
RobSek[playerid] = random(10)+30;
Rob_Timer[playerid] = SetTimerEx("RobTimer", 1000, true, "i", playerid);
}
}
}
else if(playerTargetActor != RobBot[i][rob_ID] && Spieler[playerid][Team] == 2 && IsRobbing[playerid] == true)
{
//nicht anvisiert
IsRobbing[playerid] = false;
KillTimer(Rob_Timer[playerid]);
new string[128];
format(string, sizeof(string), "Du hast %d$ ausgeraubt.", RobMoney[playerid]);
printf("string = %s", string);
SendClientMessage(playerid, COLOR_LIGHTBLUE,string);
GivePlayerMoney(playerid, RobMoney[playerid]);
RobBot[i][RobSperre] = 60;
printf("Actor %d hat nun eine Sperre von: %d", i, RobBot[i][RobSperre]);
RobMoney[playerid] = 0;
RobbedBot[playerid] = -1;
ActorHandsup[RobBot[i][rob_ID]] = false;
ClearActorAnimations(RobBot[i][rob_ID]);
}
}
}
return 1;
}
void RobTimer(playerid)
{
new sekMoney = random(100)+10, moneyText[128];
RobSek[playerid]--;
RobMoney[playerid] += sekMoney;
format(moneyText, sizeof(moneyText), "~g~%d$", RobMoney[playerid]);
GameTextForPlayer(playerid, moneyText, 988, 6);
if(RobSek[playerid] == 0)
{
//RobBot[RobbedBot[playerid]][RobSperre] = 60;
IsRobbing[playerid] = false;
KillTimer(Rob_Timer[playerid]);
new string[128];
format(string, sizeof(string), "Du hast %d$ ausgeraubt.", RobMoney[playerid]);
SendClientMessage(playerid, COLOR_LIGHTBLUE,string);
GivePlayerMoney(playerid, RobMoney[playerid]);
RobMoney[playerid] = 0;
RobBot[RobbedBot[playerid]][RobSperre] = 60;
printf("Actor %d hat nun eine Sperre von: %d", RobbedBot[playerid], RobBot[RobbedBot[playerid]][RobSperre]);
ActorHandsup[RobbedBot[playerid]] = false;
ClearActorAnimations(RobbedBot[playerid]);
RobbedBot[playerid] = -1;
}
return 1;
}
Alles anzeigen
Wenn ich nur einen Bot habe, dann funktioniert das Script. Füge ich jedoch weitere hinzu, so funktioniert das Ganze nicht und mir wird das geloggt:
[13:04:04] Spieler 0 zielt auf Actor 0
[13:04:04] Actor 0 hat eine Sperre von: 0
[13:04:04] Raube Actor 0 aus.
[13:04:04] string = Du hast 0$ ausgeraubt.
[13:04:04] Actor 1 hat nun eine Sperre von: 60
[13:04:05] Spieler 0 zielt auf Actor 0
[13:08:13] Spieler 0 zielt auf Actor 1
[13:08:13] Actor 1 hat eine Sperre von: 0
[13:08:13] Raube Actor 1 aus.
[13:08:13] string = Du hast 0$ ausgeraubt.
[13:08:13] Actor 2 hat nun eine Sperre von: 60
[13:08:14] Spieler 0 zielt auf Actor 1
[13:08:15] Spieler 0 zielt auf Actor 1
Also beendet der Rob direkt beim zielen.
push