OwocekTV Opublikowano 27 Września 2013 Udostępnij Opublikowano 27 Września 2013 Witam, od paru dni próbuję stworzyć grę, w której trzeba zbierać drewno, a za te drewno kupować ulepszenia. Jako iż system zapisywania game_save się zbytnio nie sprawdził, postanowiłem zapisywać plikiem "ini". Pytanie: Jak można zrobić tak aby co parę sekund generowało się np. 1 drewno? Mój dotychczasowy kod jest taki: Create: GML alarm[0] = 500/global.siekierka Alarm [0]: GML global.wood += 1 alarm[1] = 500/global.siekierka Alarm [1]: GML global.wood += 1 alarm[1] = 500/global.siekierka I problem jest taki, że jeśli odczytuję to z pliku ini, to nawet jak mam 20 siekierek to w ogóle nie nalicza drewna, poprostu się zatrzymało. Z góry dziękuję za odpowiedzi, Pozdrawiam. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 27 Września 2013 Udostępnij Opublikowano 27 Września 2013 Pokaż kod który odpowiada za zapis i odczyt ini income: GML (create) alarm[0] = 500/global.siekierka GML (alarm0) global.wood += 1 alarm[0] = 500/global.siekierka Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
OwocekTV Opublikowano 27 Września 2013 Autor Udostępnij Opublikowano 27 Września 2013 Brałem kod z poradnika w dokumentacji. Zapis: Kod skrócony, pominąłem inne zmienne, czyli drwal, poziom drzewa, itp. Wypisałem tylko to co się tyczy siekiery: GML //zapis ini_open( 'TreeSave.tree' ) ini_write_real('Budynki','siekierki',global.siekierka); ini_write_real('Ceny Budynkow','siekierka',global.cenaaxe); if global.siekierka > 0 ini_write_real('steps per second','siekierki',500/global.siekierka); ini_close(); Odczyt: GML //odczyt ini_open( 'TreeSave.tree' ) global.wood=ini_read_real('Liczba drewna','drewno','0' ); global.siekierka=ini_read_real('Budynki','siekierki','0' ); global.cenaaxe=ini_read_real('Ceny Budynkow','siekierka','10' ); global.SPS=ini_read_real('steps per second','siekierki',500); ini_close() Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
FanXX Opublikowano 27 Września 2013 Udostępnij Opublikowano 27 Września 2013 Brałem kod z poradnika w dokumentacji. Zapis: Kod skrócony, pominąłem inne zmienne, czyli drwal, poziom drzewa, itp. Wypisałem tylko to co się tyczy siekiery: GML //zapis ini_open( 'TreeSave.tree' ) ini_write_real('Budynki','siekierki',global.siekierka); ini_write_real('Ceny Budynkow','siekierka',global.cenaaxe); if global.siekierka > 0 ini_write_real('steps per second','siekierki',500/global.siekierka); ini_close(); Tak mi się wydaje że problemem może być ostatnie trzy linijki gdyż nie dałeś klamer { } Sprawdź czy z nimi to zadziała jak poniżej. GML //zapis ini_open( 'TreeSave.tree' ) ini_write_real('Budynki','siekierki',global.siekierka); ini_write_real('Ceny Budynkow','siekierka',global.cenaaxe); if global.siekierka > 0 { ini_write_real('steps per second','siekierki',500/global.siekierka); } ini_close(); Obczaje to jeszcze raz na spokojnie i dam najwyżej edit :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jaklub Opublikowano 27 Września 2013 Udostępnij Opublikowano 27 Września 2013 klamry w takim wypadku nie są koniecznością Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
OwocekTV Opublikowano 27 Września 2013 Autor Udostępnij Opublikowano 27 Września 2013 Klamry nie pomogły. Jak zapiszę grę, zresetuję ją, i wczytam to nadal jest ten błąd, nie nalicza drewna. Jest też kolejny problem, gdy mam jedną siekierę, też nie nalicza drewna, nalicza dopiero gdy mam 2. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 27 Września 2013 Udostępnij Opublikowano 27 Września 2013 Bo ty nie zapętliłeś tych alarmów. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
OwocekTV Opublikowano 27 Września 2013 Autor Udostępnij Opublikowano 27 Września 2013 A jak to zrobić? Przepraszam za takie głupie pytania ale w niektórych rzeczach sobie radzę a w niektórych nie ._. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 27 Września 2013 Udostępnij Opublikowano 27 Września 2013 Napisałem wyżej. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
OwocekTV Opublikowano 27 Września 2013 Autor Udostępnij Opublikowano 27 Września 2013 No to jest zapętlone, a wciąż nie działa... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ereg Opublikowano 27 Września 2013 Udostępnij Opublikowano 27 Września 2013 niestudiowalem twego kodu ale czesto ludzie robio ten blad: naprzyklad event step GML alarm[1]=50; i niekumajom dlaczego alarm sie nieuruchomil. alarmy to takie minutniky kuchienne i v chvili kdy vykonas polecenie GML alarm[1]=50;to nacingnoles minutnik na 50 cykli gry jezeli naciognies go znow przed uplywem czasu no wydluzsas czas na 50cykli a jeszeli znow pred dzwnonieniem naciogas to znow wysluzasz czas na 50 cykli a tak dalej az w nieskonczonost. jesli tak spojrzysz na alarm, to niebezdzies miec problem znalezienia bladu :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
OwocekTV Opublikowano 27 Września 2013 Autor Udostępnij Opublikowano 27 Września 2013 Dzięki za wszelkie porady, tylko że to wciąż nie działa, i trudząc się ponad godzinę robiąc to różnymi możliwościami wciąż mi nie działało... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ereg Opublikowano 27 Września 2013 Udostępnij Opublikowano 27 Września 2013 Dzięki za wszelkie porady, tylko że to wciąż nie działa, i trudząc się ponad godzinę robiąc to różnymi możliwościami wciąż mi nie działało... sprawdz kdzie wszedzie v obiektu uzywasz alarm[0]=_costam niemozes alarm ustawiac za czesto bo sie nieaktyvuje. to mialem na mysli wyzej. jezeli niedostajes ani 1 drzewo to sugeruje ze problem kdzies tu jest, ze nieuruchomil sie alarm. mozes latwo sprawdzic przes show_message v alarmu :) Tak mi się wydaje że problemem może być ostatnie trzy linijki gdyż nie dałeś klamer { }klarmy so konieczne kdy za IF/FOR/etc. uzywas wiecej niz 1 linijke kodu. klamry wtedy poloczom wiecej liniek do bloku a kompiler bierze jako normalno 1 linijke nalezno do IF/FOR/etc. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
OwocekTV Opublikowano 28 Września 2013 Autor Udostępnij Opublikowano 28 Września 2013 jezeli niedostajes ani 1 drzewo to sugeruje ze problem kdzies tu jest, ze nieuruchomil sie alarm. mozes latwo sprawdzic przes show_message v alarmu Bardzo dobry pomysł, lecz przy 1 siekierce wciąż nie produkowało drewna, ani nie pokazywało show_message. Dopiero jak mam 2 siekiery, to odrazu mi produkuje drewno i pokazuje show_message. A problem z zapisem nadal jest. Gdy wczytuję nie nalicza mi nic, zupełnie jakby gra się zatrzymała. Edit: Wiem już co jest nie tak. Ponieważ mam obiekt "BuyAxe" który po kliknięciu odbiera nam pewną ilość drewna, i tworzy obiekt Obj_Axe, który tworzy drewno. Po zresetowaniu gry, te obiekty znikają, a ja wczytuję dane z pliku ini, więc dlatego nie generuje się drewno. Co do nie generowania się drewna przy 1 siekierce: Też naprawione, popatrzyłem angielskie fora, i TO mi pomogło: GML alarm[0] = room_speed * 2 // 2 seconds</span> a w Alarm[0] to samo + Global.wood += 1 Myślę że już dojdę do tego jak to naprawić, dziękuję wszystkim za pomoc, pozdrawiam :) 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ę