[zMUD] 主要項目01、02、03

看板mud_sanc (Sanctuary - 聖殿)作者時間13年前 (2012/10/13 12:33), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
作者 hmml (hmml) 看板 mud_sanc 標題 [zMUD] 主要項目01、02、03 時間 Sat Oct 13 12:56:43 2012 ─────────────────────────────────────── 迴圈:Loop Structures 01-01 #number 中文:重複number次。 原文:repeat following text number times 格式:#number commands 範例:#2 bless    連續執行兩次bless,在聖殿裡,第二次可以取得下次bless的準備時間。 #2 #say %i 將執行次數帶入%i,並用#say 顯示出來。 01-02 REPEAT 中文:重複給定次數。 原文:repeat commands a given number of times 格式:#repeat n {commands} 範例:#repeat 2 {bless} 執行bless兩次,效果跟上一個相同,不過5.55版用不出來。 01-03 LOOP 中文:執行指令數次。 原文:execute command several times in a loop 格式:#loop range {commands} 範例:#loop 5 {#say hi} 效果同前兩個,執行五次#say hi。    #loop 2,5 {#say %i} 這個是loop的精髓,loop的真實效果是執行從第一個指定數字到最後一個    指定數字之間,有幾個數字來決定要執行幾次,沒指定起始數字,預設為    1,本例為2-5,共有2、3、4、5四數字,所以會執行四次指令,指定範圍    內的數字,可以使用%i帶入指令中使用。7.21版支援正序數,倒序數;而 5.55只支援正序數,且當範圍含負數,必須明確指定起始或結尾。本例將    執行:#say 2 #say 3 #say 4 #say 5 01-04 FORALL 中文:以列表(list)的內容跑一遍。 原文:loop through a string list and execute command for each item 格式:#forall {word1|word2|word3|...} {commands} 範例:#forall {hi|hello|iori|iori2} {say hi} 當list裡有幾個字串存在,就會執行幾次say hi,這並未發揮forall的效 果。 #forall {hi|hello|iori|iori2} {say %i} 將字串帶入%i,依序顯示在畫面上,這才是forall的真正用法。    semote={hi|hello|iori|ior2} #forall @semote {%i} 字串可以先寫在變數裡,再將變數的名稱安在list的位置,當list過長或 內容會變動時使用。 01-05 UNTIL 中文:執行指令直到條件為真(true)。 原文:execute commands until expression is true 格式:#until expression {commands} 範例:#var a 1 #until a>10 {#var a %eval(@a+1)    #say hi @a} 在a>10前,會一直執行#say hi @a。這是一道不小心使用便當機的指令,    請小心使用,條件最好設在變數裡,萬一不慎無限迴圈了,可以用#var手    動讓條件滿足結束迴圈。 01-06 WHILE 中文:在條件還為真(true)時執行指令。 原文:execute command while expression is true 格式:#while expression {commands} 範例:#var a 0    #while @a<10 {#var a %eval(@a+1)    #say hi @a}    在a<10前,會一直執行#say hi @a。這是一道不小心使用便當機的指令,    請小心使用,和上一個概念相反,條件設錯的話,不像until那麼容易解    開。 01-07 LOOPDB 中文:以資料庫的鍵值繞迴圈。 原文:loops through key values in a database record 格式:#loopdb database-rec {commands} 範例: 在這裡說明也不會明白,它是為資料庫型變數存在的,不知道這是什麼    的話,舉例也看不懂。後面類別還會有說明-    《資料庫變數:Database Variable Commands》 01-08 LMAP 中文:以地圖上的房間繞迴圈。 原文:loop through rooms on the map 格式:#LM path command 範例:#LMAP "3sn" {#SHOW %roomname(%i)} 未用過。 01-09 PRIORITY 中文:暫停mud的輸入下執行指令。 原文:execute list of commands without processing MUD input 格式:#priority {commands} 範例: 未用過,當有指令段不想被新的觸發影響時,可以用這個,如此一來,    在這段指令未完成前,不會執行別的指令。 01-10 ABORT 中文:停止之後的命令。 原文:abort further parsing of the current loop or program block 格式:#abort 範例:#say hi #abort #say hello 本段指令只會執行到#say hi為止,#say hello不會執行。當有指令段    只完成一部份,尚未峻工前,可以使用。常用在指令內容改版時,又希    望它仍然作用時。 條件判斷:Conditionals 02-01 IF 中文:條件測試。 原文:perform a conditional test 格式:#if (expression) {true-value commands} {false-value commands} 範例:#if (@a=1) {#say ture #var a 0} {#say false #var a 1} 當a=1,執行#say ture,並將a改成0;a=0,執行#say false,並將a改 成1。當使用者謀求強大的機器人時,必定要學會的指令。它允許使用    者只設定ture時,要做的事。但建議寫完整為佳,可以用{#noop}。有並    列式和樹枝狀兩種寫法,一個耗資源好管理,另一個相對省資源但比較    雜亂。 02-02 CASE 中文:從清單選擇指令。 原文:select a command from a list 格式:#case expression {commands} {commands} ...... 範例:#case @a {#say number @a #var a 2} {#say number @a #var a 3} {#say number @a #var a 1} {#say command error #var a 1} 當a分別為1,2,3時,分別執行前三項指令。和if相比,case是個效果更 強大的指令,它提供節省資源並好管理的途徑-扁平的結構;不過,當    判斷式的結果超過給定的選項時,它會選擇最後一項來執行,在本例,    可以看到有四個選項,第四個項目就會為了避免預期外結果而增加的防    錯項目。 觸發:Triggers 03-01 ACTION 中文:建立或顯示觸發。 原文:create or display a trigger action 格式:#action {pattarn} {commands} classnames 範例:#action {你技能中的祝福術~(Bless~)值是} {#say 再加油!}    建立一個觸發,這是一個從別的MUD client程式移稙過來的指令,好讓    使用者能無痛跳槽。 03-02 TRIGGER 中文:建立或顯示觸發。 原文:create or display a trigger action 格式:#trigger {pattarn} {commands} classnames 範例:#trigger {你技能中的祝福術~(Bless~)值是} {#say 再加油!} 建立一個觸發,效果跟action一模一樣。不過不常用,通常是打開編輯    視窗來建立,大概只有大團有觸發想一隻角色建立一次,這時就會有用    。 03-03 CONDITION 中文:增加多重狀態(multistate)觸發的狀態(state)。 原文:add a new state to a trigger 格式:#condition ID {pattern} {commands} class 範例:    沒用過,可能5.55版也沒這個。 03-04 ALARM 中文:建立時間觸發。 原文:create an alarm trigger 格式:#alarm timepattern {commands} classnames 範例:#alarm *1 {#say hi} 每秒執行一次#say hi。常用的指令,使用方式多元,配合特定字元*, +,-等呈現不同的效果,詳情另見《alarm 設定方式部份解析》。建議    所有的#wa,都使用#alarm -time {commands}。 03-05 TEMP 中文:建立暫時觸發。 原文:create a temporary trigger 格式:#temp {pattarn} {commands} classnames 範例:#temp {你技能中的祝福術~(Bless~)值是} {#say 再加油!} 這個觸發被使用後會自我刪除,在#trigger裡,就像在結尾加上: #untrigger {你技能中的祝福術~(Bless~)值是} 一樣。 03-06 ONINPUT 中文:建立命令列觸發。 原文:create a command input trigger 格式:#ONINPUT [id] pattern commands [classname] [options] 範例:#ONINPUT {^h$} {cast 'heal'} #ONINPUT {^~'(%*)} {say %1} 沒用過也不會用。 03-07 MXPTRIG 中文:建立MXP觸發。 原文:create a MXP trigger 格式:#MXPTRIG [id] pattern commands [class] [options] 範例:#MXPTRIG {color red} {%mxp.fore=Blue} "" "Prompt|NoCr" 沒用過也不會用。 03-08 REGEX 中文:建立正規表示式(regular expression)觸發。 原文:create a unix regular expression trigger 格式:#REGEX [id] {pattern} {commands} {classname} {options} 範例: 沒用過,格式可能和指令trigger相同,差別在於pattern部份, regex或許是依正規表示式規則來做判斷。5.55版似乎無此指令。 03-09 SET 中文:設定觸發狀態。 原文:set a trigger state 格式:#SET [id] state [value] 範例:#SET 0 設最後一個觸發的第一個state為true 沒用過也不會用。 03-10 STATE 中文:改變觸發狀態。 原文:change the current trigger state 格式:#STATE [id] [state] 範例:#STATE 0 沒用過也不會用。 ※ 編輯: hmml 來自: 220.132.196.45 (10/13 12:46) ※ 編輯: hmml 來自: 220.132.196.45 (10/13 12:59) ※ 編輯: hmml 來自: 220.132.196.45 (10/13 13:02)
文章代碼(AID): #1GUEy3n- (mud_sanc)
文章代碼(AID): #1GUEy3n- (mud_sanc)