Text für Admins sehen wenn jemand das schreibt ;D

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
  • Moinmoin ;D


    Ich wollte mal fragen ob mir jemand helfen könnte dabei, dass wenn jemand das Wort "Mutter" in einem Satz verwendet das einem Admin mit dem Level 2 den ganzen Satz sieht und den Namen der Person.
    Beispiel: [M-WARNING]%s: %s


    Ich habs jetzt schonmal bischen vorgearbeitet, aber das ist absoluter Mist was ich da fabriziert habe :D :


    public OnPlayerText(playerid, text[])
    {
    if(!strfind(text,"mutter",true))
    {
    new beleidiger[MAX_PLAYER_NAME];
    new string6[100];
    GetPlayerName(playerid, beleidiger, sizeof(beleidiger));
    new Mutter(playerid, Mutter, sizeof inputtext(Mutter));
    {
    if(Spieler[playerid][Admin] >= 2)
    {
    format(string6, sizeof(string6), "[M-WARNING]%s: %s", beleidiger, Mutter);
    SendClientMessage(COLOR_ROT, string6);
    }
    return 0;
    }
    return 1;
    }


    Kann mir das jemand verbessern und auch vielleicht erklären warum das so muss? Wäre toll wenn schnell geholfen wird.
    Danke schonmal im Vorraus.


    MFG Seb ;D

    5 Mal editiert, zuletzt von Seb_Mcpepp ()

  • Wieso denn:


    if(Spieler[playerid][Admin] >= 2)
    {
    format(string6, sizeof(string6), "[M-WARNING]%s: %s", beleidiger, Mutter);
    SendClientMessageToAll(COLOR_ROT, string6);
    }



    Wenn der typ Adm LvL über 2 ist sendet er die Nachricht an alle? Sinnfrei xD

    Die deutsche Rechtschreibung ist Freeware, sprich du darfst sie kostenlos nutzen...
    Sie ist aber nicht Open Source, somit darfst du sie nicht verändern oder in veränderter Form veröffentlichen!


  • ich bin mir nicht sicher aber vielleicht kannste ja abfragen was er geschrieben hat bei OnPlayerText..

    new text;


    text = GetPlayerText(playerid,text);


    und das dann halt dem admin schicken


    ich weiß nicht ob es GetPlayerText giebt, aber ich glaube so in der art kannste das machen.

  • also "text" ist ja in OnPlayerText schon definiert, das ist der gesamte satz den der spieler schreibt..


    und wenn das wort mutter schreibt, fragst du den text ab, und schickst ihn zum admin


    //edit: ich glaube du musst den text garnet abfragen, da er ja schon definiert ist:


    //wenn er mutter schreibt
    {
    new string[256],name;
    GetPlayerName(playerid,name,sizeof(name));
    format(string,sizeof(string),[warning] %s: %s, name,text);
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    //wenn er admin ist
    {
    SendClientMessage(i,FARBE,string);


    alles unter OnPlayerText


    //edit habs mal für dich gemacht, muss du deinem admin system anpassen:


    OnPlayerText(...)
    {
    if(!strfind(text,"mutter",true))
    {
    new string[256],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(string,sizeof(string),"[WARNING][BELEIDIGUNG] %s(%d): %s", name,playerid,text);
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(SpielerInfo[i][alvl] >= 1)
    {
    SendClientMessage(i,0x0000FFFF,string);
    }
    }
    }
    return 1;
    }

    2 Mal editiert, zuletzt von Simon ()

  • das habe ich auch gemerkt, ich habe es nämlich soeben (erweitert) eingefügt.. es kommt nur die meldung wenn er das wort schreibt, nicht wenn das wort iwo im satz auftaucht..


    da weiß ich leider auch net weiter..

  • Müsste nun gehen.
    public OnPlayerText(playerid, text[])
    {
    if(strfind(text,"mutter",true,0) != -1)
    {
    new beleidiger[MAX_PLAYER_NAME];
    new string6[100];
    GetPlayerName(playerid, beleidiger, sizeof(beleidiger));
    format(string6, sizeof(string6), "[M-WARNING]%s: %s", beleidiger, text);
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(Spieler[i][Admin] >= 2)
    {
    SendClientMessage(i,0xFFFFFFFF, string6);
    }
    }
    return 1;
    }
    return 1;
    }

  • danke werds mal ausprobieren


    //edit: also es klappt zum teil.


    also ich habe folgendes:


    new warnwords[] = {"Deine Mama","Deine Mutter","Deine mudda","Deine mudder","dein vadder","Dein Vater","Dein vadda","Dein papa","Deine oma","dein opa"};


    public OnPlayerText(playerid, text[])
    {
    if(strfind(text,warnwords,true,0) != -1)
    {
    new string[256],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(string,sizeof(string),"[WARNING][BELEIDIGUNG] %s(%d): %s", name,playerid,text);
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(SpielerInfo[i][alvl] >= 1)
    {
    SendClientMessage(i,0x0000FFFF,string);
    }
    }
    }


    return 1;
    }


    der erkennt nur deine mutter, die anderen nicht ;D

    Einmal editiert, zuletzt von Simon ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Falls du mehrere wörter verbieten willst, einfach das hier kopieren, und immer untereinander einfügen:
    if(strfind(text,"mutter",true,0) != -1)
    {
    new beleidiger[MAX_PLAYER_NAME];
    new string6[100];
    GetPlayerName(playerid, beleidiger, sizeof(beleidiger));
    format(string6, sizeof(string6), "[M-WARNING]%s: %s", beleidiger, text);
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(Spieler[i][Admin] >= 2)
    {
    SendClientMessage(i,0xFFFFFFFF, string6);
    }
    }
    return 1;
    }

  • public OnPlayerText(playerid,text[])
    {
    #define badword(%1) strfind(text,%1,true)!=-1||
    #define lastBadword(%1) strfind(text,%1,true)!=-1if(\
    badword("mutter")\
    badword("vater")\
    lastBadword("sex")\
    )
    {
    new lol[128];
    GetPlayerName(playerid,lol,MAX_PLAYER_NAME);
    format(lol,sizeof lol,"[Badword]%s: %s",lol,text);
    for(new i;i<MAX_PLAYERS;i++)if(Spieler[i][Admin]>1)SendClientMessage(i,0xFFFFFFFF,lol);
    }
    }