第一步,在Game_Battler3里面的def skill_effect找到
self.hp -= self.damage
effective |= self.hp != last_hp
在其后面添加(注意不是覆盖)
if user.state?(17) && self.damage > 0 user.damage = -self.damage user.hp -= user.damage end
if user.state?(17) && self.damage > 0
user.damage = -self.damage
user.hp -= user.damage
end
这样如果角色带17号状态,那么他发动任意特技(物理攻击不算)给敌人造成的伤害之后,自己也会回复相同的HP。注意,这里没有仔细考虑群体攻击的情况,在这种情况下,如果发动群体攻击并且角色带17号状态,那么他回复的HP将和最后一名敌人受到的伤害相同。此外,如果角色给敌人打出的伤害是负数,那么没有吸血效果。
第二步,伤害显示的处理
在Scene_Battle4的def update_phase4_step5那里
找到#显示伤害这一注释后面,添加如下内容
@active_battler.damage_pop = true if @active_battler.damage != nil
@active_battler.damage_pop = true if @active_battler.damage != nil
这句话是让发动特技的人显示回复伤害。显示的时机和显示目标伤害的时机相同。可以试试看看效果。
注:以上设定对敌人也有效。 |