Fehlermeldung aus Script die nicht immer beim gleichen Level kommt

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Fehlermeldung aus Script die nicht immer beim gleichen Level kommt

    Hallo liebe Gm Gemeinde.
    Ich bitte um eine Hilfestellung - komm einfach nicht weiter.

    Kurze Beschreibung:
    Ich speichere die Score aus meinem Game in eine Mysql DB und werte die Daten dann wieder nach jedem Level in einer Highscore Tabelle aus.
    Funktioniert (eigentlich) ganz gut - aber es kommt immer wieder mal (nicht immer, und immer wieder in einem anderen Level) zu der Fehlermeldung die ich im Datenanhang per Screenshot erstellt habe.

    Ablauf:
    Beim ersten Gamestart frage ich den Benutzernamen ab und übergebe ihn an eine Ini:

    Quellcode

    1. if ( file_exists("userdata.ini") == false )
    2. {
    3. ini_open("userdata.ini");
    4. global.client_name = string_lettersdigits(get_string("Username:",""));
    5. ini_write_string("DATA","NAME",global.client_name);
    6. ini_close();
    7. }
    8. if ( file_exists("userdata.ini") == true )
    9. {
    10. ini_open("userdata.ini");
    11. global.client_name = ini_read_string("DATA","NAME","DEFAULT");
    12. ini_close();
    13. }
    Alles anzeigen

    Upload an den Server:

    Quellcode

    1. var str = "Room=" + room_get_name(room) +"&player=" + global.client_name + "&score=" + string(zeit/60);
    2. post = http_post_string("http://meineDomain.at/labyrinth/loadscore.php?Room=" + room_get_name(room) +"&player="+string(global.client_name)+"&score="+string(zeit/60), str);


    nun wo der Fehler passiert:
    create Event

    Quellcode

    1. response = http_get("http://meineDomain.at/labyrinth/sendscore1.php");

    http Event (<-- der Übeltäter)

    Quellcode

    1. if ds_map_find_value(async_load, "id") == response
    2. {
    3. if ds_map_find_value(async_load, "status") >= 0
    4. {
    5. r_str = ds_map_find_value(async_load, "result");
    6. list = scr_splitter("|", r_str);
    7. download = "true";
    8. }
    9. else
    10. {
    11. r_str = "null";
    12. }
    13. }
    Alles anzeigen

    das entsprechende Script dazu:

    Quellcode

    1. var sepchar,str,new_str,ds,i,cur_char,sep_len;
    2. sepchar = argument0;
    3. sep_len = string_length(sepchar);
    4. str = argument1; new_str = ""; ds = ds_list_create();
    5. if (sepchar!="" && str!="") {
    6. if (string_copy(str,string_length(str)-sep_len+1,sep_len)!=sepchar) str += sepchar;
    7. for (i=1;i<=string_length(str);i+=1) {
    8. cur_char = string_char_at(str,i);
    9. if (cur_char+string_copy(str,i,string_length(sepchar)-1)==sepchar) {
    10. ds_list_add(ds,new_str); new_str = ""; i += string_length(sepchar)-1;
    11. } else {
    12. new_str += cur_char;
    13. }
    14. }
    15. return ds;
    16. }
    17. return -1;
    Alles anzeigen


    Das Script (welches meinen derzeitigen Horizont übersteigt)habe ich nicht selbst erstellt sondern aus dem Marketplace gekauft(leider kein Support mehr....)
    Der Rest ist kein so großes Thema. lg che
    Bilder
    • Screenshot_2015-03-08-09-21-33.PNG

      633 kB, 1.280×720, 273 mal angesehen
    • Screenshot_2015-03-08-09-21-41.PNG

      619,7 kB, 1.280×720, 295 mal angesehen
  • Fehler behoben - Danke an GameGeisha

    Stop checking the status key for a value grater than or equal to 0. Newer versions of GMS now put a 1 in that key for in-progress requests. Check the status key for 0 only.

    if (ds_map_find_value(async_load, "status") == 0)

    GameGeisha