SA-MP Forums Archive
[Ajuda] Balanceamento de Teams - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Balanceamento de Teams (/showthread.php?tid=640015)



Balanceamento de Teams - GustavoKarasek - 26.08.2017

Opa,
Como faзo para que os times do meu servidor fiquem balanceados conforme os players vгo logando caso fique um time com 4 player a mais que o outro time, seja bloqueada a classe, e liberada somente quando essa margem de diferenзa de 4 players for menor.


Re: Balanceamento de Teams - RodrigoMSR - 26.08.2017

Vocк tem mais de 2 times?


Re: Balanceamento de Teams - GustavoKarasek - 26.08.2017

nгo, futuramente pretendo usar mais, mas pode fazer uma base sу para 2 times mesmo.


Re: Balanceamento de Teams - C4rtm4n - 26.08.2017

https://sampforum.blast.hk/showthread.php?tid=632771


Re: Balanceamento de Teams - RodrigoMSR - 26.08.2017

PHP код:
new players[2], time timeselecionado;
//faзa a contagem de jogadores em cada time, 0 e 1
if(players[time] > players[!time] + 4//se jogadores do time selecionado for maior que o time contrбrio + 4
{
    
//mensagem de erro

Agora se for fazer com mais de 2 times serб necessбrio calcular uma mйdia e fazer a condiзгo em cima dela.


Re: Balanceamento de Teams - GustavoKarasek - 26.08.2017

Quote:
Originally Posted by RodrigoMSR
Посмотреть сообщение
PHP код:
new players[2], time timeselecionado;
//faзa a contagem de jogadores em cada time, 0 e 1
if(players[time] > players[!time] + 4//se jogadores do time selecionado for maior que o time contrбrio + 4
{
    
//mensagem de erro

Agora se for fazer com mais de 2 times serб necessбrio calcular uma mйdia e fazer a condiзгo em cima dela.
Cara, Nгo entendi muito, fui por aqui й bugo meu cйrebro.
Seria correta minha contagem? e como aplico nesse sisteminha?.

new Players;
new InTeam1,InTeam2;

OnPlayerConnect(playerid)
Players++;

OnPlayerRequestSpawn(playerid)
if(gTeam[playerid] == Team1)
InTeam1++;

if(gTeam[playerid] == Team2)
InTeam2++;


Re: Balanceamento de Teams - RodrigoMSR - 26.08.2017

Forma mais simples:
PHP код:
new p_Team1p_Team2;
for(new 
0MAX_PLAYERSi++)
{
    if(
IsPlayerConnected(i))
    {
        switch(
gTeam[i])
        {
            case 
Team1p_Team1++;
            case 
Team2p_Team2++;
        }
    }
}
if(
gTeam[playerid] == Team1)
{
    if(
p_Team1 p_Team2 4)
    {
        
//mensagem de erro
        
return 1;
    }
}
else
{
    if(
p_Team2 p_Team1 4)
    {
        
//mensagem de erro
        
return 1;
    }




Re: Balanceamento de Teams - GustavoKarasek - 26.08.2017

@Resolvido!