Project1

标题: 战斗图是半透明的 [打印本页]

作者: 天使怪盗    时间: 2010-6-29 12:59
标题: 战斗图是半透明的
本帖最后由 天使怪盗 于 2010-6-29 13:53 编辑
  1. #==============================================================================
  2. # ■ 全动画战斗系统(修改加强再加强版)
  3. #------------------------------------------------------------------------------
  4. #  By whbm
  5. #   应用脚本 彩虹神剑 By 66
  6. #==============================================================================
  7.     $fangyu = 0
  8. #新加部分 改进基础 叮当猫的全动画脚本
  9. #================
  10. module RPG
  11.   class Sprite < ::Sprite
  12.     @@_animations = []
  13.     @@_reference_count = {}
  14.    
  15.     def dispose
  16.       dispose_damage
  17.       dispose_animation
  18.       dispose_loop_animation
  19.        dispose_loop_animation1
  20.       super
  21.     end
  22.    
  23.    
  24.   
  25.    
  26.     def loop_animation1(animation)
  27.       return if animation == @_loop_animation1
  28.       dispose_loop_animation1
  29.       @_loop_animation1 = animation
  30.       return if @_loop_animation1 == nil
  31.       @_loop_animation1_index = 0
  32.       animation_name = @_loop_animation1.animation_name
  33.       animation_hue = @_loop_animation1.animation_hue
  34.       bitmap = RPG::Cache.animation(animation_name, animation_hue)
  35.       if @@_reference_count.include?(bitmap)
  36.         @@_reference_count[bitmap] += 1
  37.       else
  38.         @@_reference_count[bitmap] = 1
  39.       end
  40.       @_loop_animation1_sprites = []
  41.       for i in 0..15
  42.         sprite = ::Sprite.new(self.viewport)
  43.         sprite.bitmap = bitmap
  44.         sprite.visible = false
  45.         @_loop_animation1_sprites.push(sprite)
  46.       end
  47.       update_loop_animation1
  48.     end
  49.    
  50.    
  51.    

  52.     def dispose_loop_animation1
  53.       if @_loop_animation1_sprites != nil
  54.         sprite = @_loop_animation1_sprites[0]
  55.         if sprite != nil
  56.           @@_reference_count[sprite.bitmap] -= 1
  57.           if @@_reference_count[sprite.bitmap] == 0
  58.             sprite.bitmap.dispose
  59.           end
  60.         end
  61.         for sprite in @_loop_animation1_sprites
  62.           sprite.dispose
  63.         end
  64.         @_loop_animation1_sprites = nil
  65.         @_loop_animation1 = nil
  66.       end
  67.     end
  68.    
  69.    
  70.    
  71.    
  72.     def update_loop_animation1
  73.       frame_index = @_loop_animation1_index
  74.       cell_data = @_loop_animation1.frames[frame_index].cell_data
  75.       position = @_loop_animation1.position
  76.       animation_set_sprites(@_loop_animation1_sprites, cell_data, position)
  77.       for timing in @_loop_animation1.timings
  78.         if timing.frame == frame_index
  79.           animation_process_timing(timing, true)
  80.         end
  81.       end
  82.     end
  83.    
  84.   end
  85. end
  86. #===============
  87. #新加部分

  88. class Spriteset_Battle
  89.   #--------------------------------------------------------------------------
  90.   # ● 初始化变量
  91.   #--------------------------------------------------------------------------
  92.   def initialize
  93.     # 生成显示端口
  94.     @viewport1 = Viewport.new(0, 0, 640, 480)
  95.     @viewport2 = Viewport.new(0, 0, 640, 480)
  96.     @viewport3 = Viewport.new(0, 0, 640, 480)
  97.     @viewport4 = Viewport.new(0, 0, 640, 480)
  98.     @viewport2.z = 101
  99.     @viewport3.z = 200
  100.     @viewport4.z = 5000
  101.     # 生成战斗背景活动块
  102.     @battleback_sprite = Sprite.new(@viewport1)
  103.     # 生成敌人活动块
  104.     @enemy_sprites = []
  105.     for enemy in $game_troop.enemies.reverse
  106. #      @enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy))
  107.       @enemy_sprites.push(Sprite_Battler.new(@viewport4, enemy))#敌人的显示高度
  108.     end
  109.     # 生成敌人活动块
  110.     @actor_sprites = []
  111.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  112.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  113.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  114.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  115.     # 生成天候
  116.     @weather = RPG::Weather.new(@viewport1)
  117.     # 生成图片活动块
  118.     @picture_sprites = []
  119.     for i in 51..100
  120.       @picture_sprites.push(Sprite_Picture.new(@viewport3,
  121.         $game_screen.pictures[i]))
  122.     end
  123.     # 生成计时器块
  124.     @timer_sprite = Sprite_Timer.new
  125.     # 刷新画面
  126.     update
  127.   end
  128.   #..........................................................................
  129.   #--------------------------------------------------------------------------
  130.   # ● 胜利图
  131.   #--------------------------------------------------------------------------
  132.   def win
  133.     for sprite in @actor_sprites
  134.       sprite.win
  135.     end
  136.   end
  137.   #..........................................................................
  138.   #--------------------------------------------------------------------------
  139.   # ● 刷新画面
  140.   #--------------------------------------------------------------------------
  141.   def update
  142.     # 刷新角色的活动块 (对应角色的替换)
  143.     @actor_sprites[0].battler = $game_party.actors[0]
  144.     @actor_sprites[1].battler = $game_party.actors[1]
  145.     @actor_sprites[2].battler = $game_party.actors[2]
  146.     @actor_sprites[3].battler = $game_party.actors[3]
  147.     # 战斗背景的文件名与现在情况有差异的情况下
  148.     if @battleback_name != $game_temp.battleback_name
  149.       @battleback_name = $game_temp.battleback_name
  150.       if @battleback_sprite.bitmap != nil
  151.         @battleback_sprite.bitmap.dispose
  152.       end
  153.       @battleback_sprite.bitmap = RPG::Cache.battleback(@battleback_name)
  154.       @battleback_sprite.src_rect.set(0, 0, 640, 480)
  155.     end
  156.     # 刷新战斗者的活动块
  157.     for sprite in @enemy_sprites + @actor_sprites
  158.       sprite.update
  159.     end
  160.     # 刷新天气图形
  161.     @weather.type = $game_screen.weather_type
  162.     @weather.max = $game_screen.weather_max
  163.     @weather.update
  164.     # 刷新图片活动块
  165.     for sprite in @picture_sprites
  166.       sprite.update
  167.     end
  168.     # 刷新计时器活动块
  169.     @timer_sprite.update
  170.     # 设置画面的色调与震动位置
  171.     @viewport1.tone = $game_screen.tone
  172.     @viewport1.ox = $game_screen.shake
  173.     # 设置画面的闪烁色
  174.     @viewport4.color = $game_screen.flash_color
  175.     # 刷新显示端口
  176.     @viewport1.update
  177.     @viewport2.update
  178.     @viewport4.update
  179.   end
  180. end
  181. class Arrow_Enemy < Arrow_Base
  182.   #--------------------------------------------------------------------------
  183.   # ● 获取光标指向的敌人
  184.   #--------------------------------------------------------------------------
  185.   def enemy
  186.     return $game_troop.enemies[@index]
  187.   end
  188.   #--------------------------------------------------------------------------
  189.   # ● 刷新画面
  190.   #--------------------------------------------------------------------------
  191.   def update
  192.     super
  193.     # 如果指向不存在的敌人就离开
  194.     $game_troop.enemies.size.times do
  195.       break if self.enemy.exist?
  196.       @index += 1
  197.       @index %= $game_troop.enemies.size
  198.     end
  199.     # 光标右
  200.     if Input.repeat?(Input::RIGHT)
  201.       $game_system.se_play($data_system.cursor_se)
  202.       $game_troop.enemies.size.times do
  203.         @index += 1
  204.         @index %= $game_troop.enemies.size
  205.         break if self.enemy.exist?
  206.       end
  207.     end
  208.     # 光标左
  209.     if Input.repeat?(Input::LEFT)
  210.       $game_system.se_play($data_system.cursor_se)
  211.       $game_troop.enemies.size.times do
  212.         @index += $game_troop.enemies.size - 1
  213.         @index %= $game_troop.enemies.size
  214.         break if self.enemy.exist?
  215.       end
  216.     end
  217.     # 设置活动块坐标
  218.     if self.enemy != nil
  219.       self.x = self.enemy.screen_x + self.ox
  220.       self.y = self.enemy.screen_y + self.oy
  221.       
  222.     end
  223.   end
  224. end
  225. class Arrow_Actor < Arrow_Base
  226.   #--------------------------------------------------------------------------
  227.   # ● 获取光标指向的角色
  228.   #--------------------------------------------------------------------------
  229.   def actor
  230.     return $game_party.actors[@index]
  231.   end
  232.   #--------------------------------------------------------------------------
  233.   # ● 刷新画面
  234.   #--------------------------------------------------------------------------
  235.   def update
  236.     super
  237.     # 光标右
  238.     if Input.repeat?(Input::RIGHT)
  239.       $game_system.se_play($data_system.cursor_se)
  240.       @index += 1
  241.       @index %= $game_party.actors.size
  242.     end
  243.     # 光标左
  244.     if Input.repeat?(Input::LEFT)
  245.       $game_system.se_play($data_system.cursor_se)
  246.       @index += $game_party.actors.size - 1
  247.       @index %= $game_party.actors.size
  248.     end
  249.     # 设置活动块坐标
  250.     if self.actor != nil
  251.       self.x = self.actor.screen_x + self.ox
  252.       self.y = self.actor.screen_y + self.oy
  253.     end
  254.   end
  255. end
  256. class Scene_Battle
  257.   #--------------------------------------------------------------------------
  258.   # ● 刷新画面 (主回合步骤 3 : 行动方动画)
  259.   #--------------------------------------------------------------------------
  260.   def update_phase4_step3
  261.     # 行动方动画 (ID 为 0 的情况下是白色闪烁)
  262.     if @animation1_id == 0
  263.       @active_battler.white_flash = true
  264.     else
  265.     # 添加施法动画
  266. #     @active_battler.setup_battler_ani(@active_battler.battler_name.split(/★/)[8], 1)
  267.       @active_battler.animation_id = @animation1_id
  268.       @active_battler.animation_hit = true
  269.     end
  270.     # 对像方动画
  271.     for target in @target_battlers
  272.       target.animation_id = @animation2_id
  273.       target.animation_hit = (target.damage != "Miss")
  274.       ###########################################################
  275.       target.setup_battler_dead_ani(0)
  276.       ############################################################
  277.       #.......................................................................
  278.       if target.is_a?(Game_Actor)
  279.         ##############
  280.         if target.guarding?
  281.           $fangyu = 1
  282.         end
  283.         ##############
  284.         if target.current_action.kind == 0 and target.current_action.basic == 1
  285.            target.setup_battler_ani(target.battler_name.split(/★/)[2], 1)
  286.          #else
  287.            #target.current_action.kind == 0 and target.current_action.basic == 1
  288.           # target.setup_battler_ani(target.battler_name.split(/★/)[3], 0)
  289.            else
  290.          target.setup_battler_hurt_ani(0)
  291.         end
  292.       end
  293.       if target.is_a?(Game_Enemy)
  294.        if target.current_action.kind == 0 and target.current_action.basic == 1
  295.           target.setup_battler_ani(target.battler_name.split(/★/)[1])
  296.         else
  297.           target.setup_battler_hurt_ani(0)
  298.         end
  299.       end
  300.       #.......................................................................
  301.     end
  302.     # 对像方动画
  303.     for target in @target_battlers
  304.       target.animation_id = @animation2_id
  305.       target.animation_hit = (target.damage != "Miss")
  306.       #......................................................................
  307.     end
  308.     # 限制动画长度、最低 8 帧
  309.     @wait_count = 8
  310.     # 移至步骤 5
  311.     @phase4_step = 5
  312.   end
  313.   #--------------------------------------------------------------------------
  314.   # ● 刷新画面 (主回合步骤 4 : 对像方动画) ★
  315.   #--------------------------------------------------------------------------
  316.   def update_phase4_step4
  317.     # 移至步骤 5
  318.     @phase4_step = 5
  319.   end
  320. end
  321. class Game_Actor < Game_Battler
  322.   
  323. #小改动
  324. #############################################################################
  325. #                                横版修改                                   #
  326. #############################################################################
  327.   
  328.   #--------------------------------------------------------------------------
  329.   # ● 取得战斗画面的 X 坐标
  330.   #--------------------------------------------------------------------------
  331. #  def screen_x
  332. #    case self.index
  333. #    when 0
  334. #      return 515
  335. #    when 1
  336. #      return 440
  337. #    when 2
  338. #      return 590
  339. #    when 3
  340. #      return 390
  341. #    else
  342. #      return 640
  343. #    end
  344. #  end
  345.   #--------------------------------------------------------------------------
  346.   # ● 取得战斗画面的 Y 坐标
  347.   #--------------------------------------------------------------------------
  348. #  def screen_y
  349. #    case self.index
  350. #    when 0
  351. #      return 310
  352. #    when 1
  353. #      return 295
  354. #    when 2
  355. #      return 325
  356. #    when 3
  357. #      return 340
  358. #    else
  359. #      return 1000
  360. #    end
  361. #  end
  362.   #--------------------------------------------------------------------------
  363.   # ● 取得战斗画面的 Z 坐标
  364.   #--------------------------------------------------------------------------
  365. #  def screen_z
  366. #    case self.index
  367. #    when 0
  368. #      return 1
  369. #    when 1
  370. #      return 0
  371. #    when 2
  372. #      return 2
  373. #    when 3
  374. #      return 3
  375. #    else
  376. #      return 0
  377. #    end
  378. #  end
  379.   
  380.   
  381. #############################################################################
  382.   
  383.   
  384.   
  385.   def screen_x
  386.     # 返回计算后的队伍 X 坐标的排列顺序
  387.   #if $game_party.actors[1].name ="南宫复"
  388.      case self.index
  389.     when 0
  390.       return 400
  391.     when 1
  392.       return 470
  393.     when 2
  394.       return 540
  395.     when 3
  396.       return 610
  397.   # end
  398.   else
  399.     return 400
  400.   end
  401. end

  402.       #......................................................................
  403. #     case self.index
  404.   #  when 0
  405.    #   return 400
  406.    # when 1
  407.    #   return 470
  408.    # when 2
  409.    #   return 540
  410.    # when 3
  411.     #  return 610
  412.     #else
  413.     #  return 0
  414.     #end
  415.   #end
  416.   #--------------------------------------------------------------------------
  417.   # ● 取得战斗画面的 Y 坐标
  418.   #--------------------------------------------------------------------------
  419.   def screen_y
  420.     #........................................................................
  421.     case self.index
  422.     when 0
  423.       return 420
  424.     when 1
  425.       return 350
  426.     when 2
  427.       return 280
  428.     when 3
  429.       return 120
  430.       end
  431.   end
  432.   #--------------------------------------------------------------------------
  433.   # ● 取得战斗画面的 Z 坐标
  434.   #--------------------------------------------------------------------------
  435.   def screen_z
  436.     # 返回计算后的队伍 Z 坐标的排列顺序
  437.     if self.index != nil
  438.       return 4 - self.index
  439.     else
  440.       return 0
  441.     end
  442.   end
  443. end

  444. class Scene_Battle
  445.   #..........................................................................
  446.   #--------------------------------------------------------------------------
  447.   # ● 返回phase
  448.   #--------------------------------------------------------------------------
  449.   def phase
  450.     return @phase
  451.   end
  452.   #--------------------------------------------------------------------------
  453.   # ● 返回phase4_step
  454.   #--------------------------------------------------------------------------
  455.   def phase4_step
  456.     return @phase4_step
  457.   end
  458.   #--------------------------------------------------------------------------
  459.   # ● 返回phase4_step
  460.   #--------------------------------------------------------------------------
  461.   def actor_command_active?
  462.     return @actor_command_window.active
  463.   end
  464.   #..........................................................................
  465. end
  466. class Game_Battler
  467.   #..........................................................................
  468.   #--------------------------------------------------------------------------
  469.   # ● 获取循环的动画 ID
  470.   #--------------------------------------------------------------------------  
  471.   def show_damage(value)
  472.     @show_damage_value = value
  473.   end
  474.   #--------------------------------------------------------------------------
  475.   # ● 获取循环的动画 ID
  476.   #--------------------------------------------------------------------------
  477.   def show_damage_value
  478.     return @show_damage_value
  479.   end
  480.   #--------------------------------------------------------------------------
  481.   # ● 获取循环的动画 ID
  482.   #--------------------------------------------------------------------------
  483.   def battler_ani
  484.     return @battler_ani
  485.   end
  486.   #--------------------------------------------------------------------------
  487.   # ● 获取循环的动画 ID
  488.   #--------------------------------------------------------------------------
  489.   def setup_battler_ani(battler_ani, once = 0)
  490.     @battler_ani = battler_ani
  491.     @once = once
  492.   end
  493.   #--------------------------------------------------------------------------
  494.   # ● 获取循环的动画 ID
  495.   #--------------------------------------------------------------------------
  496.   def setup_battler_hurt_ani(hurt)
  497.     @hurt = hurt
  498.   end  
  499.   #--------------------------------------------------------------------------
  500.   # ● 获取循环的动画 ID
  501.   #--------------------------------------------------------------------------
  502.   def setup_battler_dead_ani(over)
  503.     @over = over
  504.   end
  505.   #--------------------------------------------------------------------------
  506.   # ● 获取循环的动画 ID
  507.   #--------------------------------------------------------------------------
  508.   def battler_dead_ani
  509.     return @over
  510.   end
  511.   #--------------------------------------------------------------------------
  512.   # ● 获取循环的动画 ID
  513.   #--------------------------------------------------------------------------
  514.   def battler_ani_once
  515.     return @once
  516.   end
  517.   #--------------------------------------------------------------------------
  518.   # ● 获取循环的动画 ID
  519.   #--------------------------------------------------------------------------
  520.   def battler_hurt_ani
  521.     return @hurt
  522.   end
  523.   #..........................................................................
  524. end
  525. class Sprite_Battler < RPG::Sprite
  526.   #..........................................................................
  527.   #--------------------------------------------------------------------------
  528.   # ● 胜利图
  529.   #--------------------------------------------------------------------------
  530.   def win
  531.     if @battler_name != nil and not @battler.hidden and not @battler.dead?
  532.       @battler.setup_battler_ani(@battler_name.split(/★/)[6], 1)
  533.     end
  534.   end
  535.   #..........................................................................
  536.   #--------------------------------------------------------------------------
  537.   # ● 释放
  538.   #--------------------------------------------------------------------------
  539.   def dispose
  540.     if self.bitmap != nil
  541.       self.bitmap.dispose
  542.     end
  543.     super
  544.   end
  545.   #--------------------------------------------------------------------------
  546.   # ● 刷新画面
  547.   #--------------------------------------------------------------------------
  548.   def update
  549.     super
  550.     # 战斗者为 nil 的情况下
  551.     if @battler == nil
  552.       self.bitmap = nil
  553.       loop_animation(nil)
  554.        loop_animation1(nil)
  555.       return
  556.     end
  557.     # 文件名和色相与当前情况有差异的情况下
  558.     if @battler.battler_name != @battler_name or
  559.        @battler.battler_hue != @battler_hue
  560.       @battler_hue = @battler.battler_hue
  561.       # 获取、设置位图
  562.       @battler_name = @battler.battler_name
  563.       self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
  564.       #.......................................................................
  565.       @battler.setup_battler_ani(@battler.battler_name.split(/★/)[1])
  566.       #.......................................................................
  567.       @width = bitmap.width
  568.       @height = bitmap.height
  569.       self.ox = @width / 2
  570.       self.oy = @height
  571.       # 如果是战斗不能或者是隐藏状态就把透明度设置成 0
  572.       if @battler.is_a?(Game_Enemy)
  573.         if @battler.dead? or @battler.hidden
  574.           self.opacity = 0
  575.         end
  576.       end
  577.     end
  578.     # 动画 ID 与当前的情况有差异的情况下
  579.     #.........................................................................
  580.     if @battler.battler_ani != @battler_ani
  581.       @battler_ani = @battler.battler_ani
  582.       loop_animation($data_animations[@battler_ani.to_i])
  583.       

  584.       
  585.      end
  586.    
  587.     #.........................................................................
  588.     # 应该被显示的角色的情况下
  589.     if @battler.is_a?(Game_Actor) and @battler_visible
  590.       # 不是主状态的时候稍稍降低点透明度
  591.       if $game_temp.battle_main_phase
  592.         self.opacity += 3 if self.opacity < 255
  593.       else
  594.         self.opacity -= 3 if self.opacity > 207
  595.       end
  596.     end
  597.     # 明灭
  598.     if @battler.blink
  599.       blink_on
  600.     else
  601.       blink_off
  602.     end
  603.     # 不可见的情况下
  604.     unless @battler_visible
  605.       # 出现 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
  606.       if not @battler.hidden and not @battler.dead? and
  607.          (@battler.damage == nil or @battler.damage_pop)
  608.         if @battler.is_a?(Game_Enemy)
  609.           appear
  610.         else
  611.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[1])
  612.         end
  613.         @battler_visible = true
  614.       end
  615.     end
  616.     # 可见的情况下
  617.     if @battler_visible
  618.       # 逃跑
  619.       if @battler.hidden
  620.         $game_system.se_play($data_system.escape_se)
  621.         escape
  622.         @battler_visible = false
  623.       end
  624.       # 白色闪烁
  625.       if @battler.white_flash
  626.         whiten
  627.         @battler.white_flash = false
  628.       end
  629.       # 动画
  630.       if @battler.animation_id != 0
  631.         animation = $data_animations[@battler.animation_id]
  632.         animation(animation, @battler.animation_hit)
  633.         @battler.animation_id = 0
  634.       end
  635.       # 伤害
  636.       if @battler.damage_pop
  637.         damage(@battler.damage, @battler.critical)
  638.         @battler.damage = nil
  639.         @battler.critical = false
  640.         @battler.damage_pop = false
  641.       end
  642.       # korapusu
  643.       if @battler.damage == nil and @battler.dead?
  644.         #....................................................................
  645.         if @battler.is_a?(Game_Enemy)
  646.           $game_system.se_play($data_system.enemy_collapse_se)
  647.           #collapse
  648.         else
  649.           $game_system.se_play($data_system.actor_collapse_se)
  650.         end
  651.         #....................................................................
  652.         @battler_visible = false
  653.       end
  654.     end
  655.     # 设置活动块的坐标
  656.     self.x = @battler.screen_x
  657.     self.y = @battler.screen_y
  658.     self.z = @battler.screen_z
  659.   end
  660. end
  661. module RPG
  662.   class Sprite < ::Sprite
  663.     def damage(value, critical)
  664.       dispose_damage
  665.       if value.is_a?(Numeric)
  666.         damage_string = value.abs.to_s
  667.       else
  668.         damage_string = value.to_s
  669.       end
  670.       bitmap = Bitmap.new(160, 48)
  671.       bitmap.font.name = "Arial Black"
  672.       bitmap.font.size = 32
  673.       bitmap.font.color.set(0, 0, 0)
  674.       bitmap.draw_text(-1, 12-1, 160, 36, damage_string, 1)
  675.       bitmap.draw_text(+1, 12-1, 160, 36, damage_string, 1)
  676.       bitmap.draw_text(-1, 12+1, 160, 36, damage_string, 1)
  677.       bitmap.draw_text(+1, 12+1, 160, 36, damage_string, 1)
  678.       if value.is_a?(Numeric) and value < 0
  679.         bitmap.font.color.set(176, 255, 144)
  680.       else
  681.         bitmap.font.color.set(255, 255, 255)
  682.       end
  683.       bitmap.draw_text(0, 12, 160, 36, damage_string, 1)
  684.       if critical
  685.         bitmap.font.size = 20
  686.         bitmap.font.color.set(0, 0, 0)
  687.         bitmap.draw_text(-1, -1, 160, 20, "CRITICAL", 1)
  688.         bitmap.draw_text(+1, -1, 160, 20, "CRITICAL", 1)
  689.         bitmap.draw_text(-1, +1, 160, 20, "CRITICAL", 1)
  690.         bitmap.draw_text(+1, +1, 160, 20, "CRITICAL", 1)
  691.         bitmap.font.color.set(255, 255, 255)
  692.         bitmap.draw_text(0, 0, 160, 20, "CRITICAL", 1)
  693.       end
  694.       @_damage_sprite = ::Sprite.new(self.viewport)
  695.       @_damage_sprite.bitmap = bitmap
  696.       @_damage_sprite.ox = 80
  697.       @_damage_sprite.oy = 20
  698.       @_damage_sprite.x = self.x
  699.       @_damage_sprite.x -= self.bitmap.width/2 if @battler.is_a?(Game_Actor)
  700.       @_damage_sprite.y = self.y - self.oy / 2
  701.       @_damage_sprite.z = 3000
  702.       @_damage_duration = 40
  703.     end
  704.   end
  705. end
  706. module RPG
  707. #--------------------------------------------------------------------------
  708. # ● 常量设定
  709. #--------------------------------------------------------------------------
  710. # 是否显示总伤害
  711. SHOW_TOTAL_DAMAGE = true
  712. # 角色受攻击时是否跳一下
  713. BATTLER_JUMP = true
  714. # 伤害美化字符串文件夹名(放在Pictures文件夹中的子文件夹)
  715. #STRING_DOCUMENTS = ""
  716. # 是否使用伤害美化效果
  717. USE_DAMAGE = true

  718. class Sprite < ::Sprite
  719.    #==========================================
  720.    # 修改说明:
  721.    # @flash_shake用来制作挨打时候跳跃
  722.    # @_damage    用来记录每次打击之后弹出数字
  723.    # @_total_damage 记录总伤害
  724.    # @_total_damage_duration 总伤害持续帧
  725.    #==========================================
  726.    #alias 66RPG_rainbow_initialize : initialize
  727.    def initialize(viewport = nil)
  728.      #66RPG_rainbow_initialize(viewport)
  729.      super(viewport)
  730.      @_whiten_duration = 0
  731.      @_appear_duration = 0
  732.      @_escape_duration = 0
  733.      @_collapse_duration = 0
  734.      @_damage_duration = 0
  735.      @_animation_duration = 0
  736.      @_blink = false
  737.      # 挨打时候跳跃
  738.      @flash_shake = 0
  739.      # 伤害记录数组
  740.      @_damage = []
  741.      # 总伤害数字
  742.      @_total_damage = 0
  743.      # 总伤害持续帧
  744.      @_total_damage_duration = 0
  745.      #.........................................................................
  746.      #记录已经发生的伤害的变量
  747.      @p_dam=0
  748.      @hits=0
  749.      ############ #小改动
  750.      #记录前一次攻击次数
  751.      @temp_hits=0
  752.      #判断是否为最后一次攻击
  753.      @last_hits=0
  754.      ############
  755.      #.........................................................................
  756.    end
  757.     def animation_set_sprites(sprites, cell_data, position)
  758.       for i in 0..15
  759.         sprite = sprites[i]
  760.         pattern = cell_data[i, 0]
  761.         if sprite == nil or pattern == nil or pattern == -1
  762.           sprite.visible = false if sprite != nil
  763.           next
  764.         end
  765.         sprite.visible = true
  766.         sprite.src_rect.set(pattern % 5 * 192, pattern / 5 * 192, 192, 192)
  767.         if position == 3
  768.           if self.viewport != nil
  769.             sprite.x = self.viewport.rect.width / 2
  770.             sprite.y = self.viewport.rect.height - 160
  771.           else
  772.             sprite.x = 320
  773.             sprite.y = 240
  774.           end
  775.         else
  776.           sprite.x = self.x - self.ox + self.src_rect.width / 2
  777.           sprite.y = self.y - self.oy + self.src_rect.height / 2
  778.           sprite.y -= self.src_rect.height / 4 if position == 0
  779.           sprite.y += self.src_rect.height / 4 if position == 2
  780.         end
  781.         sprite.x += cell_data[i, 1]
  782.         sprite.y += cell_data[i, 2]
  783.         sprite.z =1
  784.         sprite.ox = 96
  785.         sprite.oy = 96
  786.         sprite.zoom_x = cell_data[i, 3] / 100.0
  787.         sprite.zoom_y = cell_data[i, 3] / 100.0
  788.         sprite.angle = cell_data[i, 4]
  789.         sprite.mirror = (cell_data[i, 5] == 1)
  790.         sprite.opacity = cell_data[i, 6] * self.opacity / 255.0
  791.         sprite.blend_type = cell_data[i, 7]
  792.       end
  793.     end

  794.    #--------------------------------------------------------------------------
  795.    #美化的伤害处理
  796.    #--------------------------------------------------------------------------
  797.     def damage(value, critical)
  798.       
  799. if USE_DAMAGE == true then
  800.   
  801.       # 释放伤害,效果是伤害数字快速消失,觉得不如不消失好看......
  802.       #dispose_damage
  803.       #清除hit数
  804.       dispose_hit
  805.       # 如果伤害值是数值
  806.       if value.is_a?(Numeric)
  807.         # 绝对值转为字符串
  808.         damage_string = value.abs.to_s
  809.       else
  810.         # 转为字符串
  811.         damage_string = value.to_s
  812.       end
  813.       # 初始化位图
  814.       bitmap = Bitmap.new(162, 64)
  815.       bitmap.font.name = ["华文行楷","黑体", "宋体"]
  816.       bitmap.font.size = 32
  817.       # 伤害值是数值的情况下
  818.       if value.is_a?(Numeric)
  819.         # 分割伤害值字符串
  820.         damage_array = damage_string.scan(/./)
  821.         damage_x = 81 - damage_string.size * 9
  822.         # 伤害值为负的情况下
  823.         if value < 0
  824.           # 调用回复数字表
  825.           rect_y = 32
  826.         else
  827.           # 调用伤害数字表
  828.           rect_y = 0
  829.         end
  830.         # 循环伤害值字符串
  831.         for char in damage_array
  832.           number = char.to_i
  833.           # 显示伤害数字
  834.           bitmap.blt(damage_x, 32, RPG::Cache.picture( "Damage"),#"Damagenew"),
  835.           Rect.new(number * 18, rect_y, 18, 32))
  836.           # 后移一位
  837.           damage_x += 18
  838.         end
  839.       # 伤害值不是数值的情况
  840.       else
  841.         # 如果伤害值不是 Miss
  842.         unless value == "Miss"
  843.           # 系统默认描画字符串
  844.           bitmap.font.color.set(0, 0, 0)
  845.           bitmap.draw_text(-1, 27, 162, 36, damage_string, 1)
  846.           bitmap.draw_text(+1, 27, 162, 36, damage_string, 1)
  847.           bitmap.draw_text(-1, 29, 162, 36, damage_string, 1)
  848.           bitmap.draw_text(+1, 29, 162, 36, damage_string, 1)
  849.           bitmap.font.color.set(255, 255, 255)
  850.           bitmap.draw_text(0, 28, 162, 36, damage_string, 1)
  851.         # Miss 的情况下
  852.         else
  853.           # 显示未击中图画
  854.           bitmap.blt(36, 28, RPG::Cache.picture("Damage"), Rect.new(90, 64, 90, 32))
  855.         end
  856.       end
  857.       # 会心一击标志打开的情况
  858.       if critical
  859.         #会心一击伤害效果
  860. ###########################################################
  861.        $game_screen.start_flash(Color.new(255,255,255,255),5)
  862. ###########################################################
  863.         # 显示会心一击图画
  864.         bitmap.blt(36, 0, RPG::Cache.picture( "Damage"), Rect.new(0, 64, 90, 32))
  865.       end
  866.       
  867. else
  868.       
  869.      #.........................................................................
  870.      #清除hit数
  871.      dispose_hit
  872.      #.........................................................................
  873.      if value.is_a?(Numeric)
  874.        damage_string = value.abs.to_s
  875.      else
  876.        damage_string = value.to_s
  877.      end
  878.      bitmap = Bitmap.new(160, 48)
  879.      bitmap.font.name = "Arial Black"
  880.      bitmap.font.size = 32
  881.      bitmap.font.color.set(0, 0, 0)
  882.      bitmap.draw_text(-1, 12-1, 160, 36, damage_string, 1)
  883.      bitmap.draw_text(+1, 12-1, 160, 36, damage_string, 1)
  884.      bitmap.draw_text(-1, 12+1, 160, 36, damage_string, 1)
  885.      bitmap.draw_text(+1, 12+1, 160, 36, damage_string, 1)
  886.      #=======================================
  887.      # 修改:颜色
  888.      #=======================================
  889.      if value.is_a?(Numeric) and value < 0
  890.        bitmap.font.color.set(176, 255, 144)
  891.      else
  892.        bitmap.font.color.set(255, 55, 55)
  893.      end
  894.      bitmap.draw_text(0, 12, 160, 36, damage_string, 1)
  895.      if critical
  896.        #会心一击伤害效果
  897. ###########################################################
  898.        $game_screen.start_flash(Color.new(255,255,255,255),5)
  899. ###########################################################
  900.        bitmap.font.size = 20
  901.        bitmap.font.color.set(0, 0, 0)
  902.        bitmap.draw_text(-1, -1, 160, 20, "CRITICAL", 1)
  903.        bitmap.draw_text(+1, -1, 160, 20, "CRITICAL", 1)
  904.        bitmap.draw_text(-1, +1, 160, 20, "CRITICAL", 1)
  905.        bitmap.draw_text(+1, +1, 160, 20, "CRITICAL", 1)
  906.        bitmap.font.color.set(255, 255, 255)
  907.        bitmap.draw_text(0, 0, 160, 20, "CRITICAL", 1)
  908.      end
  909.      
  910. end
  911.    
  912.      # 伤害值定位     
  913.      @_damage_sprite = ::Sprite.new#(self.viewport)
  914.      @_damage_sprite.bitmap = bitmap
  915.      @_damage_sprite.ox = 80
  916.      @_damage_sprite.oy = 20
  917.      @_damage_sprite.x = self.x
  918.      @_damage_sprite.y = self.y - self.oy / 2
  919.      @_damage_sprite.z = 3000
  920.      @_damage_duration = 40
  921.      #=======================================
  922.      # 修改:推入新的伤害
  923.      #=======================================
  924.      @_damage.push([@_damage_sprite,@_damage_duration-10,0, rand(30) - 15, rand(3)])
  925.      # 总伤害处理
  926.      make_total_damage(value)
  927.      
  928.      
  929.      
  930.     end
  931.    #--------------------------------------------------------------------------
  932.    # ● 返回 @hits
  933.    #--------------------------------------------------------------------------
  934.    def get_hit
  935.      return @hits
  936.    end
  937.    #--------------------------------------------------------------------------
  938.    # ● hit数的美化描绘
  939.     # ● hit数的美化描绘
  940.    #--------------------------------------------------------------------------
  941.    #..........................................................................
  942.    def hit
  943.      # 如果伤害值是数值
  944.      # 转为字符串
  945.      value=@hits
  946.      hits_string = value.to_s
  947.      # 初始化位图
  948.      bitmap = Bitmap.new(320, 64)
  949.      bitmap.font.name = "Arial Black"
  950.      bitmap.font.size = 32
  951.      # 分割伤害值字符串
  952.      hits_array = hits_string.scan(/./)
  953.      hits_x = - 36.2#hits_string.size * 18.1 # 81 - hits_string.size * 18.1
  954.      rect_y = 0
  955.      # 循环伤害值字符串
  956.      for char in hits_array
  957.        # 后移一位
  958.        hits_x += 36.2
  959.        number = char.to_i
  960.        # 显示伤害数字
  961.        bitmap.blt(hits_x, 0, RPG::Cache.picture("Number"),
  962.        Rect.new(number * 36.2, rect_y, 36.2, 50))
  963.      end
  964.      hits_x += 18.1
  965.      bitmap.blt(hits_x, 0, RPG::Cache.picture("HITS"),
  966.                 Rect.new(0, -21, 90, 50))
  967.      # 伤害值定位
  968.      @_hits_sprite = ::Sprite.new(self.viewport)
  969.      @_hits_sprite.bitmap = bitmap
  970.      @_hits_sprite.x = 560 - hits_string.size * 36.2
  971.      @_hits_sprite.y = 70
  972.      @_hits_sprite.z = 3000
  973.      @_hits_duration = 40
  974.    end
  975.    #.......................................................................................
  976.    #--------------------------------------------------------------------------
  977.    # ● 美化的总伤害处理
  978.    #--------------------------------------------------------------------------
  979.    def make_total_damage(value)
  980.      
  981. if USE_DAMAGE == true then     
  982.      
  983.      if value.is_a?(Numeric)# and SHOW_TOTAL_DAMAGE
  984.        @_total_damage += value
  985.         # 绝对值转为字符串
  986.         damage_string = @_total_damage.abs.to_s
  987.       else
  988.         return
  989.       end
  990. #####################################################小改动
  991.      if SHOW_TOTAL_DAMAGE
  992. #####################################################
  993.       # 初始化位图
  994.       bitmap = Bitmap.new(300, 150)
  995.       bitmap.font.name = "Arial Black"
  996.       bitmap.font.size = 30
  997.       # 伤害值是数值的情况下
  998.       if value.is_a?(Numeric)
  999.         # 分割伤害值字符串
  1000.         damage_array = damage_string.scan(/./)
  1001.         damage_x = 40 - damage_string.size * 9
  1002.         # 伤害值为负的情况下
  1003.         if value < 0
  1004.           # 调用回复数字表
  1005.           name=  "Number3"
  1006.         else
  1007.           # 调用伤害数字表
  1008.           name=   "Number2"
  1009.         end
  1010.         # 循环伤害值字符串
  1011.         for char in damage_array
  1012.           number = char.to_i
  1013.           # 显示伤害数字
  1014.           bitmap.blt(damage_x, 0, RPG::Cache.picture(name),
  1015.           Rect.new(number * 30, 0, 30, 50))
  1016.           # 后移一位
  1017.           damage_x += 26
  1018.         end
  1019. #####################################################小改动
  1020.      end
  1021. #####################################################
  1022.       end
  1023.       
  1024. else
  1025.             
  1026.    #--------------------------------------------------------------------------
  1027.    # ● 总伤害处理
  1028.    #--------------------------------------------------------------------------
  1029.      if value.is_a?(Numeric)# and SHOW_TOTAL_DAMAGE
  1030.        @_total_damage += value
  1031.      else
  1032.        return
  1033.      end
  1034. #####################################################小改动
  1035.      if SHOW_TOTAL_DAMAGE
  1036. #####################################################
  1037.      bitmap = Bitmap.new(300, 150)
  1038.      bitmap.font.name = "Arial Black"
  1039.      bitmap.font.size = 48
  1040.      bitmap.font.color.set(0, 0, 0)
  1041.      bitmap.draw_text(+2, 12+2, 160, 36, @_total_damage.abs.to_s, 1)
  1042.      if @_total_damage < 0
  1043.        bitmap.font.color.set(80, 255, 00)
  1044.      else
  1045.        bitmap.font.color.set(255, 140, 0)
  1046.      end
  1047.      bitmap.draw_text(0, 12, 160, 36, @_total_damage.abs.to_s, 1)
  1048. #####################################################小改动
  1049.      end
  1050. #####################################################
  1051. end

  1052.      if @_total_damage_sprite.nil?
  1053.        @_total_damage_sprite = ::Sprite.new#(self.viewport)
  1054.        @_total_damage_sprite.ox = 80
  1055.        @_total_damage_sprite.oy = 20
  1056.        @_total_damage_sprite.z = 3000
  1057.      end
  1058.      @_total_damage_sprite.bitmap = bitmap
  1059.      @_total_damage_sprite.zoom_x = 1.5
  1060.      @_total_damage_sprite.zoom_y = 1.5
  1061.      @_total_damage_sprite.x = self.x
  1062.      @_total_damage_sprite.y = self.y  - self.oy / 2 - 64
  1063.      @_total_damage_sprite.z = 3001
  1064.      #.........................................................................
  1065.      @_total_damage_duration = 40
  1066.      #.........................................................................
  1067.      #.........................................................................
  1068.      #hit数描绘
  1069.      @hits+=1
  1070.      hit
  1071.      #.........................................................................
  1072.    end
  1073.    def animation(animation, hit, battler_damage="", battler_critical=false)
  1074.      dispose_animation      
  1075.      #=======================================
  1076.      # 修改:记录伤害和critical
  1077.      #=======================================
  1078.      @battler_damage = battler_damage
  1079.      @battler_critical = battler_critical
  1080.      @_animation = animation
  1081.      return if @_animation == nil
  1082.      @_animation_hit = hit
  1083.      @_animation_duration = @_animation.frame_max
  1084.      animation_name = @_animation.animation_name
  1085.      animation_hue = @_animation.animation_hue
  1086.      bitmap = RPG::Cache.animation(animation_name, animation_hue)
  1087.      #=======================================
  1088.      # 修改:计算总闪光权限值
  1089.      #=======================================
  1090.      for timing in @_animation.timings
  1091.        quanzhong = animation_process_timing(timing, @_animation_hit,true)
  1092.        @all_quanzhong += quanzhong
  1093.        # 记录最后一次闪光
  1094.        @_last_frame = timing.frame if quanzhong != 0
  1095.      end
  1096.      #.........................................................................
  1097.      @last_frame = @_last_frame
  1098.      #.........................................................................
  1099.      if @@_reference_count.include?(bitmap)
  1100.        @@_reference_count[bitmap] += 1
  1101.      else
  1102.        @@_reference_count[bitmap] = 1
  1103.      end
  1104.      #=======================================
  1105.      # 修改:行动方动画不显示伤害
  1106.      #=======================================
  1107.      if $scene.is_a?(Scene_Battle)
  1108.        if $scene.animation1_id == @battler.animation_id
  1109.          @battler_damage = ""
  1110.        end
  1111.      end
  1112.      @_animation_sprites = []
  1113.      if @_animation.position != 3 or not @@_animations.include?(animation)
  1114.        for i in 0..15
  1115.          sprite = ::Sprite.new(self.viewport)
  1116.          sprite.bitmap = bitmap
  1117.          sprite.visible = false
  1118.          @_animation_sprites.push(sprite)
  1119.        end
  1120.        unless @@_animations.include?(animation)
  1121.          @@_animations.push(animation)
  1122.        end
  1123.      end
  1124.      update_animation
  1125.    end
  1126.    #=======================================
  1127.    # 修改:更换清除伤害的算法,以防万一
  1128.    #       本内容在脚本中没有使用过
  1129.    #=======================================
  1130.    def dispose_damage
  1131.      for damage in @_damage.reverse
  1132.        damage[0].bitmap.dispose
  1133.        damage[0].dispose
  1134.        @_damage.delete(damage)
  1135.      end
  1136.      @_total_damage = 0
  1137.      @_last_frame = -1
  1138.      if @_total_damage_sprite != nil
  1139.        @_total_damage_duration = 0
  1140.        @_total_damage_sprite.bitmap.dispose
  1141.        @_total_damage_sprite.dispose
  1142.        @_total_damage_sprite = nil
  1143.      end
  1144.    end
  1145.    #=======================================
  1146.    # 清除hit数
  1147.    #=======================================
  1148.    #...........................................................................
  1149.    def dispose_hit
  1150.      if @_hits_sprite != nil
  1151.        @_hits_sprite.bitmap.dispose
  1152.        @_hits_sprite.dispose
  1153.        @_hits_sprite = nil
  1154.      end
  1155.    end
  1156.    #...........................................................................
  1157.    def dispose_animation
  1158.      #=======================================
  1159.      # 修改:清除记录的伤害,清除权重记录
  1160.      #=======================================
  1161.      @battler_damage = nil
  1162.      @battler_critical = nil
  1163.      @all_quanzhong = 1
  1164.      @_total_damage = 0
  1165.      @_last_frame = -1
  1166.      #.........................................................................
  1167.      @hits = 0
  1168.      #.........................................................................
  1169.      if @_animation_sprites != nil
  1170.        sprite = @_animation_sprites[0]
  1171.        if sprite != nil
  1172.          @@_reference_count[sprite.bitmap] -= 1
  1173.          if @@_reference_count[sprite.bitmap] == 0
  1174.            sprite.bitmap.dispose
  1175.          end
  1176.        end
  1177.        for sprite in @_animation_sprites
  1178.          sprite.dispose
  1179.        end
  1180.        @_animation_sprites = nil
  1181.        @_animation = nil
  1182.      end
  1183.    end
  1184.    def update
  1185.      super
  1186.      if @_whiten_duration > 0
  1187.        @_whiten_duration -= 1
  1188.        self.color.alpha = 128 - (16 - @_whiten_duration) * 10
  1189.      end
  1190.      if @_appear_duration > 0
  1191.        @_appear_duration -= 1
  1192.        self.opacity = (16 - @_appear_duration) * 16
  1193.      end
  1194.      if @_escape_duration > 0
  1195.        @_escape_duration -= 1
  1196.        self.opacity = 256 - (32 - @_escape_duration) * 10
  1197.      end
  1198.      if @_collapse_duration > 0
  1199.        @_collapse_duration -= 1
  1200.        self.opacity = 256 - (48 - @_collapse_duration) * 6
  1201.      end
  1202.      #=======================================
  1203.      # 修改:更新算法,更新弹出
  1204.      #=======================================
  1205.      if @_damage_duration > 0
  1206.        @_damage_duration -= 1
  1207.        for damage in @_damage
  1208.          damage[0].x = self.x + self.viewport.rect.x -
  1209.                        self.ox + self.src_rect.width / 2 +
  1210.                        (40 - damage[1]) * damage[3] / 10
  1211.          damage[0].y -= damage[4]+damage[1]/10
  1212.          damage[0].opacity = damage[1]*20
  1213.          damage[1] -= 1
  1214.          if damage[1]==0
  1215.            damage[0].bitmap.dispose
  1216.            damage[0].dispose
  1217.            @_damage.delete(damage)
  1218.            next
  1219.          end
  1220.        end
  1221.      end
  1222.      #=======================================
  1223.      # 添加:弹出总伤害
  1224.      #=======================================
  1225.      if @_total_damage_duration > 0
  1226.        @_total_damage_duration -= 1
  1227.        @_total_damage_sprite.y -= 1 if @_total_damage_duration % 2 == 0
  1228.        if @_total_damage_sprite.zoom_x > 1.0
  1229.          @_total_damage_sprite.zoom_x -= 0.05
  1230.        end
  1231.        if @_total_damage_sprite.zoom_y > 1.0
  1232.          @_total_damage_sprite.zoom_y -= 0.05
  1233.        end
  1234.        @_total_damage_sprite.opacity = 256 - (24 - @_total_damage_duration) * 16
  1235.        #......................................................................
  1236.        if @_total_damage_duration <= 7 and @_total_damage_duration > 0
  1237.          @_hits_sprite.opacity -= 32
  1238.          @_hits_sprite.x += 1
  1239.        end
  1240.        #......................................................................
  1241.        if @_total_damage_duration <= 0
  1242.          #.....................................................................
  1243.          dispose_hit
  1244. ##########################
  1245.          @_total_damage = 0
  1246. ##########################
  1247.          #.....................................................................
  1248.          @_total_damage = 0
  1249.          @_total_damage_duration = 0
  1250. #####################################################小改动
  1251.          if SHOW_TOTAL_DAMAGE
  1252.          @_total_damage_sprite.bitmap.dispose
  1253.          end
  1254. #####################################################
  1255.          @_total_damage_sprite.dispose
  1256.          @_total_damage_sprite = nil
  1257.        end
  1258.      end
  1259.      #=======================================
  1260.      if @_animation != nil and (Graphics.frame_count % 2 == 0)
  1261.        @_animation_duration -= 1
  1262.        update_animation
  1263.      end
  1264.      if @_loop_animation != nil and (Graphics.frame_count % 2 == 0)
  1265.        update_loop_animation
  1266.        @_loop_animation_index += 1
  1267.        #......................................................................
  1268.        @loop_animation_once = 0
  1269.        @loop_animation_once = 1 if @once == 1 and @_loop_animation_index == @_loop_animation.frame_max
  1270.        #......................................................................
  1271.        @_loop_animation_index %= @_loop_animation.frame_max
  1272.      end
  1273.      
  1274.      if @_loop_animation1 != nil and (Graphics.frame_count % 2 == 0)
  1275.         update_loop_animation1
  1276.         @_loop_animation1_index += 1
  1277.         @_loop_animation1_index %= @_loop_animation1.frame_max
  1278.       end
  1279.       
  1280.      if @_blink
  1281.        @_blink_count = (@_blink_count + 1) % 32
  1282.        if @_blink_count < 16
  1283.          alpha = (16 - @_blink_count) * 6
  1284.        else
  1285.          alpha = (@_blink_count - 16) * 6
  1286.        end
  1287.        self.color.set(255, 255, 255, alpha)
  1288.      end
  1289.      @@_animations.clear
  1290.    end
  1291.    #..........................................................................
  1292.    def loop_animation_once
  1293.      return @_loop_animation_once
  1294.    end
  1295.    #..........................................................................
  1296.    def update_animation
  1297.      if @_animation_duration > 0
  1298.        frame_index = @_animation.frame_max - @_animation_duration
  1299.        @frame_index = frame_index
  1300.        cell_data = @_animation.frames[frame_index].cell_data
  1301.        position = @_animation.position
  1302.        animation_set_sprites(@_animation_sprites, cell_data, position)
  1303.        #=======================================
  1304.        # 修改:弹出伤害,权重计算
  1305.        #=======================================
  1306.        for timing in @_animation.timings
  1307.          if timing.frame == frame_index
  1308.            t = 1.0 * animation_process_timing(timing, @_animation_hit)            
  1309.            #p t,"当前权重", @all_quanzhong,"总权重"
  1310.            if @battler_damage.is_a?(Numeric) and t != 0
  1311.              t *= @battler_damage
  1312.              t /= @all_quanzhong
  1313.              t = t.to_i
  1314.              #在闪光不是最后一次的情况下,把这次伤害加入到已经发生的伤害中★★★★★★★★★★★★★★★★★★★★★★★★★★
  1315.              if frame_index != @_last_frame
  1316.              @p_dam+= t
  1317.              end
  1318.              #p @p_dam,"已发生伤害",@battler_damage,"总伤害"(调试用)★★★★★★★★★★★★★★★★★★★★★★★★★★
  1319.              #闪光为最后一次的情况下,改变这次伤害的计算方法(总伤害-已经发生伤害)★★★★★★★★★★★★★★★★★★★★★★★★★★
  1320.              if frame_index == @_last_frame
  1321.                t= @battler_damage-@p_dam
  1322.              end
  1323.              #p t,"当前伤害",@battler_damage,"总伤害"
  1324.              # 最后一次闪光的话,伤害修正
  1325.              if frame_index == @_last_frame
  1326.                @_total_damage = @battler_damage - t
  1327.                @p_dam=0      #已经发生的伤害归0★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
  1328.             end
  1329.              #p t,@battler_damage,@all_quanzhong
  1330.              damage(t,@battler_critical)
  1331.             #连击次数归0★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
  1332.             if frame_index == @_last_frame
  1333.                       ############ #小改动
  1334.                       @last_hits=1
  1335.                       @temp_hits=0
  1336.                       ############
  1337.                       @hits=0
  1338.             end
  1339.            # 防止重复播放miss
  1340.            elsif !@battler_damage.is_a?(Numeric) and timing.flash_scope != 0
  1341.              damage(@battler_damage,@battler_critical)
  1342.            end
  1343.          end
  1344.        end
  1345.      else
  1346.        dispose_animation
  1347.      end
  1348.    end
  1349.    #=======================================
  1350.    # 修改:敌人跳跃的功能 + 添加返回数值
  1351.    #=======================================
  1352.    def update_loop_animation
  1353.      frame_index = @_loop_animation_index
  1354.      cell_data = @_loop_animation.frames[frame_index].cell_data
  1355.      position = @_loop_animation.position
  1356.      #·改·
  1357.      if @wait_count.to_i <= 0
  1358.        @wait_count = 0
  1359.        animation_set_sprites(@_loop_animation_sprites, cell_data, position)
  1360.      else
  1361.        @wait_count -= 1
  1362.        for sprite in @_loop_animation_sprites
  1363.          sprite.visible = false
  1364.        end
  1365.      end
  1366.      if @wait_flash.to_i <= 0
  1367.        @wait_flash = 0
  1368.      else
  1369.        @wait_flash -= 1
  1370.        for sprite in @_loop_animation_sprites
  1371.          sprite.blend_type = 1
  1372.        end
  1373.      end
  1374.      #·改·
  1375.      for timing in @_loop_animation.timings
  1376.        if timing.frame == frame_index
  1377.          animation_process_timing(timing, true)
  1378.        end
  1379.      end
  1380.    end
  1381.    #=======================================
  1382.    # 修改:敌人跳跃的功能 + 添加返回数值
  1383.    #=======================================
  1384.    def loop_animation(animation)
  1385.      return if animation == @_loop_animation
  1386.      dispose_loop_animation
  1387.   
  1388.      @_loop_animation = animation
  1389.      return if @_loop_animation == nil
  1390.      @_loop_animation_index = 0
  1391.      animation_name = @_loop_animation.animation_name
  1392.      animation_hue = @_loop_animation.animation_hue
  1393.      bitmap = RPG::Cache.animation(animation_name, animation_hue)
  1394.      if @@_reference_count.include?(bitmap)
  1395.        @@_reference_count[bitmap] += 1
  1396.      else
  1397.        @@_reference_count[bitmap] = 1
  1398.      end
  1399.      @_loop_animation_sprites = []
  1400.      for i in 0..15
  1401.        sprite = ::Sprite.new
  1402.        sprite.bitmap = bitmap
  1403.        sprite.visible = false
  1404.        @_loop_animation_sprites.push(sprite)
  1405.      end
  1406.      update_loop_animation
  1407.    end
  1408.    #=======================================
  1409.    # 修改:敌人跳跃的功能 + 添加返回数值
  1410.    #=======================================
  1411.     def animation_process_timing(timing, hit,dontflash=false)
  1412.       if (timing.condition == 0) or
  1413.          (timing.condition == 1 and hit == true) or
  1414.          (timing.condition == 2 and hit == false)
  1415.         unless dontflash
  1416.           if timing.se.name != ""
  1417.             se = timing.se
  1418.             Audio.se_play("Audio/SE/" + se.name, se.volume, se.pitch)
  1419.           end
  1420.         end
  1421.         case timing.flash_scope
  1422.         when 1
  1423.           unless dontflash
  1424.             self.flash(timing.flash_color, timing.flash_duration * 2)
  1425.             #....................................................................
  1426.             @wait_flash = timing.flash_duration
  1427.             #....................................................................
  1428.             if @_total_damage >0
  1429.               @flash_shake_switch = true
  1430.               @flash_shake = 10
  1431.             end
  1432.           end
  1433.           return timing.flash_color.alpha * timing.flash_duration
  1434.         when 2
  1435.           unless dontflash
  1436.             if self.viewport != nil
  1437.               self.viewport.flash(timing.flash_color, timing.flash_duration * 2)
  1438.               return timing.flash_color.alpha * timing.flash_duration
  1439.             end
  1440.           end
  1441.         when 3
  1442.           unless dontflash
  1443.             self.flash(nil, timing.flash_duration * 2)
  1444.             #@_loop_animation_count = 1
  1445.             #·改·
  1446.             @wait_count = timing.flash_duration
  1447.             #·改·
  1448.           end
  1449.           return timing.flash_color.alpha * timing.flash_duration
  1450.         end
  1451.       end      
  1452.       return 0
  1453.     end   
  1454. end
  1455. end
  1456. #==============================================================================
  1457. # ■ Sprite_Battler
  1458. #==============================================================================
  1459. class Sprite_Battler < RPG::Sprite
  1460. #--------------------------------------------------------------------------
  1461. # ● 初始化对像
  1462. #    添加跳跃记录
  1463. #--------------------------------------------------------------------------
  1464. def initialize(viewport, battler = nil)
  1465.   super(viewport)
  1466.   @battler = battler
  1467.   @battler_visible = false
  1468.   @flash_shake_switch = true

  1469.   #........................................................................
  1470.   @once = 0
  1471.   @frame_index = -1
  1472.   @last_frame = 0
  1473.   #........................................................................
  1474. end
  1475. #--------------------------------------------------------------------------
  1476. # ● 刷新画面
  1477. #    增添跳跃功能
  1478. #--------------------------------------------------------------------------
  1479. def update
  1480.   super
  1481.   # 战斗者为 nil 的情况下
  1482.   if @battler == nil
  1483.     self.bitmap = nil
  1484.     loop_animation(nil)
  1485.    loop_animation1(nil)
  1486.     return
  1487.   end
  1488.   # 文件名和色相与当前情况有差异的情况下
  1489.   if @battler.battler_name != @battler_name or
  1490.      @battler.battler_hue != @battler_hue
  1491.     # 获取、设置位图
  1492.     @battler_name = @battler.battler_name
  1493.     @battler_hue = @battler.battler_hue
  1494.     self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
  1495.     #.......................................................................
  1496.     if not @battler.hidden and not @battler.dead?
  1497.       @battler.setup_battler_ani(@battler.battler_name.split(/★/)[1])
  1498.     end
  1499.     #.......................................................................
  1500.     @width = bitmap.width
  1501.     @height = bitmap.height
  1502.     self.ox = @width / 2
  1503.     self.oy = @height
  1504.   end
  1505.   #.......................................................................
  1506.   update_actor_animation
  1507.   update_enemy_animation
  1508.   #.......................................................................
  1509.   # 动画 ID 与当前的情况有差异的情况下
  1510.   #.........................................................................
  1511.   if @battler.is_a?(Game_Enemy)
  1512.     if @once == 1 and @loop_animation_once == 1 and
  1513.        @battler.battler_dead_ani == 1
  1514.       @battler.setup_battler_ani(@battler.battler_name.split(/★/)[5])
  1515.     elsif @once == 1 and @loop_animation_once == 1 and $scene.phase != 5
  1516.       @battler.setup_battler_ani(@battler.battler_name.split(/★/)[1])
  1517.     end
  1518.   end
  1519.   if @battler.is_a?(Game_Actor)
  1520.     ####################################################################
  1521.     if @once == 1 and @loop_animation_once == 1 and $scene.phase != 5 and
  1522.        @battler.battler_dead_ani == 1 and @battler.dead?
  1523.       @battler.setup_battler_ani(@battler.battler_name.split(/★/)[5])
  1524.     #######################################################################
  1525.     elsif @once == 1 and @loop_animation_once == 1 and $scene.phase != 5
  1526.       @battler.setup_battler_ani(@battler.battler_name.split(/★/)[1])
  1527.       #################################################################
  1528.       $fangyu = 0
  1529.       @battler.setup_battler_dead_ani(0)
  1530.       ########################################################
  1531.     elsif @once == 1 and @loop_animation_once == 1 and $scene.phase == 5 and
  1532.           not @battler.dead?
  1533.       @battler.setup_battler_ani(@battler.battler_name.split(/★/)[7])
  1534.       ######################################################
  1535.       $fangyu = 0
  1536.       @battler.setup_battler_dead_ani(0)
  1537.       ######################################################
  1538.     end
  1539.   end
  1540.   
  1541. if @battler.damage == nil and
  1542.        @battler.state_animation_id != @state_animation_id
  1543.       @state_animation_id = @battler.state_animation_id
  1544.      # loop_animation($data_animations[@state_animation_id])
  1545.        loop_animation1($data_animations[@state_animation_id])
  1546.     end

  1547.    
  1548.   if @battler.battler_ani != @battler_ani
  1549.     @battler_ani = @battler.battler_ani
  1550.     @once = @battler.battler_ani_once
  1551.     loop_animation($data_animations[@battler_ani.to_i])
  1552.     # @battler.state_animation_id != @state_animation_id
  1553.       #@state_animation_id = @battler.state_animation_id
  1554.      # loop_animation($data_animations[@state_animation_id])
  1555.       # loop_animation1($data_animations[@state_animation_id])
  1556.      
  1557.    
  1558.   end
  1559.   #.........................................................................
  1560.   # 明灭
  1561.   if @battler.blink
  1562.     blink_on
  1563.   else
  1564.     blink_off
  1565.   end
  1566.   # 不可见的情况下
  1567.   unless @battler_visible
  1568.     # 出现
  1569.     if not @battler.hidden and not @battler.dead? and
  1570.        (@battler.damage == nil or @battler.damage_pop)
  1571.       #.......................................................................
  1572.       if @battler.is_a?(Game_Enemy)
  1573.         @battler.setup_battler_ani(@battler.battler_name.split(/★/)[1])
  1574.         #appear
  1575.       else
  1576.         @battler.setup_battler_ani(@battler.battler_name.split(/★/)[1])
  1577.       end
  1578.       #.......................................................................
  1579.       @battler_visible = true
  1580.     end
  1581.   end
  1582.   # 可见的情况下
  1583.   if @battler_visible
  1584.     # 逃跑
  1585.     if @battler.hidden
  1586.       $game_system.se_play($data_system.escape_se)
  1587.       escape
  1588.       @battler_visible = false
  1589.     end
  1590.     # 白色闪烁
  1591.     if @battler.white_flash
  1592.       whiten
  1593.       @battler.white_flash = false
  1594.     end
  1595.     # 动画
  1596.     if @battler.animation_id != 0
  1597.       animation = $data_animations[@battler.animation_id]
  1598.       animation(animation, @battler.animation_hit,@battler.damage, @battler.critical)
  1599.       # animation(animation, @battler.animation_hit)
  1600.       @battler.animation_id = 0
  1601.     end
  1602.     # 伤害
  1603.     if @battler.damage_pop
  1604.       @battler.damage = nil
  1605.       @battler.critical = false
  1606.       @battler.damage_pop = false
  1607.     end
  1608.     # korapusu
  1609.     if @battler.damage == nil and @battler.dead?
  1610.       if @battler.is_a?(Game_Enemy)
  1611.         if @battler.battler_dead_ani != 1
  1612.           #p "Battler Death Error"
  1613.           $game_system.se_play($data_system.enemy_collapse_se)
  1614.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[4], 1)
  1615.           @battler.setup_battler_dead_ani(1)
  1616.         end
  1617.         #.....................................................................
  1618.         collapse
  1619.         #.....................................................................
  1620.       else
  1621.         #.....................................................................
  1622.         if @battler.battler_dead_ani != 1
  1623.           #p "Battler Death Error"
  1624.           $game_system.se_play($data_system.enemy_collapse_se)
  1625.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[4], 1)
  1626.           @battler.setup_battler_dead_ani(1)
  1627.         end
  1628.         #.....................................................................
  1629.       end
  1630.       @battler_visible = false
  1631.     end
  1632.   end
  1633.   # 设置活动块的坐标
  1634.   if @flash_shake_switch == true
  1635.     self.x = @battler.screen_x
  1636.     self.y = @battler.screen_y
  1637.     self.z = @battler.screen_z
  1638.     @flash_shake_switch = false
  1639.   end
  1640.   if @flash_shake != 0 and @battler.damage != nil and RPG::BATTLER_JUMP
  1641.     if @battler.is_a?(Game_Enemy)
  1642.       case @flash_shake
  1643.       when 9..10
  1644.         self.x -=4
  1645.         self.y -=4
  1646.         self.z = @battler.screen_z
  1647.       when 6..8
  1648.         self.x -=2
  1649.         self.y -=2
  1650.         self.z = @battler.screen_z
  1651.       when 3..5
  1652.         self.x +=2
  1653.         self.y +=2
  1654.         self.z = @battler.screen_z
  1655.       when 1..2
  1656.         self.x +=4
  1657.         self.y +=4
  1658.         self.z = @battler.screen_z
  1659.       end
  1660.     end
  1661.     if @battler.is_a?(Game_Actor)
  1662.       case @flash_shake
  1663.       when 9..10
  1664.         self.x +=4
  1665.         self.y +=4
  1666.         self.z = @battler.screen_z
  1667.       when 6..8
  1668.         self.x +=2
  1669.         self.y +=2
  1670.         self.z = @battler.screen_z
  1671.       when 3..5
  1672.         self.x -=2
  1673.         self.y -=2
  1674.         self.z = @battler.screen_z
  1675.       when 1..2
  1676.         self.x -=4
  1677.         self.y -=4
  1678.         self.z = @battler.screen_z
  1679.       end
  1680.     end
  1681.    @flash_shake -= 1
  1682.   end
  1683. end
  1684. end

  1685. #==============================================================================
  1686. # ■ Scene_Battle
  1687. #------------------------------------------------------------------------------
  1688. #  处理战斗画面的类。
  1689. #==============================================================================

  1690. class Scene_Battle
  1691. #--------------------------------------------------------------------------
  1692. # ● 定义实例变量
  1693. #--------------------------------------------------------------------------
  1694. attr_reader   :animation1_id                    # 行动方动画ID
  1695. end
  1696. class Sprite_Battler < RPG::Sprite
  1697.   #--------------------------------------------------------------------------
  1698.   # ● 处理角色动作
  1699.   #--------------------------------------------------------------------------
  1700.   def update_actor_animation
  1701.     if @battler.is_a?(Game_Actor)
  1702.       if @battler.show_damage_value != nil
  1703.         self.damage(@battler.show_damage_value, false)
  1704.         @battler.show_damage(nil)
  1705.         @battler.setup_battler_ani(@battler.battler_name.split(/★/)[3], 1)
  1706.         @battler.setup_battler_hurt_ani(1)
  1707.       end
  1708.       if @battler.current_action.kind == 0 and @battler.current_action.basic == 1 and @battler.show_damage_value != nil
  1709.         # 防御的时候
  1710.         if @hits > @temp_hits and not @battler.dead?
  1711.           ############ #小改动
  1712.           @temp_hits+=1
  1713.           ############
  1714.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[2], 1)
  1715.           @battler.setup_battler_hurt_ani(1)
  1716.           #################################################################
  1717.         elsif @last_hits == 1 and not @battler.dead?
  1718.           ############ #小改动
  1719.           @last_hits = 0
  1720.           ############
  1721.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[2], 1)
  1722.           @battler.setup_battler_hurt_ani(1)
  1723.           #################################################################
  1724.         elsif @frame_index != -1 and @frame_index != @last_frame and not @battler.dead? and [email protected]_a?(Numeric)
  1725.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[2], 1)
  1726.           @battler.setup_battler_hurt_ani(1)
  1727.           #################################################################
  1728.         elsif @last_hits == 1 and not @battler.dead? and [email protected]_a?(Numeric)
  1729.           ############ #小改动
  1730.           @last_hits = 0
  1731.           ############
  1732.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[2], 1)
  1733.           @battler.setup_battler_hurt_ani(1)
  1734.           #################################################################
  1735.         end
  1736.       else
  1737.         # 单回合只有一次攻击
  1738.        if @last_hits == 1 and not @battler.dead? and @battler.damage.is_a?(Numeric) and @battler.damage > 0 and $fangyu != 1
  1739.           ############ #小改动
  1740.           @last_hits = 0
  1741.           ############
  1742.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[3], 1)
  1743.           @battler.setup_battler_hurt_ani(1)
  1744.           #################################################################
  1745.         # 单回合多次攻击
  1746.        elsif @hits > @temp_hits and @frame_index != @last_frame and not @battler.dead? and @battler.damage.is_a?(Numeric) and @battler.damage > 0 and $fangyu != 1
  1747.           ############ #小改动
  1748.           @temp_hits+=1
  1749.           ############
  1750.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[3], 1)
  1751.           @battler.setup_battler_hurt_ani(1)
  1752.         ########################################################################
  1753.         # 死亡之前攻击
  1754.        elsif @hits > @temp_hits and @frame_index != @last_frame and @battler.damage.is_a?(Numeric) and @battler.damage > 0 and $fangyu != 1 and @battler.dead? and @battler.battler_dead_ani != 1
  1755.           ############ #小改动
  1756.           @temp_hits+=1
  1757.           ############
  1758.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[3], 1)
  1759.           @battler.setup_battler_hurt_ani(1)
  1760.           #################################################################
  1761.         # 闪避的回合
  1762.        elsif !@battler_damage.is_a?(Numeric) and @last_hits == 1 and @frame_index == @last_frame
  1763.           @last_hits = 0
  1764.           #################################################################
  1765.         # 无伤害的攻击
  1766.         elsif @battler_damage.is_a?(Numeric) and @battler.damage == 0 and @last_hits == 1 and @frame_index == @last_frame
  1767.           @last_hits = 0
  1768.           #################################################################
  1769.         # 死亡判定
  1770.        elsif @last_hits == 1 and @frame_index == @last_frame and @battler.dead? and @battler.battler_dead_ani != 1
  1771. #          for actor in $game_party.actors
  1772. #默认的话  如果死亡  其他角色添加第六号状态
  1773. #《石焚刃暖》里 是狂暴状态
  1774. #            if @battler != actor
  1775. #              actor.add_state(6)
  1776. #            end
  1777. #          end
  1778.           @last_hits = 0
  1779.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[4], 1)
  1780.           @battler.setup_battler_dead_ani(1)
  1781.           #################################################################
  1782.         # 胜利判定
  1783.        elsif $scene.phase == 5 and @once == 0 and @battler_name != nil and not @battler.hidden and not @battler.dead? and $game_temp.battle_proc == nil
  1784.              @once = 1
  1785.              @battler.setup_battler_ani(@battler_name.split(/★/)[6], 1)
  1786.         end
  1787.       end
  1788.     end
  1789.   end
  1790.   #--------------------------------------------------------------------------
  1791.   # ● 处理敌人动作
  1792.   #--------------------------------------------------------------------------
  1793.   def update_enemy_animation
  1794.     if @battler.is_a?(Game_Enemy)
  1795.       if @battler.show_damage_value != nil
  1796.         self.damage(@battler.show_damage_value, false)
  1797.         @battler.show_damage(nil)
  1798.         @battler.setup_battler_ani(@battler.battler_name.split(/★/)[3], 1)
  1799.         @battler.setup_battler_hurt_ani(1)
  1800.       end
  1801.       if @battler.current_action.kind == 0 and @battler.current_action.basic == 1
  1802.       else
  1803.         # 单回合只有一次攻击
  1804.         if @last_hits == 1 and not @battler.dead? and @battler.damage.is_a?(Numeric) and @battler.damage > 0
  1805.           ############ #小改动
  1806.           @last_hits = 0
  1807.           ############
  1808.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[3], 1)
  1809.           @battler.setup_battler_hurt_ani(1)
  1810.           #################################################################
  1811.         # 单回合多次攻击
  1812.        elsif @hits > @temp_hits and @frame_index != @last_frame and not @battler.dead? and @battler.damage.is_a?(Numeric) and @battler.damage > 0
  1813.           ############ #小改动
  1814.           @temp_hits+=1
  1815.           ############
  1816.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[3], 1)
  1817.           @battler.setup_battler_hurt_ani(1)
  1818.           #################################################################
  1819.         # 死亡之前攻击
  1820.        elsif @hits > @temp_hits and @frame_index != @last_frame and @battler.damage.is_a?(Numeric) and @battler.damage > 0 and @battler.dead? and @battler.battler_dead_ani != 1
  1821.           ############ #小改动
  1822.           @temp_hits+=1
  1823.           ############
  1824.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[3], 1)
  1825.           @battler.setup_battler_hurt_ani(1)
  1826.           #################################################################
  1827.         # 无伤害的攻击
  1828.         elsif !@battler_damage.is_a?(Numeric) and @last_hits == 1 and @frame_index == @last_frame
  1829.           @last_hits = 0
  1830.           #################################################################
  1831.         # 闪避的回合
  1832.         elsif @battler_damage.is_a?(Numeric) and @battler.damage == 0 and @last_hits == 1 and @frame_index == @last_frame
  1833.           @last_hits = 0
  1834.           #################################################################
  1835.         # 死亡判定
  1836.         elsif @last_hits == 1 and @frame_index == @last_frame and @battler.dead? and @battler.battler_dead_ani != 1
  1837.           @last_hits = 0
  1838.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[4], 1)
  1839.           @battler.setup_battler_dead_ani(1)
  1840.           collapse
  1841.         end
  1842.       end
  1843.     end
  1844.   end
  1845. end

复制代码
用了全动画战斗系统、结果人物战斗图就变成半透明的了、不知道从哪儿改


作者: 模仿者    时间: 2010-6-29 13:02
动画的合成方式选普通
作者: 越前リョーマ    时间: 2010-6-29 13:03
是不是你素材的缘故?
另外全动画还有战斗图么……不是只有动画么……
作者: 天使怪盗    时间: 2010-6-29 13:14
动画的合成方式选普通
模仿者 发表于 2010-6-29 13:02



在数据库编辑器里么?似乎没找到在哪儿
作者: 天使怪盗    时间: 2010-6-29 13:15
是不是你素材的缘故?
另外全动画还有战斗图么……不是只有动画么……
越前リョーマ 发表于 2010-6-29 13:03



就是说的动画战斗图啊、动画的也是战斗图吧~素材的缘故可以排除~

作者: 艾尔凡斯    时间: 2010-6-29 13:21
在数据库——动画——画片总括设置——合成方式——普通
作者: 天使怪盗    时间: 2010-6-29 13:52
问题解决了、多谢、还是尔们有经验




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