Badwords und Badnames

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
  • Jau, klappt prima, danke dir ;):thumbup:


    Aber ich würde es gerne so haben: Wenn ein spieler beleidigt und er gekickt wird sollte eine meldung bei allen erscheinen.
    Etwa so:


    PLAYER1: fick dich (fick=verbotenes wort)
    Server: PLAYER1 wurde wegen einer beleidigung gekickt.
    Also hab auch schon selbst ein paar codes gemacht, aber da ich noob bin kenn ich mich auch nicht gut aus ^^


    Ich habe ein eigenes code gemacht damit es alle sehn das jmnd gekickt wurde, aber da steht auch noch in orange "PLAYERNAME bla bla" oda so xD
    Naja egal, kann mir mal jemand codes geben, damit es alle sehen wenn jemand wegen beleidigung gekickt wurde ?


    Hier ist der, den ich selbstgemacht hab (n00b-code xD):
    [hide=PAWN Code] if(!strfind(text,"arschloch",true))
    { new pname[MAX_PLAYER_NAME];
    new string[100];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(string, sizeof(string), "Adm: %s wurde wegen einer beleidigung gekickt !", pname);
    SendClientMessageToAll(COLOR_RED, string);
    SendClientMessage(playerid,COLOR_RED," Beleidigung & Cheaten ist verboten! Bitte benimm dich in zukunft!");
    KickPlayer(playerid);
    return 0;
    }[/hide]

  • Warum n00b?



    if(!strfind(text,"arschloch",true))
    { new pname[MAX_PLAYER_NAME];
    new string[100];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(string, sizeof(string), "Adm: %s wurde wegen einer beleidigung gekickt !", pname);
    SendClientMessageToAll(COLOR_RED, string);
    SendClientMessageToAll(COLOR_RED," Beleidigung & Cheaten ist verboten! Bitte benimm dich in zukunft!");
    KickPlayer(playerid);
    return 0;
    }

    Zitat

    Nimm die Dinge wie sie sind: schlag, wenn du schlagen musst, tritt, wenn du Treten musst
    -Bruce Lee

  • Ich habe noch einen code erstellt und jetzt klappts fehlerfrei ^^
    Eigentlich würde ich dir empfehlen, diesen code in deinen ersten post in diesem thread einzufügen, mit dem überschrift "Wenn eine meldung an die ganzen spieler gesendet werden soll" oder so... xD :D
    Naja, ich zeig dir mal den code mit deinem beispiel ;)


    if(!strfind(text,"fuck",true))
    { new pname[MAX_PLAYER_NAME];
    new string[100];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(string, sizeof(string), "Adm: %s wurde wegen einer beleidigung gekickt !", GetPlayerNameEx(playerid));
    SendClientMessageToAll(Rot2,string);
    SendClientMessage(playerid,Rot," Beleidigung & Cheaten ist verboten! Bitte benimm dich in zukunft!");
    Kick(playerid);
    return 0;
    }
    if(!strfind(text,"arsch",true))
    { new pname[MAX_PLAYER_NAME];
    new string[100];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(string, sizeof(string), "Adm: %s wurde wegen einer beleidigung gekickt !", GetPlayerNameEx(playerid));
    SendClientMessageToAll(Rot2,string);
    SendClientMessage(playerid,Rot," Beleidigung & Cheaten ist verboten! Bitte benimm dich in zukunft!");
    Kick(playerid);
    return 0;
    }
    if(!strfind(text,"huso",true))
    { new pname[MAX_PLAYER_NAME];
    new string[100];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(string, sizeof(string), "Adm: %s wurde wegen einer beleidigung gekickt !", GetPlayerNameEx(playerid));
    SendClientMessageToAll(Rot2,string);
    SendClientMessage(playerid,Rot," Beleidigung & Cheaten ist verboten! Bitte benimm dich in zukunft!");
    Kick(playerid);
    return 0;
    }
    if(!strfind(text,"hure",true))
    { new pname[MAX_PLAYER_NAME];
    new string[100];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(string, sizeof(string), "Adm: %s wurde wegen einer beleidigung gekickt !", GetPlayerNameEx(playerid));
    SendClientMessageToAll(Rot2,string);
    SendClientMessage(playerid,Rot," Beleidigung & Cheaten ist verboten! Bitte benimm dich in zukunft!");
    Kick(playerid);
    return 0;
    }
    if(!strfind(text,"penner",true))
    { new pname[MAX_PLAYER_NAME];
    new string[100];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(string, sizeof(string), "Adm: %s wurde wegen einer beleidigung gekickt !", GetPlayerNameEx(playerid));
    SendClientMessageToAll(Rot2,string);
    SendClientMessage(playerid,Rot," Beleidigung & Cheaten ist verboten! Bitte benimm dich in zukunft!");
    Kick(playerid);
    return 0;
    }
    if(!strfind(text,"wixxer",true))
    { new pname[MAX_PLAYER_NAME];
    new string[100];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(string, sizeof(string), "Adm: %s wurde wegen einer beleidigung gekickt !", GetPlayerNameEx(playerid));
    SendClientMessageToAll(Rot2,string);
    SendClientMessage(playerid,Rot," Beleidigung & Cheaten ist verboten! Bitte benimm dich in zukunft!");
    Kick(playerid);
    return 0;
    }
    if(!strfind(text,"wichser",true))
    { new pname[MAX_PLAYER_NAME];
    new string[100];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(string, sizeof(string), "Adm: %s wurde wegen einer beleidigung gekickt !", GetPlayerNameEx(playerid));
    SendClientMessageToAll(Rot2,string);
    SendClientMessage(playerid,Rot," Beleidigung & Cheaten ist verboten! Bitte benimm dich in zukunft!");
    Kick(playerid);
    return 0;
    }
    if(!strfind(text,"schwanz",true))
    { new pname[MAX_PLAYER_NAME];
    new string[100];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(string, sizeof(string), "Adm: %s wurde wegen einer beleidigung gekickt !", GetPlayerNameEx(playerid));
    SendClientMessageToAll(Rot2,string);
    SendClientMessage(playerid,Rot," Beleidigung & Cheaten ist verboten! Bitte benimm dich in zukunft!");
    Kick(playerid);
    return 0;
    }


    Wenn ich mal profi bin und timeban scripte oder einen tutorial finde wie man timeban macht dann mach ich automatisches timeban für 15 Minuten :rolleyes:

    Einmal editiert, zuletzt von FoxHound ()

  • Geht das acuh wenn einer im /o schreibt "samp-online.com" das er gekickt/gebannt wird? krieg das nich hin , weil wir haben es momentan mit abwerber zu tun.. ^^

  • new badwords[][] = {"arsch","wixxer","samp-online"};



    unter OnPlayerText


    new bool:found = false;
    for(new i = 0;i<sizeof badwords;i++)
    {
    if(strfind(text,badwords)!=-1){found = true;break;}
    }
    if(found)return (!SendClientMessage(...));

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • IsBadString(string[])
    {
    new bool:found;
    for(new i = 0;i<sizeof badwords;i++)
    {
    if(strfind(string,badwords[i])!=-1){found = true;break;}
    }
    return found;
    }


    oder


    IsBadString(string[])
    {
    for(new i = 0;i<sizeof badwords;i++)
    {
    if(strfind(string,badwords[i])!=-1)return true;
    }
    return false;
    }


    Aber ich würde Version 1 nehmen da ich manchmal sehe das in der Schleife nach Rückgabe einfach nicht beendet wird, kp warum.


    zu verwenden wäre es auch ganz leicht



    if(IsBadString("Textvariable oder Text"))...

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Sry, aber ich versteh grad nur Bahnhof O.o wie soll ich das dann im /o einbauen ?

  • jo einfach die Zeichenfolge an der Stelle abfragen & entscheiden ob gesendet werden soll oder nicht am besten gleiche den ganzen cmd checken unter OnPlayerCommandtext


    dann werden alle Kommando Eingaben mit den Wörtern geblockt

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Sry aber das versteh ich noch weniger... Also bei meinem ANTI IP Hab ich das so drin


    if(AntiIP(result))
    {
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "%s wurde wegen Abwerbung vom Server gebannt", sendername);
    SendClientMessageToAll(COLOR_RED,string);
    BanLog(string);
    SendClientMessage(playerid, TEAM_CYAN_COLOR, "Na bist du nen Kiddy , und wirbst ab?");
    Ban(playerid);
    return 0;
    }



    Aber wie mach ich das mit nem Wort?

  • Die Liste mit den verbotenen Wörtern machst du in den Lokalen Bereich sprich das es fürs ganze Skript definiert wird oder wie einige Sagen
    unter die Incs die Funktion einfach unter OnPlayerCommandText abfragen


    Am besten Direkt ganz oben über allen Kommandos
    if(IsBadString(cmdtext))return SendClientMessage(playerid,0xFF0000FF,"Wort gefunden das nicht erlaubt ist. ( Versuche es erneut )");

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Also, wenn er ein wort schreibt, das verboten ist, und es dann anwendet, wird es nicht angezeigt dank der Zeile?

  • Und noch ein Problem



    new badwords[Was hier?][Was Hier?] = {"arsch","wixxer","samp-online"};


    Sry aber damit hab ich noch nie gearbeitet :o

  • new badwords[3][Und hier?] = {"arsch","wixxer","samp-online"};



    Ja aber da sind ja 2 []

  • Der erste Index gibt in diesem Fall an das mehrere Zugriffe vorhanden sind genau wie der 2te


    1 = Anzahl der Einträge
    2 = Länge der Zeichen ( Maximale Länge der Zeichen )


    Bei Zahlen/einzelnen Zeichen bräuchte ich den Index nicht


    new badwords[5][32]


    5 = Einträge
    32 = 32 Zeichen ( Maximal ) oder auch 32 Zahlen


    new test[3][5] = {
    {5,5,5},{8,4,8}};


    new test[][][] = {
    { {5,5,5} , {7,7,7} },
    {{5,7,8},{54,78,99}
    };

    Mfg. BlackFoX_UD_ alias [BFX]Explosion