Jeżeli poniższy problem już był poruszany na forum, to przepraszam i proszę o link do tej dyskusji. Generalnie chodzi mi o coś takiego, że dostosowuję scenerię l053_noc do rozpoczęcia o innej godzinie niż w oryginale - ot taki kaprys... W tym celu muszę odpowiednio przesunąć rozkłady jazdy oraz godziny wykonania eventlauncherów (jest kilka zdarzeń tego typu w pliku *.ctr). Przesunięcie czasu rozkładów uzyskuję w ten sposób, że do wszystkich torów, na których są umieszczone na początku pociągi z nadanymi im we wpisie "trainset" rozkładami jazdy tworzę sobie komórki pamięci i następnie za pomocą zdarzenia typu "onstart..." wywołuję eventy updatevalues poszczególnych komórek z podaniem do nich właściwych rozkładów jazdy z interesującym mnie przesunięciem czasowym. Problem polega na tym, że po wykonaniu tej operacji w składach osobowych, których na danym torze oprócz lokomotywy stoi jeszcze wagon lub wagony z obsadą "passenger" rozkład zostaje przypisany prawidłowo, ale lokomotywa (z obsadą headdriver) pozostaje w trybie "prepare_engine" a w tryb "obey_train" przechodzi zagon znajdujący się na początku danego toru (jeżeli między nim a lokomotywą mieści się jeszcze jeden wagon) to także ma ustawiony tryb "prepare_engine". W efekcie po wystąpieniu godziny odjazdu te pociągi nadal stoją w miejscu i cała symulacja się rozjeżdża. Niczego nie zmiania dodatkowe, późniejsze podanie im komendy "obey_train" ani też nadanie wraz z nowym rozkładem prędkości początkowej jak też podanie sygnału zezwalającego na jazdę na semaforze wyjazdowym (sygnał ten jest skanowany przez wagon znajdujący się w trybie "obey_train", a lokomotywa nie skanuje niczego. W związku z powyższym mam następujące pytania/proszę o następujące informacje:
1. Czy takie zachowanie symulatora jest właściwe, a jeżeli nie, to czym może być spowodowane? (nota bene, jeżeli jest to poprawne, to przydałaby się odpowiednia informacja/komentarz w scenery.doc, albo jeszcze lepiej w maszynowej Wiki np. w dziale dotyczącym komend dla AI...
2. Zakładam (jeszcze nie spróbowałem), że problem zniknie, gdy wagony te będą z obsadą "nobody" zamiast "passenger" - czy teoretycznie tak będzie? A jeżeli tak, to jaka jest różnica praktyczna (użytkowa) w symulacji dla wagonów z obsadzonych "nobody" i passenger"?
Póki co problem rozwiązałem przez odpowiednie cofnięcie składów (tak, by na torze do którego komórki wysyłam rozkład jazdy stała tylko lokomotywa). Jednak poruszam ten temat, by wiedzieć więcej, być może zwrócić uwagę na błąd w exe i ewentualnie znaleźć inny sposób na rozwiązanie tego problemu (kiedyś przesunięcie składu może nie być możliwe lub stwarzać inne problemy).
Od razu zaznaczam, że zdaję sobie sprawę z tego, że mogę oczywiście podzielić dany tor na dwa: pod lokomotywą i resztą składu - ale takiej ingerencji wolałbym uniknąć - znów może się okazać trudna do wykonania w jakimś przypadku.
Wiem też, że można przypisywać do "wybudzonych" pociągów rozkłady jazdy za pomocą semaforów - modyfikując ich komórki pamięci - i tutaj mój drugi problem, bo tego rozwiązania próbowałem (od razu zaznaczam, że w przeciwieństwie do opisanych wcześniej nie na paczce 19.08 z II poł. listopada, a na 19.04) i działało to wybiórczo i z dużym opóźnieniem... Konkretnie: podobnie, jak wcześniej wyzwalałem zdarzenie onstart_... multiple... z 10 sekundowym opóźnieniem, które uruchamiało serię zdarzeń typu updatevalues, które z kolei z opóźnieniem 30 i 60 sek (testowałem dla dwóch składów) przesyłały przesunięte rozkłady do komórek pamięci skanowanych przez AI semaforów wyjazdowych. Konkretnie rozkłady dla MPE13129 i MPE41132 odpowiednio do: debica_m_sem_mem oraz sandomierz_l_sem_mem. Rozumiem, że teoretycznie w czasie ok. minuty (no powiedzmy 2 minut) od uruchomienia scenariusza powinno zostać wykonane podstawienie obu przesuniętych rozkładów. Tymczasem dla składu MPE13129 stojącego przed semaforem wyjazdowym M w Dębicy nic się nie zmianiało i po podaniu odjazdu wyruszał z Dębicy zgodnie z oryginalnym rozkładem jazdy. Z kolei skład MPE41132 stojący przed semaforem wyjazdowym L w Sandomierzu nowy rozkład otrzymywał praktycznie o oryginalnej godzinie odjazdu (odjeżdżał, więc według zmienionego rozkładu) z chwilą podania semafora, czyli ok. 4-5 min od rozpoczęcia scenerii, a nie ok 1,5-2 jak wynikałoby z ustawionych czasów wykonania eventów... W logu zauważyłem różnicę taką, że przesłanie jednego rozkładu wykonywane jest po podaniu odjazdu na semaforze a drugi przed tym zdarzeniem i to praktycznie jedyna różnica. Pytanie moje odnośnie tej sytuacji jest takie: skąd tak duże opóźnienie w wykonaniu obu eventów wysyłających rozkłady do komórek pamięci semaforów oraz czemu w jednym przypadku to działało, a w drugim nie. W razie potrzeby oczywiście załączę potrzebne pliki - przepraszam, że tego nie robię od razu, ale mam je na innym komputerze.
Z góry dziękuję za wyjaśnienia i pomoc oraz przy tej okazji wszystkim życzę szczęśliwego Nowego Roku!