Anti Badwords & BadNames FEHLER

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
  • Hallu,


    undzwar hab ich eben ein anti badwords&names geschrieben, nur mein problem ist, das immer nur der erste name/wort geblockt wird :/
    new BadWords[] = {"Hure","Penis","Fotze","Schwanz","Hur3","P3nis","Arschloch","4rsch","möse","Popo","schlampe","Bastard","Opfa","Opfer","www","0pfa","b4stard","b4st4rd","schl4mpe","sclamp3","wixxa","sperma","vagina"};

    BadNames hat die selben Wörter ^^
    Und ist genauso


    public OnPlayerText(playerid, text[])
    {
    if(strfind(text, BadWords, true) != -1)
    {
    SendClientMessage(playerid, Rot, "Info:"COLW" Benutze keine Schimpfwörter!");
    return 0;
    }
    return 1;
    }


    Hier würde jetzt nur das Wort "Hure" geblockt ;O


    public OnPlayerConnect(playerid)
    {
    //----------------------- Verbotene Namen (Oben im Skript einstellbar)
    new name[24];
    GetPlayerName(playerid, name, 24);
    for(new i = 0; i < sizeof BadNames; i++)
    {
    if(strfind(name, BadNames[i], true) != -1)
    {
    if(strlen(name) == strlen(BadNames[i]))
    {
    if(BadNames[i])
    {
    SendClientMessage(playerid, Rot, "Info:"COLW" Dein Name ist nicht zulässig! Bitte änder ihn!");
    Kick(playerid);
    }
    break;
    }
    }
    }
    ....


    Und hier auch nur der Name "Hure" :(


    Hoffe jmd. kann mir helfen :s

  • Du hast dein Array falsch deklariert und vergessen eine Schleife
    zu verwenden, die jedes Wort überprüft und nicht nur das erste.


    Hier eine Lösung:


    // -- Deklaration --


    new badwords[][] = {"arsch", "sack", "penner", "wixxer", "penis", "hurre", "schlampe", "vagina", "muschi", "fick", "idiot", "trottel", "schwanz", "ashole", "fuck", "fasch", "nazi", "adolf", "hitler"};


    // -- OnPlayerText --


    for(new i = 0; i < sizeof(badwords); i++)
    {
    if(strfind(text, badwords[i], true) != -1)
    {
    SendClientMessage(playerid, ROT, "[ACHTUNG] Beleidigungen haben im Chat nichts verloren!");
    return 0;
    }
    }

  • // -- Namensfilter --


    new plName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, plName, sizeof(plName));


    for(new i = 0; i < sizeof(badwords); i++)
    {
    if(strfind(plName, badwords[i], true) != -1)
    {
    if(strlen(plName) == strlen(badwords[i]))
    {
    SendClientMessage(playerid, ROT, "[ACHTUNG] Derartige Namen sind unangebracht!");
    Kick(playerid);
    }
    }
    }