Skocz do zawartości
Gibki Kaktus

Nie może znaleźć żadnej instancji

Rekomendowane odpowiedzi

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.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

przy with, other to będzie obiekt wywołujący:

 

image_speed=other.image_speed;

image_xscale=other.image_xscale;

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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)) {

################################################################################

############

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

czy mozesz linijkę wcześniej wpisać show_debug_message(string(gracz)) i skopiować co wywaliło w compile logu ?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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))

################################################################################

############

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Masz coś źle poprzypisywane do tych zmiennych.

 

show_debug_message(string(instance_exists(gracz))) też się wywala ?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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ć?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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

################################################################################

############

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

To może błąd GMa który w złym miejscu Ci błąd pokazuje?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Bo w następnej linijce jest błąd? Ciężko stwierdzić nie mając całości, chociaż pewnie błąd jest trywialny.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

No i teraz pytanie, czy go nie usuwasz gdzieś.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Usuwam.

 

E: Zmieniłem, że zamiast usuwania staje się nie widoczny, działa. Dzięki.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

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

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×