Anti Beleidigungs System funzt nicht....

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 Abend
    Ich habe vorhin hier im Forum ein Anti Beleidigungssystem gefunden, aber das geht nicht.


    OnPlayerText:
    for(new i=0;i<sizeof(SchimpfWort);i++)
    {
    if(strfind(text,SchimpfWort[i],true) != -1)
    {
    new string1[128];
    format(string1,sizeof(string1),"AdmCmd: %s wurde vom Anti - Beleidigungs System gekickt, Grund: Beleidigung",SpielerName(playerid));
    SendClientMessageToAll(HELLROT,string);
    Kick(playerid);
    }
    return 0;
    }
    oben im script:
    new SchimpfWort[10][64]= {
    {"Lauch"},
    {"Penner"},
    {"Huso"},
    {"Hurensohn"},
    {"Lappen"},
    {"Ficker"},
    {"Wixxer"},
    {"Wichser"},
    {"Mutterficker"},
    {"Hitler"}
    };
    Bitte helft mir!

  • Was ist denn der Fehler?
    machs es mal so:

    format(string1,sizeof(string1),"AdmCmd: %s wurde vom Anti - Beleidigungs System gekickt, Grund: %s",SpielerName(playerid));

    Dieser Beitrag wurde bereits 763 mal editiert, zuletzt von »Anker.« (Vor einem Moment)


    "eingetragende Stand -Ins"


  • Was habt ihr alle mit der formatierung, string1 ist natürlich richtig dennoch wird es nicht angezeigt wenn er nicht das include vom Beavis benutzt.
    Wirst du denn auch gekickt?
    Seit der neuste samp version musst du den kick per timer ausführen um das format anzeigen lassen zu können für den spieler.

    KleineHilfe 2.0

  • Was ist denn der Fehler?
    machs es mal so:


    Totaler Schwachsinn, wenn man keine Ahnung hat ne... kannste dir ja denken, was hier hinkommt!


    return 0;


    return 0 bricht die Vorschleife nach dem ersten Durchgang ab, so müsstest du eigentlich nach dem Eingeben von "Lauch" gekickt werden, andere Schimpfwörter werden aber gar nicht betrachtet bzw. mit dem eingegebenen Text verglichen!

    VIVA LA REVOLUCIÓN

  • Jack Gerilla hat die Lösung genannt. Es ist nämlich das "return 0",weshalb es nicht funktioniert.
    Deine Aussage "Es geht immer noch nicht :(" ist nicht Hilfreich,da keiner weiss wie es denn jetzt im Script aussieht.
    Das return 0 muss kommen,wenn das Schimpfwort definitiv gefunden wurde.

  • [pwn] for(new i=0;i<sizeof(SchimpfWort);i++)
    {
    if(strfind(text,SchimpfWort[i],true) != -1)
    {
    new string1[128];
    format(string1,sizeof(string1),"AdmCmd: %s wurde vom Anti - Beleidigungs System gekickt, Grund: Beleidigung",SpielerName(playerid));
    SendClientMessageToAll(HELLROT,string1);
    Kick(playerid);
    }
    return 1;
    }[/pwn]
    So sieht es jetzt aus

  • Aus der 0 eine 1 zu machen ändert nichts an der Tatsache, dass du die Schleife nach dem ersten Durchlauf beendest.

    for(new i=0;i<sizeof(SchimpfWort);i++)
    {
    if(strfind(text,SchimpfWort[i],true) != -1)
    {
    new string1[128];
    format(string1,sizeof(string1),"AdmCmd: %s wurde vom Anti - Beleidigungs System gekickt, Grund: Beleidigung",SpielerName(playerid));
    SendClientMessageToAll(HELLROT,string1);
    Kick(playerid);
    return 1; //Wort gefunden, Schleife wird abgebrochen
    }
    }

    edit: Falls die Abfrage unter OnPlayerText stattfindet musst du return 0 verwenden, um das Abschicken zu verhindern.

  • Hahahahahah nein schreibt man nicht !
    mach das return 0 einfach weg


    for(new i=0;i<sizeof(SchimpfWort);i++)
    {
    if(strfind(text,SchimpfWort[i],true) != -1)
    {
    new string1[128];
    format(string1,sizeof(string1),"AdmCmd: %s wurde vom Anti - Beleidigungs System gekickt, Grund: Beleidigung",SpielerName(playerid));
    SendClientMessageToAll(HELLROT,string1);
    Kick(playerid);
    }
    }



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Geht alles nicht


    for(new i=0;i<sizeof(SchimpfWort);i++)
    {
    if(strfind(text,SchimpfWort[i],true) != -1)
    {
    new string1[128];
    format(string1,sizeof(string1),"AdmCmd: %s wurde vom Anti - Beleidigungs System gekickt, Grund: Beleidigung",SpielerName(playerid));
    SendClientMessageToAll(HELLROT,string1);
    Kick(playerid);
    }
    }

  • Du verteilst ja ganz schön harte Strafen. :D


    Die Version von Hexler sollte eigentlich funktionieren, bis auf dass return 1, sollte return 0 sein aber das hat er ja gesagt.
    Zeig doch mal das gesamte OnPlayerText, so wie es jetzt gerade ist.