精華區beta mud_sanc 關於我們 聯絡資訊
路徑slow walk的作法,要注意的是slow walk與fast walk 倒走是各自獨立 的模式,不能混同,即使用者不能設定slow walk模式中倒走,或倒走模式中 使用slow walk。當然這是指5.55版及以下的版本,7.21版本有相關函數可以 使用。 Slow walk模式主要指令有: #path: 設定路徑,格式:#path 路徑名 路徑內容 方位字元預設為: │╲│╱│ e:east h:northwest │╱│╲│ w:west j:northeast s:south k:southwest n:north l:southeast u:up d:down 假設有一地圖有右: 走法設定方式如下: 房 間 順 序 路 徑 寫 法 12369874 >> eesswwn or 2e2s2wn 1258957 >> essehk or e2sehk 1236514789 >> eeswkssee or 2eswk2s2e #slow:   慢走模式,下達指令後,會下路徑的第一筆指令。 即由1走到2 接上例,假設一路徑名為test,內容如下: │╲│╱↓ 12369874 >> eesswwn ^ ↑╱│╲↓         進入慢走模式後,只會走一步 當下達指令#slow test或#slow eesswwn時,程式會 進入慢走模式,且只執行第一筆方向:e,接著就等 待確認指令(#ok)進來。 #ok:   在慢走模式中,每下一次指令,就會走一步路徑中還 按一次#ok,由2到3 未使用的第一筆指令。再接上例: │╲│╱↓ 12369874 >> eesswwn ^ ↑╱│╲↓     慢走模式中,下一次指令只會走下一步。 #pause: 慢走模式中,下指令後,會進入等候主機訊息的狀態, 一旦收到任何訊息,就會走一步路徑中還未使用的第一 下了#pause後, 筆指令。再接上例: │╲│╱ 只要一收到訊息 就會從3走到6。 12369874 >> eesswwn ↑╱│╲↓ ^ 下達指令後,不會立刻就執行"s",而是等有新的訊息 進來,如閒聊或是有人進入房間....等,才會觸發執 行。 #stop: 慢走模式中,下達指令後,會凍結使用中的路徑。#ok及 #pause都無法使用,主要與#step配合使用。再接上例: #stop前,如果 │╲│╱↓ 有執行6走到9 12369874 >> eesswwn 的動作,#stop ↑╱│╲↓ 後,會判定6走 下達指令後,路徑的執行會鎖住。停在走完第三步的狀態 到9沒成功,還 在位置6。 #step: 當慢走模式處於凍結狀態時,下達指令後,會解除凍結中 的路徑,並執行上一步路徑指令。即#step會判定凍結前 的最後一步沒有成功移動,所以要重走一遍。再接上例: #step後,程式 │╲│╱↓ 會補走上一步, 12369874 >> eesswwn 所以會前進到9 ↑╱│╲ 下指令後,會解開路徑的鎖住狀態,這個指令會判定第三 之後再#ok,則 步沒成功,被房間的特殊狀況絆住,所以還會再執行第三 前進到8。 步一次。其後,逐步執行#ok就能把路徑後續走完。 補充: 快走模式:也就是一般模式,假設有一路徑:test,內容eesswwn,執行方式則為:      .eesswwn 或 .test 使用後,會一次下足全部指令,因此建議不要設太長。 倒走模式:即原路走回的模式,承上例,執行方式為:      ..eesswwn 或 ..test 使用後,會以 seennww 的走法倒回原點,當然也是一次下足全部指令。 Slow walking計時器: Slow walking計時器: view>>preferences>>general 點開後,左方目錄樹 Directories 點開, 有一個Slow walking,裡面有些項目用來設定 slow walk 的慢走模式: Timeout aborts walk: 勾選後,slow walk 模式中,一定秒數內執行 #stop,如果再用 #step,同 樣會在一定秒數內執行 #step。如果沒有勾選,就是一定秒數走一步的模式 。如果不想要以上兩種模式,請設定下個項目。 Timeout value(1000 = 1 sec): 在上方的選項中,一定秒數從本項設定,如果不想用以上兩模式,把這個清 空即可。 附錄: 路徑專用函數,應該是7.21才能用。 %reversedir( direction, [full]) * 得到反向字元或指令 * %reversedir(n) 會得到 s * %reversedir(n, 1) 會得到 south %pathcompress(stringlist) * 把方向指令的string list變成path * %pathcompress(n|n|n|e|w) 會得到 .3new %pathexpand(path) * 把path變成方向指令的string list * %pathexpand(3nwe;open door;n) 會得到 n|n|n|w|e|open door|n %pathreverse(path) * 得到反向路徑 * %pathreverse( 3ens) 會得到 ns3w 附錄來源 http://suzin.pixnet.net/blog/post/9760383 紅貓的重生世界 附錄二: 路徑全部指令,7.21版,舊版應該有些不能用。 * MARK 標記路徑的地點 mark the beginning of a path * PATH 儲存或顯示現在的路徑 save or display the current path * MAP 把方向添加到現在路徑 add a direction to the current path * BACKUP 移除現在路徑上最後一個方向 remove last direction from current path * RETRACE 逆向走路徑 retrace a path * SLOW 用慢走(Slow Walking)的模式走路徑 execute a path in Slow Walk mode * STEP 走一步(慢走模式) resume an aborted Slow Walk and step ahead * STOP 停止(慢走模式) abort a Slow Walk * OK 確認(慢走模式) confirm a Slow Walk step * PAUSE 暫停(慢走模式) pauses a Slow Walk 附錄二來源 http://ages.freebbs.tw/viewthread.php?tid=116&page=1 £血 十 字Ψ@時空之門