Autor Wątek:  Jak zrobić rozkład dynamiczny?  (Przeczytany 32196 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6308
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 339
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #30 dnia: 17 Listopada 2014, 13:00:03 »
Wolę Forth, bo znam go dobrze od strony technicznej, pozwala zarówno na interpretację kodu jak i na jego kompilację. Poza tym, jakby ze scenerii maszynowych pousuwać średniki, to można scenerię traktować jako gotowy program w Forth — wystarczy tylko zdefiniować kompilatory.

Problem obecny z MaSzyną nie polega na tym, że wszystko już jest doskonale zrobione i gotowe, a tylko brakuje dokumentacji, żeby początkujący mogli wszystkim posługiwać. Problem jest w tym, że wiele rzeczy trzeba dopiero wymyślić, rozpracować, zbadać zagadnienia, opracować koncepcje rozwiązań i następnie je wdrożyć. Np. czy jest sens edukować ludzi w temacie uruchamiania lokomotywy, jeśli obecne uruchamianie jest niepełne, a większość lokomotyw uruchamia się identycznie jak siódemki, mimo że w rzeczywistości ET22, EP05, czy EP09 działają inaczej?

Zrobienie scenerii edukacyjnej było postulowane już parę lat temu — jakoś nie chwyciło. A można by zrobić taką "misję", na której by rósł poziom trudności. Czyli najpierw uruchamiamy lokomotywę do jeżdżenia w kółko, a potem wprowadzamy sygnalizację i inne zagadnienia.

Pisząc pliki sterowania nie miałem problemów z literówkami w składni, raczej z nieodpowiednim ustawieniem którejś zwrotnicy przy którymś z kilku przebiegów albo zapaleniem nie tego sygnalizatora albo z nadaniem przebiegowi nazwy, która nie jest rozpoznawana przez eventy głowicy. Dopiero uruchomienie scenerii, a często dopiero przeanalizowanie loga pokazywało, co zostało zrobione niezgodnie z założeniem, że pociągi stoją. Po poprawieniu jednego wychodził następny błąd, a gdzieś za 10 poprawką już było dobrze.
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline HTD

  • Wiadomości: 697
  • "Twoja stara mieszka w Boldach" xD
    • Zobacz profil
    • I like trains
  • Otrzymane polubienia: 30
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #31 dnia: 17 Listopada 2014, 13:12:39 »
W takim razie wygląda że nie da się za bardzo pomóc w usuwaniu bugów na etapie tworzenia. I tak trzeba debugować na żywca, i tu całą pomoc daje sam silnik i debug mode.

Co do edukacji - wydaje mi się, że sama mechanika jazdy to najprostsze zagadnienie. Raz - że niekompletny model daje już jakieś podstawy dla nowicjusza. Myślę, że czego się z niego nauczy - i tak mu się przyda nawet jak model stanie się bardziej realistyczny.

O wiele bardziej skomplikowane i IMHO trudniejsze jest opanowanie przepisów i zasad. Z drugiej strony realne, żywe misje mogą bardzo skutecznie uczyć, dawać dość ambitne wyzwanie - do tego nie przynudzają. Na wałkowanym przeze mnie zwierzyńcu uczę się prowadzić EZT dobrze się przy tym bawiąc. Gdyby misja działała tak jak chciałbym, żeby działała - pewne rzeczy złapałbym bez porównania szybciej. To samo - gdyby istniał do niej opis, z którego dowiedziałbym się co tak na prawdę mam tam zrobić. Np taki detal, że przed wjazdem do grupy postojowej jest tabliczka z ograniczeniem do 5km/h. Taki drobiazg ;) I kiedy mogę przyśpieszyć po S11. Jak poradzić sobie z górką koło Jelonkowa. I rzecz której nadal nie wiem - pod koniec trasy wjeżdżamy na SZ, wiem, że mam zwolnić do 40. A dalej? Jechać 40 do najbliższego semafora? A może przyśpieszyć za przejazdem? Przejazd ma oznakowanie, ale nie ma szlabanu. I co teraz? :) To wszystko powinien świeżak dostać w opisie misji zanim ją zacznie. Zamiast miesiąca czasu i wypytywania na forum - dostanie trudne, aczkolwiek wykonalne zadanie do wykonania.

W opisie dostanie też kupę linków do detali, np jak działa napęd EZT i jego wał kułakowy, co by wiedział jak operować "gazem".

Co do zrobienia tego wszystkiego - może nie było chętnych, no to ja się zgłaszam. Wiem, to się wiąże z molestowaniem dev-ów, ale w zamian będzie efekt, sporo przydatnej roboty. I nie pytaj się ludzi z forum, czy to jest potrzebne i przydatne. Im nie. Nowym (których tu nie ma, którzy nigdy nie słyszeli o Maszynie) - jak najbardziej.

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6308
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 339
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #32 dnia: 17 Listopada 2014, 13:35:06 »
Wiem, ja mam skrzywione podejście do rzeczywistości, bo do wszystkiego raczej dochodzę sam, czytając i eksperymentując, a pytać to najczęściej nie mam kogo. Jeśli ktoś jest początkującym, to na ogół ma słuszne uwagi, co mogło by być zrobione lepiej, ale najczęściej nie ma umiejętności i autorytetu, żeby te zmiany wprowadzić.

Ja bym chciał, żeby to działało lepiej, ale jak patrzę na to, co jest zrobione w całkiem skopany sposób, to widzę większy sens w naprawieniu tego niż w ułatwianiu udostępniania stanu zastanego. Kwestia, która się rysuje do przepracowania w najbliższym czasie, to sterowanie pojazdów oparte o "skrypty" elektryczno-pneumatyczne, chociaż większość pewnie by wolała mieć lepsze światła.

Co do rozkładów, obecnie można uruchomić W4 i zrobić rozkłady, które będą generowały głos kierownika. Uważam to za względnie proste do zrobienia, zrobiłem demonstracyjnie na jednej scenerii i nie chcę zajmować się osobiście pozostałymi, bo jest masa innych rzeczy do rozpracowania. Fajnie by też było zamiast pojedynczych nagrań pod każdy rozkład osobno, zrobić syntezę z nagranych osobno słów — ale to można zrobić później. Można też tymczasowo zrobić zewnętrzny program do tego i testować nim dobór dźwięków.
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline HTD

  • Wiadomości: 697
  • "Twoja stara mieszka w Boldach" xD
    • Zobacz profil
    • I like trains
  • Otrzymane polubienia: 30
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #33 dnia: 19 Listopada 2014, 15:51:47 »
Zrobiłem dynamiczny rozkład, ale...

Wciskam Shift+Q na początku misji, skład rusza planowo. Super. Niestety na trasie już nie jest tak fajnie. Ignoruje kompletnie semafory, pruje całą drogę prędkością rozkładową. Na pierwszej stacji elegancko się zatrzymał i otworzył drzwi - no jakiś plus. Niestety, żeby uzyskać przypisanie W4 do toru, musiałem usunąć oryginalny event2 ze scenerii i zastąpić go moim _stopinfo.

Zmieniłem więc zdarzenie po zatrzymaniu na takie:

event Chomikowo#01_stopinfo multiple 80 none chomikowo_d_s10 chomikowo_zwr03- zschomwyj endevent

Dość powiedzieć, że żadne z tych zdarzeń nie odpala. A raczej skrypty przypisane do nich nie odpalają, bo rozkład się aktualizuje. Ogólnie w Chomikowie moje AI się zatrzymuje przed S1 i nie otwiera drzwi. Dziwne, na stacji Kociary_po otworzył. W Chomikowie nie. Stoi zawieszony, a zdarzenie chomikowo_d_s10 nie odpala.

Domyślam się, czemu AI ignoruje semafory - ewidentnie nie są przypisane do torów, na upartego jakoś to poprawię.

Ale nie mam pojęcia dlaczego do eventów typu nazwa_stacji_stopinfo nie mogę nic przypisać? Tzn mogę, ale to nie działa.
BTW, jak sobie biorę podgląd via 2x F2, to widać moje W4 z przypisanym _stopinfo. Pociąg jest w trybie Obey_train.

Skrypt scenerii jest tak napisany, żeby przestawiać zwrotnice i dawać wjazdy po zatrzymaniu się na kolejnych stacjach. Pytanie dlaczego nie mogę się teraz podpinać do tych zdarzeń?

Co ciekawe, żeby wypchnąć skład ze stacji początkowej (na której pociąg stoi przy rozpoczęciu misji) ręcznie odpalam zdarzenie Kociary#01_stopinfo. Czyli w jedną stronę niby to działa, bo mogę wysłać zdarzenie. W drugą stronę to nie działa. Pociąg zatrzymuje mi się przed _stopinfo, ale obsługa nazwa_stacji_stopinfo nie jest uruchamiana. Co robię nie tak?

Offline Stele

  • Zasłużony dla Symulatora
  • Wiadomości: 10133
    • Zobacz profil
  • Otrzymane polubienia: 2610
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #34 dnia: 19 Listopada 2014, 18:14:44 »
A spróbuj włączyć łączenie duplikatów eventów (jest gdzieś w scenariuszach @Ra). Może event putvalues z W4 jest parsowany później i nadpisuje tego multipla. Zasadniczo w takich sytuacjach dzieli się tor na części, by eventy były przypisane do różnych odcinków. Tu może wystarczy przypisać je kawałek wcześniej. Chyba wstawienie ich na początek peronu nie zepsuje algorytmu.
« Ostatnia zmiana: 19 Listopada 2014, 18:22:41 wysłana przez Stele »
Mój kanał youtube

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6308
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 339
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #35 dnia: 19 Listopada 2014, 18:28:10 »
Chyba próbujesz zrobić zbyt wiele rzeczy na raz, nie bardzo wiedząc, co robisz. Eventy dzielą się na skanowane i kolejkowane. Skanowane są widoczne dla AI i jest uwzględniane ich położenie, ale nie da się za to ich umieścić w Multiple. Wiele scenerii ma błędy, np. nieprzypisane semafory do torów. Nie da się zamaskować tych błędów robiąc inne błędy. Quark działa tak, jak działa, ponieważ poświęciłem na to parę miesięcy, żeby powstawiać brakujące obiekty i połączenia oraz odpowiednio ponazywać odcinki izolowane, a na koniec opracować mechanizmy eventowe. Raczej nie da się tego przenieść w jeden dzień na inną scenerię.
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline muri

  • Wiadomości: 627
    • Zobacz profil
  • Otrzymane polubienia: 5
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #36 dnia: 19 Listopada 2014, 18:32:42 »
Ponieważ zdarzenia te już istnieją - zdefiniowane są w pliku w4n.inc, przez każdorazowe odwołanie od niego:
event (p1)_stopinfo putvalues 0.0 none (p2) (p3) (p4) PassengerStopPoint:(p1) (p8) (p9) endevent. A jak tworzysz swoje o tej samej nazwie, to z tego co kojarze obowiązuje to które było "później" (w kolejności przetwarzania plików). Spróbuj zrobić odwrotnie: do toru przypisz zdarzenie X (czyli event2 X, i potem gdzieśtam jego definicja: node X event... ), które zdefiniujesz jaku multiple. No i w tym zdarzeniu będziesz mógł wrzucić wykonanie zdarzenia stopinfo Twojego w4 oraz te pozostałe który były w oryginale. Na chłopski rozum zadziała. Jak widac poniżej - jednak nie zadziała.
Idealnie - powinieneś podzielić ten tor na dwa kawałki, i jednemu dać cośtam, a  drugiemu to ..._stopinfo.
« Ostatnia zmiana: 19 Listopada 2014, 18:47:24 wysłana przez muri »

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6308
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 339
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #37 dnia: 19 Listopada 2014, 18:37:24 »
Odczyt W4 jest skanowany i musi być przypisany bezpośrednio do toru. Nie można go użyć w Multiple, ani też nie będzie działać łączenie eventów o tych samych nazwach (normalnie jest wyłączone, poza tym możliwe jest tylko dla zdarzeń kolejkowanych). Jedynym rozwiązaniem jest podział toru na dwa i przypisanie dwóch zdarzeń. Aczkolwiek to i tak nadal jest prowizorka, bo powinno być ułożenie przebiegu uzależnione od zwolnienia głowicy, a po jego utwierdzeniu powinien być podawany sygnał jazdy zależny od stanu rozjazdów.
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline HTD

  • Wiadomości: 697
  • "Twoja stara mieszka w Boldach" xD
    • Zobacz profil
    • I like trains
  • Otrzymane polubienia: 30
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #38 dnia: 19 Listopada 2014, 20:06:37 »
@Ra:
Pisałeś gdzieś coś, że właśnie dynamiczny rozkład z W4 ma wywoływać sygnał odjazdu. Czyli rozumiem, że jakiś komunikat radiowy też?

Skrypt nie ma możliwości sprawdzenia zatrzymania się pociągu na przystanku osobowym? Tak, próbowałem podpinać eventy kawałek przed i kawałek za torem i działają. Problem w tym, że nie mogę sobie zdefiniować, że event się odpala tylko jak pociąg stoi (bo się zatrzymał), czy mogę?

No prosta rzecz, pociąg dojeżdża do przystanku osobowego, zatrzymuje się, i chcę odtworzyć coś przez radio. Dzielenie torów? Serio? Jak podzielę na krótkie odcineczki, to pociąg będzie się musiał w punkcie zatrzymać, bo jak nie to jakiś event nie odpali. To hm, nie jest chyba rozwiązanie? No musi być jakiś inny sposób na to.

A może w ogóle da się do wyświetlanego w pociągu rozkładu pisać ręcznie? Tzn darujemy sobie skanowanie, odpali mi się event w skrypcie i wyślę do pociągu "ok, udało ci się zatrzymać na przystanku".

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6308
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 339
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #39 dnia: 19 Listopada 2014, 20:25:25 »
Wyświetlanie rozkładu jest ubocznym efektem jego działania.
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline Stele

  • Zasłużony dla Symulatora
  • Wiadomości: 10133
    • Zobacz profil
  • Otrzymane polubienia: 2610
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #40 dnia: 19 Listopada 2014, 20:30:53 »
Event0 działa gdy pojazd z obsadą stoi na torze. Możesz też w peron wstawić odcinek izolowany i ustawić licznik czasu zajętości. Nie wiem dokładnie co chcesz uzyskać.
Za odjazd odpowiada AI składu a nie oewentowanie scenerii. Skanuje w poszukiwaniu W4, porównuje je z rozkładem i czasem. Po zatrzymaniu się otwiera drzwi w wagonach a o czasie odjazdu zamyka, koloruje rozkład i odgrywa dźwięk sprzężony z rozkładem (ta sama nazwa i lokalizacja).
Czy to zadany pociąg możesz określać za pomocą eventu whois. Możesz wtedy warunkować zdarzenia w stacji na podstawie lokomotywy/rozkładu/ładunku.

@Woku. wiem, ale pytanie było jakie było, a event0 to właśnie robi.
« Ostatnia zmiana: 19 Listopada 2014, 22:29:19 wysłana przez Stele »
Mój kanał youtube

Offline Wokulski

  • Zasłużony dla Symulatora
  • Wiadomości: 2237
  • Izabela Łęcka była...
    • Zobacz profil
  • Otrzymane polubienia: 58
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #41 dnia: 19 Listopada 2014, 22:13:28 »
Z tym, że nie stosujemy już Event0 od dłuższego czasu.
Były Cargul, aktualny tramwajarz w Kolejach Śląskich.
PKPc 2016 - 2022
Koleje Śląskie 2022 - nadal

Offline muri

  • Wiadomości: 627
    • Zobacz profil
  • Otrzymane polubienia: 5
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #42 dnia: 19 Listopada 2014, 22:34:23 »
Dzielenie torów? Serio? Jak podzielę na krótkie odcineczki, to pociąg będzie się musiał w punkcie zatrzymać, bo jak nie to jakiś event nie odpali. To hm, nie jest chyba rozwiązanie? No musi być jakiś inny sposób na to.
Ech. Weź ty poczytaj w tym całym scenery doc co to są te eventy 0/1/2... W taki sposób jak opisałeś działałby Event0 - dlatego już się go nie stosuje. Event1/2 raegują na PRZEJAZD pojazdu z obsadą. A nie na zatrzymanie.

Offline HTD

  • Wiadomości: 697
  • "Twoja stara mieszka w Boldach" xD
    • Zobacz profil
    • I like trains
  • Otrzymane polubienia: 30
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #43 dnia: 19 Listopada 2014, 22:40:48 »
Dokładnie o to mi chodziło. Czyli na odjazd odtworzy mi plik w tym samym katalogu i tej samej nazwie co rozkład? Dlaczego miałbym wstawiać w peron odcinek izolowany? Czemu tak się robi?
Co chcę uzyskać? Hm, na razie wystarczyłoby, żeby misję dało się przejść i żeby sygnały odjazdu były we właściwym czasie. Rozumiem, że silnik sam to załatwi. Podoba mi się to.

Byłoby idealnie, gdyby jeszcze zmusić AI żeby sterował pociągiem sensownie. Niestety - we wszystkich testach jakie robiłem AI nie radzi sobie z drzwiami. Albo ich nie otwiera, albo dostaje szału i zamyka i otwiera jak głupi kilka razy. Do tego oczywiście ignoruje semafory, ale pewnie wystarczy je przypisać do torów właściwie i będzie grało.

Z tego co zauważyłem, jak W4n jest przypisany do jakiegoś odcinka, to działa, nawet jeśli ten odcinek bezpośrednio do niego nie przylega. To ciekawe. Może da się wykorzystać istniejące tory bez przesadnego przerabiania, żeby to po prostu działało.

  Dodano: 19 Listopada 2014, 22:46:21
@muri:
Czytałem już przedtem, nawet testowałem, ale z jakiś dziwnych powodów nie chciał odpalać. Ale być może nie potrzebuję tego. W sumie wystarczy, żeby obecna trasa pootwierała przejazdy zgodnie ze starym skryptem. Może je pootwierać przed czasem, to tak prosty scenariusz, że nie zrobi to żadnej różnicy. Ważne jest tylko, żeby komunikat odjazdu szedł o właściwym czasie (zgodne z rozkładem). Z tego co testowałem dziś - to się da zrobić bez przepisywania wszystkiego od nowa.

W sumie byłoby fajnie, gdyby np na stacji szła zapowiedź "Pociąg osobowy spółki... odjedzie z toru 2 przy peronie pierwszym..." albo "Opóźniony pociąg osobowy" ;) W zależności od tego, czy da się to jakoś prosto sprawdzić.

Zmuszenie AI do zauważania semaforów i otwierania drzwi na przystankach to pewnie będzie dłuższa robota na zupełnie inny czas.
« Ostatnia zmiana: 19 Listopada 2014, 22:46:21 wysłana przez HTD »

Offline youBy

  • Deweloper
  • Wiadomości: 6164
  • Co tam?
    • Zobacz profil
    • Automat Weryfikujący Regulację i Lambdę
  • Otrzymane polubienia: 870
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #44 dnia: 19 Listopada 2014, 22:49:49 »
Skrypt nie ma możliwości sprawdzenia zatrzymania się pociągu na przystanku osobowym? Tak, próbowałem podpinać eventy kawałek przed i kawałek za torem i działają. Problem w tym, że nie mogę sobie zdefiniować, że event się odpala tylko jak pociąg stoi (bo się zatrzymał), czy mogę?

No prosta rzecz, pociąg dojeżdża do przystanku osobowego, zatrzymuje się, i chcę odtworzyć coś przez radio. Dzielenie torów? Serio? Jak podzielę na krótkie odcineczki, to pociąg będzie się musiał w punkcie zatrzymać, bo jak nie to jakiś event nie odpali. To hm, nie jest chyba rozwiązanie? No musi być jakiś inny sposób na to.
Kilka odcinków toru może mieć przypisane to samo zdarzenie jako Event0. Trzeba tylko pomyśleć, czy nie będziemy potrzebowali informacji o stanięciu pociągu w danym miejscu kilkukrotnie i odpowiednio się na tę okoliczność zabezpieczyć.

  Dodano: 19 Listopada 2014, 22:51:12
Otwieranie drzwi na przystankach zależy od przypisania do torów W4 oraz zrobienia rozkładu jazdy. Semafory wymagają tylko przypisania.
« Ostatnia zmiana: 19 Listopada 2014, 22:51:12 wysłana przez youBy »
Xoov
Powyższy post wyraża jedynie opinię autora w chwili publikacji. Autor zastrzega sobie prawo do zmiany poglądów bez podawania przyczyny, jak również informowania o tym.

Offline Stele

  • Zasłużony dla Symulatora
  • Wiadomości: 10133
    • Zobacz profil
  • Otrzymane polubienia: 2610
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #45 dnia: 19 Listopada 2014, 23:13:33 »
Eventy skanowane są rzutowane na trajektorię, wiec nie muszą fizycznie się znajdować koło krańca toru do którego są przypisane. Istotna jest tylko kolejność, by się wzajemnie nie zasłaniały. Czyli najpierw W4 a za nim wyjazdowy.
Zapowiedzi można zrobić na dziś. Przed stacją skan numeru pociągu, w peronach skan który tor zajęty. Do tego licznik ewentualnego opóźnienia.  Prowizorka straszna ale by działało nawet na Quarku. Tylko syntezatora do czytania nie mamy, więc mnóstwo wariantów zapowiedzi w osobnych plikach dźwiękowych musiałoby być.
Mój kanał youtube

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6308
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 339
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #46 dnia: 19 Listopada 2014, 23:34:54 »
Na Quarku detekcja pociągu ustala tor, na który zostanie skierowany, więc to jest wystarczające do uruchomienia zapowiedzi.
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline HTD

  • Wiadomości: 697
  • "Twoja stara mieszka w Boldach" xD
    • Zobacz profil
    • I like trains
  • Otrzymane polubienia: 30
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #47 dnia: 20 Listopada 2014, 00:00:59 »
Hm, co w rozkładzie może przeszkadzać dzrzwiom w otworzeniu? Moja misja na Zwierzyńcu jest już przejezdna dla AI, tylko jeszcze z tymi drzwiami trochę wariuje. Mam nadzieję, że znajdę gdzieś info jak przypisać semafory.

Offline Stele

  • Zasłużony dla Symulatora
  • Wiadomości: 10133
    • Zobacz profil
  • Otrzymane polubienia: 2610
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #48 dnia: 20 Listopada 2014, 00:13:06 »
Z drzwiami były jakieś cyrki na Bałtyku IR jak @Lelek tam dłubał. Nie pamiętam czy doszliśmy jednak do sedna problemu. Poszukaj, musi to być w ogólnodostępnych działach.
Mój kanał youtube

Offline HTD

  • Wiadomości: 697
  • "Twoja stara mieszka w Boldach" xD
    • Zobacz profil
    • I like trains
  • Otrzymane polubienia: 30
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #49 dnia: 20 Listopada 2014, 00:18:30 »
Hm, domyślam się, żeby pociąg nie pojechał jak nie został spełniony jakiś warunek (np nie wykonał próby hamulca) - wystarczy mu chyba tylko zabrać rozkład, i oddać jak spełni warunek.

Offline Stele

  • Zasłużony dla Symulatora
  • Wiadomości: 10133
    • Zobacz profil
  • Otrzymane polubienia: 2610
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #50 dnia: 20 Listopada 2014, 00:23:34 »
W sensie "putvalues Timetable:none/rozklad"? Wtedy wejdzie w manewrowy/pociągowy bez rozkładu i pojedzie według wskazań semaforów. Mógłbyś opisać algorytm jaki wymyśliłeś do tej próby?
Mój kanał youtube

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6308
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 339
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #51 dnia: 20 Listopada 2014, 00:25:19 »
Wpis w4n.inc w scenerii zawiera na końcu liczbę określającą, z której strony otwierać drzwi. Po dodaniu dwóch dodatkowych przechyleń trochę bardziej się to skomplikowało. Tzw. numer toru nie ma znaczenia.
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline Siecool

  • Deweloper
  • Wiadomości: 983
    • Zobacz profil
  • Otrzymane polubienia: 233
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #52 dnia: 30 Listopada 2014, 21:12:10 »
Zetknął się ktoś z sytuacją, że przypisanie jakiegokolwiek rozkładu jazdy (nawet pustego) do pociągu powoduje wywalenie się programu ("program wykonał nieprawidłową operację")?

Offline HTD

  • Wiadomości: 697
  • "Twoja stara mieszka w Boldach" xD
    • Zobacz profil
    • I like trains
  • Otrzymane polubienia: 30
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #53 dnia: 01 Grudnia 2014, 10:07:33 »
Zetknąłem się, jak nie zadeklarowałem komórki pamięci dla toru ;)

  Dodano: 01 Grudnia 2014, 10:19:13
@Ra:
Coś zmieniłem w moim przypisywaniu rozkładów i przestało działać. W związku z tym mam pytanie: czy pociąg musi być w trybie jazdy pociągowej żeby dostał rozkład? Wydaje mi się, że to właśnie zmieniałem - ustawiłem na początku scenariusza dla pociągu jazdę manewrową. Kiedy odpala event przypisujący mu rozkład - nic się nie dzieje - nie dostaję żadnego błędu, po prostu rozkład nie wskakuje. Czy w ogóle można eventem przestawić pociąg w tryb jazdy pociągowej?
« Ostatnia zmiana: 01 Grudnia 2014, 10:19:13 wysłana przez HTD »

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6308
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 339
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #54 dnia: 01 Grudnia 2014, 10:34:16 »
Tryb pociągowy włącza się zapalając semafor (tzn. komendą SetVelocity z niezerową wartością), albo wysyłając komendę Obey_train. Można też przełączyć tryb wysyłając rozkład (znaczenie ma początkowa prędkość). Ostatnia (chyba) możliwość to włączenie trybu pociągowego po podłączeniu do składu. Jeśli nie dostaje rozkładu, to najprawdopodobniej nie stoi na torze połączonym z komórką.

Po złożeniu paczki i jak będę miał trochę czasu, zajmę się dopracowywaniem szczegółów, na razie są inne priorytety. Obecnie nie było by dużym problemem wysyłanie rozkładu do któregokolwiek toru pod składem, żeby był on przekazany do właściwego pojazdu. Można by też wysyłać rozkład na odcinek izolowany, a nie na tor.
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline Stele

  • Zasłużony dla Symulatora
  • Wiadomości: 10133
    • Zobacz profil
  • Otrzymane polubienia: 2610
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #55 dnia: 01 Grudnia 2014, 13:40:37 »
Na Całkowie eksperymentowałem z jazdą manewrową z przejściem w oczekiwanie po podłączeniu i wysłanie rozkładu przez komórkę semafora wyjazdowego. Działało dobrze. Wraz z poprawkami w exe udało się to uprościć, ale chyba nadal jest to najbardziej optymalny sposób wysyłania rozkładu, bo pojazd może znajdować się na dowolnym odcinku-byle skanował semafor.
Mój kanał youtube

Offline HTD

  • Wiadomości: 697
  • "Twoja stara mieszka w Boldach" xD
    • Zobacz profil
    • I like trains
  • Otrzymane polubienia: 30
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #56 dnia: 01 Grudnia 2014, 14:53:24 »
Hm, dopóki nie ustawiłem pociągowi jazdy manewrowej, to rozkład się przesyłał normalnie, sprawdzałem to kilkanaście razy. W ostatniej poprawce testowałem jazdę manewrową AI i od tego czasu przestało mi działać wysyłanie rozkładu.

Jest tak - mój skład STOI na torze tym na którym ma stać. Jak wciskam F2 to pokazuje mi się "Shunt". Czyli pewnie dlatego nie przyjmuje rozkładu. Jak mu wyślę "Obey_train" to powinien zassać rozkład w następnym evencie, nie? Dopiero wieczorem będę mógł sprawdzić. BTW, przedostatnim razem testowałem jazdę samego AI i jakimś cudem ten rozkład zadziałał. Dziś pojechałem bez włączania AI w ogóle i niestety lipa. Co do tego, że stoję na właściwym torze - W4n mam przypisany do tego toru, jak wciskam 2x F2 to pokazuje mi się jego nazwa na liście, więc tor jest na 100% poprawny.

Co do otwierania drzwi - faktycznie znalazłem głupią literówkę w parametrach W4n.inc i od miejsca wystąpienia tego błędu drzwi się nie otwierały. Więc poprawiłem buga i teraz w ogóle się nie otwierają na żadnym przystanku ;)

include ip/pkp/w4n.inc Kociary#01 37.3472 -0.5 1544.95 0.0 0.0 0.0 0 1 end // lewa strona
include ip/pkp/w4n.inc Kociary_po#01 -709.854 0.0 -3169.92 2.04904 0.0 0.0 0 1 end // lewa strona
include ip/pkp/w4n.inc Chomikowo#01 904.467 0.984 -3970.39 -160.148 0.0 0.0 0 2 end // prawa strona
include ip/pkp/w4n.inc Psiary_Zagroda#01 1263.14 -0.5 -1517.38 -157.282 -1.0 3.2 0 1 end // lewa strona
include ip/pkp/w4n.inc Psiary_Poludnie#01 1756.68 0.984 1622.43 -179.956 0.0 0.0 0 2 end // prawa strona
include ip/pkp/w4n.inc Psiary_Srodmiescie#01 1757.81 -0.5 4734.79 -180.0 0.8 1.0 0 2 end // prawa strona
include ip/pkp/w4n.inc Jelonkowo#01 2103.92 0.0 7267.08 165.998 0.4 -4.0 0 2 end // prawa strona
include ip/pkp/w4n.inc Pawianowo#01 -672.70 0.0 6506.50 0.0 0.0 0.00 0 1 end // lewa strona

Na 100% poprawne to jest, parametr 9 odpowiada za otwieranie drzwi. Gdyby pozostałe parametry były nieprawidłowe, AI nie dojechałby do stacji końcowej, lub nie zatrzymywał się na przystankach, a jedzie, zatrzymuje się, tylko drzwi nie otwiera.

Gdzie mogę znaleźć jak zrobić odcinek izolowany? W quarku jest? Otaczam czymś fragment definicji torów, czy po prostu definiuję sam odcinek od pierwszego toru do ostatniego? Czy odcinek izolowany ma jeszcze jakąś funkcję poza grupowaniem torów?

Rozwiązanie z semaforem jest lepsze, ale niestety nie potrafię go wdrożyć, chyba, że ktoś posiada jakąś dokumentację odnośnie tego jak to zrobić od strony plików.
Jeśli chodzi o przypisywanie W4 do torów (i tym samym uzyskanie działających rozkładów jazdy) nauczyłem się to robić i mogę napisać pełną dokumentację do tego. Co więcej, myślę, że da się to dość bezboleśnie wdrożyć na wszystkich sceneriach. W czasie nie mierzonych w latach, a raczej w tygodniach.

Gdybym dostał jakieś namiary na obsługę semaforów, mógłbym to od razu robić porządnie. Plus pracuję nad narzędziem wspomagającym tę pracę. Mam takie skrzywienie, że nie znoszę robić rzeczy, które może robić jakiś automat, wolę pisać automaty. Lub półautomaty, jeśli stworzenie pełnego automatu to "rocket science". Jedyne czego mi brakuje to dokumentacja. Jakakolwiek. Mogą być luźne notatki na serwetce, albo "zobacz sobie w pliku tym tam, linia 30, tam masz". Na urlop idę od 15-go i zamierzam trochę porozwijać rzeczy :)

  Dodano: 01 Grudnia 2014, 14:54:16
Aha, jeszcze jedno, czy te #tagi są niezbędne? Po co one są? A jakby ich nie było to by nie działało?

Offline Stele

  • Zasłużony dla Symulatora
  • Wiadomości: 10133
    • Zobacz profil
  • Otrzymane polubienia: 2610
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #57 dnia: 01 Grudnia 2014, 15:20:37 »
Za hasztagiem masz coś, nadającego W4 unikalną nazwę. Przed masz nazwę stacji, która jest porównywana z rozkładem. Bez niego mógłby być tylko jeden W4 na posterunek by to działało.
A co do semafora: to event przypisz_rozklad updatevalues 0 nazwasem_sem_mem Timetable:nazwa_rozkladu tryb przesunięcie_rozkładu endevent
Mój kanał youtube

Offline HTD

  • Wiadomości: 697
  • "Twoja stara mieszka w Boldach" xD
    • Zobacz profil
    • I like trains
  • Otrzymane polubienia: 30
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #58 dnia: 01 Grudnia 2014, 16:24:34 »
Ok, a jak sprawdzić czy semafor jest prawidłowo przypisany do toru? Zauważyłem, że AI na trasie, którą zmieniam potrafi zignorować niektóre S1 - nie byłoby to możliwe, gdyby semafor był prawidłowo przypisany.

Offline youBy

  • Deweloper
  • Wiadomości: 6164
  • Co tam?
    • Zobacz profil
    • Automat Weryfikujący Regulację i Lambdę
  • Otrzymane polubienia: 870
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #59 dnia: 01 Grudnia 2014, 16:31:06 »
Dla każdego semafora należy sprawdzić, czy w jakimś torze jest wpisane od niego zdarzenie _sem_info, następnie trzeba zobaczyć, czy orientacja toru pasuje do kierunku zdarzenia (event1/2) i czy to jest właściwy tor (najbliższy).
Xoov
Powyższy post wyraża jedynie opinię autora w chwili publikacji. Autor zastrzega sobie prawo do zmiany poglądów bez podawania przyczyny, jak również informowania o tym.