|
我们不可能都对lua脚本精通,但如果能了解lua脚本中任务的大致流程,对我们如何修改机器人会有相当大的帮助。
武当任务为例子,作个简单说明,以下所有内容都是wudang.lua中的相关函数:
对于我们挂hs+wd的,hs job做完后,mush robot会执行一系的检查,最后执行的是这个函数:
function wudang()
if hp.shen<0 then
return turnShen('+')
end
wudangTrigger()
job.level=nil
job.lost=0
job.name='wudang'
return check_halt(wudangGo)
end
其他的是一些标志的初始化,不用管它。上面标红的两个函数,第一个函数是建立各种触发,比如ask song接任务的触发等等,可以在那个函数中看到各个触发的定义。
第二个函数是就是继续往下,准备ask song要任务了,下面是第二个函数的定义:
function wudangGo()
return go(wudangBegin,"武当山","三清殿")
end
这个函数里其实就是一个跳转,执行了一个go函数,go是mush robot中相当重要的一个函数,它的功能就是走到某地做某事,像这儿就是让我们走到武当山三清殿,执行wudangBegin()
让我们看wudangBegin里干了什么:
function wudangBegin()
if newbie==1 then return zhunbeineili(wdstart) else return wdstart() end
end
这里面是一个判断,就是说如果标志newbie是1,就执行前面的: zhunbeineili(wdstart),否则就执行后面的:wdstart(),两者最终都是执行wdstart()。这里newbie就是我们在主界面上可以选择“”开启任务检查内力“”开头,zhunbeineili也是一个函数(定义在job.lua中),它会自动dazuo,达到条件就再执行wdstart, 所以下一步就是wdstart这个函数了。
function wdstart()
return prepare_lianxi(wudangStart)
end
这里面先执行prepare_lianxi,这个函数就是判断我们有没有job busy,有busy就练习一些特殊技能,没有就直接执行wudangStart这个函数(所以如果想job busy时想做点别的事——比如去拿个雪蛛,或者做一个smy,就要修改prepare_lianxi这个函数),现在流程到wudangStart了:
function wudangStart()
DoAfterSpecial(1,'return AntiFloodTimer()',12)
antiFlood="wudang"
EnableTriggerGroup("wudangAsk",true)
flag.idle = nil
return exe('ask song yuanqiao about job')
end
到这儿才会真正ask song要任务,这里面红色的就是我加的防flood的标志和动作。
后面就不解释了,师兄弟姐妹如果能理解这个流程,后续改一些小的问题难度就不会太大了 |
|