Uzjel Opublikowano 12 Marca 2015 Udostępnij Opublikowano 12 Marca 2015 To ja tylko dodam od siebie, że z średnikami wszystko ładniej wygląda. A tak to bym sprawdził czy zadziała jak tak zrobisz GML image_index=0; image_speed=cd1anim; atakuje=1; strzela=1; kol=instance_create(x,y,nic); with(kol) { sprite_index=k1; image_speed=image_speed; image_xscale=image_xscale; atak=a1+a1*da; sz=0; stun=0; o=0; typ=cd1typ; pan=id; } Przyznam się, że nie pamiętam jak zadziała takie image_speed=image_speed. Czy przypiszę wartość gracza, czy kol. Ewentualnie self dodaj ;x Bo wychodzi na to, że we wcześniejszych przypisaniach, wszystko działa. WTF Sutikku. Zwróć uwagę, że celem Boada jest dziedziczenie image_speed i image_xscale, ten kod nie zadziała poprawnie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 12 Marca 2015 Administratorzy Udostępnij Opublikowano 12 Marca 2015 przy with, other to będzie obiekt wywołujący: image_speed=other.image_speed; image_xscale=other.image_xscale; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gibki Kaktus Opublikowano 12 Marca 2015 Autor Udostępnij Opublikowano 12 Marca 2015 Okej, działa, dzięki, teraz jeszcze powrót do pierwszej sprawy, czyli tego błędu: GML ___________________________________________ ################################################################################ ############ FATAL ERROR in action number 1 of Step Event0 for object bossy: Unable to find any instance for object index '116040' at gml_Object_bossy_StepNormalEvent_1 (line 62) - if (instance_exists(gracz)) { ################################################################################ ############ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 12 Marca 2015 Administratorzy Udostępnij Opublikowano 12 Marca 2015 czy mozesz linijkę wcześniej wpisać show_debug_message(string(gracz)) i skopiować co wywaliło w compile logu ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gibki Kaktus Opublikowano 12 Marca 2015 Autor Udostępnij Opublikowano 12 Marca 2015 Jak to wpisałem, to mam jeden z tych błędów, jak bossa zabije. Jak nie, to wszystko działa. A gracz nie znika po zabiciu bossa.. ___________________________________________ ################################################################################ ############ FATAL ERROR in action number 1 of Step Eventkolizja for object bossy: Unable to find any instance for object index '116184' at gml_Object_bossy_CollisionEvent_1 (line 33) - if other.o>0 and ginie=0 ################################################################################ ############ ___________________________________________ ################################################################################ ############ FATAL ERROR in action number 1 of Step Event0 for object bossy: Unable to find any instance for object index '115993' at gml_Object_bossy_StepNormalEvent_1 (line 62) - show_debug_message(string(gracz)) ################################################################################ ############ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 12 Marca 2015 Administratorzy Udostępnij Opublikowano 12 Marca 2015 Masz coś źle poprzypisywane do tych zmiennych. show_debug_message(string(instance_exists(gracz))) też się wywala ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gibki Kaktus Opublikowano 12 Marca 2015 Autor Udostępnij Opublikowano 12 Marca 2015 GML ___________________________________________ ################################################################################ ############ FATAL ERROR in action number 1 of Step Eventkolizja for object bossy: Unable to find any instance for object index '116061' at gml_Object_bossy_CollisionEvent_1 (line 33) - if other.o>0 and ginie=0 ################################################################################ ############ ___________________________________________ ################################################################################ ############ FATAL ERROR in action number 1 of Step Event0 for object bossy: Unable to find any instance for object index '116019' at gml_Object_bossy_StepNormalEvent_1 (line 62) - show_debug_message(string(instance_exists(gracz))) ################################################################################ ############ Dalej to samo. Gracz to obiekt a nie zmienna, więc tutaj źle przypisać się nie da. A zmienne są dobrze. Wszystko normalnie działa, dopiero jak boss ginie wyskakują te błędy. Już pomijam fakt, że 3 miesiące temu jak bawiłem się z tym kodem, wszystko perfekcyjnie działało. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 12 Marca 2015 Udostępnij Opublikowano 12 Marca 2015 Ja pamiętam, że kiedy wywoływałem funkcje właśnie instance_exists(), variable_exists(), wywalało błędy, jeśli obiektu nie było. Gdzieś kiedyś znalazłem coś takiego: if( string( ds_map_find_value( mapa, "wartosc" ) ) == "0" ) Ale to tylko gdybyś potrzebował czegoś takiego na gwałt. I nawet nie wiem czy to nadal działa. A tak teoretycznie, czy jego index się może nagle zmienić? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gibki Kaktus Opublikowano 12 Marca 2015 Autor Udostępnij Opublikowano 12 Marca 2015 Hmmm... Postanowiłem, że obejdę ten cały system wykrywania i dałem przed tym kodem if ginie=0. Warto wspomnieć, że ta zmienna istnieje już od dawna, obiekt bossy nie jest wgl niszczony, jest cały czas i wyskakuje mi coś takiego: GML ___________________________________________ ################################################################################ ############ FATAL ERROR in action number 1 of Step Event0 for object bossy: Unable to find any instance for object index '116087' at gml_Object_bossy_StepNormalEvent_1 (line 62) - if ginie=0 ################################################################################ ############ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 12 Marca 2015 Udostępnij Opublikowano 12 Marca 2015 To może błąd GMa który w złym miejscu Ci błąd pokazuje? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 13 Marca 2015 Administratorzy Udostępnij Opublikowano 13 Marca 2015 Albo masz nazwane zmienne/stałe tak samo jak obiekty. Ciężko powiedzieć bez projektu, ale definitywnie źle przypisujesz do tych zmiennych. I te indexy takie małe, GM zazwyczaj daje chyba wyższe ID dla instancji (chyba, że to zmienili). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gibki Kaktus Opublikowano 13 Marca 2015 Autor Udostępnij Opublikowano 13 Marca 2015 Da się przeszukać kod we wszystkich obiektach na raz szukając czegoś? Indeksy takie są od dawna. Ale wątpię, żebym przypisywał takie same zmienne, tym bardziej, że dosłownie, wszystko działało, rzucam GM:S na chyba 2 miesiące, nic nie zmieniam wgl i takie błędy się pojawiają. I dlaczego to działa normalnie, działa, a gdy zmienna ginie jest zmieniana z 0 na coś innego wtedy wywala te błędy? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 13 Marca 2015 Administratorzy Udostępnij Opublikowano 13 Marca 2015 Bo w następnej linijce jest błąd? Ciężko stwierdzić nie mając całości, chociaż pewnie błąd jest trywialny. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gibki Kaktus Opublikowano 13 Marca 2015 Autor Udostępnij Opublikowano 13 Marca 2015 W create tylko zmienne są, to chyba nie ma co dawać. Alarm[0] GML stun=0 Step GML if hp<1 { if kol!=0 { kol.niszcz=1 } if ginie=0 { ginie=1 sprite_index=sprit_ginie image_speed=0.4 image_index=0 } } oberwal-=1 if hspeed>0 { hspeed-=0.2 } if hspeed<0 { hspeed+=0.2 } czekaj-=1 zmien-=1 if place_free(x,y+1) {gravity = 0.5} else {gravity = 0} if czas>0 and pozostalo<1 and ginie=0 { kre=instance_create(x,y,krew) kre.sprite_index=krewka kre.pan=id kre.niszcz=0 hp-=kr pas.hp=hp if hp<1 { typ=2 } czas-=1 pozostalo=1*room_speed } if pozostalo>0 { pozostalo-=1 } if hp<0 { hp=0 } if ginie!=0 { pas.niszcz=1 } if ginie=0 { if distance_to_object(gracz) > dystans and distance_to_object(gracz) < 300 and atakuje=0 and hspeed=0 and ginie=0 { if gracz.x+15<x and distance_to_object(stop) > spd { if place_free(x-spd,y) {x-=spd} } if gracz.x-15>x and distance_to_object(stop1) > spd { if place_free(x+spd,y) {x+=spd} } if gracz.x<x { image_xscale=-1 } else { image_xscale=1 } image_speed=ispd } } if spdd=0 and ginie=0 { if gracz.x<x { image_xscale=-1 } else { image_xscale=1 } } if spdd=0 and stun=0 and ginie=0 { tpp-=1 if tpp<0 { tpp=tp if irandom(2)=1 { x=gracz.x+dystans } else { x=gracz.x-dystans } y=gracz.y+15 vspeed=0 } } if distance_to_object(gracz) > 300 and stun=0 and atakuje=0 and spd>0 and hspeed=0 and ginie=0 { if zmien<1 and vspeed=0 { zmien=random(2*room_speed) kierunek=irandom(2) } if zmien>0 { if kierunek=1 { image_xscale=-1 if place_free(x-spd,y) {x-=spd/2} image_speed=ispd } else { image_xscale=1 if place_free(x+spd,y) {x+=spd/2} image_speed=ispd } } } moze1-=1 moze2-=1 moze3-=1 if distance_to_object(gracz) <= dystans3+5 and atakuje=0 and stun=0 and hspeed=0 and ginie=0 and moze3<0 and vspeed=0 and gracz.image_alpha=1 { moze3=coile3*room_speed if sprit=szaman_idzie { kol=instance_create(x,y-200,duzyglaz) kol.pan=id } if z3=0 { image_index=0 } if ispd>0.5 { image_speed=0.6 } sprite_index=sprit_atak3 if sprite_index=spr_szkieleton_atak3 { rekizziemi.moze=1 rekizziemi2.moze=1 } kol=instance_create(x,y,kolizjaw) kol.sprite_index=kola3 kol.image_speed=0.6 kol.image_xscale=image_xscale kol.pan=id kol.atak=atak3 kol.sz=sz3 kol.o=o3 kol.p=p3 kol.niszcz=0 kol.n=n3 if twa3=1 { a3=instance_create(x,y,atakw) a3.sprite_index=kola3 a3.image_xscale=image_xscale a3.image_speed=0.6 a3.xx=x a3.yy=y } atakuje=1 } if distance_to_object(gracz) <= dystans2+5 and atakuje=0 and stun=0 and hspeed=0 and ginie=0 and moze2<0 and vspeed=0 and gracz.image_alpha=1 { moze2=coile2*room_speed if sprit=szaman_idzie { kol=instance_create(x+irandom(30),y,sredniglaz) kol.pan=id kol=instance_create(x-irandom(30),y,sredniglaz) kol.pan=id kol=instance_create(x+irandom(30),y,sredniglaz) kol.pan=id kol=instance_create(x-irandom(30),y,sredniglaz) kol.pan=id } if z2=0 { image_index=0 } if ispd>0.5 { image_speed=0.6 } sprite_index=sprit_atak2 kol=instance_create(x,y,kolizjaw) kol.sprite_index=kola2 kol.image_speed=0.6 kol.image_xscale=image_xscale kol.pan=id kol.atak=atak2 kol.sz=sz2 kol.o=o2 kol.p=p2 kol.niszcz=0 kol.n=n2 if twa2=1 { a2=instance_create(x,y,atakw) a2.sprite_index=kola2 a2.image_xscale=image_xscale a2.image_speed=0.6 a2.xx=x a2.yy=y } atakuje=1 } if distance_to_object(gracz) <= dystans1+5 and atakuje=0 and stun=0 and hspeed=0 and ginie=0 and moze1<0 and vspeed=0 and gracz.image_alpha=1 { moze1=coile1*room_speed if sprit=szaman_idzie { kol=instance_create(x+irandom(30),y,malyglaz) kol.pan=id kol=instance_create(x+irandom(30),y,malyglaz) kol.pan=id kol=instance_create(x+irandom(30),y,malyglaz) kol.pan=id kol=instance_create(x+irandom(30),y,malyglaz) kol.pan=id kol=instance_create(x+irandom(30),y,malyglaz) kol.pan=id kol=instance_create(x+irandom(30),y,malyglaz) kol.pan=id kol=instance_create(x+irandom(30),y,malyglaz) kol.pan=id kol=instance_create(x+irandom(30),y,malyglaz) kol.pan=id kol=instance_create(x-irandom(30),y,malyglaz) kol.pan=id kol=instance_create(x-irandom(30),y,malyglaz) kol.pan=id kol=instance_create(x-irandom(30),y,malyglaz) kol.pan=id kol=instance_create(x-irandom(30),y,malyglaz) kol.pan=id kol=instance_create(x-irandom(30),y,malyglaz) kol.pan=id kol=instance_create(x-irandom(30),y,malyglaz) kol.pan=id kol=instance_create(x-irandom(30),y,malyglaz) kol.pan=id } if z1=0 { image_index=0 } if ispd>0.5 { image_speed=0.6 } sprite_index=sprit_atak1 kol=instance_create(x,y,kolizjaw) kol.sprite_index=kola1 kol.image_speed=0.6 kol.image_xscale=image_xscale kol.pan=id kol.atak=atak1 kol.sz=sz1 kol.o=o1 kol.p=p1 kol.niszcz=0 kol.n=n1 if twa1=1 { a1=instance_create(x,y,atakw) a1.sprite_index=kola1 a1.image_xscale=image_xscale a1.image_speed=0.6 a1.xx=x a1.yy=y } atakuje=1 } if stun=1 and s=0 { s=instance_create(x,y-yp,stunik) s.pan=id s.niszcz=0 } if s!=0 { if stun=0 or ginie!=0 { s.niszcz=1 } } if stun=0 { spd=spdd } else { spd=0 } if ginie=2 { kul=instance_create(x,y,expkul) kul.xx=irandom(20) kul.yy=irandom(20) kul.ex=ex/3 kul.c=irandom(30) kul=instance_create(x,y,expkul) kul.xx=irandom(20) or irandom(20)*-1 kul.yy=irandom(20) kul.ex=ex/3 kul.c=irandom(30) kul=instance_create(x,y,expkul) kul.xx=irandom(20)*-1 kul.yy=irandom(20) kul.ex=ex/3 kul.c=irandom(30) if kre>0 { kre.niszcz=1 } instance_create(x,y-64,item) ginie=3 } End step GML if kre!=0 { kre.x=x kre.y=y } if s!=0 { s.x=x s.y=y-yp } if a1!=0 and ru1=1 { a1.x=x a1.y=y } if a2!=0 and ru2=1 { a2.x=x a2.y=y } if a3!=0 and ru3=1 { a3.x=x a3.y=y } Kolizja kolizja GML if ginie=0 { if (instance_exists(other)) { if random(100)<other.sz { czas=5; kr=other.atak; } if other.stun>0 { stun=1; alarm[0]=room_speed*other.stun; } hp-=other.atak if gracz.dhp>0 and gracz.dhp<gracz.dmaxhp { gracz.dhp+=other.atak*gracz.dls if gracz.dhp>gracz.dmaxhp { gracz.dhp=gracz.dmaxhp } } else { gracz.podsthp+=other.atak*gracz.dls if gracz.podsthp>gracz.podstmaxhp { gracz.podsthp=gracz.podstmaxhp } pas.hp=hp } if other.o>0 and ginie=0 { if ginie=0 { if other.image_xscale=-1 { hspeed=-other.o } else { hspeed=other.o } } else { if other.o>2 { if other.image_xscale=-1 { hspeed=-other.o } else { hspeed=other.o } } } } oberwal=10 } } Animation end GML if ginie=0 { if przestan=1 { image_speed=0 } atakuje=0 sprite_index=sprit } else { ginie=2 image_index-=1 image_speed=0 gracz.bossjest=10 } Reszty kolizji nie ma co wstawiać, bo nie mają z tym nic wspólnego. Wiem, że kod jest napisany beznadziejnie, musicie mi to wybaczyć. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 13 Marca 2015 Administratorzy Udostępnij Opublikowano 13 Marca 2015 Co to jest pas ? Może to jest przyczyną. Btw. ucz się: GML repeat(15) { kol=instance_create(x+irandom_range(-30, 30),y,malyglaz); kol.pan=id; } zamiast GML kol=instance_create(x+irandom(30),y,malyglaz) kol.pan=id kol=instance_create(x+irandom(30),y,malyglaz) kol.pan=id kol=instance_create(x+irandom(30),y,malyglaz) kol.pan=id kol=instance_create(x+irandom(30),y,malyglaz) kol.pan=id kol=instance_create(x+irandom(30),y,malyglaz) kol.pan=id kol=instance_create(x+irandom(30),y,malyglaz) kol.pan=id kol=instance_create(x+irandom(30),y,malyglaz) kol.pan=id kol=instance_create(x+irandom(30),y,malyglaz) kol.pan=id kol=instance_create(x-irandom(30),y,malyglaz) kol.pan=id kol=instance_create(x-irandom(30),y,malyglaz) kol.pan=id kol=instance_create(x-irandom(30),y,malyglaz) kol.pan=id kol=instance_create(x-irandom(30),y,malyglaz) kol.pan=id kol=instance_create(x-irandom(30),y,malyglaz) kol.pan=id kol=instance_create(x-irandom(30),y,malyglaz) kol.pan=id kol=instance_create(x-irandom(30),y,malyglaz) kol.pan=id Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gibki Kaktus Opublikowano 13 Marca 2015 Autor Udostępnij Opublikowano 13 Marca 2015 Wiem, kod był pisane prawie rok temu, gdzie jeszcze nie chciałem nawet się uczyć nowych funkcji. Pas to id paska bossa. W create jest tworzony. GML pas=instance_create(gracz.x,gracz.y,pasekbossa) pas.hp=hp pas.maxhp=maxhp pas.ile=hp pas.odj=1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 13 Marca 2015 Administratorzy Udostępnij Opublikowano 13 Marca 2015 No i teraz pytanie, czy go nie usuwasz gdzieś. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gibki Kaktus Opublikowano 13 Marca 2015 Autor Udostępnij Opublikowano 13 Marca 2015 Usuwam. E: Zmieniłem, że zamiast usuwania staje się nie widoczny, działa. Dzięki. 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ę