in Blog

Pomsta! – Svet

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.

Write a Comment

Comment

Táto webová stránka používa Akismet na redukciu spamu. Získajte viac informácií o tom, ako sú vaše údaje z komentárov spracovávané.