Teams gleich verteilen

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
  • Hallo :)


    Ich habe eine Frage zu der gleichverteilung von Teams...
    Also ich bin gerade dabei für meinen Reallife Server ein Minigundm Event zu scripten.
    Wenn die Spieler dem event joinen, sollen sie gleichstark aufgeteilt werden, also das nicht Team 1 10Leute hat und Team 2 nur 3.
    Nur: Wie code ich das ganze?


    Danke für die Hilfe :)


    LG
    Phyber :love:

    Einmal editiert, zuletzt von Phyber () aus folgendem Grund: Unnötigen Teil gelöscht xD

  • Du gehst so vor:


    Zu deinen new's:
    new Team1;
    new Team2;
    new Team[MAX_PLAYERS];


    Das hier zu OnPlayerConnect(..)
    public OnPlayerConnect(playerid)
    {
    Verteilen(playerid);
    return 1;
    }


    OnPlayerDisconnect(..)
    public OnPlayerDisconnect(playerid, reason)
    {
    if(Team[playerid] == 1)
    {
    Team[playerid] = 0;
    Team1--;
    }
    else if(Team[playerid] == 2)
    {
    Team[playerid] = 0;
    Team2--;
    }
    return 1;
    }


    Das hier irgendwo ins script, aber nicht in einen public oder anderen stock!
    stock Verteilen(playerid)
    {
    if(Team1 > Team2)
    {
    Team[playerid] = 2;
    Team2++;
    }
    else if(Team1 < Team2)
    {
    Team[playerid] = 1;
    Team1++;
    }
    else if(Team1 == Team2)
    {
    new r;
    r = random(3);
    if(r < 2)
    {
    Team[playerid] = 1;
    Team1++;
    }
    else
    {
    Team[playerid] = 2;
    Team2++;
    }
    }
    return 1;
    }

  • Ja ok gemacht. Aber:
    Ich weiß nicht genau ob bei random die ´0` dabei ist, wenn ja:
    Falls beide Teams gleich groß sind, kommt man wahrscheinlicher in Team 2, da man in Team 1 nur kommt wenn r(andom) 3 ist.
    Dann würde ich den Operator in ein <= ändern. ;)
    Wenn nein, würde ich es so lassen und eine Zahl aus fünfen nehmen lassen.

    Nur wenn man das Unmögliche versucht kann man das absolut Mögliche erreichen
    Hermann Hesse


    „Was manche Menschen sich selber vormachen, das macht ihnen so schnell keiner nach.”
    Gerhard Uhlenbruck

  • Denkfehler *facepalm*

    Nur wenn man das Unmögliche versucht kann man das absolut Mögliche erreichen
    Hermann Hesse


    „Was manche Menschen sich selber vormachen, das macht ihnen so schnell keiner nach.”
    Gerhard Uhlenbruck