Advertisement
Guest User

FloodControl.inc - SEM FLOOD!

a guest
Oct 26th, 2012
809
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 7.82 KB | None | 0 0
  1. /*
  2.     SA-MP FloodControl Include
  3.     Copyright © 2012 RoacH`
  4. */
  5.  
  6. #if defined _FloodControl_Included
  7.    #error Flood Control is already defined.
  8.         #endinput
  9.             #endif
  10.                 #define _FloodControl_Included
  11.             #if !defined _samp_included
  12.         #error Please include a_samp before Flood Control.
  13.     #endif
  14. #pragma library "FloodControl"
  15.  
  16. //BY Y_LESS
  17. #if !defined _ALS_
  18.    forward public _ALS_();
  19.     _ALS_()<_ALS_:unhooked>{}
  20.     _ALS_()<_ALS_:hooked>{}
  21.     _ALS_()<>{}
  22. #endif
  23.  
  24. enum {
  25.     FLOOD_CONTROL_DEATH,
  26.     FLOOD_CONTROL_BOOT,
  27.     FLOOD_CONTROL_VEHICLES,
  28.     FLOOD_CONTROL_COMMAND,
  29.     FLOOD_CONTROL_CHAT
  30. };
  31. forward OnPlayerFloodControl(playerid, config);
  32.  
  33. static
  34.     tempIP[20],
  35.     templastIP[20],
  36.     tempBoot = 0,
  37.     flood_stamp[MAX_PLAYERS],
  38.     flood_stampcmd[MAX_PLAYERS]
  39. ;
  40.  
  41. //-=-=-=--=-=-=--=-=-=-FAKE-KILL + FLOOD DEATH-=-=-=--=-=-=--=-=-=-
  42. //                     *Precisão do sistema 95%
  43. public OnPlayerDeath(playerid, killerid, reason) {
  44.     state _ALS_:hooked;
  45.     if(killerid != INVALID_PLAYER_ID) {
  46.         if(playerid == killerid) {
  47.             if(funcidx(#OnPlayerFloodControl)) {
  48.                 CallLocalFunction(#OnPlayerFloodControl, #ii, playerid, FLOOD_CONTROL_DEATH);
  49.             }
  50.         }
  51.         if(gettime() - GetPVarInt(playerid, #lastdeath) < 2) {
  52.             if(funcidx(#OnPlayerFloodControl)) {
  53.                 CallLocalFunction(#OnPlayerFloodControl, #ii, playerid, FLOOD_CONTROL_DEATH);
  54.             }
  55.             return false;
  56.         }
  57.         SetPVarInt(playerid, #lastdeath, gettime());
  58.     }
  59.     return flood_controlOnPlayerDeath(playerid, killerid, reason);
  60. }
  61. //-=-=-=--=-=-=--=-=-=-FUNÇÃO HOOKEADA!(OnPlayerDeath)-=-=-=--=-=-=--=-=-=-
  62. forward flood_controlOnPlayerDeath(playerid, killerid, reason);
  63. #if defined _ALS_OnPlayerDeath
  64.    #undef OnPlayerDeath
  65. #else
  66.    #define _ALS_OnPlayerDeath
  67. #endif
  68. public flood_controlOnPlayerDeath(playerid, killerid, reason) <_ALS_:unhooked> return 1;
  69. public flood_controlOnPlayerDeath(playerid, killerid, reason) <> return 1;
  70. #define OnPlayerDeath(%0,%0,%0) flood_controlOnPlayerDeath(%0,%0,%0)<_ALS_:hooked>
  71. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  72.  
  73. //-=-=-=--=-=-=--=-=-=-CAR MASS SPAWNER(FLOOD VEHICLE)-=-=-=--=-=-=--=-=-=-
  74. //                        *Precisão do sistema 82%
  75. public OnPlayerUpdate(playerid) {
  76.     state _ALS_:hooked;
  77.     new
  78.         iVehicle = GetPlayerVehicleID(playerid)
  79.     ;
  80.     if(GetPlayerVehicleSeat(playerid) != 0) {
  81.         if(GetPVarInt(playerid, #lastvehicle) != iVehicle) {
  82.            SetPVarInt(playerid, #lastvehicle, iVehicle);
  83.            if(GetVehicleModel(iVehicle)) {
  84.                 OnPlayerStateChange(playerid, PLAYER_STATE_DRIVER, INVALID_PLAYER_ID);
  85.             }
  86.         }
  87.     }
  88.     return flood_controlOnPlayerUpdate(playerid);
  89. }
  90. //-=-=-=--=-=-=--=-=-=-FUNÇÃO HOOKEADA!(OnPlayerUpdate)-=-=-=--=-=-=--=-=-=-=
  91. forward flood_controlOnPlayerUpdate(playerid);
  92. #if defined _ALS_OnPlayerUpdate
  93.    #undef OnPlayerUpdate
  94. #else
  95.    #define _ALS_OnPlayerUpdate
  96. #endif
  97. public flood_controlOnPlayerUpdate(playerid) <_ALS_:unhooked> return 1;
  98. public flood_controlOnPlayerUpdate(playerid) <> return 1;
  99. #define OnPlayerUpdate(%0) flood_controlOnPlayerUpdate(%0)<_ALS_:hooked>
  100. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  101.  
  102. public OnPlayerStateChange(playerid, newstate, oldstate) {
  103.     state _ALS_:hooked;
  104.     if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER && GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) {
  105.         if((gettime() - GetPVarInt(playerid, #gettick)) < 2) {
  106.             if(funcidx(#OnPlayerFloodControl)) {
  107.                 CallLocalFunction(#OnPlayerFloodControl, #ii, playerid, FLOOD_CONTROL_VEHICLES);
  108.             }
  109.         }
  110.         SetPVarInt(playerid, #gettick, gettime());
  111.    }
  112.     return flood_controlOnChangeVeh(playerid, newstate, oldstate);
  113. }
  114. //-=-=-=--=-=-=--=-=-=-FUNÇÃO HOOKEADA!(OnPlayerStateChange)-=-=-=--=-=-=--=-=-=-=-
  115. forward flood_controlOnChangeVeh(playerid, newstate, oldstate);
  116. #if defined _ALS_OnPlayerStateChange
  117.    #undef OnPlayerStateChange
  118. #else
  119.    #define _ALS_OnPlayerStateChange
  120. #endif
  121. public flood_controlOnChangeVeh(playerid, newstate, oldstate) <_ALS_:unhooked> return 1;
  122. public flood_controlOnChangeVeh(playerid, newstate, oldstate) <> return 1;
  123. #define OnPlayerStateChange(%0,%0,%0) flood_controlOnChangeVeh(%0,%0,%0)<_ALS_:hooked>
  124. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  125.  
  126. //-=-=-=--=-=-=--=-=-=-FLOOD COMMANDS/TEXTS-=-=-=--=-=-=--=-=-=-
  127. //                   *Precisão do sistema 96%
  128. forward OnPlayerFloodChat@Command(playerid, config, iCount, iTime);
  129. public OnPlayerFloodChat@Command(playerid, config, iCount, iTime) {
  130.     if(config == FLOOD_CONTROL_CHAT) {
  131.         if((gettime() - GetPVarInt(playerid, #lasttext)) <= iTime && flood_stamp[playerid] >= iCount) {
  132.             if(funcidx(#OnPlayerFloodControl)) {
  133.                 CallLocalFunction(#OnPlayerFloodControl, #ii, playerid, config);
  134.             }
  135.         }
  136.         SetPVarInt(playerid, #lasttext, gettime());
  137.         ++flood_stamp[playerid];
  138.     }
  139.     if(config == FLOOD_CONTROL_COMMAND) {
  140.         if((gettime() - GetPVarInt(playerid, #lastcmd)) <= iTime && flood_stampcmd[playerid] >= iCount) {
  141.             if(funcidx(#OnPlayerFloodControl)) {
  142.                 CallLocalFunction(#OnPlayerFloodControl, #ii, playerid, config);
  143.             }
  144.         }
  145.         SetPVarInt(playerid, #lastcmd, gettime());
  146.         ++flood_stampcmd[playerid];
  147.     }  
  148.     return true;
  149. }
  150.  
  151. //-=-=-=--=-=-=--=-=-=-FLOOD BOOT DDoS SAMP-=-=-=--=-=-=--=-=-=-
  152. //                   *Precisão do sistema 90%
  153. forward registerPlayer(playerid);
  154. public registerPlayer(playerid) {
  155.     if(GetPVarInt(playerid, #blockmessage) == 1) return false;
  156.     flood_stamp[playerid] = 0, flood_stampcmd[playerid] = 0;
  157.     SetPVarInt(playerid, #lastdeath, gettime());
  158.     GetPlayerIp(playerid, tempIP, sizeof(tempIP));
  159.     GetPlayerIp(playerid, templastIP, sizeof(templastIP));
  160.     SetPVarInt(playerid, #lastconnect, gettime());
  161.     SetTimerEx(#removeRegister, 50000, false, #i, tempBoot);
  162.     return registerBoot(playerid);
  163. }
  164.  
  165. forward registerBoot(playerid);
  166. public registerBoot(playerid) {
  167.     if(strcmp(tempIP, templastIP, true) == 0 && gettime() - GetPVarInt(playerid, #lastconnect) < 4) {
  168.         ++tempBoot;
  169.         if(tempBoot >= 3) {
  170.             if(funcidx(#OnPlayerFloodControl)) {
  171.                 SetPVarInt(playerid, #blockmessage, 1);
  172.                 printf(#Tentativa de boot ~ [BLOQUEADO]);
  173.                 CallLocalFunction(#OnPlayerFloodControl, #ii, playerid, FLOOD_CONTROL_BOOT);
  174.            }
  175.         }
  176.     }
  177.     return false;
  178. }
  179.  
  180. forward removeRegister(playerid);
  181. public removeRegister(playerid) {
  182.     return tempBoot = 0;
  183. }
  184. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  185.  
  186. public OnPlayerConnect(playerid) {
  187.     state _ALS_:hooked;
  188.     registerPlayer(playerid);
  189.     return flood_controlOnPlayerConnect(playerid);
  190. }
  191. //-=-=-=--=-=-=--=-=-=-FUNÇÃO HOOKEADA!(OnPlayerConnect)-=-=-=--=-=-=--=-=-=-
  192. forward flood_controlOnPlayerConnect(playerid);
  193. #if defined _ALS_OnPlayerConnect
  194.    #undef OnPlayerConnect
  195. #else
  196.    #define _ALS_OnPlayerConnect
  197. #endif
  198. public flood_controlOnPlayerConnect(playerid) <_ALS_:unhooked> return 1;
  199. public flood_controlOnPlayerConnect(playerid) <> return 1;
  200. #define OnPlayerConnect(%0) flood_controlOnPlayerConnect(%0)<_ALS_:hooked>
  201. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  202.  
  203. public OnPlayerDisconnect(playerid, reason) {
  204.     if(GetPVarInt(playerid, #blockmessage) == 1) return false;
  205.     return flood_controlOnPlayerDisconnect(playerid, reason);
  206. }
  207. //-=-=-=--=-=-=--=-=-=-FUNÇÃO HOOKEADA!(OnPlayerDisconnect)-=-=-=--=-=-=--=-=-=-
  208. forward flood_controlOnPlayerDisconnect(playerid, reason);
  209. #if defined _ALS_OnPlayerDisconnect
  210.    #undef OnPlayerDisconnect
  211. #else
  212.    #define _ALS_OnPlayerDisconnect
  213. #endif
  214. public flood_controlOnPlayerDisconnect(playerid, reason) <_ALS_:unhooked> return 1;
  215. public flood_controlOnPlayerDisconnect(playerid, reason) <> return 1;
  216. #define OnPlayerDisconnect(%0,%0) flood_controlOnPlayerDisconnect(%0,%0)<_ALS_:hooked>
  217. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement