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

[教程] 关于商店无法充值飞镖的问题

[复制链接]

51

主题

72

回帖

453

积分

管理员

积分
453
发表于 2025-11-24 00:31:49 | 显示全部楼层 |阅读模式

本文适用于 cosmic 、北斗、及相关衍生版本

前面有过两篇解决办法

[GMS083 修复商店无法充值飞镖和子弹的问题](https://moguwuyu.com/thread-19-1-1.html)

[GMS83正确的修复飞镖、子弹类道具储值](https://moguwuyu.com/thread-67-1-1.html)

这次重新给一个端做修复的时候,发现即使修复了封包问题依然无法充值,最后 debug 把问题定位到 cosmic 的 USE_UNITPRICE_WITH_COMMA 配置

这个配置默认值是 true ,这会导致程序从 xml 中取值的时候会根据法国的数字格式来匹配,具体代码像是下面这样
```java
NumberFormat.getInstance(Locale.FRANCE).parse("0.3")
```
法国使用`,`做小数点,因此诸如`0.3`这样的小数都被解析成了`0`,于是又回到了第一篇文章所说的,单价为`0`的道具无法充值。

所以修复的方法很简单,就是把 config.yml 里的 `USE_UNITPRICE_WITH_COMMA` 改为 `false` 就好了。通常单价都是 `0.x` 的情况下,是不用修复封包的,因为 short 类型也够用。但是为了保险起见还是参考第二篇文章把封包修复一下。最后检查一下 wz 是否被篡改过导致 unitPrice 都是 0。
有问题欢迎跟帖提问。

5

主题

26

回帖

100

积分

注册会员

积分
100
发表于 2025-11-24 13:51:22 | 显示全部楼层
逆天的法国配置

5

主题

31

回帖

466

积分

中级会员

积分
466
发表于 2025-12-5 00:39:45 | 显示全部楼层
我的看法是在源码里同时解析"0.3"和"0,3",或者更狠点,将所有带字符认为是小数进行解析

51

主题

72

回帖

453

积分

管理员

积分
453
 楼主| 发表于 2025-12-5 11:29:49 | 显示全部楼层
Magical-H 发表于 2025-12-5 00:39
我的看法是在源码里同时解析"0.3"和"0,3",或者更狠点,将所有带字符认为是小数进行解析 ...

你这纯纯给服务端增加负担,没意义
有问题欢迎跟帖提问。

5

主题

31

回帖

466

积分

中级会员

积分
466
发表于 2025-12-5 11:57:27 | 显示全部楼层
leevccc 发表于 2025-12-5 11:29
你这纯纯给服务端增加负担,没意义

飞镖子弹也不多,就是多加几种解析方式,增加不了什么负担吧

51

主题

72

回帖

453

积分

管理员

积分
453
 楼主| 发表于 2025-12-5 17:51:14 | 显示全部楼层
Magical-H 发表于 2025-12-5 11:57
飞镖子弹也不多,就是多加几种解析方式,增加不了什么负担吧

那确实是,只是规范和不规范的区别而已
有问题欢迎跟帖提问。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|蘑菇物语

GMT+8, 2025-12-17 10:37 , Processed in 0.053066 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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