Timer Problem...

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
  • Hallo liebe Leute..


    Ich wollte einen timer erstellen der mir sagt das ich nur alle 60Sek diesen Befehl ausführen kann..


    So habe ich das gemacht:


    if(strcmp(cmd, "/befehl", true) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,3.0,240.9979,112.8959,1003.2188))
    {
    SendClientMessage(playerid, COLOR_YELLOW, "Einen Moment bitte");
    SetTimer("Pause", 60000, 0);
    }
    }


    Function Pause()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    new Pause[245];
    format(Pause,sizeof(Pause),"* Du kannst nur alle 60Sek den Befehl ausführen",Pause);
    SendClientMessage(i,COLOR_LIGHTBLUE,Pause);
    return 1;
    }

    return 1;
    }


    Aber es funktioniert i.wie nicht ? Kann mir wer helfen ?

  • Bei deinen anderen new's:

    new bool:BereitsGemacht[MAX_PLAYERS];


    if(strcmp(cmdtext,"/befehl",true) == 0)
    {
    if(IsPlayerInRangeOfPoint(..))
    {
    if(BereitsGemacht[playerid])return SendClientMessage(playerid,0xFF0000FF,"Du kannst den Befehl nur alle 60 Sekunden ausführen!");
    //Was passieren soll, wenn er den Befehl NICHT innerhalb der letzen 60 Sekunden ausgeführt hat..
    BereitsGemacht[playerid] = true;
    SetTimerEx("resetstatus",60000,false,"d",playerid);
    }
    }


    forward resetstatus(playerid);
    public resetstatus(playerid)
    {
    BereitsGemacht[playerid] = false;
    return 1;
    }

  • new BereitsGemacht[MAX_PLAYERS];if(strcmp(cmdtext,"/befehl",true) == 0)
    {
    if(IsPlayerInRangeOfPoint(..))
    {
    if(BereitsGemacht[playerid] != 0)
    {
    new string[128];
    format(string, 128, "Du kannst den Befehl erst wieder in %d Sekunden ausführen!", (gettime()-BereitsGemacht[playerid]) );
    return SendClientMessage(playerid,0xFF0000FF,string);
    }
    BereitsGemacht[playerid] = gettime();
    SetTimerEx("resetstatus",60000,false,"d",playerid);
    }
    }forward resetstatus(playerid);
    public resetstatus(playerid)
    {
    BereitsGemacht[playerid] = 0;
    return 1;
    }

    The fact is, I am right. And if you think I'm wrong, you are wrong.

  • C:\Users\Theis\Desktop\SoL 2.0\gamemodes\irp.pwn(10201) : warning 213: tag mismatch
    C:\Users\Theis\Desktop\SoL 2.0\gamemodes\irp.pwn(18013) : warning 213: tag mismatch
    C:\Users\Theis\Desktop\SoL 2.0\gamemodes\irp.pwn(18016) : warning 213: tag mismatch
    C:\Users\Theis\Desktop\SoL 2.0\gamemodes\irp.pwn(18020) : warning 213: tag mismatch


    forward resetstatus(playerid);
    public resetstatus(playerid)
    {
    BereitsGemacht[playerid] = 0;// zeile 10201
    return 1;
    }


    if(IsPlayerInRangeOfPoint(playerid,3.0,240.9979,112.8959,1003.2188))
    {
    if(BereitsGemacht[playerid] != 0)// Zeile 18013
    {
    new gemacht[128];
    format(gemacht, 128, "Du kannst den Befehl erst wieder in %d Sekunden ausführen!", (gettime()-BereitsGemacht[playerid]) );//Zeile 18016
    return SendClientMessage(playerid,COLOR_RED,gemacht);
    SendClientMessage(playerid, COLOR_YELLOW,"Einen Moment bitte, ein Officer steht dir gleich zur verfügung");
    BereitsGemacht[playerid] = gettime()//Zeile 18020