Problem mit Racesystem

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
  • Guten Morgen ;)
    Ich habe mir ein Rennsystem nach dem Tutorial von Goldkiller erstellt,
    so dann noch ein paar funktionen eingefügt und einen countdown.
    DAs Problem beim countdown ist, dass nur der jenige der Das Rennen
    gestartet hat unfreezt wird, die anderen Spieler bleiben gefreezt ???


    rtimer = SetTimer("RaceCount",1000,1);
    rcount = 5;


    forward RaceCount(playerid);
    public RaceCount(playerid)
    {
    if(rcount > 0)
    {
    new
    str[128];
    format(str,sizeof(str),"~r~%d",rcount);
    GameTextForAll(str,1050,4);
    rcount--;
    }
    else
    {
    KillTimer(rtimer);
    GameTextForAll("~r~GOOOOOOOOOOOOOOO!!!",1050,4);
    TogglePlayerControllable(playerid,1);
    ClientLanguageText(playerid,COLOR_RED,"Das Rennen endet in 5min.","The race will end in 5 minutes!");
    SetTimer("Rends",300000,false);
    }
    }


    Könnte mir jemand helfen?
    lg
    VItalij

  • DAs Problem beim countdown ist, dass nur der jenige der Das Rennen
    gestartet hat unfreezt wird, die anderen Spieler bleiben gefreezt ???


    Das Problem liegt daran, dass du nur den Spieler mit playerId 0 unfreezed:rtimer = SetTimer("RaceCount",1000,1);


    forward RaceCount(playerid);
    public RaceCount(playerid)
    {
    ...
    TogglePlayerControllable(playerid,1);
    ...
    }
    SetTimerEx, damit du die korrekte playerid setzen kannst und eine Schleife, die alle Spieler durchlaeuft, um alle Spieler wieder bewegungsfaehig zu machen.
    Btw. repeating (letzter Wert von SetTimer) kannst du bei dem Timer deaktivieren und in RaceCount den Timer einfach neu setzen, wenn rcount > 0.