[Pedido] Obtener nombre de rango y/o facción

Moderador: Ayudantes

Cerrado
Antony Rodriguez
Aprendiz
Aprendiz
Mensajes: 295
Registrado: 17 Feb 2018 12:03
Reputación: 2

10 May 2019 10:14

Explicación detallada del pedido: Quisiera saber como obtener el nombre de un rango o facción y cuando use el cmd: Ej:
 Codigo Pawno:
1

CMD:r
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
mande un mensaje como Jefe de Policia Antony De Sousa [Radio]: (Mensaje).

Extra: Uso CMD, tengo las variables de admin y las de rango y faccion.
Después de tirar la toalla, Dije qué no volveria a pawn, Unos meses después volvi para aprender y enseñar, Dando riendas con un nuevo proyecto.
Avatar de Usuario
MrDave
Ayudante
Ayudante
Mensajes: 955
Registrado: 05 Oct 2017 12:13
Reputación: 107

12 May 2019 11:05

Mira esta publicación, de seguro, mi comentario te ayudará en algo:
Rangos

- 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.
Antony Rodriguez
Aprendiz
Aprendiz
Mensajes: 295
Registrado: 17 Feb 2018 12:03
Reputación: 2

12 May 2019 17:22

Perdon amigo por mi ignorancia pero no entendi mucho de tú comentario
Después de tirar la toalla, Dije qué no volveria a pawn, Unos meses después volvi para aprender y enseñar, Dando riendas con un nuevo proyecto.
Avatar de Usuario
MrDave
Ayudante
Ayudante
Mensajes: 955
Registrado: 05 Oct 2017 12:13
Reputación: 107

12 May 2019 19:16

Antony Rodriguez escribió:
12 May 2019 17:22
Perdon amigo por mi ignorancia pero no entendi mucho de tú comentario

No puedo complementar el pedido si no me das los nombres de las variables. "El de la facción".

- 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.
Antony Rodriguez
Aprendiz
Aprendiz
Mensajes: 295
Registrado: 17 Feb 2018 12:03
Reputación: 2

15 May 2019 13:55

MrDave escribió:
12 May 2019 19:16
Antony Rodriguez escribió:
12 May 2019 17:22
Perdon amigo por mi ignorancia pero no entendi mucho de tú comentario

No puedo complementar el pedido si no me das los nombres de las variables. "El de la facción".
En teoria lo qué me pides es esto
 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

CMD:darfaccion(playerid, params[])
{
	new id, faccion, textofacc[100];
    
    if(PlayerInfo[playerid][AdminLvl] == 3)
    {
    	if(sscanf(params, "dd", id, faccion)) return SendClientMessage(playerid, Blanco, "{6464FF}[Info]:{FFFFFF} Use /hacerlider [id][facc 1-3]");
    	{
    		if(!IsPlayerConnected(id)) return SendClientMessage(playerid, Blanco, "{A2A2A2}[Error]:{FFFFFF} El jugador no esta conectado.");
    		if(faccion < 1 || faccion > 3) return SendClientMessage(playerid, Blanco, "{A2A2A2}[Error]:{FFFFFF} Faccion del 1 al 3");
    		{
    			switch(faccion)
    			{
    				//Gubernamentales
    				case 0: {PlayerInfo[id][Faccion] = faccion; textofacc = "Ciudadano";}
    				case 1: {PlayerInfo[id][Faccion] = faccion; textofacc = "Los Angeles Police Department";}
    				case 2: {PlayerInfo[id][Faccion] = faccion; textofacc = "Los Angeles Sheriff Department";}
    				//Privadas
    				//Pandillas/Mafias
    			}
    			new mensaje[250];
    			PlayerInfo[id][Faccion] = faccion;
    			format(mensaje, 250, "El Administrador %s te dio la faccion %s", GetName(playerid), textofacc);
    			SendClientMessage(id, Blanco, mensaje);
    		}
    	}
    }
    else SendClientMessage(playerid, Blanco, "{A2A2A2}[Error]:{FFFFFF} No eres un administrador para usar este comando.");
	return 1;
}
  Cantidad de llaves: Abiertas(16)-Cerradas(16) | Lineas Totales: 30
Después de tirar la toalla, Dije qué no volveria a pawn, Unos meses después volvi para aprender y enseñar, Dando riendas con un nuevo proyecto.
Avatar de Usuario
MrDave
Ayudante
Ayudante
Mensajes: 955
Registrado: 05 Oct 2017 12:13
Reputación: 107

15 May 2019 17:20

Esto te puedes servir como ejemplo:
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

new NameFacc[][] =
{
	{"Ciudadano"},
	{"Police"},
	{"Sheriff"}
};


CMD:r(playerid, params[])
{
	if(isnull(params))
		return SendClientMessage(playerid, -1, "Uso: /r [mensaje]");
	new string[128];
	new name[24];
	GetPlayerName(playerid, name, 24);
	format(string, sizeof string, "[%s] %s [Radio]: %s", NameFacc[PlayerInfo[playerid][Faccion] - 1], name, params);
	SendClientMessage(playerid, -1, string);
	return 1;
}
  Cantidad de llaves: Abiertas(5)-Cerradas(5) | Lineas Totales: 19

- 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.
Antony Rodriguez
Aprendiz
Aprendiz
Mensajes: 295
Registrado: 17 Feb 2018 12:03
Reputación: 2

16 May 2019 15:11

MrDave escribió:
15 May 2019 17:20
Esto te puedes servir como ejemplo:
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

new NameFacc[][] =
{
	{"Ciudadano"},
	{"Police"},
	{"Sheriff"}
};


CMD:r(playerid, params[])
{
	if(isnull(params))
		return SendClientMessage(playerid, -1, "Uso: /r [mensaje]");
	new string[128];
	new name[24];
	GetPlayerName(playerid, name, 24);
	format(string, sizeof string, "[%s] %s [Radio]: %s", NameFacc[PlayerInfo[playerid][Faccion] - 1], name, params);
	SendClientMessage(playerid, -1, string);
	return 1;
}
  Cantidad de llaves: Abiertas(5)-Cerradas(5) | Lineas Totales: 19
La facción es lo de menos porque es para definir sí dicho jugador pertenece o no a la facción, Lo que me interesa es el rango, Como detectar cuando tiene un rango para hacer [Sargento-III] Antony DeSousa [Radio]: (Cualquier cosa), La facción es lo de menos pero gracias
Después de tirar la toalla, Dije qué no volveria a pawn, Unos meses después volvi para aprender y enseñar, Dando riendas con un nuevo proyecto.
Avatar de Usuario
MrDave
Ayudante
Ayudante
Mensajes: 955
Registrado: 05 Oct 2017 12:13
Reputación: 107

17 May 2019 16:51

Spoiler:
Antony Rodriguez escribió:
16 May 2019 15:11
MrDave escribió:
15 May 2019 17:20
Esto te puedes servir como ejemplo:
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

new NameFacc[][] =
{
	{"Ciudadano"},
	{"Police"},
	{"Sheriff"}
};


CMD:r(playerid, params[])
{
	if(isnull(params))
		return SendClientMessage(playerid, -1, "Uso: /r [mensaje]");
	new string[128];
	new name[24];
	GetPlayerName(playerid, name, 24);
	format(string, sizeof string, "[%s] %s [Radio]: %s", NameFacc[PlayerInfo[playerid][Faccion] - 1], name, params);
	SendClientMessage(playerid, -1, string);
	return 1;
}
  Cantidad de llaves: Abiertas(5)-Cerradas(5) | Lineas Totales: 19
La facción es lo de menos porque es para definir sí dicho jugador pertenece o no a la facción, Lo que me interesa es el rango, Como detectar cuando tiene un rango para hacer [Sargento-III] Antony DeSousa [Radio]: (Cualquier cosa), La facción es lo de menos pero gracias

Necesitas de un arreglo/array que guarda el nivel del rango de un jugador que pertenezca a X facción.
El método más fácil para obtener un rango de un miembro de una facción, es usando un switch principal y adentro de esos "cases", agregar switch anidados.
 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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67

#include <a_samp>

new Rango[MAX_PLAYERS];

rango(playerid)
{
	new rang[20];
	switch(PlayerInfo[playerid][Faccion])
	{
		case 0://Facción 1
		{
			switch(Rango[playerid])
			{
				case 0: //Nivel 1
				{
					rang = "Rango1";
				}
				case 1: //Nivel 2
				{
					rang = "Rango2";
				}
				case 2: //Nivel 3
				{
					rang = "Rango3";
				}
			}
		}
		case 1: //Facción 2
		{
			switch(Rango[playerid])
			{
				case 0: //Nivel 1
				{
					rang = "Rango1";
				}
				case 1: //Nivel 2
				{
					rang = "Rango2";
				}
				case 2: //Nivel 3
				{
					rang = "Rango3";
				}
			}
		}
		case 2: //Facción 3
		{
			switch(Rango[playerid])
			{
				case 0: //Nivel 1
				{
					rang = "Rango1";
				}
				case 1: //Nivel 2
				{
					rang = "Rango2";
				}
				case 2: //Nivel 3
				{
					rang = "Rango3";
				}
			}
		}
		//Etc...
	}
	return rang;
}
  Cantidad de llaves: Abiertas(17)-Cerradas(17) | Lineas Totales: 67
Para llamar la función "rango", lo haces esta manera:
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11

CMD:r(playerid, params[])
{
	if(isnull(params))
		return SendClientMessage(playerid, -1, "Uso: /r [mensaje]");
	new string[128];
	new name[24];
	GetPlayerName(playerid, name, 24);
	format(string, sizeof string, "[%s] %s [Radio]: %s", rango(playerid), name, params);
	SendClientMessage(playerid, -1, string);
	return 1;
}
  Cantidad de llaves: Abiertas(1)-Cerradas(1) | Lineas Totales: 11

- 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.
Antony Rodriguez
Aprendiz
Aprendiz
Mensajes: 295
Registrado: 17 Feb 2018 12:03
Reputación: 2

17 May 2019 21:18

MrDave escribió:
17 May 2019 16:51
Spoiler:
Antony Rodriguez escribió:
16 May 2019 15:11
MrDave escribió:
15 May 2019 17:20
Esto te puedes servir como ejemplo:
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

new NameFacc[][] =
{
	{"Ciudadano"},
	{"Police"},
	{"Sheriff"}
};


CMD:r(playerid, params[])
{
	if(isnull(params))
		return SendClientMessage(playerid, -1, "Uso: /r [mensaje]");
	new string[128];
	new name[24];
	GetPlayerName(playerid, name, 24);
	format(string, sizeof string, "[%s] %s [Radio]: %s", NameFacc[PlayerInfo[playerid][Faccion] - 1], name, params);
	SendClientMessage(playerid, -1, string);
	return 1;
}
  Cantidad de llaves: Abiertas(5)-Cerradas(5) | Lineas Totales: 19
La facción es lo de menos porque es para definir sí dicho jugador pertenece o no a la facción, Lo que me interesa es el rango, Como detectar cuando tiene un rango para hacer [Sargento-III] Antony DeSousa [Radio]: (Cualquier cosa), La facción es lo de menos pero gracias

Necesitas de un arreglo/array que guarda el nivel del rango de un jugador que pertenezca a X facción.
El método más fácil para obtener un rango de un miembro de una facción, es usando un switch principal y adentro de esos "cases", agregar switch anidados.
 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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67

#include <a_samp>

new Rango[MAX_PLAYERS];

rango(playerid)
{
	new rang[20];
	switch(PlayerInfo[playerid][Faccion])
	{
		case 0://Facción 1
		{
			switch(Rango[playerid])
			{
				case 0: //Nivel 1
				{
					rang = "Rango1";
				}
				case 1: //Nivel 2
				{
					rang = "Rango2";
				}
				case 2: //Nivel 3
				{
					rang = "Rango3";
				}
			}
		}
		case 1: //Facción 2
		{
			switch(Rango[playerid])
			{
				case 0: //Nivel 1
				{
					rang = "Rango1";
				}
				case 1: //Nivel 2
				{
					rang = "Rango2";
				}
				case 2: //Nivel 3
				{
					rang = "Rango3";
				}
			}
		}
		case 2: //Facción 3
		{
			switch(Rango[playerid])
			{
				case 0: //Nivel 1
				{
					rang = "Rango1";
				}
				case 1: //Nivel 2
				{
					rang = "Rango2";
				}
				case 2: //Nivel 3
				{
					rang = "Rango3";
				}
			}
		}
		//Etc...
	}
	return rang;
}
  Cantidad de llaves: Abiertas(17)-Cerradas(17) | Lineas Totales: 67
Para llamar la función "rango", lo haces esta manera:
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11

CMD:r(playerid, params[])
{
	if(isnull(params))
		return SendClientMessage(playerid, -1, "Uso: /r [mensaje]");
	new string[128];
	new name[24];
	GetPlayerName(playerid, name, 24);
	format(string, sizeof string, "[%s] %s [Radio]: %s", rango(playerid), name, params);
	SendClientMessage(playerid, -1, string);
	return 1;
}
  Cantidad de llaves: Abiertas(1)-Cerradas(1) | Lineas Totales: 11
Gracias, Tendré que poner más extenciones para obtener la facc y demas pero esta bien, Pueden cerrar tema.
Después de tirar la toalla, Dije qué no volveria a pawn, Unos meses después volvi para aprender y enseñar, Dando riendas con un nuevo proyecto.
Cerrado