Moje snaha o zlepšení funkčnosti návěstidel v RW postupně ustává. Po pravdě řečeno necítím žádný zájem o mnou navrhované úpravy skriptů (možná jsem je nedokázal dostatečně srozumitelně popsat a vysvětlit). Moc reakcí na mé dotazy na fóru, kterým směrem bych se měl při dalším skriptování ubírat, jsem se od v té době aktivních českých uživatelé RW, nedostal. A protože zatím nedokážu přijít na nějaké rozumné řešení, jak vyřešit přepínání návěstidla z režimu návěstění pro vlak do režimu návěstění pro posun což jsem si dal jako další cíl, odložil jsem skriptování na později. Ano, bez této vychytávky by samozřejmě do té doby hotové scripty fungovat mohly, ale není to ucelené řešení a polovičaté vydávat nechci.
středa 19. října 2016
pátek 1. července 2016
Script návěstidel v RW - pokračování
Od května byl script částečně přepracován. Bohužel jsem nenašel vhodný způsob, jak dát návěstidlu vědět, že od určité chvíle po nějakou dobu od něho požadujeme dostávat návěsti pouze pro posun.
Při konzultování funkčnosti scriptu s Michalem, jsem jím byl upozorněn na možné problémy, které může přinést né úplně šťastné řešení spočívající v osazení linku 0 cca 10 m před návěstidlo. Takto osazený link 0 sice zajistí zastavení vlaku AI na linku - tj, kousek před návěstidlem a ne v jeho úrovni. Pokud ale bude vlak řídit hráč, tak ten nemá ponětí o tom, jak daleko před návěstidlo stavitel link 0 umístil. Když pak čelem vlaku přes link 0 přejede, spustí se ve scriptu činnosti, které se však mají spustit až když vlak mine návěstidlo - to znamená, že nastane nechtěný stav. Aby se tomu to předešlo, musel by se umísťovat link 0 tak jako dříve v úrovni návěstidla. To však způsobí, že AI vlaky budou opět zastavovat čelem v úrovni návěstidla. To se mi však nelíbí. Proto jsem trochu změnil filozofii umísťování linku a předělal script. V zásadě jde o toto: link 0 se i nadále bude umísťovat před návěstidlo ale bude mít jen vliv na zastavování AI vlaků před návěstidlem. Jeho přejetí vlakem hráče ještě nezpůsobí žádné další činnosti ve scriptu. Do úrovně návěstidla se bude umísťovat link 1 a na něj budou vlastně navázány kroky ve scriptu, které byly dosud spouštěné linkem 0. Pokud návěstidlo kryje výhybky, tak na koleje za výhybkami budou umísťovány další linky počínaje linkem 2.
Michala jsem také požádal o poskytnutí informací a případně i kódu, který do Dušanova scriptu dodělával, aby rozchodil přenos kódu návěstidla do návěstního opakovače na lokomotivě. Michal mi ochotně vyhověl. Po určitých peripetiích, kdy vše nechtělo správně fungovat se nakonec podařilo tuto část scriptu správně rozchodit.
Nyní počítám s případnou diskuzí hráčů RW o vhodnosti mnou zvolených řešeních funkčnosti návěstidel.
Nyní počítám s případnou diskuzí hráčů RW o vhodnosti mnou zvolených řešeních funkčnosti návěstidel.
pondělí 9. května 2016
Script návěstidel v RW
Začátkem tohoto roku se mě syn snažil (co jsem byl schopen pochopit) zasvětit do základů Lua scriptu. Od té doby se snažím tvořit nový script návěstidel.
Proč nový script?
Na původním Dušanově scriptu vidím určité nedostatky a to jak v zadání tak i ve fungování scriptu - tímto rozhodně nekritizuji práci, kterou Vlastik a Dušan na návěstidlech a jejich scriptech odvedli - ve své době to byla špička. Bohužel Dušan posléze svoji pozici programátora scriptu opustil a tak slibně rozjetý pokus o kompletní scripty návěstidel CZ a SK odumřel.
Takže přibližně od poloviny ledna se zabývám psaním nového scriptu. Mám zatím pouze malou část kódu. Nejdříve jsem zkoušel pochopit script Dušanův, to ale nikam nevedlo. Nakonec jsem to vzdal a na základech jeho scriptu začal psát script svůj - stále se učím uvažovat po programátorsku. Neodvažuji se tvrdit, že to někdy dotáhnu do nějakého konce ale chuť k tomu zatím mám. Co jsem však v začátcích neměl, byl model návěstidla. Proto jsem nejprve použil model současného pětiznakého Vlastíkova návěstidla a na něm testoval chod scriptu. To však zdržovalo, protože se musel nejdříve vygenerovat script k nějakému zástupnému modelu a pak teprve přepsat tento zástupný model modelem návěstidla. Proto jsem oslovil Romana, který uváděl, že model návěstidla k dispozici má a ten mi obratem vyhověl. Tím se mi testování značně zjednodušilo.
Co v současné době funguje?
- Vlak si před sebou až na výjimky rozsvěcí dvě nejbližší návěstidla.
- Umím zobrazit případné "doplňky pověšené na návěstidlo" jako jsou návěstní pruhy na stožáru návěstidla (návěstidlo platné jen pro vlaky nebo návěstidlo platní pro vlaky i posun), indikátorové tabulky apod.
- Respektuji zaškrtnutí kolonky "Jen výstraha" a v tom případě se na návěstidlo při návěsti povolující jízdu zobrazuje návěst VÝSTRAHA.
- Respektuji zaškrtnutí kolonky "Je předvěstí" a v tom případě návěstidlo předvěstí návěst následujícího návěstidla.
- Po zapsání písmene "P" (škoda, že to neumí přečíst písmena dvě) se na návěstidle rozsvítí návěst "PŘIVOLÁVACÍ NÁVĚST). Náhodně se zobrazí buď samostatné blikající bíle světlo nebo blikající bílé světlo současně s červeným světlem.
- Po zapsání písmene "O" je návěst doplněna klidným bílým světlem - opakování návěsti - používá se u návěstidel umístěných na nedostatečnou zábrzdnou vzdálenost. V tomto případě se informace o návěsti návěstidla před tímto návěstidlem (s bílým světlem) posílá návěstidlu za tímto návěstidlem.
- Po zapsání písmene "Z" je zajištěno uvolnění obsazeného úseku vlakem, který "zmizí v portálu" a zobrazení návěsti dovolující jízdu pro další vlak mířící do "portálu".
- Návěstidlo přestavuji z návěsti dovolující jízdu vlaku na návěst STUJ s určitou časovou prodlevou po začátku přejíždění linku 0. Časová prodleva je závislá na rychlosti přejíždění linku. Takto je možné link 0 umísťovat před návěstidlo - strojvedoucí v reálu má dle předpisů zastavit čelo vlaku cca 10 m před návěstidlem. Čelo hnacího vozidla ve hře pak nemíjí návěstidlo v době, kdy je již rozsvícena návěst STUJ.
- Po zmáčnutí klávesy TAB a splnění podmínek hry se na návěstidle rozsvítí návěst "Jízda podle rozhledu". Lze dodělat, aby pokud je jízdní cesta volná svítila příslušná návěst rychlostní návěstní soustavy (je-li zaškrtnuto - je předvěstí) a pokud jízdní cesta volná není, aby svítila návěst "Jízda podle rozhledu".
- Návěstidla správně reagují při jízdách vlaků oběma směry.
- Po odpojení vozů a odjetí části původní soupravy zůstane kolej co na ní zůstala odpojená část obsazená. Obdobně zase po připojení odstavených vozů a uvolnění koleje je tato pro návěstidlo neobsazená.
Co "zatím" není řešeno nebo asi ani řešit nepůjde:
- Rozsvěcení návěstí pro posun na hlavním návěstidle při změně vlaku na posunový díl a obdobně obráceně při změně posunového dílu na vlak. Testoval jsem i možnost po trojitém zmáčnutí klávesy TAB spočívající v tom, že se místo návěstí pro jízdu vlaku bude rozsvěcovat návěst "Posun dovolen". Po dvojím zmáčnutí by se zase tento režim vypnul. Bohužel jak jsem psal, aby script dostal zprávu o zmáčnutí klávesy TAB musí být splněny určité podmínky a ty nejdou splnit vždy a proto tento způsob asi nebude použitelný. Dále jsem zatím neúspěšně zkoušel poslat scriptu návěstidla zprávu ze scriptu scénáře.
- Při stojícím vozidle na dopravní koleji ve stanici ze které je jízdní cesta postavena na tratě v obou směrech - rozsvícení návěsti dovolující jízdu pouze ve směru budoucí jízdy vozidla - půjde-li to vůbec.
- Předání patřičné informace vlaku pro funkčnost přenosu návěstních znaků do VZ, LS90 či Mirelu na hnacím vozidle - prý jsi něco do Dušanova scriptu musel dopisovat.
- Pokud mám scénářem ukončenou jízdu u nějakého návěstidla a dále se pokračuje jízdou zpět (třeba po přestavení výhybky jízdou na jinou kolej), tak neumím nerozsvítit na tomto návěstidle návěst dovolující jízdu a automaticky dle trasy dané scénářem rozsvítit návěstidlo ve směru opačném.
- Řeším zatím hlavní návěstidla pro jednokolejné tratě. Autoblok, předvěsti, návěstidla pro posun přijdou na řadu později.
- Samostatnou kapitolou budou též skupinová návěstidla - návěstidla platná pro skupinu kolejí.
- Netestoval jsem zatím, co se bude dít, při umístění "portálu" na trati mezi návěstidly a chování návěstidel při výjezdu vlaku z portálu či jeho zmizení v portálu.
- Zobrazování návěstí a dalších doplňků, které pětiznaké návěstidlo nezobrazuje a nemá.
C) Co bohužel nedokážu:
- Zajistit kompatibilitu se současnými návěstidly.
- Zapracovat do scriptu návěsti používané na ŽSR - neznám dnešní návěstní předpisy ŽSR.
Některé funkce co popisuji výše jsou patrny na videích z testů návěstidel:
Přihlásit se k odběru:
Komentáře (Atom)