浅谈GPS在任务中的应用(无数据无代码)
本帖最后由 jarlyyn 于 2022-8-22 10:26 PM 编辑GPS对一个mud机器人来说是绕不过去的话题。
一旦机器人开始利用GPS,就说明机器人的的形式发生了更本性的变化,从一个探索性的机器转型成为了一个数据驱动型的数据。gps机器人的出现,代表着机器人的开发速度开始远超WIZ的更新速度。毕竟更新地图比更新gps的工程量大的很多。
北侠作为一个运行了几十年的mud,不可避免的有几套流传比较广的GPS数据,甚至在wiki某些主流任务的信息里都能找到GPS的痕迹。在这里,我不谈数据(我手头也没有完整的gps)数据,也不谈代码,来谈谈怎么更好的运用GPS的功能,以及能在北侠的任务中体现怎么样的能力。
首先,让我们对GPS有一个定义。
其实GPS是一个玩家自发的说法,并没有一个公认的定义。
有些人认为足够多的房间信息才叫GPS,有些人认为能两点之间寻路才叫GPS。
在这里,我讨论的GPS的标准为
[*]有某一个区域内所有能进入的房间的信息
[*]记录了房间的名称,区域,所有的出口对应的房间,描述
[*]出口能设置条件(符合条件才能进入/不符合条件才能进入)
[*]出口能设置步长(用于计算最近路线)
[*]对于能定位的房间有根据房间名/描述/场内对象等信息进行独一无二定位的信息列表。
可以不用全MUD的数据,但是,有关于某个地区的所有所有房间的信息,少一个也不行。
功能一
任意两点之间的最短路线移动。
说实话,这个是GPS最直接的功能之一。
也是任何一个客户端的Mapper都有的功能。
通过dijkstra设置A*之类的寻路算法,去除不符合条件的出口,对路径进行加权计算,得出最近的路线。
这个可以实现到任意固定npc之间完成任务的功能,典型如门忠的部分任务。
除开机器人,这基本也是手动辅助的最重要功能之一,MUD毕竟大部分时间都在移动,没全局定位玩mud实在痛苦。
功能二
定位。
一般来说,GPS机器都有移动到特殊房间后定位的功能。
在定位后能根据每一步在数据库里进行匹配目标的位置,实现一次定位,次次定位的目的。
而如果迷路,从山坡上滚下来之类,或被随机传送,也可以用过移动位置来进行定位重新运行机器。
这时候一般采取深度优先遍历配合。
这种功能,对于传送类的任务,比如血案,韩世宗,挖花等极为重要。
同时,有了GPS+定位的功能的机器,抗干扰能力极为强悍,一般的拦路,破坏,甚至PK机器都很难威胁道有GPS+定位功能的机器人。
功能三
多点移动。
指能够移动道多个点中最近的一个点。
这个是一个Mapper的基本能力,与任务关系不大。
直接影响就是体现在,睡觉时可以去最近的地方休息,买卖东西可以去最近的当铺。
但是,这个功能是其他的功能的基础,所以本身也比较重要。
部分任务,如 都府刺杀的第一部分,韩世宗的datan等只匹配房间名的,使用这个功能会比较快速。
功能四
动态遍历
从这个功能开始,就是属于对GPS数据的深入应用了。
动态遍历指根据情况动态生成遍历路径。
比如,有些区域,部分房间需要长袖2进入,部分房间需要正气ID,部分房间男性可以进,部分房间女性可以进入,部分房间要一定的Dodge
如果事先生成遍历路径,那需要非常多的数量的路径,而且难以维护。
但如果有GPS的功能,可以根据不同的标签动态生成遍历路径,则完全没有这样的问题了。
具体算法有很多研究,我直接硬上,利用功能三多点行走,走到一个电去掉一个电的直到所有点都走广的形式,也能有不错的效果。
这个对于大部分需要遍历的任务都很有帮助。
同时这个功能可以引申为 动态遍历给定的房间名的功能。
这对于所有提示区域+房间名的任务都有帮助。
比如,纪晓芙任务,遍历建康府的江南小道,可以只遍历名字是江南小道的房间。
功能五
房间膨胀
这个其实也是个常用功能
即获取某个房间周围N步内的房间的去重信息。
然后再对这些房间进行一次动态遍历
对于移动/会逃跑的目标十分有用,比再次遍历和深度遍历都高效,稳定很多。
对于慕容信件/孟之经/捉蛊/天珠等都十分有用,能极大的提高效率。
本帖最后由 jarlyyn 于 2022-8-22 10:55 PM 编辑
功能六
区域膨胀
这个功能和房间膨胀有点类似。
就是把区域内所有符合条件(比如同名)的房间做一次N步的膨胀,再去重。
得出的结果再进行动态遍历。
这个任务适合那些 知道房间地点,NPC会乱跑的任务。
恩,就是慕容信件……
比如某些城市边缘的青石大道的家贼,甚至会跑到别的城市的那种,传统的遍历都不好用。
功能七
全局共享
由于GPS给每个区域的每个房间都进行了编号,所以也就有了信息共享的可能。
对于一些全局NPC,所有用同一个套GPS的机器在移动和遍历时进行关注,发现就通过游戏内和游戏外的渠道进行信息共享,之间精确到点。
收到信息的机器可以通过一次房间膨胀,不行再跟一次区域遍历打到很好的效果。
比如,乔峰任务的npc,比如,你还在找线索已经知道慕容家贼在哪,比如,你刚收到老孟的秘信就知道对应区域有几个房间有大元NPC。
由于北侠有PP的存在,这个功能的价值有所弱化,但依旧是个十分有价值的功能。
好了,对于GPS功能在北侠任务的作用就到此为止了。
很明显,除了定位功能时某些任务必须(血案,韩世宗,挖花)以外,其他的功能只是起到一个提速的功能。
固定点+遍历也能做剩下的任务。
北侠的任务有各种长短的CD,使得这种效率的提升没那么明显。
但是,追求同时让jq榜尽可能多的任务进入CD,也是一种做机器的玩法。
要追求这种极限的话,除了角色本身的强度,充分的利用好GPS进行提速也是必不可少的。
页:
[1]
2