TXT - Wiki

Svety sú piesok vo vetre...

Nástroje používateľa

Nástoje správy stránok


definovanie_miestnosti

Definovanie miestnosti (blok #roomid)

{
#roomId=ID;
#preset=ID;
 
#name=nazov miestnosti;

#roomId - jedinecne ID miestnosti
#preset - hodnoty miestnosti ID sa pouziju ako defaultne, uz musi byt zadefinovana
#name - nazov miestnosti (napr.: chodba)

#descriptionId=ID;
#description=popis miestnosti;
#nameFrom=nazov;
#nameTo=nazov;

#descriptionId - ID textu s popisom miestnosti
#descriptionId ma prednost pred #description, pokial je #descriptionId=#null pouzije sa text z #description
#nameFrom - textovy nazov pouzity pre formulaciu odchadzas z tohoto miesta napr.: „odchadzas z chodby“
#nameTo - textovy nazov pouzity pre formulaciu prichadzas na toto miesto napr.: „prichadzas do chodby“

#showObjectsLongnameInDescriptionOfRoom=#true;
#showObjectsShowAsSeparateObject=#true;
#showObjectsActionPrint=#true;

#showObjectsLongnameInDescriptionOfRoom - hodnota #false v popise miestnosti vypne vypis predmetov ktore maju definovane #longNameInDescriptionOfRoom (defaultna hodnota je #true)

#showObjectsShowAsSeparateObject - hodnota #false v popise miestnosti vypne vypis predmetov ktore maju definovane #showAsSeparateObject (defaultna hodnota #true)

#showObjectsActionPrint - hodnota #false v popise miestnosti vypne generovanie #actionPrint z objektov, pozor ale #actionprint konkretnej miestnosti v ktorej sa nachadzas sa stale vykonava (defaultna hodnota je #true)

#north=ID;
#east=#null;
#south=#null;
#west=ID;
#in=ID;
#out=ID;
#up=ID;

#north - ID miestnosti do ktorej sa dostanes ak pojdes z tejto miestnosti na sever, hodnota #null urcuje ze sa neda ist tymto smerom

#down=ID,#false;
  #note  Daju sa zadefinovat tajne priechody ("iluzorne steny");
  #note  T.j. moznost ist urcitym smerom o tejto moznosti, ale hrac nebude informovany.;

V skriptoch sa da informacia o viditelnosti daneho smeru zistovat ako premenna pomocou

#room[ID_Room].#north.#visibility
 
#getroom ID_Room,#north.#visibility,$tmp;
  #note  vysledok sa ulozi do $tmp;

pripadne sa da viditelnost nastavit

#room[ID_Room].#north=ID,#true;
  #note  nastavi ID a ci je viditelny dany smer;
 
#room[ID_Room].#north.#visibility=#true;
  #note  nastavi viditelnost daneho smeru;
 
#setroom ID_Room,#north,ID,#true;
  #note  nastavi ID a ci je viditelny dany smer;
 
#setroom ID_Room,#north.#visibility,#true;
  #note  nastavi viditelnmost daneho smeru;


Definovanie novych „pohybovo/zmyslovych“ map (vyuzitelne pre specialne popisky sirenie zvuku, smradu :)

#map=newID,#copy;
#map=newID,#copy,#basemap;
  #note  Ak neexistuje tak vytvori novu prazdnu mapu newID.;
  #note  Skopiruje do newID stav klasickej pohybovej basemapy #north,#south,...;
  #note  Basemapa uz musi existovat pre danu miestnost.;
 
#map=newID,#copy,IDsource;
  #note  Ak neexistuje tak vytvori novu prazdnu mapu newID.;
  #note  Skopiruje do newID stav mapy "IDsource" (len uz musi IDsource existovat pre danu miestnost).;
 
#map=newID,#north,IDroom;
  #note  Ak neexistuje tak vytvori novu prazdnu mapu newID a nastavi #north na "IDroom".;


#actionUpdate=ID;
  #note  ID akcie ktora sa vola po update roomu;

V pripade ze dochadza k updatu sameho seba nezavola sa znova.
V pripade ze updatne iny objekt a ten naspat updatne moj objekt tak sa nevola znova.
V niektorych pripadoch napriklad pre EXAMINE OBJEKTU sa najskor zavola #actionUpdate (zvysenie priznaku #countOfExamination) az potom examine akcia.

Jednoduchy sposob ako dynamicky menit popis miestnosti:

#actionprint=ID;
  #note  ID akcie ktora sa vola pri printe situacie.;

Text sa uklada do registrov $rom_reg_textbuffer1 az $rom_reg_textbuffer8 podla nasledujucej schemy:

$rom_reg_textbuffer5 NAME ROOM $rom_reg_textbuffer1
$rom_reg_textbuffer6 DESCRIPTION ...............
............................ $rom_reg_textbuffer2

$rom_reg_textbuffer7 ITEMS.......... $rom_reg_textbuffer3

$rom_reg_textbuffer8 DIRECTION...... $rom_reg_textbuffer4


Skripty pri opusteni alebo vojdeni do miestnosti:

#leaveVerify=ID;
  #note  ID akcie ktora sa spusti ked chces odist z tejto miestnosti.;
  #note  Ak je navratova hodnota #false nepodari sa ti to.;
#enterVerify=ID;
  #note  ID akcie ktora sa spusti ked chces vojst do tejto miestnosti.;
  #note  Ak je navratova hodnota #false nepodari sa ti to.;
 
#leave=ID;
  #note  ID akcie ktora sa spusti ked opustis tuto miestnost.;
#enter=ID;
  #note  ID akcie ktora sa spusti ked vojdes do tejto miestnosti.;
#enterLastAction=ID;
  #note  ID akcie ktora sa spusti ked vojdes do tejto miestnosti.;
  #note  Spusta sa ako posledna. Po klasickej ENTER akcii a po LEAVE/MEET akciach a po vypise situacie.


Diera v miestnosti, pripadne tlacitko na zemi:

#fullOfFloor=#true;
  #note  Plna podlaha, neda sa tu polozit ziaden predmet (defaultna hodnota je #false).;
 
#holeInFloorDestination=ID;
  #note  Diera v podlahe, polozeny predmet prepadne do miestnosti ID.;
  #note  Na zaciatku sa standardne vola akcia predmetu #PUT alebo #GIVE (defaultna hodnota #null).;
  #note    Maximalne povolene mnozstvo zretazenych dier je 100.;
#holeInFloorAction=ID;
  #note  ID akcie ktora sa vola pred padom.;

Pokial je navratova hodnota ($rom_return_result) #TRUE je mozne prepadnut cez dieru.
$rom_exec_executor = ID objektu (polozeneho/zobrateho)
$rom_exec_owner = ID room (miestnost)
$rom_exec_owner_action = #holeput alebo #holegive podla toho ako bol predmet umiestneny na zem

#buttonOnFloor=ID;
  #note  Akcia ktora sa spusti po polozeni/zobrati predmetu (defaultne nastavena #null).;
  #note    Diera ma prednost, predmet prepadne a nestlaci tlacitko.;
  #note  Tlacitko mozu aktivovat polozene predmety, alebo predmety ktore sem prepadnu.;

$rom_exec_executor = id objektu (polozeneho/zobrateho)
$rom_exec_owner = ID room (miestnost)
$rom_exec_owner_action = #buttonOnPut, #buttonOnGive, #buttonOff
Hodnoty su podla toho ako bol predmet umiestneny na tlacitko, alebo ci bolo vypnute.
Objekt ma podobnu funkcionalitu (Definovanie objektov #containerReceived/#containerReleased).

Premenne:

$ID=value;
  #note  Premenna ID s hodnotou value, je mozne zadefinovat lubovolne mnozstvo premennych.;
 
$ID1=value;
$ID2=value;
$ID[x][y];
  #note  Definovanie pola.;
$ID[]=0;
  #note  Nastav kompletne pole na hodnotu 0.;
$ID[1][2]=xx;
  #note  Nastav pole na suradniciach [1,2] na hodnotu xx.;
 
  #note  Cez premenne sa daju predefinovat systemove chybove hlasky pre konkretnu akciu s tymto objektom.;
  #note  Maju tvar $text_... napr $text_putfail, $text_seenothinghere.;
} 

Miestnost ma specialne premenne len na citanie (nedaju sa prdefinovat):

$rom_count_of_objects - pocet objektov v miestnosti. Predmety musia byt visibility,found a aspon jeden z showAsSeparateObject/longNameInDescriptionOfRoom/longNameInDescriptionOfObject.

$rom_weight_of_objects - vaha objektov v miestnosti. Predmety musia byt visibility,found a aspon jeden z showAsSeparateObject/longNameInDescriptionOfRoom/longNameInDescriptionOfObject.

$rom_bulk_of_objects - velkost objektov v miestnosti. Predmety musia byt visibility,found a aspon jeden z showAsSeparateObject/longNameInDescriptionOfRoom/longNameInDescriptionOfObject.

definovanie_miestnosti.txt · Posledná úprava: 2019/02/28 14:46 od wolf