Jan Jirkovský:

Fantasy GameBook Engine - dokumentace pro tvůrce

Domovská stránka:
www.gamebooky.syslik.net

Obsah

Obsah (právě čtete)
Tvorba PROJEKTU
Veškeré příkazy a parametry
Podmínky
Audio - hudba a ozvučení
Knihovny - vkládání skriptů
Odkazy pro pokročilé - preprefix, presmeruj, proměnné
Praktické ukázky a příklady
Dokončování projektu
FAQ - často kladené dotazy
Limity na počty předmětů apod.
Závěrečné slovo autora

Tvorba PROJEKTU

Prvně je nutno říci, že pro čtení tohoto dokumentu je nutná znalost základů praxe v FGBE rozebíraných v tutoriálu Krok za Krokem - pokud jste jej ještě nečetli, učiňte tak nyní! Teď když už víte, na jakém principu FGBE funguje, řekneme si zase trochu té teorie. Pokud totiž nechcete zůstat u tagů <text> a <menu>, určených k základní orientaci a pohybu ve hře, budeme si muset něco říct o datových souborech enginu FGBE a jeho struktuře. Vím, tohle bude nudná část, ale doufám, že ne příliš těžká, takže se prosím nezastavujte a čtěte dál!

Když hráč spustí soubor jménohry.exe (jmeno hry může být třeba Drakobijec, v tom případě bude soubor Drakobijec.exe), začne engine FGBE načítat data hry, jinak řečeno data projektu. Ve složce hry se totiž kromě zmíněného .exe souboru nachází složka data. V té se nachází spousta (vám nejspíš doposud neznámých) souborů, obsahujících data o hře. Všechny z nich můžete libovolně modifikovat a to je právě váš cíl! Váš gamebook tvoříte od základů pouze změnou obsahu těchto souborů.

Jak lze soubory měnit/otevřít? - jedná se o soubory s příponou .gbs... takovéto soubory zpravidla nemají nastavený program, ve kterém se automaticky otevírají, a proto nestačí na ně dvakrát kliknout jako u jiných typů souborů! Jsou to však obyčejné textové soubory a pro jejich editaci a otevření vám postačí jakýkoli textový editor. Nedoporučuji ovšem editory typu Microsoft Word, ty totiž namísto obyčejného textu přidávají spoustu formátovacích znaků a jiných dat. Ideálním programem je tak například poznámkový blok (notepad), který máte nejspíš na svém počítači nainstalovaný. V něm dáte Otevřít a vyberete ten soubor ze složky data, který chcete pozměnit. Po jeho editaci pak stačí soubor uložit a při dalším spuštění hry se již změny projeví.

Jaké všechny datové soubory se ve hře nachází (bližší informace o jejich parametrech a editaci si povíme až později) :

Hra načítá soubory uvedených jmen, které se nacházejí ve složce data (umístěné ve složce se spouštěcím souborem). Máte li tedy espouštěcí soubor FGBE umístěný např. ve C:\programy\fgbe, pak bude hra načítat soubory dat ze složky C:\programy\fgbe\data. Pokud tedy máte staženo několik ukázkových her, musíte k nim nejdřív přikopírovat spouštěcí soubor tak, aby načítal tu "jejich" složku data. Vykládám to složitě, ale věřím, že chápete, jak to myslím :o). Zkrátka a dobře složek data můžete mít třeba padesát, ale hra vždy načte jen tu, která je ve stejné složce jako spouštěný soubor.

Teď si projedeme postupně strukturu a detaily jednotlivých druhů souborů. Na první pohled to možná bude působit složitě, ale sami brzy poznáte, že na tom nic složitého není a stačí držet se zaběhlé šablony a můžete směle vytvářet vlastní kouzla, zbraně atd... Soubor data.gbs přeskočíme, ostatně o tom jsme si už něco říkali a od těch ostatních se dost liší...

zbrane.gbs
Obsahuje definice veškerých vlastností VŠECH zbraní ve hře. Na tomto mstě neřešte, JAK tu kterou zbraň může hráč získat, to teď není důležité. Aby ji ale mohl získat, musí být nejdřív (stejně jako předměty, kouzla.....) definovaná ve svém souboru.

Soubor se zbraněmi může vypadat například takto:
1,"Bronzový meč","Naprosto obyčejný, ničím vyjímečný meč, vyrobený z bronzu.",1k6+1,0,50
2,"Rituální dýka","Pozlacená obětní dýka boha smrti Kaleara, opatřená malou rýhou uprostřed čepele.",2k4+2,2,480,rychlost+1


Teď si popíšeme, co jednotlivé údaje znamenají (pozn. každý parametr = každá část oddělená čárkou)

další 0 až 5 parametrů: Uvedeme si takový souhrnný vzorec:
číslo zbraně,"jméno zbraně","nějaký popis",XkY+Z,poškození navíc při zásahu,cena,jeden efekt, druhý efekt (atd....)
Věřím, že to vypadá složitě, ale složité to opravdu není, protože ostatní soubory jsou na tom obdobně, zejména zbroje... Navíc - nemusíte si to pamatovat nazpaměť, stačí s pomocí tohoto "taháku" vytvořit pár zbraní a pak jen obměňovat parametry...

Upozornění: Na začátku hry má hráč AUTOMATICKY zbraň číslo 1 a zbroj číslo 1. Tato zbraň a zbroj musí být v souborech zbraní/zbrojí přítomna a nelze jinak! Dejte například jako číslo 1 nějakou hodně slabou zbraň a zbroj... Prázdné ruce bohužel mít hráč nemůže...

zbroje.gbs
1,"Kožená vesta","Skromná ochrana trupu, úder většiny zbraní pouze mírně zbrzdí",1,0,0,10
2,"Rytířská zbroj","Blyštivá ocelová zbroj pěších rytířů",0,15,4,55000,rychlost-3,maxzivoty+5
další 0 až 5 parametrů: Souhrnný vzorec:
číslo zbroje,"jméno","popis",obrana,tvrdost,postih k útoku, cena, efekt+2, efekt-1...
TIP: Zbraně a zbroje dělejte metodou pokus omyl.. vyzkoušejte si, co který parametr dělá v praxi, nemá cenu učit se nazpaměť vzorečky
Efekty použitelné u zbraní a zbrojí, předpokládám že jejich popis nepotřebujete: Použití například: maxzivoty+3 nebo třeba sila-1


predmety.gbs
S předměty je to trochu obtížnější, protože je možné je používat jak v boji, tak mimo boj. Z tohoto důvodu mají předměty jeden specviální parametr, který určuje, kdy je možné je použít a může nabývat hodnot "boj", "mimoboj", "vzdy" a "nikdy". Například chléb asi nebude vhodné vytahovat z ruksaku uprostřed souboje a stejně tak vrhací hvězdice vám asi bude mimo bitku k ničemu. Některé věci, například lektvary, bude nejspíš možné použít jak v souboji, tak mimo něj.
1,"Hrst borůvek","Štavnaté a chutné lesní plody, vyléčí 1 život",1,mimoboj,zivoty+1
2,"Vrhací hvězdice","Smrtonosně ostrá ocelová vrhací hvězdice, původem z nějakých dálných končin",20,boj,nzivoty-3,[OBRATNOST 1>"6"]
další 0 až 5 parametrů: Souhrnný vzorec:
číslo předmětu,"jméno","popis",cena,pouziti,efekt+2, efekt-1,[PODMINKA 1="5"],...
Efekty použitelné mimo boj: Použití například: zivoty+3 nebo třeba maxmana-1

Upozornění: Předmět použitý mimo boj má trvalý efekt, zatímco v při použití v boji jeho efekt po skončení souboje zmizí (až na životy a manu). Jinak řečeno - když mimo souboj pozřete nějaký Lektvar rychlosti přidávající rychlost + 2, získá vaše postava prostě 2 k atributu rychlosti. Když stejný lektvar použije v boji, navrátí se jí po boji původní úroveň síly. Proto nemíchejte použití v boji a mimo boj, pouze v případě životů a many, kde je efekt stejný.

Efekty použitelné v boji: Jednotlivé efekty samozřejmě můžete kombinovat. Zajímavé mohou být například vychytávky jako maxzivoty-3 a zároveň sila+1, popusťte uzdu své fantasii :) Například efekt nutok-2 sníží nepříteli do konce souboje útok o 2.
TIP: Naprosto stejné efekty jako efekty používané při boji předmětů mají i kouzla! Výše uvedený seznam tedy můžete použít i tam

kouzla.gbs
Kouzla fungují v podstatě na stejném principu jako předměty s tím rozdílem, že se při použití nevyplýtvají, pouze vám ubyde mana. U kouzel je možno stejně jako u (níže) útoků kdekoli v jejich definici používat proměnné. Také je možno zároveň s efekty používat podmínky
1,"Uzdravení","Vyléčí až 3 životy",2,zivoty+3
2,"Prokletí","Sníží útok a obranu nepřítele o 2 ",4,nutok-2,nobrana-2
Souhrnný vzorec:
číslo kouzla,"jméno","popis",mana,efekt+2,efekt-1,efekt-$7...


utoky.gbs
Útoky a jejich vytváření jsou (opět) věcí spíše pro zkušenější autory. Začátečníci nechť si raději zatím ponechají původní soubor utoky.gbs, neboť jeho editace je docela složitá. Útoky totiž nabízí mnoho možností, zároveň však mnohá úskalí. U útoků je stejně jako u kouzel vedle efektů možno používat také podmínky.
1,"Vyčkávat","Vyčkat na protivníkův další úder. Nemá žádný efekt, pouze není potřeba žádná energie.","Ty mezitím vyčkáváš a sbíráš síly pro příští úder!","Ty mezitím vyčkáváš a sbíráš síly pro příští úder!","Ty mezitím vyčkáváš a sbíráš síly pro příští úder!",0,0,0,0
2,"Soustředění","Nezpůsobí žádné zranění, avšak zvýší do konce souboje tvůj útok o 2.","Hluboce se soustředíš na tvou další taktiku boje. Tvůj útok se zvyšuje o 2","Hluboce se soustředíš na tvou další taktiku boje. Tvůj útok se zvyšuje o 2","Hluboce se soustředíš na tvou další taktiku boje",5,0,0,0,utok+2
3,"Normální útok","Běžný útok bez zvláštních bonůsů či postihů","Tvůj výsledný útok je #utok, jeho obrana je #nobrana. #radekProtivník ztrácí #zasah životů (#utok útok +#poskozeni poškození -#nobrana obrana -#ntvrdost tvrdost)","Tvůj výsledný útok je #utok, jeho obrana je #nobrana. Neutrpěl však žádné zranění!","Tvůj výsledný útok je #utok, jeho obrana je #obrana. Nepřítel bohužel uhnul!",6,0,(#zbran+#sila),(#poskozeni)
4,"Prak","Vystřelíš z praku. Zbývá ještě $2 nábojů","Tvůj výsledný útok je #utok, jeho obrana je #nobrana. #radekProtivník ztrácí #zasah životů (#utok útok +#poskozeni poškození -#nobrana obrana -#ntvrdost tvrdost)","Tvůj výsledný útok je #utok, jeho obrana je #nobrana. Neutrpěl však žádné zranění!","Tvůj výsledný útok je #utok, jeho obrana je #nobrana. Nepřítel bohužel uhnul!",2,0,(15),(#poskozeni),[PROMENNA 2>"0"],promenna2-1


efekty k provedení vždy zapisujeme normálně
před efekty PŘI ÚSPĚCHU je nutno umístit znak :
před efekty PŘI NEÚSPĚCHU je nutno umístit znak !

Souhrnný vzorec:
číslo,"jméno","popis","text zobrazený při zásahu se zraněním","text zobrazený při zásahu bez zranění","text při neúspěchu",energie,mana,útok, poškození, efekt+$2,:efekt-1,!efekt-7...


Kdekoli u útoků je možno používat proměnné

Navíc je možno použít speciální lokální soubojové proměnné. Předchází jim nikoli znak $, nýbrž #
Jedná se o:

U všech útoků navíc můžeme používat tři speciální efekty (pouze pro útoky) : pristiutok, tentoobrana, pristiobrana. Použití je jako u efektů ostatních, tedy např. tentoobrana+3 nebo pristiutok-1. Výsledek je takový, že v tomto (nebo příštím) kole se o danou hodnotu zvýší/sníží hráčův útok/obrana. Efekt pristiutok platí pouze, pokud v dalším tahu hráč opravdu útočí (utok>0), tzn. když nedá Vyčkávat
Příklad: akce KRYT sice nedává žádné poškození nepříteli, ale zvýší obranu hráče v tomto kole o 2 a navíc zvýší jeho útok do příštího kola o 1. Efekty bychom nadefinovali jako: tentoobrana+2, pristiutok+1 (to vše na konci definice útoku, jak se píšou ostatní efekty)
1,"Kryt","Speciální kryt s koncentrací do dalšího souboje","Kryješ se proti útokům nepřítele a sbíráš síly pro další úder","Kryješ se proti útokům nepřítele a sbíráš síly pro další úder","Kryješ se proti útokům nepřítele a sbíráš síly pro další úder",1,0,0,0,tentoobrana+2,pristiutok+1


konstanty.gbs
Soubor s konstantami obsahuje definice, jakési "klíče", textové řetězce či chcete-li makra, která budou vyhledána v hlavním souboru skriptů a budou nahrazena za zadané náhradní texty/hodnoty. Ehm, zní to krkolomně, ale je to opravdu jednoduché. Zkusím to ještě jinak: na každém řádku v tomto souboru je nejprve zadána hodnota k nahrazení. Následuje mezera a poté text/hodnota/věty/znaky, kterými bude původní "klíč" nahrazen. Upozorňuji, že nemusí jít o celá slova, tzn. pokud vyhledáváte podřetězec AUTO, pak vám jej program nahradí i ve slově AUTOMATIZACE.
AUTOR Jan Jirkovský - jakýkoli výskyt slova "AUTOR" (v této podobě) bude nahrazen za "Jan Jirkovský"
@WEB www.crypta.mysteria.cz - jakýkoli výskyt "@WEB" bude nahrazen za "www.crypta.mysteria.cz"
TTT Testovací nový textový řetězec - jakýkoli výskyt "TTT"  bude nahrazen za "Testovací nový textový řetězec"
ahoj nazdar - jakékoli "ahoj" bude nahrazeno za "nazdar"
Souhrnný vzorec:
text/hodnota k nahrazení [mezera] nový text/hodnota 


obchod.gbs
Doufám, že jste zkoušeli ukázkovou hru, takže i víte, jak vypadá obchodování. Při dělání obchodu vůbec neřešíte ceny atp., ty jsou podle dat přímo v souborech zbraní atd. U každého obchodu si pouze nadefinujete, které zbraně, zbroje a předměty zde chcete prodávat.
1,zbran2,zbran3,zbroj2,predmet2,predmet3
Jak sami vidíte, na prvním místě je opět číslo obchodu. Další parametru jsou již prodávané věci, kterých může být téměř libovolný počet (do max. zhruba dvaceti, pak je lepší rozdělit to do více obchodů). Vždy napíšete o jakou kategorii předmětu se jedná, tedy zbran/zbroj/predmet a k tomu číslo dané věci. Dáme-li například predmet3, bude se v tomto obchodě prodávat za cenu nastavenou v souboru předmětů předmět s číslem 3. Nic složitého ;)

Veškeré příkazy a parametry

Teď už byste měli mít slušný přehled o tom, jak co funguje. Znovu opakuji, že je důležité si každou část zkusit vyzkoušet. A není nutné se něco učit z paměti, stačí věci kopírovat z ukázkových souborů a z tohoto helpu a jednotlivé parametry měnit. Brzy vám to přejde do krve ;) Když budete mít tuto dokumentaci neustále po ruce, neměl by nic být problém ;).

TagAtributyPopisPříklad
text obsah - vše uvnitř tohoto atributu je vypsáno na obrazovku
barva - jakou barvu bude tento odstavec mít, nepovinné (když nezadáte, bude normální bílý) nutno použít POVOLENÉ barvy:
white, blue, aqua, silver, gray, green, olive, lime, red, yellow, black, maroon, fuchsia, purple, teal

Nově je vedle základní předdefinovaných barev možno použít také definici odstínu barvy v šestnáctkové soustavě. Například sytě zelená: *0000FF00. Nyní si to rozebereme. Nejprve hvězdička (*) a dále dvě nuly jsou stabilně, definují alfa kanál a tím se opravdu nemusíme zabývat. Zbývá 6 čísel. Každá barva se skládá ze tří složek: modrá, zelená a červená. No a každé složce patří dvě číslice. Tedy po 00 máme dvě číslice pro modrou, poté dvě pro zelenou a nakonec dvě pro červenou. Číslice může nabývat hodnoty od 0 do F (0-9, poté A-F). Sytě zelená je tedy např. *0000FF00, sytě růžová např. *00FF00FF, šedivě zelená *00669966, jemně modrá *00fca499 . Doporučuji přečíst si o barvách v šestnáctkové soustavě nějaký článek na netu, tady opravdu není prostor pro hlubší rozbor. Snad jen jedno doporučení: zkoušejte různé kombinace dle libosti...

Další nepovinné parametry:
odkaz - na jaké číslo lokace tento odstavec hráče při kliknutí přemístí. Pokud má odstavec zadaný odkaz, je jej možné využít jako alternativu k odkazům v menu. Parametry odkaz a weblink se navzájem vylučují (není doporučované použít u jednoho odstavce oba).
weblink- internetový odkaz ve formátu http://(www).neco.(neco).domena - např. http://crypta.mysteria.cz/ nebo http://www.seznam.cz/ . Je nutné zadávat včetně protokolu (http://), jinak může tropit problémy! Parametry odkaz a weblink se navzájem vylučují (není doporučované použít u jednoho odstavce oba).
tucne - pokud je hodnota ano, pak je odstavec tučně (hodí se pro nadpisy)
kurziva - pokud je hodnota ano, pak je odstavec kurzívou
podtrzene - pokud je hodnota ano, pak je text v odstavci podtržený
preskrtnute - pokud je hodnota ano, pak je text v odstavci přeškrtnutý
Vypíše na obrazovku odstavec textu zadaný v parametru obsah, buď bílý nebo obarvený dle parametru barva. Pokud je zadán internetový odkaz, pak je na odstavec možno kliknout a toto kliknutí otevře okno internetového prohlížeče s danou adresou. Také je možné (nepovinné) nechat vypsat text tučně, kurzívou, podtržený nebo přeškrtnutý. Každý odstavec může mít všechny tyto parametry nebo ani jeden z nich. Tedy např.

<text tucne="ano" podtrzene="ano" obsah="Tohle je tučně a podtržené">

nebo třeba

<text obsah="Tohle je modře a kurzívou a navíc přeškrtnuté" barva="blue" kurziva="ano" preskrtnute="ano">

příklad hypertextového linku např.:
<text barva="lime" tucne="ano" obsah="Jardar: Čarodějný soumrak" weblink="http://textovky.webpark.cz/" podtrzene="ano">
<text barva="yellow" obsah="Stojíš uprostřed potemnělé místnosti, na jejíž stěnách visí všemožné bylinky a alchymistické suroviny...">
menupopis - jaký textový popisek bude mít tento odkaz
odkaz (nepovinné) - na jaké číslo lokace tento tag hráče přemístí
barva (nepovinné) - jakou barvu bude tento odkaz mít. Není-li udána, použije se výchozí barva pro odkazy (zpočátku nastavena bílá). Nutno použít povolené barvy (viz. barvy textu)
Přesune při kliknutí na položku menu s textem udaném parametrem popis postavu hráče ze současné lokace/odkazu do lokace udané v parametru odkaz<menu popis="Jít na sever" odkaz="3">
zpetpopis - (dobrovolné) jaký textový popisek bude mít tento odkaz, pokud není zadán, bude popisek prostě ZpětPřesune při kliknutí na vytvořenou položku menu hráče do předchozí navštívené lokace ( nachází li se v lokaci 5 a přišel li z lokace 2, pak se <zpet> chová stejně jako <menu odkaz="2"popis="Zpět" ><zpet popis="Vrátit se">
infoobsah - jaký text má být vypsán
barva - jakou barvu má mít text, POZOR, nutno použít POVOLENÉ barvy
Vypíše text v okně pro zprávy<info obsah="Spadl jsi do díry :o)" barva="red">
smazatinfobez parametrůSmaže veškerý text v okně pro zprávy<smazatinfo>
souboj jmeno - jméno nepřítele
utok - jeho útok ve tvaru xky+z (tedy například 1k6+2)
obrana - obrana
zivoty - počet životů
poskozeni - poškození
tvrdost- tvrdost
xp - počet zkušeností získaných při vítězství
predmety (nepovinné) - pokud je hodnota parametru ne, pak není možno v souboji používat předměty
kouzla (nepovinné) - pokud je hodnota parametru ne, pak není možno v souboji používat kouzla
neumirej (nepovinné) - je-li hodnota tohoto parametru 1, pak při prohře hráč neumírá, ale vyjde ze souboje vždy alespoň s jedním životem.
zranen (nepovinné) - může být zadáno pouze poté, co jsou zadány životy. Způsobí, že nepřítel nezačíná s plným počtem životů, ale s počtem rovným (maximum - zranen), tedy hodnota tohoto parametru udá, o kolik bude nižší nepřítelův počet životů oproti maximu
Nastane souboj s nadefinovaným nepřítelem. Je-li nastaven parametr neumirej na hodnotu 1, pak po prohře hráč neumírá, ale zůstává s alespoň jedním životem. Vhodné použít v kombinaci s $vysledeksouboje - můžete se "zařídit" podle toho, jak souboj dopadl. Například - hráč se může zúčastnit souboje v aréně o ceny. Při prohře nic nezíská (ale odejde s původním počtem životů, které si předtím uložíte do nějaké proměnné a pak mu je navrátíte), při remíze dostane řekněme 5 zlatých a při výhře 20 zlatých. Viz. např. příklad č.12 v sekci příkladů <souboj jmeno="Vlk" utok="1k6+0" poskozeni="3" obrana="6" tvrdost="0" zivoty="26" xp="30">

nebo

<souboj jmeno="Mistr šermíř" utok="2k5+0" poskozeni="0" obrana="8" tvrdost="0" zivoty="40" xp="100" neumirej="1" kouzla="ne" predmety="ne">
obchodcislo - číslo obchodu (ukazující na obchod nadefinovaný v souboru obchod.gbs), který se má konatUskuteční obchod, předměty, zbraně atd. jsou definovány v souboru daného obchodu určeného parametrem cislo<obchod cislo="2"> - načte a provede obchod v souboru obchod pod číslem 2
saveodkaz - která lokace má být po načtení hry provedena
nazev (nepovinné)- předvyplněný název save pozice, výchozí nastavení "Zadej"
presmeruj (pokročilé) - má-li být cílová lokace po nahrání savu v přesměrovaném souboru, je nutno uvést tento parametr presmeruj. Je-li cílová lokace ve výchozím souboru nebo nepoužíváte-li přesměrování, není nutné tento parametr uvádět.
Uloží pozici hry spolu s celým inventářem atd... Po načtení se udaná lokace CELÁ provede, tím pádem není dobré dávat save a odkaz po jeho načtení na stejnou lokaci, protože by se dané lokace provedla po každé při načtení a pak by ještě bylo možné uložit. Zkuste si to, pochopíte ;). Rada - dávejte odkaz savu na lokaci následující po save, nebudete v tom mít bordel :o)<save>
<save odkaz="30" nazev="Speciál">
zbran"číslo zbraně" - název parametru udává, o kterou zbraň se jedná (číslo ukazuje na číslo zbraně v souboru zbrane.gbs) a hodnota parametru udává, kolik kusů této zbraně hráč dostane (nejčastěji jednu)Hráč dostane 1 nebo více zbraní daného druhu<zbran 2="1"> - hráč dostane jednu zbraň číslo 2
zbroj"číslo zbroje" - platí zde to samé co u zbraníplatí zde to samé co u zbraní<zbroj 3="1"> - hráč dostane jednu zbroj číslo 3
predmet"číslo předmětu" - platí zde to samé co u zbraní a zbrojíplatí zde to samé co u zbraní a zbrojí<predmet 1="4"> - hráč dostane čtyři předměty číslo 1
objekt"číslo objektu" - celkem podobné zbraním atd., s tím rozdílem, že číslo není definované v žádném souboru, ale přímo za běhu programu. Hodnota tohoto parametrui opět udává, kolik těchto objektů hráč získá
jmeno - jméno objektu
popis- popis objektu
nové:
obrazek (dobrovolné) - jméno souboru, který se má při kliknutí na objekt zobrazit (ze složky Obrazky)
sirka (dobrovolné) - šířka obrázku v pixelech
vyska (dobrovolné) - výška obrázku v pixelech
Objekty jsou v podstatě obdoba předmětů, tedy až na několik zásadních rozdílů a to :
1) jejich jméno a popis se definuje přímo za běhu programu
2) není možné je koupit v obchodě
3)nemají žádný efekt! jediné co dělají je, že je hráč u sebe MÁ.

K čemu je to dobré? U podmínek, které si vysvětlíme v příští kapitole (abyste to pochopili, je to ve stylu "Pokud má hráč klíč, pak může otevřít dveře", už chápete?)

Pokud je u objektu udán parametr obrazek a jeho sirka a vyska, pak je možné v inventáři kliknout na tento objekt a hráči se zobrazí daný obrázek. Zobrazí se podobně jako u normálního příkazu obrazek. Pamatujte na to, že soubor obrázku musí být ve složce Obrazky v adresáři hry. Hodí se například na zobrazení mapy v inventáři (dáte hráči mapu a ten si ji pak může kdykoli prohlédnout!)
<objekt 3="1" jmeno ="Klíč od sklepení" popis="Narezavělý starý klíč" >

= hráč dostane objekt číslo 3 pojmenovaný Klíč od sklepení s popisem Narezavělý starý klíč

<objekt 1="1" jmeno ="Stará mapa" popis="Prastará a špatně zachovalá mapa cesty k pokladu" obrazek="mapa.jpg" sirka="400" vyska="300" >

= hráč dostane objekt Stará mapa. Pokud na něj v inventáři klikne, zobrazí se mu obrázek mapa.jpg ze složky Obrazky
promenna"číslo proměnné" - udává číslo proměnné, obdoba čísla u objektu. Je důležité, protože je použito v podmínkách atd... Hodnota udává, jakou HODNOTU (či chcete li počet, ale je to poněkud nepřesné) bude daná proměnná mít (tedy ne O KOLIK se zvedne, jak tomu je u předmětů, objektů atd.). Podotýkám, že tohle si přesněji vysvětlíme níže... Pokud neumíte programovat, asi si pod pojmem proměnná nic nepředstavíte. Ale to je jedno, pokusím se to velice laicky objasnit pro naše použití. Proměnná má NAPROSTO stejné použití jako objekty. Nemá tedy jako taková žádný přímý vliv, ale používá se v podmínkách. Čím se liší od objektů? Hráč o ní NEVÍ. Když hráč najde objekt (třeba klíč), zobrazí se mu informace o něm a ukáže se mu v inventáři. Pokud ale chceme zaznamenat nějakou ABSTRAKTNÍ věc, použijeme proměnnou. Například pokud chceme zjistit, jestli hráč už mluvil s nějakou postavou, tak při rozhovoru s ní nastavíme hodnotu nějaké proměnné třeba na 1 a dkyž pak budeme chtít zjisti, jestli s ní hráč mluvil, jednoduše použijeme podmínku (vysvětlím níže)
POZOR! - jeden velký rozdíl oproti objektům atd. - v případě proměnné NEZVÝŠÍTE její hodnotu o dané číslo udané parametrem, nýbrž nastavíte její hodnotu na toto číslo!
<promenna 2="1">
= nastavíme hodnotu proměnné 2 na hodnotu jedna (základní hodnota je nula). Efekt není žádný, ale později můžeme tuto hodnotu chtít zjistit
zvyspromennou"číslo proměnné" - název parametru udává číslo proměnné, o kterou se jedná, jeho hodnota udává, o kolik se daná proměnná zvýšíV podstatě to samé jako promenna s tím rozdílem, že nenastaví hodnotu udanou parametrem, ale pouze přidá ke stavající hodnotě proměnné hodnotu udanou parametrem (zvyší proměnnou o tuto hodnotu)<zvyspromennou 3="10"> - zvyší hodnotu proměnné číslo 3 o 10
snizpromennou"číslo proměnné" - název parametru udává číslo proměnné, o kterou se jedná, jeho hodnota udává, o kolik se daná proměnná snížíOpak zvyspromenne. Tentokrát budeme proměnnou o danou hodnotu snižovat. Proměnná může jít i do minusu<snizpromennou 2="5"> - sníží hodnotu proměnné číslo 2 o 5
nahoda"číslo proměnné" - název parametru udá, o jakou proměnnou půjde a její hodnota udá, jaký bude rozsah náhody, tedy jakými kostkami a jak se bude házetPřiřadí proměnné hodnotu takovou, kterou program získá náhodně po hození zadaného hodu ve tvaru xky+z, tedy například 2k6+1. <nahoda 1="1k6+1"> - proměnná číslo 1 získá hodnotu v rozmezí 2-7
penizeplus nebo minus
plus - hodnota tohoto parametru určí, kolik hráč dostane peněz
minus- hodnota tohoto parametru určí, kolik hráč ztratí peněz. Pokud by měly klesnout pod nulu, bude mít hráč nulu
V závislosti na parametrech hráč získá/ztratí určitý počet peněz<penize plus="12"> - hráč dostane 12 peněz
xp nebo zkusenostiplus - hodnota tohoto parametru určí, kolik zkušenostních bodů má hráč dostatHráč získá tolik zkušenostních bodů, kolik je definováno v parametru plus<zkusenosti plus="30"> - hráč získá 30 XP
tagy ovlivňující vlastnosti hráče:

zivoty
mana
maxzivoty
maxmana
sila
obratnost
rychlost
energie
plus nebo minus nebo je
plus - hodnota tohoto parametru určí, o kolik se hráči zvýší daná vlastnost
minus- hodnota tohoto parametru určí, o kolik se hráči daná vlastnost sníží. Pokud by měla klesnout pod nulu, bude nulová. Pozor! Vyjímkou jsou životy a maxživoty - pokud klesnou na nulu nebo pod nulu, hráč zemře!
je - hodnota tohoto parametru určí, kolik se bude rovnat daná hráčova vlastnost
Změní vlastnosti hráče podle nastavených parametrů a toho, o jaký tag se jedná (tag zivoty ovlivňuje životy, tag sila sílu atd.). Změna vlastností je trvalá, do konce hry tedy bude hráč mít například o jednu sílu víc. Životy fungují jako modifikace normálního zdraví, nemohou tedy přesáhnout maximální hodnotu a pokud klesnou na nulu, je hráč kaput. Stejně tak mana, akorát že hráč nemůže umřít ;). <zivoty minus="10"> - ubere hráči 10 životů
<obratnost plus="1"> - zvýší hráči obratnost o jedna
<zivoty je="1"> - nastaví hráči životy na 1 (například po brutálním výslechu...)
<mana je="$maxmana"> - doplní hráči manu do výchozí úrovně (speciální znak $ je popsán níže)
kouzloumime - hodnota udává, které kouzlo se má postava naučit (získat)
nebo
neumime - které kouzlo máme zapomenout
Postava do začátku neumí žádná kouzla. Pokud chcete, aby některá mohla používat, musíte nejdřív použít tento tag u každého kouzla, které chcete postavu anučit. Stejně tak je možno kouzla zapomínat. <kouzlo umime="1"> - naučí hráče používat kouzlo číslo 1
utokumime - hodnota udává, který útok/akci se má postava naučit (získat)
nebo
neumime - který útok máme zapomenout
Postava do začátku neumí žádné útoky. Pokud ji chcete naučit některé další akce/útoky, musíte použít tento tag. <utok umime="5"> - naučí hráče používat akci číslo 5 (v ukázkové hře je to Šavlový tanec)
obrazeksoubor - určí, který soubor ze složky obrazky bude načten. Zadávejte celý název souboru včetně přípony (například drak.jpg) vyska - výška obrázku (zadávat nutno pouze když nebude fungovat autodetekce)
sirka - šířka obrázku (zadávat nutno pouze když nebude fungovat autodetekce)
//šířka a výška je detekována automaticky, pokud je obrázek ve správném formátu a není zadán parametr sirka ani vyska.

popis (nepovinné) - jaký text bude u obrázku zobrazen
Načte a zobrazí nějaký ke hře přiložený obrázek ze složky obrazky. Možno načítat formáty .jpg, .bmp., .png a .gif. Doporučuji nepoužívat moc velké obrázky (nejenže zabírají hodně místa na disku a tím pádem i ke stažení z netu, ale hlavně ne každý má velké rozlišení monitoru a obrázek by se mu nemusel zobrazit. Osobně doporučuji maximálně kolem 640 x 480 pixelů... a formát jpg, je lepší ;o))<obrazek soubor="past.jpg" sirka="120" vyska="90" popis="Spadl jsi do smrtící jámy plné bodáků" >
konecbez parametrůOkamžitě ukončí hru, nedoporučuji moc používat, když hráči dojdou životy, umře sám (program se o to postará). Konec využijete nejspíš jen na samém konci hry...<konec> - jakmile se hráč dostane do lokace toto obsahující, vypne se hra
zmenotazkuotazka - hodnota udává nový text otázky
barva - nová barva, kterou bude otázka mít (možno použít povolené barvy, stejné jako např. u barvy textu)
Změní otázku v menu. Výchozí nastavení je "Co uděláš?" a vy si jej můžete změnit. Hodí se například v rozhovorech nebo i v jiných situacích. Otázku můžete měnit kolikrát chcete. Není potřeba ji měnit pro každou lokaci zvlášť, program si nastavení "pamatuje" dokud není znovu změněno.<zmenotazku otazka="Co řekneš?"> - změní otázku v menu na "Co řekneš?"
zmenjmenojmeno - hodnota udává nové jménoZmění jméno hráče.<zmenjmeno jmeno="Roderick"> - změní jméno hráče na "Roderick"
odstranobjekt"číslo objektu"- název udává, o jaký objekt se bude jednat, a hodnota udává, o kolik se počet objektů tohoto čísla snížíV podstatě pravý opak tagu objekt s tím rozdílem, že tentorkát se o dané číslo počet objektů sníží. Hodí se, když třeba použíjete klíč, tak ho pak tímhle smazat (aby se objekty nehromadily v inventáři). Program si sám hlídá, aby počet objektů neklesnul pod nulu, takže pokud nevíte, kolik objektů hráč má a chcete prostě zničit všechny, stačí dát hodnotu parametru třeba 1000 (smaže to tisíc a pokud je pak těch objektů méně než 0, bude jich právě 0)<odstranobjekt 2="1"> - sníží počet objektů číslo 2 o jeden kus
odstranpredmet"číslo předmětu"... platí zde to samé co u objektů, akorát se jedná o předmětyTo samé co u objektů, akorát se jedná o předměty a ne objekty. Nedoporučuji příliš používat! Zatímco nad objekty máte jakožto tvůrce plnou kontrolu, předměty může hráč třeba použít a rázem je nemá, takže se nemůžete spolehnout, že hráč bude předmět mít... No ale když ho mít nebude a vy ho budete chtít smazat, tak se vlastně taky nic nestane ;) Osobně preferuji odstranobjekt, ale i pro tohle můžete najít uplatnění :o)<odstranpredmet 1="2"> - sníží počet předmětů číslo 1 o dva kusy
zmenzbran"číslo zbraně" - udává, která zbraň se má změnit, hodnota tohoto parametru udává, na kterou zbraň se má změnitProhledá veškeré zbraně v hráčově inventáři i v ruce a pokud najde zbraň daného čísla, změní kompletně tuto zbraň na jinou. Pokud hráč nemá zbraň v inventáři, ale v ruce, změní se mu okamžitě i statistiky (pokud má zbraň nějaké kouzelné efekty). Zkrátka se vším všudy změní jednu zbraň na jinou. Pokud by ji hráč náhodou neměl vůbec, nic se neděje. Vhodné použít například na upgradování (vylepšování) zbraní.
POZOR: Primárně jsou měněny zbraně v inventáři, teprve poté se kontroluje hráčova ruka (v případě zbrojí pak tělo). Jinými slovy pokud by hráč měl tu STEJNOU zbraň dvakrát, jednou v ruce a jednou v inventáři, odstraní se jen ta v inventáři. Ta v ruce (na těle) by se odstranila až při druhém použití tohoto příkazu
<zmenzbran 2="3"> - pokud má hráč zbraň číslo 2, změní se tato zbraň v hráčově inventáři nebo v ruce na zbraň číslo 3
zmenzbroj"číslo zbroje" - udává, která zbroj se má změnit, hodnota tohoto parametru udává, na kterou zbroj se má změnitTo samé co zmenzbran, akorát nemění zbraň daného čísla, ale zbroj<zmenzbroj 3="1"> - pokud má hráč zbroj číslo 3, změní se tato zbroj v hráčově inventáři nebo na těle na zbraň číslo 1
odstranzbrancislo - hodnota tohoto parametru udává, kterou zbraň chceme odstranitOdstraní 1 kus zbraně daného čísla. Pokud má hráč danou zbraň v ruce, dostane namísto ní zbraň Nic o nulové síle. <odstranzbran cislo="1"> - pokud má hráč zbraň číslo 1 v inventáři, ztratí od ní 1 kus... pokud ji má v ruce, bude mít poté v ruce zbraň o nulové síle
odstranzbrojcislo - hodnota tohoto parametru udává, kterou zbroj chceme odstranitTo samé co odstranzbran, ale tentokrát se týká zbrojí<odstranzbroj cislo="2"> - pokud má hráč zbroj číslo 2 v inventáři, ztratí od ní 1 kus... pokud ji má v ruce, bude mít na sobě zbroj o nulové kvalitě (obrana, tvrdost atd..)
odstranzbraneallcislo - hodnota tohoto parametru udává, zbraně kterého typu chceme z inventáře odstranitOdstraní všechny zbraně daného typu (čísla) v hráčově inventáři. Ignoruje zbraň v ruce<odstranzbraneall cislo="4"> - hráč ztratí všechny zbraně číslo 4 z inventáře
odstranzbrojeallcislo - hodnota tohoto parametru udává, zbroje kterého typu chceme z inventáře odstranitOdstraní všechny zbroje daného typu (čísla) v hráčově inventáři. Ignoruje zbroj na těle<odstranzbrojeall cislo="2"> - hráč ztratí všechny zbroje číslo 2 z inventáře
vypniinfobez parametrůOd zadání tohoto příkazu se nebude vypisovat text do infa (takové to okýnko dole). POZOR: při nahrání uložené pozice se text v infu normálně zobrazuje, musíte jej případně znovu vypnout.
K čemu to je? Například pokud bojujete s nehmotným duchem, tak před soubojem hráči odeberete nějaké útoky/kouzla a bylo by zbytečné toto odebrání vypisovat v infu, takže jej stačí na chvíli vypnout, po boji útoky vrátit a info zapnout
<vypniinfo> - info se přestane vypisovat
zapniinfobez parametrůInfo se zase začne vypisovat, pokud bylo předtím vypnuté<zapniinfo> - info se odteď bude opět vypisovat
pocetpredmetu"číslo proměnné" - do které proměnné se počet uloží
"číslo předmetu" - počet kusů kterého předmětu se do proměnné uloží
Uloží do proměnné vybraného čísla počet kusů předmětu daného čísla.<pocetpredmetu 2="3"> - do proměnné číslo 2 se uloží počet kusů předmětu číslo 3
pocetobjektuto samé, co u pocetpredmetu, akorát se jedná o objektyviz. pocetpredmetu<pocetobjektu 1="10"> - do proměnné číslo 1 se uloží počet kusů objektu číslo 10
pocetzbranito samé, co u předchozích, počítá všechny zbraně daného druhu v inventáři (zbraň v ruce není počítána)viz. pocetpredmetu<pocetzbrani 5="2"> - do proměnné číslo 5 se uloží počet kusů zbraní 2
pocetzbrojito samé, co u předchozích, počítá všechny zbroje daného druhu v inventáři (zbroj na těle není počítána)viz. pocetpredmetu<pocetzbroji 3="4"> - do proměnné číslo 3 se uloží počet kusů zbrojí 4
prodej procent - kolik procent z nákupní ceny každé věci je možno získat jejím prodejem (výchozí nastavení je 50%, příklad: prodejem meče, který hráč někde koupí, získá tedy zpět polovinu utracených peněz; po zaokrouhlení)). Nedávejte více jak 100, pak by prodejem získával víc, než kolik zaplatil za zakoupení. Je na vás, jak si procenta stanovíte, logicky vyplývají dvě hlavní možnosti : 100 = hráč může libovolně nakupovat a prodávat, jakmile našetří na trochu lepší ekvivalent současného vybavení, hned si jej může koupit a staré beztrestně prodat. Nebo zhruba 25-75% - hráč musí rozmýšlet, jestli se mu vyplatí koupit lepší obdobu svého vybavení, protože až to bude chtít prodat, nedostane zpátky všechny utracené peníze. Tahle možnost je reálnější, nicméně obě mají jisté výhody a nevýhody. Jsou ještě samozřejmě ještě i jiné cesty (10%, 0%), ale to už nechám na vás :-)
Poznámka: zaokrouhluje se vždy DOLŮ na nejbližší celé číslo, takže např. 50% z 1 je 0
typ - udává jaké typy zboží je možno prodávat:
vse-zbraně, zbroje i předměty
zbranezbroje - zbraně a zbroje
zbranepredmety - zbraně a předměty
zbrojepredmety - zbroje a předměty
zbrane - zbraně
zbroje - zbroje
predmety - předměty (použitelné, tedy lektvary apod., nikoli objekty)
Umožní hráči prodat své nashromážděné vybavení za určité procento jeho původní ceny. Není možno prodávat vybavení, které má v tu chvíli postava na sobě! Stejně tak není možné prodávat předměty s definovanou cenou 0.<prodej typ="predmety" procent="100"> - umožní hráči prodat své předměty za jejich plnou cenu
<prodej typ="vse" procent="50"> - umožní hráči prodat své vybavení za polovinu jeho původní ceny
obrazekvtextusoubor - určí, který soubor ze složky obrazky bude načten. Zadávejte celý název souboru včetně přípony (například drak.jpg)

nepovinné:

popis - zobrazí bublinu s popisem při najetí myší na obrázek. Hodnota udá text, který se zobrazí
odkaz - na jaké číslo lokace tento obrázek hráče při kliknutí přemístí. Pokud má obrázek zadaný parametr odkaz, je jej možné využít jako alternativu k odkazům v menu.
vyska - výška obrázku (zadávat nutno pouze když nebude fungovat autodetekce)
sirka - šířka obrázku (zadávat nutno pouze když nebude fungovat autodetekce)
**šířka a výška je detekována automaticky, pokud je obrázek ve správném formátu a není zadán parametr sirka ani vyska.

posunx - hodnota udá, o kolik je tento obrázek posunut od předchozího obrázku (nebo od základné x-ové souřadnice). Je-li 0, pak je na předchozím obrázku těsně nalepen posuny - to samé co posunx, akorát se týká ypsilonové souřadnice (tedy jak vysoko/nízko oproti předchozímu obrázku tento nový bude). Pokud nastavíme posunx=0 a posuny=0, pak bude nový obrázek hned napravo nalepen na předchozím.

Takto například uděláme 3x2 obrázky na dvou řádcích pod sebou: <obrazekvtextu soubor="test.bmp" sirka="100" vyska="60" posunx="0" posuny="5">
<obrazekvtextu soubor="test.bmp" sirka="100" vyska="60" posunx="100" posuny="0">
<obrazekvtextu soubor="test.bmp" sirka="100" vyska="60" posunx="200" posuny="0">
<obrazekvtextu soubor="test.bmp" sirka="100" vyska="60" posunx="0" posuny="60">
<obrazekvtextu soubor="test.bmp" sirka="100" vyska="60" posunx="100" posuny="0">
<obrazekvtextu soubor="test.bmp" sirka="100" vyska="60" posunx="200" posuny="0">
Podobné jako příkaz obrazek s tím rozdílem, že se neotevírá v novém okně, ale normálně pod nebo mezi odstavci textu (můžete mít třeba dva odstavce, poté obrázek, poté další odstavec textu a pak třeba další dva obrázky za sebou apod.). Obrázků může být více na jednom řádku a pokud je máte ve formátu PNG (případně GIF) s alfa-kanálem, využije FGBE také jejich průhlednosti. <obrazekvtextu soubor="mesto.png" sirka="320" vyska="240" popis="Mapa města" > - zobrazí pod posledním dosud vypsaným odstavcem textu (nebo jiným obrázkem) zvolený obrázek. Při najetí na obrázek se zobrazí bublina s textem "Mapa města"
zapnicislalokacibez parametrůNahoře vedle menu se bude vypisovat číslo aktuální lokace. Také u odkazů bude vidět, na jaké číslo lokace odkazují. Hodí se asi jen pro testovací účely (pro autora a betatestery hry), pro hráče spíš nikoli.<zapnicislalokaci> - budou se vypisovat čísla lokací
vypnicislalokacibez parametrůZruší platnost příkazu zapnicislalokaci <vypnicislalokaci> - čísla lokací se nebudou vypisovat (výchozí nastavení)
vychozibarvatextubarva - nově nastavená výchozí barva odstavců s textem, která se použije, pokud není barva u konkrétního odstavce přímo specifikována.Změní výchozí barvu textu použitou u odstavců bez udané barvy. Výchozí nastavení je bílá (white). Nutno použít povolené barvy (viz barvy u příkazu text)<vychozibarvatextu barva="yellow"> - odstavce bez nastavené barvy budou používat žlutou barvu
vychozibarvamenubarva - nově nastavená výchozí barva odkazů v menu, která se použije, pokud není barva u daného odkazu specifikována.Změní výchozí barvu textu odkazů v menu. Výchozí nastavení je bílá (white). Nutno použít povolené barvy (viz barvy u příkazu text)<vychozibarvamenu barva="red"> - odstavce bez nastavené barvy budou používat červenou barvu
ulozpocatecnivlastnostibez parametrůUloží aktuální vlastnosti postavy jako počáteční, s nimiž poté bude program operovat (např. umožní zjistit, jak se liší současné vlastnosti od těch počátečních). Na samotném začátku hry jsou tyto vlastnosti uloženy, nicméně pokud ještě po spuštění programu dáváte hráči na výběr například ze dvou postav (z nichž každá bude mít jiné vlastnosti), je dobré po tomto výběru tento příkaz použít, aby program bral za počáteční vlastnosti počáteční vlastnosti dané postavy. Využití je pak u proměnných - $startVLASTNOST ($startsila, $startobratnost atd., viz proměnné)<ulozpocatecnivlastnosti> - uložení aktuální vlastnosti postavy a program bude je považovat za počáteční
vzorecčíslo proměnné - jméno parametru udává číslo proměnné, do níž se má hodnota parametru po vyhodnocení vzorečku uložit.Do dané proměnné se uloží hodnota spočítaného matematického výrazu. V jeho zadání se mohou objevit kombinace znamének, číselných hodnot a kulatých závorek. Tedy +-*/ : () %. Postupně: plus, minus, krát, děleno (nezaokrouhlené), děleno (zaokrouhlené), závorky, modulo (% - modulo - zbytek po celočíselném dělení daným číslem)<vzorec 5="(3*7+12-(5+5+5)) % 5"> - do proměnné $5 se uloží hodnota 3. Příklad je postupně: (3*7+12-(5+5+5))%5=(21+12-15)%5=18%5
prefixprovadet - "ano"/"ne" - udá, zda se má prefix automaticky vkládat či nikoli

jmeno - hodnota tohoto parametru udává jméno knihovny k načtení
Zařídí načtení a započetí automatického vkládání vybrané knihovny na začátek každé lokace. Vložení do jedné konkrétní lokace lze zakázat příkazem #noprefix kdekoli v dané lokaci<prefix provadet="ano" jmeno="hlavicka">
suffixObdoba prefixu, akorát se vkládá na KONEC každé lokace, tedy ne na začátek. Vložení do jedné konkrétní lokace lze zakázat příkazem #nosuffix někam do dané lokace
zakazpostavudocasnežádné parametryPro tuto lokaci znemožní tlačítko Postava<zakazpostavudocasne>
zakazvybavenidocasnežádné parametryPro tuto lokaci znemožní tlačítko Vybavení<zakazvybavenidocasne>
zakazpostavužádné parametryDo odvolání (trvalého nebo dočasného povolení) znemožní tlačítko Postava<zakazpostavu>
zakazvybavenižádné parametryDo odvolání (trvalého nebo dočasného povolení) znemožní tlačítko Vybavení<zakazvybaveni>
povolpostavudocasnežádné parametryPro tuto lokaci povolí tlačítko Postava. Tlačítka Postava a Vybavení jsou implicitně povoleny.<povolpostavudocasne>
povolvybavenidocasnežádné parametryPro tuto lokaci povolí tlačítko Vybavení. Tlačítka Postava a Vybavení jsou implicitně povoleny.<povolvybavenidocasne>
povolpostavužádné parametryDo odvolání (trvalého nebo dočasného zákazu) povolí tlačítko Postava. Tlačítka Postava a Vybavení jsou implicitně povoleny.<povolpostavu>
povolvybavenižádné parametryDo odvolání (trvalého nebo dočasného zákazu) povolí tlačítko Vybavení. Tlačítka Postava a Vybavení jsou implicitně povoleny.<povolvybaveni>
vypisujpromennebez parametrůTrochu obdoba příkazu zapnicislalokaci. V tomto případě bude při každé změně proměnné vypisovat informaci do infořádku. Dobré pro hledání chyb, do finální hry to nedávejte :)<vypisujpromenne> - budou se vypisovat změny proměnných
nevypisujpromennebez parametrůZruší výpis hodnot proměnných do infa. Implicitní nastavení<nevypisujpromenne> - hodnoty a změny proměnných se nebudou vypisovat
seznampromennychbez parametrůVypíše odstavec textu se VŠEMI běžnými proměnnými a jejich hodnotami, od $1 po $999. Dobré pro hledání chyb při tvorbě složitějšíc skriptů<seznampromennych> - vypíše hodnoty veškerých běžných proměnných ve hře
seznampromennychsouborbez parametrůVypíše všechny proměnné a jejich hodnoty do souboru seznampromennych_vse.txt a zároveň všechny nenulové proměnné (pro snadnější orientaci) do souboru seznampromennych_nenul.txt . Vypsání proměnných do souboru se hodí pro účely ladění hry. <seznampromennychsoubor> - vypíše hodnoty proměnných do souboru seznampromennych_vse.txt a seznampromennych_nenul.txt
retezecčíslo textového řetězce = obsah textového řetězce (1="hodnota řetězce 1")Nastaví textové proměnné daného čísla daný obsah<retezec 3="Obsah textového řetězce číslo 3">
casovacodkaz - hodnota parametru udá, do jaké lokace bude hráč přemístěn
cas - hodnota udá, za kolik sekund od spuštění časovače (zpravidla načtení lokace) bude hráč do jiné lokace přemístěn
vypisovat - hodnota "ano" nebo "ne". Pokud ano, hráč vidí, kolik sekund mu ještě zbývá (číslo se vypisuje), pokud "ne", je počítání tajné
Spustí v dané lokaci časovač, který po určité době hráče sám přemístí do jiné lokace. V každé lokaci smí být pouze jeden časovač (celkem logicky :)). Nepoužívejte časovač v lokacích se souboji, obchodem a ukládáním hry, mohlo by to způsobit problémy. Obecně to prostě s časovačem nepřehánějte a zvažte, ve kterých lokacích je okamžité přesměrování použitelné. <casovac odkaz="12" cas="50" vypisuj="ano"> - po padesáti sekundách bude hráč automaticky přemístěn do lokace číslo 12, odpočítávání bude vidět
presmerujjmeno (nepovinné) - udá jméno pluginu, na který má být hra přesměrována namísto současného (automaticky zpočátku je to data.gbs). Pokud není jméno udáno, je ukazatel hlavního souboru opětovně přesměrován na výchozí soubor data.gbs. Umožní v podstatě rozdělit soubor data.gbs na více částí - lokace, v níž je tento příkaz, se provede normálně celá. Další odkazy z ní vedoucí však budou směřovat na čísla lokací v JINÉM souboru, udaném právě parametrem jmeno. Další soubory k přesměrování se musejí nacházet ve složce knihovny, stejně jako ostatní pluginy. Jméno zadávejte bez přípony, je doplněna automaticky. <presmeruj jmeno="nahradni"> - odkazy z této lokace nepovedou nadále do lokací v souboru data.gbs, ale do lokací v souboru nahradni.gbs ve složce knihovny. Hra se tím začne kompletně odehrávat z tohoto souboru, dokud není přesměrováno jinam nebo na výchozí data.gbs
nastavpromennecislo - od proměnné jakého čísla budou proměnné nastaveny
pocet - kolik proměnných bude takto nastaveno, nastavují se proměnné po sobě jdoucí
hodnota - jaká hodnota bude proměnným nastavena
Slouží k nastavení hodnot více proměnných najednou<nastavpromenne cislo="10" pocet="3" hodnota="1" > - proměnné 10,11 a 12 budou nastaveny na hodnotu 1
srovnejretezce Srovná dva řetězce (A a B) a do proměnné uvedené v parametru VYSLEDEK uloží buď 1 (texty jsou totožné) nebo 0 (texty jsou rozdílné). Možno použít např. pro kontrolu odpovědi/hesla u hádanky apod.
a - první textový řetězec. b - druhý textový řetězec. vysledek - číslo promenné, do níž je výsledek srovnání (0,1) uložen
Slouží k porovnání, zda dva textové řetězce jsou stejné nebo různé. Nebere v potaz velká a malá písmena (tzn. "AHOJ" = "ahoj") <srovnejretezce a="$retezec1" b="Strom" vysledek="15" > - srovná obsah $retezec1 s řetězcem 'strom'. Jsou-li stejné, uloží do proměnné číslo 15 hodnotu 1, v opačném případě hodnotu 0
zadnezbranebez parametrůOdstraní hráči z inventáře všechny zbraně. Zbraň v ruce je možno odstranit přes proměnnou $cislozbrane a poté odstranění konkrétní zbraně odstranzbran <zadnezbrane>
zadnezbrojebez parametrůOdstraní hráči z inventáře všechny zbroje Zbroj na těle je možno odstranit přes proměnnou $cislozbroje a poté odstranění konkrétní zbroje odstranzbroj <zadnezbroje>
zadnepredmetybez parametrůOdstraní hráči z inventáře všechny předměty<zadnepredmety>
zadneobjektybez parametrůOdstraní hráči z inventáře všechny objekty<zadneobjekty>
textoveoknootazka - jaký textový nadpis se v okně zobrazí
retezec - do textové proměnné jakého čísla se uloží hráčova odpověď
Zobrazí se okno s textovým polem, do něhož hráč může zadat text, tedy např. odpověď na otázku, hádanku etc.<textoveokno otazka="Hádanka:" retezec="10">


POZOR: Ve všech hodnotách parametrů (tedy téměř kdekoli) můžete používat zvláštní znak dolar $ (napíšete jej tak, že držíte levý alt a vyťukáte na numerické klávesnici 36). K čemu je $ dobrý? Když ihned za něj dáte jakékoli číslo, bude dolar i s číslem nahrazen hodnotou proměnné toho čísla, jaké jste zadali. Tedy například $2 bude znamenat hodnotu proměnné dva. je to možné použít u všech hodnot parametrů, klidně <text obsah="Hodnota proměnné 1 je $1">

Také je možné používat vlastnosti postavy jakožto proměnné kdekoli v textu/hodnotách parametrů. Jak? Funguje to stejně jako nahrazování proměnných, tedy s napsáním dolaru $ s tím rozdílem, že za dolarem nenásleduje číslo, nýbrž jméno dané vlastnosti. Tedy například $zivoty, $maxzivoty a tak podobně.
Použitelné proměnné: Příklad:
<text obsah="Máš $zivoty životů a $mana many."> Vypíše, kolik má hráč zrovna životů a kolik many
nebo třeba
<zivoty je="$maxzivoty">Nastaví počet hráčových životů na jejich maximální úroveň


Proměnné k určení stavu hráče bez ovlivnění vybavením - "$cistyVLASTNOST" - udávají hodnotu vlastností postavy bez bonusových efektů za zbraň a zbroj

Proměnné udávající počáteční stav hráče na počátku hry (případně od posledního volání funkce ulozpocatecnivlastnosti) - "$startVLASTNOST" - počáteční hodnota dané vlastnosti
Speciální proměnné - jejich hodnoty jsou textové, nelze je proto použít tam, kde program očekává čísla! Pouze ve výpisech textu apod. Příklad:
<text obsah="Vítej! Jsi $jmeno, že mám pravdu?">
nebo třeba
<text obsah="Právě je $cas!">

Podmínky

Dostáváme se do nejtěžší části, která může být pro neprogramátory poněkud nestravitelná, ale pokusím se to vysvětlit srozumitelně. Dám vám malý příklad:

Ve městě je zamčená brána, která jde otevřít pouze, pokud má hráč objekt (nazvaný třeba) klíč od městské brány. Ale jak to uděláme??? Pomůže nám právě podmínka. Když bych měl její efekt říct slovně, bude to v tomto případě "pokud má hráč klíč od městské brány, je možno ji otevřít".

Jak to funguje? Veškeré tagy, které chceme podmínit žádanou podmínkou, uzavřeme dovnitř jakéhosi bloku. Zní to divně, za chvíli si to ukážeme na příkladě. Čím můžeme podmiňovat? Do podmínky můžeme dát buď počet nějakého předmětu, počet nějakého objektu a nebo hodnotu nějaké proměnné. Já vím, samá teorie, ukážeme si příklady :o).
<1> 
= označení čísla lokace


<text obsah="Tento text se normálně vypíše"> 
= normální příkaz na vypsání textu

[PREDMET 1="2"] 
= tohle je podmínka! znamená - pokud má hráč 2 kusy předmětu číslo 1, pak je podmínka splněna
<text obsah="Tento text se vypíše, pokud je splněna výše uvedená podmínka"> 
= příkaz pro výpis textu, který ale funguje pouze, pokud je splněna podmínka
[/]
= tady končí podmínka (podmíněný blok), vše co je za tímto ukončovátkem už je bez uvedené podmínky
<text obsah="Tento text se také normálně vypíše"> 
= další normální příkaz, tady už žádná podmínka není

ještě pro přehlednost bez komentářů:
<1> 
<text obsah="Tento text se normálně vypíše"> 

[PREDMET 1="2"] 
<text obsah="Tento text se vypíše, pokud je splněna výše uvedená podmínka"> 
[/]

<text obsah="Tento text se také normálně vypíše"> 
Teď už byste to snad měli zhruba chápat. Zkrátka a dobře, veškeré příkazy, které jsou uvnitř toho podmíněného bloku (tedy mezi tím začátkem podmínky a ukončením [/]), se provedou pouze, pokud je daná podmínka splněna.

A jaké typy podmínek můžeme používat? A dále proměnné dle stavu/vlastností postavy (na velkých a malých písmenech snad nezáleží, teda aspoň myslim :o): Upozornění: Proměnné dle vlastností postavy mají jeden velký rozdíl a to ten, že nezáleží na první časti podmínky. Vysvětlím - normálně máte třeba [PREDMET 1="1"], tedy máme li právě jeden předmět číslo 1. Ale u peněz, síly, počtu životů a podobně není žádné číslo. Tedy ono tam je, ale jen kvůli tomu, aby to program správně pochopil. Nemá ale žádný význam. POkud chcete napsat například "pokud má hráč alespoň pět zlaťáků", uděláte to takto [PENIZE 1>"4"]. Stejně tak můžete napsat [PENIZE 5>"4"] nebo [PENIZE 348>"4"]. Prostě na tom prvním čísle u těchto vlastností nezáleží. Jak říkám, je to tam jen kvůli kompatibilitě s ostatními podmínkami... Všechny dělají prakticky totéž, akorát že podmiňují podle jiné hodnoty. Pokud dáme [PROMENNA 2....], tak bereme v potaz hodnotu proměnné číslo 2, pokud dáme PREDMET, pak operujeme s počtem předmětů číslo 2, pokud OBJEKT, pak s počtem objektů číslo 2.

Začátek podmínky tedy už snad chápete... Teď prostředek - tam můžete používat normální aritmetické operátory a každý má logicky jiný efekt, který snad není nutné vysvětlovat... tedy =,>,<,<>,>=,<=.. slouží k určení vtahu mezi hodnotami, no prostě [PREDMET 1>"0"] značí Pokud má hráč alespoň jeden (více jak nula) předmětů číslo 1

Jak ještě může vypadat druhá část podmínky? Teď asi nevíte o čem mluvím... My totiž to číslo do uvozovek dát můžeme ale taky NEMUSÍME. Jaký je mezi tím rozdíl?

Porovnejme:
[PREDMET 2="3"]
[PREDMET 2=3]

Ptáte se, jaký je mezi tím rozdíl? V případě prvním porovnáváme počet kusů předmětu číslo 2 s normálním číslem 3. Podmínka je tedy platná v případě, že má hráč právě 3 předměty daného čísla. V případě druhém porovnáváme počet kusů předmětu číslo 2 s hodnotou proměnné číslo 3. Už chápete? Když to číslo v uvozovkách je, bereme jej jako normální číslo. Pokud číslo v uvozovkách není, dosadíme místo něj hodnotu proměnné daného čísla. Uff, zní to krkolomně, že?

Ukážeme si pár příkladů...
<1> 

[PROMENNA 2=2] 
= tahle podmínka bude vždy platit, protože znamená "pokud se hodnota proměnné číslo 2 rovná hodnotě proměnné číslo 2"
................zde mohou být nějaké tagy.............
[/]
Něco trochu složitějšího:
<1> 

<promenna 1="10">= dáme proměnné 1 hodnotu 10

[PROMENNA 1="5"] 
= tahle podmínka nebude platit, protože hodnota proměnné 1 není 5, ale 10
...tady mohou být tagy, ale neprovedou se, protože podmínka není platná
[/]

[PROMENNA 1>="5"] 
= tahle podmínka platit BUDE, protože hodnota proměnné 1 je 10 a tím pádem je větší nebo rovna pěti
...tady mohou být tagy, které se v tomto případě provedou
[/]

TIP: Uvědomte si, že je možné používat víc podmínek najednou a uvnitř podmínek víc tagů! Není to omezeno, že by jeden tag mohl mít jednu svou podmínku! Podmínka platí, dokud není ukončena. Pokud uděláte podmínek pět a dovnitř jeden tag, pak je ten tag podmíněn pěti různými podmínkami...

ZBRANI-ZBROJI-ZBRANIALL-ZBROJIALL: Tyto podmínky slouží ke zjištění počtu zbraní/zbrojí daného typu. Podmínka s ALL (ZBRANIALL,ZBROJIALL) se liší od podmínky bez ALL (ZBRANI, ZBROJI) tím, že do výsledného počtu zbraní/zbrojí započítává i tu, kterou má hráč na sobě, pokud je daného typu. Vysvětlím na příkladu:
[ZBRANI 2>"0"] Pokud má hráč alespoň jednu zbraň číslo 2. Zbraň, kterou má v ruce, se nezapočítá
[ZBRANIALL 2>"0"] Pokud má hráč alespoň jednu zbraň číslo 2. Počítá se i zbraň, kterou má v ruce (pokud je daného typu)
[ZBROJIALL 3="0"] Pokud nemá hráč žádnou zbroj číslo 3. Počítá se i zbroj, kterou má na sobě (pokud je daného typu)


Tak a teď už umíte vše! Nepředpokládám, že byste vše úplně chápali, proto následuje sekce plná praktických příkladů a pak tu samozřejmě máme přiloženou ukázkovou hru.

Knihovny - vkládání skriptů

Toto je kapitola spíše pro pokročilejší z vás, nováčky nechť ji raději přeskočí. Knihovnami jsem nazval jakési podskripty, pluginy či chcete li procedury, které je možno vložit do jiných výkonných skriptů a zjednodušit si tak práci při opakovaném používání stejných příkazů. Pokud jste již četli informace o konstantách, není třeba dlouhých popisů. Knihovny jsou v podstatě obdobou konstant s pouhými několika odlišnostmi. Za volací klíč konstanty je možno zvolit cokoli, za nahrazující řetězec pak jakýkoli řetězec končící odřádkováním. Konstanty jsou nahrazeny všechny, program jednoduše vyhledá veškeré vyskyty požadovaného podřetězce a nahradí je.

U knihoven je situace jiná. Každá je zvláštním souborem, umístěným v podsložce /data/knihovny , vždy s příponou .gbs. Jméno před příponou (např. u souboru hlavicka.gbs je jméno knihovny hlavicka) je zároveň používané při jejím vkládání. Vložení knihovny provedeme pomocí příkazu #knihovna_jmeno; , kde za jmeno dosadíme jméno dané knihovny (tedy jméno souboru bez přípony .gbs). Při volání knihovny v souboru hlavicka.gbs bychom použili příkaz #knihovna_hlavicka; . Co se stane? Je to velice jednoduché - tyto výskyty jsou programem nahrazeny za obsah samotných souborů. Jedná se tedy o přímou alternativu ke konstantám s tím rozdílem, že v knihovnách nemusí být obsaženo pouze pár znaků/slov/příkazů na jednom řádku - v knihovnách můžete mít umístěné celé lokace, celé úseky hlavního souboru, klidně desítky lokací a stovky řádků textu.

Praktické použití? Jistě vás něco napadne, různé "soubory příkazů", které opakovaně v podobné formě používáte na různých místech hry. Nemusíte tedy nic kopírovat a pak několikanásobně upravovat, stačí si daný kus umístit do knihovny. Další VELICE praktickou je možnost jakési "dělby práce" - s kamarádem se domluvíte, že vy budete dělat hlavní skript data.gbs a on k tomu udělá knihovnu. Vymezíte si rozsah lokací, který každý může používat, a každý si vlastně píšete tak nějak nezávisle na sobě, přičemž do hlavního skriptu jen vložíte onu knihovnu.

Velice užitečné jsou funkce prefix a postfix (viz seznam příkazů), kterými je možno stanovit knihovny, jenž budou vkládány na konec a začátek KAŽDÉ lokace. Lze tak automatizovat různé výpisy textů či proměnných, které máte ve všech (či takřka všech) lokacích.

Důležité je uvědomit si, jak jednoduše knihovny pracují. Kdekoli v souboru data.gbs použijete #knihovna_jmeno; , vloží se na to namísto tohoto textového řetězce celý obsah daného souboru. Pak se teprve začne provádět samotné načítání běžných příkazů a dalších prvků.

soubor hlavicka.gbs ve složce knihovny

<text obsah="*********************">
<text obsah="Karel Novák: Dračí sluj">
<text obsah="*********************">

tuto knihovnu vložíme do souboru data.gbs
<1>

<text obsah="Vítejte!">

#knihovna_hlavicka;


efekt bude stejný, jako při
<1>

<text obsah="Vítejte!">

<text obsah="*********************">
<text obsah="Karel Novák: Dračí sluj">
<text obsah="*********************">


a tak dále...

Odkazy pro pokročilé - preprefix, presmeruj, proměnné

U každého tagu s parametrem odkaz, tedy u tagů menu, zpet, text a obrazekvtextu můžeme použít dobrovolné přídavné parametry k odkazu. Při kliknutí na odkaz se přesouváme do cílové lokace, avšak pokud nastavíme některý z přídavných parametrů, před samotným přesunem na daný odkaz (do dané lokace) se něco provede.

preprefix - hodnota tohoto parametru udá, jaká knihovna se vloží na začátek cílové lokace. Funguje stejně jako prefix s tím rozdílem, že je volen vždy pouze při odkazu a platí pouze pro tento odkaz (tzn. ne pro cílovou lokaci obecně, ale jen pokud do ní vlezeme přes odkaz s parametrem preprefix...). V cílové lokaci se vkládá ještě přes prefix, je to tedy to první, co se v cílové lokaci provede, poté normálně následuje prefix, samotná lokace a nakonec suffix.

presmeruj - přesměrování do jiného souboru. Funguje stejně jako tag presmeruj s tím, že platí již pro odkaz, tedy cílová lokace bude již hledána v přesměrovaném souboru.

(číslo) - číslo=hodnota... jedná se o nastavení proměnných při odkazu. Funguje stejně jako normální nastavování proměnných, tedy např. 20="4280" (proměnná 20 se bude rovnat 4280). Při jednom odkazu je možno takto nastavit maximálně 4 proměnné. Nastavení proměnných proběhne ještě před preprefixem

Příklad komplikovaného odkazu:
<menu popis="Do města po pěšině" odkaz="2" preprefix="cesta" 3="17" 6="0" 580="22000" >
při kliknutí se přesuneme do lokace 2, před níž je vložen preprefix knihovna cesta. Proměnné 3,6 a 580 jsou nastaveny na dané hodnoty

Praktické příklady a ukázky

V této sekci si nastíníme několik obyčejných situací, které mohou nastat a pěkně si je popíšeme... Přibližně řazeno podle obtížnosti

Příklad 1. - obyčejné lokace a odkazy

<1>
<text obsah="Přicházíš na malý palouček, ze kterého vybíhají dvě cesty, jedna na sever a druhá na východ. Kterou z nich se dáš?">
<menu popis="Na sever" odkaz="2">
<menu popis="Na jih" odkaz="3">
<2>
<text obsah="Vydal ses na sever....">
<3>
<text obsah="Vydal ses na jih...">
<4>
a tak dále...
komentář - tady snad ani není potřeba. Zkrátka a dobře první lokace nám dá na výběr ze dvou cest (dvou různých následujících lokací). Každá z následujících lokací (sever nebo jih) nám vypíše kratičký text.

Příklad 2. - další vcelku obyčejné lokace, navíc se soubojem

<1>
<text obsah="Dostáváš se na rozcestí, vede odtud cesta dolů k potoku a druhá cesta na úbočí skály">
<menu popis="K potoku" odkaz="2">
<menu popis="Ke skále" odkaz="3">

<2>
<text obsah="Jak se přibližuješ k potoku, vidíš před sebou vlka hrozivě cenícího zuby. Než stačíš cokoli udělat, vrhne se na tebe!">
<menu popis="Bojuj!" odkaz="3"> 
- je dobré nedávat Souboj hned do lokace, kde se o něm hráč dozví, protože než by 
stačil přečíst text, už by tam bylo okno se soubojem a hráč by nevěděl, proč bojuje

<3>
<souboj jmeno="Vlk" utok="1k6+0" poskozeni="3" obrana="6" tvrdost="0" zivoty="26" xp="30">  
- nastane souboj, další příkazy se provedou až po jeho skončení
<text obsah="Výborně! Vlk padl mrtev k zemi a ty pokračuješ dál">
<menu popis="Jít dál" odkaz="5">

<4>
<text obsah="Skála je velice strmá a cesta zde končí. Nezbývá ti proto nic než vydat se nazpátek...">
<zpet>

<5>
a tak dále...
komentář - tohle už je trochu složitější a asi to na první pohled vypadá zmateně. Když si to ale pořádně prohlédnete, zjistíte, že je to naprosto logické :o)
Poznámka: následující příklady již budou konkrétnější a budou se zabývat lokálními problémy, ne celými soubory lokací

Příklad 3. - ukázky zajímavých příkazů

<1>
<text obsah="Zpoza rohu na tebe vyskočil loupěžník!">
<menu popis="Do boje!" odkaz="2"> 
<2>
<souboj jmeno="Loupežník" utok="2k5+1" poskozeni="0" obrana="8" tvrdost="0" zivoty="31" xp="60">
<text obsah="Porazil jsi loupežníka! Když prohledáváš jeho mrtvé tělo, nálézáš u něj objemnou brašnu a v ní 20 zlaťáků, dva kusy chleba a jakýsi starý klíč">
<penize plus="20">
<predmet 1="2"> - budeme předpokládat, že chléb má v souboru předmětů číslo 1
<objekt 1="1" jmeno="Starý klíč" popis="Klíč, který měl u sebe loupežník předtím, než jsi jej zabil">
komentář - hráč si zabojuje s loupežníkem a když vyhraje, najde u něj 20 zlaťáků, dva kusy chleba a starý klíč za souboj jako takový dostane 60 XP...

Příklad 4. - dalších pár zajímavých příkazů

<1>
<text obsah="Vidíš před sebou truhlu, chceš ji otevřít?">
<menu popis="Otevřít" odkaz="2"> 
<menu popis="Jít dál" odkaz="3"> 
<2>
<text obsah="Jak jsi otevřel truhlu, vyletla z ní ostrá šipka a trefila tě do ramene. Ztrácíš 3 životy! V truhle jsi ale našel 5 zlaťáků.">
<zivoty minus="3">
<penize plus="5">
<menu popis="Jít dál" odkaz="3">
<3>
komentář - snad to chápete, ne? :o) Ale co kdybychom chtěli udělaqt něco lepšího - aby byl počet ztracených životů NÁHODNÝ. Jak to uděláme? Sledujte další příklad ;)

Příklad 5. - použití náhody a proměnné

<1>
<text obsah="Vidíš před sebou truhlu, chceš ji otevřít?">
<menu popis="Otevřít" odkaz="2"> 
<menu popis="Jít dál" odkaz="3"> 

<2>
<nahoda 1="1k6"> = proměnná jedna bude mít hodnotu určenou náhodným hodem kostkou 1k6
<text obsah="Jak jsi otevřel truhlu, vyletla z ní ostrá šipka a trefila tě do ramene. Ztrácíš $1 životů! V truhle jsi ale našel 5 zlaťáků.">
= dosadíme hodnotu proměnné 1
<zivoty minus="$1"> 
= opět dosadíme hodnotu proměnné 1
<penize plus="5">
<menu popis="Jít dál" odkaz="3">

<3>

Příklad 6. - použití jednoduché podmínky

<1>
<text obsah="Stojíš před zamčenou železnou branou"> 

[OBJEKT 1>"0"]
<menu popis="Odemknout bránu" odkaz="2"> 
<menu popis="Hodit klíč do kanálu :o)" odkaz="3"> 
[/]

<2>
komentář - primitivní podmínka - pokud má hráč více než 0 (tedy alespoň 1) objekt číslo 1, nabídne se mu možnost odemknout bránu nebo hodit onen klíč do kanálu (blbost já vím :-). Za objekt číslo 1 budeme v tomto případě považovat nějaký klíč... Zde si můžeme všimnout toho, že uvnitř podmínky nemusí být jeden tag, ale libovolný počet (samozřejmě ne úplně libovolný, kdyby jich tam byly řekněme milióny, asi by program spadnul...)

Příklad 7. - použití podmínek s penězi a zkušenostmi

<1>
<text obsah="U vchodu do magické věže stojí stařec a praví: Jsi-li dost zkušený (100 XP) a zaplatíš-li poplatek 5 zlatých, naučíme tě mocné kouzlo!">
<menu popis="Odejít" odkaz="2"> 


[PENIZE 1>="5"] = pokud má hráč 5 nebo více peněz
[ZKUSENOSTI 1>="100"] = pokud má hráč 100 nebo více XP
	
<menu popis="Zaplatit a naučit se kouzlo" odkaz="3"> = toto se provede, pokud platí výše uvedené podmínky

[/][/]= ukončení obou podmínek
<2>
<text obsah="Odcházíš pryč od magické věže...">


<3>
<kouzlo umime="3">
<xp minus="100">
<penize minus="5">
= na tomto odkaze ztratí hráč oněch 100 XP a 5 zlatých a za odměnu se naučí kouzlo číslo 3
komentář -pokud má hráč alespoň 100 XP a 5 peněz, nabídne se mu možnost naučit se nové kouzlo. Všimněte si, že tag menu je podmíněn dvěma podmínkami najednou. Obě podmínky pak musíme uzavřít (resp. nemusíme, ale chceme ;)). Stejným způsobem je možné do sebe vnořovat i více podmínek (maximálně však 10 podmínek najednou, ale to se asi nestane...)

Příklad 8. - trochu nesmyslný a divný příklad, leč demonstruje možné komplikovanosti

<1>
[ZIVOTY 1>"30"]<text obsah="Máme víc než 30 životů!">[/]
[SILA 1>"10"]<text obsah="Máme sílu větší než 10!">[/]
[MAXMANA 1<"5"]<text obsah="Naše maximální úroveň many je menší než 5!">[/]

	
[ZIVOTY 1>"30"][MAXMANA 1<"5"]

<text obsah="Máme víc než 30 životů a zároveň je naše maximální úroveň many menší než 5!">

[/][/]


[ZIVOTY 1>"30"]
[SILA 1>"10"]
[MAXMANA 1<"5"]

<text obsah="Máme víc než 30 životů, sílu větší než 10 a naše maximální úroveň many je menší než 5!">

[/][/][/]
komentář - nehledejte v tom nějaký hlubší význam.. tenhle příklad byl k ukázání podmínek.. nebudu k tomu říkat víc, prostě si to prohlédněte ;)

Příklad 9. - Prodávání zbraní a zbrojí

komentář - hodně lidí mi psalo, ať umožním prodávat nepotřebné zbraně a zbroje. Pomocí funkcí enginu si můžete sami udělat prodávání věcí!!! Stačí zkombinovat podmínku "POKUD MÁ HRÁČ ALESPOŇ JEDNU ZBRAŇ/ZBROJ DANÉHO TYPU" ([ZBRANIALL/ZBROJIALL číslozbroje>"0"]) s příkazem odstranzbran/odstranzbroj!
Pozor: Je lepší používat ZBRANIALL/ZBROJIALL než verzi bez ALL, tedy ZBRANI nebo ZBROJI, protože tyto podmínky kontrolují zbraně/zbroej pouze v hráčově inventáři. Hráč ale může klidně chtít prodat zbraň/zbroj, kterou má na sobě.
<1>
<text obsah="Přišel jsi do zastavárny, kde vykupují staré zbraně a zbroje, takže můžeš odlehčit svému vybavení a nepotřebné šunty prodat">
<zmenotazku otazka="Co prodáš?">
následují jednotlivé podmínky - pokud má hráč v ruce nebo v inventáři danou zbraň/zbroj určeného čísla, nabídne se mu možnost ji prodat
[ZBRANIALL 1>"0"]<menu odkaz="2" popis="Bronzový meč - 3zl">[/]
[ZBRANIALL 2>"0"]<menu odkaz="3" popis="Sekyru - 8zl">[/]
[ZBROJIALL 5>"0"]<menu odkaz="4" popis="Vestu - 15zl">[/]

<2>
<odstranzbran cislo="1">
<penize plus="3"> 
<text obsah="Prodal jsi svůj bronzový meč za 3 zlaté!!">
<zpet>
- hráč dostane za jeden meč 3 zlaté

<3>
<odstranzbran cislo="2">
<penize plus="8">
<text obsah="Prodal jsi svoji sekeru za 8 zlatých!!">
<zpet>
- hráč dostane za jednu sekeru 8 zlatých

<4>
<odstranzbroj cislo="5">
<penize plus="15">
<text obsah="Prodal jsi svoji vestu za 15 zlaté!!">
<zpet>
- hráč dostane za jednu vestu 15 zlatých

Příklad 10. - Vylepšení zbraně

komentář - Jak to udělat, pokud chcete třeba nabrousit meč? Ukážeme si v tomto příkladu (skoro stejně to funguje i u zbrojí, akorát se používají příkazy pro zbroj, ne zbraň) je jedno, jestli má hráč v tu chvíli meč v ruce nebo v inventáři, funguje to v obou případech
<1>
<text obsah="Jsi v kovárně a poblíž stojí brousek. Toho by se možná dalo nějak využít">
<menu odkaz="2" popis="Odejít">
[ZBRANIALL 3>"0"]<menu odkaz="3" popis="Nabrousit meč">[/]
- pokud má hráč alespoň jednu zbraň číslo 3, nabídne se mu možnost ji nabrousit

<2>
<text obsah="odešel jsi z kovárny...">

<3>
<zmenzbran 3="4">
<text obsah="Nabrousil jsi svůj meč!">
<zpet>
- ze zbraně číslo 3 se stane zbraň číslo 4



A teď jak by ty dvě zbraně mohly třeba vypadat v souboru zbrane.gbs
3,"Železný meč","Prachobyčejný železný meč vyrobený kovářem z tvé rodné vesnice, který má už leccos za sebou",1k4+1,0,15
4,"Ostrý železný meč","Obyčejný meč ostrý jak břitva",1k4+2,2,20
- čtyřka má oproti trojce větší sílu (1k4+1 X 1k4+2) a poškození (0 X 2).. 
Úplně stejným způsobem bychom mohli zbraním/zbrojím přidávat i magické efekty (sila+3, rychlost+2...)

Příklad 11. - Prokletí zbroje, kterou má hráč v danou chvíli na sobě

komentář - V podstatě opak vylepšování meče z předchozího příkladu, akorát tentokrát měníme prostě tu zbroj, kterou má na sobě, takže používáme proměnnou
Poznámka: Tohle bohužel moc dobře nefunguje, pokud by měl hráč druhou stejnou zbroj jako má na sobě i v inventáři. Přednostně jsou totiž měněny zbroje daného typu v inventáři, poté teprve na hráči. Ale můžeme to pojsitit tím, že dáme příkaz zmenzbroj několikrát za sebe, abychom se ujistili, že opravdu změníme všechny zbroje daného typu. V našem případě ale budeme předpokládat, že hráč má zbroj tohoto druhu jen jednu (pro zjednodušení)
<1>
<text obsah="Černokněžník na tebe seslal zaklínadlo! Tvá zbroj je prokletá!">
<zmenzbroj $cislozbroje="10">

- ze zbroje čísla, které má hráč na sobě, se stane prokletá zbroj. Nasere zejména pokud zbroj, kterou měl, byla drahá :-)

Prokletá zbraň by mohla vypadat třeba takto (zbroje.gbs)
10,"Prokletá zbroj","Vlivem černokněžníkovy kletby je tato původně pěkná zbroj na vyhození...",0,0,1,0,rychlost-5

Příklad 12. - Souboj o ceny

komentář - u normálního souboje hráč při prohře (pod 0 životů) ihned umírá. Pokud však chceme, aby souboj nebyl na život a na smrt, máme možnost!
<1>
<text obsah="Do boje!">
<souboj jmeno="Mistr šermíř" utok="2k5+0" poskozeni="0" obrana="8" tvrdost="0" zivoty="40" xp="100" neumirej="1">
- po souboji máme v proměnné $vysledeksouboje automaticky uložen jeho výsledek. Podle toho zformujeme následující podmínky
(kromě textu tam také může být, že při výhře hráč získá určitou finanční částku apod.)

<promenna 20="$vysledeksouboje">
[PROMENNA 20="0"]<text obsah="Prohráls">[/]
[PROMENNA 20="1"]<text obsah="Remíza!">[/]
[PROMENNA 20="2"]<text obsah="Vyhráls!">[/]


Audio - hudba a ozvučení

Tato kapitola je určena určena těm, kteří chtějí ve své hře použít hudbu nebo zvuky. Jak na to? Je to celkem jednoduché - audio zprostředkovává knihovna FMOD prostřednictvím souboru fmod.dll v hlavním adresáři hry. Pokud je tento soubor přítomen, objeví se v menu ještě položka Audio, pomocí níž může hráč nastavovat hlasitost a vypínat hudbu / zvuky. To se vás zatím až tak moc netýká. Jak tedy dáte do vaší hry hudbu? Slouží k tomu poměrně jednoduché příkazy (resp. příkaz), vše ostatní obstará program za vás! POZOR - veškeré zvuky a hudbu musí být umístěné ve složce Audio

Zvuk
Zvukem se rozumí krátký a datově malý soubor, který se okamžitě přehraje. Můžete si pod tím představit například zaskřípění dveří při vstupu do místnosti. Nevím, jak dalece jsou právě zvuky použitelné, nicméně FGBE je podporuje.
Zvuk přehrajete pomocí příkazu <audiosound soubor="jmenosouboru.přípona">

Příklad: <audiosound soubor="vystrel.wav">- přehraje soubor se zvukem výstřelu ve složce Audio


Hudba

S hudbou je to trochu složitější, protože existují dva základní typy - streamová a tracková. Nemusíte vědět, co to znamená, nebojte :) Pro každý z těchto typů musíte použít speciální funkci (jednoduše - pokud to nebude fungovat, tak zkusíte tu druhou alternativu a je to...). Hudba se automaticky po skončení opakuje, stále dokola. Pokud dáte přehrávání hudby do nějaké lokace, spustí se přehrávání. Pokud už nějaká hudba hraje, nahradí nová hudba tu starou.

Streamová - <audiostream soubor="jmenosouboru.přípona">

Sem patří komprimované formáty. To jsou nejspíš ty, které používáte nejčastěji, protože sem patří například oblíbené MP3. Celkem to jsou formáty: .WAV, .MP2, .MP3, .OGG a .RAW

Příklad: <audiostream soubor="hudba.mp3">- spustí hudbu ze souboru hudba.mp3 ve složce Audio



Tracková - <audiotrack soubor="jmenosouboru.přípona">

Sem patří sekvencovaná muzika, například formáty různých programů pro tvorbu elektronické hudby a také poměrně populární MID Celkem to jsou formáty: .MOD, .S3M, .XM, .IT a .MID

Příklad: <audiotrack soubor="hudba2.xm">- spustí hudbu ze souboru hudba2.xm ze složky Audio



Ovládání a další interakce
Pokud se nespokojíte pouze s tím, že nastavíte, která hudba se má přehrávat, ale chcete ještě další kontrolu, pak můžete ještě hudbu zastavit, zapauzovat a odpauzovat.

Zastavení - - <audiostop> - úplně vypne přehrávání aktuální hudby
Pauza - - <audiopause> - pozastaví hudbu, je možné ji později odpauzovat (např. v další lokaci)
Pokračování - - <audiocontinue> - pozastavená hudba začně znovu hrát

Nepředpokládám, že byste posledním třem výše uvedeným funkcím přišli na chuť, takže se jimi moc nezaobírejte. Pokud byste je ale přeci jenom na něco potřebovali, tak se vám mohou hodit. Osobně však doporučuji pouze nastavit, která hudba se bude přehrávat a pak se tím již dál nezaobírat.

Pokud byste někdo měl zájem a chtěl udělat ozvučení různých herních akcí (například nějaké řinčení zbraní při souboji, krátká melodie při smrti, nějaké ťuknutí při zvýšení vlastností apod.), dejte mi prosím vědět ;)

Dokončování projektu

Zde si trochu shrneme, jak tedy budeme postupovat a hlavně si povíme něco o programu Nastaveni. Ten slouží k tomu, aby jste si vytvořili soubor inicializace.gbs (který umístíte do složky data) a v tom je uložené vše ostatní, co není v jiných souborech, tedy například počáteční stav postavy, vaše jméno a jméno hry a v neposlední řadě také heslo. K čemu heslo? Heslo je určené k takovémui jednoduchému zašifrování souborů (není to žádná složitá šifra, ale soubory to znečitelní při běžném prohlížení). Ono totiž kdybyste hráči dali soubory nezašifrované, mohl by si v nich cokoli měnit (přidávat peníze, udělat se nesmrtelným apod.). Jakmile tedy si ymslíte, že hra je v podstatě hotová, spusťe program Nastavení (měl by být ve složce data) a klikněte na Zašifrovat soubory. To přesune všechny datové soubory hry do nově vytvořené složky zasifrovane (uvnitř složky data), ze které pak bude program přednostně číst data. Nemá smysl tohle dělat během tvorby, vám zašifrované soubopry moc nepomůžou (nemůžete je pak editovat). Navíc jakmile je složka zasifrovane přítomna, program vyhodnocuje data přímo z ní a normálních nezašifrovaných souborů si nevšímá. Soubor inicializace.gbs musí být ve složce data vždy přítomen!

Jakmile si myslíte, že je hra hotová a data zašifrována, vytvořte si její záložní kopii. Pak smažte nezašifrované soubory a ponechte ve složce data pouze složku zasifrovane (+ její obsah) a soubor inicializace.gbs. Dále smažte složku save (v hlavní složce hry). Pokud máte ke hře nějaké obrázky, dávejte je do složky obrazky v hlavní složce hry. Pokud přídavné obrázky do hry dávat nechcete, nemusí být tato složka přítomna.

Nakonec by bylo vhodné k distribuci mezi hráče hru nějak zkomprimovat (aby zabírala méně místa a navíc byla v jednom uceleném archivu). K tomu doporučuji celou složku hry zabalit nějakým archivovacím programem (nepříklad WinRar nebo WinZip).

Pokud chcete vidět, jak by mohl takový distribuční balíček (tedy finální verze hry určená pro hráče například ke stažení z internetu), zkuste si třeba moji minihru Aréna, k dispozici na mých stránkách (www.crypta.mysteria.cz).

Malé shrnutí, co by mělo být ve finální verzi: Spouštěcí soubor (můžete si jej libovolně přejmenovat), složka grafika s původní grafikou, složka data a v ní soubor inicializace.gbs (nadefinovaný pomocí programu Nastaveni) a složka zasifrovane se zašifrovanými datovými soubory. Pokud máte ve hře vlastní obrázky, budete v hlavní složce mít ještě složku obrazky a vní použité obrázky ;)

Fungování Nastaveni.exe - pokud není ve složce s tímto programem soubor inicializace.gbs, program si jej po spuštění a uložení nastavení vytvoří. Jakmile tam takový soubor je, program Nastaveni bude vyžadovat heslo k jeho otevření. Pokud heslo nebylo zadáno, stačí kliknout na potvrdit, pokud zadáno bylo, je nutné zadat heslo a pak dát potvrdit.

Ještě malý dodatek - spouštěcí exe soubor je stejný pro všechny hry v FGBE. Můžete si ho ve své hře libovolně přejmenovat, ale stále to je ten samý soubor. Jednotlivé gamebooky v FGBE se liší pouze datovými soubory, ve kterých je obsaženo vše potřebné... S jedním spouštěcím souborem můžete spustit libovolnou hru v FGBE, stačí překopírovat složku data (no snad víte jak to myslím...)

FAQ - Často kladené dotazy

Zde je výběr některých frekventovaných nebo důležitých dotazů posbíraných u mě na fóru nebo z mailů. Jsou v zájmu přehlednosti a srozumitelnosti mírně poupraveny.

Otázka: Hra mi neustále padá, mám asi někde překlep nebo tak něco. Co dělat?
Odpověď: Zkuste si hru ověřit v programu Pomocník FGBE. Vše potřebné naleznete ve složce bonus/Pomocnik - přečtěte si nápovědu k tomuto programu a postupujte podle tam uvedených rad.

Otázka: Jsou jednotlivé verze FGBE mezi sebou navzájem kompatibilní? Co potřebuji udělat k přechodu na novější verzi?
Odpověď: Jednotlivé verze jsou zpětně kompatibilní, tzn. pokud máte kupříkladu skripty verze 1.20, tak vám bez problémů pojedou ve verzích novějších. Výjimka může nastat (pokud se udělá např. velmi přelomová verze), ale na to budete upozorněni při instalaci. K přechodu na novější verzi FGBE zpravidla stačí stáhnout novou verzi stačí nahradit u nově staženého FGBE datové soubory hry (tzn. necháte vše tak jak to bude po instalaci, jen smažete datové soubory .gbs a nahradíte jej těmi vašimi z původní staré verze). Uložené pozice ve hře (save pozice) většinou kompatibilní nejsou, proto v každé verzi raději používejte savy v dané verzi vytvořené.

Otázka: Když nahraji uloženou pozici, dost často mám nejrůznější problémy s předměty/zbraněmi atd., jejich získáváním i obchody. Neukazují se mi v inventáři nebo u nich mám divné údaje. Pokud hru začnu od začátku, žádné problémy nemám. Co je špatně?
Odpověď: Tento problém nastává, pokud není kompatibilní verze uložené pozice a hry. Jinými slovy - pokud jste save pořídili v FGBe verzi 1.10 a teď používáte třeba verzi 1.30, může nastat problém. To samé platí, pokud se mezitím změnily datové soubory kouzel, předmětů atd. Při načtení pozici pracuje hra se starými daty předmětů apod., ale s novými daty souboru skriptů (tedy data.gbs). Dopadne to tak, že data.gbs poukazuje například na zbroj číslo 10, ale ta ještě v době pořízení savepozice neexistovala. Proto - na savy při tvorbě moc nespoléhejte, pokud jsou starší než předměty atd., bude se program chovat divně. Ve finální verzi vaší hry takovéto problémy nenastanou (hráči si sami soubory měnit nebudou).

Otázka: Ked pridam vlastny subor, tak mi vzdy pri spustani hry vypise nejaku chybu v subore HRA.EXE!! Neviete mi s tym nejak poradit? Skusal som uz vsetko co som vedel!!
Odpověď: Podle tvého popisu nepoznám, v čem je chyba. Jinak vlastní soubor - nechápu, jak to myslíš. Žádné vlastní soubory tam nepřidávej, nech tam ty, které jsou "dodávány" s enginem, tedy taková ta ukázková hra. A tu si přetvoř dle svých představ, nemá smysl začínat "na zelené louce". Prostě nech Hra.exe i složku data tak jak je a jen upravuj soubory v ní (data.gbs, predmety.gbs....). Další věc - dělej odkazy popořadě (1,2...), není možné je přehazovat! (1,3,2,5 - nefunguje). A pozor na uvozovky! Kdyžtak mi pošli ty zdrojové soubory na mail (třeba zazipované) a já ti řeknu, kde je chyba...

Otázka: Můj dotaz se týká technických možností FGBE. Rozhodl jsem se totiž vytvořit něco jako čtverečkové RPG s maximální volností pohybu po krajině ( dungeonech) a tím pádem se mi počet jednotlivých lokací zvyšuje na několik tisíc (řekněme 4-5000). Zvládne pak FGBE načíst tak velký soubor a pracovat s tolika tagy? Nejsou v tomto směru nějaká technická omezení?
Odpověď: Pokud máš na mysli přímo omezení počtu tagů, tak by žádné být nemělo (resp. teoreticky je to kolem dvou miliard). Ani počet lokací a velikost souboru není nijak omezena, alespoň v rámci rozumné velikosti. Pokud by to náhodou padalo, pak by to bylo díky nějakému bugu, kterých bych se v tom případě pokusil odstranit. Omezení jsou hlavně u "inventářových věcí" - počet předmětů, objektů ("nepoužitelné předměty"), kouzel, zbraní a zbrojí. Ty jsou omezeny velikostí okna - prostě se tam musí vejít. Ale kapacita je někde kolem 20, takže by to neměl být problém (k čemu by bylo nad dvacet zbrojí nebo třeba zbraní)...

Otázka: Chcel by som sa len spýtať, že keď mám text, napr.: Si v miestnosti a vidíš nôž. A potom možnosť: zobrať nôž. Povedzme že si ten nôž zoberiem a získam tak objekt nôž. A potom pôjdem z danej miestnosti preč a po návrate do nej by som chcel aby tam zostalo len: Si v miestnosti.
Odpověď: Takže tohle bude trošičku složitější, napíšu ti tu zdroják, jak bych to udělal já, snad to z toho pochopíš (je to samozřejmě stylizované, čísla místostí apod. si změníš):
<1>

[OBJEKT 1="0"]
<text obsah="Jsi v místnosti a vidíš nůž">
<menu popis="Sebrat nůž" odkaz="2">
[/]

[OBJEKT 1<>"0"]
<text obsah="Jsi v místnosti">
[/]

<2>
<text obsah="Sebral jsi nůž">
<objekt 1="1" jmeno ="Nůž" popis="Zkrátka nůž" >

<menu obsah="Jít dál" odkaz="3">
<menu obsah="Vrátit se" odkaz="1">
Teď trochu vysvětlím: V prvním odkazu hráč ještě nemá objekt 1 (předpokládáme, že náš nůž je právě objekt číslo 1). Proto se mu nabídne sebrat nůž. Pak by tam mohly být ještě jiné odkazy apod., takhle je to hodně zjednodušené. Když sebere nůž, dostane se na odkaz číslo 2, tam se mu vypíše text, menu a získá objekt číslo 1, tedy náš nůž (získá 1 kus objektu číslo 1). Pak se může ještě vrátit na odkaz 1, kde se mu už nabídka "Seber nůž" nezobrazí, protože podmínka "Pokud máš 0 objektů číslo 1" není splněna (hráč má totiž právě 1 objekt číslo 1).

Otázka: Proč mi hra, kterou tvořím na některých místech píše ACCES VIOLATION AT ADDRESS 0045E5D4 IN MODULE 'HRA.EXE' READ OF ADDRESS 00CD39C1. V souboru DATA jsem všechno kontroloval plíís pomoc.
Řešení: (nakonec to vyřešil sám autor dotazu) Tak už jsem tu chybu asi našel.Bylo to v tom, že jsem psal odkazy v DATA souboru v pořadí 1,3,2,4,6,5,8,7,9...(na tohle pozor! tagy nesmí být na přeskáčku)

Otázka: Je možné ve FGBE do textu (kódu) vkládat nějaké popisky, které program neregistruje, které jsou jen pro tvůrce?
Odpověď: Pokud se nepletu, tak by mělo fungovat, když si napíšeš normální popisky mimo tagy. Prostě jakýkoli text mimo tagy a podmínky by to mělo ignorovat (nesmí tam ovšem být znaky [],<>). Zkus to, já myslím, že to jde ;)

Otázka: Neviem urobit koniec hry, tak že ju samo vypne. Vždy to urobim podľa predlohy a nefunguje to. Ako to ma byť. Ja davam priklad:
<3>
<text obsah="To je tvoj koniec">
<menu popis="Koniec" odkaz="1000">
<4> - tohle tu musí být (lokace 4)
<1000>
<konec>
Odpověď: Problém je v tom, že za lokací 3 hned následuje lokace 1000. Pravidlo zní - za každou navštívitelnou lokací musí být lokace s číslem o jedna větší. Dej tedy ještě před tu tisícovku lokaci <4> (klidně prázdnou) a mělo by to být v pohodě. (v příkladu je červeně zobrazené to, co tam chybělo)

Otázka: Ve své hře mám jen dva útoky, ale v Aréně je jich víc. Jak můžu používat další útoky?
Odpověď: Postava umí do začátku dle výchozího nastavení pouze dva útoky (Vyčkávat a Útok). Ke zprovoznění dalších útoků je nutné použít tag utok pro každý speciální pohyb, který má postava umět (je jich celkem pět). Jeho znění je blíže popsáno v tabulce tagů v dokumentaci. Útoky je možné také postavu "odnaučit", ale po pravdě řečeno doporučuji zachovat alespoň Vyčkávat, jinak by mohlo dojít k problémům.

Otázka: Při čtení manuálu jsem si všiml, že se hodně používají znaky jako <>[] apod. V Game Makeru to latvím tak, že si na nějaký řádek dám tento text //'|#&{}[]<>; který je za dvěma lomítky // takže jej program neregistruje. Z něj potom kopíruju anglické znaky, které právě potřebuju. Ale co má dělat chudák neprogramátor ve FGBE, který nemá našprtané znaky z kombinace Alt + Numpad?
Odpověď: Je pravda, že tohle jsem nikde výrazněji nezmínil, hodlám to napravit ;).

Jak napíšu speciální znaky? Jak bylo řečeno výše, je dobré si znaky někam předepsat a pak je kopírovat. Kopírování docílíte tak, že text/písmeno/znak označíte myší a zmáčknete CRTL+C. Na místě, kam jej chcete nakopírovat, kliknete myší a pak stisknete CTRL+V. A jak jednotlivé znaky napíšete? Buď můžete využít ty, které jsou předepsány tady v dokumentaci, nebo můžete pomocí tzv. ASCII hodnoty. Každý znak má svoji číselnou hodnotu. Pokud ji zadáte tak, že zmáčknete levý ALT a vyťukáte na numerické klávesnici hodnotu znaku, znak se napíše.

Zde je přehled hodnot používaných znaků v FGBE: (držet levý alt + vyťukat číslo)

$ - 36
< - 60
> - 62
[ - 91
\ - 92
] - 93


Nebo také pravý Alt + znak (podmínkou je zaplá čeština)
$ - ů
< - ,
> - .
[ - f
\ - q
] - g

Limity na počty předmětů apod.

Omezení počtů předmětů a podobných věcí jsou dle mého názoru docela štědrá a neměla by nikomu činit problémy, aby se do nich vešel. Konkrétně se jedná o:
100 u : zbraní, zbrojí, kouzel, předmětů a objektů (není myšleno dohromady, ale zvlášť, tedy můžete mít klidně 70 zbraní, 90 kouzel, 85 objektů apod.)
999 u proměnných (maximální číslo proměnné je 999)
400 tagů/příkazů v jedné lokaci
15 úrovní vnořených podmínek (vnořená ve vnořené ve vnořené ve ....)

Nicméně tohle jsou omezení technická, tedy kolik jich můžete mít nadefinováno. Nedoporučuji ale, aby měl hráč v jednom momentě víc jak 20 kouzel, 20 zbraní a zbrojí, 20 předmětů a 20 objektů, protože by se to prostě nevešlo do inventáře (přečuhovalo by to přes okraje). Na to ale určitě přijdete sami... Pokud už nějaký objekt nepotřebujete, normálně jej odstraňte. Pokud má hráč moc druhů zbraní/zbrojí, dejte mu možnost je prodat nebo se jich zbavit nějak jinak.

Pokud by měl přesto někdo z vás s dodržováním limitů a omezení problém, klidně mi napište a já vám pošlu verzi se zvýšeným limitem nebo se dohodneme na jiném řešení.

Závěrečné slovo autora

Po pravdě řečeno nevím, jestli se vůbec někdo dostane až sem. A ani nevím, jestli někdo nějakou hru v FGBE vytvoří, protože prostě nedovedu odhadnout, jestli se to bude lidem líbit nebo ne a hlavně - jestli jim to nepřipadne moc složité...Pakliže budete něco v FGBE vytvářet, měl bych pro vás jednu prosbu - až bude vaše hra hotová, pošlete mi ji (nebo odkaz k jejímu stažení). Stejně tak během vývoje se mě na cokoli ohledně FGBE můžete zeptat, rád vám poradím. Pokud objevíte nějakou chybu v programu, informujte mě prosím o ní, abych ji mohl opravit. Díky

Chcete poradit, jak udělat dobrou hru? Tak na to vám asi neodpovím... Základní podmínkou je, aby bavila vás samotné ;). Zkoušejte cizí výtvory, inspirujte se při fantasy knížkách a filmech, hrajte stolní RPG :o). Jak by řekl Lenin: učit se, učit se, učit se... :-)

Váš výtvor samozřejmě vůbec nemusí být RPG... RPG prvky můžete klidně omezit na minimum (např. když hráči nedáte ŽÁDNÉ zkušenosti) a udělat v FGBE takovou textovou adventurku ;) Experimentujte dle libosti. Ani nemusíte používat moji "evropskou" stupnici životů/many/síly atp. Klidně můžete používat rovinu čísel z Final Fantasy a japonských her (desetitisíce životů, útok v řádu několika set a podobně)... Nikde není řečeno, že vaše dílo musí obsahovat vše, co FGBE umí. Můžete vynechat souboje nebo RPG prvky, nemusíte vůbec používat podmínky.... Jediným "omezením" je nutnost fantasy zařazení. Tedy ne, že bych vás k tomu nutil, ale jak jste si asi všimli, všude je spousta fantasy grafiky a sherlock holmes by asi kouzla nesesílal... i když .... :D

Hlavně ať bude vaše hra jakákoli, pochlubte se s ní ostatním a nenechávejte si ji pro sebe ;). A pošlete mi jí, rád ji vyzkouším :-).

Na závěr bych rád poděkoval Jardarovi za vydatnou spolupráci, tvorbu pomocných nástrojů a tutoriálů k FGBE a testing nových verzí. Díky!
Program je zčásti postaven a inspirován zdrojovými kódy na internetu, využívá knihovnu TGif od Anders Melande, knihovnu FMOD pro přehrávání hudby a některé další drobné volně distribuované knihovny

Jakékoli dotazy, připomínky, ohlašování chyb či vaše názory můžete psát na fórum FGBE

www.gamebooky.syslik.net