Skocz do zawartości

timer


Kewin

Rekomendowane odpowiedzi

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

  • Administratorzy

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";

}

 

Odnośnik do komentarza
Udostępnij na innych stronach

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ę
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...