Skocz do zawartości

Po zmianie roomu unknow variable


Jeremiah

Rekomendowane odpowiedzi

Witam, chciałbym prosić o pomoc w rozwiązaniu pewnego dziwnego problemu:

 

1. Mam główny obiekt (hero). W create ma:

 

b_id=0;

h_t=instance_create(x,y,h_tarcza);

h_t.szef=self.id;

 

2. W powstałym obiekcie mam między innymi (w step):

 

if szef.b_id=0 { i tak dalej... }

 

PS Podobnych odwołań mam więcej, usunięcie tej linijki powoduje tylko przejście problemu do następnej...

 

3. Zmiana roomu powstaje poprzez wciśnięcie enter w kolizji z innym obiektem:

 

if x=133&&room=City1

{

other.x=590;

other.y=350;

room=Gosp1;

}

 

4. Podczas zmiany roomu pojawia się problem:

 

Unknown variable b_id

 

Potem wystarczy dać ignore i wszystko gra :D

 

Nie wiem z czym to jest związane. Jeżeli zamiast "szef" wpisałbym "hero" to wszystko gra -_- niby mogę zaznaczyć w ustawieniach GM, żeby mi nieznane zmienne ustawiało jako '0", ale podczas dalszej pracy mogę mieć problemy i nie zauważyć, że jakaś zmienna nie jest zdefiniowana. Poza tym chciałbym poznać naturę problemu.

 

Proszę o pomoc, bo nie potrafię skumać co tu może być nie tak -_-

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

a przy zmianie roomu się czasem nie zmieniają id obiektów ?

Dodaj w zdarzeniu room start dla h_tarcza:

GML
show_message(string(hero.id) + '/' + string(szef));

 

Poza tym, jeśli hero jest jeden, to nie ma sensu ustawianie szefa, tylko własnie korzystanie z hero.

Odnośnik do komentarza
Udostępnij na innych stronach

Gnysek - ID się nie zmienia. A ustawiam szefa, bo pewnie kilku herosów będzie, chcę mieć robotę po prostu ułatwioną ;)

 

Zrobiłem na próbę, że po przyciśnięciu klawisza s zmienia się room bez zmiany x i y hero. Żaden problem się nie pojawia. Sęk w tym, że wtedy bohater znajduje się w różnych dziwnych miejscach ;)

 

Dalej (też ciekawe).

 

W create h_tarcza dopisałem b_id=10, z kolei w step if variable_local_exists(b_id). Wtedy działa, przy if variable_local_exists(szef.b_id) są problemy... nie kumam -_-

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

Czy czasem obiekty się nie duplikują przez to, że roomy mają presistence? Wydaje mi się, że tak własnie się dzieje - bo zachowujesz obiekty w roomie, ale je też przenosisz do następnego, w którym mozliwe, ze były już zapamiętane. Pytanie, czy błąd pojawia się przy wejściu do rooma, czy przy wyjsciu z poprzedniego.

Ogólnie, to odradzam korzystanie z presistance. Fakt, ze trzeba troche wiecej kodu czasem napisac, ale od tego są struktury danych, zeby np. spakować wszystko co potrzebujesz w nie i potem odtworzyc w nowej planszy.

Odnośnik do komentarza
Udostępnij na innych stronach

Hm... fakt, wyłączenie persistent roomów spowodowało zniknięcie problemu. Sęk w tym, że o strukturach danych słyszę pierwszy raz. To wybitnie skomplikowanie? Czy trzeba będzie wyłączyć persistence roomów i obiektów, czy tylko obiektó/roomów?

 

Jeśli to nie problem, jak wyglądałby kod na np. przeniesienie obiektu "hero" ze zmiennymi "x" i "byleco"?

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