Project1

标题: (踩坑)rpgmz变量不支持小数 [打印本页]

作者: sssxxx0e    时间: 2026-5-5 21:58
标题: (踩坑)rpgmz变量不支持小数
本帖最后由 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();
       }



算是记录
作者: 526396987    时间: 2026-5-6 17:25
转成字符串类型就行了




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1