Como puedo hacer un maximo por equipo?
#5

Primero explica un poco cуmo es el sistema. Una vez el usuario se conecta elige el equipo o cуmo? Lo queGAlvaro14 te estб mostrando es lo siguiente (y con el permiso de GAlvaro14 me baso en su cуdigo):

El cуdigo estб basado en que cuando te conectes al servidor, eligas un bando. Cуmo? con los comandos que creу Бlvaro (/serhumano o /serzombie). Una vez escribes el comando deseado te aсade al equipo. Si el equipo estб lleno no hace absoluutamente nada, no te aсade a ningъn equipo.

Код:
#define MAX_HUMANOS	5
#define MAX_ZOMBIES		5
#define HUMANO 1
#define ZOMBIE 2
Aquн bбsicamente decides cuбntos players por team quieres, como lo quieres parejo йl te puso de ejemplo 5 y 5 como mбximo (por equipo). Йste cуdigo tiene que estar arriba del todo, fuera de cualquier funciуn. Supongo que tendrбs algъn #define mбs creado, ponlo a continuaciуn. Modifica el 5 por el mбximo de players que quieras en cada equipo, es decir si quieres que el mбximo de humanos sea 10 pon #define HUMANO 10 y asн.

Lo mismo con HUMANO 1 y ZOMBIE 2, es la forma de identificar de forma sencilla el equipo al que el player pertenece. 1 serнa "Team Humano" y 2 serнa "Team Zombie".

Код:
new humanos;
new zombies;

new Tipo[MAX_PLAYERS];
Aquн bбsciamente estбs creando las variables "humanos", "zombies" y Tipo[id]. Las revisaremos mбs adelante, йste cуdigo debe ir despuйs de los define, por ejemplo, pero siempre fuera de cualquier funciуn.

Код:
zcmd(serhumano, playerid, params[])	{
	if (humanos < MAX_HUMANOS)	{
		RegistrarHumano(playerid);
		humanos++;
	}
	return 1:
}

zcmd(serzombie, playerid, params[])	{
	if (zombies < MAX_ZOMBIES)	{
		RegistrarZombie(playerid);
		zombies++;
	}
	return 1;
}
Йstos son los comandos /serhumano y /serzombie. Para poder ejecutar йstos comandos debes tener zcmd como include en tu GM (o Filterscript segъn uses). Aquн te dejo el enlace del Include y las instrucciones para instalarlo: https://sampforum.blast.hk/showthread.php?tid=91354
Son "funciones" extra, agrйgalas tal cual. El funcionamiento es simple,en los dos casos es igual asн que te lo explico en uno sуlo lнnea a lнnea:
Код:
zcmd(serzombie, playerid, params[])	{ // Es la forma de definir un comando en ZCMD.
	if (zombies < MAX_ZOMBIES)	{ // Si la variable zombies es mбs pequeсo que la variable mбximo de players por equipo de zombies (definido todo al principio)
		RegistrarZombie(playerid); // Llamamos a la funciуn para meter al player en el equipo zombie y le pasamos la id del player.
		zombies++; // a la variable zombies le agregamos 1, ya que el player ha entrado en el equipo
	}
	return 1; // devolvemos el comando correctamente
}
Cuando se desconecta el player, Бlvaro ha modificado la funciуn existente en SAMP para ajustarla al sistema. Te la dejo comentada y explicada:
Код:
public OnPlayerDisconnect(playerid, reason) // Funcion de samp
{
	if (Tipo[playerid] != 0) { // Si el tipo de player no es igual a 0 (es decir, zombie o humano)
		if (Tipo[playerid] == HUMANO) humanos--; // Si es humano, restamos 1 humano a la cuenta del equipo
		else zombies--; // Si es zombie, hacemos lo mismo
		Tipo[playerid] = 0; // Dejamos la variable a 0 para el siguiente player que use la ID. Esto es muy importante!!
	}
	return 1; // Desconectamos al usuario con йxito
}
Aquн tienes las funciones para agregar al usuario al equipo, son muy sencillas. Me baso en una para explicarte la funciуn.

Код:
stock RegistrarHumano(playerid)
{
	Tipo[playerid] = HUMANO); // Tipo[id del jugador a unirse] es igual a Humano. Lo mismo con Zombie
}
Reply


Messages In This Thread
Como puedo hacer un maximo por equipo? - by Matyaas - 25.08.2016, 23:54
Re: Como puedo hacer un maximo por equipo? - by GAlvaro14 - 26.08.2016, 08:45
Re: Como puedo hacer un maximo por equipo? - by GAlvaro14 - 26.08.2016, 11:11
Respuesta: Como puedo hacer un maximo por equipo? - by Matyaas - 28.08.2016, 06:30
Re: Como puedo hacer un maximo por equipo? - by HidroDF - 28.08.2016, 17:59
Respuesta: Como puedo hacer un maximo por equipo? - by adri1 - 29.08.2016, 07:39
Respuesta: Como puedo hacer un maximo por equipo? - by Matyaas - 30.08.2016, 00:29
Respuesta: Como puedo hacer un maximo por equipo? - by Matyaas - 31.08.2016, 19:04

Forum Jump:


Users browsing this thread: 1 Guest(s)