zroT Posted August 19, 2010 Report Share Posted August 19, 2010 Cine im da si mie un anti-flood si im zice cum sa il pun? Link to comment Share on other sites More sharing options...
IstuntmanI Posted August 19, 2010 Report Share Posted August 19, 2010 http://forum.sa-mp.com/showthread.php?t=80210&highlight=anti+flood#include <a_samp> // * Settings for the anti-flood // I recommend using these settings if you want to protect the server from flood attacks. // If you want to deal with annoying spammers, lower the thresold a bit and set the mode to 2 (kick). #define RATE_INC (500) // The sensitivity per message, no need to modify. #define RATE_MAX (2500) // When the flood rate reaches this value the action below will be taken // * Action to take when the flood rate reached the thresold // 1 - Ban // 2 - Kick // 3 - Give a warning (not recommended) #define THRESOLD_ACTION 1 enum LIST_ANTIFLOOD { lastCheck, floodRate } new AntiFlood_Data[MAX_PLAYERS][LIST_ANTIFLOOD]; public OnFilterScriptInit() { for ( new playerid; playerid < MAX_PLAYERS; playerid++ ) { if ( IsPlayerConnected( playerid ) ) AntiFlood_InitPlayer( playerid ); } return 1; } public OnFilterScriptExit() { return 1; } public OnPlayerConnect( playerid ) { AntiFlood_InitPlayer( playerid ); return 1; } public OnPlayerDisconnect( playerid ) { return 1; } public OnPlayerText( playerid, text[] ) { assert( AntiFlood_Check( playerid ) ); return 1; } public OnPlayerCommandText( playerid, cmdtext[] ) { assert( AntiFlood_Check( playerid ) ); return 0; } public OnPlayerPrivmsg( playerid, recieverid, text[] ) { assert( AntiFlood_Check( playerid ) ); return 1; } forward OnPlayerTeamPrivmsg( playerid, text[] ); public OnPlayerTeamPrivmsg( playerid, text[] ) { assert( AntiFlood_Check( playerid ) ); return 1; } public OnPlayerDeath( playerid, killerid, reason ) { assert( AntiFlood_Check( playerid ) ); return 1; } AntiFlood_Check( playerid, bool:inc=true ) { AntiFlood_Data[playerid][floodRate] += inc ? RATE_INC : 0; AntiFlood_Data[playerid][floodRate] = AntiFlood_Data[playerid][floodRate] - ( GetTickCount() - AntiFlood_Data[playerid][lastCheck] ); AntiFlood_Data[playerid][lastCheck] = GetTickCount(); AntiFlood_Data[playerid][floodRate] = AntiFlood_Data[playerid][floodRate] < 0 ? 0 : AntiFlood_Data[playerid][floodRate]; if ( AntiFlood_Data[playerid][floodRate] >= RATE_MAX ) { #if THRESOLD_ACTION == 1 new msg[64], name[MAX_PLAYER_NAME]; GetPlayerName( playerid, name, sizeof( name ) ); format( msg, sizeof( msg ), ">> %s has been banned for flooding.", name ); SendClientMessageToAll( 0xEE9911FF, msg ); Ban( playerid ); #elseif THRESOLD_ACTION == 2 new msg[64], name[MAX_PLAYER_NAME]; GetPlayerName( playerid, name, sizeof( name ) ); format( msg, sizeof( msg ), ">> %s has been kicked for flooding.", name ); SendClientMessageToAll( 0xEE9911FF, msg ); Kick( playerid ); #else SendClientMessage( playerid, 0xC00000FF, "Stop flooding." ); #endif return false; } return true; } AntiFlood_InitPlayer( playerid ) { AntiFlood_Data[playerid][lastCheck] = GetTickCount(); AntiFlood_Data[playerid][floodRate] = 0; }Data viitoare cauta. Link to comment Share on other sites More sharing options...
zroT Posted August 19, 2010 Author Report Share Posted August 19, 2010 Si cum il pun si unde? Link to comment Share on other sites More sharing options...
IstuntmanI Posted August 19, 2010 Report Share Posted August 19, 2010 Si cum il pun si unde?Creezi un FS nouhttp://solidfiles.com/d/a218/ ... am scapat si de erori, nu stiam ca da ;D Link to comment Share on other sites More sharing options...
Question
zroT
Cine im da si mie un anti-flood si im zice cum sa il pun?
Link to comment
Share on other sites
3 answers to this question
Recommended Posts