Team Balancer doesn't work
#1

pawn Код:
#define Cops 2
#define Terrorists 1
new TerrorsCounter= 0;
new CopsCounter = 0;
public OnPlayerRequestSpawn(playerid)
{
    if(TerrorsCounter > CopsCounter && Account[playerid][gTeam]==Cops)
    {
        GameTextForPlayer(playerid, "~r~Team Full!~n~~w~Choose Cops/Army Team.", 3000, 3);
        return 0;
    }
    else if(CopsCounter > TerrorsCounter && Account[playerid][gTeam]==Terrorists)
    {
        GameTextForPlayer(playerid, "~r~Team Full!~n~~w~Choose Terrorists/Mafia Team.", 3000, 3);
        return 0;
    }
    return 1;
}

public OnPlayerSpawn(playerid)
{
 new SkinID=GetPlayerSkin(playerid);
    switch (SkinID)
    {
        case 121,122,272,123:
        {
            Account[playerid][gTeam]=Terrorists;
            SetPlayerTeam(playerid,1);
           
        }
        case 165,265,166,283,280,286,285:
        {
            Account[playerid][gTeam]=Cops;
            SetPlayerTeam(playerid,2);
           
        }
        case 287:
        {
            Account[playerid][gTeam]=Cops;
            SetPlayerTeam(playerid,2);
            Medic[playerid]=0;
            Supporter[playerid]=1;
        }
        case 29:
        {
            Account[playerid][gTeam]=Terrorists;
            SetPlayerTeam(playerid,1);
           
        }
        case 274,275,276:
        {
            Account[playerid][gTeam]=Cops;
            SetPlayerTeam(playerid,2);
            Medic[playerid]=1;
            Supporter[playerid]=0;
        }
        case 70:
        {
            Account[playerid][gTeam]=Terrorists;
            SetPlayerTeam(playerid,1);

        }
    }
}
public OnPlayerDisconnect(playerid,reason)
{
    if(Account[playerid][gTeam]==Terrorists) return TerrorsCounter--;
    else if(Account[playerid][gTeam]==Cops) return CopsCounter--;
        return 1;
}

public OnPlayerDeath(playerid,killerid,reason)
{
    if(Account[playerid][gTeam] == Terrorists) return TerrorsCounter--;
    else if(Account[playerid][gTeam]  == Cops) return CopsCounter--;
        return 1;
}
It still doesn't work..
What's wrong? :/
Reply
#2

It shouldn't be to count how many players are in a team instead of mix it? Lol.
pawn Код:
public OnPlayerDisconnect(playerid,reason)
{
    if(Account[playerid][gTeam]==Terrorists) return TerrorsCounter--;
    else if(Account[playerid][gTeam]==Cops) return CopsCounter--;
        return 1;
}

public OnPlayerDeath(playerid,killerid,reason)
{
    if(Account[playerid][gTeam] == Terrorists) return TerrorsCounter--;
    else if(Account[playerid][gTeam]  == Cops) return CopsCounter--;
        return 1;
}
Just change your way to set up team and it wouldn't be confuse like you did.
pawn Код:
#define Cops 2
#define Terrorists 1
new TerrorsCounter= 0;
new CopsCounter = 0;
//by the way, this won't work onplayrquestclass, cause your team aren't defined here. so he will be able to respawn,  i recommend you take a look in some tutorial about making team, it will help you alot.
public OnPlayerRequestClass(playerid,classid) // you should work with requestclass, instead of onplayerrequestspawn. so here, he won't spawn cause the team is full.
{
    if(TerrorsCounter > CopsCounter && Account[playerid][gTeam]==Cops)
    {
        GameTextForPlayer(playerid, "~r~Team Full!~n~~w~Choose Cops/Army Team.", 3000, 3);
        return 0;
    }
    else if(CopsCounter > TerrorsCounter && Account[playerid][gTeam]==Terrorists)
    {
        GameTextForPlayer(playerid, "~r~Team Full!~n~~w~Choose Terrorists/Mafia Team.", 3000, 3);
        return 0;
    }
    // it could be like this...
    /*else if(CopsCounter > TerrorsCounter || TerrorsCounter > CopsCounter){
   
    GameTextForPlayer(playerid, "~r~Team Full!~n~~w~Choose Anoter Team!", 3000, 3);return 0;
    }*/

    return 1;
}
public OnPlayerSpawn(playerid)
// instead of define their teams here, you should start workiing with onplayerquestclass which is better than this.
{
 new SkinID=GetPlayerSkin(playerid);
    switch (SkinID)
    {
        case 121,122,272,123:
        {
            Account[playerid][gTeam]=Terrorists;
            SetPlayerTeam(playerid,1);

        }
        case 165,265,166,283,280,286,285:
        {
            Account[playerid][gTeam]=Cops;
            SetPlayerTeam(playerid,2);

        }
        case 287:
        {
            Account[playerid][gTeam]=Cops;
            SetPlayerTeam(playerid,2);
            Medic[playerid]=0;
            Supporter[playerid]=1;
        }
        case 29:
        {
            Account[playerid][gTeam]=Terrorists;
            SetPlayerTeam(playerid,1);

        }
        case 274,275,276:
        {
            Account[playerid][gTeam]=Cops;
            SetPlayerTeam(playerid,2);
            Medic[playerid]=1;
            Supporter[playerid]=0;
        }
        case 70:
        {
            Account[playerid][gTeam]=Terrorists;
            SetPlayerTeam(playerid,1);

        }
    }
}
public OnPlayerDisconnect(playerid,reason)
{
    if(Account[playerid][gTeam]==Terrorists) return TerrorsCounter--;
    else if(Account[playerid][gTeam]==Cops) return CopsCounter--;
    return 1;
}
Reply
#3

Thanks , will work on it now.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)