Timer funktioniert nicht wirklich

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
  • Abend zusammen,


    mein Problem ist folgendes,
    wenn der Spieler diesen checkpoint abfährt,


    SetPlayerCheckpoint(playerid,-1418.9476,212.5660,0.0412, 2.5);
    MeerCP[playerid] = 4;
    TogglePlayerControllable(playa, 0);
    SetVehicleSpeed(GetPlayerVehicleID(playerid),0);
    SetTimerEx("Job_Timer1",5000,0,"i",playerid); // Nach 5 Sekunden


    Wird der Job_Timer1 auch ausgeführt, jedoch soll er nach 5 Sekunden, ihn wieder unfreezen,
    dies tut er aber nicht, hier der Public des Timers:


    forward Job_Timer1(playerid);
    public Job_Timer1(playerid)
    {
    if(IsPlayerInRangeOfPoint(playerid, 5.0,-1418.9476,212.5660,0.0412))
    {
    new playa;
    SendClientMessage(playerid,COLOR_WHITE,"Es gab Komplikationen.");
    SendClientMessage(playerid,COLOR_WHITE,"Du konntest diese aber lösen.");
    TogglePlayerControllable(playa, 1);
    }
    else
    {
    SendClientMessage(playerid,COLOR_WHITE,"Es gab Komplikationen.");
    SendClientMessage(playerid,COLOR_WHITE,"Du konntest sie nicht lösen.");
    return 1;
    }
    return 1;
    }


    wo ist den da der Fehler ?

  • Dein Fehler ist folgender:

    Die Variable playa ist völlig unnötig.

    Du übergibst mit Hilfe des Timers auch die Spieler ID.
    Also nutze diese auch in der Funktion, die den Spieler entfriert.

    if(IsPlayerInRangeOfPoint(playerid, 5.0,-1418.9476,212.5660,0.0412))
    {
    // new playa;
    SendClientMessage(playerid,COLOR_WHITE,"Es gab Komplikationen.");
    SendClientMessage(playerid,COLOR_WHITE,"Du konntest diese aber lösen.");
    TogglePlayerControllable(playerid, 1); // nicht playa

  • Es wird funktionieren.


    Kein Problem, gern wieder!!



    Funktioniert nicht ;)


    Hier mal genau ^^
    Der checkpoint:
    else if(MeerCP[playerid] == 3)//Freeze hier
    {
    DisablePlayerCheckpoint(playerid);
    SetPlayerCheckpoint(playerid,-1418.9476,212.5660,0.0412, 2.5);
    MeerCP[playerid] = 4;
    TogglePlayerControllable(playerid, 0);
    SetVehicleSpeed(GetPlayerVehicleID(playerid),0);
    SetTimerEx("Job_Timer1",5000,0,"i",playerid); // Nach 5 Sekunden

    }


    Dort wird er ja gefreezed mit TogglePlayerControllable(playerid,0);


    Hier der Public nochmal mit dem Timer:


    forward Job_Timer1(playerid);
    public Job_Timer1(playerid)
    {
    if(IsPlayerInRangeOfPoint(playerid, 5.0,-1418.9476,212.5660,0.0412))
    {
    SendClientMessage(playerid,COLOR_WHITE,"Es gab Komplikationen.");
    SendClientMessage(playerid,COLOR_WHITE,"Du konntest diese aber lösen.");
    TogglePlayerControllable(playerid, 1);
    }
    else
    {
    SendClientMessage(playerid,COLOR_WHITE,"Es gab Komplikationen.");
    SendClientMessage(playerid,COLOR_WHITE,"Du konntest sie nicht lösen.");
    return 1;
    }
    return 1;
    }

  • Was passiert denn Ingame? Kommt da die Nachricht das du die Komplikationen lösen konntest, oder das du es nicht konntest? Vielleicht bist du Ingame einfach nicht im Radius. Stell mal von 5.0 auf 10.0 oder 15.0 und guck mal