leevccc 发表于 2025-11-24 00:31:49

关于商店无法充值飞镖的问题


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

前面有过两篇解决办法

(https://moguwuyu.com/thread-19-1-1.html)

(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。

foggy 发表于 2025-11-24 13:51:22

逆天的法国配置 :lol

Magical-H 发表于 2025-12-5 00:39:45

我的看法是在源码里同时解析"0.3"和"0,3",或者更狠点,将所有带字符认为是小数进行解析;P

leevccc 发表于 2025-12-5 11:29:49

Magical-H 发表于 2025-12-5 00:39
我的看法是在源码里同时解析"0.3"和"0,3",或者更狠点,将所有带字符认为是小数进行解析 ...

你这纯纯给服务端增加负担,没意义

Magical-H 发表于 2025-12-5 11:57:27

leevccc 发表于 2025-12-5 11:29
你这纯纯给服务端增加负担,没意义

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

leevccc 发表于 2025-12-5 17:51:14

Magical-H 发表于 2025-12-5 11:57
飞镖子弹也不多,就是多加几种解析方式,增加不了什么负担吧

那确实是,只是规范和不规范的区别而已
页: [1]
查看完整版本: 关于商店无法充值飞镖的问题