Anti - ip auf andere Chats auslegen

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
  • Also ich hab mal eine Frage und zwar geht es um meinen Antibot ich würde gern den /d chat, /r chat ,/f chat , /sms und /w chat der Anti -ip erkennung hinzu fügen
    nur weis ich nicht was ich da genau hinzufügen muss das diese Anti-ip erkennung auch dort funktioniert kann mir einer von euch helfen




    new lastidx = (strlen(text) - 1);
    if(text[lastidx] == '.')
    text[lastidx] = ' ';


    new countit = 0;
    for(new x=0; x<strlen(text); x++)
    {
    if(text[x] == '.' && text[x+1] <= '9' && text[x+1] >= '0') // Es wurde ein Punkt und eine Zahl dahinter geschrieben!
    {
    countit++;
    }
    else if(text[x] == '.' && text[x+2] <= '9' && text[x+2] >= '0') // Es wurde ein Punkt, Leerzeichen und eine Zahl dahinter geschrieben!
    {
    countit++;
    }
    }
    if(countit >= 3 && PlayerInfo[playerid][pAdmin] < 1) // Dreimal und eine IP wird erkannt
    if(strfind(text,"00.000.0.000:0000",true) != 0) // NICHT die TS-IP
    {
    new textstring[128], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(textstring,sizeof(textstring)," [ANTI-IP] %s wird verdächtigt eine IP zu verschicken!",name);
    SendClientMessageToAdmins(M_BOT_COLOR,textstring);
    format(textstring,sizeof(textstring)," [ANTI-IP] %s: %s",name,text);
    SendClientMessageToAdmins(M_BOT_COLOR,textstring);
    SendClientMessage(playerid,M_BOT_COLOR," [ANTI-IP] Wir dulden kein Abwerben bzw. Serverwerbungen!");
    SendClientMessage(playerid,M_BOT_COLOR," [ANTI-IP] Achtung: Gebe es nicht noch einmal ein!");
    M_Bot[playerid][PIPWarns]++;
    if(M_Bot[playerid][PIPWarns] >= 3)
    {
    format(textstring,sizeof(textstring)," [ANTI-IP] %s wurde von %s gebannt! (GRUND: Verdacht auf Abwerben)",name,M_Bot_BOT_NAME);
    SendClientMessageToAll(M_BOT_COLOR,textstring);
    BanEx(playerid,"Abwerben");
    }
    return 0;
    }



    nun wo ist da die text erkennung wo sich hier der normal chat auslesen lässt

  • Hast du denn schon eine Anti IP Funktion im Script? Wird diese bei OnPlayerText aufgerufen?
    //Edit, ok du hast die Funktion ja in den Mainpost editiert, die Funktion scheint aber nicht gerade gut zu sein ^^


    Ich empfehle dir Double-0-$even seine,
    stock AdvertisementCheck (text []) //By Double O Seven
    {
    if (!isnull (text))
    {
    new
    idx,
    i,
    ipstring [128],
    string [128],
    len = strlen (text);


    for (i = 0; i < len; ++i)
    if (text [i] != ' ')
    string [idx++] = text [i];


    if (!(len = strlen (string)))
    return false;


    if (!strfind (string, "www.", false) || !strfind (string, "http://", false) || !strfind (string, ".com", false) || !strfind (string, ".net", false)
    || !strfind (string, ".de", false) || !strfind (string, ".org", false))
    return true;


    // Check for an IP.
    for (i = 0, idx = 0; i < len; ++i)
    {
    if (string [i] == ':')
    {
    ipstring [idx] = '\0';
    if (ipstring [0] && SplitIp (ipstring) != 0xFFFFFFFF)
    return true; // Something of the form "number1.number2.number3.number4" has been found where 0 <= number1-4 <= 255. Can it be something else than an IP?
    idx = 0;
    ipstring [0] = '\0';
    }
    else if ('0' <= string [i] <= '9' || string [i] == '.')
    ipstring [idx++] = string [i];
    }


    ipstring [idx] = '\0';
    if (ipstring [0] && SplitIp (ipstring) != 0xFFFFFFFF)
    return true; // Something of the form "number1.number2.number3.number4" has been found where 0 <= number1-4 <= 255. Can it be something else than an IP?
    }
    return false;
    }
    Dann einfach überall wo du sie nutzen willst:
    if (AdvertisementCheck (textvariable))
    {
    //Er hat eine IP/Domain geschrieben, was soll passieren? Kick/Ban?
    return 1;
    }

    DIK2gXr.png

    Einmal editiert, zuletzt von DurtyFree ()

  • Du musst die Funktion unten ins Script einfügen, und kannst dann wie in meinem Beispiel die Funktion überall nutzen, zb. für den Normalen Chat unter OnPlayerText folgendes einfügen:
    if (AdvertisementCheck (text)){SendClientMessage(playerid,FARBE,"Dir ist es untersagt Werbung auf diesem Server zu machen!");return 1;}

  • ah jetzt hab ich es verstanden ich muss


    if (AdvertisementCheck (text)){SendClientMessage(playerid,FARBE,"Dir ist es untersagt Werbung auf diesem Server zu machen!");return 1;}


    bei jedem chat befehl hinzufügen und halt Funktion darauf hin ergänzen wie im beispiel von dir kick oder ban


    ist das so richtig

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Zunno
    Pack das unten oder oben (ausserhalb eines Callbacks/einer Funktion) noch hin

    #if !defined isnull
    #define isnull(%1) \
    ((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))
    stock SplitIp (ipstring [])
    {
    new
    j,
    bytes [4],
    word;


    for (new i = 0, len = strlen (ipstring); i < len; ++i)
    {
    if (j > 3)
    return 0xFFFFFFFF;


    if (ipstring [i] == ' ')
    continue;


    if (ipstring [i] == '*')
    bytes [j] = 0xFF;
    else if (ipstring [i] == '.')
    {
    ++j;
    }
    else if ('0' <= ipstring [i] <= '9')
    {
    bytes [j] = 10 * bytes [j] + ipstring [i] - '0';
    if (bytes [j] > 0xFF || bytes [j] < 0)
    return 0xFFFFFFFF;
    }
    else
    return 0xFFFFFFFF;
    }
    DOB::BytesToWord (bytes [0], bytes [1], bytes [2], bytes [3], word);
    return word;
    }