Timer reagiert 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
  • ocmd:arrest(playerid,params[])
    {
    if(Fraktion(playerid,1)||Fraktion(playerid,2))//ist er in Fraktion 1 oder 2
    if(IsPlayerInRangeOfPoint(playerid,2,200.6969,168.2510,1003.0234))
    {
    new pID,string[128],Float:PosX, Float:PosY, Float:PosZ;
    {
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,ROT,"Benutze: /arrest [ID]");
    if(GetPVarInt(pID,"Wanteds") == 0)return SendClientMessage(playerid,ROT,"Der Spieler hat keine Wanteds!");
    if(pID == INVALID_PLAYER_ID)return SendClientMessage(playerid,ROT,"Spieler nicht gefunden");
    if(pID == playerid)return SendClientMessage(playerid,ROT,"Du kannst dich nicht selber einsperren!");
    {
    GetPlayerPos(pID,PosX,PosY,PosZ);
    if(IsPlayerInRangeOfPoint(playerid, 5.0 ,PosX, PosY, PosZ))
    {
    SetTimer("Jailtimer1",GetPVarInt(pID,"Wanteds")*60000,0);
    Jailtimer = SetTimerEx("Jailtimer2", 2000, 1,"i",playerid);
    SetPVarInt(pID,"Jailtime",GetPVarInt(pID,"Wanteds")*60000);
    SetPlayerWorldBounds(pID,203.9931,188.1784,180.7820,156.5854);
    format(string, sizeof string,"Du hast %s verhaftet!",Spielername(pID));
    SendClientMessage(playerid,BLAU,string);
    format(string, sizeof string,"Du wurdest von %s verhaftet!",Spielername(playerid));
    SendClientMessage(pID,BLAU,string);
    new Float:RandomSpawnJail[][4] =
    {
    {193.2786, 174.6594, 1003.0234, 3.4033},
    {197.5484, 174.7399, 1003.0234, 1.2100},
    {198.3096, 161.9169, 1003.0300, 181.9817}
    };
    new rand = random(sizeof(RandomSpawnJail));
    SetPlayerPos(pID, RandomSpawnJail[rand][0], RandomSpawnJail[rand][1],RandomSpawnJail[rand][2]);
    SetPlayerFacingAngle(pID, RandomSpawnJail[rand][3]);
    SetPVarInt(pID,"Wanteds",0);
    SetPlayerWantedLevel(pID, 0);
    SetPVarInt(pID,"Jail",1);
    SpielerSpeichern(pID);
    }
    else
    {
    SendClientMessage(playerid, ROT, "Der Spieler ist nicht in der Nähe");
    }
    }
    }
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du kannst hier niemanden verhaften!");
    }
    return 1;
    }


    forward Jailtimer1(playerid);
    public Jailtimer1(playerid)
    {
    SetPlayerPos(playerid,200.6969,168.2510,1003.0234);
    SendClientMessage(playerid,BLAU, "Du hast deine Haftstrafe erfolgreich abgesessen!");
    SetPVarInt(playerid,"Jail",0);
    SetPlayerWorldBounds(playerid,20000,-20000,20000,-20000);
    }
    forward Jailtimer2(playerid);
    public Jailtimer2(playerid)
    {
    if(GetPVarInt(playerid,"Jailtimer") == 0)
    {
    KillTimer(Jailtimer);
    }
    else
    {
    if(GetPVarInt(playerid, "Jail") == 1)
    {
    SetPVarInt(playerid,"Jailtime",-2000);
    SpielerSpeichern(playerid);
    SendClientMessage(playerid, ROT, "2Sekunden weniger");
    }
    }
    }




    das ist mein befehl mit den beiden publics, welche aufgerufen werden sollen...
    doch die timer funktionieren nicht.... es wird zb. von der Variable der Spielerdatei einfach nicht alle 2 sekunden 2000 abgezogen...
    man kommt auch nicht nach 60000 msekunden frei....
    kann mir wer mit den timern helfen, das die richtig funktionieren


    //e
    kennt sich keiner mit dem problem aus?

    Pessimisten sind Optimisten mit Erfahrung!

    Einmal editiert, zuletzt von Meisternuke ()

  • Bin mir unsicher, aber du musst evtl. folgendes benutzen:
    SetPVarInt(playerid,"Jailtime",GetPVarInt(playerid,"Jailtime")-2000);
    Da der Server sonst evtl. nicht weiß - wo er die Summe (in dem Fall 2000) abziehen soll. Und ermittel mal bitte, was die Rechnung "GetPVarInt(pID,"Wanteds")*60000" ergibt, nur zur Sicherheit d.h. benutz mal folgendes:
    format(Text,sizeof Text,"%d mal 60000 = %d",GetPVarInt(pID,"Wanteds"),GetPVarInt(pID,"Wanteds")*60000);
    Wenn dies stimmt, dann liegt der Fehler schonmal nicht hier. Natürlich den string auch ausgeben via Konsole oder Client Nachricht.


    Advertising has us chasing cars and clothes, working jobs we hate so we can buy shit we don’t need.
    – Tyler Durden


    Sobald Werbung im Spiel ist, bist du, die Nutzerin, der Nutzer, das Produkt.