Timer wird nicht gestoppt

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
  • if(pickupid == ADACSymbol)
    {
    new pName[MAX_PLAYER_NAME], save[28],santow;
    GetPlayerName(playerid,pName,sizeof(pName));
    format(save,sizeof(save),"/Spieler/%s.ini",pName);
    if(dini_Exists(save))
    {
    sInfo[playerid][job] = dini_Int(save,"job");
    if(sInfo[playerid][job] == 3 && OnDuty[playerid] == 0)
    {
    santow = SetTimerEx("SanTow", 10000, true, "i", playerid);
    Color[playerid] = GetPlayerColor(playerid);
    SkinSave[playerid] = GetPlayerSkin(playerid);
    SetPlayerSkin(playerid, 50);
    SetPlayerColor(playerid, COLOR_ORANGE);
    SendClientMessage(playerid, COLOR_ORANGE, "Willkommen im Dienst als Pannenhelfer!");
    OnDuty[playerid] = 1;
    }
    else if(OnDuty[playerid] == 1)
    {
    SetPlayerSkin(playerid, SkinSave[playerid]);
    SetPlayerColor(playerid, Color[playerid]);
    SendClientMessage(playerid, COLOR_ORANGE, "Dienst als Pannenhelfer beendet!");
    OnDuty[playerid] = 0;
    KillTimer(santow);
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Info: Du musst dich erst als Pannenhelfer bewerben.");
    }
    }
    return 1;
    }


    Der Titel sagt alles, ich gehe in Job und der Timer startet, allerdings wird er nicht beendet. Wo hab ich da einen Logikfehler? ^^

    "Dem wird befohlen, der sich nicht selbst gehorchen kann" - Friedrich Nietzsche

  • Hallo Addickted,


    Also wenn ich das richtig verstanden habe, soll für jeden Spieler ein TImer laufen. Gut.
    Dann must du aber für jeden Spieler eine Variable erstellen (in deinem Fall santow) jedoch nicht so sondern ganz oben im Skript bei den ganzen #defines.


    new SantowTimer[MAX_PLAYERS];


    Und dann einfach ersetzen:



    santow = SetTimerEx("SanTow", 10000, true, "i", playerid); ...
    SantowTimer[playerid] = SetTimerEx("SanTow", 10000, true, "i", playerid);
    KillTimer(santow); ...
    KillTimer(SantowTimer[playerid]);


    Andernfalls würde ja für ca 10 Spieler die online sind nur 1 Timer bestehen und das wär nicht so gut, daher kommt nähmlich auch die Fehlfunktion würde ich behaupten.



    Gruß. Brandon.