赞 | 12 |
VIP | 54 |
好人卡 | 19 |
积分 | 81 |
经验 | 33991 |
最后登录 | 2020-4-22 |
在线时间 | 334 小时 |
Lv4.逐梦者
- 梦石
- 7
- 星屑
- 1113
- 在线时间
- 334 小时
- 注册时间
- 2008-1-28
- 帖子
- 1566
|
本帖最后由 未命名 于 2015-7-23 10:52 编辑
唉,两个self.damage 最后都用=赋值了,所以显示出来的伤害会是最后一个=的数值。
现在的结果是你人物实际-28HP
没错-28。
因为self.hp在过程中被实际减掉了。
然后按默认脚本,最后再扣掉self.damage,一共是28。
你先把self.damage = 改为 self.damage +=,然后最后得到的self.damage就是两个状态合计伤害,然后系统再显示它,再扣掉HP。
另外再把self.hp - self.damage删掉,要不然会扣掉比显示更多的伤害。
当然,你甚至可以制作徐徐回复状态,只要把self.damage变成负值就可以了。
对了,还要在开头就写上self.damage = 0,以免各个伤害叠加等BUG。
————————————————————————————————————————————————————————
(=゚ω゚)=显示伤害是之后执行的,它会把self.damage的值可视化。
但是在此之前……它会先得出damage的值,然后减掉hp,再显示出来。
你的脚本中,第一次
self.damage = 8,
然后self.hp-self.damage,人物自己已经扣血。
但是这个时候self.damage还是个值,人家还没显示出来( ´_ゝ`)。
然后第二个状态,
self.damage = 10,所以就无法挣扎的=10了 (゚Д゚≡゚Д゚)!
然而self.hp-self.damage人物还是扣了HP。
(つд⊂)
最后,到了执行伤害显示的时候,它们打上了damage_pop,但是self.damage还是10。
|д` )
然后显示了10。
但是人物已经扣了18HP了。
(先前我还以为你在最后没有删掉原来的self.hp-self.damage,所以我以为是28。)
( ´_っ`)
———————————————————————————————————————————————
不知道清楚了没有……
所以解决方法像这样:
# 设置伤害
self.damage = 0 #一开始先归零。
if self.state?(17)
self.damage -= 200 #这个是回血状态,减法。
end
if self.state?(23)
self.damage += 100 #损血就用加法。
end
if self.state?(24)
self.damage += 250
end
#如果角色中了以上三个状态,那么他就得到self.damage = 150的值。
# HP 的伤害减法运算
self.hp -= self.damage #然后再扣掉。
# 过程结束
return true #这里结束之后,才转到伤害显示的脚本,把得出的damage显示出来。 |
评分
-
查看全部评分
|