MichaelFR

AntiCheat

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