#========================================================================== 
# 本脚本来自[url]www.66rpg.com[/url],用于任何游戏请保留此信息。别以为加密就可以del哦 
#========================================================================== 
#============================================================================== 
# SP伤害显示 v1.0 
#============================================================================== 
# By 叶子  Date: 12-25-2005 
# “23种战斗特效的公共事件版”作者:SailCat 
# 本脚本同时整合了 SailCat 的“23种战斗特效的公共事件版”脚本 
# 请访问shownews.asp?id=19 学习“23种战斗特效的公共事件版”的使用 
# 感谢 SailCat,为战斗特效创造了无数可能 
#============================================================================== 
# SP伤害颜色设定: 
#搜索 bitmap.font.color.set 
# 显示使用者SP变化的特技: 
# 在SHOW_SP_DAMAGE_SKILLS后面的中括号中填上需要显示使用者SP变化的特技ID,中间以逗号“ , ”隔开 
# 例如要5号,8号,16号特技显示使用者SP变化: 
# SHOW_SP_DAMAGE_SKILLS = [5,8,16] 
class Scene_Battle 
 SHOW_SP_DAMAGE_SKILLS = [] 
end 
#============================================================================== 
# ■ Sprite_Battler 
#------------------------------------------------------------------------------ 
#  战斗显示用活动块。Game_Battler 类的实例监视、 
# 活动块的状态的监视。 
#============================================================================== 
class Sprite_Battler < RPG::Sprite 
 #-------------------------------------------------------------------------- 
 # ● 刷新画面 
 #-------------------------------------------------------------------------- 
 def update 
   super 
   # 战斗者为 nil 的情况下 
   if @battler == nil 
     self.bitmap = nil 
     loop_animation(nil) 
     return 
   end 
   # 文件名和色相与当前情况有差异的情况下 
   if @battler.battler_name != @battler_name or 
      @battler.battler_hue != @battler_hue 
     # 获取、设置位图 
     @battler_name = @battler.battler_name 
     @battler_hue = @battler.battler_hue 
     self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue) 
     @width = bitmap.width 
     @height = bitmap.height 
     self.ox = @width / 2 
     self.oy = @height 
     # 如果是战斗不能或者是隐藏状态就把透明度设置成 0 
     if @battler.dead? or @battler.hidden 
       self.opacity = 0 
     end 
   end 
   # 动画 ID 与当前的情况有差异的情况下 
   if @battler.damage == nil and 
      @battler.state_animation_id != @state_animation_id 
     @state_animation_id = @battler.state_animation_id 
     loop_animation($data_animations[@state_animation_id]) 
   end 
   # 应该被显示的角色的情况下 
   if @battler.is_a?(Game_Actor) and @battler_visible 
     # 不是主状态的时候稍稍降低点透明度 
     if $game_temp.battle_main_phase 
       self.opacity += 3 if self.opacity < 255 
     else 
       self.opacity -= 3 if self.opacity > 207 
     end 
   end 
   # 明灭 
   if @battler.blink 
     blink_on 
   else 
     blink_off 
   end 
   # 不可见的情况下 
   unless @battler_visible 
     # 出现 
     if not @battler.hidden and not @battler.dead? and 
        (@battler.damage == nil or @battler.damage_pop) 
       appear 
       @battler_visible = true 
     end 
   end 
   # 可见的情况下 
   if @battler_visible 
     # 逃跑 
     if @battler.hidden 
       $game_system.se_play($data_system.escape_se) 
       escape 
       @battler_visible = false 
     end 
     # 白色闪烁 
     if @battler.white_flash 
       whiten 
       @battler.white_flash = false 
     end 
     # 动画 
     if @battler.animation_id != 0 
       animation = $data_animations[@battler.animation_id] 
       animation(animation, @battler.animation_hit) 
       @battler.animation_id = 0 
     end 
     # 伤害 
     if @battler.damage_pop 
       damage(@battler.damage, @battler.critical) 
       @battler.damage = nil 
       @battler.critical = false 
       @battler.damage_pop = false 
     end 
     #--------------------------------- 
     # SP伤害 
     if @battler.sp_damage_pop 
       sp_damage(@battler.sp_damage) 
       @battler.sp_damage = nil 
       @battler.sp_damage_pop = false 
     end 
     #--------------------------------- 
      #--------------------------------- 
     # SP伤害-2 
     if @battler.sp2_damage_pop 
       sp2_damage(@battler.sp2_damage) 
       @battler.sp2_damage = nil 
       @battler.sp2_damage_pop = false 
     end 
     #--------------------------------- 
     #--------------------------------- 
     # CP伤害 
     if @battler.cp_damage_pop 
       cp_damage(@battler.cp_damage) 
       @battler.cp_damage = nil 
       @battler.cp_damage_pop = false 
     end 
     #--------------------------------- 
     #--------------------------------- 
     # DP伤害 
     if @battler.dp_damage_pop 
       dp_damage(@battler.dp_damage) 
       @battler.dp_damage = nil 
       @battler.dp_damage_pop = false 
     end 
     #--------------------------------- 
      #--------------------------------- 
     # CP伤害-2 
     if @battler.cp2_damage_pop 
       cp2_damage(@battler.cp2_damage) 
       @battler.cp2_damage = nil 
       @battler.cp2_damage_pop = false 
     end 
     #--------------------------------- 
     #--------------------------------- 
     # DP伤害-2 
     if @battler.dp2_damage_pop 
       dp2_damage(@battler.dp2_damage) 
       @battler.dp2_damage = nil 
       @battler.dp2_damage_pop = false 
     end 
     #--------------------------------- 
     #--------------------------------- 
     # PP伤害 
     if @battler.pp_damage_pop 
       pp_damage(@battler.pp_damage) 
       @battler.pp_damage = nil 
       @battler.pp_damage_pop = false 
     end 
     #--------------------------------- 
     # korapusu 
     if @battler.damage == nil and @battler.dead? 
       if @battler.is_a?(Game_Enemy) 
         $game_system.se_play($data_system.enemy_collapse_se) 
       else 
         $game_system.se_play($data_system.actor_collapse_se) 
       end 
       collapse 
       @battler_visible = false 
     end 
   end 
   # 设置活动块的坐标 
   self.x = @battler.screen_x 
   self.y = @battler.screen_y 
   self.z = @battler.screen_z 
 end 
end 
 
#============================================================================== 
#-- 
# RPG::Sprite 
# 追加了 RPGXP 使用的各种效果处理的精灵的类。 
#-- 
#============================================================================== 
module RPG 
 class Sprite < ::Sprite 
 
   def initialize(viewport = nil) 
     super(viewport) 
     @_whiten_duration = 0 
     @_appear_duration = 0 
     @_escape_duration = 0 
     @_collapse_duration = 0 
     @_damage_duration = 0 
     @_sp2_damage_duration = 0 
     @_sp_damage_duration = 0 
     @_cp_damage_duration = 0 
     @_dp_damage_duration = 0 
     @_cp2_damage_duration = 0 
     @_dp2_damage_duration = 0 
     @_pp_damage_duration = 0 
     @_animation_duration = 0 
     @_blink = false 
   end 
   def dispose 
     dispose_damage 
     dispose_sp2_damage
     dispose_sp_damage 
     dispose_cp_damage
     dispose_dp_damage
     dispose_cp2_damage
     dispose_dp2_damage
     dispose_pp_damage
     dispose_animation 
     dispose_loop_animation 
     super 
   end 
   def pp_damage(value) 
     dispose_pp_damage 
     if value.is_a?(Numeric) 
       damage_string = value.abs.to_s 
     else 
       damage_string = value.to_s 
     end 
     bitmap = Bitmap.new(160+1000, 48) 
     bitmap.font.name = ["黑体", "楷体", "宋体"]
     bitmap.font.size = 20
     bitmap.font.color.set(0, 0, 0) 
     bitmap.draw_text(-1, 12-1, 160+1000, 36, damage_string, 0) 
     bitmap.draw_text(+1, 12-1, 160+1000, 36, damage_string, 0) 
     bitmap.draw_text(-1, 12+1, 160+1000, 36, damage_string, 0) 
     bitmap.draw_text(+1, 12+1, 160+1000, 36, damage_string, 0) 
     if value.is_a?(Numeric) and value < 0 
       bitmap.font.color.set(99, 255, 71) # xx绿  
     else 
      # bitmap.font.color.set(255, 99, 71) # 番茄红 
       bitmap.font.color.set(99, 255, 71) # xx绿
     end 
     bitmap.draw_text(0, 12, 160+1000, 36, damage_string, 0) 
   #  @_sp_damage_sprite = ::Sprite.new(self.viewport) 
     @_pp_damage_sprite = ::Sprite.new(Viewport.new(0, 0, 640, 480)) 
     @_pp_damage_sprite.bitmap = bitmap 
     @_pp_damage_sprite.ox = 80 
     @_pp_damage_sprite.oy = 100 
     @_pp_damage_sprite.x = self.x 
     @_pp_damage_sprite.y = self.y - self.oy / 2 + 64
     @_pp_damage_sprite.z = 9995
     @_pp_damage_sprite.viewport.z = self.viewport.z + 1
     @_pp_damage_duration = 80 
   end 
   def dispose_pp_damage 
     if @_pp_damage_sprite != nil 
       @_pp_damage_sprite.viewport.dispose 
       @_pp_damage_sprite.bitmap.dispose 
       @_pp_damage_sprite.dispose 
       @_pp_damage_sprite = nil 
       @_pp_damage_duration = 0
     end 
   end 
   #-----------------------------------
   def sp_damage(value) 
     dispose_sp_damage 
     if value.is_a?(Numeric) 
       damage_string = value.abs.to_s 
     else 
       damage_string = value.to_s 
     end 
     bitmap = Bitmap.new(160+1000, 48) 
     bitmap.font.name = ["黑体", "楷体", "宋体"]
     bitmap.font.size = 20
     bitmap.font.color.set(0, 0, 0) 
     bitmap.draw_text(-1, 12-1, 160+1000, 36, damage_string, 0) 
     bitmap.draw_text(+1, 12-1, 160+1000, 36, damage_string, 0) 
     bitmap.draw_text(-1, 12+1, 160+1000, 36, damage_string, 0) 
     bitmap.draw_text(+1, 12+1, 160+1000, 36, damage_string, 0) 
     if value.is_a?(Numeric) and value < 0 
       bitmap.font.color.set(255, 99, 71) # 番茄红 
     else 
      # bitmap.font.color.set(255, 99, 71) # 番茄红 
       bitmap.font.color.set(0, 0, 205) # 适中的蓝色 
     end 
     bitmap.draw_text(0, 12, 160+1000, 36, damage_string, 0) 
   #  @_sp_damage_sprite = ::Sprite.new(self.viewport) 
     @_sp_damage_sprite = ::Sprite.new(Viewport.new(0, 0, 640, 480)) 
     @_sp_damage_sprite.bitmap = bitmap 
     @_sp_damage_sprite.ox = 80 
     @_sp_damage_sprite.oy = 100 
     @_sp_damage_sprite.x = self.x 
     @_sp_damage_sprite.y = self.y - self.oy / 2 +48
     @_sp_damage_sprite.z = 9998
     @_sp_damage_sprite.viewport.z = self.viewport.z + 1
     @_sp_damage_duration = 72 
   end 
   def dispose_sp_damage 
     if @_sp_damage_sprite != nil 
       @_sp_damage_sprite.viewport.dispose 
       @_sp_damage_sprite.bitmap.dispose 
       @_sp_damage_sprite.dispose 
       @_sp_damage_sprite = nil 
       @_sp_damage_duration = 0
     end 
   end 
   #-----------------------------------
   def sp2_damage(value) 
     dispose_sp2_damage 
     if value.is_a?(Numeric) 
       damage_string = value.abs.to_s 
     else 
       damage_string = value.to_s 
     end 
     bitmap = Bitmap.new(160+1000, 48) 
     bitmap.font.name = ["黑体", "楷体", "宋体"]
     bitmap.font.size = 20
     bitmap.font.color.set(0, 0, 0) 
     bitmap.draw_text(-1, 12-1, 160+1000, 36, damage_string, 0) 
     bitmap.draw_text(+1, 12-1, 160+1000, 36, damage_string, 0) 
     bitmap.draw_text(-1, 12+1, 160+1000, 36, damage_string, 0) 
     bitmap.draw_text(+1, 12+1, 160+1000, 36, damage_string, 0) 
     if value.is_a?(Numeric) and value < 0 
       bitmap.font.color.set(255, 255, 128) 
     else 
       bitmap.font.color.set(255, 255, 128)
     end 
     bitmap.draw_text(0, 12, 160+1000, 36, damage_string, 0) 
   #  @_sp_damage_sprite = ::Sprite.new(self.viewport) 
     @_sp2_damage_sprite = RPG::Sprite.new(Viewport.new(0, 0, 640, 480)) #::Sprite.new(Viewport.new(0, 0, 640, 480)) 
     @_sp2_damage_sprite.bitmap = bitmap 
     @_sp2_damage_sprite.ox = 80 
     @_sp2_damage_sprite.oy = 100 
     @_sp2_damage_sprite.x = self.x-((value.to_s.size*6-114)/2).round
     @_sp2_damage_sprite.y = self.y - self.oy / 2 +56
     @_sp2_damage_sprite.z = 9900
     @_sp2_damage_sprite.viewport.z = self.viewport.z + 1
     @_sp2_damage_duration = 108 
   end 
   def dispose_sp2_damage 
     if @_sp2_damage_sprite != nil 
       @_sp2_damage_sprite.viewport.dispose 
       @_sp2_damage_sprite.bitmap.dispose 
       @_sp2_damage_sprite.dispose 
       @_sp2_damage_sprite = nil 
       @_sp2_damage_duration = 0
     end 
   end 
    #-----------------------------------
   def cp2_damage(value) 
     dispose_cp2_damage 
     if value.is_a?(Numeric) 
       damage_string = value.abs.to_s 
     else 
       damage_string = value.to_s 
     end 
     bitmap = Bitmap.new(160+1000, 48) 
     bitmap.font.name = ["黑体", "楷体", "宋体"]
     bitmap.font.size = 20
     bitmap.font.color.set(0, 0, 0) 
     bitmap.draw_text(-1, 12-1, 160+1000, 36, damage_string, 0) 
     bitmap.draw_text(+1, 12-1, 160+1000, 36, damage_string, 0) 
     bitmap.draw_text(-1, 12+1, 160+1000, 36, damage_string, 0) 
     bitmap.draw_text(+1, 12+1, 160+1000, 36, damage_string, 0) 
     if value.is_a?(Numeric) and value < 0 
       bitmap.font.color.set(255, 255, 120)
     else 
       bitmap.font.color.set(255, 255, 120)
     end 
     bitmap.draw_text(0, 12, 160+1000, 36, damage_string, 0) 
   #  @_sp_damage_sprite = ::Sprite.new(self.viewport) 
     @_cp2_damage_sprite = RPG::Sprite.new(Viewport.new(0, 0, 640, 480)) #::Sprite.new(Viewport.new(0, 0, 640, 480)) 
     @_cp2_damage_sprite.bitmap = bitmap 
     @_cp2_damage_sprite.ox = 80 
     @_cp2_damage_sprite.oy = 100 
     @_cp2_damage_sprite.x = self.x-((value.to_s.size*6-130)/2).round
     @_cp2_damage_sprite.y = self.y - self.oy / 2 +64
     @_cp2_damage_sprite.z = 9901
     @_cp2_damage_sprite.viewport.z = self.viewport.z + 1
     @_cp2_damage_duration = 40
   end 
   def dispose_cp2_damage 
     if @_cp2_damage_sprite != nil 
       @_cp2_damage_sprite.viewport.dispose 
       @_cp2_damage_sprite.bitmap.dispose 
       @_cp2_damage_sprite.dispose 
       @_cp2_damage_sprite = nil 
       @_cp2_damage_duration = 0
     end 
   end 
   def cp_damage(value) 
     dispose_cp_damage 
     if value.is_a?(Numeric) 
       damage_string = value.abs.to_s 
     else 
       damage_string = value.to_s 
     end 
     bitmap = Bitmap.new(160+1000, 48) 
     bitmap.font.name = ["黑体", "楷体", "宋体"]
     bitmap.font.size = 20
     bitmap.font.color.set(0, 0, 0) 
     bitmap.draw_text(-1, 12-1, 160+1000, 36, damage_string, 0) 
     bitmap.draw_text(+1, 12-1, 160+1000, 36, damage_string, 0) 
     bitmap.draw_text(-1, 12+1, 160+1000, 36, damage_string, 0) 
     bitmap.draw_text(+1, 12+1, 160+1000, 36, damage_string, 0) 
     if value.is_a?(Numeric) and value < 0 
       #bitmap.font.color.set(255, 99, 71) # 番茄红 
       bitmap.font.color.set(255, 255, 128)
     else 
       bitmap.font.color.set(255, 255, 128)
       #bitmap.font.color.set(255, 99, 71) # 番茄红 
       #bitmap.font.color.set(0, 0, 205) # 适中的蓝色 
     end 
     bitmap.draw_text(0, 12, 160+1000, 36, damage_string, 0) 
    # @_cp_damage_sprite = ::Sprite.new(self.viewport) 
     @_cp_damage_sprite = ::Sprite.new(Viewport.new(0, 0, 640, 480)) 
     @_cp_damage_sprite.bitmap = bitmap 
     @_cp_damage_sprite.ox = 80 
     @_cp_damage_sprite.oy = 100 
     @_cp_damage_sprite.x = self.x 
     @_cp_damage_sprite.y = self.y - self.oy / 2 +140
     @_cp_damage_sprite.z = 9997
     @_cp_damage_sprite.viewport.z = self.viewport.z + 1 
     @_cp_damage_duration = 112
   end 
   def dispose_cp_damage 
     if @_cp_damage_sprite != nil 
       @_cp_damage_sprite.viewport.dispose 
       @_cp_damage_sprite.bitmap.dispose 
       @_cp_damage_sprite.dispose 
       @_cp_damage_sprite = nil 
       @_cp_damage_duration = 0 
     end 
   end
    #-----------------------------------
   def dp2_damage(value) 
     dispose_dp2_damage 
     if value.is_a?(Numeric) 
       damage_string = value.abs.to_s 
     else 
       damage_string = value.to_s 
     end 
     bitmap = Bitmap.new(160+1000, 48) 
     bitmap.font.name = ["黑体", "楷体", "宋体"]
     bitmap.font.size = 20
     bitmap.font.color.set(0, 0, 0) 
     bitmap.draw_text(-1, 12-1, 160+1000, 36, damage_string, 0) 
     bitmap.draw_text(+1, 12-1, 160+1000, 36, damage_string, 0) 
     bitmap.draw_text(-1, 12+1, 160+1000, 36, damage_string, 0) 
     bitmap.draw_text(+1, 12+1, 160+1000, 36, damage_string, 0) 
     if value.is_a?(Numeric) and value < 0 
       bitmap.font.color.set(255, 99, 71)
     else 
       bitmap.font.color.set(255, 99, 71)
     end 
     bitmap.draw_text(0, 12, 160+1000, 36, damage_string, 0) 
   #  @_sp_damage_sprite = ::Sprite.new(self.viewport) 
     @_dp2_damage_sprite = RPG::Sprite.new(Viewport.new(0, 0, 640, 480)) #::Sprite.new(Viewport.new(0, 0, 640, 480)) 
     @_dp2_damage_sprite.bitmap = bitmap 
     @_dp2_damage_sprite.ox = 80 
     @_dp2_damage_sprite.oy = 100 
     @_dp2_damage_sprite.x = self.x-((value.to_s.size*6-138)/2).round
     @_dp2_damage_sprite.y = self.y - self.oy / 2 +36
     @_dp2_damage_sprite.z = 9902
     @_dp2_damage_sprite.viewport.z = self.viewport.z + 1
     @_dp2_damage_duration = 40 
   end 
   def dispose_dp2_damage 
     if @_dp2_damage_sprite != nil 
       @_dp2_damage_sprite.viewport.dispose 
       @_dp2_damage_sprite.bitmap.dispose 
       @_dp2_damage_sprite.dispose 
       @_dp2_damage_sprite = nil 
       @_dp2_damage_duration = 0
     end 
   end 
   def dp_damage(value) 
     dispose_dp_damage 
     if value.is_a?(Numeric) 
       damage_string = value.abs.to_s 
     else 
       damage_string = value.to_s 
     end 
     bitmap = Bitmap.new(160+1000, 48) 
     bitmap.font.name = ["黑体", "楷体", "宋体"]
     bitmap.font.size = 20
     bitmap.font.color.set(0, 0, 0) 
     bitmap.draw_text(-1, 12-1, 160+1000, 36, damage_string, 0) 
     bitmap.draw_text(+1, 12-1, 160+1000, 36, damage_string, 0) 
     bitmap.draw_text(-1, 12+1, 160+1000, 36, damage_string, 0) 
     bitmap.draw_text(+1, 12+1, 160+1000, 36, damage_string, 0) 
     if value.is_a?(Numeric) and value < 0 
       bitmap.font.color.set(255, 99, 71) # 番茄红 
       #bitmap.font.color.set(255, 255, 128)
     else 
       #bitmap.font.color.set(255, 255, 128)
       bitmap.font.color.set(255, 99, 71) # 番茄红 
       #bitmap.font.color.set(0, 0, 205) # 适中的蓝色 
     end 
     bitmap.draw_text(0, 12, 160+1000, 36, damage_string, 0) 
     #@_dp_damage_sprite = ::Sprite.new(self.viewport) 
     @_dp_damage_sprite = ::Sprite.new(Viewport.new(0, 0, 640, 480)) 
     @_dp_damage_sprite.bitmap = bitmap 
     @_dp_damage_sprite.ox = 80 
     @_dp_damage_sprite.oy = 100 
     @_dp_damage_sprite.x = self.x 
     @_dp_damage_sprite.y = self.y - self.oy / 2 +84
     @_dp_damage_sprite.z = 9999 
     @_dp_damage_sprite.viewport.z = self.viewport.z + 1 
     @_dp_damage_duration = 88 
   end 
   def dispose_dp_damage 
     if @_dp_damage_sprite != nil 
       @_dp_damage_sprite.viewport.dispose 
       @_dp_damage_sprite.bitmap.dispose 
       @_dp_damage_sprite.dispose 
       @_dp_damage_sprite = nil 
       @_dp_damage_duration = 0 
     end 
   end 
   def effect? 
     @_whiten_duration > 0 or 
     @_appear_duration > 0 or 
     @_escape_duration > 0 or 
     @_collapse_duration > 0 or 
     @_damage_duration > 0 or 
     @_sp2_damage_duration > 0 or
     @_sp_damage_duration > 0 or 
     @_cp_damage_duration > 0 or
     @_dp_damage_duration > 0 or
     @_cp2_damage_duration > 0 or
     @_dp2_damage_duration > 0 or
     @_pp_damage_duration > 0 or
     @_animation_duration > 0 
   end 
   def update 
     super 
     if @_whiten_duration > 0 
       @_whiten_duration -= 1 
       self.color.alpha = 128 - (16 - @_whiten_duration) * 10 
     end 
     if @_appear_duration > 0 
       @_appear_duration -= 1 
       self.opacity = (16 - @_appear_duration) * 16 
     end 
     if @_escape_duration > 0 
       @_escape_duration -= 1 
       self.opacity = 256 - (32 - @_escape_duration) * 10 
     end 
     if @_collapse_duration > 0 
       @_collapse_duration -= 1 
       self.opacity = 256 - (48 - @_collapse_duration) * 6 
     end 
     if @_damage_duration > 0 
       @_damage_duration -= 1 
       case @_damage_duration 
       when 38..39 
         @_damage_sprite.y -= 4 
       when 36..37 
         @_damage_sprite.y -= 2 
       when 34..35 
         @_damage_sprite.y += 2 
       when 28..33 
         @_damage_sprite.y += 4 
       end 
       @_damage_sprite.opacity = 256 - (12 - @_damage_duration) * 32 
       if @_damage_duration == 0 
         dispose_damage 
       end 
     end 
     #--------------------------------- 
     if @_sp_damage_duration > 0 
       @_sp_damage_duration -= 1 
       case @_sp_damage_duration 
       # 这里把SP伤害数值的显示设成往上飘了 
       # 如要往下飘,把@_sp_damage_sprite.y后的-换成+ 
       when 0..60 
         @_sp_damage_sprite.y -= 1 
       end 
       @_sp_damage_sprite.opacity = 256 - (40 - @_sp_damage_duration) * 7 
       if @_sp_damage_duration == 0 
         dispose_sp_damage 
       end 
     end 
     #--------------------------------- 
      #--------------------------------- 
     if @_sp2_damage_duration > 0 
       @_sp2_damage_duration -= 1 
     #  case @_sp2_damage_duration 
       # 这里把SP伤害数值的显示设成往上飘了 
       # 如要往下飘,把@_sp_damage_sprite.y后的-换成+ 
      # when 0..60 
        # @_sp2_damage_sprite.y -= 1 
       #end
       @_sp2_damage_sprite.blink_on
       @_sp2_damage_sprite.opacity = 256 - (40 - @_sp2_damage_duration) * 7 
       if @_sp2_damage_duration == 0 
         dispose_sp2_damage 
       end 
     end 
     #--------------------------------- 
      #--------------------------------- 
     if @_cp2_damage_duration > 0 
       @_cp2_damage_duration -= 1 
      case @_cp2_damage_duration 
       when 38..39 
         @_cp2_damage_sprite.y -= 4 
       when 36..37 
         @_cp2_damage_sprite.y -= 2 
       when 34..35 
         @_cp2_damage_sprite.y += 2 
       when 28..33 
         @_cp2_damage_sprite.y += 4 
       end 
       @_cp2_damage_sprite.opacity = 256 - (12 - @_cp2_damage_duration) * 32 
       if @_cp2_damage_duration == 0 
         dispose_cp2_damage 
       end 
     end 
     #--------------------------------- 
      #--------------------------------- 
     if @_dp2_damage_duration > 0 
       @_dp2_damage_duration -= 1 
      case @_dp2_damage_duration 
       when 38..39 
         @_dp2_damage_sprite.y -= 4 
       when 36..37 
         @_dp2_damage_sprite.y -= 2 
       when 34..35 
         @_dp2_damage_sprite.y += 2 
       when 28..33 
         @_dp2_damage_sprite.y += 4 
       end 
       @_dp2_damage_sprite.opacity = 256 - (12 - @_dp2_damage_duration) * 32
       if @_dp2_damage_duration == 0 
         dispose_dp2_damage 
       end 
     end 
     #--------------------------------- 
     #--------------------------------- 
     if @_cp_damage_duration > 0 
       @_cp_damage_duration -= 1 
       case @_cp_damage_duration 
       when 0..99
         @_cp_damage_duration -= 5
       when 110..111 
         @_cp_damage_sprite.y -= 4 
       when 108..109 
         @_cp_damage_sprite.y -= 2 
       when 106..107 
         @_cp_damage_sprite.y += 2 
       when 100..105 
         @_cp_damage_sprite.y += 4 
       end 
       @_cp_damage_sprite.opacity = 256 - (12 - @_cp_damage_duration) * 32 
       if @_cp_damage_duration == 0 
         dispose_cp_damage 
       end 
     end 
     #--------------------------------- 
     #--------------------------------- 
     if @_dp_damage_duration > 0 
       @_dp_damage_duration -= 1 
       case @_dp_damage_duration 
       # 这里把SP伤害数值的显示设成往上飘了 
       # 如要往下飘,把@_sp_damage_sprite.y后的-换成+ 
       when 0..132
         @_dp_damage_sprite.y -= 1 
        # @_dp_damage_sprite.x -= 1 
       end 
       @_dp_damage_sprite.opacity = 256 - (40 - @_dp_damage_duration) * 7 
       if @_dp_damage_duration == 0 
         dispose_dp_damage 
       end 
     end 
     #--------------------------------- 
      #--------------------------------- 
    if @_pp_damage_duration > 0 
       @_pp_damage_duration -= 1 
       case @_pp_damage_duration 
       when 0..67
         @_pp_damage_sprite.y -= 1
       when 78..79 
         @_pp_damage_sprite.y -= 4 
       when 76..77 
         @_pp_damage_sprite.y -= 2 
       when 74..75 
         @_pp_damage_sprite.y += 2 
       when 68..73 
         @_pp_damage_sprite.y += 4 
       end 
       @_pp_damage_sprite.opacity = 256 - (12 - @_pp_damage_duration) * 32 
       if @_pp_damage_duration == 0 
         dispose_pp_damage 
       end 
     end 
     #--------------------------------- 
     if @_animation != nil and (Graphics.frame_count % 2 == 0) 
       @_animation_duration -= 1 
       update_animation 
     end 
     if @_loop_animation != nil and (Graphics.frame_count % 2 == 0) 
       update_loop_animation 
       @_loop_animation_index += 1 
       @_loop_animation_index %= @_loop_animation.frame_max 
     end 
     if @_blink 
       @_blink_count = (@_blink_count + 1) % 32 
       if @_blink_count < 16 
         alpha = (16 - @_blink_count) * 6 
       else 
         alpha = (@_blink_count - 16) * 6 
       end 
       self.color.set(255, 255, 255, alpha) 
     end 
     @@_animations.clear 
   end 
 end 
end 
class Game_Battler 
 #-------------------------------------------------------------------------- 
 # ● 定义实例变量 
 #-------------------------------------------------------------------------- 
 attr_reader   :last_hp                  # 受效前的HP 
 attr_accessor :sp_damage                   # SP伤害值 
 attr_accessor :last_sp                            # 受效前的SP 
 attr_accessor :sp_damage_pop               # 显示SP伤害标志 
 attr_accessor :cp_damage 
 attr_accessor :cp_damage_pop 
 attr_accessor :dp_damage 
 attr_accessor :dp_damage_pop 
 attr_accessor :cp2_damage 
 attr_accessor :cp2_damage_pop 
 attr_accessor :dp2_damage 
 attr_accessor :dp2_damage_pop 
 attr_accessor :pp_damage 
 attr_accessor :pp_damage_pop 
 attr_accessor :sp2_damage 
 attr_accessor :sp2_damage_pop 
end 
class Scene_Battle 
 #-------------------------------------------------------------------------- 
 # ● 定义实例变量 
 #-------------------------------------------------------------------------- 
 attr_accessor :target_battlers 
 attr_accessor :active_battler 
 attr_reader :skill 
end