Project1

标题: 请问如何让某个敌人免疫普通攻击呢? [打印本页]

作者: cryhades    时间: 2017-2-16 12:14
标题: 请问如何让某个敌人免疫普通攻击呢?
想让某个敌人免疫普通攻击,但普通攻击的属性必须是【普通攻击】,不能是自己设定的其他属性
因为需要用到普通攻击附带异常状态的特性,这特性只适用于【普通攻击】这个属性
而在角色的特性-抗性一栏中是没有【普通攻击】这个属性的,所以没办法直接设定【普通攻击】的抗性
求大神出现帮帮我吧{:2_264:}
作者: 百里_飞柳    时间: 2017-2-16 14:10
本帖最后由 百里_飞柳 于 2017-2-27 09:48 编辑

有点奇怪的实现,不过扩展性是有了

修改:增强下兼容性
  1. #==============================================================================
  2. # ■ 状态免疫技能伤害  by 老鹰
  3. #------------------------------------------------------------------------------
  4. #  简单的利用状态来免疫指定技能的伤害
  5. #  当被攻击者附加了对应状态,免疫状态对应数组中的所有id号技能的伤害
  6. #    注:直接变更最终伤害为0,并不影响其他判定
  7. #==============================================================================
  8. module EAGLE
  9.   State_skills = {
  10.   #状态的id号 => 被该状态所影响的技能的id号的数组
  11.     1 => [1],
  12.     22 => [1,3,4,5]  #当要扩展新行时,记得不要忘记加上英语逗号
  13.   }
  14. end
  15. class Game_Battler < Game_BattlerBase
  16.   alias eagle_state_skill_make_damage_value make_damage_value
  17.   def make_damage_value(user, item)
  18.     if with_state_and_skill_id?(item.id)
  19.       value = 0
  20.       @result.make_damage(value.to_i, item)
  21.     else
  22.       eagle_state_skill_make_damage_value(user, item)
  23.     end
  24.   end

  25.   def with_state_and_skill_id?(id)
  26.     EAGLE::State_skills.each_pair do |key, value|
  27.       next unless self.state?(key)
  28.       return true if value.include?(id)
  29.     end
  30.     return false
  31.   end
  32. end
复制代码

作者: cryhades    时间: 2017-2-16 14:26
百里_飞柳 发表于 2017-2-16 14:10
有点奇怪的实现,不过扩展性是有了

感谢老鹰大大!!{:2_249:}




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