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

0 użytkowników i 2 Gości przegląda ten wątek.

Offline HTD

  • Wiadomości: 702
  • "Twoja stara mieszka w Boldach" xD
    • Zobacz profil
    • I like trains
  • Otrzymane polubienia: 33
Jak zrobić rozkład dynamiczny?
« dnia: 08 Listopada 2014, 08:55:30 »
Przejechałem sobie wczoraj testowo scenerię quarkmce2007 na pierwszym składzie z listy. Ucieszyłem się, że nagle pojawił mi się rozkład jazdy. Znalazłem w pliku scenerii, gdzie dzieje się ta magia, jednak bez dokumentacji (z samych komentarzy w kodzie) raczej nie domyślę się, jak zrobić takie podstawianie rozkładu dla innej scenerii. Mniejsza o to. Wiem jak robić rozkłady, a to już coś. W sporej ilości bieżących scenerii rozkładów brak, albo jak są, to chyba do jakiejś innej wersji tej scenerii, albo zakładają, że PKP musi się zawsze spóźniać i to sporo ;)

Bardzo pozytywnie zaskoczyło mnie w tym quarku, że po dojechaniu do pierwszej stacji info pod F1 pokazało mi następną stację w rozkładzie! BOMBA! Wreszcie nie muszę co chwila kukać na drugi monitor i sprawdzać co chwila "jak stoję z rozkładem". To samo jak wciskam F3 - wyświetlany rozkład zaczyna się od stacji, na której ostatnio się zatrzymałem. Dodatkowo, czasami mam pierwszą pozycję w tym rozkładzie podświetloną na zielono. Czemu tak jest? Jakaś nagroda za planowy dojazd? ;) Bo o ile dobrze pamiętam, jak przyjechałem z minutowym opóźnieniem to nie było tej zielonej linii. Ale znów, mniejsza o to.

Chciałbym zrobić takie rozkłady wszędzie gdzie się tylko da. Pytanie tylko - jak? Ja wiem, że mogę sobie to drogą żmudnego orania forum, tudzież metodą reverse-engineering dojść sam, ale w czasie jak będę tracił czas na odtwarzanie tego co inni już zrobili - mógłbym tworzyć naprawdę użyteczne rozkłady jazdy i udostępnić je wszystkim jak zrobię. W ogóle, czy da się to zrobić w prosty sposób, tzn mam namierzony w scenerii event zatrzymania się na stacji, pcham rozkład do przodu jakąś "magiczną sekwencją" i już? Czy trzeba napisać skomplikowany skrypt wymagający wiedzy na poziomie tworzenia scenerii od zera? Jeśli ten pierwszy przypadek (nie trzeba roku doświadczenia w tworzeniu scenerii) - to proszę o info - i natychmiast biorę się za robotę.

Ogólnie pracuję nad większym projektem, do którego potrzebuję dopieszczonych scenerii (dopieszczam sam), a rozkłady jazdy są jego kluczową częścią.

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6355
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 388
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #1 dnia: 08 Listopada 2014, 13:04:35 »
Zielony kolor w rozkładzie oznacza, że upłynął czas odjazdu i żaden semafor nie blokuje dalszej jazdy. W momencie zmiany koloru na zielony powinien być też odegrany dźwięk odjazdu, podawany przez kierownika.

Aby działały rozkłady:
1. Plik z rozkładem musi być prawidłowo napisany, czyli musi być zgodny z algorytmem parsowania (kiedyś opisałem na forum).
2. W scenerii muszą się znajdować aktywne W4 z nazwą stacji (przypisane do torów), a jednocześnie mieć unikalne nazwy (inne końcówki po znaku #). Opis tego też pewnie gdzieś jest.
3. Nazwy stacji w W4 muszą być zgodne z tymi w rozkładzie, z uwzględnieniem spacji (zamienianych na podkreślenia), skrótów, znaków diakrytycznych oraz wielkich liter.

W ostatnim czasie kolega Lelek przerobił większość rozkładów z wersji PDF na parsowalną przez EU07.EXE i uzupełnił wpisy taboru. Natomiast pozostaje kwestia aktywnych W4 na stacjach, które miały już być uzupełnione 2 lata temu, a raczej nadal nie są. Na pewno W4 są na Quarku (robiłem sam), być może youBy poprawił Krzyżową. Lelek poprawiał Bałtyk Interregio, ale tam W4 zostały uruchomione chyba jedynie pod ową misję. Co do pozostałych scenerii, to nie kojarzę (nie jestem w stanie śledzić wszystkiego).
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline SKP

  • Zasłużony dla Symulatora
  • Wiadomości: 1693
  • Stwierdzanie Końca Pociągu
    • Zobacz profil
    • Śledź na bieżąco odjazdy z Twojego ulubionego przystanku - Gdańsk
  • Otrzymane polubienia: 36
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #2 dnia: 08 Listopada 2014, 13:44:50 »
Na Całkowie SN61 też ostatnio zrobiłem dynamiczne rozkłady. Poprawiał to po mnie Stele, więc na pewno wszystko musi być cacy.
Scenarzysta teoretyk. Trasopisarz doświadczalny.

Offline HTD

  • Wiadomości: 702
  • "Twoja stara mieszka w Boldach" xD
    • Zobacz profil
    • I like trains
  • Otrzymane polubienia: 33
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #3 dnia: 08 Listopada 2014, 21:32:59 »
Aby działały rozkłady:
1. Plik z rozkładem musi być prawidłowo napisany, czyli musi być zgodny z algorytmem parsowania (kiedyś opisałem na forum).
2. W scenerii muszą się znajdować aktywne W4 z nazwą stacji (przypisane do torów), a jednocześnie mieć unikalne nazwy (inne końcówki po znaku #). Opis tego też pewnie gdzieś jest.
3. Nazwy stacji w W4 muszą być zgodne z tymi w rozkładzie, z uwzględnieniem spacji (zamienianych na podkreślenia), skrótów, znaków diakrytycznych oraz wielkich liter.

OK. Oto co zmieniłem w scenerii zwierzyniec_ed72, żeby dynamiczny rozkład zadziałał:

Po pierwsze rozkład:
______________________________________________________________
[ Rodzaj i numer pociągu                         | ROJ65113_1  ]
[________________________________________________|_____________]
[                                                | Kociary     ]
[ Relacja pociągu                                |  Pawianowo  ]
[________________________________________________|_____________]
[ Wymagany % ciężaru hamującego                  | 88%         ]
[________________________________________________|_____________]
[ Seria i obciążenie lokomotywy                  | ED72 192    ]
[________________________________________________|_____________]
[ 0.0   | 80  | Kociary                          2        |    ]
[       |     | R1,L,H,RT,PP                     2   6.38 |    ]
[       |     |----------------------------------2--------|----]
[       |     | Kociary_podg                     2        |    ]
[       |     | R1,+,L,H,PP                      2   6.43 |    ]
[       |_____|----------------------------------2--------|----]
[ 84.8  | 70  | Kociary_po                       2   6.45 | 1  ]
[       |     | R1                               2   6.46 |    ]
[       |     |----------------------------------2--------|----]
[ 81.0  |     | Chomikowo                        2   6.53 | 4  ]
[       |     | R1,+,L,H                         2   6.54 |    ]
[       |_____|----------------------------------2--------|----]
[ 78.4  | 100 | Psiary_Zagroda                   2   6.59 | 3  ]
[       |     | R1,L,H,RT,PP                     2   7.00 |    ]
[       |     |----------------------------------2--------|----]
[ 75.0  |     | Psiary_Poludnie                  2   7.04 | 2  ]
[       |     | R1,+,L,H,PP                      2   7.04 |    ]
[       |_____|----------------------------------2--------|----]
[ 72.0  | 60  | Psiary_Srodmiescie               2   7.10 | 2  ]
[       |     | R1,+,L,H,RT,PP                   2   7.12 |    ]
[       |     |----------------------------------2--------|----]
[ 2.8   |     | Jelonkowo                        2   7.18 | 4  ]
[       |     | R1,+,L,H,T                       2   7.19 |    ]
[       |_____|----------------------------------2--------|----]
[ 8.1   | 70  | Pawianowo                        2   7.31 | 8  ]
[       |     | R1,L,H,RT                        2        |    ]
[_______|_____|__________________________________2________|____]

Oczywiście rozkład jest prawidłowo przypisany w głównym pliku scenerii:
FirstInit

trainset roj65113_1 tor_trasa_a_start_lok 10.0 0.0

Oczywiście rzeczy związane ze zmienioną godziną odjazdu względem oryginału także zostały prawidłowo zastąpione. Rozkład pod F3 wyświetla się prawidłowo.
Ze wskaźnikami W4 w scenerii jest coś nie tak. Znalazłem je w pliku wskazniki.scm, który jest ładowany przez główny plik scn.
Błędy które znalazłem to przypisane nazwy nie odpowiadające nazwom z rozkładu i dublujące się identyfikatory po znaku "#". Poprawiłem to jak umiałem.

Oto fragment dotyczący wskaźników po zmianie:
// A
include;ip/pkp/w4.inc;Kociary#01;22.5;0.0;1949.98;-180.0;0.0;-5.8;end
include;ip/pkp/w4.inc;Kociary_podg#02;-652.5;0.0;6949.3;-180.0;6.0;-3.8;end
include;ip/pkp/w4.inc;Kociary_po#03;-702.713;-0.5;-2863.59;-175.661;-5.0;-2.6;end
include;ip/pkp/w4.inc;Chomikowo#04;781.144;0.0;-4326.69;19.4234;0.0;0.0;end
include;ip/pkp/w4.inc;Psiary_Zagroda#05;1159.05;-0.5;-1960.31;2.97688;0.0;0.0;end
include;ip/pkp/w4.inc;Psiary_Poludnie#06;0;-50;0;-180.0;6.0;-3.8;end
include;ip/pkp/w4.inc;Psiary_Srodmiescie#07;1762.5;-0.5;4385.54;0.0;-3.0;-4.2;end
include;ip/pkp/w4.inc;Jelonkowo#08;2171.03;0.0;7022.12;-14.0857;0.0;0.0;end
include;ip/pkp/w4.inc;Pawianowo#09;-657.359;0.0;6949.3;-180.0;-3.4;-2.4;end
// B
include;ip\pkp\w4n.inc;Chomikowo#103;904.467;0.984252;-3970.39;-160.148;end //Passive
include;ip\pkp\w4n.inc;Chomikowo#104;792.498;0.984252;-4329.26;18.7874;end //Passive
include;ip\pkp\w4n.inc;Psiary_Zagroda#208;1275.45;0.0;-1527.14;-160.513;end //Passive
include;ip\pkp\w4n.inc;Psiary_Zagroda#207;1270.15;0.984252;-1526.33;-157.244;end //Passive
include;ip\pkp\w4n.inc;Psiary_Poludnie#301;1747.81;0.0;1615.02;180.0;end //Passive
include;ip\pkp\w4n.inc;Psiary_Puludnie#302;1756.68;0.984252;1622.43;-179.956;end //Passive
include;ip\pkp\w4n.inc;Psiary_Poludnie#303;1762.34;0.0;1620.42;-179.771;end //Passive
include;ip\pkp\w4n.inc;Psiary_Poludnie#304;1772.2;0.984252;1623.08;-179.988;end //Passive
include;ip\pkp\w4n.inc;Psiary_Poludnie#305;1753.3;0.0;1325.58;0.0;end //Passive
include;ip\pkp\w4n.inc;Psiary_Poludnie#306;1762.35;0.0;1327.4;0.0;end //Passive
include;ip\pkp\w4n.inc;Psiary_Poludnie#307;1768.57;0.984252;1325.76;0.0;end //Passive
include;ip\pkp\w4n.inc;Psiary_Poludnie#308;1777.41;0.0;1333.35;0.0;end //Passive
// C
include;ip/pkp/w4.inc;none;-652.5;0.0;6949.3;-180.0;6.0;-3.8;end
include;ip/pkp/w4.inc;none;-672.179;-0.5;6874.48;-180.0;0.0;0.0;end
include;ip/pkp/w4.inc;none;-662.819;0.0;6580.13;0.0;0.0;0.0;end
include;ip/pkp/w4.inc;none;-709.854;0.0;-3169.92;2.04904;0.0;0.0;end
include;ip/pkp/w4.inc;none;2103.92;0.0;7267.08;165.998;0.4;-4.0;end
include;ip/pkp/w4.inc;none;2180.35;0.0;7024.51;-14.3074;5.0;-5.4;end
include;ip/pkp/w4.inc;none;1757.81;-0.5;4734.79;-180.0;0.8;1.0;end
include;ip/pkp/w4.inc;non;1767.5;0.0;4734.79;-180.0;0.0;0.0;end
include;ip/pkp/w4.inc;none;1772.07;-0.5;4385.54;0.0;-3.0;-3.6;end
include;ip/pkp/w4.inc;none;1263.14;-0.5;-1517.38;-157.282;-1.0;3.2;end
include;ip/pkp/w4.inc;none;1164.1;-0.5;-1960.66;2.97688;0.0;0.0;end
include;ip/pkp/w4.inc;none;1149.09;-0.5;-1959.87;2.97688;0.0;0.0;end
include;ip/pkp/w4.inc;none;916.329;0.0;-3969.08;-159.272;0.0;0.0;end
include;ip/pkp/w4.inc;none;43.1745;-0.5;1600.14;0.0;1.6;0.0;end
include;ip/pkp/w4.inc;none;37.3472;-0.5;1544.95;0.0;0.0;0.0;end
include;ip/pkp/w4.inc;none;27.486;0.0;1544.99;0.0;-3.6;2.0;end
include;ip/pkp/w4.inc;none;42.6241;0.0;1899.53;-180.0;0.0;0.0;end
include;ip/pkp/w4.inc;none;-667.5;0.0;6874.59;-180.0;5.0;-0.4;end

Domyślam się, że grupa A (sam tak wyróżniłem część wpisów) to interesujące nas wskaźniki związane z głównym rozkładem jazdy. Grupa B wg mnie mogą dotyczyć innego składu lub innej misji. Grupa C, bez przypisanych nazw - to pewnie dekoracyjne W4, które nie są powiązane z rozkładem jazdy.

Sceneria startuje oczywiście o odpowiednim czasie, tak, żeby o 6:38 można było ruszyć z Kociar. W Kociarach, jakieś 2m przed czołem pociągu mam W4. Stoję i czekam na sygnał odjazdu. Ruszam po komendzie kierownika, planowo o 6:38. Mijam W4, semafor wyjazdowy, jadę jeszcze minutę. Rozkład nie działa, informacja pod F1 jest bez zmian. To samo jeśli chodzi o F3.

Co teraz? Gdzie (i jak) szukać błędów?

Offline SKP

  • Zasłużony dla Symulatora
  • Wiadomości: 1693
  • Stwierdzanie Końca Pociągu
    • Zobacz profil
    • Śledź na bieżąco odjazdy z Twojego ulubionego przystanku - Gdańsk
  • Otrzymane polubienia: 36
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #4 dnia: 08 Listopada 2014, 21:37:14 »
Parametry w4n.inc wyglądają tak:
p1=stationname, p2,p3,p4=location, p5=rotation, p8=track number, p9=platform side (1:left, 2:right, 3:both)U Ciebie jest inaczej, popraw to.
Scenarzysta teoretyk. Trasopisarz doświadczalny.

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6355
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 388
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #5 dnia: 08 Listopada 2014, 21:44:08 »
Mogę się mylić, ale w4.inc to tylko ozdoba i nie ma eventów. Co widać w torach, to sprawdzisz wciskając dwa razy [F2], będąc w kabinie. Unikalność nazwy dotyczy całego napisu, a nie tylko części po znaku # — czyli tylko w ramach jednej stacji nie może się powtórzyć ciąg znaków za # (nie muszą to być cyfry, może być np. litera stojącego dalej semafora).
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline SKP

  • Zasłużony dla Symulatora
  • Wiadomości: 1693
  • Stwierdzanie Końca Pociągu
    • Zobacz profil
    • Śledź na bieżąco odjazdy z Twojego ulubionego przystanku - Gdańsk
  • Otrzymane polubienia: 36
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #6 dnia: 08 Listopada 2014, 21:52:16 »
W4.inc nie ma żadnych eventów. Wydawało mi się, że wszędzie są we wpisach w4n.inc.

Jeśli już zmienisz wszystkie w4 na aktywne i dopiszesz im właściwe parametry, to pamiętaj o dobrym trybie pociągu. Też nie wiedziałem, dlaczego mi to nie działa (choć chyba powinienem był), i dopiero Stele mnie oświecił. Ale pierw popraw te wpisy.
Scenarzysta teoretyk. Trasopisarz doświadczalny.

Offline HTD

  • Wiadomości: 702
  • "Twoja stara mieszka w Boldach" xD
    • Zobacz profil
    • I like trains
  • Otrzymane polubienia: 33
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #7 dnia: 08 Listopada 2014, 22:29:12 »
Mogę się mylić, ale w4.inc to tylko ozdoba i nie ma eventów. Co widać w torach, to sprawdzisz wciskając dwa razy [F2], będąc w kabinie. Unikalność nazwy dotyczy całego napisu, a nie tylko części po znaku # — czyli tylko w ramach jednej stacji nie może się powtórzyć ciąg znaków za # (nie muszą to być cyfry, może być np. litera stojącego dalej semafora).
Sprawdzałem co widzę dojeżdżając do W4 - nic, tylko nazwy torów. Powinienem widzieć coś jeszcze na tym widoku po 2x [F2]?

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6355
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 388
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #8 dnia: 08 Listopada 2014, 22:42:42 »
Nazwę najbliższego W4 i semafora.
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline HTD

  • Wiadomości: 702
  • "Twoja stara mieszka w Boldach" xD
    • Zobacz profil
    • I like trains
  • Otrzymane polubienia: 33
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #9 dnia: 08 Listopada 2014, 23:04:57 »
Nie widzę.
...

Reg. obowiązki 2.
Nie tak wstawiamy zdjęcia, usunąłem. Zapoznaj się z Regulaminem.
Benek
« Ostatnia zmiana: 08 Listopada 2014, 23:13:53 wysłana przez Benek »

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6355
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 388
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #10 dnia: 08 Listopada 2014, 23:26:23 »
Skoro nie widzisz, to W4 nie jest przypisany do toru i obiekt zarządzający składem (i rozkładem) też go nie widzi.
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline HTD

  • Wiadomości: 702
  • "Twoja stara mieszka w Boldach" xD
    • Zobacz profil
    • I like trains
  • Otrzymane polubienia: 33
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #11 dnia: 09 Listopada 2014, 08:06:47 »
Jak znaleźć w scenerii tor (ściślej numer toru) do którego chcę przypisać W4 (ściślej w4n.inc, w quarku widzę że masz nazwy stacji przypisane do w4n)?
Czy jeśli jeden w4n będzie poprawny, zadziała? Tzn czy błędy w pozostałych W4 zablokują przejście nawet pierwszej, poprawnej pozycji w rozkładzie?

  Dodano: 09 Listopada 2014, 09:21:23
W4.inc nie ma żadnych eventów. Wydawało mi się, że wszędzie są we wpisach w4n.inc.

Jeśli już zmienisz wszystkie w4 na aktywne i dopiszesz im właściwe parametry, to pamiętaj o dobrym trybie pociągu. Też nie wiedziałem, dlaczego mi to nie działa (choć chyba powinienem był), i dopiero Stele mnie oświecił. Ale pierw popraw te wpisy.

Możesz mnie oświecić o co chodzi z trybem pociągu? I w jakiej kwestii Cię Stele oświecił? Dlaczego Ci to nie działało? I jak znaleźć ten numer toru? Chodzi mi o scenerię Zwierzyniec (misja dla ED72) - domyślam się, że jest w niej więcej błędów niż te, które wkleiłem. Tak czy inaczej, palę się do roboty, która już mogłaby iść do przodu, błędy mogłyby zostać w tej chwili poprawiane, gdybym tylko znalazł info / dokumentację, cokolwiek, co pozwoli to ruszyć.
« Ostatnia zmiana: 09 Listopada 2014, 09:21:23 wysłana przez HTD »

Offline muri

  • Wiadomości: 627
    • Zobacz profil
  • Otrzymane polubienia: 5
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #12 dnia: 09 Listopada 2014, 11:31:31 »
Tor najprościej znajdziesz w Rainsted, na podglądzie scenerii. Klikasz w potrzebny tor i gdzieśtam widać jego nazwę (chyba w pasku tytułowym okna).
Tryb pociągu - może być jazda pociągowa, lub manewrowa. Z grubsza chodzi o to, że rozkłady są potrzebne dla AI, a dla gracza pełnią rolę drugorzędną. Tak więc żeby pociąg "zassał" rozkład muszą być eventy, które odpalą go tak jakby miał być kierowany przez AI. Czyli cośtam cośtam, "ObeyTrain". Poczytaj tutaj: http://eu07.pl/forum/index.php/topic,25206.msg369200.html
« Ostatnia zmiana: 09 Listopada 2014, 11:38:23 wysłana przez muri »

Offline HTD

  • Wiadomości: 702
  • "Twoja stara mieszka w Boldach" xD
    • Zobacz profil
    • I like trains
  • Otrzymane polubienia: 33
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #13 dnia: 09 Listopada 2014, 12:33:25 »
Przeczytałem, ale nadal nie wiem jak wysłać pociągowi obey_train.

Po ostatniej aktualizacji Rainsted edytor wysiadł. Stale chce się pobierać z neta, ale instalator się od razu zawiesza. Po anulowaniu pobierania z neta edytor otwiera się pusty i nie ładuje plików RSF.
Ok, zaraz sobie zrobię downgrade do poprzedniej wersji, ale żeby nie tracić czasu - jak wyszukać ten tor? Z tego co czytałem, większość torów w scenerii nie jest nazwanych. Mogę znaleźć tor nazwany w pobliżu, i nawet doklikać się w edytorze do tego toru przy którym stoi W4. Ale jak znajdę jego numer? W4n.inc przyjmuje jako przedostatni parametr NUMER a nie nazwę toru. W sceneriach w których to działa to jest mała liczba, od 0 do 8 (powiedzmy). Domyślam się, że nie jest to UID elementu graficznego, to jakiś inny rodzaj numeru.

Na marginesie, czy mogę rozwijać i poprawiać działanie scenerii BEZ 3DS max? Wszystkie tutki odnoszą się do użycia tego softu i jego skryptów. Rozumiem, że jest to niezbędne osobom projektującym ukształtowanie i wygląd scenerii. Ja chcę zmienić wyłącznie jej działanie. Ogólnie mając gotową mapę z torami można by tworzyć cuda w samym kodzie. Czy tak się nie da?

Obiecuję, że sam napiszę pełną dokumentację, jak tylko uda mi się zrobić dynamiczny rozkład jazdy dla Zwierzyńca. Mogę się założyć, że w krótkim czasie wszystkie scenerie będą miały dynamiczne rozkłady, nawet te zupełnie porzucone przez swoich twórców.


  Dodano: 09 Listopada 2014, 13:11:04
Otworzyłem scenerię w edytorze RSF. Znalazłem moje W4. Użyłem opcji przypisz do toru. Wzkaźnik magicznie dostał numer toru 0. Super. Ale nagle przesunął się kawał drogi od swojego miejsca, zupełnie bez sensu. Nie wiem jak zmienić jego położenie, żeby wrócił na miejsce. W edytorze nie mogę przesuwać obiektów na mapie.
« Ostatnia zmiana: 09 Listopada 2014, 13:11:04 wysłana przez HTD »

Offline muri

  • Wiadomości: 627
    • Zobacz profil
  • Otrzymane polubienia: 5
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #14 dnia: 09 Listopada 2014, 13:35:28 »
Przeczytałem, ale nadal nie wiem jak wysłać pociągowi obey_train.
No własnie to jest najdziwniejsze rozwiązanie w symulatorze - nie da się oddziaływac bezpośrednio na dynamic. Z tego co kojarzę, to działa to tak, że do toru na którym stoi dynamic musisz przypisać komórkę pamięci (node (cośtam) memcell (cośtam)). I wtedy musisz wywołać event PutValues (a może GetValues? nie pamiętam...) z nazwą tej komórki i wartością Obey_train (cośtam) (cośtam) - szczegóły przeczytaj sobie w scenery.doc

Offline HTD

  • Wiadomości: 702
  • "Twoja stara mieszka w Boldach" xD
    • Zobacz profil
    • I like trains
  • Otrzymane polubienia: 33
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #15 dnia: 09 Listopada 2014, 13:43:33 »
A gdzie mogę znaleźć mityczny scenery.doc, którego nigdzie nie ma? ;)

Offline muri

  • Wiadomości: 627
    • Zobacz profil
  • Otrzymane polubienia: 5
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #16 dnia: 09 Listopada 2014, 13:47:03 »
Maszynowy Święty Graal :) Tutaj wersja OnLine: http://rainsted.com/pl/Symulator/MaSzyna/Scenery.doc#node_.E2.80.A6_memcell. A old-school'owa wersja OffLine m.in. tutaj: http://eu07.pl/misc/download/doc/. Raczej opieraj się na tej nowej, bo w starej niektóre rzeczy mogły się już zdezaktualizować.
« Ostatnia zmiana: 09 Listopada 2014, 13:55:10 wysłana przez muri »

Offline SKP

  • Zasłużony dla Symulatora
  • Wiadomości: 1693
  • Stwierdzanie Końca Pociągu
    • Zobacz profil
    • Śledź na bieżąco odjazdy z Twojego ulubionego przystanku - Gdańsk
  • Otrzymane polubienia: 36
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #17 dnia: 09 Listopada 2014, 13:51:42 »
To też Ci się zapewne przyda:
http://rainsted.com/pl/Symulator/MaSzyna/RFC-commands

Ogarnij, jak to jest zrobione na innych sceneriach, bo prawie każdy scenariusz to wykorzystuje.
Scenarzysta teoretyk. Trasopisarz doświadczalny.

Offline muri

  • Wiadomości: 627
    • Zobacz profil
  • Otrzymane polubienia: 5
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #18 dnia: 09 Listopada 2014, 13:54:41 »
A z tym szukaniem toru to mi chodziło o takie coś: odpalasz podgląd scenerii (czyli wybierasz scenerię -> kara "struktura" -> wczytaj wszystkie include bez parametrów -> karta debugger -> podgląd terenu (to nie jest edytor)), tam odznaczasz teren i trakcję (żeby zostały same tory) no i szukasz swojego toru. Klikasz w niego, i na pasku tytułowym masz nazwę i plik:linię w którym jest jego definicja (zał). No to odpalasz ten plik, nadajesz mu nazwę jak jej nie ma, no i ustawiasz event(1/2) na ten wskaźnik w4 co potrzebujesz. A jak to zrobić edytorem to Ci nie powiem - pytanie do bardziej obcykanych w jego użyciu :)

  Dodano: 09 Listopada 2014, 13:58:13
Generalnie, jako że na @Ra'owej wiki brakuje sensownego menu żeby poczytać dokumentację, wejdź tutaj: http://rainsted.com/pl/Specjalna:Wszystkie_strony i poczytaj to co uznasz za sensowne ;)
« Ostatnia zmiana: 09 Listopada 2014, 13:58:13 wysłana przez muri »

Offline HTD

  • Wiadomości: 702
  • "Twoja stara mieszka w Boldach" xD
    • Zobacz profil
    • I like trains
  • Otrzymane polubienia: 33
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #19 dnia: 09 Listopada 2014, 14:10:29 »
Zrobiłem 2 rzeczy - najpierw spróbowałem zrobić eksport scenerii do RSF, następnie wyszukałem mój W4 w zakładce "Sygnały" (jest pod nazwą Kociary#01 - taką mu nadałem). Kliknąłem "Przypisz do zaznaczonego toru", oczywiście uprzednio zaznaczając właściwy tor. Przypisanie się wykonało, wskaźnik uciekł jakieś 100m od miejsca w którym stał. Bug? Ponadto dostał jakiś dziwnych właściwości, które nie za bardzo idzie edytować, bo jak próbuję go ustawić bliżej toru - natychmiast ucieka z powrotem tam gdzie uciekł za pierwszym razem.
Drugą rzeczą było przejść w Rainsted do zakładki Debugger, potem "Podgląd teranu (to nie jest edytor)". Co ciekawe, tam się da też wyszukać ten W4, co jeszcze ciekawsze, jest opcja przypisz do toru i opcja ta powoduje jakąś permanetną zmianę, bo po wyjściu z Rainsted i odpaleniu jeszcze raz to przypisanie niby zostaje. Po ponowynym eksporcie do RSF wskaźnik także jest przypisany do toru. Niby ok. Ale odpalam symka, podjeżdżam do drania - wciskam 2x F2 i nadal lipa. Silnik nie widzi obiektu z jakiegoś powodu. A jak nie widzi, to dalej nie ruszę, na nic zda się grzebanie w eventach. Co właściwie się stało, jak odpaliłem to przypisanie? Gdzie to się zapisało? W pliku SCM? Jeśli tak, to słabo - bo jak mam to wydać jako dodatek? Wg zasad tworzenia dodatków - nie wolno modyfikować istniejących plików. Mogę oczywiście skopiować ten cały plik z inną nazwą, ale to trochę nieeleganckie - kopiować jeden z dłuższych plików, żeby zmienić w nim kilka bajtów.
Aha, jeszcze jedno - plik wzkazniki.inc się nie zmienił. Dziwne.

Reg. obowiązki 11a.
Proszę poprawić.
Benek


Usunąłem cytat, może tak być?
« Ostatnia zmiana: 09 Listopada 2014, 14:18:41 wysłana przez HTD »

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6355
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 388
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #20 dnia: 09 Listopada 2014, 14:32:57 »
Przeczytałem, ale nadal nie wiem jak wysłać pociągowi obey_train.
Najprościej to zapalić na semaforze sygnał zezwalający na jazdę pociągową. Tylko że musi być w trybie czuwania, inaczej trzeba wysyłać komendę przez komórkę i tor, aby go "obudzić".

Po ostatniej aktualizacji Rainsted edytor wysiadł. Stale chce się pobierać z neta, ale instalator się od razu zawiesza. Po anulowaniu pobierania z neta edytor otwiera się pusty i nie ładuje plików RSF.
Był błąd z otwieraniem pliku RSF po ostatnich zmianach. Poprawiłem. Jak widać, nie ma kto testować i zgłaszać mi, że coś nie działa — wersja jest dostępna od 2 listopada, a zgłoszenie błędu dopiero dziś.

Mogę znaleźć tor nazwany w pobliżu, i nawet doklikać się w edytorze do tego toru przy którym stoi W4. Ale jak znajdę jego numer? W4n.inc przyjmuje jako przedostatni parametr NUMER a nie nazwę toru. W sceneriach w których to działa to jest mała liczba, od 0 do 8 (powiedzmy). Domyślam się, że nie jest to UID elementu graficznego, to jakiś inny rodzaj numeru.
Istotna jest nazwa W4 (złożona z nazwy stacji, znaku # oraz dowolnych znaków czyniących ją unikalną, żeby AI potrafiło jednoznacznie określić współrzędne i obliczyć rzut ich rzut na tor). Coś takiego jak numer toru nie ma znaczenia. Jeśli już, to numer toru wynika z budowy stacji (kierunku wzrostu kilometrażu linii, na której się ona znajduje).

Na marginesie, czy mogę rozwijać i poprawiać działanie scenerii BEZ 3DS max?
Wskazane by było, bo to dosyć drogie środowisko. Ale jakoś nikt nie ma tyle samozaparcia, żeby coś w tym zakresie zmienić.

Otworzyłem scenerię w edytorze RSF. Znalazłem moje W4. Użyłem opcji przypisz do toru. Wzkaźnik magicznie dostał numer toru 0. Super. Ale nagle przesunął się kawał drogi od swojego miejsca, zupełnie bez sensu. Nie wiem jak zmienić jego położenie, żeby wrócił na miejsce. W edytorze nie mogę przesuwać obiektów na mapie.
Obliczanie odległości od toru działa dla prostych, łuków okręgu oraz krzywych przejściowych. Nie działa w ogólności dla krzywych Béziera, bo na ogół się ich nie używa, a przy eksporcie do RSF mogą się pojawić. Żeby przesunąć W4 na mapie trzeba przełączyć się na warstwę sygnałów i użyć guzika Przestaw (albo podobna nazwa). Po przypisaniu do toru najprościej jest otworzyć Własności obiektów i wpisać odległość od toru.

  Dodano: 09 Listopada 2014, 14:42:56
Co właściwie się stało, jak odpaliłem to przypisanie?
Zmodyfikowałeś scenerię wczytaną do pamięci.

Gdzie to się zapisało?
Nigdzie. Rainsted unika modyfikowania plików, ponieważ nie wszystko działa tak, jak teoretycznie powinno i użytkownik kilkoma ruchami mógłby sobie trwale uszkodzić scenerię. Oczywiście, można to zmienić, ale ja bym musiał mieć czas na poprawianie kodu, a ktoś by musiał to regularnie testować i raportować mi, co jeszcze poprawić.

Wg zasad tworzenia dodatków - nie wolno modyfikować istniejących plików. Mogę oczywiście skopiować ten cały plik z inną nazwą, ale to trochę nieeleganckie - kopiować jeden z dłuższych plików, żeby zmienić w nim kilka bajtów.
Źle to zrozumiałeś.

  Dodano: 09 Listopada 2014, 15:20:53
Jeszcze dodam, że edytor w Rainsted powstał głównie pod kątem poprawienia scenerii PMPPW, której rozrost niezgodny z mapami stawiał nowe wyzwania, których ogarnięcie wydawało się prostsze, gdyby tory jednak pasowały do map. Niestety w miarę przekładania torów ujawniały się różne inne braki koncepcyjne MaSzyny, z których część udało się dopracować (np. rozjazdy), a inne utknęły (np. generowanie terenu). Stąd Rainsted nie bardzo nadaje się do edycji obecnych scenerii, ponieważ rozwijał się w innym kierunku niż te scenerie. Również mechanizmy edycyjne są specyficzne i głównie dostosowane do tego, co było do potrzebne do PMPPW, a potem do modelowania torów wokół Wrocławia.

Zwierzyniec — w porównaniu np. do PMPPW — jest mocno bezsensowny. Układy torowe ma splątane w absurdalny sposób. Jakkolwiek by to nie poprawiać, nic sensownego się nie uzyska. Ta sceneria jest bardziej zbliżona do makiety modelarskiej (w której przymyka się oko na ogromne uproszenia), niż do realnie możliwej linii/sieci kolejowej. Niemniej skoro ja się uczyłem budowy scenerii na Manewrowo2, to poprawianie Zwierzyńca też jakiś walor edukacyjny może mieć.
« Ostatnia zmiana: 09 Listopada 2014, 16:40:58 wysłana przez Ra »
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline HTD

  • Wiadomości: 702
  • "Twoja stara mieszka w Boldach" xD
    • Zobacz profil
    • I like trains
  • Otrzymane polubienia: 33
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #21 dnia: 09 Listopada 2014, 18:28:11 »
Dzięki za info, wygląda, że nie przeskoczę i muszę lepiej zrozumieć ogólną budowę scenerii, żeby ruszyć ten temat. Z tego co widzę w edytorze to tam nic nie jest przypisane do niczego. Domyślam się, że żeby to działało tak jak powinno trzeba by było dość mocno pozmieniać tę scenerię. Nasuwa się niewygodne pytanie - nie dało by się prościej zmienić exe, żeby popychać rozkład do przodu "ręcznym" eventem? Z tego co widziałem, w takim Zwierzyńcu bez problemu znajdę eventy które odpalają się po minięciu danej stacji. Gdyby tam ręcznie odpalić jeszcze jeden, popychający rozkład - byłby to szybki fix dla starych scenerii, które szybko zmodernizowane nie będą, o ile w ogóle ktoś jeszcze będzie je rozwijał. No chyba że to za dużo zachodu.

Pomimo złego rozkładu torów - lubię tę scenerię. Ona bardzo fajnie wygląda. Ta okolica przypomina mi moje znajome okolice, zwłaszcza te, które przez wiele lat mijałem za szczeniaka jeżdżąc SKM-ką ;) Trochę jeszcze z nią powalczę, ale jak nie dam rady - to może poczekam aż się ktoś przyłączy. Obecną wersję (bez dynamicznego rozkładu) chyba wrzucę do testów, może się komuś spodoba, bo jak dla mnie super przyjemnie się jeździ.

A dla nauki sztuki - może łatwiej będzie spróbować z innym scenariuszem, nieco łatwiejszym do poprawienia. Tak a'propos poprawiania: Z tego co się nauczyłem do tej pory wychodzi, że zrobienie scenerii od zera to niewyobrażalny ogrom pracy. Toż to normalnie chyba z miesiąc wolnego trzeba mieć na takie coś, licząc że potrzebną wiedzę już masz. A bez tego to pewnie lekko licząc rok albo dłużej. Zakładając normalnie, że uczysz się weekendami i nie utrzymujesz kontaktów z rodziną :) Ale zobacz - taki ogrom pracy włożony, a mi, jako "maszyniście z bożej łaski" nie chce się na nich jeździć, bo brakuje takich małych pierdółek jak "65113 odjazd!" na stacjach ;) Nie mówiąc już o rozkładach. Więc tak - robienie samych rozkładów jest trywialne i pracuję nad softem do generowania rozkładów. Nie żadne tam PDF-y, format maszynowy, opcja transpozycji na dowolną godzinę wyjazdu. Podajesz dane (z kilku objazdów) i wychodzi ładnie sformatowany i poprawny pliczek. Tylko dlatego mnie tak ciśnie, żeby nauczyć się robić rozkłady dynamiczne - żeby nie zostawiać jakby niedokończonej roboty :) Dalej chyba dorobienie radia nie jest żadnym problemem. Z tego co się nasłuchałem komunikatów w MaSzynie na różnych trasach sam mogę ponagrywać dialogi, dodać trochę radiowych szumów i trzasków na Audacity, event sound jest trywialny w użyciu... No gorzej jak nie będę miał go pod co podczepić :)

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6355
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 388
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #22 dnia: 09 Listopada 2014, 18:56:41 »
Dzięki za info, wygląda, że nie przeskoczę i muszę lepiej zrozumieć ogólną budowę scenerii, żeby ruszyć ten temat.
Znajomość budowy pliku scenerii to nadal podstawa. Wszelkie edytory pełnią tylko rolę pomocniczą — pozwalają wykonać tylko pewne operacje. Ale i tak sam na poziomie SCN musisz umieć stwierdzić, czy wyszło dobrze, czy nie. O ile dobrze pamiętam, to kiedyś w Rainsted (tzn. na podglądzie terenu) było przypisywanie sygnałów do torów, ale że zrobiłem wydajniejszy edytor RSF, a wiele rzeczy się pozmieniało, to mechanizm ów się zepsuł albo nawet go wyrzuciłem jako zbędny.

Nasuwa się niewygodne pytanie - nie dało by się prościej zmienić exe, żeby popychać rozkład do przodu "ręcznym" eventem?
Zawsze jest prościej coś zrobić, jak zrobi to ktoś inny. Jeszcze w 2011 rozkłady nie były obsługiwane, więc nikt się nie przejmował tym, aby zadbać o poprawność powiązań obiektów. Wymyślano za to zastępcze rozwiązania. Na Całkowie przystanki były zrobione przy pomocy podziemnych semaforów. W wielu scenariuszach AI pełni tylko funkcję ozdobną i jest uruchamiane, gdy użytkownik znajdzie się w odpowiednim miejscu. Ponieważ sceneria Quark miała wstępnie przygotowane rozkłady i ruch wielu pociągów, po wprowadzeniu rozkładów zacząłem ją dostosowywać jako pierwszą. Trochę mi na to zeszło, a końca nadal nie widać.

Gdyby tam ręcznie odpalić jeszcze jeden, popychający rozkład - byłby to szybki fix dla starych scenerii, które szybko zmodernizowane nie będą, o ile w ogóle ktoś jeszcze będzie je rozwijał. No chyba że to za dużo zachodu.
Nie ma to, jak zamiast zrobić coś porządnie i zgodnie przyjętymi założeniami i koncepcjami — zrobić byle jak, byle tylko jakoś działało... Rozkłady i W4 są po to, aby pociągi zatrzymywały się w odpowiednich miejscach i otwierały drzwi. Podgląd rozkładu i jego przewijanie to są efekty uboczne o charakterze bajeru. I Ty chcesz teraz, żeby ten bajer działał z pominięciem podstawowej funkcji, jaką miał spełniać rozkład?

Toż to normalnie chyba z miesiąc wolnego trzeba mieć na takie coś, licząc że potrzebną wiedzę już masz. A bez tego to pewnie lekko licząc rok albo dłużej.
Powiedzmy, że jakąś tam potrzebną wiedzę już mam — w miesiąc to ledwo byłbym w stanie zrobić od zera do przyzwoitego stanu jedną stację. Problem jest jeszcze w tym, że wiele rzeczy nie wystarczy zrobić — wcześniej trzeba wymyślić, jak to można zrobić i przygotować sobie narzędzia. No chyba że np. wszystkie tory układamy na płasko, rezygnujemy z rozjazdów łukowych, krzywych przejściowych, rowów itd. — wtedy jest prościej.
¯\_( ͡° ͜ʖ ͡°)_/¯ 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ź #23 dnia: 09 Listopada 2014, 20:31:31 »
Dzięki za info, wygląda, że nie przeskoczę i muszę lepiej zrozumieć ogólną budowę scenerii, żeby ruszyć ten temat.
E no nie odpuszczaj. Chcesz przypisać W4 do toru przy którym stoi. no to finalnie masz mieć tak:
Kod: ((...)\scenery\quark\quarkmceplus2007.scm:3591) [Zaznacz]
include;ip/pkp/w4n.inc;Skwarki_Fabryka#02;1117.23;0.0;-16524.0;-180.0;0.8;-3.6;2;1;;;end
Kod: ((...)\scenery\quark\quarkmceplus2007.scm:21168) [Zaznacz]
node -1 0 t4153 track normal 100.0 1.435 0.25 25.0 20 0 flat vis
 rail_screw_used1 4 tpbps-new2 0.2 0.5 1.1
1114.74 0.200012 -16608.8  0.0  //point 1
0.0 0.0 0.0  //control vector 1
0.0 0.0 0.0  //control vector 2
1114.74 0.200012 -16508.8  -3.0  //point2
0
event2 Skwarki_Fabryka#02_stopinfo
endtrack
no to jedyne czego Ci pewnie brakuje, to tego "event2 Skwarki_Fabryka#02_stopinfo ". No to znajdź ten tor o który się rozchodzi, otwórz plik w którym jest on zdefiniowany (notatnikiem) i dopisz mu ten event1/2 na "[nazwę tego w4]_stopinfo" i już.
« Ostatnia zmiana: 13 Listopada 2014, 09:32:15 wysłana przez muri »

Offline Stele

  • Zasłużony dla Symulatora
  • Wiadomości: 10133
    • Zobacz profil
  • Otrzymane polubienia: 2612
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #24 dnia: 12 Listopada 2014, 14:40:35 »
A ten event przesuwajacy rozklad istnieje i jest zdefiniowany w w4n.inc a p1stopinfo to jego wywolanie.
Mój kanał youtube

Offline HTD

  • Wiadomości: 702
  • "Twoja stara mieszka w Boldach" xD
    • Zobacz profil
    • I like trains
  • Otrzymane polubienia: 33
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #25 dnia: 17 Listopada 2014, 09:44:09 »
@Ra:
Jak poprawnie przypisać rozkład do pociągu eventem?
Przeglądałem sobie jak to robiłeś w quarku. Spróbowałem zrobić to samo w moim pliku (modyfikacja zwierzyńca):

node -1 0 rozklad_jazdy memcell 0 0 0 Timetable:roj65113_2 10.0 0.0 none endmemcell
event ustaw_rozklad copyvalues 2 tor_trasa_a_start_lok rozklad_jazdy endevent
event ustaw_rozklad addvalues 2 tor_trasa_a_start_lok * 0 0 endevent

Tor "tor_trasa_a_start_lok" jest w scenerii, wpis trainset. Rozkład istnieje. Event odpala. Tyle, że nic się nie dzieje. Rozkład się nie ustawia po 2 sekundach. Co zrobiłem źle, albo co pominąłem? BTW, pominięcie drugiego eventu powoduje wysypanie symka :)

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6355
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 388
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #26 dnia: 17 Listopada 2014, 09:53:44 »
1. Komórka rozklad_jazdy przechowuje tylko rozkład jazdy i nie jest połączona z żadnym torem.
2. Zawartość owej komórki kopiujesz do komórki tor_trasa_a_start_lok, której nie przedstawiłeś. Komórka ta musi być połączona z torem, na którym stoi pojazd z obsadą, któremu chcemy nadać rozkład. Kopiuje się z komórki do komórki, a nie z komórki do toru (to by można było dodać w przyszłości).
3. Użyłeś tej samej nazwy ustaw_rozklad na dwóch eventach. To jest dopuszczalne pod warunkiem włączenia duplikatów, inaczej tylko ostatni zdefiniowany event zadziała. Być może o to chodzi z wysypaniem, kopiowanie komórki do innej nieistniejącej może nie być zabezpieczone (taki event powinien być ignorowany i logować błąd braku komórki).
4. Event AddValues z wartościami * 0 0 jest formalnie bez sensu, bo nie modyfikuje komórki z rozkładem.
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline HTD

  • Wiadomości: 702
  • "Twoja stara mieszka w Boldach" xD
    • Zobacz profil
    • I like trains
  • Otrzymane polubienia: 33
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #27 dnia: 17 Listopada 2014, 11:14:49 »
Prawie wszystko zrozumiałem, oprócz tego, jak połączyć komórkę z torem. Czy wystarczy zadeklarować komórkę o tej samej nazwie co tor, czy muszę zmodyfikować definicję toru? Czy jeszcze inaczej? Inaczej, gdzie to połączenie jest zrealizowane w quarku? Mamy tor sk_start1s - i mamy taką komórkę. Gdzie one są powiązane?
« Ostatnia zmiana: 17 Listopada 2014, 11:16:02 wysłana przez HTD »

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6355
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 388
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #28 dnia: 17 Listopada 2014, 11:37:43 »
Nazwa toru powiązanego jest we wpisie komórki, na końcu (brak powiązania to ostatnie none). Zbieżność nazw w Quarku jest "przypadkowa", tzn. nie chciało mi się wymyślać innych.//komórki pamięci do uruchamiania AI stojących na torach
//kiepskie rozwiązanie, ale na razie nie ma innego
//komórki umieszcze są na wysokości północnych semaforów wjazdowych
node -1 0 sk_start1p_com memcell 1112 0 -18996 Wait_for_orders 0 0 sk_start1p endmemcell
node -1 0 sk_start1s_com memcell 1112 0 -18996 Wait_for_orders 0 0 sk_start1s endmemcell
node -1 0 sk_start1l_com memcell 1112 0 -18996 Wait_for_orders 0 0 sk_start1l endmemcell
node -1 0 sk_start1t_com memcell 1112 0 -18996 Wait_for_orders 0 0 sk_start1t endmemcell

Natomiast jest jeszcze powiązanie przez nazwę pomiędzy komórkami pamięci a odcinkami izolowanymi i na to trzeba uważać. Zrobienie odcinka izolowanego w torach automatycznie tworzy komórkę pamięci o takiej nazwie. Jawna definicja takiej komórki jedynie ustala jej wartości początkowe. W Quarku wszystkie komórki odcinków izolowanych są zdefiniowane jawnie, ponieważ robiłem te wpisy przed uruchomieniem automatycznych komórek pamięci dla odcinków izolowanych.

Ps. Quark przeszedł przez 4 koncepcje sterowania ruchem na stacjach i stacje mogą się różnić koncepcjami. Nie twierdzę też, że moje rozwiązanie jest najlepsze i wystarczy je opisać i kopiować dalej. Moim zdaniem jest to zbyt podatne na błędy, musiałem uruchamiać scenerię wielokrotnie, za każdym razem poprawiając jedną literkę w pliku sterowania, bo coś poszło nie tak. Być może da się to zrobić prościej przy wprowadzeniu nowych eventów albo niejawnych powiązań, albo może by trzeba było napisać generator, który na podstawie torów oraz sugestii typu urządzeń (kluczowe, mechaniczne scentralizowane, przekaźnikowe...) utworzy odpowiedni plik sterowania wraz z listą możliwych przebiegów. OIDP Paul zrobił w swoim ISDR generator kodu pascalowego, który następnie należało wkompilować w program. Nie jest to dobre rozwiązanie, aczkolwiek szybkie. Może zamiast Pascala dało by się tworzyć jakiś język pośredni (Forth?), który następnie mógłby być wykonywany przez symulator?
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline HTD

  • Wiadomości: 702
  • "Twoja stara mieszka w Boldach" xD
    • Zobacz profil
    • I like trains
  • Otrzymane polubienia: 33
Odp: Jak zrobić rozkład dynamiczny?
« Odpowiedź #29 dnia: 17 Listopada 2014, 12:45:35 »
Jak już tak kombinujesz, może np JavaScript albo Python? :) Popularne, przyjemne, pewnie są gotowe liby do kompilowania i wykonywania tego na dowolnej platformie. Game-devy lubią używać lua, masa gier jest oskryptowana na tym. Tak czy inaczej plan jest bardzo ambitny i przewiduję, że w mniej niż rok nikt tego nie zrobi (tak żeby działało ze sceneriami).

Ja póki co chciałem tak na szybko (ekspresowo, turbo, na wczoraj) wydusić z tych scenerii wszystko co się da na istniejącym silniku. To nie jest "rocket science" - jedynym problemem jest dla mnie brak dokumentacji. Tzn tak, znalazłem scenery.doc, ale sam wiesz jakie to jest przyjazne jak wchodzisz od zera. Rozgryzam quarka, zobaczę "jak to jest zrobione" że poszczególne zdarzenia w misji grają ze sobą i z urządzeniami, znając to - istniejące misje da się szybko i wdzięcznie przerabiać i poprawiać. Tak żeby powiedzmy powstała jeszcze jedna paczka na starym silniku - taka pożegnalna ;)

To może pomóc pozyskać zainteresowanie projektem. Bo na razie to ja tego w ogóle nie widzę. Potrzebowałem miesiąca czasu i uporu maniaka, żeby w ogóle zacząć jeździć. Ze szczególnym naciskiem na upór maniaka. Jak się zrobi misje, które raz że nauczą świeżaka podstaw, dwa - dadzą mu feedback odnośnie tego co robi na trasie - bez porównania więcej ludzi zainteresuje się symkiem i będzie dla kogo go dalej rozwijać. I być może nawet będzie za co.

Co do bieżącego silnika, jeśli chodzi o bugi typu literówki - dość łatwo można zrobić narzędzie, które posprawdza i pokoloruje składnię. Robiłem kiedyś takie rzeczy (trywialny przykład: http://sourceforge.net/projects/hostseditor/).