Badwords

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 habe hier mal ein paar Badwords gemacht, bei denen man gekickt wird.
    ich habe folgendes problem, es passiert nur was bei dem ersten wort, in diesem fall: "Hurensohn".


    new BadWords[] = {"Hurensohn", "Wichser", "Schwanzlutscher","fotzenkopf", "Penner","Wixxer","Huso","fick dich","missgeburt","fick_dich","fickdich","Huren Sohn","spaken","asshole","Spast","spasti","Fotze","Penislutscher","Arschficker","Idiot","Motherfucker","Bitch","Hurentochter"};


    public OnPlayerText(playerid, text[])
    {
    if(!strfind(text,BadWords,true))
    {
    if(SpielerInfo[playerid][alvl]<=0)
    {
    new kname[MAX_PLAYER_NAME], string[256];
    GetPlayerName(playerid, kname, sizeof(kname));
    SendClientMessage(playerid,0xFF0000FF,"Beleidigungen sind verboten, du wurdest gekickt!");
    format(string, sizeof(string), "%s(%d) wurde vom System gekickt. Grund: Beleidigung ",kname,playerid);
    SendClientMessageToAll(0xFF0000FF,string);
    Kick(playerid);
    }
    }
    return 1;
    }

  • Du brauchst ne Schleife die alle Badwords durchgeht.




    const maxbadwords = 23;
    new BadWords[maxbadwords][1] =
    {
    {"Hurensohn"},
    {"Wichser"},
    { "Schwanzlutscher"},
    {"fotzenkopf"},
    {"Penner"},
    {"Wixxer"},
    {"Huso"},
    {"fick dich"},
    {"missgeburt"},
    {"fick_dich"},
    {"fickdich"},
    {"Huren Sohn"},
    {"spaken"},
    {"asshole"},
    {"Spast"},
    {"spasti"},
    {"Fotze"},
    {"Penislutscher"},
    {"Arschficker"},
    {"Idiot"},
    {"Motherfucker"},
    {"Bitch"},
    {"Hurentochter"}
    };


    public OnPlayerText(playerid, text[])
    {
    for(new i = 0;i<maxbadwords;i++)
    {
    if(strfind(text,BadWords[i][0],true))
    {
    if(SpielerInfo[playerid][alvl]<=0)
    {
    new kname[MAX_PLAYER_NAME], string[256];
    GetPlayerName(playerid, kname, sizeof(kname));
    SendClientMessage(playerid,0xFF0000FF,"Beleidigungen sind verboten, du wurdest gekickt!");
    format(string, sizeof(string), "%s(%d) wurde vom System gekickt. Grund: Beleidigung ",kname,playerid);
    SendClientMessageToAll(0xFF0000FF,string);
    Kick(playerid);
    }
    }
    }
    return 1;
    }


    sollte eig gehn.


    Ansonsten ist hier ein Badwords System, da kannste ja mal reinschaun obs dir hilft: [ FILTERSCRIPT ] Badwords-System by Hagi

  • //edit:


    ich habe nu ein großes problem, egal ob ich ein normales wort schreibe oder eine beleidigung, ich werde immer gekickt.


    const maxbadwords = 28;
    new BadWords[maxbadwords][0] =
    {
    {"Hurensohn"},
    {"Hure"},
    {"Wichser"},
    {"Wixer"},
    {"Wixxer"},
    {"Schwanzlutscher"},
    {"Muschilecker"},
    {"Peniskopf"},
    {"fotzenkopf"},
    {"Penner"},
    {"Wixxer"},
    {"Huso"},
    {"fick dich"},
    {"missgeburt"},
    {"fick_dich"},
    {"fickdich"},
    {"Huren Sohn"},
    {"spaken"},
    {"asshole"},
    {"Spast"},
    {"spasti"},
    {"Fotze"},
    {"Penislutscher"},
    {"Arschficker"},
    {"Idiot"},
    {"Motherfucker"},
    {"Bitch"},
    {"Hurentochter"}
    };


    und bei OnPlayerText habe ich das:


    public OnPlayerText(playerid, text[])
    {
    new Name[MAX_PLAYER_NAME],str[256],hour,minute,second,year,month,day;
    gettime(hour,minute,second);
    getdate(year,month,day);
    GetPlayerName(playerid,Name,sizeof(Name));
    format(str,sizeof(str),"[%d.%d.%d][%s%d:%s%d:%s%d]%s: %s\r\n" ,day,month,year, (hour < 10) ? ("0") : (""), hour+0, (minute < 10) ? ("0") : (""), minute, (second < 10) ? ("0") : (""), second, Name, text);
    AddLog("Chat.log", str);


    SetPlayerChatBubble(playerid, text, 0xFF0000FF, 100.0, 10000);

    if(SpielerInfo[playerid][alvl] == 0)
    {
    Spam[playerid]+=1;
    SetTimerEx("Spamtimer", 6000, 1, "i", playerid);
    }


    if(Spam[playerid] > 3)
    {
    SendClientMessage(playerid, COLOR_RED, " Hör auf zu spammen, sonst wirst du automatisch gekickt!");
    return 0;
    }
    if(Spam[playerid] > 5)
    {
    SendClientMessage(playerid, COLOR_RED, " Das war zu viel Spam, du wurdest gekickt!");
    Kick(playerid);
    return 0;
    }


    if(chatlock == 1)
    {
    SendClientMessage(playerid, COLOR_RED, " Der Chat ist momentan gesperrt versuche es später nochmal!!");
    return 0;
    }
    else
    {
    if(Mute[playerid] == 1)
    {
    SendClientMessage(playerid, COLOR_RED, " Du bist gemutet, warte bis ein Admin dich unmutet!");
    return 0;
    }
    }
    for(new i = 0;i<maxbadwords;i++)
    {
    if(strfind(text,BadWords[i][0],true))
    {
    new kname[MAX_PLAYER_NAME], string[256];
    GetPlayerName(playerid, kname, sizeof(kname));
    SendClientMessage(playerid,0xFF0000FF,"Beleidigungen sind verboten, du wurdest gekickt!");
    format(string, sizeof(string), "%s wurde vom System gekickt. Grund: Beleidigung ",kname);
    SendClientMessageToAll(0xFF0000FF,string);
    Kick(playerid);
    }
    }
    return 1;
    }


    ich habe auch ein /o chat, da habe ich das so:


    dcmd_o(playerid,params[])
    {
    for(new i = 0;i<maxbadwords;i++)
    {
    new omsg[256];
    if(sscanf(params, "s", omsg))
    {
    return SendClientMessage(playerid,COLOR_RED,"Benutzung: /o(oc) [Text]");
    }
    else if(Mute[playerid] == 1)
    {
    SendClientMessage(playerid, COLOR_RED, " Du bist gemutet, warte bis ein Admin dich unmutet!");
    }
    else if(olock == 1)
    {
    return SendClientMessage(playerid,0xFFFFFFFF,"Der OOC wurde von einem Admin abgeschaltet!");
    }
    else if(strfind(omsg,BadWords[i][0],true))
    {
    new kname[MAX_PLAYER_NAME], string[256];
    GetPlayerName(playerid, kname, sizeof(kname));
    SendClientMessage(playerid,0xFF0000FF,"Beleidigungen sind verboten, du wurdest gekickt!");
    format(string, sizeof(string), "%s(%d) wurde vom System gekickt. Grund: Beleidigung ",kname,playerid);
    SendClientMessageToAll(0xFF0000FF,string);
    Kick(playerid);
    }
    else
    {
    new ostr[256];
    new aname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, aname, sizeof(aname));
    format(ostr, sizeof(ostr), "(( %s: %s ))", aname, omsg);
    SendClientMessageToAll(COLOR_WHITE,ostr);


    new str[256],hour,minute,second,year,month,day;
    gettime(hour,minute,second);
    getdate(year,month,day);
    format(str,sizeof(str),"[%d.%d.%d][%s%d:%s%d:%s%d]%s:/o(oc %s\r\n" ,day,month,year, (hour < 10) ? ("0") : (""), hour+0, (minute < 10) ? ("0") : (""), minute, (second < 10) ? ("0") : (""), second, aname, omsg);
    AddLog("Chat.log", str);
    }
    }
    return 1;
    }


    ich werde immer gekickt, egal was ich schreibe und die kick nachricht kommt auch 1000ende mal :D

    3 Mal editiert, zuletzt von Simon ()

  • Korrigiere mal die Zeile
    if(strfind(text,BadWords[i][0],true))
    um in:
    if(strfind(text,BadWords[i],true) != -1)


    und
    new BadWords[maxbadwords][0] =
    in
    new BadWords[maxbadwords][128] =


    //Edit: Denkfehler korrigiert ^^

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

    Einmal editiert, zuletzt von Templer ()