|
楼主 |
发表于 2019-3-1 14:33:37
|
显示全部楼层
function go_confirm()
locate_finish=0
checkWield()
sour.id = nil
if flag.go==nil then flag.go=0 end
flag.go = flag.go + 1
if string.find(locl.room,'长江') or string.find(locl.room,'渡口') or string.find(locl.room,'澜沧江边') then
flag.go=1
end
if flag.go>10 then flag.go=0 end --原来是flag.go>3
if locl.room == dest.room and locl.room == "南门" and locl.area ~= dest.area then
local sgate = 0
sgate = sgate + 1
if sgate>0 and sour.id~="扬州城长江北岸" then
exe('n')
else
exe('s')
end
return path_consider()
end
if locl.room == dest.room or flag.go == 0 then
if locl.room == dest.room and locl.area == dest.area then
chats_locate('定位系统:从【'.. sour.area .. sour.room ..'】出发,到达目的地【'..dest.area .. dest.room ..'】!','seagreen')
else
chats_locate('定位系统:从【'.. sour.area .. sour.room ..'】出发,未达目的地【'..dest.area .. dest.room ..'】,终点为【'.. locl.area .. locl.room ..'】!','cyan')
end
flag.go=0
return road.act()--就是这个跳去执行岳灵珊那个函数
else
return go(road.act)
end
end
-----
昨晚研究了好久,才搞清楚,公版设置flood之后,go_confirm 三次之后,不论是否找到地方,都调用road.act(),这里装的就是到达地点后执行的函数。
大概是预防死循环吧!但是在现在跑72步的情况下,flood之后重新定位是经常的事,我就把那个次数给改成10次了!
go_confirm的调用是在locate后的exit,只要看到出口,就会调用locate_finish,这个是在path_start里赋值的,如果路径走到尽头,就会调用!
路径这里挺复杂的,我也不敢做大的改动,姑且改成这样试试吧! |
|