找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 23|回复: 3

[教程] 如何给北斗冒险岛添加一个可以触发拍卖行脚本,同时可以放在快捷栏的消耗品

[复制链接]

45

主题

42

回帖

364

积分

管理员

积分
364
发表于 5 小时前 | 显示全部楼层 |阅读模式

视频演示 [https://www.bilibili.com/video/BV1n74nz1Ezi/](https://www.bilibili.com/video/BV1n74nz1Ezi/)

研究过这个问题的人应该已经知道,一个道具能不能使用,能不能放入快捷栏是客户端写死的,不是所有道具都可以使用或者放入快捷栏的
那么我们要添加这么一个道具,要么逆向客户端,要么动动脑子,我这里不演示逆向了,因为找起来麻烦,我也没这个需求。
我只从最基本的逻辑上告诉你这个玩意应该怎么找。

现在我们要明白写程序不可能对一个类型下面每个id做判断,肯定是对一个ID段进行判断,在某个范围内的ID可以使用、在某个范围内的ID可以放入快捷栏
我们现在要添加一个道具,他具备这几个要求:**能使用**、**能放入快捷栏**
很快就能想到**药水**
观察一下药水的ID就会发现,药水的ID都是200、202开头的,那我们只需要添加一个200或者202开头的药水不就可以了吗

添加一个ID为2009999的道具
保存到客户端以后还要导出到服务端
重启服务端

出错是正常的,因为这个ID段是当作药水来处理的,我们刚才没有添加spec节点,是这个原因导致出错的。

现在我们来看看服务端是怎么处理我们使用这个道具的请求

这里有个 handlePacket 就是处理客户端发回的封包,我们在这里看

看这整个处理过程

这里有很多个 if itemId== 说明这些是对特殊物品特殊处理,那我们也只需要对我们的道具特殊处理即可

我们添加了一个if判断 ,让我们的物品走特殊处理,然后复制打开拍卖行的命令,这样,当我们使用这个新道具的时候就打开了拍卖行,现在另一个问题也很简单,就是让我们使用这个新道具的时候不要消耗新道具,那其实也很简单。继续看代码

这里有个remove(c, slot);
看名字就知道是移除,移除什么?盲猜就是消耗道具的命令,我们删掉这个命令

是不是很简单?这不就好了,后面给道具换个图片就好了下课!

游客,如果您要查看本帖隐藏内容请回复
有问题欢迎跟帖提问。

0

主题

14

回帖

110

积分

注册会员

积分
110
发表于 5 小时前 | 显示全部楼层
感谢分享

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 4 小时前 | 显示全部楼层
学习学习

0

主题

3

回帖

6

积分

新手上路

积分
6
发表于 2 小时前 | 显示全部楼层
感谢分享干货~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|蘑菇物语

GMT+8, 2025-10-11 06:17 , Processed in 0.060620 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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