ELC_AC_BASE.inc 74 KB

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