Minule jsem si z vás vychoval úžasňoučké skriptery, což nám dává možnost pustit se do nějakých dalších úprav, aby naše autobusy byly ještě duhovější a strávené hodiny v omsi příjemnější. Dneska vyšel MAN SL202, díky kterému jsem si vzpomněl na tenhle kousek úpravy, kterou jsem sem chtěl dát už dřív.
Určitě jste si všimli, že pánové z fabriky na MAN autobusy byli před rokem '90 němí a nedokázali nám namluvit hlášení. Naštěstí byli jejich inženýři a vizionáři natolik schopní, že by předčili i samotný Apple a když pak přišel slavný palubní počítač IBIS2 s podporou hlášení, tak to byla jen zástěrka, jak z našich prosperujících dopravních firmiček a podniků vytáhnout peníze za nové modely. Ono totiž hlásit umí i IBIS1! Akorát proč vám to říkat, když si můžete kvůli novému počítači koupit nové autobusy, že? Sláva kapitalismu!
Už jsem zmínil, že minule jsem si vás vychoval, kdo z vás vychovaný není, tak ať ze sebe vychovaného vychová, protože dál budu předpokládat, že už jste vychovaní a tedy máte sdílenou složku s hlášeními nasměrovanou do složky s originálním SD202. Všimli jste si, jak vás můžu ovládat? Muhahá.
Popravdě jsem nezkoušel, kde všude jde následující návod aplikovat, takže vás to naučím a vy se rozutečete po depu a budete to zkoušet na všechny autobusy, které se pohnou, a pak tu napíšete, kam se vám to podařilo aplikovat, protože jste hodňoučká komunita, kde vůbec nejsou kindermafiáni, ale všichni jsou tady k sobě příjemní a hezoučcí a tak se přece podělíte o svoje závěry, ne?
Tentokrát budu muset připomenout, abyste si udělali zálohu souboru Script/IBIS.osc, protože minule jste mi tam plakali, že jste si něco přemazali a nedopadlo to báječně, jak mělo. Tenhle návod jsem navíc testoval jen na SL202, SD200 a SD202, kde funguje bez potíží. Ostatní je na vás.
Každopádně, v tuhle chvíli už milé děti mějte před sebou otevřený soubor Script/IBIS.osc a poslouchejte pohádku. Váš vycvičený skripterský um tentokrát využijeme na to, abychom si vytvořili makro, které vyhlásí zastávku a takové úžasné makro potom přiřadíme k funkcím palubního počítače.
A teď překvapení večera, teď jsem vám lhal, protože jsem strašně ďábelský a vy jste mi na to skočili!
Nejdřív to makro přiřadíme a až teprve potom ho vytvoříme. Muhaha.
Prvně si potřebujete v IBIS.osc najít funkci, která posouvá pozici autobusu vpřed. Což, protože jste dávali ve škole pozor všichni víte, že se řekne
- Kód: Vybrat vše
{trigger:IBIS_vor}
Tak, šup šup, zadejte to do vyhledávání ve vašem textovém editoru, ať můžeme pokračovat. Ve standardních skriptech by se měl ten trigger nacházet někde kolem řádku 250. V tom triggeru probíhají jakási zaklínadla, nás budou zajímat dva řádky:
- Kód: Vybrat vše
(M.L.IBIS_RefreshBusstop)
(T.L.ev_IBIS_piep)
S trochou fantasie si možná i domyslíte, co dělají, pro nás je to ale úplně nepodstatné. My jim jejich lásku nepřejeme, a proto mezi ně zlobivě vsuneme odkaz na vlastní makro, který bude ve tvaru (M.L.IBIS_PlayAnnouncement). Takže teď je v triggeru napsáno
- Kód: Vybrat vše
(M.L.IBIS_RefreshBusstop)
(M.L.IBIS_PlayAnnouncement)
(T.L.ev_IBIS_piep)
Výborně! První část je za námi! Kdo chce samolepku do žákajdy?
Další část je velmi podobná. Vyhledáme tentokrát část začínající Microphon-Taster:. Pro milovníky čísel a šílené vědce, taková část by se měla schovávat kolem řádku 470. Už tady vidíme naše staré známé, RefreshBusstop a.. Ahá! Vidíte, rozbili jsme jim lásku, a RefreshBusstop zůstal opuštěný, IBIS_piep tu nenajdete. Jsme tak zlí. Nám to ale nevadí, dohodíme mu naše nové makro, opět přidáme (M.L.IBIS_PlayAnnouncement).
Sekce Microphon-Taster bude po našich šílených machinacích tedy vypadat takhle:
- Kód: Vybrat vše
'Microphon-Taster:
(L.L.Snd_Microphone) (L.L.IBIS_LastMicro) ! &&
{if}
(L.L.IBIS_busstop) 1 + (S.L.IBIS_busstop)
(M.L.IBIS_RefreshBusstop)
(M.L.IBIS_PlayAnnouncement)
Co je dál nás nezajímá. Teď se totiž musíme zaměřit na důležitý úkol! Už je čas na vytvoření našeho báječného makra. Odjedeme si tedy až na úúúplný konec souboru. Co se tam nachází nás netrápí, ale mělo by to končit {end}. Mělo. Teoreticky. Možná nemusí. Ale radši bych, kdyby jo.
Šoupneme za to pár entrů, jsme přece profesionální programátoři, tak musíme dělat přehledný kód. Nebojte, děti, nemusíte se bát, že bych vás nechal něco složitého psát, půjde o klasickou metodu, kterou znáte ze školy, tedy "control-Cizí, control-Vlastní". Takže tooohle všechno vložte na konec souboru:
- Kód: Vybrat vše
{macro:IBIS_PlayAnnouncement}
(L.L.IBIS_busstop) 0 >
{if}
"\..\..\MAN_SD202\Sound\Ansagen\" (L.$.act_busstop) $+
(L.L.IBIS_RouteIndex) (M.V.GetBusstopCount) 1 - (L.L.IBIS_busstop) <=
{if}
"_#terminus" $+
{endif}
".wav" $+
$msg
(T.F.ev_IBIS_Ansagen)
{endif}
{end}
Báječné. Teď ještě přidejte jeden nebo dva entry za to, je to takový hezký zvyk programátorů, ony potom ty programy o něco méně padají. A voilá, pokud jste postupovali správně a IBIS v daném autobuse není příliš změněný od těch původních, měli byste mít další autobus schopný hlásit zastávky. No nejste báječní? Ale teď šup, vyčurat, pomodlit a spát, podívejte se, kolik je hodin.






