Guest User

antitino

a guest
May 18th, 2020
530
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 25.33 KB | None | 0 0
  1. /*
  2. AntiCleo
  3. Credits: Tino Skripter
  4. Definiran vi e kako fs na vas ostanuva da si dodadete SCM
  5. Testiran e i odlicno raboti posluzete se !
  6. Ako najdete nekakvi greski prijavete
  7. */
  8. ////////////////////////////////////////////////////////////////////////////////
  9. #if defined _AntiCarTroll_included
  10. #endinput
  11. #endif
  12.  
  13. #define _AntiCarTroll_included
  14.  
  15. #include <a_samp>
  16.  
  17. #if !defined FILTERSCRIPT
  18. ////////////////////////////////////////////////////////////////////////////////
  19. enum ActPData
  20. {
  21. bool:ActAntiSpam,
  22. bool:AntiJackBug,
  23. bool:ActProtectFalse,
  24. bool:ActProtectPos,
  25. bool:ActFixCars,
  26. bool:ActCheater,
  27. bool:ActSPrtct,
  28. bool:ActPassgBug,
  29. bool:ActJustDied,
  30. bool:ActDoubleProtec,
  31. bool:ActFFProtec,
  32. bool:ActDetectSpam,
  33.  
  34. Float:ActPX,
  35. Float:ActPY,
  36. Float:ActPZ,
  37.  
  38. ActRealCar,
  39. pVehicleID,
  40. pPauseTick,
  41. ActOVeh,
  42. ActEnV,
  43.  
  44. ActBFastTimer,
  45. ActJustDTim,
  46. ActSPrtimer,
  47. ActStateTimer,
  48. ActTimer,
  49. ResetTAct
  50. };
  51.  
  52. enum ActVData
  53. {
  54. VehicleTempOwner,
  55. ActVehEnterer,
  56.  
  57. bool:ActETPBugFix
  58. };
  59.  
  60. new
  61. ActPlayer[MAX_PLAYERS][ActPData],
  62. ActVehicle[MAX_VEHICLES][ActVData],
  63. SafeTimer;
  64.  
  65. #if !defined IsValidVehicle
  66. native IsValidVehicle(vehicleid);
  67. #endif
  68.  
  69. #define RACT_BETWEEN_VEHICLES 1
  70. #define RACT_CONTROL_CARS_SPIN 2
  71. #define RACT_SKICK_CAR 3
  72. #define RACT_TELEPORT_DRIVER 4
  73. #define RACT_TELEPORT_PASSENGER 5
  74. #define RACT_KICKPLAYER_CAR 6
  75.  
  76. forward ActTogglePlayerSpectating(playerid, bool:toggle);
  77. forward ActPutPlayerInVehicle(playerid, vehicleid, seatid);
  78. forward ActSetPlayerPos(playerid, Float:x, Float:y, Float:z);
  79. forward ActRemovePlayerFromVehicle(playerid);
  80.  
  81. forward ActDelayState(playerid, delaytype);
  82. forward ActResetHandler(handleid, handletype);
  83. forward ActFixPPIV(playerid, vehicleid, seatid);
  84. forward ActSafeReset();
  85.  
  86. #if defined OnPlayerEnterVehicleACT
  87. forward OnPlayerEnterVehicleACT(playerid, vehicleid, ispassenger);
  88. #endif
  89.  
  90. #if defined OnPlayerUpdateACT
  91. forward OnPlayerUpdateACT(playerid);
  92. #endif
  93.  
  94. #if defined OnPlayerConnectACT
  95. forward OnPlayerConnectACT(playerid);
  96. #endif
  97.  
  98. #if defined OnPlayerDisconnectACT
  99. forward OnPlayerDisconnectACT(playerid, reason);
  100. #endif
  101.  
  102. #if defined OnPlayerExitVehicleACT
  103. forward OnPlayerExitVehicleACT(playerid, vehicleid);
  104. #endif
  105.  
  106. #if defined OnPlayerDeathACT
  107. forward OnPlayerDeathACT(playerid, killerid, reason);
  108. #endif
  109.  
  110. #if defined OnPlayerStateChangeACT
  111. forward OnPlayerStateChangeACT(playerid, newstate, oldstate);
  112. #endif
  113.  
  114. #if defined OnGameModeInitACT
  115. forward OnGameModeInitACT();
  116. #endif
  117.  
  118. #if defined OnGameModeExitACT
  119. forward OnGameModeExitACT();
  120. #endif
  121.  
  122. #if defined OnPlayerSpawnAct
  123. forward OnPlayerSpawnAct(playerid);
  124. #endif
  125.  
  126. #if defined OnUnoccupiedVehicleUpdateAct
  127. forward OnUnoccupiedVehicleUpdateAct(vehicleid, playerid, passenger_seat, Float:new_x, Float:new_y, Float:new_z, Float:vel_x, Float:vel_y, Float:vel_z);
  128. #endif
  129.  
  130. static stock rAct_Detected(playerid, vehicleid, trolledid, trolltype)
  131. {
  132. #pragma unused trolltype, vehicleid
  133.  
  134. if(ActPlayer[playerid][ActDetectSpam]) return 0;
  135. if(!ActPlayer[playerid][ActCheater])
  136. {
  137. if(trolledid != INVALID_PLAYER_ID)
  138. {
  139. if(!ActPlayer[trolledid][ActCheater]) ActPlayer[playerid][ActCheater] = true;
  140. }
  141. else
  142. {
  143. ActPlayer[playerid][ActCheater] = true;
  144. }
  145. }
  146.  
  147. if(trolledid != INVALID_PLAYER_ID)
  148. {
  149. if(!ActPlayer[trolledid][ActCheater])
  150. {
  151. #if defined OnPlayerCarTroll
  152. OnPlayerCarTroll(playerid, vehicleid, trolledid, trolltype);
  153. #endif
  154. }
  155. }
  156. else
  157. {
  158. #if defined OnPlayerCarTroll
  159. OnPlayerCarTroll(playerid, vehicleid, trolledid, trolltype);
  160. #endif
  161. }
  162. ActPlayer[playerid][ActDetectSpam] = true;
  163. SetTimerEx("ActResetHandler", 3000, false, "ii", playerid, 1);
  164. return 1;
  165. }
  166.  
  167. static ActIsPEnExCar(playerid)
  168. {
  169. switch(GetPlayerAnimationIndex(playerid))
  170. {
  171. case 1010..1012: return 1;
  172. case 1024..1025: return 1;
  173. case 1043..1045: return 1;
  174. case 1009, 1041: return 1;
  175. }
  176. if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_ENTER_VEHICLE) return 1;
  177. return 0;
  178. }
  179.  
  180. static ActPlayerDown(playerid)
  181. {
  182. switch(GetPlayerAnimationIndex(playerid))
  183. {
  184. case 1208..1209: return 1;
  185. case 1155..1156: return 1;
  186. }
  187. return 0;
  188. }
  189.  
  190. static IsPlayerNearVehicle(playerid, vehicleid, Float:range)
  191. {
  192. new Float:x, Float:y, Float:z;
  193. GetVehiclePos(vehicleid, x, y, z);
  194. return IsPlayerInRangeOfPoint(playerid, range, x, y, z);
  195. }
  196.  
  197. static ActPausedP(playerid) return (GetTickCount() > (ActPlayer[playerid][pPauseTick]+2000)) ? true : false;
  198.  
  199. public ActDelayState(playerid, delaytype)
  200. {
  201. KillTimer(ActPlayer[playerid][ActStateTimer]);
  202. switch(delaytype)
  203. {
  204. case 1:
  205. {
  206. if(!ActPlayer[playerid][ActProtectFalse] && GetPlayerState(playerid) == 2 && !ActPlayer[playerid][ActAntiSpam] && !ActPlayer[playerid][ActSPrtct] && !ActPlayer[playerid][ActDoubleProtec] && !ActPlayer[playerid][ActFFProtec])
  207. {
  208. ActPlayer[playerid][ActAntiSpam]=true;
  209. SetTimerEx("ActResetHandler",2500, false,"ii", playerid, 2);
  210. rAct_Detected(playerid, GetPlayerVehicleID(playerid), INVALID_PLAYER_ID, RACT_TELEPORT_DRIVER);
  211. }
  212. else if(ActPlayer[playerid][ActProtectFalse]) ActPlayer[playerid][ActProtectFalse] = false;
  213. }
  214. case 2:
  215. {
  216. if(!ActPlayer[playerid][ActProtectFalse] && GetPlayerState(playerid) == 3 && !ActPlayer[playerid][ActAntiSpam] && !ActPlayer[playerid][ActSPrtct] && !ActPlayer[playerid][ActDoubleProtec] && !ActPlayer[playerid][ActFFProtec])
  217. {
  218. ActPlayer[playerid][ActAntiSpam]=true;
  219. SetTimerEx("ActResetHandler",2500, false,"ii", playerid, 2);
  220. rAct_Detected(playerid, GetPlayerVehicleID(playerid), INVALID_PLAYER_ID, RACT_TELEPORT_PASSENGER);
  221. }
  222. else if(ActPlayer[playerid][ActProtectFalse]) ActPlayer[playerid][ActProtectFalse] = false;
  223. }
  224. }
  225. return 1;
  226. }
  227.  
  228. public ActSafeReset()
  229. {
  230. ACT_memset(ActVehicle[MAX_VEHICLES-1][VehicleTempOwner], INVALID_PLAYER_ID);
  231. for(new i, j = GetPlayerPoolSize(); i <= j; i++)
  232. {
  233. if(!IsPlayerConnected(i)) continue;
  234. if(GetPlayerState(i)== PLAYER_STATE_DRIVER)
  235. ActVehicle[GetPlayerVehicleID(i)][VehicleTempOwner]= i;
  236. }
  237. return 1;
  238. }
  239.  
  240. #if defined OnPlayerCarTroll
  241. forward OnPlayerCarTroll(playerid, vehicleid, trolledid, trolltype);
  242.  
  243. #endif
  244.  
  245. public OnPlayerUpdate(playerid)
  246. {
  247. new ActVeh = GetPlayerVehicleID(playerid);
  248.  
  249. if(ActIsPEnExCar(playerid) && !ActPlayer[playerid][ActFFProtec])
  250. {
  251. ActPlayer[playerid][ActFFProtec] = true;
  252. SetTimerEx("ActResetHandler", 5000, false, "ii", playerid, 13);
  253. }
  254.  
  255. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && ActPlayer[playerid][ActRealCar] != ActVeh && !ActPlayer[playerid][ActProtectFalse])
  256. {
  257. ActPlayer[playerid][ActRealCar] = ActVeh;
  258.  
  259. if(ActVehicle[ActVeh][VehicleTempOwner] != playerid && ActVehicle[ActVeh][VehicleTempOwner] != INVALID_PLAYER_ID)
  260. {
  261. rAct_Detected(playerid, ActVeh, ActVehicle[ActVeh][VehicleTempOwner], RACT_CONTROL_CARS_SPIN);
  262. }
  263. else rAct_Detected(playerid, ActVeh, INVALID_PLAYER_ID, RACT_CONTROL_CARS_SPIN);
  264.  
  265. SetVehicleToRespawn(ActVeh);
  266. SetPlayerHealth(playerid, 0);
  267. }
  268.  
  269. if(ActIsPEnExCar(playerid))
  270. {
  271. new Float:PPOSX, Float:PPOSY, Float:PPOSZ;
  272. GetPlayerPos(playerid, PPOSX, PPOSY, PPOSZ);
  273.  
  274. if(GetVehicleDistanceFromPoint(ActPlayer[playerid][ActEnV], PPOSX, PPOSY, PPOSZ) >= 5 && !ActPlayer[playerid][ActProtectFalse])
  275. {
  276. if(!ActPlayer[playerid][ActProtectFalse]) ClearAnimations(playerid);
  277. }
  278. }
  279.  
  280. if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER && ActVeh != ActPlayer[playerid][ActOVeh])
  281. {
  282. if(!ActPlayer[playerid][ActProtectFalse])
  283. {
  284. ActPlayer[playerid][ActOVeh] = ActVeh;
  285.  
  286. if(ActVehicle[ActVeh][VehicleTempOwner] != playerid && ActVehicle[ActVeh][VehicleTempOwner] != INVALID_PLAYER_ID)
  287. {
  288. rAct_Detected(playerid, ActVeh, ActVehicle[ActVeh][VehicleTempOwner], RACT_BETWEEN_VEHICLES);
  289. }
  290. else rAct_Detected(playerid, ActVeh, INVALID_PLAYER_ID, RACT_BETWEEN_VEHICLES);
  291.  
  292. SetVehicleToRespawn(ActVeh);
  293. SetPlayerHealth(playerid, 0);
  294. }
  295. }
  296.  
  297. if(!IsPlayerInRangeOfPoint(playerid, 25.0, ActPlayer[playerid][ActPX], ActPlayer[playerid][ActPY], ActPlayer[playerid][ActPZ])
  298. && ActPlayer[playerid][ActPX] != 0 && ActPlayer[playerid][ActPY] != 0 && !ActIsPEnExCar(playerid) && !ActPlayer[playerid][ActPassgBug] && !ActPlayer[playerid][ActJustDied]
  299. && ActPlayer[playerid][ActPZ] != 0 && !ActPlayer[playerid][ActProtectPos] && !ActPlayerDown(playerid)
  300. && GetPlayerSurfingVehicleID(playerid) == INVALID_VEHICLE_ID && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT && GetPlayerInterior(playerid) == 0)
  301. {
  302. for(new i, j = GetPlayerPoolSize(); i <= j; i++)
  303. {
  304. if(!IsPlayerConnected(i)) continue;
  305. new Float:ActTempX, Float:ActTempY, Float:ActTempZ;
  306. GetPlayerPos(i, ActTempX, ActTempY, ActTempZ);
  307. if(IsPlayerInRangeOfPoint(playerid, 1.2, ActTempX, ActTempY, ActTempZ)
  308. && !ActPlayer[i][ActAntiSpam] && GetPlayerState(i) == PLAYER_STATE_DRIVER
  309. && i != playerid && IsPlayerNearVehicle(playerid, GetPlayerVehicleID(i), 5.0) && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  310. {
  311. ActPlayer[i][ActAntiSpam]=true;
  312. SetVehicleToRespawn(GetPlayerVehicleID(i));
  313. TogglePlayerControllable(i, 0);
  314. SetPlayerPos(i, ActTempX, ActTempY, ActTempZ);
  315. SetPlayerHealth(playerid, 0.0);
  316.  
  317. SetTimerEx("ActResetHandler", 1500, false, "ii", i, 7);
  318. SetTimerEx("ActResetHandler",1500, false,"ii", i, 2);
  319. rAct_Detected(playerid, GetPlayerVehicleID(i), i, RACT_SKICK_CAR);
  320. }
  321. }
  322. }
  323. ActPlayer[playerid][pPauseTick] = GetTickCount();
  324.  
  325. #if defined OnPlayerUpdateACT
  326. return OnPlayerUpdateACT(playerid);
  327. #else
  328. return 1;
  329. #endif
  330. }
  331.  
  332. public OnGameModeInit()
  333. {
  334. SafeTimer = SetTimer("ActSafeReset",2500,true);
  335.  
  336. #if defined OnGameModeInitACT
  337. return OnGameModeInitACT();
  338. #else
  339. return 1;
  340. #endif
  341. }
  342.  
  343. public OnGameModeExit()
  344. {
  345. KillTimer(SafeTimer);
  346.  
  347. #if defined OnGameModeExitACT
  348. return OnGameModeExitACT();
  349. #else
  350. return 1;
  351. #endif
  352. }
  353.  
  354. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  355. {
  356. ActPlayer[playerid][ActEnV] = vehicleid;
  357.  
  358. if(ispassenger) ActPlayer[playerid][ActOVeh] = vehicleid;
  359. if(!ispassenger) ActPlayer[playerid][ActRealCar] = vehicleid;
  360.  
  361. ActPlayer[playerid][ActProtectFalse] = true;
  362.  
  363. if(!ispassenger && !ActPlayer[playerid][AntiJackBug] && ActVehicle[vehicleid][VehicleTempOwner] != INVALID_PLAYER_ID && ActVehicle[vehicleid][VehicleTempOwner] != playerid)
  364. {
  365. ActPlayer[playerid][AntiJackBug]=true;
  366. SetTimerEx("ActResetHandler",6000, false,"ii", playerid, 6);
  367.  
  368. ActPlayer[ActVehicle[vehicleid][VehicleTempOwner]][AntiJackBug]=true;
  369. SetTimerEx("ActResetHandler",6000, false,"ii", ActVehicle[vehicleid][VehicleTempOwner], 6);
  370. }
  371.  
  372. else if(!ActVehicle[vehicleid][ActETPBugFix] && !ispassenger && ActVehicle[vehicleid][VehicleTempOwner] == INVALID_PLAYER_ID)
  373. {
  374. ActVehicle[vehicleid][ActETPBugFix] = true;
  375. ActVehicle[vehicleid][ActVehEnterer] = playerid;
  376.  
  377. SetTimerEx("ActResetHandler",3000, false,"ii", vehicleid, 4);
  378. }
  379.  
  380. #if defined OnPlayerEnterVehicleACT
  381. return OnPlayerEnterVehicleACT(playerid, vehicleid, ispassenger);
  382. #else
  383. return 1;
  384. #endif
  385. }
  386.  
  387. public OnPlayerConnect(playerid)
  388. {
  389. ActPlayer[playerid][ActAntiSpam]=false;
  390. ActPlayer[playerid][AntiJackBug]=false;
  391. ActPlayer[playerid][ActTimer] = SetTimerEx("ActResetHandler", 1000, true, "ii", playerid, 0);
  392.  
  393. #if defined OnPlayerConnectACT
  394. return OnPlayerConnectACT(playerid);
  395. #else
  396. return 1;
  397. #endif
  398. }
  399.  
  400. public OnPlayerSpawn(playerid)
  401. {
  402. if(!ActPlayer[playerid][ActProtectPos]) SetTimerEx("ActResetHandler",2100, false,"ii", playerid, 3);
  403. ActPlayer[playerid][ActProtectPos] = true;
  404. GetPlayerPos(playerid, ActPlayer[playerid][ActPX], ActPlayer[playerid][ActPY], ActPlayer[playerid][ActPZ]);
  405.  
  406. KillTimer(ActPlayer[playerid][ActJustDTim]);
  407. ActPlayer[playerid][ActJustDied] = true;
  408. ActPlayer[playerid][ActJustDTim] = SetTimerEx("ActResetHandler", 5000, false, "ii", playerid, 11);
  409.  
  410. KillTimer(ActPlayer[playerid][ActSPrtimer]);
  411. ActPlayer[playerid][ActSPrtimer] = SetTimerEx("ActResetHandler", 5500, false, "ii", playerid, 9);
  412. ActPlayer[playerid][ActSPrtct] = true;
  413. #if defined OnPlayerSpawnAct
  414. return OnPlayerSpawnAct(playerid);
  415. #else
  416. return 1;
  417. #endif
  418. }
  419.  
  420. public OnUnoccupiedVehicleUpdate(vehicleid, playerid, passenger_seat, Float:new_x, Float:new_y, Float:new_z, Float:vel_x, Float:vel_y, Float:vel_z)
  421. {
  422. new Float:TempFloatX, Float:TempFloatY, Float:TempFloatZ;
  423. new ActTempState, ActTempCar;
  424. if(vel_z >= 300.000000)
  425. {
  426. SetVehicleToRespawn(vehicleid);
  427. GetVehiclePos(vehicleid, TempFloatX, TempFloatY, TempFloatZ);
  428. for(new x; x < MAX_VEHICLES; x++)
  429. {
  430. if(!IsValidVehicle(x) || ActVehicle[x][VehicleTempOwner] != INVALID_PLAYER_ID) continue;
  431. if(GetVehicleDistanceFromPoint(vehicleid, TempFloatX, TempFloatY, TempFloatZ) <= 20) SetVehicleToRespawn(x);
  432. }
  433. for(new i, j = GetPlayerPoolSize(); i <= j; i++)
  434. {
  435. ActTempState = GetPlayerState(i);
  436. ActTempCar = GetPlayerVehicleID(i);
  437.  
  438. if(!IsPlayerConnected(i)) continue;
  439. if(IsPlayerInRangeOfPoint(i, 4.0, new_x, new_y, new_z))
  440. {
  441. if (i != playerid)
  442. {
  443. if(ActTempState != PLAYER_STATE_ONFOOT) GetVehiclePos(ActTempCar, TempFloatX, TempFloatY, TempFloatZ);
  444. SetPlayerHealth(playerid, 0.0);
  445.  
  446. if(ActTempState == PLAYER_STATE_ONFOOT && !ActPlayer[i][ActFixCars])
  447. {
  448. ActPlayer[i][ActFixCars] = true,
  449. TogglePlayerControllable(i, 0),
  450. SetTimerEx("ActResetHandler", 2500, false, "ii", i, 7);
  451. }
  452. else if(ActTempState != PLAYER_STATE_ONFOOT && !ActPlayer[i][ActFixCars])
  453. {
  454. SetVehicleToRespawn(ActTempCar);
  455.  
  456. ActPlayer[i][ActFixCars] = true,
  457. TogglePlayerControllable(i, 0),
  458. SetTimerEx("ActResetHandler", 2500, false, "ii", i, 7);
  459. }
  460.  
  461. rAct_Detected(playerid, vehicleid, i, RACT_KICKPLAYER_CAR);
  462. break;
  463. }
  464. }
  465. }
  466. }
  467.  
  468. #if defined OnUnoccupiedVehicleUpdateAct
  469. return OnUnoccupiedVehicleUpdateAct(vehicleid, playerid, passenger_seat, Float:new_x, Float:new_y, Float:new_z, Float:vel_x, Float:vel_y, Float:vel_z);
  470. #else
  471. return 1;
  472. #endif
  473. }
  474.  
  475. public OnPlayerStateChange(playerid, newstate, oldstate)
  476. {
  477. switch(newstate)
  478. {
  479. case 1:
  480. {
  481. KillTimer(ActPlayer[playerid][ActStateTimer]);
  482. switch(oldstate)
  483. {
  484. case 2:
  485. {
  486. ActPlayer[playerid][ResetTAct] = SetTimerEx("ActResetHandler",500, false,"ii", playerid, 5);
  487. ActPlayer[playerid][ActProtectFalse]= false;
  488. }
  489. case 3:
  490. {
  491. ActPlayer[playerid][ActPassgBug] = true;
  492. SetTimerEx("ActResetHandler", 2000, false, "ii", playerid, 10);
  493. ActPlayer[playerid][ActProtectFalse]= false;
  494. }
  495. }
  496. }
  497.  
  498. case 2:
  499. {
  500. ActPlayer[playerid][pVehicleID] = GetPlayerVehicleID(playerid);
  501. if(ActVehicle[ActPlayer[playerid][pVehicleID]][VehicleTempOwner] != INVALID_PLAYER_ID && ActVehicle[ActPlayer[playerid][pVehicleID]][VehicleTempOwner] != playerid && ActPausedP(ActVehicle[ActPlayer[playerid][pVehicleID]][VehicleTempOwner]))
  502. {
  503. new Float:ActPosX, Float:ActPosY, Float:ActPosZ;
  504. GetPlayerPos(ActVehicle[ActPlayer[playerid][pVehicleID]][VehicleTempOwner], ActPosX, ActPosY, ActPosZ);
  505. SetPlayerPos(ActVehicle[ActPlayer[playerid][pVehicleID]][VehicleTempOwner], ActPosX, ActPosY, ActPosZ+2);
  506. }
  507.  
  508. KillTimer(ActPlayer[playerid][ActStateTimer]);
  509. ActPlayer[playerid][ActStateTimer] = SetTimerEx("ActDelayState", 350, false, "ii", playerid, 1);
  510.  
  511. if(ActVehicle[ActPlayer[playerid][pVehicleID]][VehicleTempOwner] == INVALID_PLAYER_ID)
  512. {
  513. KillTimer(ActPlayer[playerid][ResetTAct]);
  514. ActVehicle[ActPlayer[playerid][pVehicleID]][VehicleTempOwner] = playerid;
  515. }
  516. }
  517.  
  518. case 3:
  519. {
  520. KillTimer(ActPlayer[playerid][ActStateTimer]);
  521. ActPlayer[playerid][ActStateTimer] = SetTimerEx("ActDelayState", 350, false, "ii", playerid, 2);
  522. }
  523. }
  524.  
  525. #if defined OnPlayerStateChangeACT
  526. return OnPlayerStateChangeACT(playerid, newstate, oldstate);
  527. #else
  528. return 1;
  529. #endif
  530. }
  531.  
  532. public OnPlayerDeath(playerid, killerid, reason)
  533. {
  534. ActPlayer[playerid][ActAntiSpam]=false;
  535.  
  536. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) ActPlayer[playerid][ResetTAct] = SetTimerEx("ActResetHandler",500, false,"ii", playerid, 5);
  537.  
  538. KillTimer(ActPlayer[playerid][ActJustDTim]);
  539. ActPlayer[playerid][ActJustDied] = true;
  540. ActPlayer[playerid][ActJustDTim] = SetTimerEx("ActResetHandler", 10000, false, "ii", playerid, 11);
  541. #if defined OnPlayerDeathACT
  542. return OnPlayerDeathACT(playerid, killerid, reason);
  543. #else
  544. return 1;
  545. #endif
  546. }
  547.  
  548. public OnPlayerExitVehicle(playerid, vehicleid)
  549. {
  550. ActPlayer[playerid][ResetTAct] = SetTimerEx("ActResetHandler",500, false,"ii", playerid, 5);
  551.  
  552. #if defined OnPlayerExitVehicleACT
  553. return OnPlayerExitVehicleACT(playerid, vehicleid);
  554. #else
  555. return 1;
  556. #endif
  557. }
  558.  
  559. public OnPlayerDisconnect(playerid, reason)
  560. {
  561. KillTimer(ActPlayer[playerid][ActTimer]);
  562. new gpVehicleID;
  563. gpVehicleID = GetPlayerVehicleID(playerid);
  564.  
  565. ActPlayer[playerid][ActDetectSpam] = false;
  566. ActPlayer[playerid][ActFFProtec] = false;
  567. ActPlayer[playerid][ActJustDied] = false;
  568. ActPlayer[playerid][ActSPrtct] = false;
  569. ActPlayer[playerid][ActCheater] = false;
  570. ActPlayer[playerid][ActProtectPos] = false;
  571. ActPlayer[playerid][ActProtectFalse]= false;
  572. ActPlayer[playerid][ActFixCars] = false;
  573. ActPlayer[playerid][ActPassgBug] = false;
  574. ActPlayer[playerid][ActDoubleProtec]= false;
  575.  
  576. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  577. ActVehicle[gpVehicleID][VehicleTempOwner] = INVALID_PLAYER_ID;
  578.  
  579. #if defined OnPlayerDisconnectACT
  580. return OnPlayerDisconnectACT(playerid, reason);
  581. #else
  582. return 1;
  583. #endif
  584. }
  585.  
  586. public ActResetHandler(handleid, handletype)
  587. {
  588. switch(handletype)
  589. {
  590. case 0:
  591. {
  592. GetPlayerPos(handleid, ActPlayer[handleid][ActPX], ActPlayer[handleid][ActPY], ActPlayer[handleid][ActPZ]);
  593. }
  594. case 1:
  595. {
  596. ActPlayer[handleid][ActDetectSpam] = false;
  597. }
  598. case 2:
  599. {
  600. ActPlayer[handleid][ActAntiSpam] = false;
  601. }
  602. case 3:
  603. {
  604. ActPlayer[handleid][ActProtectPos] = false;
  605. }
  606. case 4:
  607. {
  608. ActVehicle[handleid][ActETPBugFix] = false,
  609. ActVehicle[handleid][ActVehEnterer] = INVALID_PLAYER_ID;
  610. }
  611. case 5:
  612. {
  613. ActVehicle[ActPlayer[handleid][pVehicleID]][VehicleTempOwner] = INVALID_PLAYER_ID;
  614. }
  615. case 6:
  616. {
  617. ActPlayer[handleid][AntiJackBug] = false;
  618. }
  619. case 7:
  620. {
  621. TogglePlayerControllable(handleid, 1);
  622. ActPlayer[handleid][ActFixCars] = false;
  623. }
  624. case 8:
  625. {
  626. ActPlayer[handleid][ActProtectFalse] = false;
  627. }
  628. case 9:
  629. {
  630. ActPlayer[handleid][ActSPrtct] = false;
  631. }
  632. case 10:
  633. {
  634. ActPlayer[handleid][ActPassgBug] = false;
  635. }
  636. case 11:
  637. {
  638. ActPlayer[handleid][ActJustDied] = false;
  639. }
  640. case 12:
  641. {
  642. ActPlayer[handleid][ActDoubleProtec] = false;
  643. }
  644. case 13:
  645. {
  646. ActPlayer[handleid][ActFFProtec] = false;
  647. }
  648. }
  649. return 1;
  650. }
  651.  
  652. public ActFixPPIV(playerid, vehicleid, seatid)
  653. {
  654. ActPlayer[playerid][ActProtectFalse] = true;
  655. return PutPlayerInVehicle(playerid, vehicleid, seatid);
  656. }
  657.  
  658. public ActTogglePlayerSpectating(playerid, bool:toggle)
  659. {
  660. if(playerid > MAX_PLAYERS || playerid < 0) return 0;
  661. if(!ActPlayer[playerid][ActProtectFalse]) SetTimerEx("ActResetHandler",2100, false,"ii", playerid, 8);
  662. ActPlayer[playerid][ActProtectFalse] = true;
  663. return TogglePlayerSpectating(playerid, toggle);
  664. }
  665.  
  666. public ActRemovePlayerFromVehicle(playerid)
  667. {
  668. if(playerid > MAX_PLAYERS || playerid < 0) return 0;
  669. if(!ActPlayer[playerid][ActDoubleProtec]) SetTimerEx("ActResetHandler",2100, false,"ii", playerid, 12);
  670. ActPlayer[playerid][ActDoubleProtec] = true;
  671. return RemovePlayerFromVehicle(playerid);
  672. }
  673.  
  674. public ActPutPlayerInVehicle(playerid, vehicleid, seatid)
  675. {
  676. if(playerid > MAX_PLAYERS || playerid < 0 || vehicleid < 0 || vehicleid > MAX_VEHICLES) return 0;
  677. if(ActVehicle[vehicleid][ActETPBugFix]) ClearAnimations(ActVehicle[vehicleid][ActVehEnterer]);
  678. ActPlayer[playerid][ActProtectFalse] = true;
  679.  
  680. if(seatid != 0 ) ActPlayer[playerid][ActOVeh] = vehicleid;
  681. if(seatid == 0 ) ActPlayer[playerid][ActRealCar] = vehicleid;
  682.  
  683. if(GetPlayerState(playerid) == 2 || GetPlayerState(playerid) == 3)
  684. {
  685. KillTimer(ActPlayer[playerid][ActBFastTimer]);
  686. new Float:PX,Float:PY,Float:PZ;
  687. GetPlayerPos(playerid, PX,PY,PZ);
  688. SetPlayerPos(playerid, PX,PY,PZ+2);
  689. ActPlayer[playerid][ActBFastTimer] = SetTimerEx("ActFixPPIV", 1000 , false, "iii", playerid, vehicleid, seatid);
  690. }
  691.  
  692. else PutPlayerInVehicle(playerid, vehicleid, seatid);
  693. return 1;
  694. }
  695.  
  696. public ActSetPlayerPos(playerid, Float:x, Float:y, Float:z)
  697. {
  698. if(playerid > MAX_PLAYERS || playerid < 0) return 0;
  699. if(!ActPlayer[playerid][ActProtectPos]) SetTimerEx("ActResetHandler",4000, false,"ii", playerid, 3);
  700. ActPlayer[playerid][ActProtectPos] = true;
  701. return SetPlayerPos(playerid, x, y, z);
  702. }
  703.  
  704. #if defined _ALS_OnUnoccupiedVehicleUpdate
  705. #undef OnUnoccupiedVehicleUpdate
  706. #else
  707. #define _ALS_OnUnoccupiedVehicleUpdate
  708. #endif
  709.  
  710. #if defined _ALS_OnPlayerStateChange
  711. #undef OnPlayerStateChange
  712. #else
  713. #define _ALS_OnPlayerStateChange
  714. #endif
  715.  
  716. #if defined _ALS_OnPlayerConnect
  717. #undef OnPlayerConnect
  718. #else
  719. #define _ALS_OnPlayerConnect
  720. #endif
  721.  
  722. #if defined _ALS_OnPlayerSpawn
  723. #undef OnPlayerSpawn
  724. #else
  725. #define _ALS_OnPlayerSpawn
  726. #endif
  727.  
  728. #if defined _ALS_OnPlayerDisconnect
  729. #undef OnPlayerDisconnect
  730. #else
  731. #define _ALS_OnPlayerDisconnect
  732. #endif
  733.  
  734. #if defined _ALS_OnPlayerExitVehicle
  735. #undef OnPlayerExitVehicle
  736. #else
  737. #define _ALS_OnPlayerExitVehicle
  738. #endif
  739.  
  740. #if defined _ALS_OnPlayerDeath
  741. #undef OnPlayerDeath
  742. #else
  743. #define _ALS_OnPlayerDeath
  744. #endif
  745.  
  746. #if defined _ALS_OnGameModeInit
  747. #undef OnGameModeInit
  748. #else
  749. #define _ALS_OnGameModeInit
  750. #endif
  751.  
  752. #if defined _ALS_OnGameModeExit
  753. #undef OnGameModeExit
  754. #else
  755. #define _ALS_OnGameModeExit
  756. #endif
  757.  
  758. #if defined _ALS_OnPlayerEnterVehicle
  759. #undef OnPlayerEnterVehicle
  760. #else
  761. #define _ALS_OnPlayerEnterVehicle
  762. #endif
  763.  
  764. #if defined _ALS_OnPlayerUpdate
  765. #undef OnPlayerUpdate
  766. #else
  767. #define _ALS_OnPlayerUpdate
  768. #endif
  769.  
  770. #if defined _ALS_PutPlayerInVehicle
  771. #undef PutPlayerInVehicle
  772. #else
  773. #define _ALS_PutPlayerInVehicle
  774. #endif
  775.  
  776. #if defined _ALS_SetPlayerPos
  777. #undef SetPlayerPos
  778. #else
  779. #define _ALS_SetPlayerPos
  780. #endif
  781.  
  782. #if defined _ALS_TogglePlayerSpectating
  783. #undef TogglePlayerSpectating
  784. #else
  785. #define _ALS_TogglePlayerSpectating
  786. #endif
  787.  
  788. #if defined _ALS_RemovePlayerFromVehicle
  789. #undef RemovePlayerFromVehicle
  790. #else
  791. #define _ALS_RemovePlayerFromVehicle
  792. #endif
  793.  
  794. #define OnUnoccupiedVehicleUpdate OnUnoccupiedVehicleUpdateAct
  795. #define OnPlayerExitVehicle OnPlayerExitVehicleACT
  796. #define OnGameModeInit OnGameModeInitACT
  797. #define OnPlayerDeath OnPlayerDeathACT
  798. #define OnPlayerDisconnect OnPlayerDisconnectACT
  799. #define OnPlayerSpawn OnPlayerSpawnAct
  800. #define OnPlayerConnect OnPlayerConnectACT
  801. #define OnPlayerStateChange OnPlayerStateChangeACT
  802. #define OnGameModeExit OnGameModeExitACT
  803. #define OnPlayerEnterVehicle OnPlayerEnterVehicleACT
  804. #define OnPlayerUpdate OnPlayerUpdateACT
  805.  
  806. #define TogglePlayerSpectating ActTogglePlayerSpectating
  807. #define RemovePlayerFromVehicle ActRemovePlayerFromVehicle
  808. #define PutPlayerInVehicle ActPutPlayerInVehicle
  809. #define SetPlayerPos ActSetPlayerPos
  810.  
  811. #else //ZA FS ! TINO
  812.  
  813. #if defined _ALS_RemovePlayerFromVehicle
  814. #undef RemovePlayerFromVehicle
  815. #else
  816. #define _ALS_RemovePlayerFromVehicle
  817. #endif
  818.  
  819. #if defined _ALS_PutPlayerInVehicle
  820. #undef PutPlayerInVehicle
  821. #else
  822. #define _ALS_PutPlayerInVehicle
  823. #endif
  824.  
  825. #if defined _ALS_SetPlayerPos
  826. #undef SetPlayerPos
  827. #else
  828. #define _ALS_SetPlayerPos
  829. #endif
  830.  
  831. #if defined _ALS_TogglePlayerSpectating
  832. #undef TogglePlayerSpectating
  833. #else
  834. #define _ALS_TogglePlayerSpectating
  835. #endif
  836.  
  837. #define RemovePlayerFromVehicle ActFRemovePlayerFromVehicle
  838. #define TogglePlayerSpectating ActFTogglePlayerSpectating
  839. #define PutPlayerInVehicle ActFPutPlayerInVehicle
  840. #define SetPlayerPos ActFSetPlayerPos
  841.  
  842. stock ActFRemovePlayerFromVehicle(playerid)
  843. return CallRemoteFunction("ActRemovePlayerFromVehicle","i", playerid);
  844.  
  845. stock ActFTogglePlayerSpectating(playerid, bool:toggle)
  846. return CallRemoteFunction("ActTogglePlayerSpectating","ii", playerid, toggle);
  847.  
  848. stock ActFPutPlayerInVehicle(playerid, vehicleid, seatid)
  849. return CallRemoteFunction("ActPutPlayerInVehicle","iii", playerid, vehicleid, seatid);
  850.  
  851. stock ActFSetPlayerPos(playerid, Float:x, Float:y, Float:z)
  852. return CallRemoteFunction("ActSetPlayerPos","ifff", playerid, x, y, z);
  853.  
  854. #endif
  855.  
  856. static stock ACT_memset(aArray[], iValue, iSize = sizeof(aArray)) {
  857. new
  858. iAddress
  859. ;
  860.  
  861. #emit LOAD.S.pri 12
  862. #emit STOR.S.pri iAddress
  863.  
  864. iSize *= 4;
  865.  
  866. while (iSize > 0) {
  867. if (iSize >= 4096) {
  868. #emit LOAD.S.alt iAddress
  869. #emit LOAD.S.pri iValue
  870. #emit FILL 4096
  871.  
  872. iSize -= 4096;
  873. iAddress += 4096;
  874. } else if (iSize >= 1024) {
  875. #emit LOAD.S.alt iAddress
  876. #emit LOAD.S.pri iValue
  877. #emit FILL 1024
  878.  
  879. iSize -= 1024;
  880. iAddress += 1024;
  881. } else if (iSize >= 256) {
  882. #emit LOAD.S.alt iAddress
  883. #emit LOAD.S.pri iValue
  884. #emit FILL 256
  885.  
  886. iSize -= 256;
  887. iAddress += 256;
  888. } else if (iSize >= 64) {
  889. #emit LOAD.S.alt iAddress
  890. #emit LOAD.S.pri iValue
  891. #emit FILL 64
  892.  
  893. iSize -= 64;
  894. iAddress += 64;
  895. } else if (iSize >= 16) {
  896. #emit LOAD.S.alt iAddress
  897. #emit LOAD.S.pri iValue
  898. #emit FILL 16
  899.  
  900. iSize -= 16;
  901. iAddress += 16;
  902. } else {
  903. #emit LOAD.S.alt iAddress
  904. #emit LOAD.S.pri iValue
  905. #emit FILL 4
  906.  
  907. iSize -= 4;
  908. iAddress += 4;
  909. }
  910. }
  911.  
  912. #pragma unused aArray
  913. }
Add Comment
Please, Sign In to add comment