|
楼主 |
发表于 2018-11-22 01:27:22
|
显示全部楼层
补充一下去神龙岛,没到达地点就砍木头的修整——
function toSld()
if locl.where ~= '神龙岛海滩' then
return toSldDkCheck()
end
sld_unwield()
sld_weaponWieldCut()
if not Bag["粗绳子"] then
exe('buy cu shengzi')
exe('drop cu shengzi 2')
end
exe('get cu shengzi')
exe('drop cu shengzi 2')
return check_halt(toSldTrigger,1.5)
end
function toSldTrigger()
DeleteTriggerGroup("mufabusy")
create_trigger_t('mufabusy1','^(> )*木筏还没扎结实,等下再坐吧。','','wait_mufa')
create_trigger_t('mufabusy2','^(> )*只见(\\D*)轻轻一跃,已坐在木筏上。','','mufaok')
create_trigger_t('mufabusy3','^(> )*你好象没有武器,拿手砍?','','sld_need_weapon')
create_trigger_t('mufabusy4','^(> )*你要绑什么?','','wait_mufa')
create_trigger_t('mufabusy5','^*什么?','','wait_mufa')
create_trigger_t('mufabusy6','^(> )*你拿起木筏上的一根木头,将木筏向前划去。','','toSldHua')
SetTriggerOption("mufabusy1","group","mufabusy")
SetTriggerOption("mufabusy2","group","mufabusy")
SetTriggerOption("mufabusy3","group","mufabusy")
SetTriggerOption("mufabusy4","group","mufabusy")
SetTriggerOption("mufabusy5","group","mufabusy")
SetTriggerOption("mufabusy6","group","mufabusy")
EnableTriggerGroup("mufabusy",true)
if locl.where == '神龙岛海滩' then
toSldChop()
end
-----
函数tosld()是判断到达神龙岛海滩后,开始准备粗绳子,然后砍木头,而且这个函数的调用是通过toslddkcheck()这个函数,虽然在这个函数里有判断是否走到了位置,但因为flood问题的存在,还是偶尔有走不到地方就开始砍木头,于是导致了发呆的情况发生。
解决的方案很简单,加入if locl.where ~= '神龙岛海滩' 判断,如果不是“神龙岛海滩”,就再次调用toslddkcheck()函数,让它重新判断,然后调取walk.wait()再次去找地方。
修改后过去了2周,这个问题再也没出现过,应该是已经解决了!
所以由此可见,凡是在一些函数中,需要特定地点做特定动作的情况,一旦因为flood导致地点走错了,特定动作往往无效,就会导致发呆。
我们都可以在执行特定动作前加一个判断,是不是真得走到了地方?不是的话再次调用前边的判断函数,进行再次找路,原理都是一样的! |
|