Základné nastavenie by bolo a je načase stvoriť vesmír.
Herný svet je tvorený lokáciami (#roomId) ktoré majú celkom veľké možnosti nastavovania. Z každej miestnosti/lokácie je možné oddísť jedným z ôsmich štandardných smerov, alebo úplne novým spôsobom čo ale vyžaduje komplexnejšie skriptovanie.
Hneď prvá miestnosť(taxík) má zadefinovanú zvláštnu akciu #leave, ktorá sa vykoná pri odchode hocijakým smerom. Tú je nutné vypnúť po zaplatení.
{ #roomid=room_taxik; #name=Taxík; #description=Sedíš na zadním sedadle u chodníku stojícího taxíku. Za volantem sedí taxikář.; #leave={ #printLn <c>SandyBrown</c>"Tak ty chceš utéct bez placení, grázle?!"<c>pastelred</c>, zařval taxikář, popadl francouzák a praštil tě s ním po hlavě. V nemocnici teď budeš mít pár týdnů jiné myšlenky, než ničit cizí počítače. Příště si dej větší pozor!; #run restart_action; }; #west=room_ulice_z_taxika; #east=room_placek; }
Podobne sa dá nastaviť akcia aj pri príchode do miestnosti.
#enter={ #printLn <c>pastelred</c>Otevřel jsi dveře taxíku a vstoupil jsi přímo do cesty projíždějícímu automobilu. Obávám se, že se ti dokončit hru už asi nepodaří, neboť je z tebe placka.; #run restart_action; };
Prípadne sa dá spustiť akcia ešte pred vstúpením do miestnosti a na základe výsledku rozhodnúť či dôjde k pohybu, alebo postava ostane stáť na mieste. Zároveň je predefinovaný systémový text $text_enterverifyfail, ktorý by sa v prípade neúspechu vypisoval.
{ #roomid=room_placek_2; $text_enterverifyfail=; #enterVerify={ #if #object[obj_opilec].$ozraty==#false; #printLn <c>badaction</c>Opilec tě nechce pustit!; #return #false; #endif; #return #true; }; }
Možnosť pridať špecifický text k popisu miestnosti je použitá v klube. Ide o skript #actionPrint v ktorom sa naplnia premenné $rom_reg_textbuffer….
{ #roomid=room_predsin; #name=Předsíň klubu; #actionPrint={ #if #object[obj_vedouci].$triezvy==#true; #var $masMasku; #IsInYou obj_maska,$masMasku; #if $masMasku==#true; #if #object[obj_maska].#wearing==#true; $$rom_reg_textbuffer2=Postává tu vedoucí AK Vala. Sotva tě spatřil, začal hulákat: <c>SandyBrown</c>"Nazdar Klubale! Zaplať příspěvky na další rok!"; #endif; #endif; #endif; }; #enter={ #if #object[obj_vedouci].$triezvy==#true; #var $masMasku; #IsInYou obj_maska,$masMasku; #if ($masMasku==#false) || (#object[obj_maska].#wearing==#false); #printLn <c>roomname</c>Předsíň klubu.; #printLn Předsíň klubu. Postává tu vedoucí AK Vala. <c>pastelred</c>Sotva tě spatřil, začal hulákat: <c>SandyBrown</c>"Ty lumpe, ty výtržníku, ty máš ještě tu drzost sem přijít? Pojďte sem, chlapi, vyhodíme toho drzého rváče!"<c>pastelred</c> Na to přiběhli z vedlejší místnosti další členové klubu, popadli tě a vyhodili na ulici. Přitom ti rozbili likvidátor, takže tvůj plán je zmařen. Příště buď opatrnější!; #run restart_action; #endif; #endif; }; }
Posledná zaujímavá miestnosť je autobus, kde pri vstupe nastáva úspešný koniec hry. Týmto máme priestor a poďme si ho zaplniť.
Na začiatok je vhodné zadefinovať si “virtuálne” objekty, ktoré budú použité na defaultné nastavenie objektov. WIKI: Definovanie objektov (block #objectid)
#note pomocne objekty pre lepsiu orientaciu; { #objectid=dekoracia; #name=PRESET dekoracia; #note dekoracia je neprenosna a nezobrazuje sa ako samostatny objekt; #showasseparateobject=#false; #nonportable=#true; #visibility=#true; #found=#true; } { #objectid=osoba; #name=PRESET osoba; #note osoba je neprenosna, zobrazuje sa ako samostatny objekt a predstavuje aj kontajner; #showasseparateobject=#true; #nonportable=#true; #visibility=#true; #found=#true; #isContainer=#true; } { #objectid=predmet; #name=PRESET viditelny predmet; #note zbieratelny predmet, zobrazuje sa ako samostatny objekt; #showasseparateobject=#true; #nonportable=#false; #visibility=#true; #found=#true; }
Objekty majú zadefinované svoje mená a sú podporované synonymá. Je možné definovať samostatne podstatné, prídavné mená, detailnejší popis objektu a jeho umiestnenie.
#preset=osoba; #name=policajta; #nouns=policajta; #nouns=policajt; #description=Nic zajímavého.; #location=room_placek;
V príklade sa skopírujú nastavenia z objektu osoba.
Objektu sa dá nastaviť viditeľnosť #visibility, prípadne vlastnosť #found. Tá sa využíva napríklad pri autobuse, ktorý sa objaví až v priebehu hry.
Objektu je môžné nadefinovať množstvo premenných, ktoré môžu niesť doplňujúce informácie o danom objekte. Napríklad v prípade likvidátora informáciu či je nainštalovaný $nainstalovany=#false;.
V prípade taxikára je zmenená vlastnosť #showasseparateobject čím sa zabezpečí že sa nezobrazí v zozname predmetov.
Engine má dva špeciálne predmety používané napríklad pri nejednoznačnostiach. Ide o tvoju osobu #you a aktuálnu miestnosť #here. Viac v príklade
{ #objectid=#you; #description=Jsi to ty!; #name=u seba; #nouns=seba; #adjectives=seba; #adjectives=svoj; #adjectives=svoju; #adjectives=môj; #adjectives=moju; } { #objectid=#here; #name=tu; #nouns=tu; #nouns=zemi; #nouns=zem; #nouns=miestnosti; #adjectives=tu; #adjectives=zemi; #adjectives=zem; #adjectives=miestnosti; }
Podrobnosti o všetkých možnostiach sú na WIKI. Máme svet, dokážeme ho zaplniť objektami. Je to také pusté však 😉 Ako vdýchnuť život si ukážeme nabudúce.