Project1

标题: 事件中小数点计算导致的问题. [打印本页]

作者: jhhuang    时间: 2009-8-5 17:12
标题: 事件中小数点计算导致的问题.
本帖最后由 jhhuang 于 2009-8-6 03:59 编辑

HP/(MAXHP/100)中忽略小数点导致计算的偏差有人知道怎么解决吗?

打个比方:我HP=2062,满血
按图片上的计算是MAXHP=2062/100=20(除去小数点)
                               HP=2062/20=103
也就是说满血的时候- -显示的数字是103%血

未命名.jpg (45.91 KB, 下载次数: 1)

未命名.jpg

作者: IamI    时间: 2009-8-5 17:14
改成100.0,20.0试试看
作者: jhhuang    时间: 2009-8-5 17:37
标题: 事件中小数点计算导致的问题.
不会是这样吧- -?好像不行~好乱

未命名.jpg (45.57 KB, 下载次数: 0)

未命名.jpg

作者: 霜冻之狼    时间: 2009-8-5 18:12
本帖最后由 霜冻之狼 于 2009-8-5 18:14 编辑

默认的战斗脚本里就有忽略小数点获取整数的运算:
# 属性修正
self.damage *= elements_correct(attacker.element_set)
self.damage /= 100

比如让变量乘于150,再除于100就能获得整数
作者: 后知后觉    时间: 2009-8-5 18:27
本帖最后由 后知后觉 于 2009-8-5 18:41 编辑

n = 2062 / (2062 / 100.0)
n = n.to_i

数据库的变量好像不能赋值浮点数又或者是在某种情况下
浮点数会被自动转换成整数- - 不太清楚- -
用事件里的脚本指令吧

actor = $game_actors[角色ID]
n=$game_variables[5] = actor.maxhp
m=$game_variables[6] = actor.hp
$game_variables[6] = (n/(n/100.0)).to_i
作者: jhhuang    时间: 2009-8-6 03:59
其实是(m/(n/100.0))
maxhp/hp的
试了下~好像没问题,又学到东西鸟,感谢.




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