赞 | 1 |
VIP | 60 |
好人卡 | 27 |
积分 | 6 |
经验 | 39775 |
最后登录 | 2023-11-29 |
在线时间 | 2271 小时 |
Lv2.观梦者 (暗夜天使) 万兽
- 梦石
- 0
- 星屑
- 597
- 在线时间
- 2271 小时
- 注册时间
- 2006-11-4
- 帖子
- 4868
|
本帖最后由 弗雷德 于 2013-8-5 13:43 编辑
你把 effective |= self.hp != last_hp 写进if self.is_a?(Game_Actor)的判断当中,那么如果对象不是角色,就不会执行效果,移出去试试。
另外强烈抗议使用的分号的判断语句,看得很晕,这跟一大堆三目似的……
俺是的意思是将effective |= self.hp != last_hp 这句写出判断外,当执行完判断之后,再统一应用效果
比如你现在是这样写的。- # HP 的伤害减法运算
- if self.is_a?(Game_Actor)
- # 检测对象是否拥有无光之盾状态
- if self.states.include?(18)
- #判断对手使用的是否是魔法攻击
- if skill.atk_f == 0
- if self.damage > self.level * 100 #无光之盾的能量上限
- self.damage -= self.level * 100
- last_hp = self.hp
- self.hp -= self.damage
- effective |= self.hp != last_hp
- elsif self.damage + self.energy > self.level * 100
- self.energy = self.level * 100
- else; self.energy += self.damage
- end
- #判断剩余的能量是否足以抵挡此次攻击
- elsif self.damage <= self.energy * 2
- last_hp = self.hp
- self.hp -= self.damage / 2
- effective |= self.hp != last_hp
- self.energy -= self.damage / 2
- #不足的情况,只抵挡剩余能量的伤害,同时能量值清零
- else; self.damage -= self.energy
- last_hp = self.hp
- self.hp -= self.damage
- effective |= self.hp != last_hp
- self.energy = 0
- end
- end
- last_hp = self.hp
- self.hp -= self.damage
- effective |= self.hp != last_hp
- end
复制代码 改成:- # HP 的伤害减法运算
- if self.is_a?(Game_Actor)
- # 检测对象是否拥有无光之盾状态
- if self.states.include?(18)
- #判断对手使用的是否是魔法攻击
- if skill.atk_f == 0
- if self.damage > self.level * 100 #无光之盾的能量上限
- self.damage -= self.level * 100
- last_hp = self.hp
- self.hp -= self.damage
- effective |= self.hp != last_hp
- elsif self.damage + self.energy > self.level * 100
- self.energy = self.level * 100
- else; self.energy += self.damage
- end
- #判断剩余的能量是否足以抵挡此次攻击
- elsif self.damage <= self.energy * 2
- last_hp = self.hp
- self.hp -= self.damage / 2
- effective |= self.hp != last_hp
- self.energy -= self.damage / 2
- #不足的情况,只抵挡剩余能量的伤害,同时能量值清零
- else; self.damage -= self.energy
- last_hp = self.hp
- self.hp -= self.damage
- effective |= self.hp != last_hp
- self.energy = 0
- end
- end
- last_hp = self.hp
- self.hp -= self.damage
- end
- ##########################################写出这个判断外。因为你之前的代码导致只有当对象为角色的时候才执行effective |= self.hp != last_hp
- effective |= self.hp != last_hp
复制代码 @qqyxzyb |
评分
-
查看全部评分
|