Timer 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
  • Hi.
    Wenn ich /exit eingebe, sollte ein Timer erstellt, werden, der einen erlaubt den Gangwar beizutreten.
    Jedoch bekomme ich keine Nachricht wie ich es im Normalfall ebkommen sollte..


    Hier die Befehle/Callbacks/forwarsd
    ocmd:exit(playerid)
    {
    if(IsGS[playerid] == 1 || IsBF[playerid] == 1)
    {
    IsGS[playerid] = 0;
    IsBF[playerid] = 0;
    darfgw[playerid] = 0;
    InGW[playerid] = 0;
    SetTimer("darftext",60000,0);
    ResetPlayerWeapons(playerid);
    SpawnPlayer(playerid);
    GangZoneHideForPlayer(playerid,EastLS);
    SetPlayerVirtualWorld(playerid, 0);
    //SetPlayerWorldBounds(playerid, 20000.0000, -20000.0000, 20000.0000, -20000.0000);
    SendClientMessage(playerid,COLOR_WHITE,"Du hast die GangWar Arena verlassen. Und darfst sie für die nächsten 60 Sekunden nicht betreten.");
    }
    if(InDM[playerid] == 1)
    {
    InDM[playerid] = 0;
    pos1[playerid] = 0;
    pos2[playerid] = 0;
    darfdm[playerid] = 0;
    //SetPlayerWorldBounds(playerid, 20000.0000, -20000.0000, 20000.0000, -20000.0000);
    ResetPlayerWeapons(playerid);
    SetTimer("darftext",60000,0);
    SetPlayerVirtualWorld(playerid, 0);
    GangZoneHideForPlayer(playerid,EastLS);
    SpawnPlayer(playerid);
    SendClientMessage(playerid,COLOR_WHITE,"Du hast die DM Arena verlassen. Und darfst sie für die nächsten 60 Sekunden nicht betreten.");
    }
    return 1;
    }


    forward:
    forward darftext(playerid);
    erlaubnis:
    new darfgw[MAX_PLAYERS];
    new darfdm[MAX_PLAYERS];


    Callback:
    public darftext(playerid)
    {
    darfgw[playerid] = 1;
    darfdm[playerid] = 1;
    SendClientMessage(playerid,COLOR_WHITE,"Du darfst dem Gangwar nun beitreten. Nutze dies nicht aus, ansonsten gibt es einen Ban.");
    return 1;
    }



    MfG

  • Also. man kann mit
    /dm
    &
    /gangwar ín eine Arena.


    Wenn man /exit eingibt, spawnt man am Noobspawn & sollte eig. 60 Sekunedn lang keine der 2. Arenen betreten können. Nur funktzioniert das nicht richtig.
    und was gneau ist der unterschied mit else if?


    MfG

  • wird der Timer denn gestartet , bzw die anderen Funktionen in dem Befehl ausgeführt?
    und versuche es mal mit else if(InDM[playerid] == 1)


    Lass es einfach wenn du nicht weißt was du schreibst.


    BTT:
    Nutze SetTimerEx für Spielerbezogene Timer, du verwendest einen Globalen!


    SetTimerEx("darftext",60000,false,"i",playerid);

    KleineHilfe 2.0

  • bekommst du die Nachricht denn? :
    SendClientMessage(playerid,COLOR_WHITE,"Du hast die GangWar Arena verlassen. Und darfst sie für die nächsten 60 Sekunden nicht betreten.");


    Mach es mal mit :
    SetTimerEx("darftext",60000,0,"i",playerid);


    manchmal buggt es rum wenn man es nur mit "normalen " if-Abfragen machtm deswegen mit else if( warum kann ich dir leider auch nicht sagen).

  • das "i" steht für den integer (playerid).

    Lass es einfach wenn du nicht weißt was du schreibst.

    Bei mir war es so. und wie du sehen kannst habe ich auch geschrieben dass ich nicht weiß warum.



    Wenn du schon auf klugscheisser machst , dann zeig ihm auch bitte die richtige SetTimerEx Funktion ;) // edit : haste ja schon nachgebessert :thumbup: