| 本帖最后由 KB.Driver 于 2019-1-24 18:43 编辑 
 
 module CLD99  module Dracula     DRAIN_SKILL_ID = 23    # 领悟了此ID技能后,所有攻击带吸血     DRAIN_RATE = 0.1    # 因上面的情况允许吸血时的比例   endend class Game_Battler  #--------------------------------------------------------------------------  # ● [追加]是否所有攻击带吸血  #--------------------------------------------------------------------------  def dracula?    @skills.include?(CLD99::Dracula::DRAIN_SKILL_ID)  end  #--------------------------------------------------------------------------  # ● [别名修改]计算伤害  #--------------------------------------------------------------------------  alias :make_damage_value_for_dracula :make_damage_value  def make_damage_value(user, item)    make_damage_value_for_dracula(user, item)    @result.make_dracula(item) if user.actor? && user.dracula?  endend class Game_ActionResult  attr_reader :dracula  #--------------------------------------------------------------------------  # ● [追加]计算吸血  #--------------------------------------------------------------------------  def make_dracula(item)    return if item.damage.drain? # 自带吸血的技能不参与    return if @hp_damage < 0     # 回复类技能不参与    @hp_drain = (@hp_damage * CLD99::Dracula::DRAIN_RATE).to_i    @dracula = true  end    #--------------------------------------------------------------------------  # ● [别名修改]获取 HP 伤害的文字  #--------------------------------------------------------------------------  alias hp_damage_text_for_dracula hp_damage_text  def hp_damage_text    if @dracula      fmt = "%s造成了%s伤害,吸收了%s%s"      return sprintf(fmt, @battler.name, @hp_damage, @hp_drain, Vocab.hp)    end    hp_damage_text_for_dracula  endend class Window_BattleLog  #--------------------------------------------------------------------------  # ● 显示 HP 伤害  #--------------------------------------------------------------------------  alias :display_hp_damage_for_dracula :display_hp_damage  def display_hp_damage(target, item)    target.perform_damage_effect if target.result.dracula    display_hp_damage_for_dracula(target, item)  endend
module CLD99 
  module Dracula 
  
    DRAIN_SKILL_ID = 23 
    # 领悟了此ID技能后,所有攻击带吸血 
  
    DRAIN_RATE = 0.1 
    # 因上面的情况允许吸血时的比例 
  
  end 
end 
  
class Game_Battler 
  #-------------------------------------------------------------------------- 
  # ● [追加]是否所有攻击带吸血 
  #-------------------------------------------------------------------------- 
  def dracula? 
    @skills.include?(CLD99::Dracula::DRAIN_SKILL_ID) 
  end 
  #-------------------------------------------------------------------------- 
  # ● [别名修改]计算伤害 
  #-------------------------------------------------------------------------- 
  alias :make_damage_value_for_dracula :make_damage_value 
  def make_damage_value(user, item) 
    make_damage_value_for_dracula(user, item) 
    @result.make_dracula(item) if user.actor? && user.dracula? 
  end 
end 
  
class Game_ActionResult 
  attr_reader :dracula 
  #-------------------------------------------------------------------------- 
  # ● [追加]计算吸血 
  #-------------------------------------------------------------------------- 
  def make_dracula(item) 
    return if item.damage.drain? # 自带吸血的技能不参与 
    return if @hp_damage < 0     # 回复类技能不参与 
    @hp_drain = (@hp_damage * CLD99::Dracula::DRAIN_RATE).to_i 
    @dracula = true 
  end   
  #-------------------------------------------------------------------------- 
  # ● [别名修改]获取 HP 伤害的文字 
  #-------------------------------------------------------------------------- 
  alias hp_damage_text_for_dracula hp_damage_text 
  def hp_damage_text 
    if @dracula 
      fmt = "%s造成了%s伤害,吸收了%s%s" 
      return sprintf(fmt, @battler.name, @hp_damage, @hp_drain, Vocab.hp) 
    end 
    hp_damage_text_for_dracula 
  end 
end 
  
class Window_BattleLog 
  #-------------------------------------------------------------------------- 
  # ● 显示 HP 伤害 
  #-------------------------------------------------------------------------- 
  alias :display_hp_damage_for_dracula :display_hp_damage 
  def display_hp_damage(target, item) 
    target.perform_damage_effect if target.result.dracula 
    display_hp_damage_for_dracula(target, item) 
  end 
end 
 新建工程运行通过。
 |