Programación en Pawn - SAMP

[FS] Armas en el suelo para Rp

¿Tienes un FilterScript muy bueno y quieres compartirlo con los demás? ¿Qué esperas? ¡Muéstranoslo aquí!
Reglas del Foro

  • Al liberar un FilterScript, debes informar sobre qué trata el código claramente, imágenes o vídeos y la explicación de cómo usarlo.
  • En caso de que quieras publicar un TextDraw que únicamente cumpla una función estética (como ser un TextDraw que muestra el nombre del servidor), es decir, no cumple ninguna función más que decorativa/visual (a diferencia de un TextDraw que realiza la función de velocímetro y contiene los códigos para ello, por ejemplo), debe ir en la sección Guías y Aportes.
  • Si el link de descarga no funciona, el tema será eliminado.
  • Si no eres el autor del FilterScript o has utilizado códigos de otros autores, recuerda colocar los créditos correspondientes. (El plagio es motivo de sanción).

Moderador: Ayudantes

Hola Invitado -hi Bienvenido a mi 3er Filterscripts.

Bueno indagando un poco por el lado dark de mi pc encontré este filterscripts no es la gran cosa, pero esta bueno para servidores RolePlay su función es tirar el arma al suelo, y poder tomarla de nuevo sin más les dejo la información de dicho fs

Imágenes: Rol que salta al tirar / tomar el arma
Spoiler:
Imagen

Imagen
y como queda en el suelo
Spoiler:
Imagen
Comandos:

Código: Seleccionar todo

/tirararma
/recogerarma
y/o
/tarma
/rarma
Code:
 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
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302

#include <a_samp>

#define MAX_ARMAS 100 // El máximo de armas que pueden haber en el suelo.
#define COLOR_VIOLETA 0xC2A2DAAA
// -----------------------------------------------------------------------------
new Float:ObjCoords[MAX_ARMAS][3];
new Object[MAX_ARMAS];
new ObjectID[MAX_ARMAS][2];
new BigEar[MAX_PLAYERS];
// -----------------------------------------------------------------------------
new GunNames[48][] = { // Armas
	"nada",
	"un puño americano",
	"un palo de golf",
	"una porra policial",
	"una navaja",
	"un bate de baseball",
	"una pala",
	"un palo de pool",
	"una katana",
	"una motosierra",
	"un consolador violeta",
	"un consolador corto blanco",
	"un consolador largo blanco",
	"un consolador",
	"un ramo de flores",
	"un bastón",
	"una granada explosiva",
	"una granada de humo",
	"un cóctel molotov",
	"misil de hunter o hydra",
	"fuego de hydra",
	"un propulsor",
	"una pistola 9mm",
	"una pistola 9mm silenciada",
	"una pistola desert eagle",
	"una escopeta normal",
	"una escopeta recortada",
	"una escopeta de combate",
	"un micro subfusil uzi",
	"un subfusil mp5",
	"un rifle automático ak47",
	"un rifle automático m4",
	"un micro subfusil tec9",
	"un rifle de caza",
	"un rifle de francotirador",
	"un lanzacohetes",
	"un lanzamisiles busca calor",
	"un lanzallamas",
	"una minigun",
	"una carga explosiva",
	"un detonador de carga explosiva",
	"un aerosol de gas pimienta",
	"un extintor de fuego",
	"una cámara fotográfica",
	"unas gafas de visión nocturna",
	"unas gafas de visión infrarroja",
	"un paracaídas",
	"pistola falsa"
};

new GunObjects[47][0] = { // Objetos
	{0},// Ninguna.
	{331},// Puño americano.
	{333},// Palo de golf.
	{334},// Porra policial.
	{335},// Navaja.
	{336},// Bate de béisbol.
	{337},// Pala.
	{338},// Palo de pool.
	{339},// Katana.
	{341},// Motosierra.
	{321},// Consolador violeta.
	{322},// Consolador corto blanco.
	{323},// Consolador largo blanco.
	{324},// Consolador vibrador.
	{325},// Ramo de flores.
	{326},// Bastón.
	{342},// Granada.
	{343},// Grabada de gas lacrimógeno.
	{344},// Cóctel Molotov.
	{0},
	{0},
	{0},
	{346},// 9mm.
	{347},// 9mm con silenciador.
	{348},// Desert eagle.
	{349},// Escopeta normal.
	{350},// Escopeta recortada.
	{351},// Escopeta de combate.
	{352},// UZI
	{353},// MP5
	{355},// AK47
	{356},// M4
	{372},// Tec-9
	{357},// Rifle de caza.
	{358},// Rifle de francotirador (sniper)
	{359},// Lanzaconhetes.
	{360},// Lanzacohetes busca-calor.
	{361},// Lanzallamas.
	{362},// Minigun.
	{363},// Detonador.
	{364},// Botón de detonador.
	{365},// Aerosol de gas pimienta.
	{366},// Extinguidor de fuego.
	{367},// Cámara fotográfica.
	{368},// Gafas de visión nocturna.
	{368},// Gafas de visión infrarroja.
	{371}// Paracaídas.
};
// -----------------------------------------------------------------------------
public OnPlayerDeath(playerid, killerid, reason)
{
	new gunID = GetPlayerWeapon(playerid);
	new gunAmmo = GetPlayerAmmo(playerid);
	if(gunID != 0 && gunAmmo != 0)
	{
		new f = MAX_ARMAS+1;
		for(new a = 0; a < sizeof(ObjCoords); a++)
		{
			if(ObjCoords[a][0] == 0.0)
			{
				f = a;
				break;
			}
		}
  		ObjectID[f][0] = gunID;
		ObjectID[f][1] = gunAmmo;
 		GetPlayerPos(playerid, ObjCoords[f][0], ObjCoords[f][1], ObjCoords[f][2]);
 		Object[f] = CreateObject(GunObjects[gunID][0],ObjCoords[f][0],ObjCoords[f][1],ObjCoords[f][2]-1,93.7,120.0,120.0);
	}
	return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
	new cmd[256];
	new idx;
	cmd = strtok(cmdtext, idx);
	if(strcmp(cmd, "/tirararma", true) == 0 || strcmp(cmd, "/tarma", true) == 0)
	{
		new gunID = GetPlayerWeapon(playerid);
		new gunAmmo = GetPlayerAmmo(playerid);
		if(gunID != 0 && gunAmmo != 0)
		{
			new f = MAX_ARMAS+1;
			for(new a = 0; a < sizeof(ObjCoords); a++)
			{
				if(ObjCoords[a][0] == 0.0)
				{
					f = a;
					break;
				}
			}
			if(f > MAX_ARMAS) return SendClientMessage(playerid, 0x33AA3300, "No puede tirar armas en éste momento, intente más tarde."); // Éste mensaje aparece si se superó el límite [MAX_ARMAS]
		    new gunname[25];
		    new string[100];
			GetWeaponNameEx(gunID, gunname, sizeof(gunname));
			format(string, sizeof(string), "* %s tira %s al suelo.", PlayerName(playerid), gunname);
			ProxDetector(30.0, playerid, string, COLOR_VIOLETA,COLOR_VIOLETA,COLOR_VIOLETA,COLOR_VIOLETA,COLOR_VIOLETA);
			RemovePlayerWeapon(playerid, gunID);
			ObjectID[f][0] = gunID;
			ObjectID[f][1] = gunAmmo;
	        GetPlayerPos(playerid, ObjCoords[f][0], ObjCoords[f][1], ObjCoords[f][2]);
	        Object[f] = CreateObject(GunObjects[gunID][0],ObjCoords[f][0],ObjCoords[f][1],ObjCoords[f][2]-1,93.7,120.0,120.0);
			return 1;
		}
	}
	if(strcmp(cmd, "/recogerarma", true) == 0 || strcmp(cmd, "/rarma", true) == 0)
	{
		new f = MAX_ARMAS+1;
		for(new a = 0; a < sizeof(ObjCoords); a++)
		{
			if(IsPlayerInRangeOfPoint(playerid, 5.0, ObjCoords[a][0], ObjCoords[a][1], ObjCoords[a][2]))
			{
				f = a;
				break;
			}
		}
		if(f > MAX_ARMAS) return SendClientMessage(playerid, 0x33AA3300, "No estás cerca de ningún arma.");
		else
		{
		    new gunname[25];
		    new string[100];
		    
			ObjCoords[f][0] = 0.0;
			ObjCoords[f][1] = 0.0;
			ObjCoords[f][2] = 0.0;

			DestroyObject(Object[f]);
			GivePlayerWeapon(playerid, ObjectID[f][0], ObjectID[f][1]);
			GetWeaponNameEx(ObjectID[f][0], gunname, sizeof(gunname));
			format(string, sizeof(string), "* %s recoge %s al suelo.", PlayerName(playerid), gunname);
			ProxDetector(30.0, playerid, string, COLOR_VIOLETA,COLOR_VIOLETA,COLOR_VIOLETA,COLOR_VIOLETA,COLOR_VIOLETA);
		}
		return 1;
	}
	return 0;
}
// -----------------------------------------------------------------------------
forward ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5);
public ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
{
	if(IsPlayerConnected(playerid))
	{
		new Float:posx, Float:posy, Float:posz;
		new Float:oldposx, Float:oldposy, Float:oldposz;
		new Float:tempposx, Float:tempposy, Float:tempposz;
		GetPlayerPos(playerid, oldposx, oldposy, oldposz);
		//radi = 2.0; //Trigger Radius
		for(new i = 0; i < MAX_PLAYERS; i++)
		{
			if(IsPlayerConnected(i) && (GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i)))
			{
				if(!BigEar[i])
				{
         			GetPlayerPos(i, posx, posy, posz);
					tempposx = (oldposx -posx);
					tempposy = (oldposy -posy);
					tempposz = (oldposz -posz);
					if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))
					{
						SendClientMessage(i, col1, string);
					}
					else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8)))
					{
						SendClientMessage(i, col2, string);
					}
					else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4)))
					{
						SendClientMessage(i, col3, string);
					}
					else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2)))
					{
						SendClientMessage(i, col4, string);
					}
					else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
					{
						SendClientMessage(i, col5, string);
					}
				}
				else
				{
					SendClientMessage(i, col1, string);
				}
			}
		}
	}//not connected
	return 1;
}

stock GetWeaponNameEx(id, name[], len) return format(name,len, "%s", GunNames[id]);

stock RemovePlayerWeapon(playerid, weaponid);
public RemovePlayerWeapon(playerid, weaponid)
{
	new plyWeapons[12] = 0;
	new plyAmmo[12] = 0;
	for(new sslot = 0; sslot != 12; sslot++)
	{
		new wep, ammo;
		GetPlayerWeaponData(playerid, sslot, wep, ammo);
		if(wep != weaponid && ammo != 0) GetPlayerWeaponData(playerid, sslot, plyWeapons[sslot], plyAmmo[sslot]);
	}
	ResetPlayerWeapons(playerid);
	for(new sslot = 0; sslot != 12; sslot++)
	{
	    if(plyAmmo[sslot] != 0) GivePlayerWeapon(playerid, plyWeapons[sslot], plyAmmo[sslot]);
	}
	return 1;
}

strtok(const string[], &index)
{
	new length = strlen(string);
	while ((index < length) && (string[index] <= ' '))
	{
		index++;
	}
	new offset = index;
	new result[20];
	while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
	{
		result[index - offset] = string[index];
		index++;
	}
	result[index - offset] = EOS;
	return result;
}

stock PlayerName(playerid)
{
    new Nombre[24];
    GetPlayerName(playerid,Nombre,24);
    new N[24];
    strmid(N,Nombre,0,strlen(Nombre),24);
    for(new i = 0; i < MAX_PLAYER_NAME; i++)
    {
        if (N[i] == '_') N[i] = ' ';
    }
    return N;
}
  Cantidad de llaves: Abiertas(81)-Cerradas(81) | Lineas Totales: 302
Bugs / Aclaración

Por ahora no eh encontrado ningún bug, si encuentran uno pueden comentarlo. Aclaro que no se de quien es no tengo los créditos solo se que tiene 3 años en mi pc -laughing
ImAndres escribió:
05 May 2018 15:09
Hola Invitado -hi Bienvenido a mi 3er Filterscripts.

Bueno indagando un poco por el lado dark de mi pc encontré este filterscripts no es la gran cosa, pero esta bueno para servidores RolePlay su función es tirar el arma al suelo, y poder tomarla de nuevo sin más les dejo la información de dicho fs

Imágenes: Rol que salta al tirar / tomar el arma
Spoiler:
Imagen

Imagen
y como queda en el suelo
Spoiler:
Imagen
Comandos:

Código: Seleccionar todo

/tirararma
/recogerarma
y/o
/tarma
/rarma
Code:
 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
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302

#include <a_samp>

#define MAX_ARMAS 100 // El máximo de armas que pueden haber en el suelo.
#define COLOR_VIOLETA 0xC2A2DAAA
// -----------------------------------------------------------------------------
new Float:ObjCoords[MAX_ARMAS][3];
new Object[MAX_ARMAS];
new ObjectID[MAX_ARMAS][2];
new BigEar[MAX_PLAYERS];
// -----------------------------------------------------------------------------
new GunNames[48][] = { // Armas
	"nada",
	"un puño americano",
	"un palo de golf",
	"una porra policial",
	"una navaja",
	"un bate de baseball",
	"una pala",
	"un palo de pool",
	"una katana",
	"una motosierra",
	"un consolador violeta",
	"un consolador corto blanco",
	"un consolador largo blanco",
	"un consolador",
	"un ramo de flores",
	"un bastón",
	"una granada explosiva",
	"una granada de humo",
	"un cóctel molotov",
	"misil de hunter o hydra",
	"fuego de hydra",
	"un propulsor",
	"una pistola 9mm",
	"una pistola 9mm silenciada",
	"una pistola desert eagle",
	"una escopeta normal",
	"una escopeta recortada",
	"una escopeta de combate",
	"un micro subfusil uzi",
	"un subfusil mp5",
	"un rifle automático ak47",
	"un rifle automático m4",
	"un micro subfusil tec9",
	"un rifle de caza",
	"un rifle de francotirador",
	"un lanzacohetes",
	"un lanzamisiles busca calor",
	"un lanzallamas",
	"una minigun",
	"una carga explosiva",
	"un detonador de carga explosiva",
	"un aerosol de gas pimienta",
	"un extintor de fuego",
	"una cámara fotográfica",
	"unas gafas de visión nocturna",
	"unas gafas de visión infrarroja",
	"un paracaídas",
	"pistola falsa"
};

new GunObjects[47][0] = { // Objetos
	{0},// Ninguna.
	{331},// Puño americano.
	{333},// Palo de golf.
	{334},// Porra policial.
	{335},// Navaja.
	{336},// Bate de béisbol.
	{337},// Pala.
	{338},// Palo de pool.
	{339},// Katana.
	{341},// Motosierra.
	{321},// Consolador violeta.
	{322},// Consolador corto blanco.
	{323},// Consolador largo blanco.
	{324},// Consolador vibrador.
	{325},// Ramo de flores.
	{326},// Bastón.
	{342},// Granada.
	{343},// Grabada de gas lacrimógeno.
	{344},// Cóctel Molotov.
	{0},
	{0},
	{0},
	{346},// 9mm.
	{347},// 9mm con silenciador.
	{348},// Desert eagle.
	{349},// Escopeta normal.
	{350},// Escopeta recortada.
	{351},// Escopeta de combate.
	{352},// UZI
	{353},// MP5
	{355},// AK47
	{356},// M4
	{372},// Tec-9
	{357},// Rifle de caza.
	{358},// Rifle de francotirador (sniper)
	{359},// Lanzaconhetes.
	{360},// Lanzacohetes busca-calor.
	{361},// Lanzallamas.
	{362},// Minigun.
	{363},// Detonador.
	{364},// Botón de detonador.
	{365},// Aerosol de gas pimienta.
	{366},// Extinguidor de fuego.
	{367},// Cámara fotográfica.
	{368},// Gafas de visión nocturna.
	{368},// Gafas de visión infrarroja.
	{371}// Paracaídas.
};
// -----------------------------------------------------------------------------
public OnPlayerDeath(playerid, killerid, reason)
{
	new gunID = GetPlayerWeapon(playerid);
	new gunAmmo = GetPlayerAmmo(playerid);
	if(gunID != 0 && gunAmmo != 0)
	{
		new f = MAX_ARMAS+1;
		for(new a = 0; a < sizeof(ObjCoords); a++)
		{
			if(ObjCoords[a][0] == 0.0)
			{
				f = a;
				break;
			}
		}
  		ObjectID[f][0] = gunID;
		ObjectID[f][1] = gunAmmo;
 		GetPlayerPos(playerid, ObjCoords[f][0], ObjCoords[f][1], ObjCoords[f][2]);
 		Object[f] = CreateObject(GunObjects[gunID][0],ObjCoords[f][0],ObjCoords[f][1],ObjCoords[f][2]-1,93.7,120.0,120.0);
	}
	return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
	new cmd[256];
	new idx;
	cmd = strtok(cmdtext, idx);
	if(strcmp(cmd, "/tirararma", true) == 0 || strcmp(cmd, "/tarma", true) == 0)
	{
		new gunID = GetPlayerWeapon(playerid);
		new gunAmmo = GetPlayerAmmo(playerid);
		if(gunID != 0 && gunAmmo != 0)
		{
			new f = MAX_ARMAS+1;
			for(new a = 0; a < sizeof(ObjCoords); a++)
			{
				if(ObjCoords[a][0] == 0.0)
				{
					f = a;
					break;
				}
			}
			if(f > MAX_ARMAS) return SendClientMessage(playerid, 0x33AA3300, "No puede tirar armas en éste momento, intente más tarde."); // Éste mensaje aparece si se superó el límite [MAX_ARMAS]
		    new gunname[25];
		    new string[100];
			GetWeaponNameEx(gunID, gunname, sizeof(gunname));
			format(string, sizeof(string), "* %s tira %s al suelo.", PlayerName(playerid), gunname);
			ProxDetector(30.0, playerid, string, COLOR_VIOLETA,COLOR_VIOLETA,COLOR_VIOLETA,COLOR_VIOLETA,COLOR_VIOLETA);
			RemovePlayerWeapon(playerid, gunID);
			ObjectID[f][0] = gunID;
			ObjectID[f][1] = gunAmmo;
	        GetPlayerPos(playerid, ObjCoords[f][0], ObjCoords[f][1], ObjCoords[f][2]);
	        Object[f] = CreateObject(GunObjects[gunID][0],ObjCoords[f][0],ObjCoords[f][1],ObjCoords[f][2]-1,93.7,120.0,120.0);
			return 1;
		}
	}
	if(strcmp(cmd, "/recogerarma", true) == 0 || strcmp(cmd, "/rarma", true) == 0)
	{
		new f = MAX_ARMAS+1;
		for(new a = 0; a < sizeof(ObjCoords); a++)
		{
			if(IsPlayerInRangeOfPoint(playerid, 5.0, ObjCoords[a][0], ObjCoords[a][1], ObjCoords[a][2]))
			{
				f = a;
				break;
			}
		}
		if(f > MAX_ARMAS) return SendClientMessage(playerid, 0x33AA3300, "No estás cerca de ningún arma.");
		else
		{
		    new gunname[25];
		    new string[100];
		    
			ObjCoords[f][0] = 0.0;
			ObjCoords[f][1] = 0.0;
			ObjCoords[f][2] = 0.0;

			DestroyObject(Object[f]);
			GivePlayerWeapon(playerid, ObjectID[f][0], ObjectID[f][1]);
			GetWeaponNameEx(ObjectID[f][0], gunname, sizeof(gunname));
			format(string, sizeof(string), "* %s recoge %s al suelo.", PlayerName(playerid), gunname);
			ProxDetector(30.0, playerid, string, COLOR_VIOLETA,COLOR_VIOLETA,COLOR_VIOLETA,COLOR_VIOLETA,COLOR_VIOLETA);
		}
		return 1;
	}
	return 0;
}
// -----------------------------------------------------------------------------
forward ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5);
public ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
{
	if(IsPlayerConnected(playerid))
	{
		new Float:posx, Float:posy, Float:posz;
		new Float:oldposx, Float:oldposy, Float:oldposz;
		new Float:tempposx, Float:tempposy, Float:tempposz;
		GetPlayerPos(playerid, oldposx, oldposy, oldposz);
		//radi = 2.0; //Trigger Radius
		for(new i = 0; i < MAX_PLAYERS; i++)
		{
			if(IsPlayerConnected(i) && (GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i)))
			{
				if(!BigEar[i])
				{
         			GetPlayerPos(i, posx, posy, posz);
					tempposx = (oldposx -posx);
					tempposy = (oldposy -posy);
					tempposz = (oldposz -posz);
					if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))
					{
						SendClientMessage(i, col1, string);
					}
					else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8)))
					{
						SendClientMessage(i, col2, string);
					}
					else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4)))
					{
						SendClientMessage(i, col3, string);
					}
					else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2)))
					{
						SendClientMessage(i, col4, string);
					}
					else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
					{
						SendClientMessage(i, col5, string);
					}
				}
				else
				{
					SendClientMessage(i, col1, string);
				}
			}
		}
	}//not connected
	return 1;
}

stock GetWeaponNameEx(id, name[], len) return format(name,len, "%s", GunNames[id]);

stock RemovePlayerWeapon(playerid, weaponid);
public RemovePlayerWeapon(playerid, weaponid)
{
	new plyWeapons[12] = 0;
	new plyAmmo[12] = 0;
	for(new sslot = 0; sslot != 12; sslot++)
	{
		new wep, ammo;
		GetPlayerWeaponData(playerid, sslot, wep, ammo);
		if(wep != weaponid && ammo != 0) GetPlayerWeaponData(playerid, sslot, plyWeapons[sslot], plyAmmo[sslot]);
	}
	ResetPlayerWeapons(playerid);
	for(new sslot = 0; sslot != 12; sslot++)
	{
	    if(plyAmmo[sslot] != 0) GivePlayerWeapon(playerid, plyWeapons[sslot], plyAmmo[sslot]);
	}
	return 1;
}

strtok(const string[], &index)
{
	new length = strlen(string);
	while ((index < length) && (string[index] <= ' '))
	{
		index++;
	}
	new offset = index;
	new result[20];
	while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
	{
		result[index - offset] = string[index];
		index++;
	}
	result[index - offset] = EOS;
	return result;
}

stock PlayerName(playerid)
{
    new Nombre[24];
    GetPlayerName(playerid,Nombre,24);
    new N[24];
    strmid(N,Nombre,0,strlen(Nombre),24);
    for(new i = 0; i < MAX_PLAYER_NAME; i++)
    {
        if (N[i] == '_') N[i] = ' ';
    }
    return N;
}
  Cantidad de llaves: Abiertas(81)-Cerradas(81) | Lineas Totales: 302
Bugs / Aclaración

Por ahora no eh encontrado ningún bug, si encuentran uno pueden comentarlo. Aclaro que no se de quien es no tengo los créditos solo se que tiene 3 años en mi pc -laughing

Buen sistema, yo recien aporte uno igual pero lo deje abandonado, tengo una duda yo yo tengo unas variables de unas armas por ejemplo:

Arma1
Arma2
Arma3
Arma4
Arma5
MunicioArma1
MunicionArma2
Etc...

Y quiero que para usar el comando, tenga la variable del arma ¿como hago?
Depende de la variable no? por ejemplo MuniciónA1

Un ejemplo de como podría funcionar

MunicionA1 - Necesitas % de munición para poder tirar el arma

Con el arma1, arma2, arma3 etc podria ser un arma predefinida, por ejemplo arma1- necesitas tener un desert eagle para poder tomarla / tirarla
Podrías dar créditos al creador, o al menos decir que es sacado de Zenon City.
FedeNet escribió:
07 May 2018 17:22
Podrías dar créditos al creador, o al menos decir que es sacado de Zenon City.
Claro con mucho gusto, pero no se quien es el creador amigo tiene tanto tiempo esto en mi pc no recuerdo de donde lo saque. Si usted me dice con gusto los coloco -hi y no sabia que era sacado de Zenon City Toca recalcar que en ningún momento dije que fuese mio ni que yo lo cree un saludito -nosweat
ImAndres escribió:
07 May 2018 17:55
FedeNet escribió:
07 May 2018 17:22
Podrías dar créditos al creador, o al menos decir que es sacado de Zenon City.
Claro con mucho gusto, pero no se quien es el creador amigo tiene tanto tiempo esto en mi pc no recuerdo de donde lo saque. Si usted me dice con gusto los coloco -hi y no sabia que era sacado de Zenon City Toca recalcar que en ningún momento dije que fuese mio ni que yo lo cree un saludito -nosweat
Viendo bien el aporte, este es igual a mi FS, igual hay te lo paso para que mires.
viewtopic.php?f=81&t=11695
Viendo bien el aporte, este es igual a mi FS, igual hay te lo paso para que mires.
viewtopic.php?f=81&t=11695
Si es el mismo, pero recuerdo que use este fs y tenia un bug no se si ya lo reparo
ImAndres escribió:
15 May 2018 13:24
Viendo bien el aporte, este es igual a mi FS, igual hay te lo paso para que mires.
viewtopic.php?f=81&t=11695
Si es el mismo, pero recuerdo que use este fs y tenia un bug no se si ya lo reparo
Si, mi FS tenia un problema y era que al morir no dejaba las armas en el suelo

Buen aporte igualmente -dance4
ImAndres escribió:
05 May 2018 15:09
Hola Invitado -hi Bienvenido a mi 3er Filterscripts.
baia baia , Buen aporte
Diper escribió:
20 May 2018 10:27
ImAndres escribió:
05 May 2018 15:09
Hola Invitado -hi Bienvenido a mi 3er Filterscripts.
baia baia , Buen aporte
Gracias my friend -happy
ImAndres escribió:
05 May 2018 15:09
Hola Invitado -hi Bienvenido a mi 3er Filterscripts.

Bueno indagando un poco por el lado dark de mi pc encontré este filterscripts no es la gran cosa, pero esta bueno para servidores RolePlay su función es tirar el arma al suelo, y poder tomarla de nuevo sin más les dejo la información de dicho fs

Imágenes: Rol que salta al tirar / tomar el arma
Spoiler:
Imagen

Imagen
y como queda en el suelo
Spoiler:
Imagen
Comandos:

Código: Seleccionar todo

/tirararma
/recogerarma
y/o
/tarma
/rarma
Code:
 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
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302

#include <a_samp>

#define MAX_ARMAS 100 // El máximo de armas que pueden haber en el suelo.
#define COLOR_VIOLETA 0xC2A2DAAA
// -----------------------------------------------------------------------------
new Float:ObjCoords[MAX_ARMAS][3];
new Object[MAX_ARMAS];
new ObjectID[MAX_ARMAS][2];
new BigEar[MAX_PLAYERS];
// -----------------------------------------------------------------------------
new GunNames[48][] = { // Armas
	"nada",
	"un puño americano",
	"un palo de golf",
	"una porra policial",
	"una navaja",
	"un bate de baseball",
	"una pala",
	"un palo de pool",
	"una katana",
	"una motosierra",
	"un consolador violeta",
	"un consolador corto blanco",
	"un consolador largo blanco",
	"un consolador",
	"un ramo de flores",
	"un bastón",
	"una granada explosiva",
	"una granada de humo",
	"un cóctel molotov",
	"misil de hunter o hydra",
	"fuego de hydra",
	"un propulsor",
	"una pistola 9mm",
	"una pistola 9mm silenciada",
	"una pistola desert eagle",
	"una escopeta normal",
	"una escopeta recortada",
	"una escopeta de combate",
	"un micro subfusil uzi",
	"un subfusil mp5",
	"un rifle automático ak47",
	"un rifle automático m4",
	"un micro subfusil tec9",
	"un rifle de caza",
	"un rifle de francotirador",
	"un lanzacohetes",
	"un lanzamisiles busca calor",
	"un lanzallamas",
	"una minigun",
	"una carga explosiva",
	"un detonador de carga explosiva",
	"un aerosol de gas pimienta",
	"un extintor de fuego",
	"una cámara fotográfica",
	"unas gafas de visión nocturna",
	"unas gafas de visión infrarroja",
	"un paracaídas",
	"pistola falsa"
};

new GunObjects[47][0] = { // Objetos
	{0},// Ninguna.
	{331},// Puño americano.
	{333},// Palo de golf.
	{334},// Porra policial.
	{335},// Navaja.
	{336},// Bate de béisbol.
	{337},// Pala.
	{338},// Palo de pool.
	{339},// Katana.
	{341},// Motosierra.
	{321},// Consolador violeta.
	{322},// Consolador corto blanco.
	{323},// Consolador largo blanco.
	{324},// Consolador vibrador.
	{325},// Ramo de flores.
	{326},// Bastón.
	{342},// Granada.
	{343},// Grabada de gas lacrimógeno.
	{344},// Cóctel Molotov.
	{0},
	{0},
	{0},
	{346},// 9mm.
	{347},// 9mm con silenciador.
	{348},// Desert eagle.
	{349},// Escopeta normal.
	{350},// Escopeta recortada.
	{351},// Escopeta de combate.
	{352},// UZI
	{353},// MP5
	{355},// AK47
	{356},// M4
	{372},// Tec-9
	{357},// Rifle de caza.
	{358},// Rifle de francotirador (sniper)
	{359},// Lanzaconhetes.
	{360},// Lanzacohetes busca-calor.
	{361},// Lanzallamas.
	{362},// Minigun.
	{363},// Detonador.
	{364},// Botón de detonador.
	{365},// Aerosol de gas pimienta.
	{366},// Extinguidor de fuego.
	{367},// Cámara fotográfica.
	{368},// Gafas de visión nocturna.
	{368},// Gafas de visión infrarroja.
	{371}// Paracaídas.
};
// -----------------------------------------------------------------------------
public OnPlayerDeath(playerid, killerid, reason)
{
	new gunID = GetPlayerWeapon(playerid);
	new gunAmmo = GetPlayerAmmo(playerid);
	if(gunID != 0 && gunAmmo != 0)
	{
		new f = MAX_ARMAS+1;
		for(new a = 0; a < sizeof(ObjCoords); a++)
		{
			if(ObjCoords[a][0] == 0.0)
			{
				f = a;
				break;
			}
		}
  		ObjectID[f][0] = gunID;
		ObjectID[f][1] = gunAmmo;
 		GetPlayerPos(playerid, ObjCoords[f][0], ObjCoords[f][1], ObjCoords[f][2]);
 		Object[f] = CreateObject(GunObjects[gunID][0],ObjCoords[f][0],ObjCoords[f][1],ObjCoords[f][2]-1,93.7,120.0,120.0);
	}
	return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
	new cmd[256];
	new idx;
	cmd = strtok(cmdtext, idx);
	if(strcmp(cmd, "/tirararma", true) == 0 || strcmp(cmd, "/tarma", true) == 0)
	{
		new gunID = GetPlayerWeapon(playerid);
		new gunAmmo = GetPlayerAmmo(playerid);
		if(gunID != 0 && gunAmmo != 0)
		{
			new f = MAX_ARMAS+1;
			for(new a = 0; a < sizeof(ObjCoords); a++)
			{
				if(ObjCoords[a][0] == 0.0)
				{
					f = a;
					break;
				}
			}
			if(f > MAX_ARMAS) return SendClientMessage(playerid, 0x33AA3300, "No puede tirar armas en éste momento, intente más tarde."); // Éste mensaje aparece si se superó el límite [MAX_ARMAS]
		    new gunname[25];
		    new string[100];
			GetWeaponNameEx(gunID, gunname, sizeof(gunname));
			format(string, sizeof(string), "* %s tira %s al suelo.", PlayerName(playerid), gunname);
			ProxDetector(30.0, playerid, string, COLOR_VIOLETA,COLOR_VIOLETA,COLOR_VIOLETA,COLOR_VIOLETA,COLOR_VIOLETA);
			RemovePlayerWeapon(playerid, gunID);
			ObjectID[f][0] = gunID;
			ObjectID[f][1] = gunAmmo;
	        GetPlayerPos(playerid, ObjCoords[f][0], ObjCoords[f][1], ObjCoords[f][2]);
	        Object[f] = CreateObject(GunObjects[gunID][0],ObjCoords[f][0],ObjCoords[f][1],ObjCoords[f][2]-1,93.7,120.0,120.0);
			return 1;
		}
	}
	if(strcmp(cmd, "/recogerarma", true) == 0 || strcmp(cmd, "/rarma", true) == 0)
	{
		new f = MAX_ARMAS+1;
		for(new a = 0; a < sizeof(ObjCoords); a++)
		{
			if(IsPlayerInRangeOfPoint(playerid, 5.0, ObjCoords[a][0], ObjCoords[a][1], ObjCoords[a][2]))
			{
				f = a;
				break;
			}
		}
		if(f > MAX_ARMAS) return SendClientMessage(playerid, 0x33AA3300, "No estás cerca de ningún arma.");
		else
		{
		    new gunname[25];
		    new string[100];
		    
			ObjCoords[f][0] = 0.0;
			ObjCoords[f][1] = 0.0;
			ObjCoords[f][2] = 0.0;

			DestroyObject(Object[f]);
			GivePlayerWeapon(playerid, ObjectID[f][0], ObjectID[f][1]);
			GetWeaponNameEx(ObjectID[f][0], gunname, sizeof(gunname));
			format(string, sizeof(string), "* %s recoge %s al suelo.", PlayerName(playerid), gunname);
			ProxDetector(30.0, playerid, string, COLOR_VIOLETA,COLOR_VIOLETA,COLOR_VIOLETA,COLOR_VIOLETA,COLOR_VIOLETA);
		}
		return 1;
	}
	return 0;
}
// -----------------------------------------------------------------------------
forward ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5);
public ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
{
	if(IsPlayerConnected(playerid))
	{
		new Float:posx, Float:posy, Float:posz;
		new Float:oldposx, Float:oldposy, Float:oldposz;
		new Float:tempposx, Float:tempposy, Float:tempposz;
		GetPlayerPos(playerid, oldposx, oldposy, oldposz);
		//radi = 2.0; //Trigger Radius
		for(new i = 0; i < MAX_PLAYERS; i++)
		{
			if(IsPlayerConnected(i) && (GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i)))
			{
				if(!BigEar[i])
				{
         			GetPlayerPos(i, posx, posy, posz);
					tempposx = (oldposx -posx);
					tempposy = (oldposy -posy);
					tempposz = (oldposz -posz);
					if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))
					{
						SendClientMessage(i, col1, string);
					}
					else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8)))
					{
						SendClientMessage(i, col2, string);
					}
					else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4)))
					{
						SendClientMessage(i, col3, string);
					}
					else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2)))
					{
						SendClientMessage(i, col4, string);
					}
					else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
					{
						SendClientMessage(i, col5, string);
					}
				}
				else
				{
					SendClientMessage(i, col1, string);
				}
			}
		}
	}//not connected
	return 1;
}

stock GetWeaponNameEx(id, name[], len) return format(name,len, "%s", GunNames[id]);

stock RemovePlayerWeapon(playerid, weaponid);
public RemovePlayerWeapon(playerid, weaponid)
{
	new plyWeapons[12] = 0;
	new plyAmmo[12] = 0;
	for(new sslot = 0; sslot != 12; sslot++)
	{
		new wep, ammo;
		GetPlayerWeaponData(playerid, sslot, wep, ammo);
		if(wep != weaponid && ammo != 0) GetPlayerWeaponData(playerid, sslot, plyWeapons[sslot], plyAmmo[sslot]);
	}
	ResetPlayerWeapons(playerid);
	for(new sslot = 0; sslot != 12; sslot++)
	{
	    if(plyAmmo[sslot] != 0) GivePlayerWeapon(playerid, plyWeapons[sslot], plyAmmo[sslot]);
	}
	return 1;
}

strtok(const string[], &index)
{
	new length = strlen(string);
	while ((index < length) && (string[index] <= ' '))
	{
		index++;
	}
	new offset = index;
	new result[20];
	while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
	{
		result[index - offset] = string[index];
		index++;
	}
	result[index - offset] = EOS;
	return result;
}

stock PlayerName(playerid)
{
    new Nombre[24];
    GetPlayerName(playerid,Nombre,24);
    new N[24];
    strmid(N,Nombre,0,strlen(Nombre),24);
    for(new i = 0; i < MAX_PLAYER_NAME; i++)
    {
        if (N[i] == '_') N[i] = ' ';
    }
    return N;
}
  Cantidad de llaves: Abiertas(81)-Cerradas(81) | Lineas Totales: 302
Bugs / Aclaración

Por ahora no eh encontrado ningún bug, si encuentran uno pueden comentarlo. Aclaro que no se de quien es no tengo los créditos solo se que tiene 3 años en mi pc -laughing
Como le hago para cuando tenga un arma de la misma categoría, me diga que ya tengo un arma, ejem: Tengo ak47, y quiero recoger m4, que me diga que debo tirar una para coger otra, ya que cuando cojo una m4 teniendo ak, me saca el anti cheat, si puedes me das tu FB PAra pasarmelo al priv, si quieres, por cierto, buen aporte.

¿Quién está conectado?

En total hay 1 usuario conectado :: 0 registrados, 0 ocultos y 1 invitado (basados en usuarios activos en los últimos 5 minutos)
La mayor cantidad de usuarios identificados fue 855 el 27 May 2018 00:03

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado