MetalowyNerd Opublikowano 26 Września 2016 Udostępnij Opublikowano 26 Września 2016 Witam. Siedzę nad tym już kilka godzin, i za cholerę nie wiem, co zrobić, żeby zadziałało. Zrobiłem w grze na razie opcję tylko dla mnie, w której po otwarciu menu, pojawia się menu: F1 - zapisz grę, F2 - wczytaj grę, F3 - usuń zapis (nie działa), F4 - zrestartuj grę, (tekst) Zapis istnieje. F1 i F2 działają dobrze. Pod przyciskiem F3 jest skrypt: GML if(file_exists("savegame.sav")) file_delete("savegame.sav"); , jednak nie usuwa on wcale zapisu, bo jeśli po F3 wcisnę F2, gra się znowu wczytuję. To jeden problem. Moim drugim problemem natomiast jest tekst ostatniej linijki, "Zapis istnieje/nieistnieje". Chodzi w tym o to, żeby napis zmieniał się, jeśli plik zapisu istnieje, a jakoś widzę, że ten tekst nie ma na to ochoty xd. Nie wiem, co robię źle. Oto kod do tego tekstu: W STEP'IE GML if(file_exists("savegame.sav")==true) //if(file_exists("savegame.sav")) też nie działało... saveExists = true; else saveExists = false; W DRAW'IE GML if(saveExists == true) draw_text(10,50,"Save exists"); else draw_text(10,50,"No save"); Proszę o jakąś podpowiedź doświadczonych ;), bo myślałem, że mi to z pół godzinki zajmie, to oczywiście nieee, schody zawsze muszą być xD, przy każdej pierdółce. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Uzjel Opublikowano 26 Września 2016 Udostępnij Opublikowano 26 Września 2016 Pokaż jeszcze jak zapisujesz i wczytujesz grę. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MetalowyNerd Opublikowano 27 Września 2016 Autor Udostępnij Opublikowano 27 Września 2016 Zapisuję tak: GML if(file_exists("gamesave.sav")) { file_delete("gamesave.sav"); } game_save("gamesave.sav"); , natomiast wczytuję tak: GML if(file_exists("gamesave.sav")) { game_load("gamesave.sav"); } Na prawdę, nie rozumiem, czemu tak prosty mechanizm nie chce dzialać :/. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 27 Września 2016 Udostępnij Opublikowano 27 Września 2016 Czy masz coś w included files? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MetalowyNerd Opublikowano 3 Października 2016 Autor Udostępnij Opublikowano 3 Października 2016 Nie, w Included Files nie ma absolutnie nic. Coś czuję, że to nie taki prosty temat :/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 3 Października 2016 Udostępnij Opublikowano 3 Października 2016 A dodaj do include pusty plik "gamesave.sav" Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MetalowyNerd Opublikowano 3 Października 2016 Autor Udostępnij Opublikowano 3 Października 2016 Niestety, dzieje sie dokładnie to samo :/. Nie wiem już, co mogę zrobić. Problem wygląda banalnie na pierwszy rzut oka Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 4 Października 2016 Udostępnij Opublikowano 4 Października 2016 Zrób to z .ini pójdzie łatwiej Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 6 Października 2016 Udostępnij Opublikowano 6 Października 2016 Przed nazwami plikow dodaj working_directory+"/" moze to cos da, bo ja tak robie i nie mam problemu z tym Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MetalowyNerd Opublikowano 7 Października 2016 Autor Udostępnij Opublikowano 7 Października 2016 Niestety, zmiana rozszerzenia na ".ini" nic nie dała, tak samo jak podmienienie "gamesave.ini" na "working_directory+"/gamesave.ini"". Może to bug GM:S'a? Niedopracowanie... nie wiem, ale to niby taka banalna rzecz, a stawia opór konkretnie :/. Próbowałem też z rozszerzeniem ".dat" ale GM:S nic sobie z tego nie robi. Macie jeszcze jakieś pomysły? Nawet te najdziwniejsze i najbardziej skomplikowane, może w końcu się uda Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 7 Października 2016 Udostępnij Opublikowano 7 Października 2016 Rozszerzenie nie ma znaczenia. Możesz zapisywać bez. A komentarza o użyciu ini nie skomentuję. Jeżeli wszystko robisz dobrze to problem pewnie leży w śmieciach albo jest bugiem GM:S (co nie powinno już mieć miejsca). Jakbyś jeszcze nie wiedział to GM:S obsługuje dane w dziwny sposób. Zapisywać możesz tylko i wyłącznie do working_directory czyli do folderu gry w %appdata%. Za to odczytywać możesz aż z trzech lokalizacji. working_directory, folderu instalacyjnego gry i program_directory. Dwa ostatnie zazwyczaj są te same, ale zdarzają się wyjątki. Twój problem może być taki że masz gdzieś plik który dla GM jest tylko "do odczytu". GM otwiera go, czyta ale gdy próbuje go zapisać nie może wiec robi to do working_directory. Następnie jeżeli masz plik o tej nazwie w working_directory to nie szuka już w innych lokacjach tylko otwiera ten. Możesz go edytować, zapisywać i kasować. Ale jeżeli usuniesz ten plik to ponownie będzie go szukać w innych lokacjach. Spróbuj założyć nowy projekt i w nim zrobić to samo. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 7 Października 2016 Udostępnij Opublikowano 7 Października 2016 Yoyo najchętniej by wywaliło tą funkcję :P Tak po za problemem z usuwaniem to pomyśl czy w ogóle game_save się tobie przyda bo cytując dokumentację: NOTE: This function is very limited and it is designed for the beginner to get a save system up and running quickly, but more advanced users may prefer to code their own system using the File functions, due to the fact that the game will not save any of the dynamic resources like data structures, surfaces, added backgrounds and sprites etc.. tzn funkcja nie zapisze żadnej struktury( np zwykłej ds_list ), surfaceu itd... co czyni ją bezużyteczną. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 7 Października 2016 Udostępnij Opublikowano 7 Października 2016 Nadal nie wiem co takiego złego jest w .ini ;p Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MetalowyNerd Opublikowano 7 Października 2016 Autor Udostępnij Opublikowano 7 Października 2016 Threef - założenie nowego projektu będzie się trochę mijało z celem, bo projekt robiłem dość długo i jest zbyt rozbudowany, a stworzenie niemal identycznego zajęłoby mi sporo czasu. ediepl - Dlatego teraz nie wiem, jak ten problem rozwiążę. Kusi mnie opcja, żeby wszystkie zmienne gry zapisywać w jednym pliku klasycznie, bez użycia game_save i game_load, ale nie wiem, jak mi to wyjdzie. Dodatkowo sprawę komplikuje fakt, że na przykład gdy podczas gry powstały nowe obiekty, to nie będę wiedział, jak zapisać ich koordynaty na ekranie w pliku, żeby można było je odczytać na nowo. Ignatus - ja właśnie też nie bardzo wiem Pozornie prosta funkcja, postawiła mi konkretne schody w rozwoju tej gry. To zniechęca, jak każde schody w programowaniu, ale (pewnie jak każdy z tego forum) jestem tego typu masochistą xD Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 8 Października 2016 Udostępnij Opublikowano 8 Października 2016 Threef - założenie nowego projektu będzie się trochę mijało z celem, bo projekt robiłem dość długo i jest zbyt rozbudowany, a stworzenie niemal identycznego zajęłoby mi sporo czasu. Chodziło mi o to żebyś założył nowy projekt i sprawdził czy działa zapisywanie. Nie o to abyś zaczynał od nowa. ediepl - Dlatego teraz nie wiem, jak ten problem rozwiążę. Kusi mnie opcja, żeby wszystkie zmienne gry zapisywać w jednym pliku klasycznie, bez użycia game_save i game_load, ale nie wiem, jak mi to wyjdzie. Dodatkowo sprawę komplikuje fakt, że na przykład gdy podczas gry powstały nowe obiekty, to nie będę wiedział, jak zapisać ich koordynaty na ekranie w pliku, żeby można było je odczytać na nowo. game_save i tak ci się popsuje jeżeli dokonasz jakiś zmian w grze. Jeżeli dojdzie do sytuacji że zapiszesz grę a potem zmienisz coś w projekcie to jest bardzo duża szansa że już nie wczytasz tego zapisu gry. Dlatego YYG nie poleca już używania tego. 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ę