Advertisement
Guest User

Untitled

a guest
Apr 3rd, 2014
639
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 37.65 KB | None | 0 0
  1. /*
  2. Защита от флуда OnPlayerRequestClass
  3. Защита от флуда OnPlayerSpawn
  4. Защита от флуда OnPlayerDeath
  5. Защита от флуда OnVehicleDeath
  6. Защита от флуда OnPlayerText
  7. Защита от флуда OnPlayerCommandText
  8. Защита от флуда OnPlayerEnterVehicle
  9. Защита от флуда OnPlayerExitVehicle
  10. Защита от флуда OnPlayerStateChange
  11. Защита от флуда OnPlayerEnterCheckpoint
  12. Защита от флуда OnPlayerLeaveCheckpoint
  13. Защита от флуда OnPlayerEnterRaceCheckpoint
  14. Защита от флуда OnPlayerLeaveRaceCheckpoint
  15. Защита от флуда OnPlayerRequestSpawn
  16. Защита от флуда OnPlayerPickUpPickup
  17. Защита от флуда OnVehicleMod
  18. Защита от флуда OnVehiclePaintjob
  19. Защита от флуда OnVehicleRespray
  20. Защита от флуда OnPlayerSelectedMenuRow
  21. Защита от флуда OnPlayerExitedMenu
  22. Защита от флуда OnPlayerInteriorChange
  23. Защита от флуда OnDialogResponse
  24. Защита от флуда OnPlayerClickPlayer
  25. Защита от флуда OnPlayerWeaponShot
  26. Защита от флуда OnPlayerGiveDamage
  27. Защита от флуда OnPlayerTakeDamage
  28. Защита от флуда OnPlayerClickMap
  29. Защита от флуда OnPlayerClickTextDraw
  30. Защита от флуда OnPlayerClickPlayerTextDraw
  31. Защита от Dos'a на сетевом уровне
  32. Защита от частого Reconnect'a
  33. Защита от Bot's
  34. Защита от Dos'a(Caypen,PizDdos,BabaShura,DedaVanya,Vnuchok,SimpleBot,ZetaB,RakSamp и т.д)
  35. Защита от краша неправильным тюнингом
  36. Защита от Vehicle Hack
  37. Защита от высокого пинга
  38. Защита от 2x Ip's
  39. Защита от Unknown SA-MP version
  40. Защита от крашнутых символов,замена на #
  41. */
  42.  
  43. #include <a_samp>
  44. #include <mxINI>
  45.  
  46. #define IP_GO_ADREAS "0.0.0.0"
  47. #define IP_GO_PORT   7777
  48.  
  49. #undef MAX_PLAYERS
  50. #define MAX_PLAYERS 1000
  51.  
  52. new FP_TimerPlayer[MAX_PLAYERS];
  53. //
  54. new FP_OnPlayerRequestClass[MAX_PLAYERS];
  55. new FP_OnPlayerSpawn[MAX_PLAYERS];
  56. new FP_OnPlayerDeath[MAX_PLAYERS];
  57. new FP_OnVehicleDeath[MAX_PLAYERS];
  58. new FP_OnPlayerText[MAX_PLAYERS];
  59. new FP_OnPlayerCommandText[MAX_PLAYERS];
  60. new FP_OnPlayerEnterVehicle[MAX_PLAYERS];
  61. new FP_OnPlayerExitVehicle[MAX_PLAYERS];
  62. new FP_OnPlayerStateChange[MAX_PLAYERS];
  63. new FP_OnPlayerEnterCheckpoint[MAX_PLAYERS];
  64. new FP_OnPlayerLeaveCheckpoint[MAX_PLAYERS];
  65. new FP_OnPlayerEnterRaceCheckpoint[MAX_PLAYERS];
  66. new FP_OnPlayerLeaveRaceCheckpoint[MAX_PLAYERS];
  67. new FP_OnPlayerRequestSpawn[MAX_PLAYERS];
  68. new FP_OnPlayerPickUpPickup[MAX_PLAYERS];
  69. new FP_OnVehicleMod[MAX_PLAYERS];
  70. new FP_OnVehiclePaintjob[MAX_PLAYERS];
  71. new FP_OnVehicleRespray[MAX_PLAYERS];
  72. new FP_OnPlayerSelectedMenuRow[MAX_PLAYERS];
  73. new FP_OnPlayerExitedMenu[MAX_PLAYERS];
  74. new FP_OnPlayerInteriorChange[MAX_PLAYERS];
  75. new FP_OnDialogResponse[MAX_PLAYERS];
  76. new FP_OnPlayerClickPlayer[MAX_PLAYERS];
  77. new FP_OnPlayerWeaponShot[MAX_PLAYERS];
  78. new FP_OnPlayerGiveDamage[MAX_PLAYERS];
  79. new FP_OnPlayerTakeDamage[MAX_PLAYERS];
  80. new FP_OnPlayerClickMap[MAX_PLAYERS];
  81. new FP_OnPlayerClickTextDraw[MAX_PLAYERS];
  82. new FP_OnPlayerClickPlayerTextDraw[MAX_PLAYERS];
  83. //
  84. new FP_ConnectTimed[MAX_PLAYERS];
  85. new FP_IsConnected[MAX_PLAYERS];
  86. new FP_VehicleHack[MAX_PLAYERS];
  87. new FP_LoadStats[MAX_PLAYERS][400];
  88. new FP_Packets[MAX_PLAYERS];
  89. new FP_MessagesAll[MAX_PLAYERS];
  90. new FP_VersionClient[MAX_PLAYERS][40];
  91. //
  92. new FP_Port;
  93. new FP_Ip_Adreas[18];
  94. new FP_For_No_Ip_Adreas=5;
  95. new FP_Yes_Ip_Adreas[18]=IP_GO_ADREAS;
  96. new FP_Yes_Port=IP_GO_PORT;
  97. //
  98. new MF_OnPlayerRequestClass;
  99. new MF_OnPlayerSpawn;
  100. new MF_OnPlayerDeath;
  101. new MF_OnVehicleDeath;
  102. new MF_OnPlayerText;
  103. new MF_OnPlayerCommandText;
  104. new MF_OnPlayerEnterVehicle;
  105. new MF_OnPlayerExitVehicle;
  106. new MF_OnPlayerStateChange;
  107. new MF_OnPlayerEnterCheckpoint;
  108. new MF_OnPlayerLeaveCheckpoint;
  109. new MF_OnPlayerEnterRaceCheckpoint;
  110. new MF_OnPlayerLeaveRaceCheckpoint;
  111. new MF_OnPlayerRequestSpawn;
  112. new MF_OnPlayerPickUpPickup;
  113. new MF_OnVehicleMod;
  114. new MF_OnVehiclePaintjob;
  115. new MF_OnVehicleRespray;
  116. new MF_OnPlayerSelectedMenuRow;
  117. new MF_OnPlayerExitedMenu;
  118. new MF_OnPlayerInteriorChange;
  119. new MF_OnDialogResponse;
  120. new MF_OnPlayerClickPlayer;
  121. new MF_OnPlayerWeaponShot;
  122. new MF_OnPlayerGiveDamage;
  123. new MF_OnPlayerTakeDamage;
  124. new MF_OnPlayerClickMap;
  125. new MF_OnPlayerClickTextDraw;
  126. new MF_OnPlayerClickPlayerTextDraw;
  127. new MF_Reconnect;
  128. new MF_Bot;
  129. new MF_Dos;
  130. new MF_VehicleHack;
  131. new MF_Ping;
  132. //
  133. forward OnPlayerUpdateProtection(playerid);
  134.  
  135. main(){print("Freedom Project | Protection(АнтиDos)");}
  136.  
  137. public OnFilterScriptInit()
  138. {
  139.     AntiDeAMX();
  140.     FP_Port=GetServerVarAsInt("port");
  141.     GetServerVarAsString("bind",FP_Ip_Adreas,sizeof(FP_Ip_Adreas));
  142.     if((strcmp(FP_Ip_Adreas,FP_Yes_Ip_Adreas,true,18)!=0||strlen(FP_Ip_Adreas)==0)&&(FP_Port!=FP_Yes_Port||FP_Port==0)){
  143.     }else{
  144.         while(FP_For_No_Ip_Adreas<10){
  145.             OnFilterScriptExit();
  146.         }
  147.     }
  148.     LoadingSetting();
  149.     return 1;
  150. }
  151.  
  152. AntiDeAMX()
  153. {
  154.     new a[][]={"Unarmed (Fist)","Brass K"};
  155.     #pragma unused a
  156. }
  157.  
  158. public OnFilterScriptExit()
  159. {
  160.     return 1;
  161. }
  162.  
  163. public OnPlayerRequestClass(playerid, classid)
  164. {
  165.     FP_OnPlayerRequestClass[playerid]++;
  166.     if(FP_OnPlayerRequestClass[playerid]>MF_OnPlayerRequestClass){
  167.         PlayerMessageBan(playerid,"Бан по причине: флуд OnPlayerRequestClass");
  168.     }
  169.     return 1;
  170. }
  171.  
  172. public OnPlayerConnect(playerid)
  173. {
  174.     if((GetTickCount()-FP_ConnectTimed[playerid])<MF_Reconnect){
  175.         PlayerMessageBan(playerid,"Бан по причине: частый Reconnect");
  176.     }
  177.     FP_ConnectTimed[playerid]=GetTickCount();
  178.     //
  179.     if(FP_IsConnected[playerid]>MF_Bot){
  180.         PlayerMessageBan(playerid,"Бан по причине: Bot's");
  181.     }
  182.     FP_IsConnected[playerid]+=1;
  183.     //
  184.     for(new i=0;i<MAX_PLAYERS;i++){
  185.         if(i==playerid||!IsPlayerConnected(i))continue;
  186.         if(!strcmp(PlayerIP(i),PlayerIP(playerid),true)){
  187.             PlayerMessageBan(playerid,"Бан по причине: 2x Ip's");
  188.         }
  189.     }
  190.     //
  191.     GetPlayerVersion(playerid,FP_VersionClient[playerid],40);
  192.     if(!strcmp(FP_VersionClient[playerid],"unknown",true)){
  193.         PlayerMessageBan(playerid,"Бан по причине: Unknown SA-MP version");
  194.     }
  195.     //
  196.     FP_OnPlayerRequestClass[playerid]=0;
  197.     FP_OnPlayerSpawn[playerid]=0;
  198.     FP_OnPlayerDeath[playerid]=0;
  199.     FP_OnVehicleDeath[playerid]=0;
  200.     FP_OnPlayerText[playerid]=0;
  201.     FP_OnPlayerCommandText[playerid]=0;
  202.     FP_OnPlayerEnterVehicle[playerid]=0;
  203.     FP_OnPlayerExitVehicle[playerid]=0;
  204.     FP_OnPlayerStateChange[playerid]=0;
  205.     FP_OnPlayerEnterCheckpoint[playerid]=0;
  206.     FP_OnPlayerLeaveCheckpoint[playerid]=0;
  207.     FP_OnPlayerEnterRaceCheckpoint[playerid]=0;
  208.     FP_OnPlayerLeaveRaceCheckpoint[playerid]=0;
  209.     FP_OnPlayerRequestSpawn[playerid]=0;
  210.     FP_OnPlayerPickUpPickup[playerid]=0;
  211.     FP_OnVehicleMod[playerid]=0;
  212.     FP_OnVehiclePaintjob[playerid]=0;
  213.     FP_OnVehicleRespray[playerid]=0;
  214.     FP_OnPlayerSelectedMenuRow[playerid]=0;
  215.     FP_OnPlayerExitedMenu[playerid]=0;
  216.     FP_OnPlayerInteriorChange[playerid]=0;
  217.     FP_OnDialogResponse[playerid]=0;
  218.     FP_OnPlayerClickPlayer[playerid]=0;
  219.     FP_OnPlayerWeaponShot[playerid]=0;
  220.     FP_OnPlayerGiveDamage[playerid]=0;
  221.     FP_OnPlayerTakeDamage[playerid]=0;
  222.     FP_OnPlayerClickMap[playerid]=0;
  223.     FP_OnPlayerClickTextDraw[playerid]=0;
  224.     FP_OnPlayerClickPlayerTextDraw[playerid]=0;
  225.     //
  226.     FP_TimerPlayer[playerid]=SetTimerEx("OnPlayerUpdateProtection",950,true,"d",playerid);
  227.     return 1;
  228. }
  229.  
  230. public OnPlayerDisconnect(playerid, reason)
  231. {
  232.     FP_IsConnected[playerid]=0;
  233.     //
  234.     KillTimer(FP_TimerPlayer[playerid]);
  235.     //
  236.     if(reason<2)Kick(playerid);
  237.     return 1;
  238. }
  239.  
  240. public OnPlayerSpawn(playerid)
  241. {
  242.     FP_OnPlayerSpawn[playerid]++;
  243.     if(FP_OnPlayerSpawn[playerid]>MF_OnPlayerSpawn){
  244.         PlayerMessageBan(playerid,"Бан по причине: Флуд OnPlayerSpawn");
  245.     }
  246.     return 1;
  247. }
  248.  
  249. public OnPlayerDeath(playerid, killerid, reason)
  250. {
  251.     FP_OnPlayerDeath[playerid]++;
  252.     if(FP_OnPlayerDeath[playerid]>MF_OnPlayerDeath){
  253.         PlayerMessageBan(playerid,"Бан по причине: Флуд OnPlayerDeath");
  254.     }
  255.     if(killerid!=65535){
  256.         FP_OnPlayerDeath[killerid]++;
  257.         if(FP_OnPlayerDeath[killerid]>MF_OnPlayerDeath){
  258.             PlayerMessageBan(killerid,"Бан по причине: Флуд OnPlayerDeath");
  259.         }
  260.     }
  261.     return 1;
  262. }
  263.  
  264. public OnVehicleSpawn(vehicleid)
  265. {
  266.     return 1;
  267. }
  268.  
  269. public OnVehicleDeath(vehicleid, killerid)
  270. {
  271.     FP_OnVehicleDeath[killerid]++;
  272.     if(FP_OnVehicleDeath[killerid]>MF_OnVehicleDeath){
  273.         PlayerMessageBan(killerid,"Бан по причине: Флуд OnVehicleDeath");
  274.     }
  275.     return 1;
  276. }
  277.  
  278. public OnPlayerText(playerid, text[])
  279. {
  280.     FP_OnPlayerText[playerid]++;
  281.     if(FP_OnPlayerText[playerid]>MF_OnPlayerText){
  282.         PlayerMessageBan(playerid,"Бан по причине: Флуд OnPlayerText");
  283.         return 0;
  284.     }
  285.     return 1;
  286. }
  287.  
  288. public OnPlayerCommandText(playerid, cmdtext[])
  289. {
  290.     FP_OnPlayerCommandText[playerid]++;
  291.     if(FP_OnPlayerCommandText[playerid]>MF_OnPlayerCommandText){
  292.         PlayerMessageBan(playerid,"Бан по причине: Флуд OnPlayerCommandText");
  293.         return 0;
  294.     }
  295.     return 0;
  296. }
  297.  
  298. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  299. {
  300.     FP_OnPlayerEnterVehicle[playerid]++;
  301.     if(FP_OnPlayerEnterVehicle[playerid]>MF_OnPlayerEnterVehicle){
  302.         PlayerMessageBan(playerid,"Бан по причине: Флуд OnPlayerEnterVehicle");
  303.     }
  304.     return 1;
  305. }
  306.  
  307. public OnPlayerExitVehicle(playerid, vehicleid)
  308. {
  309.     FP_OnPlayerExitVehicle[playerid]++;
  310.     if(FP_OnPlayerExitVehicle[playerid]>MF_OnPlayerExitVehicle){
  311.         PlayerMessageBan(playerid,"Бан по причине: Флуд OnPlayerExitVehicle");
  312.     }
  313.     return 1;
  314. }
  315.  
  316. public OnPlayerStateChange(playerid, newstate, oldstate)
  317. {
  318.     FP_OnPlayerStateChange[playerid]++;
  319.     if(FP_OnPlayerStateChange[playerid]>MF_OnPlayerStateChange){
  320.         PlayerMessageBan(playerid,"Бан по причине: Флуд OnPlayerStateChange");
  321.     }
  322.     if(FP_VehicleHack[playerid]>MF_VehicleHack){
  323.         PlayerMessageBan(playerid,"Бан по причине: Vehicle Hack");
  324.     }
  325.     if(newstate==PLAYER_STATE_DRIVER||newstate==PLAYER_STATE_PASSENGER){
  326.         FP_VehicleHack[playerid]++;
  327.     }
  328.     return 1;
  329. }
  330.  
  331. public OnPlayerEnterCheckpoint(playerid)
  332. {
  333.     FP_OnPlayerEnterCheckpoint[playerid]++;
  334.     if(FP_OnPlayerEnterCheckpoint[playerid]>MF_OnPlayerEnterCheckpoint){
  335.         PlayerMessageBan(playerid,"Бан по причине: Флуд OnPlayerEnterCheckpoint");
  336.     }
  337.     return 1;
  338. }
  339.  
  340. public OnPlayerLeaveCheckpoint(playerid)
  341. {
  342.     FP_OnPlayerLeaveCheckpoint[playerid]++;
  343.     if(FP_OnPlayerLeaveCheckpoint[playerid]>MF_OnPlayerLeaveCheckpoint){
  344.         PlayerMessageBan(playerid,"Бан по причине: Флуд OnPlayerLeaveCheckpoint");
  345.     }
  346.     return 1;
  347. }
  348.  
  349. public OnPlayerEnterRaceCheckpoint(playerid)
  350. {
  351.     FP_OnPlayerEnterRaceCheckpoint[playerid]++;
  352.     if(FP_OnPlayerEnterRaceCheckpoint[playerid]>MF_OnPlayerEnterRaceCheckpoint){
  353.         PlayerMessageBan(playerid,"Бан по причине: Флуд OnPlayerEnterRaceCheckpoint");
  354.     }
  355.     return 1;
  356. }
  357.  
  358. public OnPlayerLeaveRaceCheckpoint(playerid)
  359. {
  360.     FP_OnPlayerLeaveRaceCheckpoint[playerid]++;
  361.     if(FP_OnPlayerLeaveRaceCheckpoint[playerid]>MF_OnPlayerLeaveRaceCheckpoint){
  362.         PlayerMessageBan(playerid,"Бан по причине: Флуд OnPlayerLeaveRaceCheckpoint");
  363.     }
  364.     return 1;
  365. }
  366.  
  367. public OnRconCommand(cmd[])
  368. {
  369.     return 1;
  370. }
  371.  
  372. public OnPlayerRequestSpawn(playerid)
  373. {
  374.     FP_OnPlayerRequestSpawn[playerid]++;
  375.     if(FP_OnPlayerRequestSpawn[playerid]>MF_OnPlayerRequestSpawn){
  376.         PlayerMessageBan(playerid,"Бан по причине: Флуд OnPlayerRequestSpawn");
  377.     }
  378.     return 1;
  379. }
  380.  
  381. public OnObjectMoved(objectid)
  382. {
  383.     return 1;
  384. }
  385.  
  386. public OnPlayerObjectMoved(playerid, objectid)
  387. {
  388.     return 1;
  389. }
  390.  
  391. public OnPlayerPickUpPickup(playerid, pickupid)
  392. {
  393.     FP_OnPlayerPickUpPickup[playerid]++;
  394.     if(FP_OnPlayerPickUpPickup[playerid]>MF_OnPlayerPickUpPickup){
  395.         PlayerMessageBan(playerid,"Бан по причине: Флуд OnPlayerPickUpPickup");
  396.     }
  397.     return 1;
  398. }
  399.  
  400. public OnVehicleMod(playerid, vehicleid, componentid)
  401. {
  402.     FP_OnVehicleMod[playerid]++;
  403.     if(FP_OnVehicleMod[playerid]>MF_OnVehicleMod){
  404.         PlayerMessageBan(playerid,"Бан по причине: Флуд OnVehicleMod");
  405.     }
  406.     //
  407.     switch(componentid){
  408.         case 1008..1010:{
  409.             if(IsPlayerInInvalidNosVehicle(playerid)){
  410.                 RemoveVehicleComponent(vehicleid,componentid);
  411.             }
  412.         }
  413.     }
  414.     if(!IsComponentidCompatible(GetVehicleModel(vehicleid),componentid)){
  415.         RemoveVehicleComponent(vehicleid,componentid);
  416.         PlayerMessageBan(playerid,"Бан по причине: краш неправильным тюнингом");
  417.     }
  418.     //
  419.     return 1;
  420. }
  421.  
  422. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  423. {
  424.     FP_OnVehiclePaintjob[playerid]++;
  425.     if(FP_OnVehiclePaintjob[playerid]>MF_OnVehiclePaintjob){
  426.         PlayerMessageBan(playerid,"Бан по причине: Флуд OnVehiclePaintjob");
  427.     }
  428.     return 1;
  429. }
  430.  
  431. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  432. {
  433.     FP_OnVehicleRespray[playerid]++;
  434.     if(FP_OnVehicleRespray[playerid]>MF_OnVehicleRespray){
  435.         PlayerMessageBan(playerid,"Бан по причине: Флуд OnVehicleRespray");
  436.     }
  437.     return 1;
  438. }
  439.  
  440. public OnVehicleDamageStatusUpdate(vehicleid, playerid)
  441. {
  442.     return 1;
  443. }
  444.  
  445. public OnUnoccupiedVehicleUpdate(vehicleid, playerid, passenger_seat, Float:new_x, Float:new_y, Float:new_z)
  446. {
  447.     return 1;
  448. }
  449.  
  450. public OnPlayerSelectedMenuRow(playerid, row)
  451. {
  452.     FP_OnPlayerSelectedMenuRow[playerid]++;
  453.     if(FP_OnPlayerSelectedMenuRow[playerid]>MF_OnPlayerSelectedMenuRow){
  454.         PlayerMessageBan(playerid,"Бан по причине: Флуд OnPlayerSelectedMenuRow");
  455.     }
  456.     return 1;
  457. }
  458.  
  459. public OnPlayerExitedMenu(playerid)
  460. {
  461.     FP_OnPlayerExitedMenu[playerid]++;
  462.     if(FP_OnPlayerExitedMenu[playerid]>MF_OnPlayerExitedMenu){
  463.         PlayerMessageBan(playerid,"Бан по причине: Флуд OnPlayerExitedMenu");
  464.         return 0;
  465.     }
  466.     return 1;
  467. }
  468.  
  469. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  470. {
  471.     FP_OnPlayerInteriorChange[playerid]++;
  472.     if(FP_OnPlayerInteriorChange[playerid]>MF_OnPlayerInteriorChange){
  473.         PlayerMessageBan(playerid,"Бан по причине: Флуд OnPlayerInteriorChange");
  474.         return 0;
  475.     }
  476.     return 1;
  477. }
  478.  
  479. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  480. {
  481.     return 1;
  482. }
  483.  
  484. public OnRconLoginAttempt(ip[], password[], success)
  485. {
  486.     return 1;
  487. }
  488.  
  489. public OnPlayerUpdate(playerid)
  490. {
  491.     return 1;
  492. }
  493.  
  494. public OnPlayerStreamIn(playerid, forplayerid)
  495. {
  496.     return 1;
  497. }
  498.  
  499. public OnPlayerStreamOut(playerid, forplayerid)
  500. {
  501.     return 1;
  502. }
  503.  
  504. public OnVehicleStreamIn(vehicleid, forplayerid)
  505. {
  506.     return 1;
  507. }
  508.  
  509. public OnVehicleStreamOut(vehicleid, forplayerid)
  510. {
  511.     return 1;
  512. }
  513.  
  514. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  515. {
  516.     FP_OnDialogResponse[playerid]++;
  517.     if(FP_OnDialogResponse[playerid]>MF_OnDialogResponse){
  518.         PlayerMessageBan(playerid,"Бан по причине: Флуд OnDialogResponse");
  519.     }
  520.     new FP_Text=strlen(inputtext);
  521.     for(new i=0;i<FP_Text;++i){
  522.         if(inputtext[i]=='%'){
  523.             inputtext[i]='#';
  524.         }
  525.     }
  526.     return 1;
  527. }
  528.  
  529. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  530. {
  531.     FP_OnPlayerClickPlayer[playerid]++;
  532.     if(FP_OnPlayerClickPlayer[playerid]>MF_OnPlayerClickPlayer){
  533.         PlayerMessageBan(playerid,"Бан по причине: Флуд OnPlayerClickPlayer");
  534.     }
  535.     return 1;
  536. }
  537.  
  538. public OnPlayerGiveDamage(playerid,damagedid,Float:amount,weaponid,bodypart)
  539. {
  540.     FP_OnPlayerGiveDamage[playerid]++;
  541.     if(FP_OnPlayerGiveDamage[playerid]>MF_OnPlayerGiveDamage){
  542.         PlayerMessageBan(playerid,"Бан по причине: Флуд OnPlayerGiveDamage");
  543.     }
  544.     FP_OnPlayerGiveDamage[damagedid]++;
  545.     if(FP_OnPlayerGiveDamage[damagedid]>MF_OnPlayerGiveDamage){
  546.         PlayerMessageBan(damagedid,"Бан по причине: Флуд OnPlayerGiveDamage");
  547.     }
  548.     return 1;
  549. }
  550.  
  551. public OnPlayerTakeDamage(playerid,issuerid,Float:amount,weaponid,bodypart)
  552. {
  553.     FP_OnPlayerTakeDamage[playerid]++;
  554.     if(FP_OnPlayerTakeDamage[playerid]>MF_OnPlayerTakeDamage){
  555.         PlayerMessageBan(playerid,"Бан по причине: Флуд OnPlayerTakeDamage");
  556.     }
  557.     if(issuerid!=65535){
  558.         FP_OnPlayerTakeDamage[issuerid]++;
  559.         if(FP_OnPlayerTakeDamage[issuerid]>MF_OnPlayerTakeDamage){
  560.             PlayerMessageBan(issuerid,"Бан по причине: Флуд OnPlayerTakeDamage");
  561.         }
  562.     }
  563.     return 1;
  564. }
  565.  
  566. public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ)
  567. {
  568.     FP_OnPlayerClickMap[playerid]++;
  569.     if(FP_OnPlayerClickMap[playerid]>MF_OnPlayerClickMap){
  570.         PlayerMessageBan(playerid,"Бан по причине: Флуд OnPlayerClickMap");
  571.     }
  572.     return 1;
  573. }
  574.  
  575. public OnPlayerClickTextDraw(playerid, Text:clickedid)
  576. {
  577.     FP_OnPlayerClickTextDraw[playerid]++;
  578.     if(FP_OnPlayerClickTextDraw[playerid]>MF_OnPlayerClickTextDraw){
  579.         PlayerMessageBan(playerid,"Бан по причине: Флуд OnPlayerClickTextDraw");
  580.     }
  581.     return 1;
  582. }
  583.  
  584. public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
  585. {
  586.     FP_OnPlayerClickPlayerTextDraw[playerid]++;
  587.     if(FP_OnPlayerClickPlayerTextDraw[playerid]>MF_OnPlayerClickPlayerTextDraw){
  588.         PlayerMessageBan(playerid,"Бан по причине: Флуд OnPlayerClickPlayerTextDraw");
  589.     }
  590.     return 1;
  591. }
  592.  
  593. public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ)
  594. {
  595.     return 1;
  596. }
  597.  
  598. public OnPlayerEditAttachedObject(playerid, response, index, modelid, boneid,Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ,Float:fRotX, Float:fRotY, Float:fRotZ,Float:fScaleX, Float:fScaleY, Float:fScaleZ)
  599. {
  600.     return 1;
  601. }
  602.  
  603. public OnPlayerSelectObject(playerid, type, objectid, modelid, Float:fX, Float:fY, Float:fZ)
  604. {
  605.     return 1;
  606. }
  607.  
  608. public OnPlayerWeaponShot(playerid,weaponid,hittype,hitid,Float:fX,Float:fY,Float:fZ)
  609. {
  610.     FP_OnPlayerWeaponShot[playerid]++;
  611.     if(FP_OnPlayerWeaponShot[playerid]>25){
  612.         PlayerMessageBan(playerid,"Бан по причине: Флуд OnPlayerWeaponShot");
  613.     }
  614.     return 1;
  615. }
  616.  
  617. public OnPlayerUpdateProtection(playerid)
  618. {
  619.     FP_OnPlayerRequestClass[playerid]=0;
  620.     FP_OnPlayerSpawn[playerid]=0;
  621.     FP_OnPlayerDeath[playerid]=0;
  622.     FP_OnVehicleDeath[playerid]=0;
  623.     FP_OnPlayerText[playerid]=0;
  624.     FP_OnPlayerCommandText[playerid]=0;
  625.     FP_OnPlayerEnterVehicle[playerid]=0;
  626.     FP_OnPlayerExitVehicle[playerid]=0;
  627.     FP_OnPlayerStateChange[playerid]=0;
  628.     FP_OnPlayerEnterCheckpoint[playerid]=0;
  629.     FP_OnPlayerLeaveCheckpoint[playerid]=0;
  630.     FP_OnPlayerEnterRaceCheckpoint[playerid]=0;
  631.     FP_OnPlayerLeaveRaceCheckpoint[playerid]=0;
  632.     FP_OnPlayerRequestSpawn[playerid]=0;
  633.     FP_OnPlayerPickUpPickup[playerid]=0;
  634.     FP_OnVehicleMod[playerid]=0;
  635.     FP_OnVehiclePaintjob[playerid]=0;
  636.     FP_OnVehicleRespray[playerid]=0;
  637.     FP_OnPlayerSelectedMenuRow[playerid]=0;
  638.     FP_OnPlayerExitedMenu[playerid]=0;
  639.     FP_OnPlayerInteriorChange[playerid]=0;
  640.     FP_OnDialogResponse[playerid]=0;
  641.     FP_OnPlayerClickPlayer[playerid]=0;
  642.     FP_OnPlayerWeaponShot[playerid]=0;
  643.     FP_OnPlayerGiveDamage[playerid]=0;
  644.     FP_OnPlayerTakeDamage[playerid]=0;
  645.     FP_OnPlayerClickMap[playerid]=0;
  646.     FP_OnPlayerClickTextDraw[playerid]=0;
  647.     FP_OnPlayerClickPlayerTextDraw[playerid]=0;
  648.     FP_VehicleHack[playerid]=0;
  649.     //
  650.     if(GetPlayerPing(playerid)>MF_Ping){
  651.         PlayerMessageKick(playerid,"Кик по причине: высокий пинг");
  652.     }
  653.     //
  654.     GetPlayerNetworkStats(playerid,FP_LoadStats[playerid],400);
  655.     FP_MessagesAll[playerid]=GetMessages(FP_LoadStats[playerid][strfind(FP_LoadStats[playerid],"Messages received: ",false,180) + 0x13]);
  656.     if(FP_MessagesAll[playerid]-FP_Packets[playerid]>MF_Dos){//799
  657.         PlayerMessageBan(playerid,"Бан по причине: Dos");
  658.     }
  659.     FP_Packets[playerid]=FP_MessagesAll[playerid];
  660.     //
  661.     return 1;
  662. }
  663.  
  664. stock GetMessages(const string[])
  665. {
  666.     for(new i,index,str[50];i!=50;i++){
  667.         if(string[i]>='0'&&string[i]<='9'){
  668.             str[index]=string[i];
  669.             index++;
  670.         }
  671.         else return strval(str);
  672.     }
  673.     return -1;
  674. }
  675.  
  676. PlayerIP(playerid)
  677. {
  678.     new FP_Ip[18];
  679.     GetPlayerIp(playerid,FP_Ip,18);
  680.     return FP_Ip;
  681. }
  682.  
  683. stock PlayerMessageKick(playerid,string[])
  684. {
  685.     new FP_Name[MAX_PLAYER_NAME];
  686.     GetPlayerName(playerid,FP_Name,MAX_PLAYER_NAME);
  687.     printf("[ID %i | NAME %s]:%s",playerid,FP_Name,string);
  688.     Kick(playerid);
  689.     return 1;
  690. }
  691.  
  692. stock PlayerMessageBan(playerid,string[])
  693. {
  694.     new FP_Name[MAX_PLAYER_NAME];
  695.     GetPlayerName(playerid,FP_Name,MAX_PLAYER_NAME);
  696.     printf("[ID %i | NAME %s]:%s",playerid,FP_Name,string);
  697.     BanEx(playerid,string);
  698.     return 1;
  699. }
  700.  
  701. stock IsPlayerInInvalidNosVehicle(playerid){
  702.     if(IsPlayerInAnyVehicle(playerid)){
  703.         switch(GetVehicleModel(GetPlayerVehicleID(playerid))){
  704.             case 417,425,430,432,446,447,448,449,452,453,454,460,461,462,463,468,469,472,473,476,481,484,487,488,493,497,509,510,511,512,513,519,520,521,522,523,533,537,538,548,563,569,570,577,581,586,590,592,593,595:return true;
  705.         }
  706.     }
  707.     return false;
  708. }
  709.  
  710. stock IsComponentidCompatible(modelid,FP_C){
  711.     if(FP_C==1025||FP_C==1073||FP_C==1074||FP_C==1075||FP_C==1076||FP_C==1077||FP_C==1078||FP_C==1079||FP_C==1080||FP_C==1081||FP_C==1082||FP_C==1083||FP_C==1084||FP_C==1085||FP_C==1096||FP_C==1097||FP_C==1098||FP_C==1087||FP_C==1086)return true;
  712.     switch(modelid){
  713.         case 400:return(FP_C==1020||FP_C==1021||FP_C==1019||FP_C==1018||FP_C==1013||FP_C==1024||FP_C==1008||FP_C==1009||FP_C==1010);
  714.         case 401:return(FP_C==1005||FP_C==1004||FP_C==1142||FP_C==1143||FP_C==1144||FP_C==114||FP_C==1020||FP_C==1019||FP_C==1013||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1006||FP_C==1001||FP_C==1003||FP_C==1017||FP_C==1007);
  715.         case 402:return(FP_C==1009||FP_C==1009||FP_C==1010);
  716.         case 404:return(FP_C==1020||FP_C==1021||FP_C==1019||FP_C==1013||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1002||FP_C==1016||FP_C==1000||FP_C==1017||FP_C==1007);
  717.         case 405:return(FP_C==1020||FP_C==1021||FP_C==1019||FP_C==1018||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1001||FP_C==1014||FP_C==1023||FP_C==1000);
  718.         case 409:return(FP_C==1009);
  719.         case 410:return(FP_C==1019||FP_C==1021||FP_C==1020||FP_C==1013||FP_C==1024||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1001||FP_C==1023||FP_C==1003||FP_C==1017||FP_C==1007);
  720.         case 411:return(FP_C==1008||FP_C==1009||FP_C==1010);
  721.         case 412:return(FP_C==1008||FP_C==1009||FP_C==1010);
  722.         case 415:return(FP_C==1019||FP_C==1018||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1001||FP_C==1023||FP_C==1003||FP_C==1017||FP_C==1007);
  723.         case 418:return(FP_C==1020||FP_C==1021||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1006||FP_C==1002||FP_C==1016);
  724.         case 419:return(FP_C==1008||FP_C==1009||FP_C==1010);
  725.         case 420:return(FP_C==1005||FP_C==1004||FP_C==1021||FP_C==1019||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1001||FP_C==1003);
  726.         case 421:return(FP_C==1020||FP_C==1021||FP_C==1019||FP_C==1018||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1014||FP_C==1023||FP_C==1016||FP_C==1000);
  727.         case 422:return(FP_C==1020||FP_C==1021||FP_C==1019||FP_C==1013||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1017||FP_C==1007);
  728.         case 426:return(FP_C==1005||FP_C==1004||FP_C==1021||FP_C==1019||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1006||FP_C==1001||FP_C==1003);
  729.         case 429:return(FP_C==1008||FP_C==1009||FP_C==1010);
  730.         case 436:return(FP_C==1020||FP_C==1021||FP_C==1022||FP_C==1019||FP_C==1013||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1006||FP_C==1001||FP_C==1003||FP_C==1017||FP_C==1007);
  731.         case 438:return(FP_C==1008||FP_C==1009||FP_C==1010);
  732.         case 439:return(FP_C==1003||FP_C==1023||FP_C==1001||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1017||FP_C==1007||FP_C==1142||FP_C==1143||FP_C==1144||FP_C==1145||FP_C==1013);
  733.         case 442:return(FP_C==1008||FP_C==1009||FP_C==1010);
  734.         case 445:return(FP_C==1008||FP_C==1009||FP_C==1010);
  735.         case 451:return(FP_C==1008||FP_C==1009||FP_C==1010);
  736.         case 458:return(FP_C==1008||FP_C==1009||FP_C==1010);
  737.         case 466:return(FP_C==1008||FP_C==1009||FP_C==1010);
  738.         case 467:return(FP_C==1008||FP_C==1009||FP_C==1010);
  739.         case 474:return(FP_C==1008||FP_C==1009||FP_C==1010);
  740.         case 475:return(FP_C==1008||FP_C==1009||FP_C==1010);
  741.         case 477:return(FP_C==1020||FP_C==1021||FP_C==1019||FP_C==1018||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1006||FP_C==1017||FP_C==1007);
  742.         case 478:return(FP_C==1005||FP_C==1004||FP_C==1012||FP_C==1020||FP_C==1021||FP_C==1022||FP_C==1013||FP_C==1024||FP_C==1008||FP_C==1009||FP_C==1010);
  743.         case 479:return(FP_C==1008||FP_C==1009||FP_C==1010);
  744.         case 480:return(FP_C==1008||FP_C==1009||FP_C==1010);
  745.         case 489:return(FP_C==1005||FP_C==1004||FP_C==1020||FP_C==1019||FP_C==1018||FP_C==1013||FP_C==1024||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1006||FP_C==1002||FP_C==1016||FP_C==1000);
  746.         case 491:return(FP_C==1142||FP_C==1143||FP_C==1144||FP_C==1145||FP_C==1020||FP_C==1021||FP_C==1019||FP_C==1018||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1014||FP_C==1023||FP_C==1003||FP_C==1017||FP_C==1007);
  747.         case 492:return(FP_C==1005||FP_C==1004||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1006||FP_C==1016||FP_C==1000);
  748.         case 496:return(FP_C==1006||FP_C==1017||FP_C==1007||FP_C==1011||FP_C==1019||FP_C==1023||FP_C==1001||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1003||FP_C==1002||FP_C==1142||FP_C==1143||FP_C==1020);
  749.         case 500:return(FP_C==1020||FP_C==1021||FP_C==1019||FP_C==1013||FP_C==1024||FP_C==1008||FP_C==1009||FP_C==1010);
  750.         case 506:return(FP_C==1009);
  751.         case 507:return(FP_C==1008||FP_C==1009||FP_C==1010);
  752.         case 516:return(FP_C==1004||FP_C==1020||FP_C==1021||FP_C==1019||FP_C==1018||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1002||FP_C==1015||FP_C==1016||FP_C==1000||FP_C==1017||FP_C==1007);
  753.         case 517:return(FP_C==1142||FP_C==1143||FP_C==1144||FP_C==1145||FP_C==1020||FP_C==1019||FP_C==1018||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1002||FP_C==1023||FP_C==1016||FP_C==1003||FP_C==1017||FP_C==1007);
  754.         case 518:return(FP_C==1005||FP_C==1142||FP_C==1143||FP_C==1144||FP_C==1145||FP_C==1020||FP_C==1018||FP_C==1013||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1006||FP_C==1001||FP_C==1023||FP_C==1003||FP_C==1017||FP_C==1007);
  755.         case 526:return(FP_C==1008||FP_C==1009||FP_C==1010);
  756.         case 527:return(FP_C==1021||FP_C==1020||FP_C==1018||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1001||FP_C==1014||FP_C==1015||FP_C==1017||FP_C==1007);
  757.         case 529:return(FP_C==1012||FP_C==1011||FP_C==1020||FP_C==1019||FP_C==1018||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1006||FP_C==1001||FP_C==1023||FP_C==1003||FP_C==1017||FP_C==1007);
  758.         case 533:return(FP_C==1008||FP_C==1009||FP_C==1010);
  759.         case 534:return(FP_C==1126||FP_C==1127||FP_C==1179||FP_C==1185||FP_C==1100||FP_C==1123||FP_C==1125||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1180||FP_C==1178||FP_C==1101||FP_C==1122||FP_C==1124||FP_C==1106);
  760.         case 535:return(FP_C==1109||FP_C==1110||FP_C==1113||FP_C==1114||FP_C==1115||FP_C==1116||FP_C==1117||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1120||FP_C==1118||FP_C==1121||FP_C==1119);
  761.         case 536:return(FP_C==1104||FP_C==1105||FP_C==1182||FP_C==1181||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1184||FP_C==1183||FP_C==1128||FP_C==1103||FP_C==1107||FP_C==1108);
  762.         case 540:return(FP_C==1004||FP_C==1142||FP_C==1143||FP_C==1144||FP_C==1145||FP_C==1020||FP_C==1019||FP_C==1018||FP_C==1024||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1006||FP_C==1001||FP_C==1023||FP_C==1017||FP_C==1007);
  763.         case 541:return(FP_C==1008||FP_C==1009||FP_C==1010);
  764.         case 542:return(FP_C==1144||FP_C==1145||FP_C==1020||FP_C==1021||FP_C==1019||FP_C==1018||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1014||FP_C==1015);
  765.         case 545:return(FP_C==1008||FP_C==1009||FP_C==1010);
  766.         case 546:return(FP_C==1004||FP_C==1142||FP_C==1143||FP_C==1144||FP_C==1145||FP_C==1019||FP_C==1018||FP_C==1024||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1006||FP_C==1002||FP_C==1001||FP_C==1023||FP_C==1017||FP_C==1007);
  767.         case 547:return(FP_C==1142||FP_C==1143||FP_C==1020||FP_C==1021||FP_C==1019||FP_C==1018||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1016||FP_C==1003||FP_C==1000);
  768.         case 549:return(FP_C==1012||FP_C==1011||FP_C==1142||FP_C==1143||FP_C==1144||FP_C==1145||FP_C==1020||FP_C==1019||FP_C==1018||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1001||FP_C==1023||FP_C==1003||FP_C==1017||FP_C==1007);
  769.         case 550:return(FP_C==1005||FP_C==1004||FP_C==1142||FP_C==1143||FP_C==1144||FP_C==1145||FP_C==1020||FP_C==1019||FP_C==1018||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1006||FP_C==1001||FP_C==1023||FP_C==1003);
  770.         case 551:return(FP_C==1005||FP_C==1020||FP_C==1021||FP_C==1019||FP_C==1018||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1006||FP_C==1002||FP_C==1023||FP_C==1016||FP_C==1003);
  771.         case 555:return(FP_C==1008||FP_C==1009||FP_C==1010);
  772.         case 558:return(FP_C==1092||FP_C==1089||FP_C==1166||FP_C==1165||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1168||FP_C==1167||FP_C==1088||FP_C==1091||FP_C==1164||FP_C==1163||FP_C==1094||FP_C==1090||FP_C==1095||FP_C==1093);
  773.         case 559:return(FP_C==1065||FP_C==1066||FP_C==1160||FP_C==1173||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1159||FP_C==1161||FP_C==1162||FP_C==1158||FP_C==1067||FP_C==1068||FP_C==1071||FP_C==1069||FP_C==1072||FP_C==1070||FP_C==1009);
  774.         case 560:return(FP_C==1028||FP_C==1029||FP_C==1169||FP_C==1170||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1141||FP_C==1140||FP_C==1032||FP_C==1033||FP_C==1138||FP_C==1139||FP_C==1027||FP_C==1026||FP_C==1030||FP_C==1031);
  775.         case 561:return(FP_C==1064||FP_C==1059||FP_C==1155||FP_C==1157||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1154||FP_C==1156||FP_C==1055||FP_C==1061||FP_C==1058||FP_C==1060||FP_C==1062||FP_C==1056||FP_C==1063||FP_C==1057);
  776.         case 562:return(FP_C==1034||FP_C==1037||FP_C==1171||FP_C==1172||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1149||FP_C==1148||FP_C==1038||FP_C==1035||FP_C==1147||FP_C==1146||FP_C==1040||FP_C==1036||FP_C==1041||FP_C==1039);
  777.         case 565:return(FP_C==1046||FP_C==1045||FP_C==1153||FP_C==1152||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1150||FP_C==1151||FP_C==1054||FP_C==1053||FP_C==1049||FP_C==1050||FP_C==1051||FP_C==1047||FP_C==1052||FP_C==1048);
  778.         case 566:return(FP_C==1008||FP_C==1009||FP_C==1010);
  779.         case 567:return(FP_C==1129||FP_C==1132||FP_C==1189||FP_C==1188||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1187||FP_C==1186||FP_C==1130||FP_C==1131||FP_C==1102||FP_C==1133);
  780.         case 575:return(FP_C==1044||FP_C==1043||FP_C==1174||FP_C==1175||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1176||FP_C==1177||FP_C==1099||FP_C==1042);
  781.         case 576:return(FP_C==1136||FP_C==1135||FP_C==1191||FP_C==1190||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1192||FP_C==1193||FP_C==1137||FP_C==1134);
  782.         case 579:return(FP_C==1008||FP_C==1009||FP_C==1010);
  783.         case 580:return(FP_C==1020||FP_C==1018||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1006||FP_C==1001||FP_C==1023||FP_C==1017||FP_C==1007);
  784.         case 585:return(FP_C==1142||FP_C==1143||FP_C==1144||FP_C==1145||FP_C==1020||FP_C==1019||FP_C==1018||FP_C==1013||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1006||FP_C==1001||FP_C==1023||FP_C==1003||FP_C==1017||FP_C==1007);
  785.         case 587:return(FP_C==1008||FP_C==1009||FP_C==1010);
  786.         case 589:return(FP_C==1005||FP_C==1004||FP_C==1144||FP_C==1145||FP_C==1020||FP_C==1018||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1024||FP_C==1013||FP_C==1006||FP_C==1016||FP_C==1000||FP_C==1017||FP_C==1007);
  787.         case 600:return(FP_C==1005||FP_C==1004||FP_C==1020||FP_C==1022||FP_C==1018||FP_C==1013||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1006||FP_C==1017||FP_C==1007);
  788.         case 602:return(FP_C==1008||FP_C==1009||FP_C==1010);
  789.         case 603:return(FP_C==1144||FP_C==1145||FP_C==1142||FP_C==1143||FP_C==1020||FP_C==1019||FP_C==1018||FP_C==1024||FP_C==1008||FP_C==1009||FP_C==1010||FP_C==1006||FP_C==1001||FP_C==1023||FP_C==1017||FP_C==1007);
  790.     }
  791.     return false;
  792. }
  793.  
  794. stock LoadingSetting()
  795. {
  796.     if(fexist("FP_Protection_AD.ini")){
  797.         new iniFile=ini_openFile("FP_Protection_AD.ini");
  798.         ini_getInteger(iniFile,"MF_OnPlayerRequestClass",MF_OnPlayerRequestClass);
  799.         ini_getInteger(iniFile,"MF_OnPlayerSpawn",MF_OnPlayerSpawn);
  800.         ini_getInteger(iniFile,"MF_OnPlayerDeath",MF_OnPlayerDeath);
  801.         ini_getInteger(iniFile,"MF_OnVehicleDeath",MF_OnVehicleDeath);
  802.         ini_getInteger(iniFile,"MF_OnPlayerText",MF_OnPlayerText);
  803.         ini_getInteger(iniFile,"MF_OnPlayerCommandText",MF_OnPlayerCommandText);
  804.         ini_getInteger(iniFile,"MF_OnPlayerEnterVehicle",MF_OnPlayerEnterVehicle);
  805.         ini_getInteger(iniFile,"MF_OnPlayerExitVehicle",MF_OnPlayerExitVehicle);
  806.         ini_getInteger(iniFile,"MF_OnPlayerStateChange",MF_OnPlayerStateChange);
  807.         ini_getInteger(iniFile,"MF_OnPlayerEnterCheckpoint",MF_OnPlayerEnterCheckpoint);
  808.         ini_getInteger(iniFile,"MF_OnPlayerLeaveCheckpoint",MF_OnPlayerLeaveCheckpoint);
  809.         ini_getInteger(iniFile,"MF_OnPlayerEnterRaceCheckpoint",MF_OnPlayerEnterRaceCheckpoint);
  810.         ini_getInteger(iniFile,"MF_OnPlayerLeaveRaceCheckpoint",MF_OnPlayerLeaveRaceCheckpoint);
  811.         ini_getInteger(iniFile,"MF_OnPlayerRequestSpawn",MF_OnPlayerRequestSpawn);
  812.         ini_getInteger(iniFile,"MF_OnPlayerPickUpPickup",MF_OnPlayerPickUpPickup);
  813.         ini_getInteger(iniFile,"MF_OnVehicleMod",MF_OnVehicleMod);
  814.         ini_getInteger(iniFile,"MF_OnVehiclePaintjob",MF_OnVehiclePaintjob);
  815.         ini_getInteger(iniFile,"MF_OnVehicleRespray",MF_OnVehicleRespray);
  816.         ini_getInteger(iniFile,"MF_OnPlayerSelectedMenuRow",MF_OnPlayerSelectedMenuRow);
  817.         ini_getInteger(iniFile,"MF_OnPlayerExitedMenu",MF_OnPlayerExitedMenu);
  818.         ini_getInteger(iniFile,"MF_OnPlayerInteriorChange",MF_OnPlayerInteriorChange);
  819.         ini_getInteger(iniFile,"MF_OnDialogResponse",MF_OnDialogResponse);
  820.         ini_getInteger(iniFile,"MF_OnPlayerClickPlayer",MF_OnPlayerClickPlayer);
  821.         ini_getInteger(iniFile,"MF_OnPlayerWeaponShot",MF_OnPlayerWeaponShot);
  822.         ini_getInteger(iniFile,"MF_OnPlayerGiveDamage",MF_OnPlayerGiveDamage);
  823.         ini_getInteger(iniFile,"MF_OnPlayerTakeDamage",MF_OnPlayerTakeDamage);
  824.         ini_getInteger(iniFile,"MF_OnPlayerClickMap",MF_OnPlayerClickMap);
  825.         ini_getInteger(iniFile,"MF_OnPlayerClickTextDraw",MF_OnPlayerClickTextDraw);
  826.         ini_getInteger(iniFile,"MF_OnPlayerClickPlayerTextDraw",MF_OnPlayerClickPlayerTextDraw);
  827.         ini_getInteger(iniFile,"MF_Reconnect",MF_Reconnect);
  828.         ini_getInteger(iniFile,"MF_Bot",MF_Bot);
  829.         ini_getInteger(iniFile,"MF_Dos",MF_Dos);
  830.         ini_getInteger(iniFile,"MF_VehicleHack",MF_VehicleHack);
  831.         ini_getInteger(iniFile,"MF_Ping",MF_Ping);
  832.         ini_closeFile(iniFile);
  833.         print("Open FP_Protection_AD.ini");
  834.     }else{
  835.         new iniFile=ini_createFile("FP_Protection_AD.ini");
  836.         ini_setInteger(iniFile,"MF_OnPlayerRequestClass",MF_OnPlayerRequestClass=7);
  837.         ini_setInteger(iniFile,"MF_OnPlayerSpawn",MF_OnPlayerSpawn=5);
  838.         ini_setInteger(iniFile,"MF_OnPlayerDeath",MF_OnPlayerDeath=5);
  839.         ini_setInteger(iniFile,"MF_OnVehicleDeath",MF_OnVehicleDeath=5);
  840.         ini_setInteger(iniFile,"MF_OnPlayerText",MF_OnPlayerText=5);
  841.         ini_setInteger(iniFile,"MF_OnPlayerCommandText",MF_OnPlayerCommandText=5);
  842.         ini_setInteger(iniFile,"MF_OnPlayerEnterVehicle",MF_OnPlayerEnterVehicle=5);
  843.         ini_setInteger(iniFile,"MF_OnPlayerExitVehicle",MF_OnPlayerExitVehicle=5);
  844.         ini_setInteger(iniFile,"MF_OnPlayerStateChange",MF_OnPlayerStateChange=5);
  845.         ini_setInteger(iniFile,"MF_OnPlayerEnterCheckpoint",MF_OnPlayerEnterCheckpoint=5);
  846.         ini_setInteger(iniFile,"MF_OnPlayerLeaveCheckpoint",MF_OnPlayerLeaveCheckpoint=5);
  847.         ini_setInteger(iniFile,"MF_OnPlayerEnterRaceCheckpoint",MF_OnPlayerEnterRaceCheckpoint=5);
  848.         ini_setInteger(iniFile,"MF_OnPlayerLeaveRaceCheckpoint",MF_OnPlayerLeaveRaceCheckpoint=5);
  849.         ini_setInteger(iniFile,"MF_OnPlayerRequestSpawn",MF_OnPlayerRequestSpawn=5);
  850.         ini_setInteger(iniFile,"MF_OnPlayerPickUpPickup",MF_OnPlayerPickUpPickup=5);
  851.         ini_setInteger(iniFile,"MF_OnVehicleMod",MF_OnVehicleMod=5);
  852.         ini_setInteger(iniFile,"MF_OnVehiclePaintjob",MF_OnVehiclePaintjob=5);
  853.         ini_setInteger(iniFile,"MF_OnVehicleRespray",MF_OnVehicleRespray=5);
  854.         ini_setInteger(iniFile,"MF_OnPlayerSelectedMenuRow",MF_OnPlayerSelectedMenuRow=5);
  855.         ini_setInteger(iniFile,"MF_OnPlayerExitedMenu",MF_OnPlayerExitedMenu=5);
  856.         ini_setInteger(iniFile,"MF_OnPlayerInteriorChange",MF_OnPlayerInteriorChange=5);
  857.         ini_setInteger(iniFile,"MF_OnDialogResponse",MF_OnDialogResponse=5);
  858.         ini_setInteger(iniFile,"MF_OnPlayerClickPlayer",MF_OnPlayerClickPlayer=5);
  859.         ini_setInteger(iniFile,"MF_OnPlayerWeaponShot",MF_OnPlayerWeaponShot=25);
  860.         ini_setInteger(iniFile,"MF_OnPlayerGiveDamage",MF_OnPlayerGiveDamage=25);
  861.         ini_setInteger(iniFile,"MF_OnPlayerTakeDamage",MF_OnPlayerTakeDamage=25);
  862.         ini_setInteger(iniFile,"MF_OnPlayerClickMap",MF_OnPlayerClickMap=5);
  863.         ini_setInteger(iniFile,"MF_OnPlayerClickTextDraw",MF_OnPlayerClickTextDraw=5);
  864.         ini_setInteger(iniFile,"MF_OnPlayerClickPlayerTextDraw",MF_OnPlayerClickPlayerTextDraw=5);
  865.         ini_setInteger(iniFile,"MF_Reconnect",MF_Reconnect=501);
  866.         ini_setInteger(iniFile,"MF_Bot",MF_Bot=1);
  867.         ini_setInteger(iniFile,"MF_Dos",MF_Dos=799);
  868.         ini_setInteger(iniFile,"MF_Ping",MF_Ping=1299);
  869.         ini_closeFile(iniFile);
  870.         print("Create FP_Protection_AD.ini");
  871.     }
  872. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement