Problem Anti-Spam
#1

Hello I need help with anti-spam FS it is made ​​that the player who spams,gives him a message and then kicks him. I'd like to not kick but to send a message to him like in the SS.
>>>>>>>>>>>>>>>>If you can give me FS like that SS.
>>>>>>>>>>>> SS: /imageshack/img713/8329/samp003sj.png
>>>>>>>>>>>>Heare is the pawn code:
pawn Код:
/*

# ========================= #
#  SA-MP Simple Anti-Spam   #
# ------------------------- #
# @Authour(s): ChristopherM #
# ========================= #

*/


#include <a_samp>

forward ResetCount(playerid);

forward ResetCommandCount(playerid);

#define SpamLimit (3000)

public OnFilterScriptInit()
{
   printf("

    ChristopherM's Anti-Spam Loaded. Limit: %d"
, SpamLimit);



   return 1;
}

public OnFilterScriptExit()
{
   print("

    ChristopherM's Anti-Spam Unloaded."
);



   return 1;
}


public OnPlayerText(playerid, text[])
{
   new TCount, KMessage[128];
   
   TCount = GetPVarInt(playerid, "TextSpamCount");
   
   TCount++;
   
   SetPVarInt(playerid, "TextSpamCount", TCount);
   
   if(TCount == 2) {
       SendClientMessage(playerid, 0xFFFFFF, "[Anti-Spam]: Warning you are one message away from being kicked!");
   }
   else if(TCount == 3) {
       GetPlayerName(playerid, KMessage, sizeof(KMessage));
       format(KMessage, sizeof(KMessage), "[Anti-Spam]: %s has been kicked for chat spamming.", KMessage);
       SendClientMessageToAll(0xFFFFFF, KMessage);
       print(KMessage);
       Kick(playerid);
   }

   SetTimerEx("ResetCount", SpamLimit, false, "i", playerid);
   
   return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
   new TCount, KMessage[128];
   
   TCount = GetPVarInt(playerid, "CommandSpamCount");
   
   TCount++;
   
   SetPVarInt(playerid, "CommandSpamCount", TCount);
   
   if(TCount == 2) {
       SendClientMessage(playerid, 0xFFFFFF, "[Anti-Spam]: Warning you are one command away from being kicked!");
   }
   else if(TCount == 3) {
       GetPlayerName(playerid, KMessage, sizeof(KMessage));
       format(KMessage, sizeof(KMessage), "[Anti-Spam]: %s has been kicked for command spamming.", KMessage);
       SendClientMessageToAll(0xFFFFFF, KMessage);
       print(KMessage);
       Kick(playerid);
   }

   SetTimerEx("ResetCommandCount", SpamLimit, false, "i", playerid);
}

public ResetCount(playerid)
{
   SetPVarInt(playerid, "TextSpamCount", 0);
}

public ResetCommandCount(playerid)
{
   SetPVarInt(playerid, "CommandSpamCount", 0);
}
>>>>>>>>>>>>Please Help<<<<<<<<<<<
Reply
#2

Try this:
pawn Код:
/*

# ========================= #
#  SA-MP Simple Anti-Spam   #
# ------------------------- #
# @Authour(s): ChristopherM #
# ========================= #

*/


#include <a_samp>

forward ResetCount(playerid);

forward ResetCommandCount(playerid);

#define SpamLimit (3000)

public OnFilterScriptInit()
{
   printf("

    ChristopherM's Anti-Spam Loaded. Limit: %d"
, SpamLimit);



   return 1;
}

public OnFilterScriptExit()
{
   print("

    ChristopherM's Anti-Spam Unloaded."
);



   return 1;
}


public OnPlayerText(playerid, text[])
{
   new TCount, KMessage[128];
   
   TCount = GetPVarInt(playerid, "TextSpamCount");
   
   TCount++;
   
   SetPVarInt(playerid, "TextSpamCount", TCount);
   
   if(TCount == 2) {
       SendClientMessage(playerid, 0xFFFFFF, "[Anti-Spam]: Warning you are one message away from being kicked!");
   }
   else if(TCount == 3) {
       GetPlayerName(playerid, KMessage, sizeof(KMessage));
       format(KMessage, sizeof(KMessage), "[Anti-Spam]: %s has been kicked for chat spamming.", KMessage);
       SendClientMessageToAll(0xFFFFFF, KMessage);
       print(KMessage);
   }

   SetTimerEx("ResetCount", SpamLimit, false, "i", playerid);
   
   return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
   new TCount, KMessage[128];
   
   TCount = GetPVarInt(playerid, "CommandSpamCount");
   
   TCount++;
   
   SetPVarInt(playerid, "CommandSpamCount", TCount);
   
   if(TCount == 2) {
       SendClientMessage(playerid, 0xFFFFFF, "[Anti-Spam]:WARNING you are one command away from being kicked!");
   }
   else if(TCount == 3) {
       GetPlayerName(playerid, KMessage, sizeof(KMessage));
       format(KMessage, sizeof(KMessage), "[Anti-Spam]: %s has been kicked for command spamming.", KMessage);
       SendClientMessageToAll(0xFFFFFF, KMessage);
       print(KMessage);
   }

   SetTimerEx("ResetCommandCount", SpamLimit, false, "i", playerid);
}

public ResetCount(playerid)
{
   SetPVarInt(playerid, "TextSpamCount", 0);
}

public ResetCommandCount(playerid)
{
   SetPVarInt(playerid, "CommandSpamCount", 0);
}
**UNTESTED**
NOTE: That will stop him from being kicked.
Reply
#3

Ty for the help [MP]Ditch but I had someting else in mind , let me explain for example I spam with the word hello and instead of hello I want to receive a message [ANTISPAM]:"Nu te repeta !" every time if I continue spaming and for example in 40 sec if I dont spam in chat I can write again.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)