Teď si povíme o něčem, co sice není přímo výsadou Urwiga, ale Urwigo si s tím musí nějak poradit. Myslím, že už nikoho nepřekvapí skutečnost, že hlavním programovacím jazykem pro wherigo je jazyk Lua. Lze tedy celou hru napsat přímo v jazyce Lua. To v sobě skrývá spoustu úskalí, a proto je tu Urwigo, které námi sestavené diagramy samo převede do příslušných příkazů jazyka Lua.
Na druhou stranu jsou určité postupy, pro které Urwigo nemá ekvivalentní akci a které je nutné napsat přímo v jazyce Lua. Aby to bylo možné, nabízí nám Urwigo tyto prvky:
Pokud potřebujeme na určité místo diagramu vložit kratší kód v jazyce Lua, s výhodou využijeme akci Uživatelský kód Lua. Umístíme ji na požadované místo a dovnitř (pomocí pravého panelu vlastností) napíšeme příslušný Lua kód. Ve výsledku se pak to, co do akce zapíšeme, jednoduše provede. Veškerou zodpovědnost za správnost vloženého kódu neseme sami. Pokud něco napíšeme špatně, může se stát, že nám hra spadne kvůli výskytu běhové chyby.
Tento výraz je velmi podobný, jako předchozí akce. Rozdíl je v tom, že může obsahovat pouze jeden výraz, jehož výsledkem je nějaká hodnota. Nemůže stát samostatně, ale musí být součástí nějakého většího výrazu, buď na pravé straně akce Nastav, v akci Když/jinak a na podobných místech. Opět je veškerá zodpovědnost za správnost výrazu na autorovi, a to včetně správného datového typu výsledné hodnoty.
Předchozí diagramová akce a diagramový výraz jsou určeny pro operativní vložení krátkých kódů v jazyce Lua. Pokud chceme nebo potřebujeme vložit delší a složitější kód, je lepší použít speciální objekt, který si zobrazíme pomocí příkazu z menu Zobrazit > Uživatelské funkce Lua. Zobrazí se nám okno s textovým editorem, kam můžeme napsat požadovaný kód. Většinou sem umístíme jednotlivé funkce v jazyce Lua, které pak na příslušných místech zavoláme (např. pomocí diagramové akce Uživatelský kód Lua).
Pokud se chceme odkudkoliv z kódu Lua odkázat na nějaký objekt definovaný pomocí Urwiga, např. na zónu, předmět, postavu apod., musíme znát jeho identifikátor.
Každý objekt má v panelu vlastností políčko nazvané Identifikátor. My jsme ho zatím ignorovali a nechali ho svému osudu. To znamená, že v políčku zůstalo uvedeno „Automaticky“ a identifikátor objektu přiřadilo samo Urwigo. My jako autoři se jej nijak nedozvíme, dokonce může být pro každé sestavení cartridge jiný. To vůbec nevadí v případě, že žádný Lua kód nepoužíváme, ale pokud ano, není to moc praktické. Pokud tedy potřebujeme tento objekt odkazovat v Lua kódu, musíme identifikátor vyplnit sami.
Zatímco na název objektu nejsou kladeny žádné zvláštní podmínky, pro identifikátor platí poměrně striktní pravidla:
• Identifikátor musí být jednoznačný v celé cartridgi. To znamená, že žádné dva objekty nemohou mít stejný identifikátor.
• Pro identifikátor lze použít pouze písmena anglické abecedy, číslice a znak podtržítko, přičemž musí vždy začínat písmenem. Správné identikátory jsou např. Chaloupka, zonaChaloupka, obj1234, postava_Dedecek apod. Naopak neplatné jsou identifikátory např. Dědeček (obsahuje diakritiku), 1zona (začíná číslicí), obj Dedecek (obsahuje mezeru) apod.
• Jazyk Lua rozlišuje v identifikátorech velikost písmen. Proto identifikátory Dedecek a dedecek jsou různé.
I když jazyk Lua není nějak zvlášť složitý, přesto je to programovací jazyk a jeho použití vyžaduje určité programátorské dovednosti. Není mým cílem učit autory wheriga jazyku Lua. Tím spíš, že pomocí Urwiga lze i bez něj vytvořit poměrně zdařilé hry. Kdo by se chtěl o tomto jazyku dozvědět něco víc, můžu ho odkázat na seriál serveru Root.cz - http://www.root.cz/clanky/programovaci-jazyk-lua/. Jedná se ovšem o komplexní kurz, žádné speciální zaměření na wherigo nečekejte.