Hey Leute,
ich habe mein AFK System ohne probleme geschrieben.
Das System sieht in meinen Augen auch Fehlerfrei aus, jedoch bekomme ich InGame (beim ausprobieren) sehr komische Fehler:
- wenn ich den Befehl das erse mal nutze ist alles gut, sobald ich ihn jedoch das zweite mal nutze,
bekomme ich die Meldung, dass mein AFK Cooldown (AFK_CD) noch nicht abgelaufen ist, jedoch
wird der Befehl dann nicht returnt, sondern läuft trotzdem weiter!
- wenn ich schreibe obwohl ich AFK bin, bekomme ich zwar die Nachricht, dass ich nicht schreiben kann wenn ich AFK bin,
jedoch wird trotzdem der Text abgesendet!
Das System:
Code
ocmd:afk(playerid,params[])
{
new str[128];
if(Tot[playerid] == 1) return SCM(playerid,COLOR_RED,"Du bist nicht in der Lage dies zu tun!");
if(AFKCD[playerid] > 0) return SCMF(playerid,COLOR_RED,"Du musst noch %i Sekunden warten bis du den Befehl wieder nutzen kannst!",AFKCD[playerid]);
if(AFK[playerid] == 0)
{
format(str,sizeof (str),"[AFK] %s ist in den AFK-Modus gegangen!",SpielerName(playerid));
TogglePlayerControllable(playerid,0);
AFKLabel[playerid]=Create3DTextLabel("*Spieler ist AFK*", COLOR_ORANGE, 30.0, 40.0, 50.0, 40.0, 0, 0);
Attach3DTextLabelToPlayer(AFKLabel[playerid],playerid,0,0,0.5);
GetPlayerHealth(playerid, AFKLeben[playerid]);
s_SetPlayerHealth(playerid,0x122E0);
SCMTA(COLOR_ORANGE,str);
AFK[playerid] = 1;
AFKCD[playerid] += 30;
return 1;
}
if(AFK[playerid] == 1)
{
format(str,sizeof (str),"[AFK] %s ist vom AFK-Modus zurück!",SpielerName(playerid));
SCMTA(COLOR_ORANGE,str);
Delete3DTextLabel(AFKLabel[playerid]);
AFK[playerid] = 0;
s_SetPlayerHealth(playerid,AFKLeben[playerid]);
TogglePlayerControllable(playerid,1);
AFKCD[playerid] += 30;
AFK[playerid] = 0;
return 1;
}
return 1;
}
Alles anzeigen