找回密码
 注册
搜索
查看: 4463|回复: 35

【修复公版】可能导致发呆的代码修复

[复制链接]
门派:古墓派
发表于 2019-1-13 09:36:10 | 显示全部楼层 |阅读模式
前几天,我遇到一个发呆的情况,任务地点在星宿海,在击杀完npc后,回去交任务一直路径死循环,最后发呆。

这里详细说说解决的思路,方便各位同学可以参考好自己排查类似的问题。

经排查,原因如下:

go()函数在过程中会设置road.id为目的地:

  1. function path_cal()
  2. ......
  3.     road.id = l_dest
  4.     l_path=map:getPath(l_sour,l_dest)
  5.     if not l_path then
  6.        Note('GetPath Error!')
  7.        return false
  8.     end

  9.     return l_path
  10. end
复制代码


path_consider函数会优先判断road.id,如果有值使用road.id作为起始房间:

  1. function path_consider()

  2. ......
  3.     if not sour.id and road.id and map.rooms[road.id] and map.rooms[road.id].name == locl.room then
  4.         sour.id = road.id
  5.     end
  6. ......

  7. end
复制代码


说到这里,大家有没有发现问题呢?

任务的流程是,第一步:走到任务地点(go函数),第二步:然后搜索(find函数),第三步:回去交任务(go函数)

搜索结束的房间很大可能不是你的任务地点,交任务的go函数会认为你还在第一步的road.id,计算路径返程,这里地点就存在问题了,而且locate定位函数并不会更新road.id,所以偶尔会发呆。

最后说说我的解决方法:

在任务返回的函数中,先清空road.id,然后locate到房间以后,就会按照搜索最后停止地点返回交任务了。

  1. huashan_cut=function()
  2.     ......

  3.     road.id=nil

  4.     ......
  5. end
复制代码


评分

1

查看全部评分

门派:少林派
发表于 2019-1-13 09:42:51 来自手机 | 显示全部楼层
我看了半天发现我看不懂啊      
门派:古墓派
 楼主| 发表于 2019-1-13 10:44:49 | 显示全部楼层
woshicy@tj 发表于 2019-1-13 09:42
我看了半天发现我看不懂啊

大师客气了。
                       
门派:古墓派
 楼主| 发表于 2019-1-13 10:51:07 | 显示全部楼层
可能大家不注意吧,这是一个很隐蔽的问题。
门派:明教
发表于 2019-1-13 10:54:46 | 显示全部楼层
只用修改华山?WD等需要修改吗?                                    
门派:明教
发表于 2019-1-13 10:55:27 | 显示全部楼层
woshicy@tj 发表于 2019-1-13 09:42
我看了半天发现我看不懂啊

水僧也放点干货出来啊 ,众人拾柴火焰高啊                                          
门派:古墓派
 楼主| 发表于 2019-1-13 10:57:01 | 显示全部楼层
tzwhen@tj 发表于 2019-1-13 10:55
水僧也放点干货出来啊 ,众人拾柴火焰高啊

水僧出手就了不得了,江湖会掀起大波澜
门派:桃花岛
发表于 2019-1-13 11:11:49 | 显示全部楼层
这几天  收货很大 啊   一点一点的   改了好多地方                       
门派:古墓派
发表于 2019-1-13 11:13:30 | 显示全部楼层
woshicy@tj 发表于 2019-1-13 09:42
我看了半天发现我看不懂啊

说我看不懂大家肯定相信,你说看不懂咋就没人信呢。
门派:古墓派
发表于 2019-1-13 11:14:47 | 显示全部楼层
看来会改的人都是有收获的,不会的怎么办呢,都是放代码的没个加入到公版里去的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|书剑永恒MUD ( 闽ICP备14012032号|闽公网安备 35050202000162号 )

GMT+8, 2025-6-9 14:47 , Processed in 0.033089 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表