Ir para conteúdo
  • 0

[Resolvido] [Dúvida] Distribuição


jetta

Pergunta

eu to fazendo um plugin e to precisando distribuir os players igualmente em times (4 times)

eu to sem a miníma ideia de como fazer isso, dei uma olhada no google e não achei quase nada relacionado

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

Guest Fusquete

Vou explicar o sistema mas eu não posso fazer agora, se entender gg.

  • Quando o jogador logar, existirão 4 times e 25% de chance de entrar em cada time. É basicamente isso...
Link para o comentário
Compartilhar em outros sites

Achei esse código na net, talvez possa te ajudar.

ArrayList<UUID> players = new ArrayList<UUID>();
for(Player p:Bukkit.getOnlinePlayers())
players.add(p.getUniqueId());
Iterator<UUID> it = players.iterator();
for(int ind = 0;ind<(players.size()/8)+1;ind++)
for(int i = 1;i<=8;i++)
if(it.hasNext()){
//Add player to team using
//Bukkit.getPlayer(it.next());
}
Link para o comentário
Compartilhar em outros sites

Ihhh, ~MatchMaking~ não é algo tão fácil, mas se você quiser ao menos um algorítimo ou sugestão, me manda um MP.

 

 

Gostei da Dúvida.

mandei a mp

 

 

Achei esse código na net, talvez possa te ajudar.

ArrayList<UUID> players = new ArrayList<UUID>();
for(Player p:Bukkit.getOnlinePlayers())
players.add(p.getUniqueId());
Iterator<UUID> it = players.iterator();
for(int ind = 0;ind<(players.size()/8)+1;ind++)
for(int i = 1;i<=8;i++)
if(it.hasNext()){
//Add player to team using
//Bukkit.getPlayer(it.next());
}

blz vo ver

Link para o comentário
Compartilhar em outros sites

Olha, andei pensando, não sei se botando em prática não vai da certo, mas tomai uma pequena teoria de como fazer isso:

 


times = lista com todos os times (Uma arraylist?) Vou considerar como um array

indice = 0 //um pequeno indice que vai percorrer a array

timeAtual = 0 //0 = time1 | 1 = time2 e etc..

while(indice < 4){

for( int i = 0; i < 4; i++){

se a quantidade de players do times for maior que a quantidade de players do times[timeAtual]: timeAtual = i
indice++

}

}

 

 

 Não sei se deu pra entender, então qualquer duvida avisa kk

Editado por Lüigi!
Link para o comentário
Compartilhar em outros sites

Olha, andei pensando, não sei se botando em prática não vai da certo, mas tomai uma pequena teoria de como fazer isso:

 

 

times = lista com todos os times (Uma arraylist?) Vou considerar como um array

 

indice = 0 //um pequeno indice que vai percorrer a array

 

timeAtual = 0 //0 = time1 | 1 = time2 e etc..

 

while(indice < 4){

 

for( int i = 0; i < 4; i++){

 

se a quantidade de players do times for maior que a quantidade de players do times[timeAtual]: timeAtual = i

indice++

}

}

 

 

 Não sei se deu pra entender, então qualquer duvida avisa kk

 

eu mais ou menos, porém o loop só vai rodar 4 jogadores?

Link para o comentário
Compartilhar em outros sites

eu mais ou menos, porém o loop só vai rodar 4 jogadores?

 Não, isso é para por UM jogador em UM time

 

 Faça uma array com seus times, e assim o loop vai passar por todos os times e identificar qual é o que tem vaga, o que tiver basta pegar o time da array e por o player

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...