| 
 
| 赞 | 3 |  
| VIP | 0 |  
| 好人卡 | 24 |  
| 积分 | 0 |  
| 经验 | 15951 |  
| 最后登录 | 2016-1-17 |  
| 在线时间 | 276 小时 |  
 Lv1.梦旅人 
	梦石0 星屑49 在线时间276 小时注册时间2011-6-5帖子133 | 
| lirn 发表于 2013-8-11 16:58 ![]() 是不是可以再改一个?如果HP值比较高,MP比较低的游戏,那么魔法盾会几下就被耗光了。能不能设置1点MP抵 ...
ok,小小地改下~
 复制代码class Game_Battler < Game_BattlerBase
  
  STATE_ID = 15   #魔法盾状态的id号
  MP_RATE  = 0.4  #魔法盾吸收伤害的比率0.4就是10点伤害hp6点mp4点
  MP_DAMAGE_RATE = 2 
  VARIABLE_ID = 3      #1点mp抵消(3号变量的值+2)点伤害,如果不需要变量功能,就把这个值设为0或负数
  #--------------------------------------------------------------------------
  # ● 计算伤害
  #--------------------------------------------------------------------------
  def make_damage_value(user, item)
    value = item.damage.eval(user, self, $game_variables)
    value *= item_element_rate(user, item)
    value *= pdr if item.physical?
    value *= mdr if item.magical?
    value *= rec if item.damage.recover?
    value = apply_critical(value) if @result.critical
    value = apply_variance(value, item.damage.variance)
    value = apply_guard(value)
    if item.damage.to_hp? and self.state?(STATE_ID)
      mrate = MP_DAMAGE_RATE 
      mrate += $game_variables[VARIABLE_ID] if $game_variables[VARIABLE_ID]
      mp_value = [(value * MP_RATE/mrate).to_i  , self.mp].min
      value -= mp_value * mrate
      self.mp -= mp_value
    end
    @result.make_damage(value.to_i, item)
  end
end
 | 
 评分
查看全部评分
 |