BeleidigungsFilter

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
  • Sieht ja soweit gut aus.
    Aber wieso immer wieder eine Schleife benutzen um herauszufiltern welches Wort es genau war ?
    Meiner Meinung nach eine Schleife zuviel. Allgemein würde ich die Wörter niemals in einem Array auflisten eher auf aus einer Database auslesen lassen.
    Ich kann dir ja bei Bedarf mal meine CensorString funktion zukommen lassen und dir dazu nen kleinen COde für die DB schreiben.



    LG RFT

    RFT

  • Ihr könnt das natürlich nicht einfach kopieren und einfügen...
    so wird das beispielsweise benutzt:

    new beleidigungen[][50] = {
    "Hurensohn", "Arschloch", "Arschloch", "Hure", "Arsch", "Nazi", "Missgeburt", "Schwuchtel", "Fotze", "Trottel" , "penis"
    };


    main()
    {
    new string[ 128 ];
    format ( string , 128 , "ajajapekatrotteljajahurejahhanaziaja" );
    printf("Alter String: %s",string);
    BeleidigungsFilter(string);
    printf("Neuer String: %s",string);
    }


    BeleidigungsFilter( str[ ] ) {
    for ( new b_idx; b_idx < sizeof beleidigungen; b_idx++ ) {
    new i = strfind(str, beleidigungen[ b_idx ] , true);
    if ( i == -1 ) continue;
    for ( new idx = i; idx < i + strlen ( beleidigungen[ b_idx ] ); idx++ )
    str[ idx ] = '*';
    }
    }

    Das es geht, kann ich euch garantieren!

    PAWNit gratis nutzen?
    Geschenkcode: 2017VQXPKB8V3KA

    Hier könnte Ihre Werbung stehen.

  • Sieht ja soweit gut aus.
    Aber wieso immer wieder eine Schleife benutzen um herauszufiltern welches Wort es genau war ?
    Meiner Meinung nach eine Schleife zuviel. Allgemein würde ich die Wörter niemals in einem Array auflisten eher auf aus einer Database auslesen lassen.
    Ich kann dir ja bei Bedarf mal meine CensorString funktion zukommen lassen und dir dazu nen kleinen COde für die DB schreiben.



    LG RFT


    Ich finde nicht das eine Schleife zuviel ist. Ich möchte es ja zensiert haben und nicht einfach weggelassen haben. ;)
    Das mit dem aus der Datenbank auslesen habe ich bereits geplant fürs nächste Update. Keine Sorge, dafür brauche ich keinen Code, das kann ich selber ;)
    Aber danke für deine Hilfe. ;)


    @ |-|auke


    Sie möchten es aber unter OnPlayerText und nicht unter der main-methode ;)
    Ja stimmt man müsste dann bei OnPlayerText das return auf 1 setzen. Für mein Script ist deine Version leider unbrauchbar, da ich eben noch was dazubearbeite und dann erst der Text ausgegeben wird. Aber trotzdem danke für deine Hilfe. Vielleicht nutzen ja manche deinen Code z.B. Stunt-Server ;)

    Die Macht etwas zu bewirken, ist in Dir. Du musst sie nur rauslassen


    cristiano-ronaldo-525-portugal-euro-2012-banner-wallpaper.jpg

  • Die Beleidigungen werden sofort herausgefiltert.. Somit muss man im Script nichts ändern außer oben in die Funktion "BeleidigungsFilter(text);" hinzuschreiben. Dadurch wird meine Methode sogar noch leichter zu verwenden.
    Im ganzen Callback kann weiterhin die Variable "text" verwendet werden..
    Dein Code tut exakt das selbe, nur eben schlechter.

    PAWNit gratis nutzen?
    Geschenkcode: 2017VQXPKB8V3KA

    Hier könnte Ihre Werbung stehen.

  • Ich finde nicht das eine Schleife zuviel ist. Ich möchte es ja zensiert haben und nicht einfach weggelassen haben. ;)
    Das mit dem aus der Datenbank auslesen habe ich bereits geplant fürs nächste Update. Keine Sorge, dafür brauche ich keinen Code, das kann ich selber ;)
    Aber danke für deine Hilfe. ;)


    @ |-|auke


    Sie möchten es aber unter OnPlayerText und nicht unter der main-methode ;)
    Ja stimmt man müsste dann bei OnPlayerText das return auf 1 setzen. Für mein Script ist deine Version leider unbrauchbar, da ich eben noch was dazubearbeite und dann erst der Text ausgegeben wird. Aber trotzdem danke für deine Hilfe. Vielleicht nutzen ja manche deinen Code z.B. Stunt-Server ;)


    So meine ich es nicht ich meine es so.




    CensorString(msg[], wrd[], with[], str[])
    {
    new idx=strfind(msg, wrd, true);
    if(idx!=-1)
    {
    new strn[32];
    for(new i = 0; i < strlen(wrd); i++)format(strn, sizeof(strn), "%s%s", strn, with);
    strdel(msg, idx, idx+strlen(wrd));
    strins(msg, strn, idx, 128);
    strmid(str, msg, 0, strlen(msg), 128);
    return true;
    }
    return false;
    }


    Verwendung: MSG ( Der Satz) ; wrd das Wort was zensiert werden soll, with mit was es zensiert werden soll in deinem fall ein * und str der String in der, der zensierte Satz formatiert werden soll.
    Code entferne ich auf wunsch da wir deinen Showroom Thread nicht verunstalten wollen.

    RFT

  • Ok dann danke ich euch beiden für eure Scriptvorschläge, ich bleibe bei meinem, da ich meines einfach am einfachsten finde und auch leicht verständlich. Ihr könnt ruhig eure Scripte da stehen haben. Mich stört das nicht. Jeder kann sich selbst entscheiden welches er nimmt ;)

    Die Macht etwas zu bewirken, ist in Dir. Du musst sie nur rauslassen


    cristiano-ronaldo-525-portugal-euro-2012-banner-wallpaper.jpg