查看: 696|回复: 1

[交流讨论] (踩坑)rpgmz变量不支持小数

[复制链接]
梦石
0
星屑
2500
在线时间
242 小时
注册时间
2022-2-7
回帖
0
发表于 2026-5-5 21:58:31 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 sssxxx0e 于 2026-5-5 21:58 编辑

Q.想要在变量10里存0.5,但发现输出为0

进行尝试
1.
◆脚本:$gameVariables.setValue(10, 0.5);
:  :$gameVariables.setValue(11, $gameVariables.value(10) * 2);
:  :console.log($gameVariables.value(11));
2.
◆脚本:$gameVariables.setValue(1, 0.5);
◆文本:无, 无, 窗口, 底部
:  :\v[1]
结果都是0

A.搜索后发现
根本原因:
RPGMakerMZ的`$gameVariables.setValue`方法在存储数值时会进行向下取整,这是官方为了简化变量为“整数计数器”的设计。

`rmmz_objects.js` 这个核心脚本文件中。`Game_Variables` 类的 `setValue` 方法是这样定义的:
Game_Variables.prototype.setValue = function(variableId, value) {
       if (variableId > 0 && variableId < $dataSystem.variables.length) {
           if (typeof value === 'number') {
               value = Math.floor(value); // <--- 罪魁祸首就在这里!
           }
           this._data[variableId] = value;
           this.onChange();
       }



算是记录
梦石
0
星屑
6334
在线时间
287 小时
注册时间
2018-1-22
回帖
207
发表于 2026-5-6 17:25:59 | 显示全部楼层
转成字符串类型就行了
自分自身の神様になること
回复 1 0

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部