pankracy Opublikowano 10 Lipca 2019 Udostępnij Opublikowano 10 Lipca 2019 Cześć wszystkim, Próbuje rozwiązać problem z nadpisującym się wynikiem do highscore po ukończeniu gry. Wygląda to tak,że cały czas jest tylko jeden wpis,a powinno być top 10 najlepszych wyników. Dziwna sytuacja...bo np jeśli zapisze grę i załaduje z load game gre i nastepnie jak skończe grę i nastąpi zapis do highscore to tworzy się niżej nowy rekord zapisu... Tylko dlaczego przy wyborze gry od nowa nadpisuje się rekord w highscore? Nie będę tu wszystkiego wklejał żeby nie robić bałaganu. obj_game_controller step if (global.life <= 0) { if (can_finish == false) { if (alarm[0] == -1) { // zacznij tylko gdy jeszcze się nie odlicza alarm[0] = 120; // 150 to 5 sekund } } else { if (global.pScore >= 500) //Sprawdz czy wynik nadaje sie do highscore,ale musi zostac spelniony warunek punktowy { var s=highscores[| ds_list_size(highscores) - 1]; //Czy punkty kwalifikuja sie na top 10 if (ds_list_size(highscores) < 10 || s[?"score"] <= global.pScore) { room_goto(rm_save_score); exit; // zakoncz wykonywanie eventu step w tej klatce } } room_goto(rm_game_over); } } obj_highscore create global.pScore=0 globalvar highscores; highscores=ds_list_create() //Wczytaj punkty z dysku var f=file_text_open_read("highscore.dat") if(f>-1) { var s=file_text_read_string(f) //show_debug_message(s) s=json_decode(s) if(s!=-1 && ds_exists(s, ds_type_map) && ds_map_exists(s,"default")) { var m=s[?"default"]; for(var _i=0; _i<ds_list_size(m); _i++) { if(ds_exists(m[|_i], ds_type_map)) { var _m=ds_map_create(); ds_map_copy(_m, m[|_i]) ds_list_insert(highscores, _i, _m) ds_list_mark_as_map(highscores, _i) } } } ds_map_destroy(s) file_text_close(f) } scrypt score_add ///score_add(name,score) if(ds_exists(highscores, ds_type_list)) { var m=ds_map_create(); m[?"name"]=argument0 m[?"score"]=argument1 ds_list_add(highscores, m) ds_list_mark_as_map(highscores, ds_list_size(highscores)-1) score_sort() if(ds_list_size(highscores)>10) { ds_list_delete(highscores,10) } } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się