#include <a_samp>
#define FLOOD_KICK 3 // ennyi figyelmeztetés után lesz kick
#define FLOOD_IDO 3 // Ennyi másodpercenként írhatja ugyanazt a szöveget
// Játékos változók:
enum fdata
{
FloodIdo,
FloodSzoveg[256], //Szükség esetén növeld
FloodWarning
};
new FloodData[MAX_PLAYERS][fdata],FloodTimer;
forward flood_ellenoriz(playerid, szoveg[]);
public flood_ellenoriz(playerid, szoveg[])
{
if(FloodData[playerid][FloodIdo] != 0 && !strcmp(FloodData[playerid][FloodSzoveg], szoveg, true))
{
FloodData[playerid][FloodWarning]++;
if(FloodData[playerid][FloodWarning] >= FLOOD_KICK)
{
new globalstr[128], jatekosneve[MAX_PLAYER_NAME];
GetPlayerName(playerid, jatekosneve, MAX_PLAYER_NAME);
format(globalstr,128,\"%s kirúgva flood miatt!\",jatekosneve);
SendClientMessageToAll(0xFF0000FF, globalstr);
Kick(playerid);
return true;
}
SendClientMessage(playerid, 0xFF0000FF,\"Ne floodolj!\");
return true;
}
FloodData[playerid][FloodIdo] = FLOOD_IDO;
strmid(FloodData[playerid][FloodSzoveg], szoveg, 0, strlen(szoveg), 256);
return false;
}
forward Flood_Timer();
public Flood_Timer()
{
for(new playerid=0; playerid < MAX_PLAYERS; playerid++)
{
if(!IsPlayerConnected(playerid) || FloodData[playerid][FloodIdo] < 1) continue;
FloodData[playerid][FloodIdo] --;
}
}
public OnFilterScriptInit()
{
print(\"\\n-------------------------------------------\");
print(\" AntiFlood betöltve | Scripted by.: RoolykA064\");
print(\" -> www.sampforum.hu \");
print(\"--------------------------------------------\\n\");
FloodTimer = SetTimer(\"Flood_Timer\",1000,1);
return 1;
}
public OnFilterScriptExit()
{
KillTimer(FloodTimer);
return 1;
}
public OnPlayerText(playerid, text[])
{
if(flood_ellenoriz(playerid,text)) return 0;
return 1;
}
public OnPlayerConnect(playerid)
{
FloodData[playerid][FloodIdo] = 0;
FloodData[playerid][FloodSzoveg][0] = EOS;
FloodData[playerid][FloodWarning] = 0;
return 1;
}
Nem teszteltem, szóval nem száz százalékos, hogy mûködni fog, de jelezzetek, és javítom ha bajos !