这几天操作了一下侠客行MUD游戏,通过mushclient这个软件。不过,自带的路径生成器,操作起来感觉不爽。
就自己重做了一个实现。全部命令行操作,比较方便。代码不多。
- --mushclient automap 工具 by suxiaojack 2008.9
- --完全在命令行实现。感觉比自带的操作起来方便。
- --说明,应该设置mushclient的脚本识别标识为'.'
- --这样命令行调用时使用.wk="内容"就可以调用了!
- --启动 .wait.make(automap)
- --开始执行一个新path.
- -- .wk="s"
- --进行步进 .wk="n/s" 表示我现在向北走返回为南
- -- .wk="nd/su" 等等
- -- 可以写一半另一半自动识别
- --在处理开门关门顺序上需要连续书写两个
- --比如 .wk="open door;n/open door;s"
- --执行错误的一步怎么办?
- -- .wk="d" 表示删除上一步的内容,命令完全是无效的。
- -- .wk="b" 表示删除上一步的内容但是我的位置会自动回退
- --在路径错误,回退。或者是我要部分修改时回退等等。
- --其他:
- -- .wk="gb" 返回
- -- .wk="gg" 再走 这两个用来验证一下。
- -- .wk="save xx" 保存正向alias xx
- -- .wk="save xx ff" 保存正向 xx 反向ff 的alias
- -- .wk="show" 查看当前路径串
- -- .wk="nouse" 终止使用
- wk=""
- mappath=""
- mapper={
- ["n"]="s",
- ["s"]="n",
- ["w"]="e",
- ["e"]="w",
- ["u"]="d",
- ["d"]="u",
- ["ne"]="sw",
- ["nw"]="se",
- ["nu"]="sd",
- ["nd"]="su",
- ["se"]="nw",
- ["sw"]="ne",
- ["su"]="nd",
- ["sd"]="nu",
- ["wu"]="ed",
- ["wd"]="eu",
- ["eu"]="wd",
- ["ed"]="wu"
- }
- require "wait"
- function find(l,p)
- return string.find(l,p)
- end
- function automap()
- Note("automap启动!")
- Note(" by suxiaojack")
- local pathlen,t
- while 1 do
- if wk ~= "" then
- if wk=="s" then
- --清空路径,开始新纪录
- mappath=""
- Send("place") --!!!查看地图的命令,改为帮自己辨向的!!!
- else
- t=utils.split(mappath,".")
- if t~=nil then
- pathlen=table.getn(t)
- t[1]=nil --开头一个总是空的
- else
- pathlen=0
- end
- --
- if wk=="gb" or wk=="gg" then
- local z=""
- local f=""
- if pathlen>1 then
- for i =2,pathlen do
- v=t[i]
- if v~=nil then
- re = rex.new ("(.*)/(.*)")
- s, e, tt = re:match (v)
- z=z..tt[1]..";"
- f=tt[2]..";"..f
- end
- end
- end
- if wk=="gg" then --再走
- Execute(z)
- end
- if wk=="gb" then --回去