|DIALOG| Problem bei strfind abfrage

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
  • case DIALOG_ACP_TSIP:
    {
    if(strfind(inputtext, ".", false))return ERROR(playerid, "Die TeamspeakIp muss Punkte und einen Doppelpunkt enthalten, Beispiel: 123.123.123:9987 (1)");
    if(strfind(inputtext, ":", false))return ERROR(playerid, "Die TeamspeakIp muss Punkte und einen Doppelpunkt enthalten, Beispiel: 123.123.123:9987 (2)");
    if(strlen(inputtext) < 6)return ERROR(playerid, "Die TeamspeakIP muss mindestens 6 Zeichen haben");
    dini_Set(CONFIGPFAD, "TeamspeakIP", inputtext);
    SendClientMessage(playerid, ROT, "Du hast die TeamspeakIP geändert");
    }


    Wenn ich eine IP MIT . & : oder nur . oder nur : eingebe, kommt, dass die TeamspeakIP geändert wurde, was habe ich falsch gemacht?


  • if(!strfind(inputtext, ".", false) & strlen(inputtext) < 6))return ERROR(playerid, "Die TeamspeakIp muss Punkte und einen Doppelpunkt enthalten, Beispiel: 123.123.123:9987 (1)");
    if(!strfind(inputtext, ":", false) & strlen(inputtext) < 6))return ERROR(playerid, "Die TeamspeakIp muss Punkte und einen Doppelpunkt enthalten, Beispiel: 123.123.123:9987 (2)");
    dini_Set(CONFIGPFAD, "TeamspeakIP", inputtext);
    SendClientMessage(playerid, ROT, "Du hast die TeamspeakIP geändert");


    so sollte es funktionieren

  • So... Und jetz schaust du dir mal im wiki an, was strfind zurückgibt.


    Er würde nicht fragen wenn er dies verstanden hätte! :thumbdown:


    case DIALOG_ACP_TSIP:
    {
    if(strfind(inputtext, ".", false) == -1)return ERROR(playerid, "Die TeamspeakIp muss Punkte und einen Doppelpunkt enthalten, Beispiel: 123.123.123:9987 (1)");
    if(strfind(inputtext, ":", false) == -1)return ERROR(playerid, "Die TeamspeakIp muss Punkte und einen Doppelpunkt enthalten, Beispiel: 123.123.123:9987 (2)");
    if(strlen(inputtext) < 6)return ERROR(playerid, "Die TeamspeakIP muss mindestens 6 Zeichen haben");
    dini_Set(CONFIGPFAD, "TeamspeakIP", inputtext);
    SendClientMessage(playerid, ROT, "Du hast die TeamspeakIP geändert");
    }
    ^ So. :)

  • Wenn er sich das angesehen hätte, dann wüsste er, dass strfind nicht 1 sondern -1 zurückgibt, wenn der substring gefunden wurde.
    Klar hatte ich ihm das jetzt auch so hinschreiben können, aber vielleicht sieht er ja nächstes mal erst im wiki nach....