Project1

标题: 怎样设置一个状态,中了这个状态的人技能就可以吸血? [打印本页]

作者: 飘过~    时间: 2015-2-15 16:31
标题: 怎样设置一个状态,中了这个状态的人技能就可以吸血?
比如状态是[吸血],中了这个状态,角色发技能就能吸收伤害
作者: wolves    时间: 2015-2-15 18:16
在Game_Battle 3里找到
self.hp -= self.damage
改成:
if state?(17)
   self.hp += self.damage
else
   self.hp -= self.damage
end

17是你的状态的id
作者: 飘过~    时间: 2015-2-16 09:43
wolves 发表于 2015-2-15 18:16
在Game_Battle 3里找到
self.hp -= self.damage
改成:

谢谢大大,,这样改是发技能前回血,但是回血的样子好像受了伤一样,怎么变成像回血一样的样子?
另外,我想要的状态是:角色中了这个状态后,他发技能造成伤害,他可以恢复与造成伤害一样多的血量。。
作者: RyanBern    时间: 2015-2-16 10:16
第一步,在Game_Battler3里面的def skill_effect找到
self.hp -= self.damage
effective |= self.hp != last_hp
在其后面添加(注意不是覆盖)
RUBY 代码复制
  1. if user.state?(17) && self.damage > 0
  2.   user.damage = -self.damage
  3.   user.hp -= user.damage
  4. end

这样如果角色带17号状态,那么他发动任意特技(物理攻击不算)给敌人造成的伤害之后,自己也会回复相同的HP。注意,这里没有仔细考虑群体攻击的情况,在这种情况下,如果发动群体攻击并且角色带17号状态,那么他回复的HP将和最后一名敌人受到的伤害相同。此外,如果角色给敌人打出的伤害是负数,那么没有吸血效果。
第二步,伤害显示的处理
在Scene_Battle4的def update_phase4_step5那里
找到#显示伤害这一注释后面,添加如下内容
RUBY 代码复制
  1. @active_battler.damage_pop = true if @active_battler.damage != nil

这句话是让发动特技的人显示回复伤害。显示的时机和显示目标伤害的时机相同。可以试试看看效果。
注:以上设定对敌人也有效。
作者: 飘过~    时间: 2015-2-16 11:00
RyanBern 发表于 2015-2-16 10:16
第一步,在Game_Battler3里面的def skill_effect找到
self.hp -= self.damage
effective |= self.hp != las ...

{:2_275:}成功了!感谢大触,请收下我的膝盖 __(:3__ |    )|___




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