[Guia] Como crear un servidor TDM

Aprende lo que no sabes de este lenguaje y encuentra herramientas y códigos útiles.

Moderador: Ayudantes

Reglas del Foro
  • Si tu código es corto, no crees un tema nuevo para liberarlo, publica un mensaje en el tema [Funciones] ¡Publica tu código aquí!.
  • Si creas una guía, debes explicar el código claramente. Evita poner la explicación en forma de comentarios dentro del mismo y no olvides utilizar el BBCode correspondiente: [Pawn]Código aquí[/Pawn].
  • No postear códigos sin probar. Publicar códigos con errores (que impidan compilar el script para el cual está destinado) en este apartado es motivo de sanción.
  • Si tu código necesita plugins, includes u otros códigos adicionales para funcionar, debes mencionarlo en el mensaje.
  • Si has utilizado códigos de otros autores, recuerda colocar los créditos correspondientes. (El plagio es motivo de sanción).
  • Si tu aporte es para un GameMode en específico, debes publicar el tema en el apartado "Guías y Aportes para GameModes específicos".
Responder
Avatar de Usuario
MrDave
Ayudante
Ayudante
Mensajes: 1050
Registrado: 05 Oct 2017 12:13
Reputación: 113

29 Oct 2017 10:59

Alejo_Mayer escribió:
28 Oct 2017 21:28
Smoke123 escribió:
26 Jul 2014 21:27
Bien,hemos creado ya los equipos.
Que falta?
Pues nos falta,darles skins a los teams,y ponerlos en OnPlayerRequestSpawn.
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10

public OnGameModeInit()
{
AddPlayerClass(280,2161.5742,1905.0181,10.8203,35.7537,0,0,0,0,0,0); // poli
AddPlayerClass(281,2496.5444,-1670.4746,13.3359,84.2291,0,0,0,0,0,0); // poli
AddPlayerClass(284,2496.5444,-1670.4746,13.3359,84.2291,0,0,0,0,0,0); // poli
AddPlayerClass(106,800.7412,-1394.9552,13.4432,336.0926,0,0,0,0,0,0); // groove
AddPlayerClass(107,2485.0122,-1677.2888,13.3373,110.6219,0,0,0,0,0,0); // groove
AddPlayerClass(105,800.7412,-1394.9552,13.4432,336.0926,0,0,0,0,0,0); // groove
return 1;
}
  Cantidad de llaves: Abiertas(1)-Cerradas(1) | Lineas Totales: 10

Perdon si revivo, pero quiero seaber como agregar eso y porque sale onplayerequestspawn y después ongamemodeinit no entiendo.
Estas son todos los skin que tendrán cada equipo y siempre debe colocarse en este OnGameModeInit para que se ejecute primero..
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10

public OnGameModeInit()//este callback es llamado cuando el servidor se prende..
{
AddPlayerClass(280,2161.5742,1905.0181,10.8203,35.7537,0,0,0,0,0,0); // poli
AddPlayerClass(281,2496.5444,-1670.4746,13.3359,84.2291,0,0,0,0,0,0); // poli
AddPlayerClass(284,2496.5444,-1670.4746,13.3359,84.2291,0,0,0,0,0,0); // poli
AddPlayerClass(106,800.7412,-1394.9552,13.4432,336.0926,0,0,0,0,0,0); // groove
AddPlayerClass(107,2485.0122,-1677.2888,13.3373,110.6219,0,0,0,0,0,0); // groove
AddPlayerClass(105,800.7412,-1394.9552,13.4432,336.0926,0,0,0,0,0,0); // groove
return 1;
}
  Cantidad de llaves: Abiertas(1)-Cerradas(1) | Lineas Totales: 10

- Temporalmente estoy retirado de SA-MP; por lo tanto no me envíen propuestas de proyectos.
- No respondo dudas por privado, usa la sección de preguntas.
Alejo_Mayer
Aprendiz
Aprendiz
Mensajes: 25
Registrado: 24 Ene 2016 15:35
Reputación: 0

29 Oct 2017 20:19

MrDave escribió:
29 Oct 2017 10:59
Alejo_Mayer escribió:
28 Oct 2017 21:28
Smoke123 escribió:
26 Jul 2014 21:27
Bien,hemos creado ya los equipos.
Que falta?
Pues nos falta,darles skins a los teams,y ponerlos en OnPlayerRequestSpawn.
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10

public OnGameModeInit()
{
AddPlayerClass(280,2161.5742,1905.0181,10.8203,35.7537,0,0,0,0,0,0); // poli
AddPlayerClass(281,2496.5444,-1670.4746,13.3359,84.2291,0,0,0,0,0,0); // poli
AddPlayerClass(284,2496.5444,-1670.4746,13.3359,84.2291,0,0,0,0,0,0); // poli
AddPlayerClass(106,800.7412,-1394.9552,13.4432,336.0926,0,0,0,0,0,0); // groove
AddPlayerClass(107,2485.0122,-1677.2888,13.3373,110.6219,0,0,0,0,0,0); // groove
AddPlayerClass(105,800.7412,-1394.9552,13.4432,336.0926,0,0,0,0,0,0); // groove
return 1;
}
  Cantidad de llaves: Abiertas(1)-Cerradas(1) | Lineas Totales: 10

Perdon si revivo, pero quiero seaber como agregar eso y porque sale onplayerequestspawn y después ongamemodeinit no entiendo.
Estas son todos los skin que tendrán cada equipo y siempre debe colocarse en este OnGameModeInit para que se ejecute primero..
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10

public OnGameModeInit()//este callback es llamado cuando el servidor se prende..
{
AddPlayerClass(280,2161.5742,1905.0181,10.8203,35.7537,0,0,0,0,0,0); // poli
AddPlayerClass(281,2496.5444,-1670.4746,13.3359,84.2291,0,0,0,0,0,0); // poli
AddPlayerClass(284,2496.5444,-1670.4746,13.3359,84.2291,0,0,0,0,0,0); // poli
AddPlayerClass(106,800.7412,-1394.9552,13.4432,336.0926,0,0,0,0,0,0); // groove
AddPlayerClass(107,2485.0122,-1677.2888,13.3373,110.6219,0,0,0,0,0,0); // groove
AddPlayerClass(105,800.7412,-1394.9552,13.4432,336.0926,0,0,0,0,0,0); // groove
return 1;
}
  Cantidad de llaves: Abiertas(1)-Cerradas(1) | Lineas Totales: 10

¿Y para qué el OnPlayerRequestSpawn? Y después, ¿Cómo pongo un máximo de personas en el team?
Mapper: 90%
Scripter: 0,6%
Webmaster: 0%
Progreso Idea "ODMISGM" (Acortado pa evitar que se me anticipen al pawno :v) 0%
[ESTOPEADA]
Progreso NewIsland DM 0.2% [EN CURSO]

¿Mi propósito para 2018? Subir scripter hasta un 20-25 porciento.
Avatar de Usuario
MrDave
Ayudante
Ayudante
Mensajes: 1050
Registrado: 05 Oct 2017 12:13
Reputación: 113

29 Oct 2017 20:43

Spoiler:
Alejo_Mayer escribió:
29 Oct 2017 20:19
MrDave escribió:
29 Oct 2017 10:59
Alejo_Mayer escribió:
28 Oct 2017 21:28



Perdon si revivo, pero quiero seaber como agregar eso y porque sale onplayerequestspawn y después ongamemodeinit no entiendo.
Estas son todos los skin que tendrán cada equipo y siempre debe colocarse en este OnGameModeInit para que se ejecute primero..
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10

public OnGameModeInit()//este callback es llamado cuando el servidor se prende..
{
AddPlayerClass(280,2161.5742,1905.0181,10.8203,35.7537,0,0,0,0,0,0); // poli
AddPlayerClass(281,2496.5444,-1670.4746,13.3359,84.2291,0,0,0,0,0,0); // poli
AddPlayerClass(284,2496.5444,-1670.4746,13.3359,84.2291,0,0,0,0,0,0); // poli
AddPlayerClass(106,800.7412,-1394.9552,13.4432,336.0926,0,0,0,0,0,0); // groove
AddPlayerClass(107,2485.0122,-1677.2888,13.3373,110.6219,0,0,0,0,0,0); // groove
AddPlayerClass(105,800.7412,-1394.9552,13.4432,336.0926,0,0,0,0,0,0); // groove
return 1;
}
  Cantidad de llaves: Abiertas(1)-Cerradas(1) | Lineas Totales: 10

¿Y para qué el OnPlayerRequestSpawn? Y después, ¿Cómo pongo un máximo de personas en el team?
OnPlayerRequestSpawn es un callback que va a ser llamado cuando el jugador este en la selección de clases y presione el botón "spawn".
Ejemplo:
 Codigo Pawno:
1
2
3
4
5
6
7
8
9

public OnPlayerRequestSpawn(playerid)
{
if(GetPlayerSkin(playerid) == 0)//si el skin del jugador llega a ser el id 0, se cumple la restriccion.
{
SendClientMessage(playerid,-1,"ERROR: Este skin no esta permitido en el servidor.");
return 0;//esto bloquea el botón "spawn" y hace que el jugador no pueda spawnear correctamente.
}
return 1;
}
  Cantidad de llaves: Abiertas(2)-Cerradas(2) | Lineas Totales: 9
Para poner un máximo de personas en un determinado equipo lo puedes hacer de esta manera.
Ejemplo:
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

enum @ID_TEAMS
{
POLI, 
TERRO
};

new Teams[MAX_PLAYERS];

stock GetTeamCount(TEAM_ID)
{
new Count = 0;
for(new i = 0, g = GetPlayerPoolSize(); i <= g; i++)
{
if(!((IsPlayerConnected(i) == 1) && (Teams[i] == TEAM_ID))) continue;
Count++;
}
return Count;
}

stock EquilibrarEquipos(TEAM_ID)
{
if(GetTeamCount(TEAM_ID) > GetTeamCount(TERRO) || GetTeamCount(TEAM_ID) > GetTeamCount(POLI))return 1;
return 0;
}

public OnPlayerRequestSpawn(playerid)
{
if(EquilibrarEquipos(POLI) == 1)return SendClientMessage(playerid,-1,"ERROR: El equipo de policía esta lleno."), 0;
else if(EquilibrarEquipos(TERRO) == 1)return SendClientMessage(playerid,-1,"ERROR: El equipo de terrorista esta lleno."), 0;
return 1;
}
  Cantidad de llaves: Abiertas(5)-Cerradas(5) | Lineas Totales: 31
Ejemplo 2:
 Codigo Pawno:
1
2
3
4
5
6

CMD:base(playerid)
{
if(GetTeamCount(POLI) > 5) return SendClientMessage(playerid,-1,"ERROR: Solo pueden ingresar 5 policías a la base.");
//tu demás código..
return 1;
}
  Cantidad de llaves: Abiertas(1)-Cerradas(1) | Lineas Totales: 6

- Temporalmente estoy retirado de SA-MP; por lo tanto no me envíen propuestas de proyectos.
- No respondo dudas por privado, usa la sección de preguntas.
Camilo quitian
Aprendiz
Aprendiz
Mensajes: 62
Registrado: 30 Mar 2018 19:32
Reputación: 0

16 Ago 2018 22:44

BRO TODO BIEN PERO CUANDO LE DOY MAS CLICK PARA CAMBIAR EQUIPO ME APARECEN SKINS NORMALES COMO UN SELECTOR DE SKINS COMO BLOQUEO EL RESTO Y COMO PUEDO HACER PARA QUE CUANDO ESTE ESCOJIENDO SALGA MAS O MENOD ASI
[ Imagen Externa ]
Responder