Felhasználói eszközök

Eszközök a webhelyen


tinyfugue

Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

Előző változat mindkét oldalonElőző változat
Következő változat
Előző változat
tinyfugue [2015/01/10 14:20] truthtinyfugue [2016/01/10 12:55] (aktuális) truth
Sor 84: Sor 84:
 Ezen kívül még sokféle mintát lehet a regexp-ben használni, amikről interneten lehet leírásokat találni, például itt: [[http://www.mutatismutandis.org/help/tf/topics/pcre.html|http://www.mutatismutandis.org/help/tf/topics/pcre.html]] Ezen kívül még sokféle mintát lehet a regexp-ben használni, amikről interneten lehet leírásokat találni, például itt: [[http://www.mutatismutandis.org/help/tf/topics/pcre.html|http://www.mutatismutandis.org/help/tf/topics/pcre.html]]
  
 +=====Eseménykezelés=====
 +A ''/help hooks'' parancs kilistáz minden elérhető eseményt, azonban a legfontosabb ez a kettő: CONNECT és DISCONNECT. Erre a két eseményre van a szükség a mud-hoz való automatikus újracsatlakozás végett. Példa a használatára:
 +<code>
 +/def -hCONNECT acl1 = /load auto_con.tf%;FELH.NEV%;JELSZO
 +/def -hDISCONNECT acl2 = /repeat -10 1 /connect ev
 +</code>
 +Szemléletesen mutatja, hogy a CONNECT a csalatkozás után lefuttatja a törzsében lévő utasításokat, még a DISCONNECT a szétkapcsolás után fut le azonnal. Ezen kívül egy új elem is felfedezhető a kódban, be lett szúrva, hogy ''acl1'' és ''acl2''. Definiáláskor lehet külön nevet is adni triggereknek, aliasoknak, hookoknak, stb., aminek jelentősége az, hogy módosításkor és a memóriából való eltávolításkor így lehet specifikusan arra a tárolt kifejezésre mutatni.
 +
 +=====Feltételes elágazás=====
 +Az ''/if'' elágazás segítségével lehetőség nyílik utasításblokkok feltételtől függő végrehajtására.
 +<code>
 +/if (condition) true_exp%;/else false_exp%;/endif
 +</code>
 +  * **condition**: kifejezés, aminek ha nullától eltérő értéke van, igaznak bizonyul.
 +  * **true_exp**: teljesült feltétel esetén lefutó blokk.
 +  * **false_exp**: hamis kifejezéskor végrehajtott ág.
 +
 +Több feltétel kiértékelése esetén használható az ''/elseif''.
 +Példa:
 +<code>
 +/def -mregexp -t'Eletero: (\d+)\s+' = /if ({P1} < 700) /heal%;/elseif ({P1} < 400) menekules most%;/endif
 +</code>
 +
 +=====Ciklusos utasítások=====
 +Ciklusszervezéssel egy utasításblokk ismételhető feltétel szerinti alkalommal. A TF-ben két klasszikus, más nyelvekből is ismert utasítás van erre a célra: ''/for'' és ''/while'', továbbá rendelkezésre áll még a ''/repeat'', amely gazdagítja az eszköztárat időintervallumok megadásának lehetőségével.
 +
 +====Iteráló ciklus====
 +A for utasítás segítségével n darabszor megismételhető a ciklusmag.
 +<code>
 +/for loop_var init_val end_val command
 +</code>
 +  * **loop_var**: léptethető ciklusváltozó neve.
 +  * **init_val**: a változó kezdeti értéke.
 +  * **end_val**: a változó eddig a szélsőértékig lesz inkrementálva, utána befejeződik a végrehajtása.
 +  * **command**: a ciklusmag utasítása.
 +
 +Példa:
 +<code>
 +/for i 1 10 /echo %i
 +</code>
 +
 +====Elöltesztelős ciklus====
 +A while egy olyan ismétlési szerkezet, amely egészen addig ismétli a ciklusmagot, amíg az elején meghatározott feltétel teljesül.
 +<code>
 +/while (condition) commands%;/done
 +</code>
 +  * **condition**: kiértékelt feltétel, ami ami igaz logikai érték esetén végrehajtja a ciklusmagot.
 +  * **commands**: a ciklusmag utasításai.
 +
 +Példa:
 +<code>
 +/set i 10
 +/while (i > 0) /test echo(--i)%;/done
 +</code>
 +
 +====/repeat utasítás====
 +A repeat késleltetett/azonnali kiértékelést eredményez egy/több alkalommal.
 +<code>
 +/repeat -NUM [-S] NUM command
 +</code>
 +  * **-NUM**: a késleltetés mértéke másodpercben kifejezve, akár lebegőpontos formátumban.
 +  * **-S**: szinkronban fut le a folyamattal, tehát azonnal.
 +  * **NUM**: ismétlések száma.
 +  * **command**: a kiértékelt parancs.
 +
 +Példa:
 +<code>
 +; megismétli 10x egymás után azonnal az 'eszak' parancsot.
 +/repeat -0 -S 10 eszak
 +; 5 másodperc múlva 'felkel' a karakter.
 +/repeat -5 1 felkel
 +</code>
tinyfugue.1420896049.txt.gz · Utolsó módosítás: 2015/01/10 14:20 szerkesztette: truth

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki