精華區beta mud_sanc 關於我們 聯絡資訊
八卦自動行走觸發 * 撰寫者:doall * 適用zMUD 7.21 * 觸發句: 明顯出口有: (&exit). * 觸發撰寫內容: #var temp 1 #wait 800 #var temp %random( %numwords( @exit)) #if (@temp = 0) {#var temp 1} #until ((%word( @exit, @temp) != "和") & (%word( @exit, @temp) != "out") & (@temp != 0)) { #var temp %random( %numwords( @exit)) } %word( @exit, @temp) 資料來源:聖殿英雄傳說非官方Wiki網站      http://funsanc.wikidot.com/ hmml補充解說: Pattarn:明顯出口有: (&exit). 紅色字體相當於:#var exit %1,因此exit內的值是房間出口的字句。 01行:設定一個變數temp,值為1。 02行:等待0.8秒。 03行:先分成幾個部份來說明:    %numwords(@exit):求出exit裡有幾個字串,預設是以空白字元為分隔字元,             依照八卦迷陣的出口字句格式,最長會到3。在此計算出             的值先假定為A。 %random(A):隨機輸出一個值,由於內容只有A,所以範圍是0~A,在此計算          出的值假定為B。    #var temp B:將temp的值設定為B。     04行:分成幾個部份來說明:    (%word(@exit,@temp)!="和")    %word的功能是提取字串中所指定的單詞,本句可以解釋為:    取出exit內第temp個單詞出來,而這個單詞≠"和"    (%word(@exit,@temp)!="out") 取出exit內第temp個單詞出來,而這個單詞≠"out"    (@temp != 0) temp≠0,因此,下行句子的意思即為: #until ((%word(@exit,@temp)!="和")&(%word(@exit,@temp)!="out") &(@temp!= 0) 取出exit內第temp個單詞出來,而這個單詞≠"和"&"out",且temp≠0,    當這些條件成立後執行: {#var temp %random(%numwords(@exit))}    其意是為了將temp值限定為1與3,如果temp值指定的單詞是out,也會過濾掉。     05行:%word(@exit,@temp) 根據前述得到的temp,取出exit的單詞,這句就是執行得出的方向了。 結語:其實%word的完整格式為:%word(字串,數值,分隔字元)使用者能自行設定分隔 字元,如果完整使用%word的功能,整段觸發會簡潔很多,而%random的完整格式    %random(mix,max),意即最大最小值可以自行設定,所以很多判斷是多餘的。    要注意的只有避免走向out即可,不過這觸發很有年代了,當時的中文化資源不    比現在.... 精簡後如下: #var temp 1 #until (%word(@exit,@temp," 和 ")!="out") {  #var temp %random(1,%numwords(@exit," 和 "))} #alarm +1 {%word(@exit,@temp," 和 ")}