FORUM PTT -  Strona Główna
FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  GrupyGrupy RejestracjaRejestracja  ZalogujZaloguj

Odpowiedz do tematu
Poprzedni temat :: Następny temat
Zmienne, zasady i polecenia
Autor Wiadomość
zolwik
znawca
Dyżurny Ruchu



Pomógł: 232 razy
Wiek: 35
Dołączył: 18 Lut 2008
Posty: 5125
Skąd: Wrocław
Wysłany: 04-11-2017, 05:09   Zmienne, zasady i polecenia

Adamstan zapytał mnie jak rozwiązać pewną zagwostkę z AI dla określonej sytuacji ruchowej. Odpowiedzi udzieliłem na SB, ale Korzeń zaproponował aby ubrać to w temat i tu wypisywać takie "pomysły", żeby zostało dla potomnych.

Tak więc zaczynamy.

Na pierwszy ogień idzie zadanie:

Cytat:
Wjazd pociągu z jedną lokomotywą na czole sterowaną przez gracza oraz z lokomotywą drugą na końcu składu NIEOBSADZONĄ. Skład po zatrzymaniu ma zostać podzielony na dwie części, jedą cześć zabieramy dalej my, drugą zabierze już lokomotywa, która jest na końcu składu.
JAK TO ZROBIĆ?

Opis:
skład prowadzony lokomotywą ep07-442 zatrzymuję się na znaczniku Herby Nowe P1, czeka 10sek, odłączony zostaje wyznaczony wagon. Po odłączeniu zmienna manewr zmienia się na 1.
Maszynista AI oczekuję aż "manewr" = 1, gdy to się stanie przesiada się do lokomotywy na końcu składu (EP07-422), uruchamia lokomotywę i jest gotowy do jazdy...
Proste prawda? myślisz sobie " ta ciekawe o czym on pisze..."
Proszę bardzo, to samo co wyżej rozłożone na czynniki pierwsze:


(Wpisy przy których występuje
Kod:
*
są OPCJONALNE )

Przechodzimy do ustawień sesji,
dodajemy zasadę WorkTable,
przechodzimy do ustawień i wpisujemy:


Co znaczą poszczególne wpisy?
svar - jest to nazwa polecenie rozpoznawalna przez polecenie maszynisty
manewr - jest to nazwa naszej zmiennej, nazwę ustalamy sami
eq - jest to parametr określający "deklarację nierówności", można użyć następujących wpisów: "eq" (równy), "gt" (większy niż), "lt" (mniejszy), "ge" (większy lub równy) i "le" (mniejszy niż lub równe)
1 - jest to stała liczba CAŁKOWITA do porównania z wpisem poprzednim.

w sytuacji na screenie sytuacja wygląda tak: zmienna "manewr" równa się 1

będzie to potrzebne w dalszej części - zapamiętać!


dodajemy zasadę "Check tracside" (u mnie Sprawdzanie obiektów przytorowych)
Sprawdź obiekty przytorowe,


W tej zasadzie definiujemy 3 zestawy danych. Pierwszy dotyczy tego jaki obiekt "sprawdzamy", do wyboru mamy rozjazd, wyzwalacz(trigger, zielony grzybek) oraz znacznik ( czerwony dzióbek). Jeśli już wybraliśmy obiekt do sprawdzenia, to teraz trzeba określić kiedy zasada zadziała, do wyboru mamy 3 opcje. Gdy pojazd wjedzie w promień obiektu ( zasadniczo jest 20m), gdy pojazd zatrzyma się w promieniu obiektu, lub gdy pojazd opuści promień obiektu.
Na końcu wybieramy czy zasada dotyczy dowolnego pojazdu czy jakiegoś konkretnego.
Na moim przykładzie jest to znacznik "Herby Nowe P1" po zatrzymaniu przez EP07-442


* Następnie wybieramy zasadę Czekaj,

w konfiguracji wybieramy sobie czas oczekiwania. Pierwsza pozycja to ilość sekund, a druga to czas +/-. w moim przypadku jest to 10 sekund. i 0+/- .
Zasadę tą umieszczamy jako ZALEŻNĄ od zasady Sprawdź obiekty przytorowe, tzn. jedno "wcięcie" w prawo


W dalszej kolejności umieszczamy zasadę: Decouple Vehicle,

w niej wybieramy, który wagon/pojazd ma zostać odłączony. w opcji dodatkowej wybieramy czy odłączona część ma zmienić "kierunek". Pamiętać należy o tym że wskazany wagon będzie pierwszym wagonem w odłączonej części. tutaj wskazany wagon3
lok1+wagon1+wagon2+|wagon3+wagon4+lok2

Zasadę tą umieszczamy jako zależną od zasady czekaj, dwa "wcięcia" w prawo.


Na koniec, najważniejsze, umieszczamy zasadę Modyfikacja zmiennej,

W ustawieniach ustalamy czy zmienna ma być "dodana", "odjęta" lub "zamień na"
następnie określamy nazwę naszej zmiennej, i teraz wracamy do punkty z WorkTable. tam wpisaliśmy już naszą zmienną o nazwie "manewr", tutaj wpisujemy to samo.
Na końcu wpisujemy liczbę całkowitą o ile ma się zmienić zmienna.


Gdy zrobiliśmy już to wszystko to powinniśmy mieć takie 'drzewko"



teraz przechodzimy do Zasady konfiguracji maszynisty (zasada wbudowana w każdą sesje):

Pierwszy maszynista to maszynista naszej lokomotywy, brak poleceń
Drugi maszynista, umieszczamy go w jakiejś lokomotywie gdzieś w krzakach, która nie jest nam aktualnie potrzebna. Na screenie jest to SM42-507.
następnie wybieramy polecenia:
WaitUntilSVariable,
w jego "pod poleceniach" pojawi się wpis, który umieściliśmy w zasadzie WorkTable czyli: "svar,manewr,eq,1" wybieramy to, AI w tym momencie będzie czekać aż zmienna "manewr" osiągnie wartość = 1
w następnej kolejności dodajemy Przejdź do pociągu,
WCZEŚNIEJ jednak należy od naszego składu ODŁĄCZYĆ lokomotywe bez obsady( tą do której ma się przesiąść AI w dalszym etapie)
Gdy lokomotywa jest odłączona wybieramy polecenie "przejdź do pociągu" -> wszystkie pociągi -> i wybieramy tą odłączoną lokomotywę.
* dalej dajemy polecenie poczekania x sekund, "Czekaj przez,
" u mnie jest to 10 sek.
* U mnie drugą lokomotywą jest lokomotywa ADHD więc następnym poleceniem jest polecenie uruchomienia lokomotywy ADHD E-Lok Driver Command,

W tym momencie skład jest już podzielony na dwie części, nowa oddzielona część jest już z uruchomioną lokomotywą, w dalszym etapie poleceń dodajemy już polecenia zgodnie z rozkładem jazdy jaki jest przewidziany dla tego pociągu.


Do tego miejsca pewnie mało kto doczyta więc napiszę to tutaj, jeśli ktoś miałby jakiś problem z AI, albo zagwozdkę jak wykonać jakiś manewr albo sytuację ruchową to proszę o rozpisanie co się chce osiągnąć, a ja postaram się pomóc. Od razu zaznaczam ze temat ten będzie mocno moderowany, więc jakikolwiek spam niezwiązany z poruszanymi tematami będzie kasowany. Jeśli masz jakieś pytania/sugestie/wątpliwości do opisanych rozwiązań możesz śmiało pisać ;-)

O możliwościach tworzenia ciekawych rozwiązań rozkładu jazdy w następnym odcinku
_________________
Pogromca AI

TOWARY i ŁADOWNIE PNT https://1drv.ms/u/s!AuMHAl_RhKy3f6eiQA_ZfFAf0BM?e=Gj1ZGa
 
 
 
Korzeń 
znawca



Pomógł: 74 razy
Wiek: 31
Dołączył: 15 Lip 2008
Posty: 1605
Skąd: Knurów
Wysłany: 06-11-2017, 15:34   

Bardzo dobrze, że powstał ten temat. Szkoda by było, żeby takie informacje przepadły w otchłani SB, albo prywatnych wiadomościach, bo to bardzo przydatna rzecz. Każdy by chciał robić ładne mapy i dodatki, ale już mało kto ma ochotę na zabawę w projektowanie sesji do tych map, bo wiąże się to z tym, że na pierwszy rzut oka sprawa jest dość skomplikowana (co widać w powyższym poście) i tylko wtajemniczeni są to w stanie w miarę sprawnie ogarnąć. Ja sam do niedawna zwyczajnie nie zdawałem sobie sprawy jak wiele fajnych możliwości dają reguły i polecenia maszynisty. Takie porady nieco przybliżą temat i być może pojawi się więcej ciekawych sesji.
Chociażby ten knif z "wsadzaniem" pozornie dwóch maszynistów do jednego składu. Dla mnie było to nieosiągalne, ze względu na co wielu rzeczy nie mogłem sobie zasymulować.

Wrzucaj te patenty o których pisałeś na końcu, albo np. jak dojechać lokiem do innego składu, ale nie spinać ich ze sobą, o dojeżdżaniu do taboru na określoną odległość. Głównie to co przydaje się przy przetokach i manewrach, a czego nie da się załatwić prostym "autodrive" i "połącz z" :-D
_________________
kuid:394491 - folder z dodatkami / my all content
 
 
 
Wujek 082
znawca



Pomógł: 98 razy
Wiek: 35
Dołączył: 04 Cze 2009
Posty: 2250
Skąd: spod Ostrołęki
Wysłany: 06-11-2017, 15:54   

I od razu poproszę o zapisanie tu tego patentu ze znacznikami i określoną ilością wagonów w składzie determinującą miejsce zatrzymania - było na SB niedawno, ale już zdążyłem zapomnieć co z czym ;)
_________________
www.trainzart.pl
 
 
 
Korzeń 
znawca



Pomógł: 74 razy
Wiek: 31
Dołączył: 15 Lip 2008
Posty: 1605
Skąd: Knurów
Wysłany: 06-11-2017, 16:14   

Wujek 082 napisał/a:
I od razu poproszę o zapisanie tu tego patentu ze znacznikami i określoną ilością wagonów w składzie determinującą miejsce zatrzymania - było na SB niedawno, ale już zdążyłem zapomnieć co z czym ;)

Dajesz sobie znacznik z nazwą powiedzmy Tor 1, a potem Tor 1@1 dla 1 wagonu itd.

EDIT 1:
A jak będziesz miał więcej wagonów niż sobie zdefiniujesz tymi znacznikami, to skład zatrzymuje się przy tym "głównym" Tor 1

[ Komentarz dodany przez: zolwik: 06-11-2017, 20:22 ]

SŁOWO OD MODERATORA:

Dla poprawki, poprawnie jest tak, że liczbą po @ określa liczbę pojazdów w składzie włącznie z lokomotywą. Czyli jeśli jest lokomotywa + wagon to musi być Tor1@2
_________________
kuid:394491 - folder z dodatkami / my all content
Ostatnio zmieniony przez zolwik 06-11-2017, 20:24, w całości zmieniany 5 razy  
 
 
 
zolwik
znawca
Dyżurny Ruchu



Pomógł: 232 razy
Wiek: 35
Dołączył: 18 Lut 2008
Posty: 5125
Skąd: Wrocław
Wysłany: 06-11-2017, 17:47   

I co najważniejsze, działa to tylko z poleceniem autodriver
_________________
Pogromca AI

TOWARY i ŁADOWNIE PNT https://1drv.ms/u/s!AuMHAl_RhKy3f6eiQA_ZfFAf0BM?e=Gj1ZGa
 
 
 
Wujek 082
znawca



Pomógł: 98 razy
Wiek: 35
Dołączył: 04 Cze 2009
Posty: 2250
Skąd: spod Ostrołęki
Wysłany: 06-11-2017, 19:18   

Przyjąłem, dziękuję.
_________________
www.trainzart.pl
 
 
 
zolwik
znawca
Dyżurny Ruchu



Pomógł: 232 razy
Wiek: 35
Dołączył: 18 Lut 2008
Posty: 5125
Skąd: Wrocław
Wysłany: 06-11-2017, 19:51   

Z tego co pamiętam, to muszę poprawić delikatnie korzenia.
Jeśli jest Lokomotywa z jednym wagonem to musi być x@2 .
Liczba po @ oznaczna ilość pojazdów w składzie, włącznie z lokomotywą.
przykład. typowy skład EN57 składa się z 3 pojazdów, więc musi być "Tor1@3".

O poleceniu AutoDrive opowiem w następnym odcinku, który będzie poświęcony zbiorom ciekawych zasad i poleceń
_________________
Pogromca AI

TOWARY i ŁADOWNIE PNT https://1drv.ms/u/s!AuMHAl_RhKy3f6eiQA_ZfFAf0BM?e=Gj1ZGa
 
 
 
Wujek 082
znawca



Pomógł: 98 razy
Wiek: 35
Dołączył: 04 Cze 2009
Posty: 2250
Skąd: spod Ostrołęki
Wysłany: 08-11-2017, 08:40   

Nie wiem czy masz w planie w następnym odcinku uwzględnić dwie małe rzeczy, które potrzebuję, więc je wymienię zawczasu:

1. Polecenie maszynisty, które skutecznie opróżnia cały skład z pasażerów (wbudowane "Unload" nie działa).

2. Sposób na zmuszenie AI do jazdy z prędkością rozkładową mimo semafora wskazującego "stój" na końcu jego drogi. Przedstawiam sytuację: chcę by w tle coś się działo podczas sesji i zaplanowałem wjazd osobówki. Wjeżdża ona od strony mapy, która jest "ślepo" zakończona, więc ma mało miejsca na rozpędzenie się. Po drodze ma semafor wjazdowy wskazujący "najwyższą dozwoloną" (100 km/h), następny za peronem na "stój". Rzecz jasna AI zamiast przynajmniej do semafora wjazdowego dojechać rozkładową, ono się kolebie całą drogę 40 km/h. Sesja jest programowana "na sztywno", więc dodałem pomiędzy wjazdowym i wyjazdowym semafor niewidzialny, ale nic to nie zmieniło. Moją intencją jest pozwolić by ten skład wjechał na stację z prędkością rozkładową i zaczął hamowanie jak najpóźniej się da - dla większej dynamiki scenki. Jeśli to coś zmienia, lok AI to SU45-113 ADHD. Na torach przed lokiem oczywiście ustawiłem znacznik z ograniczeniem do 100 km/h.
_________________
www.trainzart.pl
 
 
 
adamstan 
znawca
dłubacz kabinowy



Pomógł: 63 razy
Wiek: 39
Dołączył: 18 Lis 2010
Posty: 1740
Skąd: Legnica
Wysłany: 08-11-2017, 09:36   

Wujek 082 napisał/a:
1. Polecenie maszynisty, które skutecznie opróżnia cały skład z pasażerów (wbudowane "Unload" nie działa).


"Instant Load/Instant Unload". Zwykłe "Unload" jest do współpracy z ładowniami, dlatego nie działa.

Dodatkowo, kibel ADHD ma losowaną wymianę pasażerów przy każdym otwarciu drzwi, a opróżnia się przy przejściu w tryb manewrowy (priorytet 3).
_________________
Na warsztacie:
Ty2, EU07,ET22v2
wydane:
SN61, SU45v3, ET21, ET22, EN57, TKt48,SU46,SM/SP/SU42

http://adamstan-trainz.pl/
Ostatnio zmieniony przez adamstan 08-11-2017, 09:37, w całości zmieniany 1 raz  
 
 
 
zolwik
znawca
Dyżurny Ruchu



Pomógł: 232 razy
Wiek: 35
Dołączył: 18 Lut 2008
Posty: 5125
Skąd: Wrocław
Wysłany: 08-11-2017, 21:58   

Co do polecenia to tak jak Adam napisał.

Jeśli chodzi o drugą sprawę, to mając najnowsze skrypty od sygnalizacji Radka, nie byłem w stanie zasymulować takiego zachowania AI, za każdym razem ( na kilku mapach) schemat był taki samo wyjazdowy na stój, wjazdowy(5 komorowy) na "jedno pomarańczowe"( w konfiguracji największa dozwolona prędkość wpisane jest 100km/h) po najechaniu na semafor wyświetla się "następna linia jest czysta przez jeden odcinek" skład ustawiam 1,5km przed wjazdowym, przed lokiem stawiam ograniczenie do 100 km/h. Skład rusza, mija ograniczenie ostatnim wagonem i zaczyna się bujać, mija semafor wjazdowy z jednym pomarańczowym i dalej jedzie nie zwalniając.
Hamowanie zaczyna dopiero przy dojeździe do znacznika w peronie
_________________
Pogromca AI

TOWARY i ŁADOWNIE PNT https://1drv.ms/u/s!AuMHAl_RhKy3f6eiQA_ZfFAf0BM?e=Gj1ZGa
 
 
 
MartinST43
trainz
martinst43


Pomógł: 8 razy
Wiek: 30
Dołączył: 25 Cze 2008
Posty: 351
Skąd: Włoszakowice
Wysłany: 21-11-2017, 22:25   

Cześć

Jak skutecznie zmusić AI do przejazdu przez pierwszy wolny tor z wytypowanej przeze mnie grupy torów? Używając "DriveToTrackmarklist" skład faktycznie zajmuje pierwszy, wolny tor z grupy, ale problem polega na tym, że tor już fizycznie musi być zajęty, żeby komenda przypisała dla kolejnego jadącego składu tor wolny. Jeżeli w tym samym czasie dwa składy dostaną tę samą komendę, to oba za wszelką cenę będą kierować się na ten sam tor (na którym fizycznie jeszcze nic nie stoi) i ostatecznie kończy się to zderzeniem czołowym.
_________________
MD Leszno
MD Leszno w TRS
Lokomotywy spalinowe serii ST43
Ostatnio zmieniony przez MartinST43 21-11-2017, 22:27, w całości zmieniany 1 raz  
 
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group