AntiFlood/Spam System?

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Guten Tag, ich suche nach einem Simplen AntiFlood bzw. AntiSpam System wo man halt wenn man zuviel Spammt erstmal die Warnung bekommt "Hör auf zu Spammen (3)" dann "Hör auf zu Spammen (2)" und dann "Hör auf zu Spammen (1)" die sachen halt hintereinander

    MWP Spammt: (Alles in 5Sekunden)
    :


    Halt das vor dem Kick noch Warnungen kommen hier ist ein AntiFlood System von BFX:
    AntiFlood_Check( playerid, bool:inc=true )
    {
    spieler[playerid][floodRate] += inc ? RATE_INC : 0;
    spieler[playerid][floodRate] = spieler[playerid][floodRate] - ( GetTickCount() - spieler[playerid][lastCheck] );
    spieler[playerid][lastCheck] = GetTickCount();
    spieler[playerid][floodRate] = spieler[playerid][floodRate] < 0 ? 0 : spieler[playerid][floodRate];
    if (spieler[playerid][floodRate] >= RATE_MAX )
    {
    new msg[64],name[MAX_PLAYER_NAME];
    GetPlayerName( playerid, name, sizeof( name ) );
    format(msg,sizeof msg,">> %s wurde gekickt ( ANTI FLOOD ).",name);
    SendClientMessageToAll(0xFFFFFFFF,msg);
    Kick(playerid);
    return 0;
    }
    return 1;
    }

    Why do programmers always mix up Halloween and Christmas?
    Oct 31 == Dec 25

  • ist ungetestet und auf schnelle Welle geschrieben



    new Timer[MAX_PLAYERS];
    stock AntiFloodCheck(playerid, Text[])
    {
    new string[128];
    if(GetPVarInt(playerid, "FloodingWarns") == 0)
    {
    SetPVarString(playerid, "FloodingText", Text);
    }
    GetPVarString(playerid, "FloodingText", string, 128);
    if(strcmp(string, Text, true) == 0)
    {
    new GetWarns = GetPVarInt(playerid, "FloodingWarns");
    SetPVarInt(playerid, "FloodingWarns",GetWarns++);
    if(GetPVarInt(playerid, "FloodingWarns") < 3)
    {
    SendClientMessage(playerid, DeineFarbe, "WARNUNG: Hör auf zu Spammen");//Deine Farbe noch eintragen
    KillTimer(Timer[playerid]);
    Timer[playerid]=SetTimerEx("UnSetFloodingWarns", 10000, false, "i", playerid);
    return 1;
    }
    if(GetPVarInt(playerid, "FloodingWarns") == 3)
    {
    SendClientMessage(playerid, DeineFarbw, "Du wurdest gekickt grund : Spammen");//Deine Farbe noch eintragen
    Kick(playerid);
    return 1;
    }
    }
    return 1;
    }


    forward FloodingWarns(playerid);
    public FloodingWarns(playerid)
    {
    SetPVarInt(playerid, "FloodingWarns",0);
    return 1;
    }

    RFT