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