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

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

[复制链接]

46

主题

59

回帖

421

积分

管理员

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

本文适用于 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。
有问题欢迎跟帖提问。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|蘑菇物语

GMT+8, 2025-11-24 12:23 , Processed in 0.053061 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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