| 赞 | 0 |
| VIP | |
| 好人卡 | |
| 积分 | 1 |
| 经验 | |
| 最后登录 | 2013-11-3 |
| 在线时间 | 1 小时 |
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 1 小时
- 注册时间
- 2005-10-22
- 回帖
- 396
|
发表于 2007-7-26 22:25:19
|
显示全部楼层
可以简单改写一下,如
def slip_damage_effect
self.damage = 0
#伤害重置
# 毒
if self.state?(3)
# 设置伤害
self.damage += self.maxhp / 15 #这里用 +=
end
# 生长
if self.state?(36)
# 设置伤害
self.damage += -self.maxhp / 20 #这里也应使用+=
recover_sp = self.maxsp / 25
self.sp += recover_sp
end
self.hp -= self.damage #将多个状态累积的damage统一对HP运算
end
这样子使用单个的if分歧可以使状态的效果叠加,但是有个问题:只能弹出一个状态的HP伤害。
所以这里对HP采用了伤害累计,在所有的持续伤害类型状态判断完毕后,统一计算显示出来。
如果想要每个状态弹出一个……就要修改一下方法……增加一个过程调用的循环……
写起来有点麻烦…… - -bbb 系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~ |
|