设为首页
收藏本站
切换到宽版
登录
注册
找回密码
强烈推荐的【科学上网】工具,高效稳定,支持多平台点击注册
搜索
搜索
本版
文章
帖子
用户
快捷导航
首页
BBS
玩法脚本分享
求助问答
每日签到
小米原创脚本
免责声明
每日签到
欢迎来到本站,本站交流QQ群:216732952[点击进群]
小米冒险岛论坛
»
首页
›
冒险岛单机
›
改端技术教程
›
修复商店购买负数 - 小灰灰
开服/脚本/定制 QQ:526703257
【科学上网】小米强烈推荐史上最好用的VPN便宜又好用
悠悠冒险岛QQ机器人QQ:2780980749
返回列表
发帖
查看:
2327
|
回复:
0
修复商店购买负数 - 小灰灰
[复制链接]
ormxd
ormxd
当前离线
积分
190
TA的每日心情
擦汗
2025-6-19 06:18
签到天数: 3 天
[LV.2]偶尔看看I
14
主题
10
回帖
190
积分
版主
小灰灰
积分
190
发消息
发表于 2024-7-11 05:41:33
|
显示全部楼层
|
阅读模式
此修复方法是防止使用负数进行购买商店物品,并且购买金额不减反增的问题
首先,先找到源码内
MapleShop.java
找到
buy
这个函数
在一个判断内有个一变量
final int price = GameConstants.isRechargable(itemId) ? item.getPrice() : (item.getPrice() * quantity);
首先要把int型改成一个long型
就变成以下
final long price = GameConstants.isRechargable(itemId) ? item.getPrice() : (long) item.getPrice() * quantity;
同时还需要加一个判断在下面
if(price <= 0 || price >= Integer.MAX_VALUE){
c.sendPacket(MaplePacketCreator.confirmShopTransaction((byte)0));
c.sendPacket(MaplePacketCreator.enableActions());
return;
}
然后会发现以下-price会变成红色
c.getPlayer().gainMeso(-price, false);
毕竟gainMeso是给金币,里面定义的是int型,其实给值强转回int型就可以了
c.getPlayer().gainMeso((int)-price, false);
还有不严谨的,请各位多多提意见!
回复
使用道具
举报
返回列表
发帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表