View difference between Paste ID: NjECSiqH and 2xkSGLke
SHOW: | | - or go back to the newest paste.
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
                             Anti-Cheat(ELC_AC)
29
30
                                PROTECTIONS :
31
                              Anti-Weapon HACK
32
                               Anti-Ammo HACK
33
                            Anti-Ammo Block HACK
34
                               Anti-Money HACK
35
                               Anti-Speed HACK
36
				     	Anti-Teleport & Anti-Airbreak
37
				     		  Anti-Health HACK
38
				     		  Anti-Armour HACK
39
				  		  Anti-VEHICLE TELEPORT HACK
40
					     	    Anti-Crasher
41
42
                                    BUG :
43
               					  Nothing
44
45
                                  VERSION :
46
						            V4.4
47
48
							     COMPATIBLE :
49
							     SA-MP 0.3z
50
51
                                  CREDITS :
52
                              ELOCTRO (SCRIPT)
53
                       SIM (GetTickCount for linux)
54
                            Donya(Anti-Crasher)
55
                       Mineralo(OnPlayerCheat Update)
56
57
				          ELC_AC THE BEST PROTECTION
58
		                              !
59
60
                                    \**/
61
/*/- Anti-Cheat By Eloctro -----------------------------------------------------
62
63
                            ELC PRODUCTION(FRANCE)
64
65-
                         http://eloctro.blogspot.com/
65+
                          http://elcprod.bb-fr.com/
66
*/
67
#if defined _elc_ac_included
68
	#endinput
69
#endif
70
#define _elc_ac_included
71
72
#if defined _elc_ac_compill
73
#error You must add ELC_CONNECTOR or ELC_BASE but not add both
74
#endif
75
#define _elc_ac_compill
76
/*----------------------------------------------------------------------------*/
77
#include <a_samp>
78
/*----------------------------------------------------------------------------*/
79
//Anti-Cheat Statut defaut :
80
#define ANTI_WEAPON_&_AMMO_HACK     1
81
#define ANTI_AMMO_BLOCK_HACK        1
82-
#define ANTI_VEHICLE-TELEPORT_HACK  1//1->Normal Protection,2->Hight Proection
82+
83
#define ANTI_SPEED_HACK             1
84
#define ANTI_TELEPORT/AIBREAK_HACK  1
85
#define ANTI_HEALTH_HACK            0//Not fix
86
#define ANTI_ARMOUR_HACK            0//Not fix
87
#define ANTI_VEHICLE-TELEPORT_HACK  2//1->Normal Protection,2->Hight Proection
88
//Configuration :
89
#define MAX_SPEED_VEHICLE                   380.0 // SPEED VEHICLE MAX(380=default)
90
#define MAX_VEHICLE_DISTANCE_PER_SECOND     180   // DISTANCE PARCOUR MAX VEHICLE PER SECOND(180=default)
91
#define MAX_PED_DISTANCE_PER_SECOND         100   // DISTANCE PARCOUR MAX AT PED PER SECOND(100=default)
92
#define SPRINT_SPEED                        30.0  // (30=DEFAULT)
93
#define TIMER_CHEAT_RATE                    3500  // (3500=DEFAULT)
94
#define TIME_GRANULITY                      50    // Granulity GetTickCount
95
#define DELAY_LOAD_AFTER_SPAWN              5000
96
#define MAX_DELAY_SEND_STATS                2000
97
#define MAX_DELAY_WAIT_AFTER_SPAWN          3000
98
#define MAX_VEHICLE_DISTANCE_UCM            10
99
#define MAX_WEAPON_SHOT_FOR_CHECK           5
100
//STATUS MODE :
101
//#define NO_TICK_COUNT  //uncomment If GetTickCount() bug(linux?)
102
#define INCLUDE_BASE_MODE //uncomment to pass in mod include
103
#define MODE_DELAY_SEND_STATS //uncomment if the sending of stats is a bit slow(RECOMMANDED)
104
#define DISABLE_MONEY_DEATHLOSE //uncomment if you disable the lose of 100$ after death
105
//Calcul(DON'T TOUCH)----------------------------------------------------------
106
#define XMAX_VEHICLE_DISTANCE_PER_SECOND MAX_VEHICLE_DISTANCE_PER_SECOND*(TIMER_CHEAT_RATE/1000)
107
#define XMAX_PED_DISTANCE_PER_SECOND MAX_PED_DISTANCE_PER_SECOND*(TIMER_CHEAT_RATE/1000)
108
#define SaveTime(%0,%1) %0=%1+MAX_DELAY_SEND_STATS
109
#define IsPassTime(%0,%1,%2) (%1<%2&&CheatPlayerInfo[%0][elc_LastUpdate]!=0&&CheatPlayerInfo[%0][elc_LastUpdate]<%2)//Time Action ,Time Now
110
#define IsPlayerCheatPos(%0) (((GetPlayerSurfingVehicleID(%0)!=INVALID_VEHICLE_ID || IsPlayerInAnyVehicle(%0)) && !IsPlayerInRangeOfPoint(%0,XMAX_VEHICLE_DISTANCE_PER_SECOND,CheatPlayerInfo[%0][elc_posx],CheatPlayerInfo[%0][elc_posy],CheatPlayerInfo[%0][elc_posz]))||!IsPlayerInRangeOfPoint(%0,XMAX_PED_DISTANCE_PER_SECOND,CheatPlayerInfo[%0][elc_posx],CheatPlayerInfo[%0][elc_posy],CheatPlayerInfo[%0][elc_posz]))
111
#define LastPlayerUpdate(%0) (CheatPlayerInfo[%0][elc_LastUpdate]-GetTickCount())
112
113
#define IsPlayerCheatAllowTelPos(%0) (((GetPlayerSurfingVehicleID(%0)!=INVALID_VEHICLE_ID || IsPlayerInAnyVehicle(%0)) && !IsPlayerInRangeOfPoint(%0,XMAX_VEHICLE_DISTANCE_PER_SECOND,CheatPlayerInfo[%0][elc_AllowTelX],CheatPlayerInfo[%0][elc_AllowTelY],CheatPlayerInfo[%0][elc_AllowTelZ]))|| \
114
!IsPlayerInRangeOfPoint(%0,XMAX_PED_DISTANCE_PER_SECOND,CheatPlayerInfo[%0][elc_AllowTelX],CheatPlayerInfo[%0][elc_AllowTelY],CheatPlayerInfo[%0][elc_AllowTelZ]))
115
116
#define IsPlayerUpdatePos(%0) !IsPlayerInRangeOfPoint(%0,0.5,CheatPlayerInfo[%0][elc_posx],CheatPlayerInfo[%0][elc_posy],CheatPlayerInfo[%0][elc_posz])
117
118
#define ELC_AC_IsCreatedVehicle(%0) (GetVehicleModel(%0)!=0)
119
/*----------------------------------------------------------------------------*/
120
enum aELCp
121
{
122
	elc_money,
123
	elc_ammo[13],
124
	elc_weapon[13],
125
	elc_tickfire,
126
	elc_ammoFire,
127
	elc_weaponFire,
128
	Float:elc_health,
129
	Float:elc_armour,
130
	elc_timer,
131
	Float:elc_posx,
132
	Float:elc_posy,
133
	Float:elc_posz,
134
	elc_interior,
135
	elc_virtualworld,
136
	Float:elc_AllowTelX,
137
	Float:elc_AllowTelY,
138
	Float:elc_AllowTelZ,
139
	elc_AntiTeleportHack,
140
	elc_AntiWeaponHack,
141
	elc_AntiAmmoBlockHack,
142
	elc_AntiMoneyHack,
143
	elc_AntiSpeedHack,
144
	elc_AntiHealthHack,
145
	elc_AntiArmourHack,
146
	elc_AntiVehicleTelportHack,
147
#if defined MODE_DELAY_SEND_STATS
148
	elc_GiveWeaponTime,
149
	elc_GiveMoneyTime,
150
	elc_GiveHealthTime,
151
	elc_GiveArmourTime,
152
#endif
153
	elc_SetPositionTime,
154
	elc_PlayerEnterTime,
155
	elc_PlayerEnterVeh,
156
	elc_PossibleVehicleHack,
157
	elc_LastUpdate,
158
	elc_TimeSpawn
159
};
160
161
new CheatPlayerInfo[MAX_PLAYERS][aELCp];
162
enum aELCv
163
{
164
	Float:elc_vHealth,
165
	Float:elc_vX,
166
	Float:elc_vY,
167
	Float:elc_vZ,
168
	Float:elc_vAngle,
169
	elc_vSetPositionTime,
170
	elc_vPossiblePlayerHack,
171
	elc_vPossibleHackTime,
172
	elc_vStatut
173
};
174
new CheatVehicleInfo[MAX_VEHICLES][aELCv];
175
#if defined NO_TICK_COUNT
176
enum aELCs
177
{
178
	elc_TickCount,
179
	elc_TimerTick
180
};
181
new CheatServerInfo[aELCs];
182
#endif
183
/*----------------------------------------------------------------------------*/
184
stock Float:elc_GetPlayerSpeedXY(playerid)
185
{
186
new Float:elc_SpeedX, Float:elc_SpeedY, Float:elc_SpeedZ;
187
new Float:elc_Speed;
188
if(IsPlayerInAnyVehicle(playerid)) GetVehicleVelocity(GetPlayerVehicleID(playerid), elc_SpeedX, elc_SpeedY, elc_SpeedZ);
189
else GetPlayerVelocity(playerid, elc_SpeedX, elc_SpeedY, elc_SpeedZ);
190
elc_Speed = floatsqroot(floatadd(floatpower(elc_SpeedX, 2.0), floatpower(elc_SpeedY, 2.0)));
191
return floatmul(elc_Speed, 200.0);
192
}
193
/*----------------------------------------------------------------------------*/
194
stock Float:elc_GetVehicleSpeedXY(vehicleid)
195
{
196
new Float:elc_SpeedX, Float:elc_SpeedY, Float:elc_SpeedZ;
197
new Float:elc_Speed;
198
GetVehicleVelocity(vehicleid, elc_SpeedX, elc_SpeedY, elc_SpeedZ);
199
elc_Speed = floatsqroot(floatadd(floatpower(elc_SpeedX, 2.0), floatpower(elc_SpeedY, 2.0)));
200
return floatmul(elc_Speed, 200.0);
201
}
202
/*----------------------------------------------------------------------------*/
203
#if defined NO_TICK_COUNT
204
	#define GetTickCount()                          (CheatServerInfo[TickCount])
205
	forward TimeUpdate();
206
	public TimeUpdate()
207
	{
208
		CheatServerInfo[elc_TickCount] +=TIME_GRANULITY;
209
		return 1;
210
	}
211
#endif
212
forward OnPlayerCheckCheat(playerid);
213
forward OnPlayerCheat(playerid, cheatid, source[]);
214
forward ELC_AC_EnablePlayerCheatID(playerid,cheatid,enable);
215
forward RemovePlayerWeapon(playerid, weaponid);
216
/*----------------------------------------------------------------------------*/
217
forward ELC_AC_GivePlayerMoney(playerid, money);
218
public ELC_AC_GivePlayerMoney(playerid, money)
219
{
220
    if(CheatPlayerInfo[playerid][elc_AntiMoneyHack]==1)CheatPlayerInfo[playerid][elc_AntiMoneyHack]=2;
221
	CheatPlayerInfo[playerid][elc_money] += money;
222
	GivePlayerMoney(playerid, money);
223
	#if defined MODE_DELAY_SEND_STATS
224
	SaveTime(CheatPlayerInfo[playerid][elc_GiveMoneyTime],GetTickCount());
225
	#endif
226
	if(CheatPlayerInfo[playerid][elc_AntiMoneyHack]==2)CheatPlayerInfo[playerid][elc_AntiMoneyHack]=1;
227
	return 1;
228
}
229
stock initial_GivePlayerMoney(playerid, money)
230
{
231
	return GivePlayerMoney(playerid, money);
232
}
233
#if defined INCLUDE_BASE_MODE
234
//ALS_SYSTEME --------------------
235
#if defined _ALS_GivePlayerMoney
236
    #undef GivePlayerMoney
237
#else
238
    #define _ALS_GivePlayerMoney
239
#endif
240
#define GivePlayerMoney ELC_AC_GivePlayerMoney
241
#endif
242
//ALS_OFF_SYSTEME ----------------
243
/*----------------------------------------------------------------------------*/
244
forward ELC_AC_ResetPlayerMoney(playerid);
245
public ELC_AC_ResetPlayerMoney(playerid)
246
{
247
	if(CheatPlayerInfo[playerid][elc_AntiMoneyHack]==1)CheatPlayerInfo[playerid][elc_AntiMoneyHack]=2;
248
	ResetPlayerMoney(playerid);
249
	CheatPlayerInfo[playerid][elc_money] = 0;
250
	#if defined MODE_DELAY_SEND_STATS
251
	SaveTime(CheatPlayerInfo[playerid][elc_GiveMoneyTime],GetTickCount());
252
	#endif
253
	if(CheatPlayerInfo[playerid][elc_AntiMoneyHack]==2)CheatPlayerInfo[playerid][elc_AntiMoneyHack]=1;
254
	return 1;
255
}
256
stock initial_ResetPlayerMoney(playerid)
257
{
258
	return ResetPlayerMoney(playerid);
259
}
260
#if defined INCLUDE_BASE_MODE
261
//ALS_SYSTEME --------------------
262
#if defined _ALS_ResetPlayerMoney
263
    #undef ResetPlayerMoney
264
#else
265
    #define _ALS_ResetPlayerMoney
266
#endif
267
#define ResetPlayerMoney ELC_AC_ResetPlayerMoney
268
#endif
269
//ALS_OFF_SYSTEME ----------------
270
/*----------------------------------------------------------------------------*/
271
forward ELC_AC_GetPlayerMoney(playerid);
272
public ELC_AC_GetPlayerMoney(playerid)
273
{
274
	new elc_gpm=GetPlayerMoney(playerid);
275
	if(GetPlayerMoney(playerid)<CheatPlayerInfo[playerid][elc_money]) return elc_gpm;
276
	return CheatPlayerInfo[playerid][elc_money];
277
}
278
stock initial_GetPlayerMoney(playerid)
279
{
280
	return GetPlayerMoney(playerid);
281
}
282
#if defined INCLUDE_BASE_MODE
283
//ALS_SYSTEME --------------------
284
#if defined _ALS_GetPlayerMoney
285
    #undef GetPlayerMoney
286
#else
287
    #define _ALS_GetPlayerMoney
288
#endif
289
#define GetPlayerMoney ELC_AC_GetPlayerMoney
290
#endif
291
//ALS_OFF_SYSTEME ----------------
292
/*----------------------------------------------------------------------------*/
293
forward ELC_AC_SetPlayerPos(playerid, Float:ix, Float:iy, Float:iz);
294
public ELC_AC_SetPlayerPos(playerid, Float:ix, Float:iy, Float:iz)
295
{
296
    if(CheatPlayerInfo[playerid][elc_AntiTeleportHack]==1)CheatPlayerInfo[playerid][elc_AntiTeleportHack]=2;
297
    CheatPlayerInfo[playerid][elc_PlayerEnterTime]=0;
298
	CheatPlayerInfo[playerid][elc_AllowTelX]=ix; CheatPlayerInfo[playerid][elc_AllowTelY]=iy; CheatPlayerInfo[playerid][elc_AllowTelZ]=iz;
299
	SetPlayerPos(playerid, ix, iy, iz);
300
    if(CheatPlayerInfo[playerid][elc_AntiTeleportHack]==2)CheatPlayerInfo[playerid][elc_AntiTeleportHack]=1;
301
	return 1;
302
}
303
stock initial_SetPlayerPos(playerid, Float:ix, Float:iy, Float:iz)
304
{
305
	return SetPlayerPos(playerid, ix, iy, iz);
306
}
307
#if defined INCLUDE_BASE_MODE
308
//ALS_SYSTEME --------------------
309
#if defined _ALS_SetPlayerPos
310
    #undef SetPlayerPos
311
#else
312
    #define _ALS_SetPlayerPos
313
#endif
314
#define SetPlayerPos ELC_AC_SetPlayerPos
315
//ALS_OFF_SYSTEME ----------------
316
#endif
317
/*----------------------------------------------------------------------------*/
318
forward ELC_AC_PutPlayerInVehicle(playerid,vehicleid, seatid);
319
public ELC_AC_PutPlayerInVehicle(playerid,vehicleid, seatid)
320
{
321
    if(CheatPlayerInfo[playerid][elc_AntiTeleportHack]==1)CheatPlayerInfo[playerid][elc_AntiTeleportHack]=2;
322
    CheatPlayerInfo[playerid][elc_PlayerEnterTime]=0;
323
    CheatPlayerInfo[playerid][elc_PlayerEnterVeh]=vehicleid;
324
    GetVehiclePos(vehicleid,CheatPlayerInfo[playerid][elc_AllowTelX],CheatPlayerInfo[playerid][elc_AllowTelY],CheatPlayerInfo[playerid][elc_AllowTelZ]);
325
    GetPlayerPos(playerid,CheatPlayerInfo[playerid][elc_posx],CheatPlayerInfo[playerid][elc_posy],CheatPlayerInfo[playerid][elc_posz]);
326
	SaveTime(CheatPlayerInfo[playerid][elc_SetPositionTime],GetTickCount());
327
	PutPlayerInVehicle(playerid,vehicleid, seatid);
328
	if(CheatPlayerInfo[playerid][elc_AntiTeleportHack]==2)CheatPlayerInfo[playerid][elc_AntiTeleportHack]=1;
329
	return 1;
330
}
331
stock initial_PutPlayerInVehicle(playerid,vehicleid, seatid)
332
{
333
	return PutPlayerInVehicle(playerid,vehicleid, seatid);
334
}
335
#if defined INCLUDE_BASE_MODE
336
//ALS_SYSTEME --------------------
337
#if defined _ALS_PutPlayerInVehicle
338
    #undef PutPlayerInVehicle
339
#else
340
    #define _ALS_PutPlayerInVehicle
341
#endif
342
#define PutPlayerInVehicle ELC_AC_PutPlayerInVehicle
343
//ALS_OFF_SYSTEME ----------------
344
#endif
345
/*----------------------------------------------------------------------------*/
346
forward ELC_AC_RemovePlayerFromVehicle(playerid);
347
public ELC_AC_RemovePlayerFromVehicle(playerid)
348
{
349
    CheatPlayerInfo[playerid][elc_PlayerEnterTime]=0;
350
	RemovePlayerFromVehicle(playerid);
351
	return 1;
352
}
353
stock initial_RemovePlayerFromVehicle(playerid)
354
{
355
	return RemovePlayerFromVehicle(playerid);
356
}
357
#if defined INCLUDE_BASE_MODE
358
//ALS_SYSTEME --------------------
359
#if defined _ALS_RemovePlayerFromVehicle
360
    #undef RemovePlayerFromVehicle
361
#else
362
    #define _ALS_RemovePlayerFromVehicle
363
#endif
364
#define RemovePlayerFromVehicle ELC_AC_RemovePlayerFromVehicle
365
//ALS_OFF_SYSTEME ----------------
366
#endif
367
/*----------------------------------------------------------------------------*/
368
forward ELC_AC_TogglePlayerSpectating(playerid, toggle);
369
public ELC_AC_TogglePlayerSpectating(playerid, toggle)
370
{
371
	if(toggle==1)
372
	{
373
		if(CheatPlayerInfo[playerid][elc_AntiSpeedHack]==1) CheatPlayerInfo[playerid][elc_AntiSpeedHack]=3;
374
		if(CheatPlayerInfo[playerid][elc_AntiTeleportHack]==1) CheatPlayerInfo[playerid][elc_AntiTeleportHack]=3;
375
	}
376
	else
377
	{
378
		if(CheatPlayerInfo[playerid][elc_AntiSpeedHack]==3) CheatPlayerInfo[playerid][elc_AntiSpeedHack]=1;
379
		if(CheatPlayerInfo[playerid][elc_AntiTeleportHack]==3)CheatPlayerInfo[playerid][elc_AntiTeleportHack]=1;
380
		GetPlayerPos(playerid,CheatPlayerInfo[playerid][elc_posx],CheatPlayerInfo[playerid][elc_posy],CheatPlayerInfo[playerid][elc_posz]);
381
		SaveTime(CheatPlayerInfo[playerid][elc_SetPositionTime],GetTickCount());
382
	}
383
	return TogglePlayerSpectating(playerid, toggle);
384
}
385
stock initial_TogglePlayerSpectating(playerid, toggle)
386
{
387
	return TogglePlayerSpectating(playerid, toggle);
388
}
389
#if defined INCLUDE_BASE_MODE
390
//ALS_SYSTEME --------------------
391
#if defined _ALS_TogglePlayerSpectating
392
    #undef TogglePlayerSpectating
393
#else
394
    #define _ALS_TogglePlayerSpectating
395
#endif
396
#define TogglePlayerSpectating ELC_AC_TogglePlayerSpectating
397
//ALS_OFF_SYSTEME ----------------
398
#endif
399
//Weapon------------------------------------------------------------------------
400
/*#define elc_IsNotWeaponNoAmmo(%0) (%0!=0 && %0!=1 && %0!=10)
401
#define elc_IsNotWeaponVise(%0,%1) (%0>1 && %0!=10 && %0!=6 && %0!=9 && %0!=11 && %0!=12 && %1!=35 && %1!=36 %1!=43)*/
402
stock elc_IsNotWeaponNoAmmo(WeaponID)
403
{
404
	new elc_slot=elc_GetWeaponSlot(WeaponID);
405
	if(elc_slot!=0 && elc_slot!=1 && elc_slot!=10)return 1;
406
	return 0;
407
}
408
stock elc_IsNotWeaponVise(WeaponID)
409
{
410
	new elc_slot=elc_GetWeaponSlot(WeaponID);
411
	if(elc_slot>1 && elc_slot!=10 && elc_slot!=6 && elc_slot!=9 && elc_slot!=11 && elc_slot!=12 && elc_slot!=35 && elc_slot!=36 && elc_slot!=43) return 1;
412
	return 0;
413
}
414
stock elc_IsGiveVehicleWeapon(WeaponID)
415
{
416
	if(WeaponID==25 || WeaponID==46 || WeaponID==2) return 1;
417
	return 0;
418
}
419
#define IsValidWeapon(%0) (%0>=1 && %0<=18 || %0>=21 && %0<=46)
420
stock elc_GetWeaponSlot(weaponid)
421
{
422
	new elc_slot=-1;
423
	switch(weaponid)
424
	{
425
		case 0,1: elc_slot = 0;
426
		case 2 .. 9: elc_slot = 1;
427
		case 10 .. 15: elc_slot = 10;
428
		case 16 .. 18, 39: elc_slot = 8;
429
		case 22 .. 24: elc_slot =2;
430
		case 25 .. 27: elc_slot = 3;
431
		case 28, 29, 32: elc_slot = 4;
432
		case 30, 31: elc_slot = 5;
433
		case 33, 34: elc_slot = 6;
434
		case 35 .. 38: elc_slot = 7;
435
		case 40: elc_slot = 12;
436
		case 41 .. 43: elc_slot = 9;
437
		case 44 .. 46: elc_slot = 11;
438
	}
439
	return elc_slot;
440
}
441
/*----------------------------------------------------------------------------*/
442
forward ELC_AC_GivePlayerWeapon(playerid,Weapon,ammo);
443
public ELC_AC_GivePlayerWeapon(playerid,Weapon,ammo)
444
{
445
	if(CheatPlayerInfo[playerid][elc_AntiWeaponHack]==1)CheatPlayerInfo[playerid][elc_AntiWeaponHack]=2;
446
	new slot=elc_GetWeaponSlot(Weapon);
447
	if(IsValidWeapon(Weapon) && slot!=-1)
448
	{
449
	    CheatPlayerInfo[playerid][elc_tickfire]=0;
450
		CheatPlayerInfo[playerid][elc_weapon][slot] = Weapon;
451
		CheatPlayerInfo[playerid][elc_ammo][slot] += ammo;
452
		GivePlayerWeapon(playerid,Weapon,ammo);
453
		#if defined MODE_DELAY_SEND_STATS
454
		SaveTime(CheatPlayerInfo[playerid][elc_GiveWeaponTime],GetTickCount());
455
		#endif
456
	}
457
	if(CheatPlayerInfo[playerid][elc_AntiWeaponHack]==2)CheatPlayerInfo[playerid][elc_AntiWeaponHack]=1;
458
    return 1;
459
}
460
stock initial_GivePlayerWeapon(playerid,Weapon,ammo)
461
{
462
	return GivePlayerWeapon(playerid,Weapon,ammo);
463
}
464
#if defined INCLUDE_BASE_MODE
465
//ALS_SYSTEME --------------------
466
#if defined _ALS_GivePlayerWeapon
467
    #undef GivePlayerWeapon
468
#else
469
    #define _ALS_GivePlayerWeapon
470
#endif
471
#define GivePlayerWeapon ELC_AC_GivePlayerWeapon
472
//ALS_OFF_SYSTEME ----------------
473
#endif
474
/*----------------------------------------------------------------------------*/
475
forward ELC_AC_SetPlayerAmmo(playerid,weapon,ammo);
476
public ELC_AC_SetPlayerAmmo(playerid,weapon,ammo)
477
{
478
	if(CheatPlayerInfo[playerid][elc_AntiWeaponHack]==1)CheatPlayerInfo[playerid][elc_AntiWeaponHack]=2;
479
	new slot=elc_GetWeaponSlot(weapon);
480
 	if(weapon>0 && 47>weapon && slot!=-1)
481
 	{
482
		CheatPlayerInfo[playerid][elc_ammo][slot]=ammo;
483
		SetPlayerAmmo(playerid,weapon,ammo);
484
		#if defined MODE_DELAY_SEND_STATS
485
		SaveTime(CheatPlayerInfo[playerid][elc_GiveWeaponTime],GetTickCount());
486
		#endif
487
	}
488
	if(CheatPlayerInfo[playerid][elc_AntiWeaponHack]==2)CheatPlayerInfo[playerid][elc_AntiWeaponHack]=1;
489
    return 1;
490
}
491
stock initial_SetPlayerAmmo(playerid,weapon,ammo)
492
{
493
	return SetPlayerAmmo(playerid,weapon,ammo);
494
}
495
#if defined INCLUDE_BASE_MODE
496
//ALS_SYSTEME --------------------
497
#if defined _ALS_SetPlayerAmmo
498
    #undef SetPlayerAmmo
499
#else
500
    #define _ALS_SetPlayerAmmo
501
#endif
502
#define SetPlayerAmmo ELC_AC_SetPlayerAmmo
503
//ALS_OFF_SYSTEME ----------------
504
#endif
505
/*----------------------------------------------------------------------------*/
506
forward ELC_AC_ResetPlayerWeapons(playerid);
507
public ELC_AC_ResetPlayerWeapons(playerid)
508
{
509
	if(CheatPlayerInfo[playerid][elc_AntiWeaponHack]==1)CheatPlayerInfo[playerid][elc_AntiWeaponHack]=2;
510
	for(new i = 0; i <13; i++)
511
	{
512
        CheatPlayerInfo[playerid][elc_weapon][i]=0;
513
        CheatPlayerInfo[playerid][elc_ammo][i]=0;
514
	}
515
	ResetPlayerWeapons(playerid);
516
	#if defined MODE_DELAY_SEND_STATS
517
	SaveTime(CheatPlayerInfo[playerid][elc_GiveWeaponTime],GetTickCount());
518
	#endif
519
	if(CheatPlayerInfo[playerid][elc_AntiWeaponHack]==2)CheatPlayerInfo[playerid][elc_AntiWeaponHack]=1;
520
    return 1;
521
}
522
stock initial_ResetPlayerWeapons(playerid)
523
{
524
	return ResetPlayerWeapons(playerid);
525
}
526
#if defined INCLUDE_BASE_MODE
527
//ALS_SYSTEME --------------------
528
#if defined _ALS_ResetPlayerWeapons
529
    #undef ResetPlayerWeapons
530
#else
531
    #define _ALS_ResetPlayerWeapons
532
#endif
533
#define ResetPlayerWeapons ELC_AC_ResetPlayerWeapons
534
//ALS_OFF_SYSTEME ----------------
535
#endif
536
/*----------------------------------------------------------------------------*/
537
forward ELC_AC_SetPlayerHealth(playerid,Float:health);
538
public ELC_AC_SetPlayerHealth(playerid,Float:health)
539
{
540
	if(CheatPlayerInfo[playerid][elc_AntiHealthHack]==1)CheatPlayerInfo[playerid][elc_AntiHealthHack]=2;
541
	CheatPlayerInfo[playerid][elc_health]=health;
542
	SetPlayerHealth(playerid,health);
543
	#if defined MODE_DELAY_SEND_STATS
544
	SaveTime(CheatPlayerInfo[playerid][elc_GiveHealthTime],GetTickCount());
545
	#endif
546
	if(CheatPlayerInfo[playerid][elc_AntiHealthHack]==2)CheatPlayerInfo[playerid][elc_AntiHealthHack]=1;
547
    return 1;
548
}
549
stock initial_SetPlayerHealth(playerid,Float:health)
550
{
551
	return SetPlayerHealth(playerid,health);
552
}
553
#if defined INCLUDE_BASE_MODE
554
//ALS_SYSTEME --------------------
555
#if defined _ALS_SetPlayerHealth
556
    #undef SetPlayerHealth
557
#else
558
    #define _ALS_SetPlayerHealth
559
#endif
560
#define SetPlayerHealth ELC_AC_SetPlayerHealth
561
//ALS_OFF_SYSTEME ----------------
562
#endif
563
/*----------------------------------------------------------------------------*/
564
forward ELC_AC_SetPlayerArmour(playerid,Float:armour);
565
public ELC_AC_SetPlayerArmour(playerid,Float:armour)
566
{
567
	if(CheatPlayerInfo[playerid][elc_AntiArmourHack]==1)CheatPlayerInfo[playerid][elc_AntiArmourHack]=2;
568
	CheatPlayerInfo[playerid][elc_armour]=armour;
569
	SetPlayerArmour(playerid,armour);
570
	#if defined MODE_DELAY_SEND_STATS
571
	SaveTime(CheatPlayerInfo[playerid][elc_GiveArmourTime],GetTickCount());
572
	#endif
573
	if(CheatPlayerInfo[playerid][elc_AntiArmourHack]==2)CheatPlayerInfo[playerid][elc_AntiArmourHack]=1;
574
    return 1;
575
}
576
stock initial_SetPlayerArmour(playerid,Float:armour)
577
{
578
	return SetPlayerArmour(playerid,armour);
579
}
580
#if defined INCLUDE_BASE_MODE
581
//ALS_SYSTEME --------------------
582
#if defined _ALS_SetPlayerArmour
583
    #undef SetPlayerArmour
584
#else
585
    #define _ALS_SetPlayerArmour
586
#endif
587
#define SetPlayerArmour ELC_AC_SetPlayerArmour
588
//ALS_OFF_SYSTEME ----------------
589
#endif
590
/*----------------------------------------------------------------------------*/
591
forward ELC_AC_SetVehiclePos(vehicleid,Float:x,Float:y,Float:z);
592
public ELC_AC_SetVehiclePos(vehicleid,Float:x,Float:y,Float:z)
593
{
594
	CheatVehicleInfo[vehicleid][elc_vX]=x;
595
	CheatVehicleInfo[vehicleid][elc_vY]=y;
596
	CheatVehicleInfo[vehicleid][elc_vZ]=z;
597
    SetVehiclePos(vehicleid,x,y,z);
598
    CheatVehicleInfo[vehicleid][elc_vStatut]=0;
599
    return 1;
600
}
601
stock initial_SetVehiclePos(vehicleid,Float:x,Float:y,Float:z)
602
{
603
	return SetVehiclePos(vehicleid,x,y,z);
604
}
605
#if defined INCLUDE_BASE_MODE
606
//ALS_SYSTEME --------------------
607
#if defined _ALS_SetVehiclePos
608
    #undef SetVehiclePos
609
#else
610
    #define _ALS_SetVehiclePos
611
#endif
612
#define SetVehiclePos ELC_AC_SetVehiclePos
613
//ALS_OFF_SYSTEME ----------------
614
#endif
615
//Core--------------------------------------------------------------------------
616
public OnPlayerCheckCheat(playerid)
617
{
618
	new elc_IsTime=GetTickCount();
619
	#if defined MODE_DELAY_SEND_STATS
620
	if(CheatPlayerInfo[playerid][elc_AntiMoneyHack]==1 && IsPassTime(playerid,CheatPlayerInfo[playerid][elc_GiveMoneyTime],elc_IsTime))
621
	#else
622
	if(CheatPlayerInfo[playerid][elc_AntiMoneyHack]==1)
623
	#endif
624
	{
625
		new elc_getmoney=initial_GetPlayerMoney(playerid);
626
		if(elc_getmoney>CheatPlayerInfo[playerid][elc_money])
627
		{
628
			new elc_str[60];
629
			format(elc_str,sizeof(elc_str),"%d", elc_getmoney-CheatPlayerInfo[playerid][elc_money]);
630
			initial_ResetPlayerMoney(playerid);
631
			initial_GivePlayerMoney(playerid, CheatPlayerInfo[playerid][elc_money]);
632
			ELC_SendCheatWarning(playerid,1,elc_str);
633
		}
634
		#if defined DISABLE_MONEY_DEATHLOSE
635
		else if(((elc_getmoney+100)<=CheatPlayerInfo[playerid][elc_money])&&((GetTickCount()-CheatPlayerInfo[playerid][elc_TimeSpawn])<(TIMER_CHEAT_RATE+MAX_DELAY_SEND_STATS+5000)))
636
		{
637
			initial_ResetPlayerMoney(playerid);
638
			initial_GivePlayerMoney(playerid, elc_getmoney+100);
639
		}
640
		#endif
641
	}
642
	if(CheatPlayerInfo[playerid][elc_AntiTeleportHack]==1 && IsPlayerUpdatePos(playerid))
643
	{
644
	    #if defined MODE_DELAY_SEND_STATS
645
		if(CheatPlayerInfo[playerid][elc_SetPositionTime]!=0)
646
		{
647
		    if(IsPassTime(playerid,CheatPlayerInfo[playerid][elc_SetPositionTime],elc_IsTime))
648
		    {
649
            	CheatPlayerInfo[playerid][elc_SetPositionTime]=0;
650
				GetPlayerPos(playerid,CheatPlayerInfo[playerid][elc_posx],CheatPlayerInfo[playerid][elc_posy],CheatPlayerInfo[playerid][elc_posz]);
651
				CheatPlayerInfo[playerid][elc_interior]=GetPlayerInterior(playerid);
652
				CheatPlayerInfo[playerid][elc_virtualworld]=GetPlayerVirtualWorld(playerid);
653
			}
654
		}
655
		else if(IsPlayerCheatPos(playerid))
656
		#else
657
		if(IsPlayerCheatPos(playerid))
658
		#endif
659
		{
660
			if(!IsPlayerCheatAllowTelPos(playerid))
661
			{
662
			    GetPlayerPos(playerid,CheatPlayerInfo[playerid][elc_posx],CheatPlayerInfo[playerid][elc_posy],CheatPlayerInfo[playerid][elc_posz]);
663
				CheatPlayerInfo[playerid][elc_interior]=GetPlayerInterior(playerid);
664-
				ELC_SendCheatWarning(playerid,6);
664+
665-
				SetPlayerPos(playerid,CheatPlayerInfo[playerid][elc_posx],CheatPlayerInfo[playerid][elc_posy],CheatPlayerInfo[playerid][elc_posz]);
665+
666-
				SetPlayerInterior(playerid,CheatPlayerInfo[playerid][elc_interior]);
666+
667-
				SetPlayerVirtualWorld(playerid,CheatPlayerInfo[playerid][elc_virtualworld]);
667+
668
			}
669
		    else
670
			{
671
				if(ELC_SendCheatWarning(playerid,6))
672
				{
673
					SetPlayerPos(playerid,CheatPlayerInfo[playerid][elc_posx],CheatPlayerInfo[playerid][elc_posy],CheatPlayerInfo[playerid][elc_posz]);
674
					SetPlayerInterior(playerid,CheatPlayerInfo[playerid][elc_interior]);
675
					SetPlayerVirtualWorld(playerid,CheatPlayerInfo[playerid][elc_virtualworld]);
676
				}
677
				else
678
				{
679
					GetPlayerPos(playerid,CheatPlayerInfo[playerid][elc_posx],CheatPlayerInfo[playerid][elc_posy],CheatPlayerInfo[playerid][elc_posz]);
680
					CheatPlayerInfo[playerid][elc_interior]=GetPlayerInterior(playerid);
681
					CheatPlayerInfo[playerid][elc_virtualworld]=GetPlayerVirtualWorld(playerid);
682
				}
683
			}
684
		}
685
		else
686
		{
687
			GetPlayerPos(playerid,CheatPlayerInfo[playerid][elc_posx],CheatPlayerInfo[playerid][elc_posy],CheatPlayerInfo[playerid][elc_posz]);
688
			CheatPlayerInfo[playerid][elc_interior]=GetPlayerInterior(playerid);
689
			CheatPlayerInfo[playerid][elc_virtualworld]=GetPlayerVirtualWorld(playerid);
690
		}
691
	}
692
	#if defined MODE_DELAY_SEND_STATS
693
	if(CheatPlayerInfo[playerid][elc_AntiWeaponHack]==1 && IsPassTime(playerid,CheatPlayerInfo[playerid][elc_GiveWeaponTime],elc_IsTime))
694
	#else
695
	if(CheatPlayerInfo[playerid][elc_AntiWeaponHack]==1&&GetPlayerSpecialAction(playerid)!=SPECIAL_ACTION_ENTER_VEHICLE&&GetPlayerSpecialAction(playerid)!=SPECIAL_ACTION_EXIT_VEHICLE)
696
	#endif
697
	{
698
		new elc_WA_VAR[2];
699
		new elc_NeedRemove;
700
		/*new actweap=GetPlayerWeapon(playerid);
701
		if(actweap!=0&&actweap!=CheatPlayerInfo[playerid][elc_weapon][elc_GetWeaponSlot(actweap)])
702
		{
703
			if(!elc_IsGiveVehicleWeapon(actweap))
704
			{
705
				new elc_str[32];
706
				GetWeaponName(elc_WA_VAR[0][i],str,32);
707
				ELC_SendCheatWarning(playerid,2,elc_str);
708
			}
709
			elc_NeedRemove=1;
710
		}*/
711
		for(new i = 0; i <13; i++)
712
		{
713
			elc_WA_VAR[0]=0; elc_WA_VAR[1]=0;
714
			GetPlayerWeaponData(playerid,i,elc_WA_VAR[0],elc_WA_VAR[1]);
715
			if(CheatPlayerInfo[playerid][elc_weapon][i]!=elc_WA_VAR[0] && elc_WA_VAR[0]!=0 && elc_WA_VAR[1]!=0)// && elc_WA_VAR[0][i]!=actweap
716
			{
717
				//CHEAT WEAPON
718
				if(!elc_IsGiveVehicleWeapon(elc_WA_VAR[0])&&elc_NeedRemove==0)
719
				{
720
					new elc_str[32];
721
					GetWeaponName(elc_WA_VAR[0],elc_str,sizeof(elc_str));
722
					ELC_SendCheatWarning(playerid,2,elc_str);
723
				}
724
				elc_NeedRemove=1;
725
				//SetPlayerAmmo(playerid, elc_WA_VAR[0], 0);
726
			}
727
			else if(((CheatPlayerInfo[playerid][elc_ammo][i]-elc_WA_VAR[1]) < 0) && elc_IsNotWeaponNoAmmo(elc_WA_VAR[0]) && elc_WA_VAR[0]!=0)
728
			{
729
				//CHEAT AMMO
730
				if(elc_NeedRemove<=1)
731
				{
732
					new elc_str[60];
733
					format(elc_str,sizeof(elc_str),"%d",elc_WA_VAR[1]-CheatPlayerInfo[playerid][elc_ammo][i]);
734
					ELC_SendCheatWarning(playerid,3,elc_str);
735
				}
736
				elc_NeedRemove=2;
737
				//SetPlayerAmmo(playerid, elc_WA_VAR[0], 0);
738
			}
739
			else if(CheatPlayerInfo[playerid][elc_weapon][i]!=0 && elc_WA_VAR[0]==0 && elc_WA_VAR[1]==0)
740
			{
741
			    CheatPlayerInfo[playerid][elc_weapon][i]=0;
742
			    CheatPlayerInfo[playerid][elc_ammo][i]=0;
743
			}
744
			else if(elc_WA_VAR[1]!=0) CheatPlayerInfo[playerid][elc_ammo][i]=elc_WA_VAR[1];
745
746
		}
747
		if(elc_NeedRemove>=1)
748
		{
749
			new WepUse=GetPlayerWeapon(playerid);
750
			initial_ResetPlayerWeapons(playerid);
751
		    for(new i = 0; i <13; i++)if(CheatPlayerInfo[playerid][elc_weapon][i] != 0)initial_GivePlayerWeapon(playerid, CheatPlayerInfo[playerid][elc_weapon][i], CheatPlayerInfo[playerid][elc_ammo][i]);
752
		    SetPlayerArmedWeapon(playerid,WepUse);
753
		}
754
	}
755
	#if defined MODE_DELAY_SEND_STATS
756
	if(CheatPlayerInfo[playerid][elc_AntiHealthHack]==1 && IsPassTime(playerid,CheatPlayerInfo[playerid][elc_GiveHealthTime],elc_IsTime) && IsPassTime(playerid,CheatPlayerInfo[playerid][elc_GiveMoneyTime],elc_IsTime))
757
	#else
758
	if(CheatPlayerInfo[playerid][elc_AntiHealthHack]==1)
759
	#endif
760
	{
761
		new Float:velc_health;
762
		GetPlayerHealth(playerid,velc_health);
763
		if(velc_health!=CheatPlayerInfo[playerid][elc_health])
764
		{
765
			if(velc_health<=100 && velc_health>0 && CheatPlayerInfo[playerid][elc_health]==0) CheatPlayerInfo[playerid][elc_health]=velc_health;
766
			else if(velc_health>CheatPlayerInfo[playerid][elc_health])
767
			{
768
			    //Cheat Health
769
			    initial_SetPlayerHealth(playerid,CheatPlayerInfo[playerid][elc_health]);
770
			    ELC_SendCheatWarning(playerid,7);
771
			}
772
			else if(velc_health<CheatPlayerInfo[playerid][elc_health] && velc_health!=0)CheatPlayerInfo[playerid][elc_health]=velc_health;
773
		}
774
	}
775
	#if defined MODE_DELAY_SEND_STATS
776
	if(CheatPlayerInfo[playerid][elc_AntiArmourHack]==1 && IsPassTime(playerid,CheatPlayerInfo[playerid][elc_GiveArmourTime],elc_IsTime) && IsPassTime(playerid,CheatPlayerInfo[playerid][elc_GiveMoneyTime],elc_IsTime))
777
	#else
778
	if(CheatPlayerInfo[playerid][elc_AntiArmourHack]==1)
779
	#endif
780
	{
781
		new Float:velc_armour;
782
		GetPlayerArmour(playerid,velc_armour);
783
		if(velc_armour!=CheatPlayerInfo[playerid][elc_armour])
784
		{
785
			if(velc_armour>CheatPlayerInfo[playerid][elc_armour])
786
			{
787
			    //Cheat Armour
788
			    initial_SetPlayerArmour(playerid,CheatPlayerInfo[playerid][elc_armour]);
789
			    ELC_SendCheatWarning(playerid,8);
790
			}
791
			else if(velc_armour<CheatPlayerInfo[playerid][elc_armour])CheatPlayerInfo[playerid][elc_armour]=velc_armour;
792
		}
793
	}
794
	if(CheatPlayerInfo[playerid][elc_AntiVehicleTelportHack]==2 && CheatPlayerInfo[playerid][elc_PossibleVehicleHack]!=0 && IsPassTime(playerid,CheatVehicleInfo[CheatPlayerInfo[playerid][elc_PossibleVehicleHack]][elc_vPossibleHackTime],elc_IsTime))
795
	{
796
	    if(ELC_AC_IsCreatedVehicle(CheatPlayerInfo[playerid][elc_PossibleVehicleHack]))
797
	    {
798
	        ELC_SendCheatWarning(playerid,9);
799
		    SetVehiclePos(CheatPlayerInfo[playerid][elc_PossibleVehicleHack], CheatVehicleInfo[CheatPlayerInfo[playerid][elc_PossibleVehicleHack]][elc_vX], CheatVehicleInfo[CheatPlayerInfo[playerid][elc_PossibleVehicleHack]][elc_vY], CheatVehicleInfo[CheatPlayerInfo[playerid][elc_PossibleVehicleHack]][elc_vZ]);
800
		    SetVehicleZAngle(CheatPlayerInfo[playerid][elc_PossibleVehicleHack],CheatVehicleInfo[CheatPlayerInfo[playerid][elc_PossibleVehicleHack]][elc_vAngle]);
801
			CheatVehicleInfo[CheatPlayerInfo[playerid][elc_PossibleVehicleHack]][elc_vPossiblePlayerHack]=0;
802
			CheatVehicleInfo[CheatPlayerInfo[playerid][elc_PossibleVehicleHack]][elc_vPossibleHackTime]=0;
803
		}
804
        CheatPlayerInfo[playerid][elc_PossibleVehicleHack]=0;
805
    }
806
	else if(GetPlayerVehicleSeat(playerid)==0)
807
	{
808
		new vehicleid=GetPlayerVehicleID(playerid);
809
		if(vehicleid!=0)
810
		{
811
			GetVehiclePos(vehicleid, CheatVehicleInfo[vehicleid][elc_vX], CheatVehicleInfo[vehicleid][elc_vY], CheatVehicleInfo[vehicleid][elc_vZ]);
812
            GetVehicleZAngle(vehicleid,CheatVehicleInfo[vehicleid][elc_vAngle]);
813
		}
814
	}
815
	return 1;
816
}
817
/*----------------------------------------------------------------------------*/
818
public OnPlayerUpdate(playerid)
819
{
820
	new elc_tick=GetTickCount();
821
	if(CheatPlayerInfo[playerid][elc_LastUpdate]+1000<elc_tick)
822
	{
823
	    GetPlayerPos(playerid,CheatPlayerInfo[playerid][elc_posx],CheatPlayerInfo[playerid][elc_posy],CheatPlayerInfo[playerid][elc_posz]);
824
	}
825
    CheatPlayerInfo[playerid][elc_LastUpdate]=elc_tick;
826
	if(CheatPlayerInfo[playerid][elc_AntiSpeedHack]==1)
827
	{
828
		//if((GetPlayerSurfingVehicleID(playerid)!=INVALID_VEHICLE_ID || GetPlayerState(playerid) == PLAYER_STATE_DRIVER) && (elc_GetPlayerSpeedXY(playerid) > MAX_SPEED_VEHICLE))
829
		if(elc_GetPlayerSpeedXY(playerid) > MAX_SPEED_VEHICLE)ELC_SendCheatWarning(playerid,5);
830
	}
831
	#if defined INCLUDE_BASE_MODE
832
	return CallLocalFunction("ELC_AC_OnPlayerUpdate", "i",playerid);
833
	#else
834
	return 1;
835
	#endif
836
}
837
/*----------------------------------------------------------------------------*/
838
#if defined INCLUDE_BASE_MODE
839
//ALS_SYSTEME --------------------
840
#if defined _ALS_OnPlayerUpdate
841
	#undef OnPlayerUpdate
842
#else
843
	#define _ALS_OnPlayerUpdate
844
#endif
845
#define OnPlayerUpdate ELC_AC_OnPlayerUpdate
846
forward ELC_AC_OnPlayerUpdate(playerid);
847
#endif
848
//ALS_OFF_SYSTEME ----------------
849
/*----------------------------------------------------------------------------*/
850
#if defined INCLUDE_BASE_MODE
851
public OnGameModeInit()
852
#else
853
public OnFilterScriptInit()
854
#endif
855
{
856
    #if defined NO_TICK_COUNT
857
	CheatServerInfo[elc_TimerTick]=SetTimer("TimeUpdate", TIME_GRANULITY, true);
858
	#endif
859
	#if defined INCLUDE_BASE_MODE
860
	return CallLocalFunction("ELC_AC_OnGameModeInit", " ");
861
	#else
862
	return 1;
863
	#endif
864
}
865
/*----------------------------------------------------------------------------*/
866
#if defined INCLUDE_BASE_MODE
867
//ALS_SYSTEME --------------------
868
#if defined _ALS_OnGameModeInit
869
	#undef OnGameModeInit
870
#else
871
	#define _ALS_OnGameModeInit
872
#endif
873
#define OnGameModeInit ELC_AC_OnGameModeInit
874
forward ELC_AC_OnGameModeInit();
875
#endif
876
//ALS_OFF_SYSTEME ----------------
877
/*----------------------------------------------------------------------------*/
878
#if defined INCLUDE_BASE_MODE
879
public OnGameModeExit()
880
#else
881
public OnFilterScriptExit()
882
#endif
883
{
884
	#if defined NO_TICK_COUNT
885
	KillTimer(CheatServerInfo[elc_TimerTick]);
886
	#endif
887
	#if defined INCLUDE_BASE_MODE
888
	return CallLocalFunction("ELC_AC_OnGameModeExit", " ");
889
	#else
890
	return 1;
891
	#endif
892
}
893
/*----------------------------------------------------------------------------*/
894
#if defined INCLUDE_BASE_MODE
895
//ALS_SYSTEME --------------------
896
#if defined _ALS_OnGameModeExit
897
	#undef OnGameModeExit
898
#else
899
	#define _ALS_OnGameModeExit
900
#endif
901
#define OnGameModeExit ELC_AC_OnGameModeExit
902
forward ELC_AC_OnGameModeExit();
903
#endif
904
//ALS_OFF_SYSTEME ----------------
905
/*----------------------------------------------------------------------------*/
906
public OnPlayerConnect(playerid)
907
{
908
    for(new i = 0; i <_:aELCp; i++)CheatPlayerInfo[playerid][aELCp:i]=0;
909
	if (!IsPlayerNPC(playerid))
910
	{
911
		CheatPlayerInfo[playerid][elc_armour]=100;
912
		CheatPlayerInfo[playerid][elc_health]=100;
913
		CheatPlayerInfo[playerid][elc_timer]=SetTimerEx("OnPlayerCheckCheat", TIMER_CHEAT_RATE, 1, "i", playerid);
914
		CheatPlayerInfo[playerid][elc_AntiWeaponHack]=ANTI_WEAPON_&_AMMO_HACK;
915
		CheatPlayerInfo[playerid][elc_AntiAmmoBlockHack]=ANTI_AMMO_BLOCK_HACK;
916
		CheatPlayerInfo[playerid][elc_AntiMoneyHack]=ANTI_MONEY_HACK;
917
		CheatPlayerInfo[playerid][elc_AntiSpeedHack]=0;
918
		CheatPlayerInfo[playerid][elc_AntiArmourHack]=ANTI_ARMOUR_HACK;
919
		CheatPlayerInfo[playerid][elc_AntiHealthHack]=ANTI_HEALTH_HACK;
920
		CheatPlayerInfo[playerid][elc_AntiVehicleTelportHack]=ANTI_VEHICLE-TELEPORT_HACK;
921
		#if defined MODE_DELAY_SEND_STATS
922
		CheatPlayerInfo[playerid][elc_GiveWeaponTime]=1;
923
		CheatPlayerInfo[playerid][elc_GiveMoneyTime]=1;
924
		CheatPlayerInfo[playerid][elc_GiveHealthTime]=1;
925
		CheatPlayerInfo[playerid][elc_GiveArmourTime]=1;
926
		#endif
927
		CheatPlayerInfo[playerid][elc_PlayerEnterTime]=0;
928
		SendClientMessage(playerid,0xBD0000FF,"[ANTI-CHEAT]Ce serveur est protégé par ELC_AC(By Eloctro)");
929
	}
930
	#if defined INCLUDE_BASE_MODE
931
	return CallLocalFunction("ELC_AC_OnPlayerConnect", "d", playerid);
932
	#else
933
	return 1;
934
	#endif
935
}
936
/*----------------------------------------------------------------------------*/
937
#if defined INCLUDE_BASE_MODE
938
//ALS_SYSTEME --------------------
939
#if defined _ALS_OnPlayerConnect
940
	#undef OnPlayerConnect
941
#else
942
	#define _ALS_OnPlayerConnect
943
#endif
944
#define OnPlayerConnect ELC_AC_OnPlayerConnect
945
forward ELC_AC_OnPlayerConnect(playerid);
946
#endif
947
//ALS_OFF_SYSTEME ----------------
948
/*----------------------------------------------------------------------------*/
949
public OnPlayerSpawn(playerid)
950
{
951
	if (!IsPlayerNPC(playerid))
952
	{
953
	    GetPlayerPos(playerid,CheatPlayerInfo[playerid][elc_posx],CheatPlayerInfo[playerid][elc_posy],CheatPlayerInfo[playerid][elc_posz]);
954
		SaveTime(CheatPlayerInfo[playerid][elc_SetPositionTime],GetTickCount()+MAX_DELAY_WAIT_AFTER_SPAWN);
955
		CheatPlayerInfo[playerid][elc_TimeSpawn]=GetTickCount();
956
		if(CheatPlayerInfo[playerid][elc_AntiSpeedHack]!=2)
957
		{
958
			CheatPlayerInfo[playerid][elc_AntiTeleportHack]=ANTI_TELEPORT/AIBREAK_HACK;
959
			CheatPlayerInfo[playerid][elc_AntiSpeedHack]=ANTI_SPEED_HACK;
960
		}
961
		CheatPlayerInfo[playerid][elc_health]=100;
962
		CheatPlayerInfo[playerid][elc_armour]=100;
963
	}
964
	#if defined INCLUDE_BASE_MODE
965
	return CallLocalFunction("ELC_AC_OnPlayerSpawn", "d", playerid);
966
	#else
967
	return 1;
968
	#endif
969
}
970
/*----------------------------------------------------------------------------*/
971
#if defined INCLUDE_BASE_MODE
972
//ALS_SYSTEME --------------------
973
#if defined _ALS_OnPlayerSpawn
974
	#undef OnPlayerSpawn
975
#else
976
	#define _ALS_OnPlayerSpawn
977
#endif
978
#define OnPlayerSpawn ELC_AC_OnPlayerSpawn
979
forward ELC_AC_OnPlayerSpawn(playerid);
980
#endif
981
//ALS_OFF_SYSTEME ----------------
982
/*----------------------------------------------------------------------------*/
983
public OnPlayerDeath(playerid, killerid, reason)
984
{
985
	if (!IsPlayerNPC(playerid))
986
	{
987
	    CheatPlayerInfo[playerid][elc_PlayerEnterTime]=0;
988
		CheatPlayerInfo[playerid][elc_AntiTeleportHack]=0;
989
		CheatPlayerInfo[playerid][elc_AntiSpeedHack]=0;
990
	}
991
	#if defined INCLUDE_BASE_MODE
992
	return CallLocalFunction("ELC_AC_OnPlayerDeath", "ddd", playerid, killerid, reason);
993
	#else
994
	return 1;
995
	#endif
996
}
997
/*----------------------------------------------------------------------------*/
998
#if defined INCLUDE_BASE_MODE
999
//ALS_SYSTEME --------------------
1000
#if defined _ALS_OnPlayerDeath
1001
	#undef OnPlayerDeath
1002
#else
1003
	#define _ALS_OnPlayerDeath
1004
#endif
1005
#define OnPlayerDeath ELC_AC_OnPlayerDeath
1006
forward ELC_AC_OnPlayerDeath(playerid, killerid, reason);
1007
#endif
1008
//ALS_OFF_SYSTEME ----------------
1009
/*----------------------------------------------------------------------------*/
1010
public OnPlayerDisconnect(playerid, reason)
1011
{
1012
	if (!IsPlayerNPC(playerid))KillTimer(CheatPlayerInfo[playerid][elc_timer]);
1013
	//for(new i = 0; i <_:aELCp; i++)CheatPlayerInfo[playerid][aELCp:i]=0;
1014
	#if defined INCLUDE_BASE_MODE
1015
	return CallLocalFunction("ELC_AC_OnPlayerDisconnect", "dd", playerid, reason);
1016
	#else
1017
	return 1;
1018
	#endif
1019
}
1020
/*----------------------------------------------------------------------------*/
1021
#if defined INCLUDE_BASE_MODE
1022
//ALS_SYSTEME --------------------
1023
#if defined _ALS_OnPlayerDisconnect
1024
	#undef OnPlayerDisconnect
1025
#else
1026
	#define _ALS_OnPlayerDisconnect
1027
#endif
1028
#define OnPlayerDisconnect ELC_AC_OnPlayerDisconnect
1029
forward ELC_AC_OnPlayerDisconnect(playerid, reason);
1030
#endif
1031
//ALS_OFF_SYSTEME ----------------
1032
/*----------------------------------------------------------------------------*/
1033
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
1034
{
1035
    CheatPlayerInfo[playerid][elc_PlayerEnterVeh]=vehicleid;
1036
	#if defined INCLUDE_BASE_MODE
1037
	return CallLocalFunction("ELC_AC_OnPlayerEnterVehicle", "ddd",playerid, vehicleid, ispassenger);
1038
	#else
1039
	return 1;
1040
	#endif
1041
}
1042
/*----------------------------------------------------------------------------*/
1043
#if defined INCLUDE_BASE_MODE
1044
//ALS_SYSTEME --------------------
1045
#if defined _ALS_OnPlayerEnterVehicle
1046
	#undef OnPlayerEnterVehicle
1047
#else
1048
	#define _ALS_OnPlayerEnterVehicle
1049
#endif
1050
#define OnPlayerEnterVehicle ELC_AC_OnPlayerEnterVehicle
1051
forward ELC_AC_OnPlayerEnterVehicle(playerid, vehicleid, ispassenger);
1052
#endif
1053
//ALS_OFF_SYSTEME ----------------
1054
/*----------------------------------------------------------------------------*/
1055
public OnPlayerStateChange(playerid, newstate, oldstate)
1056
{
1057
    if(newstate == PLAYER_STATE_DRIVER)
1058
    {
1059
        if(CheatPlayerInfo[playerid][elc_AntiVehicleTelportHack]>=1&&CheatPlayerInfo[playerid][elc_PlayerEnterVeh]!=GetPlayerVehicleID(playerid))
1060
		{
1061
			CheatPlayerInfo[playerid][elc_PlayerEnterTime] = GetTickCount();
1062
			new elc_vehicleid=GetPlayerVehicleID(playerid);
1063
			if(elc_vehicleid!=0)
1064
			{
1065
				CheatPlayerInfo[playerid][elc_PlayerEnterVeh]=elc_vehicleid;
1066
				CheatVehicleInfo[elc_vehicleid][elc_vStatut]=1;
1067
			}
1068
		}
1069
    }
1070
    else if(oldstate == PLAYER_STATE_DRIVER)
1071
    {//220 def
1072
        if(CheatPlayerInfo[playerid][elc_PlayerEnterTime]!=0&&(GetTickCount()-CheatPlayerInfo[playerid][elc_PlayerEnterTime]) < 220)//player entered and exited vehicle faster than 220 ms.
1073
        {
1074
            //if(CheatPlayerInfo[playerid][elc_PlayerEnterVeh]!=0)SetVehiclePos(CheatPlayerInfo[playerid][elc_PlayerEnterVeh], CheatVehicleInfo[CheatPlayerInfo[playerid][elc_PlayerEnterVeh]][elc_vX], CheatVehicleInfo[CheatPlayerInfo[playerid][elc_PlayerEnterVeh]][elc_vY], CheatVehicleInfo[CheatPlayerInfo[playerid][elc_PlayerEnterVeh]][elc_vZ]);
1075
            ELC_SendCheatWarning(playerid,9);
1076
        }
1077
        CheatPlayerInfo[playerid][elc_PlayerEnterTime]=0;
1078
    }
1079
	#if defined INCLUDE_BASE_MODE
1080
	return CallLocalFunction("ELC_AC_OnPlayerStateChange", "ddd",playerid, newstate, oldstate);
1081
	#else
1082
	return 1;
1083
	#endif
1084
}
1085
/*----------------------------------------------------------------------------*/
1086
#if defined INCLUDE_BASE_MODE
1087
//ALS_SYSTEME --------------------
1088
#if defined _ALS_OnPlayerStateChange
1089
	#undef OnPlayerStateChange
1090
#else
1091
	#define _ALS_OnPlayerStateChange
1092
#endif
1093
#define OnPlayerStateChange ELC_AC_OnPlayerStateChange
1094
forward ELC_AC_OnPlayerStateChange(playerid, newstate, oldstate);
1095
#endif
1096
//ALS_OFF_SYSTEME ----------------
1097
/*----------------------------------------------------------------------------*/
1098
public OnUnoccupiedVehicleUpdate(vehicleid, playerid, passenger_seat, Float:new_x, Float:new_y, Float:new_z)
1099
{
1100
    if (CheatPlayerInfo[playerid][elc_AntiVehicleTelportHack]==2&&ELC_AC_IsCreatedVehicle(vehicleid))
1101
    {
1102
		new Float:elc_tempposx, Float:elc_tempposy, Float:elc_tempposz;
1103
		GetVehiclePos(vehicleid, elc_tempposx, elc_tempposy, elc_tempposz);
1104
		elc_tempposx = (new_x -elc_tempposx);
1105
		elc_tempposy = (new_y -elc_tempposy);
1106
		elc_tempposz = (new_z -elc_tempposz);
1107
		new Float:XMVDUCM=elc_GetVehicleSpeedXY(vehicleid)+MAX_VEHICLE_DISTANCE_UCM;
1108
		if(CheatVehicleInfo[vehicleid][elc_vStatut]==0&&!((elc_tempposx < XMVDUCM) && (elc_tempposx > -XMVDUCM)) && ((elc_tempposy < XMVDUCM) && (elc_tempposy > -XMVDUCM)) && ((elc_tempposz < XMVDUCM) && (elc_tempposz > -XMVDUCM)))
1109
		{
1110
			SetVehiclePos(vehicleid, elc_tempposx, elc_tempposy, elc_tempposz);
1111
			SetVehicleZAngle(vehicleid,CheatVehicleInfo[vehicleid][elc_vAngle]);
1112
		    if(CheatVehicleInfo[vehicleid][elc_vPossiblePlayerHack]==0)
1113
		    {
1114
	            CheatVehicleInfo[vehicleid][elc_vPossiblePlayerHack]=playerid+1;
1115
	            SaveTime(CheatVehicleInfo[vehicleid][elc_vPossibleHackTime],GetTickCount());
1116
	            CheatPlayerInfo[playerid][elc_PossibleVehicleHack]=vehicleid;
1117
			}
1118
			else
1119
			{
1120
	            CheatVehicleInfo[vehicleid][elc_vPossibleHackTime]=0;
1121
	            if(IsPlayerConnected(CheatVehicleInfo[vehicleid][elc_vPossiblePlayerHack]-1))CheatPlayerInfo[CheatVehicleInfo[vehicleid][elc_vPossiblePlayerHack]-1][elc_PossibleVehicleHack]=0;
1122
	            CheatVehicleInfo[vehicleid][elc_vPossiblePlayerHack]=0;
1123
			}
1124
		    return 0;
1125
		}
1126
		else
1127
		{
1128
		    if(CheatVehicleInfo[vehicleid][elc_vStatut]==1)CheatVehicleInfo[vehicleid][elc_vStatut]=0;
1129
			CheatVehicleInfo[vehicleid][elc_vX]=new_x;
1130
			CheatVehicleInfo[vehicleid][elc_vY]=new_y;
1131
			CheatVehicleInfo[vehicleid][elc_vZ]=new_z;
1132
			GetVehicleZAngle(vehicleid,CheatVehicleInfo[vehicleid][elc_vAngle]);
1133
		}
1134
		if(CheatVehicleInfo[vehicleid][elc_vPossiblePlayerHack]!=0 && playerid!=INVALID_PLAYER_ID && CheatVehicleInfo[vehicleid][elc_vPossiblePlayerHack]!=playerid+1)
1135
		{
1136
			CheatVehicleInfo[vehicleid][elc_vPossibleHackTime]=0;
1137
			if(IsPlayerConnected(CheatVehicleInfo[vehicleid][elc_vPossiblePlayerHack]-1))CheatPlayerInfo[CheatVehicleInfo[vehicleid][elc_vPossiblePlayerHack]-1][elc_PossibleVehicleHack]=0;
1138
			CheatVehicleInfo[vehicleid][elc_vPossiblePlayerHack]=0;
1139
		}
1140
	}
1141
	#if defined INCLUDE_BASE_MODE
1142
	return CallLocalFunction("ELC_AC_OnUnoccupiedVehicle", "dddfff",vehicleid, playerid, passenger_seat, new_x, new_y, new_z);
1143
	#else
1144
	return 1;
1145
	#endif
1146
}
1147
/*----------------------------------------------------------------------------*/
1148
#if defined INCLUDE_BASE_MODE
1149
//ALS_SYSTEME --------------------
1150
#if defined _ALS_OnUnoccupiedVehicleUpdate
1151
	#undef OnUnoccupiedVehicleUpdate
1152
#else
1153
	#define _ALS_OnUnoccupiedVehicleUpdate
1154
#endif
1155
#define OnUnoccupiedVehicleUpdate ELC_AC_OnUnoccupiedVehicle
1156
forward ELC_AC_OnUnoccupiedVehicle(vehicleid, playerid, passenger_seat, Float:new_x, Float:new_y, Float:new_z);
1157
#endif
1158
//ALS_OFF_SYSTEME ----------------
1159
/*----------------------------------------------------------------------------*/
1160
public OnVehicleSpawn(vehicleid)
1161
{
1162
    GetVehiclePos(vehicleid, CheatVehicleInfo[vehicleid][elc_vX], CheatVehicleInfo[vehicleid][elc_vY], CheatVehicleInfo[vehicleid][elc_vZ]);
1163
	#if defined INCLUDE_BASE_MODE
1164
	return CallLocalFunction("ELC_AC_OnVehicleSpawn", "d",vehicleid);
1165
	#else
1166
	return 1;
1167
	#endif
1168
}
1169
/*----------------------------------------------------------------------------*/
1170
#if defined INCLUDE_BASE_MODE
1171
//ALS_SYSTEME --------------------
1172
#if defined _ALS_OnVehicleSpawn
1173
	#undef OnVehicleSpawn
1174
#else
1175
	#define _ALS_OnVehicleSpawn
1176
#endif
1177
#define OnVehicleSpawn ELC_AC_OnVehicleSpawn
1178
forward ELC_AC_OnVehicleSpawn(vehicleid);
1179
#endif
1180
//ALS_OFF_SYSTEME ----------------
1181
/*----------------------------------------------------------------------------*/
1182
public OnVehicleDeath(vehicleid)
1183
{
1184
    CheatVehicleInfo[vehicleid][elc_vX]=0;
1185
	#if defined INCLUDE_BASE_MODE
1186
	return CallLocalFunction("ELC_AC_OnVehicleDeath", "d",vehicleid);
1187
	#else
1188
	return 1;
1189
	#endif
1190
}
1191
/*----------------------------------------------------------------------------*/
1192
#if defined INCLUDE_BASE_MODE
1193
//ALS_SYSTEME --------------------
1194
#if defined _ALS_OnVehicleDeath
1195
	#undef OnVehicleDeath
1196
#else
1197
	#define _ALS_OnVehicleDeath
1198
#endif
1199
#define OnVehicleDeath ELC_AC_OnVehicleDeath
1200
forward ELC_AC_OnVehicleDeath(vehicleid);
1201
#endif
1202
//ALS_OFF_SYSTEME ----------------
1203
/*----------------------------------------------------------------------------*/
1204
public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
1205
{
1206
1207
	new slot=elc_GetWeaponSlot(weaponid);
1208
	new elc_WA_VAR[2];
1209
	GetPlayerWeaponData(playerid,slot,elc_WA_VAR[0],elc_WA_VAR[1]);
1210
	if(CheatPlayerInfo[playerid][elc_AntiWeaponHack]==1 && CheatPlayerInfo[playerid][elc_weapon][slot]!=weaponid && weaponid!=0 && elc_WA_VAR[1]!=0)// && elc_WA_VAR[0][i]!=actweap
1211
	{
1212
		//CHEAT WEAPON
1213
		RemovePlayerWeapon(playerid, weaponid);
1214
		if(!elc_IsGiveVehicleWeapon(weaponid))
1215
		{
1216
			new elc_str[32];
1217
			GetWeaponName(weaponid,elc_str,sizeof(elc_str));
1218
			ELC_SendCheatWarning(playerid,2,elc_str);
1219
		}
1220
	}
1221-
			else if(CheatPlayerInfo[playerid][elc_tickfire]==1)
1221+
1222
	{
1223
		if(elc_WA_VAR[1]<CheatPlayerInfo[playerid][elc_ammo][slot])
1224-
				if(CheatPlayerInfo[playerid][elc_ammo][slot]==elc_WA_VAR[1]&&CheatPlayerInfo[playerid][elc_weaponFire]==weaponid)
1224+
1225
		    CheatPlayerInfo[playerid][elc_tickfire]=0;
1226
			CheatPlayerInfo[playerid][elc_ammo][slot]=elc_WA_VAR[1];
1227
		}
1228
		else if(CheatPlayerInfo[playerid][elc_AntiAmmoBlockHack]==1)
1229
		{
1230
			if(CheatPlayerInfo[playerid][elc_tickfire]==0||CheatPlayerInfo[playerid][elc_weaponFire]!=weaponid)
1231
			{
1232
			    CheatPlayerInfo[playerid][elc_tickfire]=1;
1233
				CheatPlayerInfo[playerid][elc_ammo][slot]=elc_WA_VAR[1];
1234
				CheatPlayerInfo[playerid][elc_weaponFire]=weaponid;
1235
			}
1236
			else if(CheatPlayerInfo[playerid][elc_tickfire]<MAX_WEAPON_SHOT_FOR_CHECK) CheatPlayerInfo[playerid][elc_tickfire]++;
1237
			else if(CheatPlayerInfo[playerid][elc_tickfire]>=MAX_WEAPON_SHOT_FOR_CHECK)
1238
			{
1239
			    CheatPlayerInfo[playerid][elc_tickfire]=0;
1240
				if(CheatPlayerInfo[playerid][elc_ammo][slot]==elc_WA_VAR[1])
1241
				{
1242
					ELC_SendCheatWarning(playerid,4);
1243
					initial_ResetPlayerWeapons(playerid);
1244
					return 0;
1245
				}
1246
			}
1247
		}
1248
	}
1249
	else if(CheatPlayerInfo[playerid][elc_AntiWeaponHack]==1 && elc_IsNotWeaponNoAmmo(weaponid) && elc_WA_VAR[0]!=0)
1250
	{
1251
		new elc_str[60];
1252
		format(elc_str,sizeof(elc_str),"%d",elc_WA_VAR[1]-CheatPlayerInfo[playerid][elc_ammo][slot]);
1253
		ELC_SendCheatWarning(playerid,3,elc_str);
1254
		RemovePlayerWeapon(playerid, elc_WA_VAR[0]);
1255
	    return 0;
1256
	}
1257
	#if defined INCLUDE_BASE_MODE
1258
	return CallLocalFunction("ELC_AC_OnPlayerWeaponShot", "ddddfff",playerid, weaponid, hittype, hitid, fX, fY, fZ);
1259
	#else
1260
	return 1;
1261
	#endif
1262
}
1263
/*----------------------------------------------------------------------------*/
1264
#if defined INCLUDE_BASE_MODE
1265
//ALS_SYSTEME --------------------
1266
#if defined _ALS_OnPlayerWeaponShot
1267
	#undef OnPlayerWeaponShot
1268
#else
1269
	#define _ALS_OnPlayerWeaponShot
1270
#endif
1271
#define OnPlayerWeaponShot ELC_AC_OnPlayerWeaponShot
1272
forward ELC_AC_OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ);
1273
#endif
1274
//ALS_OFF_SYSTEME ----------------
1275
/*----------------------------------------------------------------------------*/
1276
public ELC_AC_EnablePlayerCheatID(playerid,cheatid,enable)
1277
{
1278
	if(cheatid==1)//Money
1279
	{
1280
		if(enable==1)
1281
		{
1282
			CheatPlayerInfo[playerid][elc_AntiMoneyHack]=1;
1283
		}
1284
		else CheatPlayerInfo[playerid][elc_AntiMoneyHack]=0;
1285
	}
1286
	else if(cheatid==2)//Weapon
1287
	{
1288
		if(enable==1)
1289
		{
1290
			for(new i = 0; i <13; i++)
1291
			{
1292
				GetPlayerWeaponData(playerid,i,CheatPlayerInfo[playerid][elc_weapon][i],CheatPlayerInfo[playerid][elc_ammo][i]);
1293
			}
1294
			CheatPlayerInfo[playerid][elc_AntiWeaponHack]=1;
1295
		}
1296
		else CheatPlayerInfo[playerid][elc_AntiWeaponHack]=0;
1297
	}
1298
	else if(cheatid==3)//AirBreak/SpeedHack
1299
	{
1300
		if(enable==1) CheatPlayerInfo[playerid][elc_AntiSpeedHack]=1;
1301
		else CheatPlayerInfo[playerid][elc_AntiSpeedHack]=0;
1302
	}
1303
	else if(cheatid==4)//Anti-Teleport
1304
	{
1305
		if(enable==1)
1306
		{
1307
			GetPlayerPos(playerid,CheatPlayerInfo[playerid][elc_posx],CheatPlayerInfo[playerid][elc_posy],CheatPlayerInfo[playerid][elc_posz]);
1308
			CheatPlayerInfo[playerid][elc_AntiTeleportHack]=1;
1309
		}
1310
		else CheatPlayerInfo[playerid][elc_AntiTeleportHack]=0;
1311
	}
1312
	else if(cheatid==5)//Anti-Ammo_Block
1313
	{
1314
		if(enable==1)
1315
		{
1316
			CheatPlayerInfo[playerid][elc_tickfire]=0;
1317
			CheatPlayerInfo[playerid][elc_ammoFire]=0;
1318
			CheatPlayerInfo[playerid][elc_weaponFire]=0;
1319
			CheatPlayerInfo[playerid][elc_AntiAmmoBlockHack]=1;
1320
		}
1321
		else CheatPlayerInfo[playerid][elc_AntiAmmoBlockHack]=0;
1322
	}
1323
	else if(cheatid==6)//Anti_HEALTH_HACK
1324
	{
1325
		if(enable==1)
1326
		{
1327
			CheatPlayerInfo[playerid][elc_AntiHealthHack]=1;
1328
		}
1329
		else CheatPlayerInfo[playerid][elc_AntiHealthHack]=0;
1330
	}
1331
	else if(cheatid==7)//Anti_ARMOUR_HACK
1332-
    new str[120],reason[60],PName[MAX_PLAYER_NAME];
1332+
1333-
	GetPlayerName(playerid,PName,sizeof(PName));
1333+
1334-
    format(str,sizeof(str),"( ! ) %s has been cheated for: ",PName);
1334+
1335
			CheatPlayerInfo[playerid][elc_AntiArmourHack]=1;
1336
		}
1337-
        case 1: format(reason,60,"Money Cheat ( %s $ )",source);
1337+
1338-
        case 2: format(reason,60,"Weapon Cheat ( %s )",source);
1338+
1339-
        case 3: format(reason,60,"Ammo Cheat ( %s Bullets )",source);
1339+
1340-
        case 4: format(reason,60,"Ammo Block Cheat");
1340+
1341-
        case 5: format(reason,60,"Speed Cheat");
1341+
1342-
        case 6: format(reason,60,"Airbreak/Teleport Cheat");
1342+
1343-
        case 7: format(reason,60,"Health Cheat");
1343+
1344-
        case 8: format(reason,60,"Armour Cheat");
1344+
1345-
        case 9: format(reason,60,"Vehicle Spawn Cheat");
1345+
1346-
        case 10: format(reason,60,"Vehicle Crasher");
1346+
1347
{
1348-
    strcat(str,reason);
1348+
    new elc_str[120],elc_reason[60],elc_name[MAX_PLAYER_NAME];
1349-
    SendClientMessageToAll(0xBD0000FF,str);
1349+
	GetPlayerName(playerid, elc_name, sizeof(elc_name));
1350
    format(elc_str,sizeof(elc_str),"( ! ) %s has been cheated for: ",elc_name);
1351
    switch(cheatid)
1352
    {
1353
        case 1: format(elc_reason,sizeof(elc_reason),"Money Cheat ( %s $ )",source);
1354
        case 2: format(elc_reason,sizeof(elc_reason),"Weapon Cheat ( %s )",source);
1355
        case 3: format(elc_reason,sizeof(elc_reason),"Ammo Cheat ( %s Bullets )",source);
1356
        case 4: format(elc_reason,sizeof(elc_reason),"Ammo Block Cheat");
1357
        case 5: format(elc_reason,sizeof(elc_reason),"Speed Cheat");
1358
        case 6: format(elc_reason,sizeof(elc_reason),"Airbreak/Teleport Cheat");
1359
        case 7: format(elc_reason,sizeof(elc_reason),"Health Cheat");
1360
        case 8: format(elc_reason,sizeof(elc_reason),"Armour Cheat");
1361
        case 9: format(elc_reason,sizeof(elc_reason),"Vehicle Spawn Cheat");
1362
        case 10: format(elc_reason,sizeof(elc_reason),"Vehicle Crasher");
1363
    }
1364
    strcat(elc_str,elc_reason);
1365
    SendClientMessageToAll(0xBD0000FF,elc_str);
1366
	return 1;
1367
}
1368
#endif
1369
/*----------------------------------------------------------------------------*/
1370
public RemovePlayerWeapon(playerid, weaponid)
1371
{
1372
    if(CheatPlayerInfo[playerid][elc_AntiWeaponHack]==1)CheatPlayerInfo[playerid][elc_AntiWeaponHack]=2;
1373
    new WeaponsID[13];
1374
    new AmmoID[13];
1375
    new WepUse=GetPlayerWeapon(playerid);
1376-
	    case 1008..1010: if(ELC_IsPlayerInInvalidNosVehicle(playerid)) RemoveVehicleComponent(vehicleid, componentid);
1376+
1377
    for(new slot = 0; slot <13; slot++)
1378
    {
1379
        if(slotremove!=slot)GetPlayerWeaponData(playerid, slot, WeaponsID[slot], AmmoID[slot]);
1380
    }
1381
    initial_ResetPlayerWeapons(playerid);
1382
    for(new slot = 0; slot <13; slot++)if(WeaponsID[slot]!=0 && AmmoID[slot] != 0)initial_GivePlayerWeapon(playerid, WeaponsID[slot], AmmoID[slot]);
1383
    SetPlayerArmedWeapon(playerid,WepUse);
1384
	if(CheatPlayerInfo[playerid][elc_AntiWeaponHack]==2)CheatPlayerInfo[playerid][elc_AntiWeaponHack]=1;
1385
    return 1;
1386
}
1387
/*----------------------------------------------------------------------------*/
1388
public OnEnterExitModShop(playerid, enterexit, interiorid)
1389
{
1390
    GetPlayerPos(playerid,CheatPlayerInfo[playerid][elc_posx],CheatPlayerInfo[playerid][elc_posy],CheatPlayerInfo[playerid][elc_posz]);
1391
	SaveTime(CheatPlayerInfo[playerid][elc_SetPositionTime],GetTickCount()+MAX_DELAY_WAIT_AFTER_SPAWN);
1392
	#if defined INCLUDE_BASE_MODE
1393
	return CallLocalFunction("ELC_AC_OnEnterExitModShop", "ddd",playerid, enterexit, interiorid);
1394
	#else
1395
	return 1;
1396
	#endif
1397
}
1398
/*----------------------------------------------------------------------------*/
1399
#if defined INCLUDE_BASE_MODE
1400
//ALS_SYSTEME --------------------
1401
#if defined _ALS_OnEnterExitModShop
1402
	#undef OnEnterExitModShop
1403
#else
1404
	#define _ALS_OnEnterExitModShop
1405
#endif
1406
#define OnEnterExitModShop ELC_AC_OnEnterExitModShop
1407
forward ELC_AC_OnEnterExitModShop(playerid, enterexit, interiorid);
1408
#endif
1409
//ALS_OFF_SYSTEME ----------------
1410
/*----------------------------------------------------------------------------*/
1411
public OnVehicleMod(playerid, vehicleid, componentid)
1412
{
1413
    switch(componentid)
1414
	{
1415
	    case 1008..1010: if(ELC_IsPlayerInInvalidNosVehicle(playerid))
1416
		{
1417
			RemoveVehicleComponent(vehicleid, componentid);
1418
			return 0;
1419
		}
1420
	}
1421
	if(!ELC_IsComponentidCompatible(GetVehicleModel(vehicleid), componentid))
1422
	{
1423
		RemoveVehicleComponent(vehicleid, componentid);
1424
		ELC_SendCheatWarning(playerid,10);
1425
		return 0;
1426
	}
1427
	#if defined INCLUDE_BASE_MODE
1428
	return CallLocalFunction("ELC_AC_OnVehicleMod", "ddd",playerid, vehicleid, componentid);
1429
	#else
1430
	return 1;
1431
	#endif
1432
}
1433
/*----------------------------------------------------------------------------*/
1434
#if defined INCLUDE_BASE_MODE
1435
//ALS_SYSTEME --------------------
1436
#if defined _ALS_OnVehicleMod
1437
	#undef OnVehicleMod
1438
#else
1439
	#define _ALS_OnVehicleMod
1440
#endif
1441
#define OnVehicleMod ELC_AC_OnVehicleMod
1442
forward ELC_AC_OnVehicleMod(playerid, vehicleid, componentid);
1443
#endif
1444
//ALS_OFF_SYSTEME ----------------
1445
/*----------------------------------------------------------------------------*/
1446
stock ELC_IsPlayerInInvalidNosVehicle(playerid)
1447
{
1448
	new elc_vehicleid = GetPlayerVehicleID(playerid);
1449
	#define MAX_INVALID_NOS_VEHICLES 52
1450
	new ELC_InvalidNosVehicles[MAX_INVALID_NOS_VEHICLES] =
1451
	{
1452
		581,523,462,521,463,522,461,448,468,586,417,425,469,487,512,520,563,593,
1453
		509,481,510,472,473,493,520,595,484,430,453,432,476,497,513,533,577,
1454
		452,446,447,454,590,569,537,538,570,449,519,460,488,511,519,548,592
1455
	};
1456
 	if(IsPlayerInAnyVehicle(playerid))
1457
  	{
1458
   		for(new i = 0; i < MAX_INVALID_NOS_VEHICLES; i++)
1459
     	{
1460
      		if(GetVehicleModel(elc_vehicleid) == ELC_InvalidNosVehicles[i]) return true;
1461
       	}
1462
   	}
1463
   	return false;
1464
}
1465
/*----------------------------------------------------------------------------*/
1466
stock ELC_IsComponentidCompatible(modelid, componentid)
1467
{
1468
    if(componentid == 1025 || componentid == 1073 || componentid == 1074 || componentid == 1075 || componentid == 1076 ||
1469
         componentid == 1077 || componentid == 1078 || componentid == 1079 || componentid == 1080 || componentid == 1081 ||
1470
         componentid == 1082 || componentid == 1083 || componentid == 1084 || componentid == 1085 || componentid == 1096 ||
1471
         componentid == 1097 || componentid == 1098 || componentid == 1087 || componentid == 1086)
1472
         return true;
1473
1474
    switch (modelid)
1475
    {
1476
        case 400: return (componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1018 || componentid == 1013 || componentid == 1024 || componentid == 1008 || componentid == 1009 || componentid == 1010);
1477
        case 401: return (componentid == 1005 || componentid == 1004 || componentid == 1142 || componentid == 1143 || componentid == 1144 || componentid == 114 || componentid == 1020 || componentid == 1019 || componentid == 1013 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1001 || componentid == 1003 || componentid == 1017 || componentid == 1007);
1478
        case 402: return (componentid == 1009 || componentid == 1009 || componentid == 1010);
1479
        case 404: return (componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1013 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1002 || componentid == 1016 || componentid == 1000 || componentid == 1017 || componentid == 1007);
1480
        case 405: return (componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1001 || componentid == 1014 || componentid == 1023 || componentid == 1000);
1481
        case 409: return (componentid == 1009);
1482
        case 410: return (componentid == 1019 || componentid == 1021 || componentid == 1020 || componentid == 1013 || componentid == 1024 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1001 || componentid == 1023 || componentid == 1003 || componentid == 1017 || componentid == 1007);
1483
        case 411: return (componentid == 1008 || componentid == 1009 || componentid == 1010);
1484
        case 412: return (componentid == 1008 || componentid == 1009 || componentid == 1010);
1485
        case 415: return (componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1001 || componentid == 1023 || componentid == 1003 || componentid == 1017 || componentid == 1007);
1486
        case 418: return (componentid == 1020 || componentid == 1021 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1002 || componentid == 1016);
1487
        case 419: return (componentid == 1008 || componentid == 1009 || componentid == 1010);
1488
        case 420: return (componentid == 1005 || componentid == 1004 || componentid == 1021 || componentid == 1019 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1001 || componentid == 1003);
1489
        case 421: return (componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1014 || componentid == 1023 || componentid == 1016 || componentid == 1000);
1490
        case 422: return (componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1013 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1017 || componentid == 1007);
1491
        case 426: return (componentid == 1005 || componentid == 1004 || componentid == 1021 || componentid == 1019 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1001 || componentid == 1003);
1492
        case 429: return (componentid == 1008 || componentid == 1009 || componentid == 1010);
1493
        case 436: return (componentid == 1020 || componentid == 1021 || componentid == 1022 || componentid == 1019 || componentid == 1013 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1001 || componentid == 1003 || componentid == 1017 || componentid == 1007);
1494
        case 438: return (componentid == 1008 || componentid == 1009 || componentid == 1010);
1495
        case 439: return (componentid == 1003 || componentid == 1023 || componentid == 1001 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1017 || componentid == 1007 || componentid == 1142 || componentid == 1143 || componentid == 1144 || componentid == 1145 || componentid == 1013);
1496
        case 442: return (componentid == 1008 || componentid == 1009 || componentid == 1010);
1497
        case 445: return (componentid == 1008 || componentid == 1009 || componentid == 1010);
1498
        case 451: return (componentid == 1008 || componentid == 1009 || componentid == 1010);
1499
        case 458: return (componentid == 1008 || componentid == 1009 || componentid == 1010);
1500
        case 466: return (componentid == 1008 || componentid == 1009 || componentid == 1010);
1501
        case 467: return (componentid == 1008 || componentid == 1009 || componentid == 1010);
1502
        case 474: return (componentid == 1008 || componentid == 1009 || componentid == 1010);
1503
        case 475: return (componentid == 1008 || componentid == 1009 || componentid == 1010);
1504
        case 477: return (componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1017 || componentid == 1007);
1505
        case 478: return (componentid == 1005 || componentid == 1004 || componentid == 1012 || componentid == 1020 || componentid == 1021 || componentid == 1022 || componentid == 1013 || componentid == 1024 || componentid == 1008 || componentid == 1009 || componentid == 1010);
1506
        case 479: return (componentid == 1008 || componentid == 1009 || componentid == 1010);
1507
        case 480: return (componentid == 1008 || componentid == 1009 || componentid == 1010);
1508
        case 489: return (componentid == 1005 || componentid == 1004 || componentid == 1020 || componentid == 1019 || componentid == 1018 || componentid == 1013 || componentid == 1024 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1002 || componentid == 1016 || componentid == 1000);
1509
        case 491: return (componentid == 1142 || componentid == 1143 || componentid == 1144 || componentid == 1145 || componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1014 || componentid == 1023 || componentid == 1003 || componentid == 1017 || componentid == 1007);
1510
        case 492: return (componentid == 1005 || componentid == 1004 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1016 || componentid == 1000);
1511
        case 496: return (componentid == 1006 || componentid == 1017 || componentid == 1007 || componentid == 1011 || componentid == 1019 || componentid == 1023 || componentid == 1001 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1003 || componentid == 1002 || componentid == 1142 || componentid == 1143 || componentid == 1020);
1512
        case 500: return (componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1013 || componentid == 1024 || componentid == 1008 || componentid == 1009 || componentid == 1010);
1513
        case 506: return (componentid == 1009);
1514
        case 507: return (componentid == 1008 || componentid == 1009 || componentid == 1010);
1515
        case 516: return (componentid == 1004 || componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1002 || componentid == 1015 || componentid == 1016 || componentid == 1000 || componentid == 1017 || componentid == 1007);
1516
        case 517: return (componentid == 1142 || componentid == 1143 || componentid == 1144 || componentid == 1145 || componentid == 1020 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1002 || componentid == 1023 || componentid == 1016 || componentid == 1003 || componentid == 1017 || componentid == 1007);
1517
        case 518: return (componentid == 1005 || componentid == 1142 || componentid == 1143 || componentid == 1144 || componentid == 1145 || componentid == 1020 || componentid == 1018 || componentid == 1013 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1001 || componentid == 1023 || componentid == 1003 || componentid == 1017 || componentid == 1007);
1518-
	CallRemoteFunction("OnPlayerCheat", "dds", playerid,elc_type,elc_str);
1518+
1519
        case 527: return (componentid == 1021 || componentid == 1020 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1001 || componentid == 1014 || componentid == 1015 || componentid == 1017 || componentid == 1007);
1520
        case 529: return (componentid == 1012 || componentid == 1011 || componentid == 1020 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1001 || componentid == 1023 || componentid == 1003 || componentid == 1017 || componentid == 1007);
1521
        case 533: return (componentid == 1008 || componentid == 1009 || componentid == 1010);
1522
        case 534: return (componentid == 1126 || componentid == 1127 || componentid == 1179 || componentid == 1185 || componentid == 1100 || componentid == 1123 || componentid == 1125 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1180 || componentid == 1178 || componentid == 1101 || componentid == 1122 || componentid == 1124 || componentid == 1106);
1523
        case 535: return (componentid == 1109 || componentid == 1110 || componentid == 1113 || componentid == 1114 || componentid == 1115 || componentid == 1116 || componentid == 1117 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1120 || componentid == 1118 || componentid == 1121 || componentid == 1119);
1524
        case 536: return (componentid == 1104 || componentid == 1105 || componentid == 1182 || componentid == 1181 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1184 || componentid == 1183 || componentid == 1128 || componentid == 1103 || componentid == 1107 || componentid == 1108);
1525
        case 540: return (componentid == 1004 || componentid == 1142 || componentid == 1143 || componentid == 1144 || componentid == 1145 || componentid == 1020 || componentid == 1019 || componentid == 1018 || componentid == 1024 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1001 || componentid == 1023 || componentid == 1017 || componentid == 1007);
1526
        case 541: return (componentid == 1008 || componentid == 1009 || componentid == 1010);
1527
        case 542: return (componentid == 1144 || componentid == 1145 || componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1014 || componentid == 1015);
1528
        case 545: return (componentid == 1008 || componentid == 1009 || componentid == 1010);
1529
        case 546: return (componentid == 1004 || componentid == 1142 || componentid == 1143 || componentid == 1144 || componentid == 1145 || componentid == 1019 || componentid == 1018 || componentid == 1024 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1002 || componentid == 1001 || componentid == 1023 || componentid == 1017 || componentid == 1007);
1530
        case 547: return (componentid == 1142 || componentid == 1143 || componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1016 || componentid == 1003 || componentid == 1000);
1531
        case 549: return (componentid == 1012 || componentid == 1011 || componentid == 1142 || componentid == 1143 || componentid == 1144 || componentid == 1145 || componentid == 1020 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1001 || componentid == 1023 || componentid == 1003 || componentid == 1017 || componentid == 1007);
1532
        case 550: return (componentid == 1005 || componentid == 1004 || componentid == 1142 || componentid == 1143 || componentid == 1144 || componentid == 1145 || componentid == 1020 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1001 || componentid == 1023 || componentid == 1003);
1533
        case 551: return (componentid == 1005 || componentid == 1020 || componentid == 1021 || componentid == 1019 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1002 || componentid == 1023 || componentid == 1016 || componentid == 1003);
1534
        case 555: return (componentid == 1008 || componentid == 1009 || componentid == 1010);
1535
        case 558: return (componentid == 1092 || componentid == 1089 || componentid == 1166 || componentid == 1165 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1168 || componentid == 1167 || componentid == 1088 || componentid == 1091 || componentid == 1164 || componentid == 1163 || componentid == 1094 || componentid == 1090 || componentid == 1095 || componentid == 1093);
1536
        case 559: return (componentid == 1065 || componentid == 1066 || componentid == 1160 || componentid == 1173 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1159 || componentid == 1161 || componentid == 1162 || componentid == 1158 || componentid == 1067 || componentid == 1068 || componentid == 1071 || componentid == 1069 || componentid == 1072 || componentid == 1070 || componentid == 1009);
1537
        case 560: return (componentid == 1028 || componentid == 1029 || componentid == 1169 || componentid == 1170 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1141 || componentid == 1140 || componentid == 1032 || componentid == 1033 || componentid == 1138 || componentid == 1139 || componentid == 1027 || componentid == 1026 || componentid == 1030 || componentid == 1031);
1538
        case 561: return (componentid == 1064 || componentid == 1059 || componentid == 1155 || componentid == 1157 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1154 || componentid == 1156 || componentid == 1055 || componentid == 1061 || componentid == 1058 || componentid == 1060 || componentid == 1062 || componentid == 1056 || componentid == 1063 || componentid == 1057);
1539
        case 562: return (componentid == 1034 || componentid == 1037 || componentid == 1171 || componentid == 1172 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1149 || componentid == 1148 || componentid == 1038 || componentid == 1035 || componentid == 1147 || componentid == 1146 || componentid == 1040 || componentid == 1036 || componentid == 1041 || componentid == 1039);
1540
        case 565: return (componentid == 1046 || componentid == 1045 || componentid == 1153 || componentid == 1152 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1150 || componentid == 1151 || componentid == 1054 || componentid == 1053 || componentid == 1049 || componentid == 1050 || componentid == 1051 || componentid == 1047 || componentid == 1052 || componentid == 1048);
1541
        case 566: return (componentid == 1008 || componentid == 1009 || componentid == 1010);
1542
        case 567: return (componentid == 1129 || componentid == 1132 || componentid == 1189 || componentid == 1188 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1187 || componentid == 1186 || componentid == 1130 || componentid == 1131 || componentid == 1102 || componentid == 1133);
1543
        case 575: return (componentid == 1044 || componentid == 1043 || componentid == 1174 || componentid == 1175 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1176 || componentid == 1177 || componentid == 1099 || componentid == 1042);
1544
        case 576: return (componentid == 1136 || componentid == 1135 || componentid == 1191 || componentid == 1190 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1192 || componentid == 1193 || componentid == 1137 || componentid == 1134);
1545
        case 579: return (componentid == 1008 || componentid == 1009 || componentid == 1010);
1546
        case 580: return (componentid == 1020 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1001 || componentid == 1023 || componentid == 1017 || componentid == 1007);
1547
        case 585: return (componentid == 1142 || componentid == 1143 || componentid == 1144 || componentid == 1145 || componentid == 1020 || componentid == 1019 || componentid == 1018 || componentid == 1013 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1001 || componentid == 1023 || componentid == 1003 || componentid == 1017 || componentid == 1007);
1548
        case 587: return (componentid == 1008 || componentid == 1009 || componentid == 1010);
1549
        case 589: return (componentid == 1005 || componentid == 1004 || componentid == 1144 || componentid == 1145 || componentid == 1020 || componentid == 1018 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1024 || componentid == 1013 || componentid == 1006 || componentid == 1016 || componentid == 1000 || componentid == 1017 || componentid == 1007);
1550
        case 600: return (componentid == 1005 || componentid == 1004 || componentid == 1020 || componentid == 1022 || componentid == 1018 || componentid == 1013 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1017 || componentid == 1007);
1551
        case 602: return (componentid == 1008 || componentid == 1009 || componentid == 1010);
1552
        case 603: return (componentid == 1144 || componentid == 1145 || componentid == 1142 || componentid == 1143 || componentid == 1020 || componentid == 1019 || componentid == 1018 || componentid == 1024 || componentid == 1008 || componentid == 1009 || componentid == 1010 || componentid == 1006 || componentid == 1001 || componentid == 1023 || componentid == 1017 || componentid == 1007);
1553
    }
1554
    return false;
1555
}
1556
/*----------------------------------------------------------------------------*/
1557
stock ELC_SendCheatWarning(playerid,elc_type,xelc_str[]=" ")
1558
{
1559
	new elc_str[60];
1560
	if(!strlen(xelc_str))format(elc_str,sizeof(elc_str)," ");
1561
	else format(elc_str,sizeof(elc_str),"%s",xelc_str);
1562
	return CallRemoteFunction("OnPlayerCheat", "dds", playerid,elc_type,elc_str);
1563
}