Teambalance

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 MOin ^^


    Ich hab mich mal heute dran gesetzt und mache derzeit ein Hunt the Spy (jagt den Spion).


    Nur ich möchte jetzt gerne Teambalance reinbekommen, d.h. Es sollen keine 30 Jäger und 2 Cops da sein ^^


    Außerdem möchte ich nur 1 Spion haben und nich 30 ;D




    Danke im Vorraus.



    LG
    Dark

    "Stay hungry! Stay foolish!" - Steve Jobs

  • manchma frag ich mich ob ihr nciht lesen könnt :S



    So jetzt hier:


    Spieler XY will zu Cops, geht nicht, da Cops mehr sind wie Mafiois. Deshalb soll er dann eine Meldung erhalten in der drinne steht: Bitte nehme ein anderes Team. Teambalance!


    Dann nimmt Spieler XY Team Mafiois und es geht :thumbup:

    "Stay hungry! Stay foolish!" - Steve Jobs

  • public OnPlayerRequestClass(playerid, classid)
    {
    switch(classid)
    {
    case 0: gTeam[playerid] = TEAM_SPY;
    case 1: gTeam[playerid] = TEAM_COPS;
    case 2: gTeam[playerid] = TEAM_HUNTER;
    }
    if(gTeam[playerid] == TEAM_SPY)
    {
    GameTextForPlayer(playerid,"~g~ Spion",5000, 6);
    return 1;
    }
    if(gTeam[playerid] == TEAM_COPS)
    {
    GameTextForPlayer(playerid,"~b~ Police", 5000, 6);
    return 1;
    }
    if(gTeam[playerid] == TEAM_HUNTER)
    {
    GameTextForPlayer(playerid,"~w~ Hunter", 5000, 6);
    return 1;
    }

    SetPlayerPos(playerid,258.4893,-41.4008,1002.0234);
    SetPlayerFacingAngle(playerid, 90.0);
    SetPlayerCameraPos(playerid,256.0815,-43.000,1003.0234);
    SetPlayerCameraLookAt(playerid,258.4893,-41.4008,1002.0234);
    return 1;
    }


    Hier wird der User in das Team "hinzugefügt"

    "Stay hungry! Stay foolish!" - Steve Jobs

  • Na dann zählst jetzt per Schleife durch die Teams, und wenn zB in Spion schon 2 Leute sind sagst du, dass da keiner mehr rein darf und bei Cops/Hunter vergleichst du und erlaubst den Zutritt nur zum Kleineren Team.

  • public OnPlayerRequestClass(playerid, classid)
    {
    new spy,cops,hunter;
    for(new i=0; i<MAX_PLAYERS;i++)
    {
    if(i!=playerid && IsPlayerConnected(i))
    {
    switch(gTeam[i])
    {
    case TEAM_SPY:{spy++;}
    case TEAM_COPS:{cops++;}
    case TEAM_HUNTER:{hunter++;}
    }
    }
    }
    switch(classid)
    {
    case 0: gTeam[playerid] = TEAM_SPY;
    case 1: gTeam[playerid] = TEAM_COPS;
    case 2: gTeam[playerid] = TEAM_HUNTER;
    }
    if(gTeam[playerid] == TEAM_SPY)
    {
    if(spy >= 1) {SendClientMessage(playerid,COLOR,"Es kann nur einen Spion geben!"); return 0;}
    GameTextForPlayer(playerid,"~g~ Spion",5000, 6);
    return 1;
    }
    if(gTeam[playerid] == TEAM_COPS)
    {
    if(hunter < cops) {SendClientMessage(playerid,COLOR,"Bitte nehme ein anderes Team. Teambalance!"); return 0;}
    GameTextForPlayer(playerid,"~b~ Police", 5000, 6);
    return 1;
    }
    if(gTeam[playerid] == TEAM_HUNTER)
    {
    if(hunter > cops) {SendClientMessage(playerid,COLOR,"Bitte nehme ein anderes Team. Teambalance!"); return 0;}
    GameTextForPlayer(playerid,"~w~ Hunter", 5000, 6);
    return 1;
    }


    SetPlayerPos(playerid,258.4893,-41.4008,1002.0234);
    SetPlayerFacingAngle(playerid, 90.0);
    SetPlayerCameraPos(playerid,256.0815,-43.000,1003.0234);
    SetPlayerCameraLookAt(playerid,258.4893,-41.4008,1002.0234);
    return 1;
    }
    so sollte es gehen.