Timer Beenden Geht nicht

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
  • Hay Ich habe einen /where Befehl gemacht wo 10 sekunden an zeigt wo die person ist.
    Nun kann ich ihn nur 1 mal benutzen da die varriable dann auf 0 ist (die varriable heisst countdown)


    Ganz oben ist

    new countdown = 10;
    forward Countdown_Befehl_Where(playerid);


    Der Befehl /where:

    ocmd:where(playerid,params[])
    {
    if(!isPlayerinFraktion(playerid,1) && !isPlayerinFraktion(playerid,3))return SendClientMessage(playerid, ROT, "Du bist nicht in der Fraktion FBI oder LSPD.");
    {
    new pID;
    new Float:x, Float:y, Float:z;
    new string[68];
    if(sscanf(params,"u",pID))return SendClientMessage(playerid, ROT, "/where [Playerid]");
    GetPlayerPos(pID, x, y, z);
    format(string,sizeof(string),"Du hast %s auf der Karte für 10 Sekunden markiert.", SpielerName(pID));
    SendClientMessage(playerid, HBLAU, string);
    SetPlayerCheckpoint(playerid, x, y, z, 3);


    SetTimer("Countdown_Befehl_Where",1000,0);


    }
    return 1;
    }


    und jetzt die public für den timer:
    public Countdown_Befehl_Where(playerid)
    {



    if(countdown > 0)
    {
    new string[68];
    format(string,sizeof(string),"%d",countdown);
    GameTextForPlayer(playerid,string,1000,3);
    SetTimer("Countdown_Befehl_Where",1000,0);
    countdown --;
    }

    if(countdown == 0)
    {
    SendClientMessage(playerid, HBLAU, "Die Zeit ist abgelaufen.");
    DisablePlayerCheckpoint(playerid);


    }
    return 1;
    }
    Und jetzt kann ich den befehl nur 1 mal machen weil dan die Varriable auf 0 ist und wenn ich sie auf 10 sette geht der counter immer weiter pls um hilfe :!

  • new countdown[MAX_PLAYERS];
    forward Countdown_Befehl_Where(playerid);


    ocmd:where(playerid,params[])
    {
    if(!isPlayerinFraktion(playerid,1) && !isPlayerinFraktion(playerid,3))return SendClientMessage(playerid, ROT, "Du bist nicht in der Fraktion FBI oder LSPD.");
    {
    new pID;
    new Float:x, Float:y, Float:z;
    new string[68];
    if(sscanf(params,"u",pID))return SendClientMessage(playerid, ROT, "/where [Playerid]");
    GetPlayerPos(pID, x, y, z);
    format(string,sizeof(string),"Du hast %s auf der Karte für 10 Sekunden markiert.", SpielerName(pID));
    SendClientMessage(playerid, HBLAU, string);
    SetPlayerCheckpoint(playerid, x, y, z, 3);
    countdown[playerid] = 1;
    SetTimer("Countdown_Befehl_Where",1000,0);


    }
    return 1;
    }


    public Countdown_Befehl_Where(playerid)
    {



    if(countdown[playerid] == 1)
    {
    new string[68];
    format(string,sizeof(string),"%d",countdown);
    GameTextForPlayer(playerid,string,1000,3);
    SetTimer("Countdown_Befehl_Where",1000,0);
    countdown[playerid] = 0;
    }

    if(countdown[playerid] == 0)
    {
    SendClientMessage(playerid, HBLAU, "Die Zeit ist abgelaufen.");
    DisablePlayerCheckpoint(playerid);


    }
    return 1;
    }