ß bringt Server zum crashen?!

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 liebe Community,


    wie die Überschrift schon sagt vermute ich mal das dass "ß" den Server zum crashen bringt.
    Das Crashdetect Plugin spuckt aus dass bei OnPlayerDialogResponse ein "strcmp" den Server zum crashen bringt...
    if ( !strcmp(string, inputtext, true) ) {
    Das ist mein Täter... Allerdings sehe ich daran keinen Fehler, die Variable string ist gesetzt und die Variable inputtext genauso,
    die stimmen auch (laut Konsolenoutput) überein.
    Allerdings sobald jemand etwas mit einem "ß" im Inputfeld (vom Dialog) eingibt, crasht der Server.
    Bei jedem anderen mit einem Input ohne eines "ß" ging es.....
    Folgender Errorcode erscheint von crashdetect:

    Code
    [12:58:10] [debug] Server crashed while executing rl_script.amx
    [12:58:10] [debug] AMX backtrace:
    [12:58:10] [debug] #0 native strcmp () [00406540] from samp-server.exe
    [12:58:10] [debug] #1 0001a5a0 in public OnDialogResponse () from rl_script.amx
    [12:58:10] [debug] System backtrace:
    [12:58:11] [debug] #0 004061e4 in ?? () from F:\BackUp\Desktop\GTA SA\samp_server\samp-server.exe


    Also vermute ich mal dass es an strcmp() bzw. an diesem "ß" liegt, kann man das irgendwie umgehen?



    Mit freundlichen Grüßen pierre65

  • Okay danke...
    Ich hab folgenden Fehler gekriegt:

    Code
    [13:35:14] [debug] Server crashed while executing rl_script.amx
    [13:35:14] [debug] AMX backtrace:
    [13:35:14] [debug] #0 native strcmp () [00406540] from samp-server.exe
    [13:35:14] [debug] #1 00021260 in public OnDialogResponse (playerid=0, dialogid=2, response=1, listitem=-1, inputtext[]=@0x001102dc "") at F:\BackUp\Desktop\GTA SA\samp_server\gamemodes\rl_script.pwn:1880
    [13:35:14] [debug] System backtrace:
    [13:35:14] [debug] #0 004061e4 in ?? () from F:\BackUp\Desktop\GTA SA\samp_server\samp-server.exe
  • Achso, das wusste ich nicht, ging auch aus dem ersten Post nicht so genau hervor, naja.


    Es kann schon sein, dass das ß den Server crasht, da dieses Zeichen Landesspezifisch ist und somit crahes hervor rufen kann.


    Idee zum Umgehen: Man könnte ja den String bereinigen (ß durch ss oder so ersetzen) und diese Strings vergleichen. Für den Output kann man dann ja immer noch den Ursprungs-String verwenden.

  • Der Output war nur als kleiner Debug test ob der String überhaupt übereinstimmt...
    Naja ich versuch es mal mit dem ersetzen von Zeichne...


    // Edit: Durch das ersetzen geht es auch nicht, der Server crasht so oder so wenn man ein "ß" überprüft....
    // Edit 2: Das Problem lag an "GetPVarString" und "SetPVarString" ich hab das jetzt mit einer eigenen Variable gemacht und jetzt gehts auch.

  • Also ich bin mir mittlerweile gar nicht mehr so sicher, dass das ß der Übeltäter sein soll, da ich ein paar Test gemacht habe und der Server nicht abgeschmiert ist, sondern ordentliche Ergebnisse ausgeworfen hat.


    main()
    {
    print("\n----------------------------------");
    print(" Chartest");
    print("----------------------------------\n");
    new charstring[128];
    format(charstring,sizeof(charstring),"Enthaelt ß");
    printf("%d",strcmp(charstring,"anotherstring with ß",true));
    printf("%d",strcmp(charstring,"Enthaelt ß",true));
    CallLocalFunction("OnDialogResponse","dddds",0,0,0,-1,"string with ß");
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == 0)
    {
    printf("Dialogtest: %s für %d",inputtext,strcmp(inputtext,"string with ß",true));
    }
    return 1;
    }


    Log:

  • Und wenn schon, der Treadersteller hat nicht selber geschrieben, dass das Problem gelöst war. Ich gehe demnach davon aus, dass er es mit dem ersetzten des Zeichens versuchen wollte und deswegen das Thema als erledigt markiert hat, dann aber (im edit) gepostet hat, dass dies auch nicht funktioniert und vergessen hat das Thema wieder "dreizuschalten" (wenn das überhaupt möglich ist)


    Daher mein Post bezüglich des Fehlers, welcher darlegen sollte, dass das Problem ggf. durch einen anderen Fehler hervorgerufen wird, den es zu finden gilt.