Symulator EU07 (i nie tylko) > Symulator

 Problem z memcell'em

(1/3) > >>

Dolmio89:
Chciałem napisać misje do mojej trasy i mam problem z komórką pamięci. Założenie jest takie, że po kilku manewrach symek ma wpuścić na stację skład towarowy, żeby nie narobić zamieszania chciałem użyć memcell'a ale niestety nie działa. Czytałem oczywiście scenery.doc i tutoriale, wydaje mi się że wszystkie wpisy mam dobre. Może ktoś z większym doświadczeniem zauważy gdzie popełniłem błąd.

--- Kod: ---node -1 0 sm_mem memcell 0 0 1 manewry 0 0  none endmemcell

event manewry2 updatevalues 0.0 sm_mem manewry 0 1 endevent
event wjazd multiple 1.0 sm_mem dolmiowo_zeberko1z dolmiowo10W_F_s1 dol_zw3+ dol_zw7ad dolmiowo_wj1N_B_s13 update1 condition memcompare manewry 0 1 endevent
event update1 updatevalues 0.0 sm_mem manewry 1 1 endevent

event KeyCtrl02 multiple 0 none manewry2 endevent

--- Koniec kodu ---

Event "manewry2" uruchomiony po najechaniu loka na pewien tor ma zmienić wartość komórki pamięci "sm_mem", a to na spowodować podanie wjazdu na stację. W celach testowych dodałem aktywacje eventu "manewry2" przez shift+2 no i jak już mówiłem nie działa.

Jeszcze może fragment loga:

--- Cytuj ---Player train init OK
EVENT ADDED TO QUEUE:
keyctrl02
EVENT LAUNCHED:
keyctrl02
Multiple passed
EVENT ADDED TO QUEUE:
manewry2
EVENT LAUNCHED:
manewry2

--- Koniec cytatu ---

Czy ktoś z was uświadomi mi co zrobiłem źle?
Z góry dzięki za pomoc.

AtapiCl:
Event 'wjazd' wykona się, jeśli komórka o nazwie 'sm_mem' będzie mieć parametry: 'manewry 0 1'.
Event 'manewry2' nie wykonuje eventu wjazd. On tylko aktualizuje stan komórki 'sm_mem'.
Event 'update1' aktualizuje stan komórki 'sm_mem' na 'manewry 1 1'.
Event 'KeyCtrl02' - wiadomo, odpala...

A zrobiłeś to tak - Wciskasz Shift + 2, wykonuje się event aktualizujący komórkę 'sm_mem' ze stanu 'manewry 0 0' na stan 'manewry 0 1'. I to wszystko, co się wykonuje.

Mariusz1970:
Zbytnio nie wnikam, ale mnie na 1 rzut oka logika założeń eventów jest ok, tylko wydaje mi się, że deklaracja jak i updaty są złe. Z tego co pamiętam komórka może spamiętać jeden ciąg znaków i 2 wartości liczbowe, czyli powinny być deklarowane 3 wartości a są dwie.
Ja deklarowałem tak:
//komorka pamieci, ktora wpisuje status, czy pośpiech Koniewice-Skawrki istnieje
node -1 0 pospskw-status memcell 0 0 0.3 BRAK 0 0 none endmemcell

a zmieniałem:
event zatwpospskw updatevalues 0.0 pospskw-status Podczepiony * * endevent

sprawdzałem warunek tak:
//Wyzwala, gdy pośpiech Koniewiece-Skwarki wjeżdża do Wielkiego Kaca
event wjazd_do_Wielki_K multiple 0.0 pospskw-status
duza5pocz_s1
duzaendwl_S13
duza13+
duza11+
duza9+
zatwpospskwwjazdWK
condition memcompare Podczepiony * *
endevent

Czyli ja zmieniałem ciąg znaków, Ty możesz zmieniać tylko liczby.
Gwiazdka oznacza, iż dana zapamiętana wartość w komórce nie będzie zmieniana lub porównywana.
Reasumując, nie wiem jak traktuje taką deklarację komórek,i porównywanie symek, jakie Ty zrobiłeś.

Dolmio89:

--- Cytuj ---A zrobiłeś to tak - Wciskasz Shift + 2, wykonuje się event aktualizujący komórkę 'sm_mem' ze stanu 'manewry 0 0' na stan 'manewry 0 1'.
--- Koniec cytatu ---


--- Cytuj ---Event 'wjazd' wykona się, jeśli komórka o nazwie 'sm_mem' będzie mieć parametry: 'manewry 0 1'.
--- Koniec cytatu ---

Więc po odpaleniu "manewry2" powinien się odpalić "wjazd". Czy coś jeszcze pominąłem?

Mariusz1970 komórka ma 3 wartości
--- Kod: ---manewry 0 0
--- Koniec kodu ---
i chciałem je zmienić na
--- Kod: ---manewry 0 1
--- Koniec kodu ---

Mariusz1970:
i chciałem je zmienić na
Kod:
manewry 0 1

No ale nadal są 2 wartości.
Zrób jak Ci sugerowałem, bo prochu nie wymyślisz, a to o czym pisałem jest sprawdzone.

Nawigacja

[0] Indeks wiadomości

[#] Następna strona

Idź do wersji pełnej
Powered by Advanced Topic Prefix Pro
Powered by SMFPacks Likes Pro Mod