刚才仔细看了一遍代码,楼主的构思还是很巧妙的,看懂下面这三行,整个程序就应该看懂了
--下面这句增加一个触发,当抓到 '设定环境变量:walk = off‘这句话时,执行walk.walkoff()
world.AddTriggerEx ("walkoff", "^(> |)设定环境变量:walk \\= \\\"off\\\"$", "walk.walkoff()", trigger_flag.RegularExpression +trigger_flag.Enabled + trigger_flag.Replace, custom_colour.NoChange, 0, "", "", 12, 99)
--下面这句创健一个协程,名为walk.output_path,但不执行
self:step()
--下面这句是传入path参数,开始执行walk.output_path协程
coroutine.resume(walk.output_path,path)
工作机制是这样的:
walk.go()方法生成路径,创建并执行output_path协程。
walk.output_path是个走路的协程。当它执行完Max_Step步以后,会执行set walk off并挂起
set walk off触发walk.walkoff()
walk.walkoff()延迟规定的秒数以后,唤醒output_path协程。继续走路。
不知我说明白了没有
[ 本帖最后由 myu 于 2011-1-18 05:05 PM 编辑 ] |