Skocz do zawartości

Cholipne"room_goto(blabla)" w gm 5.3a


Rekomendowane odpowiedzi

Hmm, to chyba dopiero mój pierwszy post i temat na tym forum ;).

 

Ale przejdźmy do rzeczy.

Cały mój problem obraca się wokół jednej głupiej komendy "room_goto(blabla)".

Otóż mam problem natury wartości, gdyż ta komenda nie jest w stanie pobrać... Albo inaczej.

Próbuje tą komende na kilka sposobów napisać:

1 - room_goto(LE00) (Nazwa etapu)

2 - room_goto('LE00') (Nazwa etapu w 'x')

3 - room_goto(global.go) (Wartość z nazwą etapu)

4 - room_goto(real(global.go)) (Wartość z nazwą etapu)

5 - room_goto(string(global.go)) (wartość z nazwą etapu)

6 - room_goto(go) (wartość z nazwą etapu w tym samym obiekcie)

 

1 - Jedyny który działał. Zastanawiające dlaczego, ponieważ nazwa według mnie powinna raczej znajdować się pomiędzy '', ale miejsza o to.

2 - Nic. Tak samo jak room_restart()(czy jakoś)

3 - To samo co wyżej.

4 - To oczywiście absurd, skoro nazwa etapu była formacie string, to co tu robi "real()". Ale mając doświadczenie w clickach, lepiej coś takiego sprawdzić. To samo co wyżej.

5 - To samo co w 2

6 - To samo co wyżej

 

I na podstawie tego experymentu, doszedłem do wniosku, iż funkcja "room_goto(x)" nie jest w stanie pobierać wartości z wartości "x"(tzn. jeśli zamiast x'a mamy global.go a global.go='LE00', to ta komenda weźmie "global.go" nie jako wartość, ale jako nazwe etapu!).

 

Tak więc jeśli ktoś wie co robiłem źle/jak to ominąć/czym zastąpić to niech mi powie, bo niechce mi siętego robić o tak:

[...]

if global.go=0{room_goto(LE00)}

if global.go=1{room_goto(LE01)}

if global.go=2{room_goto(LE02)}

if global.go=3{room_goto(LE03)}

[...]

 

Dobrze, troche się rozpisałem, ale cóź. Kulkis II czega na wykończenie, a to jest jedna z niewielu rzeczy, pozostałych do ukończenia ;). Tak więc żegnam

Odnośnik do komentarza
Udostępnij na innych stronach

Ale u mnie nie chce działać...

Świnstwo no.

Jeszcze w sumie spróbuje zamiast nazw etapów to ID do wartości podłożyć.

 

taaaaaaaaaaaaaaaak, Ten program mnie wykończy.

Naszczęście z ID działa, ale z kolei miałem inny błąd(Już po nim), i jest spox. Tylko z 1.5 godzinki poprawiania :/.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

U mnie tez dziala, Skell.

 

Zle robisz. Jezeli chcesz zapisac id planszy do zmiennej, to nie podajesz jej w cudzyslow ani apostrof, bo to jest wtedy tekst:

 

global.plansza = "room1"; //nie bedzie dzialac

 

Podawaj bez cudzyslowia:

 

global.plansza = room1;

 

GM nie jest taki madry by w zmiennej tekstowej doszukiwac sie identyfikatora jakiegos zasobu itd. To by było głupie, bo wtedy nie moglbym operowac tekstami zarezerwowanymi dla zasobow. Taka zasad jak w GM panuje w j.p., więc czas się przystosować.

 

ps. A czemu ci brat nie pomógł (jeżeli dobrze kojarzę twoją osobę ;) ).

Odnośnik do komentarza
Udostępnij na innych stronach

Tiaaa...

Nie chciało mu się.

btw, dzięki Ranma, postaram się pamiętać;). Pozatym niepomyślałem żeby coś takiego sprawdzić, bo pamiętając po swoich początkach, myślałem że GM, zinterpretuje LE00 , nie jako tekst, lecz jako wartość która przecież nie istnieje(Tzn, będzie próbował pobrać wartość ze zmiennej LE00, a nie zapisać LE00 jako string.).

 

ps.

Tak to bywa, czasami najprostsze rozwiązania są najtrudniejsze. Kiedyś nad jakimś algorytmem z godzine siedziałem a potem nagle: 'Rany, jakie to proste' ;).

 

pw2.

Zmieniłem zdanie. To nie działa.

Pojawia się error z grubsza taki: "Unknown function or script : LE00".

Chyba jednak trzeba będzie sposobem ID'eowym zrobić.

Odnośnik do komentarza
Udostępnij na innych stronach

Sorry że tak późno, ale najpierw nie miałem okazji, a potem zapomniałem :/.

 

No to macie wycinek z algortytmu:

(142764).go=LE00

To wygląda dokładnie tak, tyle że "LE00' jest odznaczone kolorem typowym dla resources.

I pojawia sięten error : Unknown function or script : LE00.

Nie wiem co źle robie.

Obiekt o tym ID istnieje, tak samo jak room o tej nazwie. Nie wiem. Jeszcze cośtakiego mi się nie zdażyło wcześniej...

 

Jak to nie pomaga to w weekend, wytne troche kodu z kulkisa i podrzuce.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

https://gmclan.org/upload/temp/bobo.zip

 

Po pierwsze, stawiaj po każdym wyrażeniu końcowym średnik. Właśnie tego nie lubię w nowych wersjach, Mark odstąpił od zasady stawiania średnika jak w językach programowania, bo ludzie o nich zapominali. Po nazwie levela musi on być, inaczej GM zrozumie to jako funkcję. Po drugie nie mozesz wykonywac operacji na obiektach aktualnej planszy z poziomu room creation code, poniewaz nie zostaly one jeszcze stworzone. Przyklad powinien juz Ci dzialac. :) Kłopot nie leżał w room_goto tylko w wyciąganiu indeksu z planszy.

Odnośnik do komentarza
Udostępnij na innych stronach

Mhm, teraz rozumiem na czym błąd polegał ;).

 

Dobrze wiedzieć.

A co do tych średników, to nigdy ich nie stawiałem bo nigdy nie spotkałem się z błędami jeśli ich nie było. Choć teraz myślę, żę już tego błędu nie popełnie ;).

 

A kulkisa niedługo dokończe i wypuszcze :).

 

Dzięki za wszystko i narazie.

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