Skocz do zawartości
Gibki Kaktus

Nie może znaleźć żadnej instancji

Rekomendowane odpowiedzi

GML
___________________________________________

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

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

FATAL ERROR in

action number 1

of Step Event0

for object bossy:

 

Unable to find any instance for object index '116115'

at gml_Object_bossy_StepNormalEvent_1 (line 63) - if distance_to_object(gracz) > dystans and distance_to_object(gracz) < 300 and atakuje=0 and hspeed=0 and ginie=0

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

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

 

O co chodzi?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Pokaż więcej kodu.

Ale z tego co rozumiem, to pomiędzy przypisaniem do 'gracz', a kodem z błędu instancja jest usuwana. Spróbuj dopisać do warunku instance_exists(gracz)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Można korzystać z tylu warunków? A weź spróbuj to skrócić. Tak, że jeden if, pod drugim ifem. Wiem, że miałem coś podobnego i chyba właśnie źle coś w ifach dałem.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Można korzystać z tylu warunków? A weź spróbuj to skrócić. Tak, że jeden if, pod drugim ifem. Wiem, że miałem coś podobnego i chyba właśnie źle coś w ifach dałem.

 

What. Możesz korzystać z ilu chcesz. Poza tym błąd wskazuje na coś innego, niż zła konstrukcja.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Można korzystać z tylu warunków ile się chce.

 

Najgorsze jest to, że 3 miesiące temu to wszystko działało..

 

@Uzjel, tam pomogło, a co z tym zrobić:

 

GML
___________________________________________

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

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

FATAL ERROR in

action number 1

of Step Eventkolizja

for object bossy:

 

Unable to find any instance for object index '116196'

at gml_Object_bossy_CollisionEvent_1 (line 19) - if random(100)<other.sz

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

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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Za każdym razem powinieneś sprawdzać czy obiekt do którego się odnosisz istnieje. Wszędzie.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Other widocznie nie istnieje w tym evencie, albo nie ma takiej zmiennej. I błąd może być przed wspomnianym kawałkiem kodu lub zaraz za - czasem kompilator się myli :)

 

Edit: a co do warunków, w GMS jak pierwszy warunek zatwierdza resztę, to nie sa sprawdzane, np.

 

if (1==2 and 2==2), pierwszy warunek jest fałszywy, to nie ma sensu sprawdzać drugiego, bo FALSE AND X zawsze da FALSE

if (1==1 or 2==3), pierwszy warunek jest prawdziwy, to nie ma sensu sprawdzać drugiego, bo TRUE OR X zawsze da TRUE

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Edit: a co do warunków, w GMS jak pierwszy warunek zatwierdza resztę, to nie sa sprawdzane, np.

 

if (1==2 and 2==2), pierwszy warunek jest fałszywy, to nie ma sensu sprawdzać drugiego, bo FALSE AND X zawsze da FALSE

if (1==1 or 2==3), pierwszy warunek jest prawdziwy, to nie ma sensu sprawdzać drugiego, bo TRUE OR X zawsze da TRUE

Pała, siadaj do ławki! :whip:

 

To o czym mówisz dzieje się tylko podczas używania Short Circuit Evaluation czyli && oraz ||. No i oczywiście włączoną tą opcją. and i or w dalszym ciągu pozwalają reszcie warunków na sprawdzenie się.

 

Tak więc dzięki temu można bez problemu robić coś takiego:

GML
if(instance_exists(other) && other.x<x)

 

 

Edit:

Wait wat??? Dałbym sobie... (albo i lepiej nie) że na początku and i or nie podlegały tym zasadom.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Threef, zawsze jak używałem and i jesli pierwszy warunek nie był spełniany to reszta nie była sprawdzana.

 

Tym razem nie pomogło:

GML
___________________________________________

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

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

FATAL ERROR in

action number 1

of Step Eventkolizja

for object bossy:

 

Unable to find any instance for object index '117042'

at gml_Object_bossy_CollisionEvent_1 (line 19) - if (instance_exists(other)) and random(100)<other.sz

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

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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Weź spróbuj wkleić ten kod ale w with(other) {...} w obiekcie z którym kolidujesz.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jak dałem with, to jeszcze szybciej jest błąd:

GML
___________________________________________

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

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

FATAL ERROR in

action number 1

of Step Eventkolizja

for object bossy:

 

Push :: Execution Error - Variable Get -1.hp(100140, -2147483648)

at gml_Object_bossy_CollisionEvent_1 (line 3) - hp-=other.atak

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

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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Kwestionowalbym posiadanie przez "other" odpowiedniego ID, ale z bledu widze ze jakiestam sobie posiada.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

HP wygląda jak niezdefiniowane.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Hp jest dobrze wczytywane jak napisze bez with().

HP jestzdefiniowane w create.

Kolizje tak robie(na takiej zasadzie)

 

GML
Atak=instace_create(kolizja,x,y)

Atak.atak=atak

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Z tego co widzę, kod masz raczej ok. Musi się coś tam dziać, czego nie przewidujesz.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Uzjel, jak juz pisalem, wczesniej wszystko dzialalo.

 

No taki blad wyskakuje jak uzywam with().

 

Jak jest bez with to mam taki blad:

 

GML
___________________________________________

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

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

FATAL ERROR in

action number 1

of Step Eventkolizja

for object bossy:

 

Unable to find any instance for object index '117042'

at gml_Object_bossy_CollisionEvent_1 (line 19) - if (instance_exists(other)) and random(100)<other.sz

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

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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

A co masz linijkę/dwie wcześniej ?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

GML
hp-=other.atak

if gracz.dhp>0 and gracz.dhp<gracz.dmaxhp

{

tu jest kod na lifesteala.

}

pas.hp=hp

if (instance_exists(other)) and random(100)<other.sz

{

czas=5

kr=other.atak

}

if other.stun>0

{

stun=1

alarm[0]=room_speed*other.stun

}

if hp<0

{

hp=0

}

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

GML
pas.hp=hp

a ten pas istnieje ?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Hm, a poniżej znów masz if na other, bez sprawdzania czy istnieje...

 

GML
if (instance_exists(other)) {

hp-=other.atak // to też przesnies z góry!!!

if random(100)<other.sz

{

czas=5;

kr=other.atak;

}

if other.stun>0

{

stun=1;

alarm[0]=room_speed*other.stun;

}

}

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Okej, to się naprawiło, ale wracamy do punktu wyjścia, bo w stepie znów coś nie tak jest..

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

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

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

 

EDIT:

 

I jeszcze wyskakuje taki błąd:

___________________________________________

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

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

FATAL ERROR in

action number 2

of Step Event0

for object gracz:

 

Unable to find any instance for object index '115651'

at gml_Object_gracz_StepNormalEvent_2 (line 42) - kol.image_speed=image_speed

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

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

 

Przy takim kodzie:

GML
cd1=cd1r*room_speed-(cd1r*dcd*room_speed)

sprite_index=a1sprit

if postac='Morderca' and dsz>99

{

sprite_index=mor_atak11

}

image_index=0

image_speed=cd1anim

atakuje=1

strzela=1

kol=instance_create(x,y,nic)

kol.sprite_index=k1

kol.image_speed=image_speed

kol.image_xscale=image_xscale

kol.atak=a1+a1*da

kol.sz=0

kol.stun=0

kol.o=0

kol.typ=cd1typ

kol.pan=id

 

audio_play_sound(sound1,1,0)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

gracz jest obiektem czy przypisujesz sobie gracz = obj_gracz; ?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Chyba nie podałeś całego kodu, bo to nie jest linijka 42, tylko 14. I STAWIAJ PROSZĘ ŚREDNIKI!!!!

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

W takim razie nie tego obiektu, bo błąd jest ewidetnie gdzie indziej (kolcek nr. 3, linia 42, event step obiektu gracz).

 

Średniki kończą wyrażenie i zapobiegają łączeniu się ich. Większość języków bez tego uznaje ciągłość, GM:S próbuje je dostawiać sam.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Tego obiektu. W kodzie to jest 42 linijka. Ale ja tu sam kod ataku wkleilem. Wyzej sa same komentarze i nic nie wnoszoce do ataku rzeczy. Okej, zaczne uzywac srednika.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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.

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

×