Hallo,
habe heute einen relativ simplen AFK Befehl erstellt. Es soll der Player in ein ( von mir angefertigtes ) Interior geportet und gefreezt werden solange wie er AFK ist damit er in der ZEit nicht getötet wird etc. Das funktioniert auch schon, jetzt wollte ich aber noch einen schutz vor Abus einbauen undzwar das man wenn man einmal /afk gegangen ist 3 Minuten warten muss bevor man /back bekommt. Leider funktioniert der Timer nicht ganz und ich frage mich wieso hier mal der Code:
if(strcmp(cmdtext, "/afk", true, 10) ==0)
{
if (IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid,0xFF0000FF,"Du sitzt in einem Fahrzeug!");
}
if (!IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid,COLOR_GREEN, "Du bist jetzt AFK, benutze /back um wieder am Spiel teilzunehmen.");
GetPlayerName(playerid,name,sizeof(name));
format(str,sizeof(str),"%s (%d) Ist jetzt AFK",name,playerid);
SendClientMessageToAll(COLOR_YELLOW, str);
TogglePlayerControllable(playerid,0);
SetPlayerPos(playerid,-426.5869,20.3248,51.4453);
return 1;
}
}
if(strcmp(cmdtext, "/back", true, 10) ==0)
{
if(back[playerid] == 0)
{
back[playerid] = 1;
backtimer[playerid] = SetTimerEx("healer",60000*3,0,"i",playerid);
SendClientMessage(playerid,COLOR_GREEN, "Du bist jetzt vom AFK Modus zurück!.");
GetPlayerName(playerid,name,sizeof(name));
format(str,sizeof(str),"%s (%d) Ist jetzt vom AFK Modus zurück!",name,playerid);
SendClientMessageToAll(COLOR_YELLOW, str);
TogglePlayerControllable(playerid,1);
SetPlayerPos(playerid,1191.1719,-906.5045,48.0625);
return 1;
}
else
{
SendClientMessage(playerid, COLOR_RED, "Du kannst erst nach 3 Minuten wieder aus dem AFK Bereich herraus!");
}
}
und noch die Variablen:
new back[MAX_PLAYERS];
new backtimer[MAX_PLAYERS];
Hoffe das ihr mir Helfen könnt
MFG
Spider
edit: zu [PWN] geändert und richtig eingerückt