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:
- dosazení názvů objektů a postav do zpráv
- odkazování se na postavu hráče v jiné, než druhé osobě
- změna přítomného času vyprávění na minulý
- zprávy mohou popisovat chování dalších postav, nejen hráče
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 | Šablona | Nahrazuje 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 | Šablona | Nahrazuje 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ád | Rod | Šablona | Nahrazuje se za |
---|---|---|---|
1. pád | muž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í:
- Pokud u parametru je objekt specifikován, řídí se tvar specifikovaným objektem.
- Pokud objekt specifikován není a parametr se implicitně vztahuje k postavě, pak se bude řídit postavou.
- Pokud objekt specifikován není a parametr se implicitně nevztahuje k ničemu, pak se řídí posledním zapamatovaným objektem z předchozích parametrů.
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.
Parametr | Atribut | Implicitní objekt |
---|---|---|
{kdoco} | Thing::name | actor |
{kohočeho} | Thing::nameKohoCeho | actor |
{komučemu} | Thing::nameKomuCemu | actor |
{kohoco} | Thing::nameKohoCo | actor |
{komčem} | Thing::nameKomCem | actor |
{kýmčím} | Thing::nameKymCim | actor |
{ty} | Actor::zajmenoTy | actor |
{tobě} | Actor::zajmenoTobe | actor |
{ti} | Actor::zajmenoTi | actor |
{tebe} | Actor::zajmenoTebe | actor |
{tě} | Actor::zajmenoTe | actor |
{tebou} | Actor::zajmenoTebou | actor |
{tvůj} | Actor::zajmenoTvuj | actor |
{eš} | slovesoEs | actor |
{neš} | slovesoNes | actor |
{ješ} | slovesoJes | actor |
{íš} | slovesoIs | actor |
{áš} | slovesoAs | actor |
{á} | slovesoMin | actor |
{ses} | spojeniSes | actor |
{sis} | spojeniSis | actor |
{je} | Thing::slovesoJe | - |
{není} | Thing::slovesoNeni | - |