前言:
大部分玩家玩冒冒就避不开一些特殊辅助功能,比如吸物。
吸物又分为两种:
1、人物吸物
2、宠物吸物
吸物又分客户端和服务端两种模式
-------客户端--------
通常体现为外挂辅助对游戏函数劫持使得角色/宠物可以拾取全屏所有物品
其原理:获取所有物品的坐标,调用宠物拾取函数循环拾取物品,并发送数据包给服务器。
-------服务端--------
通常体现为自定义函数使得角色/宠物可以拾取全屏所有物品
其原理:获取宠物坐标,获取所有物品的坐标,调用拾取函数传递宠物坐标和物品坐标进行循环拾取,并发送数据包通知客户端。
本次教程以北斗服务端作为测试,新增一个宠吸功能的函数。
宠吸的原理我们已经了解了,那要如何实现让宠物自动吸物呢?
有两种方法,
一是使用定时器,在装备特定道具或者特定开挂打开后激活定时器每多长时间吸取一次物品。(该方法后续再讲)
二是通过宠物移动封包函数进行调用。(人多可能会影响服务端性能,不过我们仅做讲解,无需在意性能问题)
让我们打开移动封包处理类
北斗的宠物移动封包处理类路径:gms-server/src/main/java/org/gms/net/server/channel/handlers/MovePetHandler.java
原本的代码如下,红色地方为我们添加的代码。
代码登录后可见
至此,我们的宠吸功能就完成了。
只要装备了宠物即可达到宠吸的效果。