Substituce parametrů ve zprávách

Úvod

Většina zpráv v knihovně obsahuje zvláštní parametry napsané ve složených závorkách. To umoňuje, aby stejná zpráva mohla být použita v různých kontextech. Konkrétně se tím řeší následující situace:

Použití parametrů je možné i ve hře, nejen v knihovně. Nejčastěji půjde o dosazování názvů postav a objektů do zpráv. Parametry ke změně osoby a času vyprávění není nutné používat, pokud o to autor hry vysloveně nestojí.

Formát parametrů

Parametry se zapisují do složených závorek. Buď jen samotný název parametru {je}, nebo název parametru a objekt, kterého se parametr týká {kdoco dobj}.

Dostupné parametry pro český jazyk

Názvy objeků a postav

Parametry {kdoco}, {kohočeho}, {komučemu}, {kohoco}, {komčem}, {kýmčím} slouží ke vložení jména postavy hráče nebo názvu objektu v příslušném pádu do generované zprávy. Pokud objekt není specifikován, dosadí se postava hráče.

{Kdoco dobj} už {je} pod {kýmčím iobj}.

Parametry berou název z objektu, kde se vkládá pomocí atributů name, nameKohoCeho, nameKomuCemu, nameKohoCo, nameKomCem, nameKymCim. Pokud některý z atributů není zadán, použije se první pád, resp. atribut name.

torch: Flashlight, OpenableContainer 'malou modrou svítilnu/svítilny' 'malá modrá svítilna'
    "{Je|Byla} to jen malá modrá svítilna. "                               
    nameKohoCo = 'malou modrou svítilnu'                                     
    nameKohoCeho = 'malé modré svítilny'                                     
    gender = 3
;

Pravidelná slovesa v přítomném čase

Parametry {eš}, {neš}, {ješ}, {íš}, {áš} se používají k možnosti změnit osobu a čas slovesa v přítomném čase. Odpovídají pěti slovesným třídám a používají se následujícím způsobem:

"Stoj{íš} před chatou. Les se táhne na východ."

Předpokládá se, že text je napsán ve druhé osobě přítomného času jednotného čísla (obvyklý způsob vyprávění v textových hrách) a charakteristická koncovka slovesa se uzavře do závorek. Pokud bude vyprávění přepnuto do jiné osoby, nebo bude vyprávěno z pohledu jiného pozorovatele, nahradí se patřičně koncovka. Tedy např. v první osobě (pcReferralPerson = FirstPerson u objektu hráče) se vypíše: "Stojím před chatou. Les se táhne na východ."

Pravidelná slovesa v minulém čase

V minulém čase vůbec nezáleží na osobě, ale zato záleží na rodu. Používá se parametr {a}, který je podle rodu v jednotném čísle nahrazen -/a/o a v množném i/y/a.

Ničeho takového si {nejsi} vědom{a}.

Nepravidelná slovesa

Nepravidelná slovesa se vymykají změnám koncovek, a tak musejí být nadefinované každé zvlášť. V knihovně jsou k dispozici některá často používaná: {je}, {není}, {nejsi}, {bys}, {chceš}

I když některá nepravidelná slovesa (např. abys) nejsou samostatně zadaná, lze je dosáhnout s předponou: a{bys}. Podobně jde u některých sloves vyrobit zápory, např. ne{chceš}.

Slovesa v přítomném i minulém čase zároveň

Pokud má zpráva fungovat v obou časech, zavádí se parametr rozvětvení {přítomný čas|minulý čas}. Pokud v některém čase má být uvniř obsažen také parametr k nahražení, uzavře se do hranatých závorek, např.:

Křič{[íš]|el[a] [jsi]} tak hlasitě, jak {|[jsi]} jen doved{[eš]|l[a]}.

V prvním kroku se podle času vyprávění vybere správná část, např. pro minulý čas se zpráva přepíše na:

Křičel{a} {jsi} tak hlasitě, jak {jsi} jen dovedl{a}.

a ve druhém kroku se provede běžné nahrazení parametrů, např. pokud postava hráče je muž a je oslovován v první osobě, věta bude znít: "Křičel jsem tak hlasitě, jak jsem jen dovedl."

Přídavná jména

PádŠablonaNahrazuje se za
1. pád{ý}ý, ý, á, é, í, é, é, á
6. pád{ém}ém, ém, é, ém, ých, ých, ých, ých
7. pád{ým}ým, ým, ou, ým, ými, ými, ými, ými

Spojení slovesa být a zvratného zájmena

{ses}, {sis}

Osobní zájmena

Název parametru je odvozen z kombinace druhé a třetí osoby ženského či mužského rodu, aby se jednoznačně odlišily všechny pády. Např. Je od {tebe/ní} příliš daleko. vs. Je na {tebe/ni} moc velký.

PádŠablonaNahrazuje se za
1. pád{ty}já, ty, on, ona, ono, my, vy, oni, ony, ona
2. pád{tebe/jí}mne, tebe, jeho, jí, jeho, nás, vás, jich
2. pád{tebe/ní}mne, tebe, něho, ní, něho, nás, vás, nich
2. pád{tě/jí}mě, tě, ho, jí, ho, nás, vás, jich
2. pád{tě/ní}mě, tě, ho, ní, ho, nás, vás, nich
3. pád{tobě/jemu}mně, tobě, jemu, jí, jemu, nám, vám, jim
3. pád{tobě/němu}mně, tobě, němu, ní, němu, nám, vám, nim
3. pád{ti/jí}mi, ti, mu, jí, mu, nám, vám, jim
3. pád{ti/ní}mi, ti, mu, ní, mu, nám, vám, nim
4. pád{tebe/ji}mne, tebe, jeho, ji, jej, nás, vás, je
4. pád{tebe/ni}mne, tebe, něho, ni, něj, nás, vás, ně
4. pád{tebe/jej}mne, tebe, jej, ji, jej, nás, vás, je
4. pád{tebe/něj}mne, tebe, něj, ni, něj, nás, vás, ně
4. pád{tě/ji}mě, tě, ho, ji, ho, nás, vás, je
4. pád{tě/ni}mě, tě, ho, ni, ho, nás, vás, ně
6. pád{tobě/něm}mně, tobě, něm, ní, něm, nás, vás, nich
7. pád{tebou/jím}mnou, tebou, jím, jí, jím, námi, vámi, jimi
7. pád{tebou/ním}mnou, tebou, ním, ní, ním, námi, vámi, nimi

Přivlastňovací zájmena

PádRodŠablonaNahrazuje se za
1. pádmužský živ.{tvůj}můj, tvůj, jeho, její, jeho, náš, váš, jejich
1. pádženský{tvoje}moje, tvoje, jeho, její, jeho, naše, vaše, jejich
4. pádženský{tvoji}moji, tvoji, jeho, její, jeho, naši, vaši, jejich

Předložky pro postoje

{na obj/kohoco}, {na obj/komčem}

Implicitní vztažné objekty

Parametry svůj tvar volí podle času vyprávění, podle osoby, ve které je NPC či hráč oslovován a podle rodu a čísla objektu, ke kterému se parametr vztahuje. V rámci některých parametrů je vztažný objekt přímo určen, u jiných použití se tvar určí implicitně. Pravidla jsou následující:

Pro příklad vezmeme větu z knihovny, která generuje třeba hlášku: "Klavír byl pro Sally příliš těžký na zdvihnutí."

{Kdoco dobj} {je} pro {kohoco} příliš těžk{ý dobj} na zdvihnutí.
{Kdoco dobj}
Vygeneruje název přímého objektu v prvním pádu. První písmeno názvu parametru je velké, takže velkým písmenem bude začínat i název objektu. Objekt musíme zvolit, protože implicitně by generovalo jméno postavy.
{je}
Parametr nemá implicitní vztažný objekt, takže se bude vztahovat k předchozímu použitému parametru a jeho objektu, což chceme.
{kohoco}
Parametr se vztahuje implicitně k postavě, takže vygeneruje její jméno ve čtvrtém pádu.
těžk{ý dobj}
Parametr sice nemá určen implicitní objekt, ale poslední objekt ve větě byla postava, takže musíme říci, že se místo ní má vztahovat k přímému objektu věty.

Přehled parametrů

Atribut specifikuje jméno atributu či metody ve zdrojovém kódu, podle kterého se dosazuje. Implicitní objekt specifikuje, zda má parametr nějaký výchozí objekt určen či nikoliv.

ParametrAtributImplicitní objekt
{kdoco}Thing::nameactor
{kohočeho}Thing::nameKohoCehoactor
{komučemu}Thing::nameKomuCemuactor
{kohoco}Thing::nameKohoCoactor
{komčem}Thing::nameKomCemactor
{kýmčím}Thing::nameKymCimactor
{ty}Actor::zajmenoTyactor
{tobě}Actor::zajmenoTobeactor
{ti}Actor::zajmenoTiactor
{tebe}Actor::zajmenoTebeactor
{tě}Actor::zajmenoTeactor
{tebou}Actor::zajmenoTebouactor
{tvůj}Actor::zajmenoTvujactor
{eš}slovesoEsactor
{neš}slovesoNesactor
{ješ}slovesoJesactor
{íš}slovesoIsactor
{áš}slovesoAsactor
{á}slovesoMinactor
{ses}spojeniSesactor
{sis}spojeniSisactor
{je}Thing::slovesoJe-
{není}Thing::slovesoNeni-

Originální dokumentace