Rundensystem in Gamemode etablieren

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
  • Moin.
    Ich will bei mir ein Rundensystem einfuegen. In meinem Gamemode gibt es 3 Teams, und wenn in mindestens 2 Teams mindestens 1 Spieler ist, soll ein Countdown starten.
    Wenn zwischendurch Spieler rausgehen soll dieser wieder resettet werden.
    Wenn der Countdown von 60 auf 0 runtergezaehlt hat sollen die Spieler gespawnt werden, und die Runde soll gestartet werden.


    Oder gibt es anderen Vorschlaege?
    Weiterhin soll jeder User der nachher joint, automatisch dem Team TEAM_SPECTATOR zugewiesen werden, und die Spieler spectaten.


    Wenn ein Spieler rausgeht, und bspw. nur noch 1 Team da ist, soll FinishedGame() aufgerufen werden.




    Ist das hier logisch umgesetzt? Und wann rufe ich am besten die Funktion StartGame() auf? Oder periodisch mit Timer?
    Das ist mein bisheriger Ansatz







    Hier die Funktion welche erkennt wenn eine Runde beendet ist.
    Der rekursive Aufruf hier sinvoll?
    Es funktioniert zwar so wie ich will, ist aber jedoch ziemlich wartungsunfreundlich.


    Einmal editiert, zuletzt von Sub Royal ()

  • Ich erkenne den Sinn mancher Funktionen wie z.B. GetActiveTeamCount nicht. Poste uns doch den Inhalt dieser Funktionen damit wir tiefer in die Zusammenhänge deines Systems blicken könnten. Ich hätte einige verbesserungsansätze aber erkenne noch nicht ganz die tiefe des Codes und könnte somit versehentlich dein Code breaken.

  • Ich erkenne den Sinn mancher Funktionen wie z.B. GetActiveTeamCount nicht. Poste uns doch den Inhalt dieser Funktionen damit wir tiefer in die Zusammenhänge deines Systems blicken könnten. Ich hätte einige verbesserungsansätze aber erkenne noch nicht ganz die tiefe des Codes und könnte somit versehentlich dein Code breaken.

    Alles klar!
    Habe hier mal den Gamemode drin.


    https://pastebin.com/M3LwExEQ


    Habe halt probiert moeglichst viele teambezogene Funktionen zu entwickeln, um besser mit Teams hantieren zu koennen im Script.


    Und meine GetActiveTeamCount Funktion welche checken soll ob in einem Team ein Spieler ist.



  • Mal nur am Rande, du solltest for Schleifen verwenden und nicht immer eine while Schleife ^^


    C
    stock GetActiveTeamCount()
    {
        new count; //wird automatisch mit 0 initialisiert
        for(new i; i<TEAMSIZE; i++)
        {
            if(GetTeamPlayerCount(i) > 0) count++;
        }
        return count;
    }

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S