Aporte /llamar 815 para GameMode OZ.

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).
  • El título del tema debe contener el nombre del GameMode al cual está destinado el código (puedes utilizar abreviaturas o tags). Por ejemplo: "[ZC] Menú para 24/7".
Responder
Dorzok
Aprendiz
Aprendiz
Mensajes: 98
Registrado: 26 Ene 2017 20:35
Ubicación: Argentina.
Reputación: 2

30 Ene 2019 08:38

Buen día gente de pawnscript.
Hoy les vengo a aportar este sistema de llamar grúa como fenixzone. Está muy igual a fz, colores etc.
No hay bugs de momento, si hay alguno consultarlo!!.
 Codigo Pawno:
1
2
3

#define     DIALOGO_GRUA        92
#define     DIALOGO_GRUA2       93
#define     DIALOGO_GRUA3       94
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 3
En tus news definan esto:
 Codigo Pawno:
1

new tipogrua[MAX_PLAYERS];
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
En OnDialogResponse pongan 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
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284

		case DIALOGO_GRUA:
		{
			if(response)
			{
				new chatadmin[128];
				format(chatadmin, sizeof(chatadmin), "%s (por celular) dice: Sí, por favor.", NombreJugador(playerid));
				ProxDetector(15.0, playerid, chatadmin, COLOR_GRAD6, COLOR_GRAD5, COLOR_GRAD4, COLOR_GRAD3, COLOR_GRAD2);
				SetTimerEx("LlamadaGrua2",4000,false,"d",playerid);
			}
			else
			{
				new chatadmin[128];
				format(chatadmin, sizeof(chatadmin), "%s (por celular) dice: No, muchas gracias. ", NombreJugador(playerid));
				ProxDetector(15.0, playerid, chatadmin, COLOR_GRAD6, COLOR_GRAD5, COLOR_GRAD4, COLOR_GRAD3, COLOR_GRAD2);
				cmd_colgar(playerid);
			}
		}
		case DIALOGO_GRUA2:
		{
		    if(response)
		    {
				switch(listitem)
				{
					case 0:
					{
						if(PlayerInfo[playerid][pBanco] < PlayerInfo[playerid][vPrecio]/100) return SendClientMessage(playerid, -1, "No tienes el dinero suficiente para solícitar una grua a este vehículo");
                        tipogrua[playerid] = 1;
						new chatadmin[128];
						format(chatadmin, sizeof(chatadmin), "%s (por celular) dice: Al estacionamiento registrado con anterioridad.", NombreJugador(playerid));
						ProxDetector(15.0, playerid, chatadmin, COLOR_GRAD6, COLOR_GRAD5, COLOR_GRAD4, COLOR_GRAD3, COLOR_GRAD2);
						SetTimerEx("LlamadaGrua3",3000,false,"d",playerid);
					}
					case 1:
					{
                       	new chatadmin[128];
						format(chatadmin, sizeof(chatadmin), "%s (por celular) dice: Al estacionamiento municipal.", NombreJugador(playerid));
						ProxDetector(15.0, playerid, chatadmin, COLOR_GRAD6, COLOR_GRAD5, COLOR_GRAD4, COLOR_GRAD3, COLOR_GRAD2);
						tipogrua[playerid] = 2;
						SetTimerEx("LlamadaGrua3",3000,false,"d",playerid);
					}
				}
			}
			else
			{
           		new chatadmin[128];
				format(chatadmin, sizeof(chatadmin), "%s (por celular) dice: Perdón, ya no lo necesito. ", NombreJugador(playerid));
				ProxDetector(15.0, playerid, chatadmin, COLOR_GRAD6, COLOR_GRAD5, COLOR_GRAD4, COLOR_GRAD3, COLOR_GRAD2);
				cmd_colgar(playerid);
			}
		}
		case DIALOGO_GRUA3:
		{
			if(response)
			{
				switch(listitem)
				{
					case 0:
					{
						if(autos[playerid] == 0) return SendClientMessage(playerid,-1,"No puedes remolcar un vehículo que no existe.");
						new string5[500];
						new chatadmin[128];
						format(chatadmin, sizeof(chatadmin), "%s (por celular) dice: %s.", NombreJugador(playerid), PlayerInfo[playerid][vpatente]);
						ProxDetector(15.0, playerid, chatadmin, COLOR_GRAD6, COLOR_GRAD5, COLOR_GRAD4, COLOR_GRAD3, COLOR_GRAD2);
						format(string5,128,"{00d8ff}[Servicio de grúa]{FFFFFF} Angélica: Acabamos de enviar una grúa a buscar tu %s matrícula %s.",NombreAuto[GetVehicleModel(autos[playerid])-400], PlayerInfo[playerid][vpatente]);
						SendClientMessage(playerid,-1,string5);
						if(PlayerInfo[playerid][vip] == 0)
						{
							format(string5,128,"{00d8ff}[Servicio de grúa]{FFFFFF} Angélica: Se cobró $%d de tu cuenta bancaria.",PlayerInfo[playerid][vPrecio]/100);
							SendClientMessage(playerid,-1,string5);
							QuitarDinero(playerid, PlayerInfo[playerid][vPrecio]/100);
						}
						SendClientMessage(playerid,-1,"{00d8ff}[Servicio de grúa]{FFFFFF} Angélica: Muchas gracias por utilizar nuestro servicio.");
						cmd_colgar(playerid);
						switch(tipogrua[playerid])
						{
							case 1:
							{
								SetVehicleToRespawn(autos[playerid]);
							}
							case 2:
							{
								SendClientMessage(playerid, -1, "Una grua fue enviada a la posición de tu vehículo, el cual sera transladado hacia el estacionamiento municipal");
								new lugar = random(4);
								switch(lugar)
								{
									case 0:
									{
										SetVehiclePos(autos[playerid],-13.0813,-374.6711,5.4297);
										SetVehicleZAngle(autos[playerid],358.1299);
									}
									case 1:
									{
										SetVehiclePos(autos[playerid],-29.7148,-375.2507,5.4297);
										SetVehicleZAngle(autos[playerid],354.9965);
									}
									case 2:
									{
										SetVehiclePos(autos[playerid],-2.0937,-346.8077,5.4297);
										SetVehicleZAngle(autos[playerid],89.6241);
									}
									case 3:
									{
										SetVehiclePos(autos[playerid],-3.3296,-332.9302,5.4297);
										SetVehicleZAngle(autos[playerid],91.8175);
									}
								}
								LinkVehicleToInterior(autos[playerid], 0);
								SetVehicleVirtualWorld(autos[playerid], 0);
							}
						}
					}
					case 1:
					{
						new string6[500];
						if(autos2[playerid] == 0) return SendClientMessage(playerid,-1,"No puedes remolcar un vehículo que no existe.");
						new chatadmin[128];
						format(chatadmin, sizeof(chatadmin), "%s (por celular) dice: %s.", NombreJugador(playerid), PlayerInfo[playerid][v2patente]);
						ProxDetector(15.0, playerid, chatadmin, COLOR_GRAD6, COLOR_GRAD5, COLOR_GRAD4, COLOR_GRAD3, COLOR_GRAD2);
						format(string6,128,"{00d8ff}[Servicio de grúa]{FFFFFF} Angélica: Acabamos de enviar una grúa a buscar tu %s matrícula %s.",NombreAuto[GetVehicleModel(autos2[playerid])-400], PlayerInfo[playerid][v2patente]);
						SendClientMessage(playerid,-1,string6);
						if(PlayerInfo[playerid][vip] == 0)
						{
							format(string6,128,"{00d8ff}[Servicio de grúa]{FFFFFF} Angélica: Se cobró $%d de tu cuenta bancaria.",PlayerInfo[playerid][v2Precio]/100);
							SendClientMessage(playerid,-1,string6);
							QuitarDinero(playerid, PlayerInfo[playerid][v2Precio]/100);
						}
						SendClientMessage(playerid,-1,"{00d8ff}[Servicio de grúa]{FFFFFF} Angélica: Muchas gracias por utilizar nuestro servicio.");
						cmd_colgar(playerid);
						switch(tipogrua[playerid])
						{
							case 1:
							{
								SetVehicleToRespawn(autos2[playerid]);
							}
							case 2:
							{
								SendClientMessage(playerid, -1, "Una grua fue enviada a la posición de tu vehículo, el cual sera transladado hacia el estacionamiento municipal");
								new lugar = random(4);
								switch(lugar)
								{
									case 0:
									{
										SetVehiclePos(autos2[playerid],-13.0813,-374.6711,5.4297);
										SetVehicleZAngle(autos2[playerid],358.1299);
									}
									case 1:
									{
										SetVehiclePos(autos2[playerid],-29.7148,-375.2507,5.4297);
										SetVehicleZAngle(autos2[playerid],354.9965);
									}
									case 2:
									{
										SetVehiclePos(autos2[playerid],-2.0937,-346.8077,5.4297);
										SetVehicleZAngle(autos2[playerid],89.6241);
									}
									case 3:
									{
										SetVehiclePos(autos2[playerid],-3.3296,-332.9302,5.4297);
										SetVehicleZAngle(autos2[playerid],91.8175);
									}
								}
								LinkVehicleToInterior(autos2[playerid], 0);
								SetVehicleVirtualWorld(autos2[playerid], 0);
							}
						}
					}
					case 2:
					{
						new string8[500];
						if(autos3[playerid] == 0) return SendClientMessage(playerid,-1,"No puedes remolcar un vehículo que no existe.");
						new chatadmin[128];
						format(chatadmin, sizeof(chatadmin), "%s (por celular) dice: %s.", NombreJugador(playerid), PlayerInfo[playerid][v3patente]);
						ProxDetector(15.0, playerid, chatadmin, COLOR_GRAD6, COLOR_GRAD5, COLOR_GRAD4, COLOR_GRAD3, COLOR_GRAD2);
						format(string8,128,"{00d8ff}[Servicio de grúa]{FFFFFF} Angélica: Acabamos de enviar una grúa a buscar tu %s matrícula %s.",NombreAuto[GetVehicleModel(autos3[playerid])-400], PlayerInfo[playerid][v3patente]);
						SendClientMessage(playerid,-1,string8);
						if(PlayerInfo[playerid][vip] == 0)
						{
							format(string8,128,"{00d8ff}[Servicio de grúa]{FFFFFF} Angélica: Se cobró $%d de tu cuenta bancaria.",PlayerInfo[playerid][v3Precio]/100);
							SendClientMessage(playerid,-1,string8);
							QuitarDinero(playerid, PlayerInfo[playerid][v3Precio]/100);
						}
						SendClientMessage(playerid,-1,"{00d8ff}[Servicio de grúa]{FFFFFF} Angélica: Muchas gracias por utilizar nuestro servicio.");
						cmd_colgar(playerid);
						switch(tipogrua[playerid])
						{
							case 1:
							{
								SetVehicleToRespawn(autos3[playerid]);
							}
							case 2:
							{
								SendClientMessage(playerid, -1, "Una grua fue enviada a la posición de tu vehículo, el cual sera transladado hacia el estacionamiento municipal");
								new lugar = random(4);
								switch(lugar)
								{
									case 0:
									{
										SetVehiclePos(autos3[playerid],-13.0813,-374.6711,5.4297);
										SetVehicleZAngle(autos3[playerid],358.1299);
									}
									case 1:
									{
										SetVehiclePos(autos3[playerid],-29.7148,-375.2507,5.4297);
										SetVehicleZAngle(autos3[playerid],354.9965);
									}
									case 2:
									{
										SetVehiclePos(autos3[playerid],-2.0937,-346.8077,5.4297);
										SetVehicleZAngle(autos3[playerid],89.6241);
									}
									case 3:
									{
										SetVehiclePos(autos3[playerid],-3.3296,-332.9302,5.4297);
										SetVehicleZAngle(autos3[playerid],91.8175);
									}
								}
								LinkVehicleToInterior(autos3[playerid], 0);
								SetVehicleVirtualWorld(autos3[playerid], 0);
							}
						}
					}
					case 3:
					{
						new string7[500];
						if(autos4[playerid] == 0) return SendClientMessage(playerid,-1,"No puedes remolcar un vehículo que no existe.");
						new chatadmin[128];
						format(chatadmin, sizeof(chatadmin), "%s (por celular) dice: %s.", NombreJugador(playerid), PlayerInfo[playerid][v4patente]);
						ProxDetector(15.0, playerid, chatadmin, COLOR_GRAD6, COLOR_GRAD5, COLOR_GRAD4, COLOR_GRAD3, COLOR_GRAD2);
						format(string7,128,"{00d8ff}[Servicio de grúa]{FFFFFF} Angélica: Acabamos de enviar una grúa a buscar tu %s matrícula %s.",NombreAuto[GetVehicleModel(autos4[playerid])-400], PlayerInfo[playerid][v4patente]);
						SendClientMessage(playerid,-1,string7);
						if(PlayerInfo[playerid][vip] == 0)
						{
							format(string7,128,"{00d8ff}[Servicio de grúa]{FFFFFF} Angélica: Se cobró $%d de tu cuenta bancaria.",PlayerInfo[playerid][v4Precio]/100);
							SendClientMessage(playerid,-1,string7);
							QuitarDinero(playerid, PlayerInfo[playerid][v4Precio]/100);
						}
						SendClientMessage(playerid,-1,"{00d8ff}[Servicio de grúa]{FFFFFF} Angélica: Muchas gracias por utilizar nuestro servicio.");
						cmd_colgar(playerid);
						switch(tipogrua[playerid])
						{
							case 1:
							{
								SetVehicleToRespawn(autos4[playerid]);
							}
							case 2:
							{
								new lugar = random(4);
								switch(lugar)
								{
									case 0:
									{
										SetVehiclePos(autos4[playerid],-13.0813,-374.6711,5.4297);
										SetVehicleZAngle(autos4[playerid],358.1299);
									}
									case 1:
									{
										SetVehiclePos(autos4[playerid],-29.7148,-375.2507,5.4297);
										SetVehicleZAngle(autos4[playerid],354.9965);
									}
									case 2:
									{
										SetVehiclePos(autos4[playerid],-2.0937,-346.8077,5.4297);
										SetVehicleZAngle(autos4[playerid],89.6241);
									}
									case 3:
									{
										SetVehiclePos(autos4[playerid],-3.3296,-332.9302,5.4297);
										SetVehicleZAngle(autos4[playerid],91.8175);
									}
								}
								LinkVehicleToInterior(autos4[playerid], 0);
								SetVehicleVirtualWorld(autos4[playerid], 0);
							}
						}
					}
				}
			}
			else
			{
				new chatadmin[128];
				format(chatadmin, sizeof(chatadmin), "%s (por celular) dice: Perdón, no usaré el servicio.", NombreJugador(playerid));
				ProxDetector(15.0, playerid, chatadmin, COLOR_GRAD6, COLOR_GRAD5, COLOR_GRAD4, COLOR_GRAD3, COLOR_GRAD2);
			}
		}
  Cantidad de llaves: Abiertas(77)-Cerradas(77) | Lineas Totales: 284
Ahora definimos estos public y forward.
 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

forward LlamadaGrua(playerid);
public LlamadaGrua(playerid)
{
	new pName[32],string[500];
	GetPlayerName(playerid, pName, 32);
	SendClientMessage(playerid,-1,"{00d8ff}[Servicio de grúa]{FFFFFF} Angélica: Hola, ¿quieres utilizar nuestro servicio de grúas?");
	format(string,sizeof(string),"{FFFFFF}El servicio de grúa sirve para recuperar el vehículo, en caso de que haya quedado\nen un lugar inaccesible.\nPor ejemplo: En el agua, dentro del estacionamiento de una propiedad, en una pileta, etc.\n\nNota: Los jugadores {00CA00}VIP{FFFFFF} tienen este servicio de manera gratuita.\n\n{DBED15}¿Quieres utilizar este servicio?");
	ShowPlayerDialog(playerid, DIALOGO_GRUA, DIALOG_STYLE_MSGBOX, "Información sobre el servicio de grúa",string,"Si","No");
}

forward LlamadaGrua2(playerid);
public LlamadaGrua2(playerid)
{
	SendClientMessage(playerid,-1,"{00d8ff}[Servicio de grúa]{FFFFFF} Angélica: Perfecto, ¿a dónde quiere que llevemos su vehículo?");
	new stringo[256];
	format(stringo, 256, "Estacionamiento actual\nEstacionamiento municipal");
	ShowPlayerDialog(playerid, DIALOGO_GRUA2, DIALOG_STYLE_LIST,"Lugar de entrega",stringo,"Recuperar","Cancelar");
}

forward LlamadaGrua3(playerid);
public LlamadaGrua3(playerid)
{
    SendClientMessage(playerid,-1,"{00d8ff}[Servicio de grúa]{FFFFFF} Angélica: ¿Podría decirme la matrícula?");
	if(PlayerInfo[playerid][vModelo] > 0 || PlayerInfo[playerid][vModelo2] > 0 || PlayerInfo[playerid][vModelo3] > 0 || PlayerInfo[playerid][vModelo4] > 0)
	{
		new vehiculo1[150],vehiculo2[150],vehiculo3[150],vehiculo4[150],mensaje[600];
		if(PlayerInfo[playerid][vModelo] > 0)
		{
			format(vehiculo1, sizeof(vehiculo1), "Vehículo: {DBED15}%s{FFFFFF} | Patente: {00CCFF}%s{FFFFFF} | Costo del servicio: {FF3300}$%d", NombreAuto[GetVehicleModel(autos[playerid])-400], PlayerInfo[playerid][vpatente],PlayerInfo[playerid][vPrecio]/100);
		}
		if(PlayerInfo[playerid][vModelo2] > 0)
		{
			format(vehiculo2, sizeof(vehiculo2), "Vehículo: {DBED15}%s{FFFFFF} | Patente: {00CCFF}%s{FFFFFF} | Costo del servicio: {FF3300}$%d", NombreAuto[GetVehicleModel(autos2[playerid])-400], PlayerInfo[playerid][v2patente],PlayerInfo[playerid][v2Precio]/100);
		}
		if(PlayerInfo[playerid][vModelo3] > 0)
		{
			format(vehiculo3, sizeof(vehiculo3), "Vehículo: {DBED15}%s{FFFFFF} | Patente: {00CCFF}%s{FFFFFF} | Costo del servicio: {FF3300}$%d", NombreAuto[GetVehicleModel(autos3[playerid])-400], PlayerInfo[playerid][v3patente],PlayerInfo[playerid][v3Precio]/100);
		}
		if(PlayerInfo[playerid][vModelo4] > 0)
		{
			format(vehiculo4, sizeof(vehiculo4), "Vehículo: {DBED15}%s{FFFFFF} | Patente: {00CCFF}%s{FFFFFF} | Costo del servicio: {FF3300}$%d", NombreAuto[GetVehicleModel(autos4[playerid])-400], PlayerInfo[playerid][v4patente],PlayerInfo[playerid][v4Precio]/100);
		}
		format(mensaje, sizeof(mensaje),     "%s", 			vehiculo1);
		format(mensaje, sizeof(mensaje), "%s\n%s",mensaje,	vehiculo2);
		format(mensaje, sizeof(mensaje), "%s\n%s",mensaje,	vehiculo3);
		format(mensaje, sizeof(mensaje), "%s\n%s",mensaje,	vehiculo4);
		ShowPlayerDialog(playerid, DIALOGO_GRUA3, DIALOG_STYLE_LIST, "Vehiculo que deseas recuperar con el servicio de grúa", mensaje, "Recuperar","Cancelar");
	}
}
  Cantidad de llaves: Abiertas(38)-Cerradas(38) | Lineas Totales: 49
Y por último ponemos esto en el comando llamar, luego del for new.
 Codigo Pawno:
1
2
3
4
5
6
7
8

		if(phonenumb == 815)
		{
			PlayerInfo[playerid][MobileSub] = 815;
			SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USECELLPHONE);
			SetTimerEx("LlamadaGrua",5000,false,"d",playerid);
			SendClientMessage(playerid, -1, "Llamando al servicio de grúa... usa {DBED15}/colgar{FFFFFF} para cancelar la llamada.");
			return 1;
		}
  Cantidad de llaves: Abiertas(3)-Cerradas(3) | Lineas Totales: 8
Última edición por Dorzok el 11 Feb 2019 19:12, editado 1 vez en total.
Angel_Cassiidy
Aprendiz
Aprendiz
Mensajes: 35
Registrado: 05 Jul 2017 07:35
Reputación: 0

05 Feb 2019 21:12

Esto no funciona, esta mal, revisalo y te darás de cuenta. -good
Dorzok
Aprendiz
Aprendiz
Mensajes: 98
Registrado: 26 Ene 2017 20:35
Ubicación: Argentina.
Reputación: 2

11 Feb 2019 19:12

Angel_Cassiidy escribió:
05 Feb 2019 21:12
Esto no funciona, esta mal, revisalo y te darás de cuenta. -good
Hola, el callback LlamadaGrua3 llama al DIALOGO_GRUA4, lo cual no existe. Me confundí en esa parte. Solucionado!
Angel_Cassiidy
Aprendiz
Aprendiz
Mensajes: 35
Registrado: 05 Jul 2017 07:35
Reputación: 0

12 Feb 2019 09:18

Dorzok escribió:
11 Feb 2019 19:12
Angel_Cassiidy escribió:
05 Feb 2019 21:12
Esto no funciona, esta mal, revisalo y te darás de cuenta. -good
Hola, el callback LlamadaGrua3 llama al DIALOGO_GRUA4, lo cual no existe. Me confundí en esa parte. Solucionado!
A eso me refería exactamente. -thumbup
Avatar de Usuario
WayMond
Aprendiz
Aprendiz
Mensajes: 18
Registrado: 05 Feb 2019 16:08
Ubicación: Mi casa
Contactar:
Reputación: 2

14 May 2019 16:14

Hola, quite el otro sistema de /llamar 815 que usted publico en el otro aporte pero mi duda es... ¿Que diferencia tiene este del otro??
No leo mensajes amenos que no sea en Discord:

@| K A S H |#6579

Abierto para todo tipo de proyectos sobre Pawn, Contactarme a mi Discord
Spoiler:
HostName: Hyper-Roleplay en español | Contraseña: 123
Address: Mantenimiento (Si quieres jugarlo es por via hamachi por ahora)
Players: X / 500
Ping: 133
Mode: HP:RP v1.21 - Rol en español
Language: Español - Spanish
Responder