Skocz do zawartości

problem z alarmem, który aktywuje kolejny alarm


Rekomendowane odpowiedzi

Witajcie, mam alarm[1] w którym mam następujący kod:

GML
repeat(14)

{

if global.b=1

{

ds_list_sort(global.ddd1,true)

if !ds_list_empty(global.ddd1)

{

if global.k < ds_list_find_index(global.lista_d,ds_list_find_value(global.ddd1,0))+2

{

with(dzwonek)

if image_index=ds_list_find_value(global.ddd1,0)

{

instance_destroy()

action_kill_position(1500,800)

ds_list_delete(global.ddd1,0)

 

global.k=0

global.b=0

 

repeat(ds_list_size(global.burdel))

{

ds_list_add(global.ddd1,ds_list_find_value(global.burdel,0))

ds_list_delete(global.burdel,0)

ds_list_sort(global.burdel,true)

}

ds_list_sort(global.ddd1,true)

}

}

else

{

ds_list_add(global.burdel,ds_list_find_value(global.ddd1,0))

ds_list_delete(global.ddd1,0)

}

}

}

}

//////////////////////////////////////////////////////////////////

repeat(14)

{

if global.b=2

{

ds_list_sort(global.sss1,true)

if !ds_list_empty(global.sss1)

{

if global.k < ds_list_find_index(global.lista_s,ds_list_find_value(global.sss1,0))+2

{

with(dzwonek)

if image_index=ds_list_find_value(global.sss1,0)

{

instance_destroy()

action_kill_position(1500,800)

ds_list_delete(global.sss1,0)

 

global.k=0

global.b=0

 

repeat(ds_list_size(global.burdel))

{

ds_list_add(global.sss1,ds_list_find_value(global.burdel,0))

ds_list_delete(global.burdel,0)

ds_list_sort(global.burdel,true)

}

ds_list_sort(global.sss1,true)

}

}

else

{

ds_list_add(global.burdel,ds_list_find_value(global.sss1,0))

ds_list_delete(global.sss1,0)

}

}

}

/////////////////////////////////////////////////////////////////////

repeat(14)

{

if global.b=3

{

ds_list_sort(global.www1,true)

if !ds_list_empty(global.www1)

{

if global.k < ds_list_find_index(global.lista_w,ds_list_find_value(global.www1,0))+2

{

with(dzwonek)

if image_index=ds_list_find_value(global.www1,0)

{

instance_destroy()

action_kill_position(1500,800)

ds_list_delete(global.www1,0)

 

global.k=0

global.b=0

repeat(ds_list_size(global.burdel))

{

ds_list_add(global.www1,ds_list_find_value(global.burdel,0))

ds_list_delete(global.burdel,0)

ds_list_sort(global.burdel,true)

}

ds_list_sort(global.www1,true)

}

}

else

{

ds_list_add(global.burdel,ds_list_find_value(global.www1,0))

ds_list_delete(global.www1,0)

}

}

}

/////////////////////////////////////////////////////////////////////

repeat(13)

{

if global.b=4

{

ds_list_sort(global.zzz1,true)

if !ds_list_empty(global.zzz1)

 

{

if global.k < ds_list_find_index(global.lista_z,ds_list_find_value(global.zzz1,0))+2

{

with(dzwonek)

if image_index=ds_list_find_value(global.zzz1,0)

{

instance_destroy()

action_kill_position(1500,800)

ds_list_delete(global.zzz1,0)

 

global.k=0

global.b=0

repeat(ds_list_size(global.burdel))

{

ds_list_add(global.zzz1,ds_list_find_value(global.burdel,0))

ds_list_delete(global.burdel,0)

ds_list_sort(global.burdel,true)

}

ds_list_sort(global.zzz1,true)

}

}

else

{

ds_list_add(global.burdel,ds_list_find_value(global.zzz1,0))

ds_list_delete(global.zzz1,0)

}

}

}

}

}

}

 

//OD TĄD DZIAŁA//

global.o=0

 

if global.k>0

{

repeat(14)

if position_empty(2300,1050-global.o)

{

nowa_karta = instance_create(2300,1100-global.o,dzwonek)

nowa_karta.image_angle=90

nowa_karta.moj_numer = ds_list_find_index(global.lista, global.i)

nowa_karta.image_index = ds_list_find_index(global.lista, global.i)

global.i+=1

if global.i=55

{

with(object1)

sprite_delete(0)

exit

}

alarm[2]=15

exit;

}

else

{

global.o+=50

}

}

 

i teraz kod działa tak jak bym chciał, ale alarm[2] się nie włącza w żadnym z tych kawałków kodu oprócz ostatniego (tego od napisu://OD TĄD DZIAŁA//). Dlaczego tak jest? Wiem, że kod działa tylko komenda alarm[2]=15 nie wiem dlaczego nie chce się uruchomić.

Odnośnik do komentarza
Udostępnij na innych stronach

Nie widzę nigdzie alarm[2] poza ostatnim kawałkiem kodu. Tak ma być?

 

Alarm ogólnie działa jako licznik który co step zmniejsza się do momentu gdy osiągnie -1 na którym się zatrzyma a przy 0 wywoła event.

 

Widzę 2 potencjalne błędy:

Albo non stop ustawiasz alarm[2]=15 przez co nigdy się nie wykona bo ciągle jest 15. To jest bardzo częsty błąd.

Albo exit w twoim kodzie sprawia że reszta kodu, w tym ustawienie alarmu, się nie odbywa. exit w GM nie kończy bloku kodu a cały skrypt albo event.

Odnośnik do komentarza
Udostępnij na innych stronach

kurcze sorki :D przed skopiowaniem usunąłem inne komendy ale z tego co mówisz to najwyraźniej popełniam ten pierwszy błąd.

 

GML
repeat(14)

{

if global.b=1

{

ds_list_sort(global.ddd1,true)

if !ds_list_empty(global.ddd1)

{

if global.k < ds_list_find_index(global.lista_d,ds_list_find_value(global.ddd1,0))+2

{

with(dzwonek)

if image_index=ds_list_find_value(global.ddd1,0)

{

instance_destroy()

action_kill_position(1500,800)

ds_list_delete(global.ddd1,0)

alarm[2]=15

 

if position_empty(1500,800)

{

repeat(ds_list_size(global.burdel))

{

ds_list_add(global.ddd1,ds_list_find_value(global.burdel,0))

ds_list_delete(global.burdel,0)

ds_list_sort(global.burdel,true)

}

}

ds_list_sort(global.ddd1,true)

 

}

}

else

{

ds_list_add(global.burdel,ds_list_find_value(global.ddd1,0))

ds_list_delete(global.ddd1,0)

}

}

}

}

//////////////////////////////////////////////////////////////////

repeat(14)

{

if global.b=2

{

ds_list_sort(global.sss1,true)

if !ds_list_empty(global.sss1)

{

if global.k < ds_list_find_index(global.lista_s,ds_list_find_value(global.sss1,0))+2

{

with(dzwonek)

if image_index=ds_list_find_value(global.sss1,0)

{

instance_destroy()

action_kill_position(1500,800)

ds_list_delete(global.sss1,0)

alarm[2]=15

 

if position_empty(1500,800)

{

repeat(ds_list_size(global.burdel))

{

ds_list_add(global.sss1,ds_list_find_value(global.burdel,0))

ds_list_delete(global.burdel,0)

ds_list_sort(global.burdel,true)

}

}

ds_list_sort(global.sss1,true)

 

}

}

else

{

ds_list_add(global.burdel,ds_list_find_value(global.sss1,0))

ds_list_delete(global.sss1,0)

}

}

}

/////////////////////////////////////////////////////////////////////

repeat(14)

{

if global.b=3

{

ds_list_sort(global.www1,true)

if !ds_list_empty(global.www1)

{

if global.k < ds_list_find_index(global.lista_w,ds_list_find_value(global.www1,0))+2

{

with(dzwonek)

if image_index=ds_list_find_value(global.www1,0)

{

instance_destroy()

action_kill_position(1500,800)

ds_list_delete(global.www1,0)

alarm[2]=15

 

if position_empty(1500,800)

{

repeat(ds_list_size(global.burdel))

{

ds_list_add(global.www1,ds_list_find_value(global.burdel,0))

ds_list_delete(global.burdel,0)

ds_list_sort(global.burdel,true)

}

}

ds_list_sort(global.www1,true)

 

}

}

else

{

ds_list_add(global.burdel,ds_list_find_value(global.www1,0))

ds_list_delete(global.www1,0)

}

}

}

/////////////////////////////////////////////////////////////////////

repeat(13)

{

if global.b=4

{

ds_list_sort(global.zzz1,true)

if !ds_list_empty(global.zzz1)

 

{

if global.k < ds_list_find_index(global.lista_z,ds_list_find_value(global.zzz1,0))+2

{

with(dzwonek)

if image_index=ds_list_find_value(global.zzz1,0)

{

instance_destroy()

action_kill_position(1500,800)

ds_list_delete(global.zzz1,0)

alarm[2]=15

 

if position_empty(1500,800)

{

repeat(ds_list_size(global.burdel))

{

ds_list_add(global.zzz1,ds_list_find_value(global.burdel,0))

ds_list_delete(global.burdel,0)

ds_list_sort(global.burdel,true)

}

}

ds_list_sort(global.zzz1,true)

 

}

}

else

{

ds_list_add(global.burdel,ds_list_find_value(global.zzz1,0))

ds_list_delete(global.zzz1,0)

}

}

}

}

}

}

 

 

global.o=0

 

if global.k>0 and !position_empty(1500,800)

{

repeat(14)

if position_empty(2300,1050-global.o)

{

nowa_karta = instance_create(2300,1100-global.o,dzwonek)

nowa_karta.image_angle=90

nowa_karta.moj_numer = ds_list_find_index(global.lista, global.i)

nowa_karta.image_index = ds_list_find_index(global.lista, global.i)

global.i+=1

if global.i=55

{

with(object1)

sprite_delete(0)

exit

}

alarm[2]=15

exit;

}

else

{

global.o+=50

}

}

 

Tu jest poprawiony :)

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