精華區beta mud_sanc 關於我們 聯絡資訊
觸發需要的敘述如下: 迷宮房間: ≡≡≡≡≡≡雲道天關≡≡≡≡≡≡ 目的房間: ────── 雲道天關‧問情天 ────── 鬼打牆中: 霧鎖雲埋不辨方位...... 利用 hmml 大大提供的"路西法", 再加上以上三個敘述做觸發, 以下為 alias: #alias goCold { #var pathCmdIndex 0 #var pathCmdCnt 0 #var lastDir w #t+ findCold w } 1)初始化變數 pathCmdIndex 為 0 2)初始化變數 pathCmdCnt 為 0 3)初始化變數 lastDir 為 w 4)啟用 class findCold 5)"路西法"開始 #alias goPath {#case (@pathCmdIndex) {#ala +1 {w}} {l e} {l n} {l s}} 檢查變數 pathCmdIndex, 為 1 時, 繼續往西走, 2, 3, 4 則往其他三個方向看 為避免跑太快, 所以每一輪等一秒, 設在第一個 command (即向西走) 以下為觸發: #tr {≡雲道天關≡} { #add pathCmdIndex 1 #if (@pathCmdIndex > 4) {#var pathCmdIndex 1} goPath } "findCold" 1)遞增變數 pathCmdIndex 2)檢查變數 pathCmdIndex 是否已經一輪, 要改回 1 繼續下一輪 3)呼叫 goPath alias #tr {霧鎖雲埋不辨方位} { #add pathCmdCnt 1 #if (@pathCmdCnt >= 5) { #var pathCmdCnt 0 #ala +2 {#send @lastDir} } {#send @lastDir} } "findCold" 1)遞增變數 pathCmdCnt 2)檢查變數 pathCmdCnt 是否累加到 5 以上, 是: 歸零, 等候兩秒後送出 lastDir, 否: 直接送出 lastDir (此動作也是避免跑太快) #tr {雲道天關‧問情天} { #ala +1 { #case (@pathCmdIndex) { #t- findCold #show -------- OK -------- #abort 1 } {#var lastDir e } {#var lastDir n } {#var lastDir s } #var pathCmdIndex 1 #send @lastDir } } "findCold" 1) 延遲 1 秒 2) 判斷 pathCmdIndex 的值: 1: 即之前走 w, 也就是現在已經處在目的地, a)關閉 findCold class, 即關閉相關觸發 b)不執行後面的任何指令 2,3,4: 即上次看的方向, a)將 lastDir 設定上次看的方向 b)將 pathCmdIndex 設為 1, 讓這個觸發下次判斷時, 認為是走進目的地, 便會停止 (非必要, 即時 case 1 的部份沒執行到, 進到時寒那格沒出口, 自然會收到"什麼?"就停掉了) c)送出 lastDir