/ctf funktioniert nicht richtig

  • /ctf funktioniert nicht richtig

    Guten Tag, ich nutze jetzt meinen ersten Timer, mit Timern kenne ich mich allerdings garnicht aus. Der Befehl /ctf an sich funktioniert wunderbar.

    Wenn ich mich zu weit von einer Position entferne, soll der Spieler die Flagge verlieren, so sieht alles aus:

    [pwn]forward CTFDistance(playerid);
    new CTFTimer;[/pwn]

    [pwn]if(strcmp(cmd, "/ctf", true) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid, 15, 757.7704,-1596.4019,13.7374))
    {
    if(YakuzaHasFlag == 0 && Spieler[playerid][Team] == 2)
    {
    YakuzaHasFlag = 0;
    TriadenHasFlag = 1;
    SendClientMessageToAll(0xFFBE00FF, "Die Triaden haben die Flagge erobert!");
    SendClientMessage(playerid, COLOR_GREY, "Entferne dich nicht zuweit vom CTF-Punkt, sonst verlierst du die Flagge!");
    }
    if(TriadenHasFlag == 0 && Spieler[playerid][Team] == 1)
    {
    TriadenHasFlag = 1;
    YakuzaHasFlag = 0;
    SendClientMessageToAll(0xFFBE00FF, "Die Yakuza haben die Flagge erobert!");
    SendClientMessage(playerid, COLOR_GREY, "Entferne dich nicht zuweit vom CTF-Punkt, sonst verlierst du die Flagge!");
    }
    else if(YakuzaHasFlag == 1 || TriadenHasFlag == 1)
    {
    SendClientMessage(playerid, COLOR_GREY, "Dein Team ist schon im Besitz der Flagge!");
    }
    CTFTimer = SetTimer("CTFDistance", 1000, 1);
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du musst an einem /ctf-Punkt sein!");
    }
    return 1;
    }[/pwn]
    [pwn]public CTFDistance(playerid)
    {
    if(TriadenHasFlag == 1 && YakuzaHasFlag == 1)
    {
    if(!IsPlayerInRangeOfPoint(playerid, 15, 757.7704,-1596.4019,13.7374))
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist zuweit vom CTF Punkt entfernt, du hast die Flagge verloren!");
    TriadenHasFlag = 0;
    YakuzaHasFlag = 0;
    KillTimer(CTFTimer);
    }
    }
    return 1;
    }[/pwn]


    Hat da jemand einen Lösungsvorschlag? Ich bin langsam am verzweifeln :/

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von tiiMo ()

  • Guten Morgen,

    Der unterschied zwischen SetTimer und SetTimerEx(); ist, das du bei SetTimerEx() Parameter übergeben kannst.
    Da dein Timer mit dem Parameter "playerid" Arbeitet, den du wahrscheinlich nicht übergeben hast, kann es hierbei Natürlich zu Fehlern kommen.

    Bitte poste dochmal den Abschnitt, in dem du den Timer Aufrufst/Definierst.
    Dieser Dürfte iergendwo unter "OnGameModeInit()" zu finden sein.

    Gruß,
    Neoner
    Professionelle Programmierung
    -> PAWN, PHP, SQL, HTML, CSS, Visual Basic, C, C#, C++ <-