路徑slow walk的作法,要注意的是slow walk與fast walk 倒走是各自獨立
的模式,不能混同,即使用者不能設定slow walk模式中倒走,或倒走模式中
使用slow walk。當然這是指5.55版及以下的版本,7.21版本有相關函數可以
使用。
Slow walk模式主要指令有:
#path:
設定路徑,格式:#path 路徑名 路徑內容 1─2─3
方位字元預設為: │╲│╱│
4─5─6
e:east h:northwest │╱│╲│
w:west j:northeast 7─8─9
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,內容如下: 1→2→3
│╲│╱↓
12369874 >> eesswwn 4─5─6
^ ↑╱│╲↓
進入慢走模式後,只會走一步 7←8←9
當下達指令#slow test或#slow eesswwn時,程式會
進入慢走模式,且只執行第一筆方向:e,接著就等
待確認指令(#ok)進來。
#ok:
在慢走模式中,每下一次指令,就會走一步路徑中還 按一次#ok,由2到3
未使用的第一筆指令。再接上例: 1→2→3
│╲│╱↓
12369874 >> eesswwn 4─5─6
^ ↑╱│╲↓
慢走模式中,下一次指令只會走下一步。 7←8←9
#pause:
慢走模式中,下指令後,會進入等候主機訊息的狀態,
一旦收到任何訊息,就會走一步路徑中還未使用的第一 1→2→3 下了#pause後,
筆指令。再接上例: │╲│╱↓ 只要一收到訊息
4─5─6 就會從3走到6。
12369874 >> eesswwn ↑╱│╲↓
^ 7←8←9
下達指令後,不會立刻就執行"s",而是等有新的訊息
進來,如閒聊或是有人進入房間....等,才會觸發執
行。
#stop:
慢走模式中,下達指令後,會凍結使用中的路徑。#ok及
#pause都無法使用,主要與#step配合使用。再接上例: 1→2→3 #stop前,如果
│╲│╱↓ 有執行6走到9
12369874 >> eesswwn 4─5─6 的動作,#stop
↑╱│╲↓ 後,會判定6走
下達指令後,路徑的執行會鎖住。停在走完第三步的狀態 7←8←9 到9沒成功,還
。 在位置6。
#step:
當慢走模式處於凍結狀態時,下達指令後,會解除凍結中
的路徑,並執行上一步路徑指令。即#step會判定凍結前
的最後一步沒有成功移動,所以要重走一遍。再接上例: 1→2→3 #step後,程式
│╲│╱↓ 會補走上一步,
12369874 >> eesswwn 4─5─6 所以會前進到9
↑╱│╲↓ 。
下指令後,會解開路徑的鎖住狀態,這個指令會判定第三 7←8←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 £血 十 字Ψ@時空之門