| 
抗性降到0以下,也就是越打血越多
x
加入我们,或者,欢迎回来。您需要 登录 才可以下载或查看,没有帐号?注册会员  这种抖m行为不符合大众的价值观,于是就被禁止了
 
 =begin伤害吸收插件by 炽天裁决挨打回血,天子快乐插件使用说明在备注栏填入<dam_absorb: 属性:抗性数值(,+)>例如<dam_absorb: 3:-0.5,1:0.2>属性中 -1 代表普通攻击,0,代表无属性填入低于 -1 的值可以适用于所有伤害游戏中,持有此装备/状态/职业/角色ID的角色会用备注中的抗性结算(会覆盖掉原有的设定)所有抗性会在全部抗性中取最优(这一点和预设是相反的,不然无法实现效果)=end class RPG::BaseItem   def dam_absorb    if @dam_absorb.nil?          @dam_absorb = []          if @note =~ /<dam_absorb:[ ](.*)>/i            for x in $1.split(",")        a = []        for y in x.split(":")          a += [y.to_f]        end                  @dam_absorb += [a]            end          end    end    @dam_absorb  end endclass Game_Battler  alias absorb_element_rate element_rate  def element_rate(i)    r = e_absorb_value(i)    er = absorb_element_rate(i)    if r != nil      er = r if r < er    end     return er  end   def item_element_rate(user, item)    r = nil    a = element_absorb    a.each{|x|    if x[0] < -1       r = x[1] if r == nil      r = x[1] if x[1] <= r    end    }    if item.damage.element_id < 0      if user.atk_elements.empty?        er = element_rate(-1)      else        er = elements_max_rate(user.atk_elements)      end    else      er = element_rate(item.damage.element_id)    end    if r != nil      er = r if r < er    end     return er  end   def elements_max_rate(elements)    r = elements.inject([]) {|r, i| r.push(element_rate(i)) }.min    r = 1.0 if r == nil    return r  end   def element_absorb    return []  end  def e_absorb_value(id)    r = nil    absorb = element_absorb    absorb.each{|i|      if i[0] == id        r = i[1] if r == nil        r = i[1] if i[1] < r      end      }    return r  end endclass Game_Actor < Game_Battler  def element_absorb    absorb = self.class.dam_absorb + actor.dam_absorb    equips.each do |eq|          absorb += eq.dam_absorb unless eq.nil?    end    states.each do |st|          absorb += st.dam_absorb    end    absorb  = absorb .uniq    return absorb   endend class Game_Enemy < Game_Battler  def element_absorb    absorb = enemy.dam_absorb    states.each do |st|          absorb += st.dam_absorb    end    absorb  = absorb .uniq    return absorb   endend
=begin 
伤害吸收插件 
by 炽天裁决 
挨打回血,天子快乐插件 
使用说明 
在备注栏填入<dam_absorb: 属性:抗性数值(,+)> 
例如<dam_absorb: 3:-0.5,1:0.2> 
属性中 -1 代表普通攻击,0,代表无属性 
填入低于 -1 的值可以适用于所有伤害 
游戏中,持有此装备/状态/职业/角色ID的角色会用备注中的抗性结算(会覆盖掉原有的设定) 
所有抗性会在全部抗性中取最优(这一点和预设是相反的,不然无法实现效果) 
=end 
  
class RPG::BaseItem 
  
  def dam_absorb 
    if @dam_absorb.nil? 
          @dam_absorb = [] 
          if @note =~ /<dam_absorb:[ ](.*)>/i 
            for x in $1.split(",") 
        a = [] 
        for y in x.split(":") 
          a += [y.to_f] 
        end 
                  @dam_absorb += [a] 
            end 
          end 
    end 
    @dam_absorb 
  end 
  
end 
class Game_Battler 
  alias absorb_element_rate element_rate 
  def element_rate(i) 
    r = e_absorb_value(i) 
    er = absorb_element_rate(i) 
    if r != nil 
      er = r if r < er 
    end 
  
    return er 
  end 
  
  def item_element_rate(user, item) 
    r = nil 
    a = element_absorb 
    a.each{|x| 
    if x[0] < -1  
      r = x[1] if r == nil 
      r = x[1] if x[1] <= r 
    end 
    } 
    if item.damage.element_id < 0 
      if user.atk_elements.empty? 
        er = element_rate(-1) 
      else 
        er = elements_max_rate(user.atk_elements) 
      end 
    else 
      er = element_rate(item.damage.element_id) 
    end 
    if r != nil 
      er = r if r < er 
    end 
  
    return er 
  end 
  
  def elements_max_rate(elements) 
    r = elements.inject([]) {|r, i| r.push(element_rate(i)) }.min 
    r = 1.0 if r == nil 
    return r 
  end 
  
  def element_absorb 
    return [] 
  end 
  def e_absorb_value(id) 
    r = nil 
    absorb = element_absorb 
    absorb.each{|i| 
      if i[0] == id 
        r = i[1] if r == nil 
        r = i[1] if i[1] < r 
      end 
      } 
    return r 
  end 
  
end 
class Game_Actor < Game_Battler 
  def element_absorb 
    absorb = self.class.dam_absorb + actor.dam_absorb 
    equips.each do |eq| 
          absorb += eq.dam_absorb unless eq.nil? 
    end 
    states.each do |st| 
          absorb += st.dam_absorb 
    end 
    absorb  = absorb .uniq 
    return absorb  
  end 
end 
  
class Game_Enemy < Game_Battler 
  def element_absorb 
    absorb = enemy.dam_absorb 
    states.each do |st| 
          absorb += st.dam_absorb 
    end 
    absorb  = absorb .uniq 
    return absorb  
  end 
end 
 无技术含量,权当是记录生活吧
 
 
 
 
 
 
 |