[Ayuda] Hacer sistemas de equipos
#1

Buenas,

Me gustarнa que me dieran alguna idea para hacer esto.
Bueno, en mi servidor hice dos equipos, el primero es la policia (LSPD) y la otra es la mafia.
Lo que quiero hacer es que cuando los jugadores escriban /participar, le salga un dialog para que elijan el equipo al que quieren pertenecer (eso lo he hecho) ; pero luego quiero que cuando el jugador haya elegido un equipo, queden menos puestos para pertenecer.

No me he explicado bien, lo que quiero decir es que si hay por ejemplo 20 jugadores, puйs en cada equipo sуlo puedan formar parte 10 jugadores. Si 3 jugadores participan a LSPD y 5 a la mafia, puйs de los 12 jugadores restantes, sуlo 7 podrбn participar a LSPD y 5 a la mafia.

Lo que no sй es como hacer para que el servidor detecte el mбximo de jugadores que hay y luego los reparta en los dos equipos. Despuйs en el dialog_list, si eligen un equipo, en йste se debe restar un lugar para que no puedan jugar todos en el mismo equipo o porque no pueda haber mбs jugadores en uno y en el otro menos.

No pido que me hagan el cуdigo, lo que pido es que me dйn informaciуn de como lo puedo hacer.

Espero que me hayan entendido.
Gracias y un saludo.
Reply
#2

Puedes contar la cantidad de jugadores en cierto equipo y restar ese nъmero a la cantidad mбxima de jugadores que puede haber por equipo. Si el resultado no es 0, hay puestos disponibles.

Suponiendo que pueden haber como mбximo 10 mafiosos, y hay 5 (los cuentas usando un bucle for() o foreach), restas 10-5 y el resultado son los puestos disponibles. Para balancear los equipos, simplemente cuenta la cantidad de jugadores en ambos equipos, usando un bucle for() o foreach, y revisa cual es mayor. Si por ejemplo, en el equipo azul hay 10 jugadores y en el rojo hay 9, asignar el equipo rojo al jugador. Si ambos equipos tienen la misma cantidad de jugadores, asigna un equipo al azar (no importa cual sea, porque luego serбn balanceados).

Todo esto lo puedes hacer con simple lуgica y contando los jugadores agregando condiciones en un bucle foreach o for. Un ejemplo:
PHP код:
new red_countblue_countnew_team;
for(new 
0!= MAX_PLAYERSi++)
{
  if(!
IsPlayerConnected(i)) continue;
  if(
GetPlayerTeam(i) == TEAM_BLUEblue_count++;
  else 
red_count++;
}
if(
red_count == blue_countnew_team = (random(2) == 0) ? TEAM_BLUE TEAM_RED// equipo al azar si hay misma cantidad de jugadores
if(red_count blue_countnew_team TEAM_RED// equipo rojo si hay menos rojos que azules
if(red_count blue_countnew_team TEAM_BLUE// equipo azul si hay mбs rojos que azules
SetPlayerTeam(playeridnew_team); // ya hemos elegido el equipo ahora asignarlo al jugador. 
Reply
#3

Creo que he entendido tu idea. Voy a intentar hacerlo. Si tengo algъn problema, lo comentarй. Muchas gracias
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)