Symulator EU07 (i nie tylko) > Pomoc w tworzeniu
Uruchomienie pojazdu przez AI
SKP:
Wystarczy ustawić niezerową prędkość początkową i można zapomnieć o wszystkich komendach i innych nieszczęściach ;) Komendy trzeba stosować wtedy kiedy jest taka konieczność (np., żeby lokomotywa, która stoi koło nas się uruchomiła). Jeśli tylko można ustawić niezerową prędkość początkową i w żaden sposób nie psuje to estetyki scenerii, to tak właśnie należy uczynić. Prędkość początkowa składu to ostatnia liczba (z reguły) w pierwszej linijce wpisu trainset. Wpis trainset ma taką składnię (tylko początek):
--- Cytuj ---trainset nazwa_rozkładu nazwa_toru przesunięcie prędkość_początkowa
--- Koniec cytatu ---
Czyli w tym przykładzie:
--- Kod: ---trainset pe1301 start-su46 20 0
--- Koniec kodu ---
Można zamienić ostatnią cyfrę na wartość niezerową (np. 0.1), by od razu po uruchomieniu skład był włączony.
--- Kod: ---trainset pe1301 start-su46 20 0.1
--- Koniec kodu ---
P.J.:
--- Cytuj ---A dałeś coś co te eventy uruchomi?
--- Koniec cytatu ---
No to teraz już widzę, że mi czegoś brakuje - super.
--- Cytuj ---4. Komenda Prepare_engine powinna mieć drugi argument zerowy.
--- Koniec cytatu ---
Czyli rozumiem, że powinno być ...Prepare_engine 1 0...
--- Cytuj ---5. Coś musi uruchomić event UpdateValues (np. eventlauncher), albo trzeba użyć nazwy KeyCtrl0x i odpalać z klawiatury.
--- Koniec cytatu ---
Próbuję za pomocą generatora ewentów stworzyć eventlunchera ale coś muszę jeszcze nie tak wypełniać. Screen w załączeniu. Czy można uruchomić te eventy za pomocą zwykłego eventu multiple?
--- Cytuj ---PS Czasowniki próbuje i kombinuje to trzecia osoba (on/ona).
--- Koniec cytatu ---
Słusznie.
--- Cytuj ---Można uruchomić pojazd AI bez użycia żadnych komend. Niestety większość początkujących o tym nie wie lub nie chce o tym wiedzieć...Wystarczy ustawić niezerową prędkość początkową i można zapomnieć o wszystkich komendach...
--- Koniec cytatu ---
Dzięki, zależy mi jednak na tej komórce pamięci. Komendy multiple są proste, ale zależy mi na zapoznaniu się z innymi "tajnikami" maszyny...
Pozdro
Ra:
--- Cytat: P.J. w 11 Sierpnia 2012, 22:21:38 ---Czyli rozumiem, że powinno być ...Prepare_engine 1 0...
--- Koniec cytatu ---
Tak. Aczkolwiek zależy jeszcze, jaki efekt chcesz uzyskać. Na dotychczasowych wersjach EXE lokomotywa po takiej komendzie pojedzie w trybie manewrowym do przodu, natomiast na najnowszym będzie tylko stać przygotowana do jazdy, ale ze zgaszonymi światłami.
--- Cytuj ---Czy można uruchomić te eventy za pomocą zwykłego eventu multiple?
--- Koniec cytatu ---
Ale coś musi to zwykłe multiple uruchomić.
P.J.:
Dorzuciłem event multiple shift+6 ale nadal jest coś nie tak:
node -1 0 Uruchom_AI memcell 0 0 0.1 Wait_for_orders 0 0 start endmemcell
event UruchomAI updatevalues 0 Uruchom_AI Prepare_engine 1 0 endevent
event Uruchom multiple 0.0 UruchomAI endevent
event keyctrl06 multiple 0.1 none UruchomAI endevent
SKP:
Po kolei ;)
Masz komórkę pamięci:
--- Kod: ---node -1 0 Uruchom_AI memcell 0 0 0.1 Wait_for_orders 0 0 start endmemcell
--- Koniec kodu ---
Zwykła komórka pamięci, egzystuje gdzieś w scenerii. Sama nic nie znaczy. Ma wpisaną komendę, która zasadniczo nic nie robi (może coś tam robi, ale nie znam się na teorii) oraz nazwę toru, na którym stoi ten pojazd.
Żeby zmienić jej wartość (bo event updatevalues zmienia wartość komórki) na taką, która zostanie zinterpretowana przez EXE jako komenda i wykonana, należy taki event uruchomić. Uruchomienie to inaczej odpalenie eventu, wywołanie go. Można to zrobić na kilka sposób, event w torze, zajęcie odcinka, rozprucie rozjazdu, Eventlauncher, inny Multiple...
--- Kod: ---event UruchomAI updatevalues 0 Uruchom_AI Prepare_engine 1 0 endevent
--- Koniec kodu ---
Jak ten updatevalues odpalić? Jak już wspomniałem możliwości jest kilka. Możesz to zrobić przez Multiple. Na zakładce Multiple w Generatorze wybierasz jako typ pojedynczego zdarzenia inne i wklejasz tam tą nazwę. Jako wyzwolenie możesz wybrać SHIFT+... . Jeśli to Cię nie zadowala, możesz uruchomić event o określonej godzinie. Domyślna godzina w MaSzynie do 10:30, choć można ją zmienić wpisem time. W tym celu na zakładce Eventlauncher jako nazwę eventlaunchera podajesz dowolną nazwę, wybierasz Wyzwalanie o określonej godzinie. Współrzędne podajesz dowolne, jako nazwę zdarzenia, gdy shift jest wciśnięty wpisujesz none, ale o ile dobrze pamiętam, jeśli nic tam nie wpiszesz, to program sam to zrobi. Jako Zdarzenie podajesz nazwę Updatevaluesa. Pola Warunek najlepiej w ogóle nie zaznaczaj. Warunek służy do warunkowego wykonania eventu z eventlaunchera, czyli np. jeśli jakiś skład wjedzie na dany tor, to wtedy dopiero EXE dostanie "pozwolenie" na wykonanie zdarzenia.
Nie znam się za bardzo na teorii, być może moje określenia dotyczące updatevaluesa i memcella są niepoprawne, ale piszę tak jak ja to rozumiem, tak jak łatwiej zrozumieć, a nie tak jak w "książce" jest napisane.
EDIT: A w Generatorze to był błąd, sprawdzał nieodpowiednie pola tekstowe. Poprawię w następnej wersji.
I taka rada na przyszłość, używaj najnowszej wersji, jest w niej sporo ułatwień.
Nawigacja
[#] Następna strona
Idź do wersji pełnej