Kewin Opublikowano 27 Kwietnia 2022 Udostępnij Opublikowano 27 Kwietnia 2022 Chcialbym zrobic w swojej grze timer polegający na tym ze po ogladnieciu reklamy(reklamy sa juz w grze i dzialaja) dodaje sie do niego 15 minut czasu(w formacie 24/60/60) dopoki sie nie skonczy ten czas zdobywane zloto srebro itp ma byc podwójne i do tego momentu sobie z tym poradzilem problem robi sie wtedy kiedy gracz wyjdzie z gry(gra nie ma serwera wczytuje czas z urzadzenia). Zrobilem zmienna global.dataPoczatkowa i global.dataKoncowa i zapisywanie tych zmiennych dzieki czemu jesli graczowi zostanie 40 sekund, wyjdzie z gry i wroci to bedzie mial juz tylko 30 sekund po tym czasie 30 sekund bonus w postaci podwojnego zlota wylacza sie wiec dziala poprawnie, ale nie mam pomyslu jak zrobic poprawne wyswietlanie tego czasu pozostałego(w formacie 24/60/60) jesli gracz bedzie wychodzil z gry. Cytat // reklama obejrzana (do testow ustawilem ze dodaje tylko 15 sekund a nie minut) global.blokada = 1; global.seconds += 15; global.dataPoczatkowa = date_create_datetime(current_year, current_month, current_day, current_hour, current_minute, current_second); global.dataKoncowa = date_create_datetime(current_year, current_month, current_day, current_hour, current_minute, current_second + global.seconds); global.ms = 60 Cytat tutaj kod do zegara //create global.minutes = 0; global.seconds = 0; global.hour = 0; global.ms = 60; //step global.ms -= 1; if global.ms = 0 { global.ms = 60; global.seconds -= 1; } if global.seconds = -1 { global.minutes -= 1; global.seconds = 59; } if global.seconds >= 60 { global.minutes += 1; global.seconds -= 60; } if global.minutes >= 60 { global.hour += 1; global.minutes = global.minutes - 60; } if global.minutes = 0 and global.hour >= 1 and global.seconds = 0 { global.hour -= 1; global.seconds = 59; global.minutes = 59; } if global.hour >= 2 { global.hour = 1; global.minutes = 59; global.seconds = 59; } if global.minutes = 0 and global.seconds = 0 and global.hour = 0 { global.minutes = 0; global.seconds = 0; global.blokada = 0; global.ms = 0; } //draw if global.hour >= 1 and global.minutes >= 10 { draw_text(100, 100,string(global.hour) + ":" + string(global.minutes) + ":" + string_repeat("0", 2 - string_length(string(global.seconds))) + string(global.seconds)); } if global.hour >= 1 and global.minutes < 10 { draw_text(100, 100,string(global.hour) + ":" + "0" + string(global.minutes) + ":" + string_repeat("0", 2 - string_length(string(global.seconds))) + string(global.seconds)); } if global.hour < 1 { draw_text(100, 100,string(global.minutes) + ":" + string_repeat("0", 2 - string_length(string(global.seconds))) + string(global.seconds)); } if global.hour = 0 and global.minutes = 0 and global.seconds = 0 { draw_text(100, 100,string(global.minutes) + ":" + string_repeat("0", 2 - string_length(string(global.seconds))) + string(global.seconds)); } podsumowując nie wiem jak dodac odpowiednia ilosc sekund do timera Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 28 Kwietnia 2022 Administratorzy Udostępnij Opublikowano 28 Kwietnia 2022 Zakładając, że A to ilość sekund, przez którą gracz może jeszcze grać, np. 8520 sekund: liczba godzin: A div 3600 liczba minut: A div 60 mod 60 liczba sekund: A mod 60 I możesz wywalić prawie połowę kodu i ifów. Natomiast rysowanie wygląda wtedy tak: function draw_remaining_time(seconds) { _s = ""; if (seconds >= 3600) { _s += string(seconds div 3600) + " hours, "; } if (seconds >= 60) { _s += string((seconds div 60) mod 60) + " minutes, "; } return _s + string(seconds % 60) + " seconds"; } Kewin i Konrad-GM 1 1 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ę