新手mush求以下房间遍历LUA代码和正则触发
本帖最后由 dodosheep 于 2011-12-3 03:38 PM 编辑B
|
A--C
|
D
看了论坛很多例子和贴子都解不出来,特别是#ok功能,但就是解不出来,还望各位高手赐教。谢谢!
要求:
1.每1秒走一步,不停在这4个房间走。
2.出现特定NPC停住,执行其它动作。
自己做了不是走很快,就是停不住。
北大侠客行MUD,中国最好的MUD 一步一步的行走其核心思想就是:把一个行走字符串分解成最小的单步命令,一步一步的根据触发来发送行走指 ...
littleknife 发表于 2010-12-30 07:50 AM http://pkuxkx.com/forum/images/common/back.gif
胡小子的思路,mapper的领悟机器人也看了,还是云里雾里。。唉,好笨呀。 本帖最后由 littleknife 于 2011-12-4 10:21 AM 编辑
实现无路线遍历的思路可以这样考虑:
1、抓取出口信息:比如“这里的出口是:”。。。
2、触发处理函数的方法:一个是直接用“这里的出口是”这个做触发迭代器,一个是用它触发自己的自定义触发:如set walkgo yes。然后在根据自己的“设定变量..”这个触发做迭代器来行走。
直接用“这里的出口是”做迭代器触发容易无法在NPC面前停止,因为NPC是在“这里的出口是”这个触发之后出现的,所以我的一般做法是“这里的出口是”--->Set walkgo yes,然后在调用处理函数(其实这个做法我个人理解就是#OK功能)。
3、处理函数比如:walkstep,分别来处理是否当前层,当前出口数,返回一个需要行走的命令。
基本流程可以这么考虑:
开始遍历=>“这里的出口是”=>Set walkgo yes (游戏反馈“设定环境变量...”)=>调用处理函数walkstep
=>开始处理相关抓取到的出口信息,以及特殊情况信息,返回当前应该发出的命令(行走指令,如east)=>发送行走指令,等待触发“这里的出口是”。然后循环。 直接用“这里的出口是”做迭代器触发容易无法在NPC面前停止,因为NPC是在“这里的出口是”这个触发之后出现的,所以我的一般做法是“这里的出口是”--->Set walkgo yes,然后在调用处理函数(其实这个做法我个人理解就是#OK功能)。
littleknife 发表于 2011-12-4 10:15 AM http://www.pkuxkx.com/forum/images/common/back.gif
set brief 2/3,npc会在出口之前,当然类似#ok的更保险 谢谢两位前辈。
path={"n","s","e","w","s","n","l"}
num=1
function go_walk()
if num~=nil then
Simulate("\n下一步\n")
end
end
function walk()
if num==stop then
Send("say 1")
else
DoAfter (2, path)
end
if num==7 then
num=1
else
num=num+1
end
end
现在可以循环走了,但是,出现特定npc 没办法使num=="stop"。
npc触发用SetVariable ("num", "stop")也停不下来。
请前辈们指点指点。
谢谢。 我觉得可以靠一些触发来做。
比如你要搜索路径是
n e w n
然后每走一步,就set walk=ok
然后根据这个触发走下一步 谢谢两位前辈。
path={"n","s","e","w","s","n","l"}
num=1
function go_walk()
if num~=nil then
...
dodosheep 发表于 2011-12-5 02:09 PM http://pkuxkx.com/forum/images/common/back.gif
兄弟,我是一个比你还新的人,请问下你这段代码在MUSH中怎么调用啊?
页:
[1]