Frage wegen Timer

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hey :D


    ich habe momentan ein kleines Problem mit meinem Timer und weiß nicht wie ich es lösen kann.
    Und zwar soll nach dem ein Spieler den Befehl /afk eingegeben hat, der Spieler nach 10 Sekunden gefreezed werden.
    Das Problem ist, das das ganze leider nicht funktioniert :(
    Hier ist der Code:


    COMMAND:afk(playerid,params[])
    {
    #pragma unused params
    if(pInfo[playerid][AFK] == 1) {
    return SendClientMessage(playerid,GRAU,"Du bist bereits AFK");
    }
    SetTimerEx("PlayerAFK",10000,0,"i",playerid);
    SendClientMessage(playerid,WEIS,"Du bist in 10 Sekunden AFK");
    return 1;
    }


    COMMAND:back(playerid,params[])
    {
    #pragma unused params
    new msg[100],pName[MAX_PLAYER_NAME];
    if(pInfo[playerid][AFK] == 1) {
    TogglePlayerControllable(playerid,1);
    GetPlayerName(playerid,pName,sizeof(pName));
    format(msg,sizeof(msg),"%s ist vom AFK zurückgekehrt",pName);
    SendClientMessageToAll(ORANGE,msg);
    }
    else {
    SendClientMessage(playerid,GRAU,"Du bist nicht AFK");
    }
    return 1;
    }


    //------------------------------------------------------------------//


    stock PlayerAFK(playerid)
    {
    new pName[MAX_PLAYER_NAME], msg[100];
    TogglePlayerControllable(playerid,0);
    pInfo[playerid][AFK] = 1;
    GetPlayerName(playerid,pName,sizeof(pName));
    format(msg,sizeof(msg),"%s ist nun AFK",pName);
    SendClientMessageToAll(ORANGE,msg);
    GameTextForPlayer(playerid,"Du bist AFK",-1,6);
    }


    Meine Vermutung ist ja, das der Timer beendet wird.
    Wie kann ich es denn sonst anstellen ?

  • Bei Timern brauchst du nen neuen public keinen stock:
    forward PlayerAFK(playerid);
    public PlayerAFK(playerid)
    {
    new pName[MAX_PLAYER_NAME], msg[100];
    TogglePlayerControllable(playerid,0);
    pInfo[playerid][AFK] = 1;
    GetPlayerName(playerid,pName,sizeof(pName));
    format(msg,sizeof(msg),"%s ist nun AFK",pName);
    SendClientMessageToAll(ORANGE,msg);
    GameTextForPlayer(playerid,"Du bist AFK",-1,6);
    }