Timer werden endlos ausgeführt

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
  • Hey,


    wieso werden meine Timer ausgeführt und hören nichtmehr auf? :(



    derby = SetTimer("DerbyEnd",500,true);


    public DerbyEnd(playerid)
    {
    if(DerbyPlayers == 1 && At[Derby] > 1) {
    SendClientMessageToAll(Gelb,"DERBY END");
    SetTimer("NewRound",3000,false);
    SetPlayerCameraPos(playerid,0,0,40);
    return 1;
    }
    if(DerbyPlayers == 0 && At[Derby] == 1) {
    SendClientMessageToAll(Gelb,"DERBY END");
    SetTimer("NewRound",3000,false);
    SetPlayerCameraPos(playerid,0,0,40);
    return 1;
    }
    return 1;
    }


    public NewRound()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(InGame[i][Derby] == 1)
    {
    NeueRunde(i);
    SetCameraBehindPlayer(i);
    SetPlayerHealth(i, 100);
    }
    }
    return 1;
    }


    stock NeueRunde(playerid)
    {
    for(new i=0; i<sizeof(dcrosscar); i++)
    {
    if(FreeDPlace[i] != -1) continue;
    else {
    dcrosscar[i][vehid] = CreateVehicle(dcrosscar[i][modelid],dcrosscar[i][SpawnX],dcrosscar[i][SpawnY],dcrosscar[i][SpawnZ],dcrosscar[i][SpawnA],-1,-1,-1);
    DCar[playerid] = dcrosscar[i][vehid];
    SetPlayerVirtualWorld(playerid,1);
    SetVehicleVirtualWorld(dcrosscar[i][vehid],1);
    PlayersPlace[playerid] = i;
    getZ = SetTimer("GetZ",500,true);
    derby = SetTimer("DerbyEnd",500,true);
    DerbyPlayers++;
    SetCameraBehindPlayer(playerid);
    PutPlayerInVehicle(playerid,dcrosscar[i][vehid],0); break;
    }
    }
    }

  • Alle 500ms wird dieser aufgerufen
    derby = SetTimer("DerbyEnd",500,true);


    In dem Stock von derbytimer ist der "NewRound" Timer. Das bedeutet
    der Timer "NewRound" wird nun auch alle 500ms aufgerufen.


    In den Stock "NewRound" steckt die Ausführung für
    "NeueRunde" drin. Dieser wird also auch alle 500ms aufgerufen.


    In dem Stock "NeueRunde" ist der getZ und der derby Timer drin.
    Da der Stock alle 500ms aufgerufen wird, werden diese beiden Timer es auch.