Ok, dann wird der Timer gar nicht aufgerufen, das erklärt es.
Versuche es so:
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), bool:intarget;
for(new i = 0; i < sizeof(RobBot); i++)
{
if(playerTargetActor == RobBot[i][rob_ID] && Spieler[playerid][Team] == 2 && IsRobbing[playerid] == false)
{
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.");
intarget = true;
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] = i;
RobSek[playerid] = random(10)+30;
if(Rob_Timer[playerid] != -1) KillTimer(Rob_Timer[playerid]);
Rob_Timer[playerid] = SetTimerEx("RobTimer", 1000, true, "i", playerid);
intarget = true;
break;
}
}
}
}
if(intarget == false && Spieler[playerid][Team] == 2 && IsRobbing[playerid] == true)
{
//nicht anvisiert
IsRobbing[playerid] = false;
KillTimer(Rob_Timer[playerid]);
Rob_Timer[playerid] = -1;
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]);
break;
}
}
return 1;
}
void RobTimer(playerid)
{
printf("Timer aufgerufen: %d -> RobSek: %d", playerid, RobSek[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]);
Rob_Timer[playerid] = -1;
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(RobBot[RobbedBot[playerid]][rob_ID]);
RobbedBot[playerid] = -1;
}
return 1;
}