Skocz do zawartości

Respawn gracza - problem z odliczniem


Luksor

Rekomendowane odpowiedzi

Otóż planuję stworzyć w mojej grze respawn graczy. Po krótce jak to ma działać:

 

-Ktoś cię zabił, masz 0 życia więc stajesz się spectatorem. < działa

--Podczas bycia spectatorem odlicza się czas do respawnu. < w tym jest błąd

---Następnie jesteś respawnowany. < to też raczej działa bo zrobiłem żeby był respawn na shifcie i dzialalo

 

Czyli to odliczanie... może najlepiej podam kody i trochę objaśnię.

 

GML
STEP

...

 

if hp<=0 && global.spectate=false {

killme();

alarm[2]=room_speed;

}

 

...

Jeśli masz 0 życia i nie jesteś specem uruchamia się skrypt killme i alarm odliczający.

 

GML
SKRYPT KILLME

 

o_mousepositioner.x=objPlayer.x;

o_mousepositioner.y=objPlayer.y;

global.spectate=true;

global.respawn=10;

hp=100;

sound_play(sound3);

Stajesz się spectatorem, ustawia się czas respawnu i życie na max.

 

GML
ALARM2

 

if global.spectate=true //jesli jestes spectatorem

{

alarm[2]=room_speed; //powtorz ten alarm

global.respawn-=1; //odlicz sekunde

if global.respawn=0 //jesli jest 0 sekund respawnuj

{

global.spectate=false;

x=32;

y=32;

}

}

 

Bardzo proszę o pomoc nie wiem gdzie zrobiłem błąd że skrypt nie odlicza sekund. Cały czas mam napis

Respawn za 10 sekund.

 

Pozdrawiam i życzę Wesołych Świąt! :bye1:

Odnośnik do komentarza
Udostępnij na innych stronach

Ja mam takie skrypty i u mnie działa:

 

GML
Create

 

hp=0;

global.spectate=false;

global.respawn=0;

 

GML
Alarm 2

 

if global.spectate=true

{

alarm[2]=room_speed;

global.respawn-=1;

if global.respawn=0

{

global.spectate=false;

x=o_mousepositioner.x;

y=o_mousepositioner.y;

}

}

 

GML
Step

 

if hp<=0 && global.spectate=false {

killme();

alarm[2]=room_speed;

}

 

GML
Draw

 

draw_text(x,y,string(global.respawn));

 

GML
killme

 

global.spectate=true;

global.respawn=10;

hp=100;

Odnośnik do komentarza
Udostępnij na innych stronach

To są praktycznie te same skrypty, musiałem coś sknocić gdzieś indziej. <_< Dzięki za pomoc. ;)

 

EDIT: Znalazłem błąd! W stepie miałem zapewne przypadkowo umieszczony warunek: if global.spectate=true alarm[2]=room_speed; czyli alarm się ciągle zaczynał od początku czy jakoś tak, ważne że po skasowaniu wszystko działa. :jezor:

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ę...