OnPlayerText Abfrage nach Wort / Name ?

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
  • Hey Leute...
    Ich habe folgendes wieder^^:
    Hierbei hat er keinen Error:
    if( (text[0] == '#' || text[0] == '@') && strlen(text) > 1)


    Aber hierbei, warum ?:
    if( (text[0] == 'Chuck' || text[1] == 'Chuck_Norris' || text[2] == 'Norris' || text[3] == 'Chuck Norris') && strlen(text) > 1)


    Und zu meiner Frage ob das überhaupt richtig ist:
    Ich will abfragen, ob einer in den Chat was schreibt, wo eins dieser Wörter drin vorkommt, aber es soll auch egal sein wo das steht, an welcher Stelle.
    Also es soll ne Nachricht kommen wenn ein Player schreibt: Du stinkst, chuck.
    Dann soll ne nachricht kommen, Nicht nur bei: chuck. sondern überall.
    Habe schon RandomMSGs gemacht.


    Und das hier:
    if( (text[0] == 'Chuck' || text[1] == 'Chuck_Norris' || text[2] == 'Norris' || text[3] == 'Chuck Norris') && strlen(text) > 1)
    {
    new randChuckMSG = random(sizeof(RandomChuckMSG));
    SendClientMessageToAll(COLOR_WHITE, RandomChuckMSG[randChuckMSG]
    return 1;
    }


    Aber das geht wohl nicht ganz, er zeigt folgende Errors an. (Die Errors beziehen sich alle auf die Zeile wo text[0] steht):

    Code
    \HomeServer\gamemodes\GDM.pwn(2530) : error 027: invalid character constant
    \HomeServer\gamemodes\GDM.pwn(2530) : error 027: invalid character constant
    \HomeServer\gamemodes\GDM.pwn(2530) : error 017: undefined symbol "huck_Norris"
    \HomeServer\gamemodes\GDM.pwn(2530) : fatal error 107: too many error messages on one line


    Bitte auch hier lesen:
    [FRAGE] Chuck_Norris(NPC) als Anti-Cheat ?


    MfG
    Atta(Oo);

  • Habs schon so gemacht:
    if(strfind(text, "Chuck", true) == 0 || strfind(text, "chuck", true) == 0 || strfind(text, "Norris", true) == 0 || strfind(text, "norris", true) == 0 || strfind(text, "Chuck_Norris", true) == 0 || strfind(text, "Chuck_norris", true) == 0 || strfind(text, "chuck_Norris", true) == 0 || strfind(text, "chuck_norris", true) == 0 || strfind(text, "Chuck Norris", true) == 0 || strfind(text, "Chuck norris", true) == 0 || strfind(text, "chuck Norris", true) == 0 || strfind(text, "chuck norris", true) == 0)


    Bloß jetzt ist folgendes:
    Chuck_Norris antwortet schon bevor ich geschrieben habe :D
    Ich schreibe in den chat chuck
    dann sieht der Chatverlauf so aus:


    Chuck_Norris: Naund ? lass mich doch.
    GermanCy(ich): chuck


    das ist voll lol.
    Habe das mit nem Timer versucht, dass der eine Sekunde später antwortet, aber nun antwortet er garnicht :(


    if(strfind(text, "Chuck", true) == 0 || strfind(text, "chuck", true) == 0 || strfind(text, "Norris", true) == 0 || strfind(text, "norris", true) == 0 || strfind(text, "Chuck_Norris", true) == 0 || strfind(text, "Chuck_norris", true) == 0 || strfind(text, "chuck_Norris", true) == 0 || strfind(text, "chuck_norris", true) == 0 || strfind(text, "Chuck Norris", true) == 0 || strfind(text, "Chuck norris", true) == 0 || strfind(text, "chuck Norris", true) == 0 || strfind(text, "chuck norris", true) == 0)
    {
    SetTimerEx("ChuckAntwortet",1500,0,"d",playerid);
    //SetTimer("ChuckAntwortet", 1000, 0);
    return 1;
    }


    stock ChuckAntwortet()
    {
    new randChuckMSG = random(sizeof(RandomChuckMSG));
    SendClientMessageToAll(COLOR_WHITE, RandomChuckMSG[randChuckMSG]);
    return 1;
    }


    Was soll ich machen ?


    Bitte auch hier lesen:
    [FRAGE] Chuck_Norris(NPC) als Anti-Cheat ?


    //EDIT Klammern waren verrutscht


    MfG
    Atta(Oo);

    2 Mal editiert, zuletzt von AttachObject(Oo); () aus folgendem Grund: //EDIT

  • du kannst 1. keine Stocks per Timer aufrufen das geht nur mit publics
    2. solltest du strfind(text,"Iwas",true,0) != -1) verwenden, sonst kannst du sowas schreiben


    "hallo chuck" und nichts passiert da strfind die Position rausgibt an der der string gefunden wurde und -1 ist nicht gefunden

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski