[Ajuda] Balance
#1

Bom, eu estava estudando um GM do Kitten, e achei um auto-balance de times queria saber como posso fazer tentei mudar mas aparecem erros.

pawn Code:
forward Balance(playerid);
public Balance(playerid)
{
SendClientMessageToAll(RED,"[TEAM BALANCE] Balancing Teams");
if (playerid == 0 || playerid == 2 || playerid == 4 || playerid == 6 || playerid == 8 || playerid == 10 )
{
   if(gTeam[playerid] == TEAM_HUMAN)
   {
        TEAM_ZOMBIE(playerid);
   }
   else if(gTeam[playerid] == TEAM_ZOMBIE)
   {
        TEAM_HUMAN(playerid);
   }
}
return ;
}
Tentei assim nгo deu, as defines sгo TEAM_ZOMBIE & TEAM_HUMAN

Erros
pawn Code:
C:\Users\Richard\Desktop\SAMP 0.3E\gamemodes\E.z.pwn(6746) : error 029: invalid expression, assumed zero
C:\Users\Richard\Desktop\SAMP 0.3E\gamemodes\E.z.pwn(6746) : warning 215: expression has no effect
C:\Users\Richard\Desktop\SAMP 0.3E\gamemodes\E.z.pwn(6750) : error 029: invalid expression, assumed zero
C:\Users\Richard\Desktop\SAMP 0.3E\gamemodes\E.z.pwn(6750) : warning 215: expression has no effect
Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


2 Errors.
Reply
#2

Este sistema ai й fail.


pawn Code:
public OnPlayerSpawn(playerid){


    SendClientMessage(playerid, -1, "Team Balance");
    gTeam[playerid] = gFreeSlot();
}


stock gFreeSlot(){

    // Criamos umas variбveis e arrays estбticas
    static
        gPlayerTeam[2],
        Interador,
        Retrn,
        MaxP
    ;


    // Realizamos um looping para varrer todos os players
    for(Interador = 0, MaxP = GetMaxPlayers(); Interador !=  MaxP; Interador++){

        // Procuramos os players que estгo conectados.
        if(IsPlayerConnected(Interador)){


            // Verificamos se o player em questгo й do time dos Humanos,
            // Caso for ele adiciona na matriz[0] +1.
            if(gTeam[Interador] == TEAM_HUMAN){
                gPlayerTeam[0] ++;
            }


            // Mais se o player em questгo for zombie ele adiciona +1 no
            // grupo de zombies.
            if(gTeam[Interador] == TEAM_ZOMBIE){
                gPlayerTeam[1] ++;
            }
        }
    }


    // Agora verificamos se a array estб nulla
    // Caso ela nгo estiver a pequena verificaзгo й chamada:
    if(!gPlayerTeam[0]){
        if(gPlayerTeam[0] > gPlayerTeam[1]){
            Retrn = TEAM_ZOMBIE;
        }else{
            Retrn = TEAM_HUMAN;
        }
    }

    return Retrn;
}

Nгo testei ^^
Reply
#3

pawn Code:
Balance(playerid); public Balance(playerid) {
    SendClientMessageToAll(RED, "[TEAM BALANCE] Balancing Teams");
    if(playerid == 0 || playerid == 2 || playerid == 4 || playerid == 6 || playerid == 8 || playerid == 10) {
        if(gTeam[playerid] == TEAM_HUMAN) {
            TEAM_ZOMBIE(playerid);
        }
        else if(gTeam[playerid] == TEAM_ZOMBIE) {
            TEAM_HUMAN(playerid);
        }
    }
    return 1;
}
Aparentemente era o return

Tambйm nгo sei se isso vб funcionar
Reply
#4

pawn Code:
stock BalanceEx(Team1, Team2, const Players = MAX_PLAYERS){

    static
        Interador,
        Bloco[2],
        MaxP
    ;
   
    for(Interador = 0, MaxP = Players;  Interador != MaxP; ++Interador){
        if(IsPlayerConnected(Interador)){
            Bloco[0] ++;
        }
    }
   
    MaxP = Bloco[0] + 1;

   
    if(MaxP % 2){
        Bloco[0] = (MaxP / 2);
    }else{
        Bloco[0] = (MaxP - 1) / 2;
    }

    Bloco[1] = (MaxP - Bloco[0]);
   


    for(Interador = 0; Interador != (MaxP - 1); ++Interador)
    {
        Times[Interador] = (Interador <= Bloco[0] ? Team1 : Team2);
    }
   
    return true;
 }
Reply
#5

Quote:
Originally Posted by [Full]Garfield[XDB]
View Post
pawn Code:
stock BalanceEx(Team1, Team2, const Players = MAX_PLAYERS){

    static
        Interador,
        Bloco[2],
        MaxP
    ;
   
    for(Interador = 0, MaxP = Players;  Interador != MaxP; ++Interador){
        if(IsPlayerConnected(Interador)){
            Bloco[0] ++;
        }
    }
   
    MaxP = Bloco[0] + 1;

   
    if(MaxP % 2){
        Bloco[0] = (MaxP / 2);
    }else{
        Bloco[0] = (MaxP - 1) / 2;
    }

    Bloco[1] = (MaxP - Bloco[0]);
   


    for(Interador = 0; Interador != (MaxP - 1); ++Interador)
    {
        Times[Interador] = (Interador <= Bloco[0] ? Team1 : Team2);
    }
   
    return true;
 }
Que blablabla, tadinho o cara nгo vai entender =X
Reply
#6

@Jonathan #XATIADO.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)