Pierwsza sesja
Tłumaczenie oryginalnej strony w języku angielskim dla OmsiLaunch 0.1.0-beta3. Wiążąca jest strona angielska: w razie rozbieżności obowiązują strona angielska i kod.
Ta strona prowadzi przez pierwszą zarządzaną sesję OMSI z OmsiLaunch 0.1.0-beta3: planowanie bez uruchamiania OMSI, uruchomienie z jawnymi flagami, uruchomienie z predefiniowanym profilem sesji, sterowanie sesją i jej zatrzymanie oraz odnalezienie komunikatów diagnostycznych po jej zakończeniu. Zakłada się, że pakiet został zainstalowany zgodnie z opisem na stronie instalacja. Każda flaga jest opisana w dokumentacji CLI; więcej wywołań zawiera strona przykłady CLI.
Co robi sesja#
Sesja jest transakcją obejmującą jeden proces OMSI: OmsiLaunch wykonuje migawkę (snapshot) plików, które zmodyfikuje (domyślnie dwóch bitmap ekranu startowego w GUI\, a także options.cfg, gdy żądane są nakładki /set), zapisuje trwały dziennik w .omsilaunch\, nakłada nakładki (overlay), uruchamia Omsi.exe ze stałą wtyczką, czeka na wejście do rozgrywki (Running), utrzymuje możliwość sterowania sesją, a na końcu kończy OMSI i przywraca każdy zmodyfikowany plik bajt po bajcie. /new nigdy nie wybiera po cichu mapy ani punktu wejścia: oba muszą zostać podane albo pochodzić z pliku /spec lub profilu sesji.
1. Planowanie (nic nie jest uruchamiane)#
Polecenia należy uruchamiać z katalogu głównego OMSI; instalacja domyślnie oznacza katalog zawierający OmsiLaunch.exe.
OmsiLaunch.exe /list:Maps
OmsiLaunch.exe /list:Entrypoints /map:maps\Grundorf\global.cfg
OmsiLaunch.exe /new /map:maps\Grundorf\global.cfg /entrypoint-index:1 /plan --jsonPlan musi zawierać "IsRunnable": true (wyjście 0). Wymienia TouchedFiles i PlannedMutations, dzięki czemu widać dokładnie, co sesja nałoży. Przed kontynuowaniem należy usunąć przyczynę każdego komunikatu diagnostycznego OL_E_; nic nie zostało jeszcze zapisane.
Dołączony do pakietu przykładowy plik spec robi to samo za pomocą pliku:
OmsiLaunch.exe /spec:.omsilaunch\examples\release-session.example.json /plan2. Uruchomienie z jawnymi flagami#
OmsiLaunch.exe /new /map:maps\Grundorf\global.cfg /entrypoint-index:1Co się dzieje, w kolejności:
- Wypisywany jest plan (
Plan: READY profile=Omsi23004_692EBFBF). - Odzyskanie ewentualnego starszego oczekującego dziennika, uzyskanie dzierżawy, migawka, dziennik, nakładki, sprawdzenie integralności wtyczki, uruchomienie
Omsi.exe. - Pojawia się ikona w obszarze powiadomień (
OmsiLaunch is running(OmsiLaunch jest uruchomiony)); zob. obszar powiadomień Windows. - Po wejściu do rozgrywki stan
Runningjest wypisywany jako JSON ("State": 14). Domyślny limit czasu uruchamiania wynosi 180 s (zmienia się go za pomocą/startup-timeout:<1..600>). - Konsola pozostaje podłączona do czasu zakończenia sesji. Nie należy zamykać okna konsoli w celu zatrzymania: należy użyć jednej z metod zatrzymania opisanych poniżej.
Opcjonalne dodatki przy pierwszym uruchomieniu:
/set:graphics.maxFPS=60(nakładka naoptions.cfg, przywracana na końcu);/splash:Unset, aby pozostawić ekran startowy OMSI bez zmian, lub/splash-language:DEU, aby wybrać zlokalizowany zarządzany ekran startowy;/observe-seconds:30, aby zatrzymać sesję automatycznie 30 s po osiągnięciuRunning(przydatne w teście dymnym);--jsondla ustrukturyzowanego wyjścia.
Flagi żądające daty, godziny, roku, pogody lub pojazdu gracza (/date, /time, /year, /weather*, /vehicle, ...) są akceptowane, ale ten build nie może ich zastosować: plan staje się NOT RUNNABLE z OL_E_CAPABILITY_UNAVAILABLE. Należy je pominąć.
3. Uruchomienie z predefiniowanym profilem sesji#
Profil sesji to plik YAML w <root>\.omsilaunch\session-profiles\<id>\profile.yaml, który ustala mapę, punkt wejścia i maksymalnie pięć ustawień wstępnych (preset) z ustawieniami (schemat omsilaunch.session-profile/v1; pełny opis na stronie profile sesji). Należy utworzyć D:\OMSI 2\.omsilaunch\session-profiles\grundorf-quick\profile.yaml:
schema: omsilaunch.session-profile/v1
id: grundorf-quick
name: Grundorf quick start
author: You
version: "1.0"
compatibility:
maps:
- maps\Grundorf\global.cfg
new:
map: maps\Grundorf\global.cfg
entrypoint-index: 1
presets:
- index: 1
id: low
name: Low detail
settings:
graphics.maxFPS: 30
graphics.tileDistance: 3
- index: 2
id: high
name: High detail
settings:
graphics.maxFPS: 60
graphics.tileDistance: 8Następnie:
OmsiLaunch.exe /predefined-profile:grundorf-quick /predefined-profile-index:2 /new /plan
OmsiLaunch.exe /predefined-profile:grundorf-quick /predefined-profile-index:2 /newReguły do zapamiętania: id musi być równe nazwie katalogu; indeks ma wartość 1..5; jawne flagi, które nadpisałyby pole należące do profilu (/map, /entrypoint-index, klucz /set należący do ustawienia wstępnego, flagi ekranu startowego, gdy ustawienie wstępne ma presentation), są odrzucane z OL_E_SESSION_PROFILE_OVERRIDE_CONFLICT (wyjście 2); blok new: ma zastosowanie tylko z /new; przy /saved:<file.osn> mapa sytuacji musi być wymieniona w compatibility.maps. Dołączony do pakietu .omsilaunch\examples\session-profiles\rmg-leste\profile.yaml ilustruje pełny schemat, ale jego blok new: ustawia date, time i weather, których ten build nie może zastosować, dlatego można go skopiować dopiero po usunięciu tych kluczy.
4. Sterowanie działającą sesją#
Z drugiej konsoli w tym samym katalogu (bez argumentu instalacji):
OmsiLaunch.exe session status --json
OmsiLaunch.exe events watch
OmsiLaunch.exe time get
OmsiLaunch.exe vehicles list
OmsiLaunch.exe vehicles get --handle=rv-000001Polecenia te przechodzą przez lokalny potok sterowania tej instalacji (lokalne sterowanie); wyjście 4 oznacza, że w tej instalacji nie działa żaden właściciel.
5. Zatrzymanie#
Każda z tych metod kończy sesję w ten sam sposób (OMSI jest kończony, następnie przywracany jest każdy zmodyfikowany plik, a potem usuwane są dziennik i kopia zapasowa):
| Metoda | Uwagi |
|---|---|
Ikona w obszarze powiadomień → End session (Zakończ sesję) → potwierdzenie | Dostępna zarówno w sesjach OmsiLaunch.exe, jak i OmsiLaunchW.exe. |
OmsiLaunch.exe session stop | Z innej konsoli; wraca natychmiast, a właściciel dokańcza przywracanie. |
| Ctrl+C w konsoli właściciela | Żąda zatrzymania; właściciel przed zakończeniem czeka na przywrócenie plików. |
/observe-seconds:<n> | Automatyczne zatrzymanie n sekund po osiągnięciu Running. |
| OMSI kończy działanie samodzielnie | Właściciel wykrywa ProcessExited i przywraca pliki. |
Własna procedura zamykania OMSI nie jest wykonywana, więc OMSI nie zapisuje ponownie options.cfg przy wyjściu; jest to zamierzone, aby przywrócenie było dokładne. Zamknięcie okna konsoli właściciela przyciskiem X daje przywracaniu tylko 4 s; jeśli nie zdążyło się zakończyć, następne uruchomienie (lub OmsiLaunch.exe /recover) dokończy je na podstawie dziennika. Kod wyjścia właściciela wynosi 0, gdy sesja zakończyła się w stanie Completed.
6. Gdzie szukać po zakończeniu#
| Lokalizacja | Zawartość |
|---|---|
Wyjście konsoli / --json | Plan, stan Running, stan końcowy ("State": 18 = Completed). |
<root>\.omsilaunch\diagnostics\<sessionId>-host.log | Ślad hosta sesji (granice transakcji, uruchomienie procesu, przekazanie do wtyczki, wejście do rozgrywki, przywracanie). |
<root>\.omsilaunch\diagnostics\<sessionId>-runtime-operation.json | Wynik operacji /runtime: wykonanej przez właściciela. |
<root>\.omsilaunch\diagnostics\tray-host.log | Zdarzenia wskaźnika w obszarze powiadomień. |
OmsiLaunch.exe /recovery-status | "pending": false po czystym zakończeniu. true oznacza, że pozostał dziennik; należy uruchomić OmsiLaunch.exe /recover. |
Jeśli sesja nie osiągnęła rozgrywki, stan końcowy zawiera komunikat diagnostyczny OL_E_ z przyczyną błędu (na przykład OL_E_STARTUP_TIMEOUT, OL_E_PLUGIN_NOT_LOADED, OL_E_PROCESS_EXITED_EARLY), kod wyjścia wynosi 1, a pliki i tak zostały przywrócone. Zob. kody wyjścia, błędy i znane ograniczenia.
Uruchamianie bez konsoli#
OmsiLaunch.exe /silent /new /map:maps\Grundorf\global.cfg /entrypoint-index:1przekazuje wykonanie do OmsiLaunchW.exe i natychmiast zwraca 0. Sesja nie ma konsoli; błędy są wyświetlane jako okna komunikatów, a ikona w obszarze powiadomień jest jedynym widocznym elementem. Do śledzenia sesji służą session status, events watch i katalog diagnostyki. Pełne zachowanie hosta Windows opisuje dokumentacja OmsiLaunchW.exe.