快乐云朵 发表于 2026-3-29 16:43:29

为啥返回结果是负值,请教大神。

2021-1-20 星期三 14:07:48 [脚本错误]  脚本命令:HUMANHP NPC名称Function 地图:0(0:0) 参数1:- 参数2:-26016002 参数3: 参数4: 参数5: 参数6: 参数7: 参数8: 参数9: 参数10:
为什么怪物血量多了之后,计算百分比的结果是负值?怪物血量是30E.如何得到正确的数值,找大佬指点下。
MOV N$血量 <$ATTACKMONSTER_HP>
DIV N$血量 100
MUL N$血量 2
和
CalcPercent <$ATTACKMONSTER_HP> 2 N9
获得的都是负值

阳光小鸟 发表于 2026-3-29 16:43:29

引擎已经更新了完美的解决方案。不要计算了。AddhpPerEx 当前HP比例操作,想怎么操作怎么操作。

阳光小鸟 发表于 2026-3-29 16:43:29

我也出过负值,怎么解决的忘了

可爱小狗 发表于 2026-3-29 16:43:29

血量超过21亿了,就是负值。变量最多只支持21亿。

聪明小熊 发表于 2026-3-29 16:43:29

只能绕个弯子,用S变量暂时保存
MOV S1 <$ATTACKMONSTER_HP>
DEC S1 6 10
MOV N$血量 <$str(S1)>
再对变量操作
补充内容 (2021-1-20 14:40):
绕远了,如果是切割怪物血量,怎么不试试M.ADDhpper - 2,哦当前剩余血量啊,那没事了

诚实小鸟 发表于 2026-3-29 16:43:29

将30E复制给N变量,得到的结果是-1294967296
实际上N变量,U变量还有G变量保存上限只有17E

美丽小鱼 发表于 2026-3-29 16:43:29

holgo 发表于 2021-1-20 14:31 只能绕个弯子,用S变量暂时保存
MOV S1  
DEC S1 6 10
DEC S1 6 10怎么解?
补充内容 (2021-1-20 14:49):
这样出来的结果,不就是个错误的了?

开心小鹿 发表于 2026-3-29 16:43:29

huhuhaha 发表于 2021-1-20 14:45 DEC S1 6 10怎么解?
补充内容 (2021-1-20 14:49):
去掉 30E数字后面5个0  这样就只剩30000了,你只想去两个0就是
DEC S1 8 10
结果再MUL 个 2就是你想要的结果了

美丽小猪 发表于 2026-3-29 16:43:29

转移到字符型变量 MOV S$血量 <$ATTACKMONSTER_HP> 去掉后面一位数 再去用整数型变量去操作啊

坚强花朵 发表于 2026-3-29 16:43:29

现阶段引擎数值类变量最大只能支持21E 超过21E 会出现负数的
页: [1] 2
查看完整版本: 为啥返回结果是负值,请教大神。