设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1638|回复: 1
打印 上一主题 下一主题

[已经过期] 全动画战斗的动画Z值修改,请高手帮忙。

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3176
在线时间
1442 小时
注册时间
2009-7-27
帖子
1454
跳转到指定楼层
1
发表于 2015-5-20 21:14:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
如何由我自己定义角色动画的Z值呢?

  1. class Spriteset_Battle
  2.   #--------------------------------------------------------------------------
  3.   # ● 初始化变量
  4.   #--------------------------------------------------------------------------
  5.   def initialize
  6.     # 生成显示端口
  7.     @viewport1 = Viewport.new(0, 0, 640, 480)
  8.     @viewport2 = Viewport.new(0, 0, 640, 480)
  9.     @viewport3 = Viewport.new(0, 0, 640, 480)
  10.     @viewport4 = Viewport.new(0, 0, 640, 480)
  11.     @viewport2.z = 101
  12.     @viewport3.z = 200
  13.     @viewport4.z = 5000
  14.     # 生成战斗背景活动块
  15.     @battleback_sprite = Sprite.new(@viewport1)
  16.     # 生成敌人活动块
  17.     @enemy_sprites = []
  18.     for enemy in $game_troop.enemies.reverse
  19.       @enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy))
  20.     end
  21.     # 生成敌人活动块
  22.     @actor_sprites = []
  23.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  24.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  25.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  26.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  27.     # 生成天候
  28.     @weather = RPG::Weather.new(@viewport1)
  29.     # 生成图片活动块
  30.     @picture_sprites = []
  31.     for i in 51..100
  32.       @picture_sprites.push(Sprite_Picture.new(@viewport3,
  33.         $game_screen.pictures[i]))
  34.     end
  35.     # 生成计时器块
  36.     @timer_sprite = Sprite_Timer.new
  37.     # 刷新画面
  38.     update
  39.   end
  40.   #..........................................................................
  41.   #--------------------------------------------------------------------------
  42.   # ● 胜利图
  43.   #--------------------------------------------------------------------------
  44.   def win
  45.     for sprite in @actor_sprites
  46.       sprite.win
  47.     end
  48.   end
  49.   #..........................................................................
  50.   #--------------------------------------------------------------------------
  51.   # ● 刷新画面
  52.   #--------------------------------------------------------------------------
  53.   def update
  54.     # 刷新角色的活动块 (对应角色的替换)
  55.     @actor_sprites[0].battler = $game_party.actors[0]
  56.     @actor_sprites[1].battler = $game_party.actors[1]
  57.     @actor_sprites[2].battler = $game_party.actors[2]
  58.     @actor_sprites[3].battler = $game_party.actors[3]
  59.     # 战斗背景的文件名与现在情况有差异的情况下
  60.     if @battleback_name != $game_temp.battleback_name
  61.       @battleback_name = $game_temp.battleback_name
  62.       if @battleback_sprite.bitmap != nil
  63.         @battleback_sprite.bitmap.dispose
  64.       end
  65.       @battleback_sprite.bitmap = RPG::Cache.battleback(@battleback_name)
  66.       @battleback_sprite.src_rect.set(0, 0, 640, 480)
  67.     end
  68.     # 刷新战斗者的活动块
  69.     for sprite in @enemy_sprites + @actor_sprites
  70.       sprite.update
  71.     end
  72.     # 刷新天气图形
  73.     @weather.type = $game_screen.weather_type
  74.     @weather.max = $game_screen.weather_max
  75.     @weather.update
  76.     # 刷新图片活动块
  77.     for sprite in @picture_sprites
  78.       sprite.update
  79.     end
  80.     # 刷新计时器活动块
  81.     @timer_sprite.update
  82.     # 设置画面的色调与震动位置
  83.     @viewport1.tone = $game_screen.tone
  84.     @viewport1.ox = $game_screen.shake
  85.     # 设置画面的闪烁色
  86.     @viewport4.color = $game_screen.flash_color
  87.     # 刷新显示端口
  88.     @viewport1.update
  89.     @viewport2.update
  90.     @viewport4.update
  91.   end
  92. end
  93. class Arrow_Enemy < Arrow_Base
  94.   #--------------------------------------------------------------------------
  95.   # ● 获取光标指向的敌人
  96.   #--------------------------------------------------------------------------
  97.   def enemy
  98.     return $game_troop.enemies[@index]
  99.   end
  100.   #--------------------------------------------------------------------------
  101.   # ● 刷新画面
  102.   #--------------------------------------------------------------------------
  103.   def update
  104.     super
  105.     # 如果指向不存在的敌人就离开
  106.     $game_troop.enemies.size.times do
  107.       break if self.enemy.exist?
  108.       @index += 1
  109.       @index %= $game_troop.enemies.size
  110.     end
  111.     # 光标右
  112.     if Input.repeat?(Input::RIGHT)
  113.       $game_system.se_play($data_system.cursor_se)
  114.       $game_troop.enemies.size.times do
  115.         @index += 1
  116.         @index %= $game_troop.enemies.size
  117.         break if self.enemy.exist?
  118.       end
  119.     end
  120.     # 光标左
  121.     if Input.repeat?(Input::LEFT)
  122.       $game_system.se_play($data_system.cursor_se)
  123.       $game_troop.enemies.size.times do
  124.         @index += $game_troop.enemies.size - 1
  125.         @index %= $game_troop.enemies.size
  126.         break if self.enemy.exist?
  127.       end
  128.     end
  129.     # 设置活动块坐标
  130.     if self.enemy != nil
  131.       self.x = self.enemy.screen_x + self.ox
  132.       self.y = self.enemy.screen_y + self.oy
  133.     end
  134.   end
  135. end
  136. class Arrow_Actor < Arrow_Base
  137.   #--------------------------------------------------------------------------
  138.   # ● 获取光标指向的角色
  139.   #--------------------------------------------------------------------------
  140.   def actor
  141.     return $game_party.actors[@index]
  142.   end
  143.   #--------------------------------------------------------------------------
  144.   # ● 刷新画面
  145.   #--------------------------------------------------------------------------
  146.   def update
  147.     super
  148.     # 光标右
  149.     if Input.repeat?(Input::RIGHT)
  150.       $game_system.se_play($data_system.cursor_se)
  151.       @index += 1
  152.       @index %= $game_party.actors.size
  153.     end
  154.     # 光标左
  155.     if Input.repeat?(Input::LEFT)
  156.       $game_system.se_play($data_system.cursor_se)
  157.       @index += $game_party.actors.size - 1
  158.       @index %= $game_party.actors.size
  159.     end
  160.     # 设置活动块坐标
  161.     if self.actor != nil
  162.       self.x = self.actor.screen_x + self.ox
  163.       self.y = self.actor.screen_y + self.oy
  164.     end
  165.   end
  166. end
  167. class Scene_Battle
  168.   #--------------------------------------------------------------------------
  169.   # ● 刷新画面 (主回合步骤 3 : 行动方动画)
  170.   #--------------------------------------------------------------------------
  171.   def update_phase4_step3
  172.     # 行动方动画 (ID 为 0 的情况下是白色闪烁)
  173.     if @animation1_id == 0
  174.       @active_battler.white_flash = true
  175.     else
  176.       @active_battler.animation_id = @animation1_id
  177.       @active_battler.animation_hit = true
  178.     end
  179.     # 对像方动画
  180.     for target in @target_battlers
  181.       target.animation_id = @animation2_id
  182.       target.animation_hit = (target.damage != "Miss")
  183.       #.......................................................................
  184.       if target.is_a?(Game_Actor)
  185.         if target.current_action.kind == 0 and target.current_action.basic == 1
  186.           target.setup_battler_ani(target.battler_name.split(/★/)[2])
  187.         else
  188.           target.setup_battler_hurt_ani(0)
  189.         end
  190.       end
  191.       if target.is_a?(Game_Enemy)
  192.         if target.current_action.kind == 0 and target.current_action.basic == 1
  193.           target.setup_battler_ani(target.battler_name.split(/★/)[1])
  194.         else
  195.           target.setup_battler_hurt_ani(0)
  196.         end
  197.       end
  198.       #.......................................................................
  199.     end
  200.     # 对像方动画
  201.     for target in @target_battlers
  202.       target.animation_id = @animation2_id
  203.       target.animation_hit = (target.damage != "Miss")
  204.       #......................................................................
  205.     end
  206.     # 限制动画长度、最低 8 帧
  207.     @wait_count = 8
  208.     # 移至步骤 5
  209.     @phase4_step = 5
  210.   end
  211.   #--------------------------------------------------------------------------
  212.   # ● 刷新画面 (主回合步骤 4 : 对像方动画) ★
  213.   #--------------------------------------------------------------------------
  214.   def update_phase4_step4
  215.     # 限制动画长度、最低 8 帧
  216.     @wait_count = 8
  217.     # 移至步骤 5
  218.     @phase4_step = 5
  219.   end
  220. end

  221. class Scene_Battle
  222.   #..........................................................................
  223.   #--------------------------------------------------------------------------
  224.   # ● 返回phase
  225.   #--------------------------------------------------------------------------
  226.   def phase
  227.     return @phase
  228.   end
  229.   #--------------------------------------------------------------------------
  230.   # ● 返回phase4_step
  231.   #--------------------------------------------------------------------------
  232.   def phase4_step
  233.     return @phase4_step
  234.   end
  235.   #--------------------------------------------------------------------------
  236.   # ● 返回phase4_step
  237.   #--------------------------------------------------------------------------
  238.   def actor_command_active?
  239.     return @actor_command_window.active
  240.   end
  241.   #..........................................................................
  242. end
  243. class Game_Battler
  244.   #..........................................................................
  245.   #--------------------------------------------------------------------------
  246.   # ● 获取循环的动画 ID
  247.   #--------------------------------------------------------------------------  
  248.   def show_damage(value)
  249.     @show_damage_value = value
  250.   end
  251.   #--------------------------------------------------------------------------
  252.   # ● 获取循环的动画 ID
  253.   #--------------------------------------------------------------------------
  254.   def show_damage_value
  255.     return @show_damage_value
  256.   end
  257.   #--------------------------------------------------------------------------
  258.   # ● 获取循环的动画 ID
  259.   #--------------------------------------------------------------------------
  260.   def battler_ani
  261.     return @battler_ani
  262.   end
  263.   #--------------------------------------------------------------------------
  264.   # ● 获取循环的动画 ID
  265.   #--------------------------------------------------------------------------
  266.   def setup_battler_ani(battler_ani, once = 0)
  267.     @battler_ani = battler_ani
  268.     @once = once
  269.   end
  270.   #--------------------------------------------------------------------------
  271.   # ● 获取循环的动画 ID
  272.   #--------------------------------------------------------------------------
  273.   def setup_battler_hurt_ani(hurt)
  274.     @hurt = hurt
  275.   end  
  276.   #--------------------------------------------------------------------------
  277.   # ● 获取循环的动画 ID
  278.   #--------------------------------------------------------------------------
  279.   def setup_battler_dead_ani(over)
  280.     @over = over
  281.   end
  282.   #--------------------------------------------------------------------------
  283.   # ● 获取循环的动画 ID
  284.   #--------------------------------------------------------------------------
  285.   def battler_dead_ani
  286.     return @over
  287.   end
  288.   #--------------------------------------------------------------------------
  289.   # ● 获取循环的动画 ID
  290.   #--------------------------------------------------------------------------
  291.   def battler_ani_once
  292.     return @once
  293.   end
  294.   #--------------------------------------------------------------------------
  295.   # ● 获取循环的动画 ID
  296.   #--------------------------------------------------------------------------
  297.   def battler_hurt_ani
  298.     return @hurt
  299.   end
  300.   #..........................................................................
  301. end
  302. class Sprite_Battler < RPG::Sprite
  303.   #..........................................................................
  304.   #--------------------------------------------------------------------------
  305.   # ● 胜利图
  306.   #--------------------------------------------------------------------------
  307.   def win
  308.     if @battler_name != nil and not @battler.hidden and not @battler.dead?
  309.       @battler.setup_battler_ani(@battler_name.split(/★/)[6], 1)
  310.     end
  311.   end
  312.   #..........................................................................
  313.   #--------------------------------------------------------------------------
  314.   # ● 释放
  315.   #--------------------------------------------------------------------------
  316.   def dispose
  317.     if self.bitmap != nil
  318.       self.bitmap.dispose
  319.     end
  320.     super
  321.   end
  322.   #--------------------------------------------------------------------------
  323.   # ● 刷新画面
  324.   #--------------------------------------------------------------------------
  325.   def update
  326.     super
  327.     # 战斗者为 nil 的情况下
  328.     if @battler == nil
  329.       self.bitmap = nil
  330.       loop_animation(nil)
  331.       return
  332.     end
  333.     # 文件名和色相与当前情况有差异的情况下
  334.     if @battler.battler_name != @battler_name or
  335.        @battler.battler_hue != @battler_hue
  336.       @battler_hue = @battler.battler_hue
  337.       # 获取、设置位图
  338.       @battler_name = @battler.battler_name
  339.       self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
  340.       #.......................................................................
  341.       @battler.setup_battler_ani(@battler.battler_name.split(/★/)[1])
  342.       #.......................................................................
  343.       @width = bitmap.width
  344.       @height = bitmap.height
  345.       self.ox = @width / 2
  346.       self.oy = @height
  347.       # 如果是战斗不能或者是隐藏状态就把透明度设置成 0
  348.       if @battler.is_a?(Game_Enemy)
  349.         if @battler.dead? or @battler.hidden
  350.           self.opacity = 0
  351.         end
  352.       end
  353.     end
  354.     # 动画 ID 与当前的情况有差异的情况下
  355.     #.........................................................................
  356.     if @battler.battler_ani != @battler_ani
  357.       @battler_ani = @battler.battler_ani
  358.       loop_animation($data_animations[@battler_ani.to_i])
  359.     end
  360.     #.........................................................................
  361.     # 应该被显示的角色的情况下
  362.     if @battler.is_a?(Game_Actor) and @battler_visible
  363.       # 不是主状态的时候稍稍降低点透明度
  364.       if $game_temp.battle_main_phase
  365.         self.opacity += 3 if self.opacity < 255
  366.       else
  367.         self.opacity -= 3 if self.opacity > 207
  368.       end
  369.     end
  370.     # 明灭
  371.     if @battler.blink
  372.       blink_on
  373.     else
  374.       blink_off
  375.     end
  376.     # 不可见的情况下
  377.     unless @battler_visible
  378.       # 出现 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
  379.       if not @battler.hidden and not @battler.dead? and
  380.          (@battler.damage == nil or @battler.damage_pop)
  381.         if @battler.is_a?(Game_Enemy)
  382.           appear
  383.         else
  384.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[1])
  385.         end
  386.         @battler_visible = true
  387.       end
  388.     end
  389.     # 可见的情况下
  390.     if @battler_visible
  391.       # 逃跑
  392.       if @battler.hidden
  393.         $game_system.se_play($data_system.escape_se)
  394.         escape
  395.         @battler_visible = false
  396.       end
  397.       # 白色闪烁
  398.       if @battler.white_flash
  399.         whiten
  400.         @battler.white_flash = false
  401.       end
  402.       # 动画
  403.       if @battler.animation_id != 0
  404.         animation = $data_animations[@battler.animation_id]
  405.         animation(animation, @battler.animation_hit)
  406.         @battler.animation_id = 0
  407.       end
  408.       # 伤害
  409.       if @battler.damage_pop
  410.         damage(@battler.damage, @battler.critical)
  411.         @battler.damage = nil
  412.         @battler.critical = false
  413.         @battler.damage_pop = false
  414.       end
  415.       # korapusu
  416.       if @battler.damage == nil and @battler.dead?
  417.         #....................................................................
  418.         if @battler.is_a?(Game_Enemy)
  419.           $game_system.se_play($data_system.enemy_collapse_se)
  420.           #collapse
  421.         else
  422.           $game_system.se_play($data_system.actor_collapse_se)
  423.         end
  424.         #....................................................................
  425.         @battler_visible = false
  426.       end
  427.     end
  428.     # 设置活动块的坐标
  429.     self.x = @battler.screen_x
  430.     self.y = @battler.screen_y
  431.     self.z = @battler.screen_z
  432.   end
  433. end

  434. module RPG
  435. #--------------------------------------------------------------------------
  436. # ● 常量设定
  437. #--------------------------------------------------------------------------
  438. # 是否显示总伤害
  439. SHOW_TOTAL_DAMAGE = true
  440. # 角色受攻击时是否跳一下
  441. BATTLER_JUMP = true

  442. class Sprite < ::Sprite
  443.    #==========================================
  444.    # 修改说明:
  445.    # @flash_shake用来制作挨打时候跳跃
  446.    # @_damage    用来记录每次打击之后弹出数字
  447.    # @_total_damage 记录总伤害
  448.    # @_total_damage_duration 总伤害持续帧
  449.    #==========================================
  450.    #alias 66RPG_rainbow_initialize : initialize
  451.    def initialize(viewport = nil)
  452.      #66RPG_rainbow_initialize(viewport)
  453.      super(viewport)
  454.      @_whiten_duration = 0
  455.      @_appear_duration = 0
  456.      @_escape_duration = 0
  457.      @_collapse_duration = 0
  458.      @_damage_duration = 0
  459.      @_animation_duration = 0
  460.      @_blink = false
  461.      # 挨打时候跳跃
  462.      @flash_shake = 0
  463.      # 伤害记录数组
  464.      @_damage = []
  465.      # 总伤害数字
  466.      @_total_damage = 0
  467.      # 总伤害持续帧
  468.      @_total_damage_duration = 0
  469.      #.........................................................................
  470.      @hits = 0
  471.      #.........................................................................
  472.    end
  473.    def damage(value, critical)
  474.      #.........................................................................
  475.      #清除hit数
  476.      dispose_hit
  477.      #.........................................................................
  478.      if value.is_a?(Numeric)
  479.        damage_string = value.abs.to_s
  480.      else
  481.        damage_string = value.to_s
  482.      end
  483.      bitmap = Bitmap.new(160, 48)
  484.      bitmap.font.name = "黑体"
  485.      bitmap.font.size = 24
  486.      bitmap.font.color.set(0, 0, 0)
  487.      bitmap.draw_text(-1, 12-1, 160, 36, damage_string, 1)
  488.      bitmap.draw_text(+1, 12-1, 160, 36, damage_string, 1)
  489.      bitmap.draw_text(-1, 12+1, 160, 36, damage_string, 1)
  490.      bitmap.draw_text(+1, 12+1, 160, 36, damage_string, 1)
  491.      #=======================================
  492.      # 修改:颜色
  493.      #=======================================
  494.      if value.is_a?(Numeric) and value < 0
  495.        bitmap.font.color.set(176, 255, 144)
  496.      else
  497.        bitmap.font.color.set(255, 55, 55)
  498.      end
  499.      bitmap.draw_text(0, 12, 160, 36, damage_string, 1)
  500.      if critical
  501.        bitmap.font.size = 20
  502.        bitmap.font.color.set(0, 0, 0)
  503.        bitmap.draw_text(-1, -1, 160, 20, "暴击", 1)
  504.        bitmap.draw_text(+1, -1, 160, 20, "暴击", 1)
  505.        bitmap.draw_text(-1, +1, 160, 20, "暴击", 1)
  506.        bitmap.draw_text(+1, +1, 160, 20, "暴击", 1)
  507.        bitmap.font.color.set(255, 255, 255)
  508.        bitmap.draw_text(0, 0, 160, 20, "暴击", 1)
  509.      end
  510.      @_damage_sprite = ::Sprite.new#(self.viewport)
  511.      @_damage_sprite.bitmap = bitmap
  512.      @_damage_sprite.ox = 80
  513.      @_damage_sprite.oy = 20
  514.      @_damage_sprite.x = self.x
  515.      @_damage_sprite.y = self.y - self.oy / 2
  516.      @_damage_sprite.z = 3000
  517.      @_damage_duration = 40
  518.      #=======================================
  519.      # 修改:推入新的伤害
  520.      #=======================================
  521.      @_damage.push([@_damage_sprite,@_damage_duration-10,0, rand(30) - 15, rand(3)])
  522.      # 总伤害处理
  523.      make_total_damage(value)
  524.    end
  525.    #--------------------------------------------------------------------------
  526.    # ● 返回 @hits
  527.    #--------------------------------------------------------------------------
  528.    def get_hit
  529.      return @hits
  530.    end
  531.    #--------------------------------------------------------------------------
  532.    # ● hit数的美化描绘
  533.    #--------------------------------------------------------------------------
  534.    #..........................................................................
  535.    def hit
  536.      # 如果伤害值是数值
  537.      # 转为字符串
  538.      value=@hits
  539.      hits_string = value.to_s
  540.      # 初始化位图
  541.      bitmap = Bitmap.new(320, 64)
  542.      bitmap.font.name = "黑体"
  543.      bitmap.font.size = 32
  544.      # 分割伤害值字符串
  545.      hits_array = hits_string.scan(/./)
  546.      hits_x = - 36.2#hits_string.size * 18.1 # 81 - hits_string.size * 18.1
  547.      rect_y = 0
  548.      # 循环伤害值字符串
  549.      for char in hits_array
  550.        # 后移一位
  551.        hits_x += 36.2
  552.        number = char.to_i
  553.        # 显示伤害数字
  554.        bitmap.blt(hits_x, 0, RPG::Cache.picture("Number"),
  555.        Rect.new(number * 36.2, rect_y, 36.2, 50))
  556.      end
  557.      hits_x += 18.1
  558.      bitmap.blt(hits_x, 0, RPG::Cache.picture("HITS"),
  559.                 Rect.new(0, -21, 90, 50))
  560.      # 伤害值定位
  561.      @_hits_sprite = ::Sprite.new(self.viewport)
  562.      @_hits_sprite.bitmap = bitmap
  563.      @_hits_sprite.x = 560 - hits_string.size * 36.2
  564.      @_hits_sprite.y = 70
  565.      @_hits_sprite.z = 3000
  566.      @_hits_duration = 40
  567.    end
  568.    #..........................................................................
  569.    #--------------------------------------------------------------------------
  570.    # ● 总伤害处理
  571.    #--------------------------------------------------------------------------
  572.    def make_total_damage(value)
  573.      if value.is_a?(Numeric) and SHOW_TOTAL_DAMAGE
  574.        @_total_damage += value
  575.      else
  576.        return
  577.      end
  578.      bitmap = Bitmap.new(300, 150)
  579.      bitmap.font.name = "黑体"
  580.      bitmap.font.size = 28
  581.      bitmap.font.color.set(0, 0, 0)
  582.      bitmap.draw_text(+2, 12+2, 160, 36, @_total_damage.abs.to_s, 1)
  583.      if @_total_damage < 0
  584.        bitmap.font.color.set(80, 255, 00)
  585.      else
  586.        bitmap.font.color.set(255, 140, 0)
  587.      end
  588.      bitmap.draw_text(0, 12, 160, 36, @_total_damage.abs.to_s, 1)
  589.      if @_total_damage_sprite.nil?
  590.        @_total_damage_sprite = ::Sprite.new#(self.viewport)
  591.        @_total_damage_sprite.ox = 80
  592.        @_total_damage_sprite.oy = 20
  593.        @_total_damage_sprite.z = 3000
  594.      end
  595.      @_total_damage_sprite.bitmap = bitmap
  596.      @_total_damage_sprite.zoom_x = 1.5
  597.      @_total_damage_sprite.zoom_y = 1.5
  598.      @_total_damage_sprite.x = self.x
  599.      @_total_damage_sprite.y = self.y  - self.oy / 2 - 64
  600.      @_total_damage_sprite.z = 3001
  601.      #.........................................................................
  602.      @_total_damage_duration = 40
  603.      #.........................................................................
  604.      #.........................................................................
  605.      #hit数描绘
  606.      @hits+=1
  607.      hit
  608.      #.........................................................................
  609.    end
  610.    def animation(animation, hit, battler_damage="", battler_critical=false)
  611.      dispose_animation      
  612.      #=======================================
  613.      # 修改:记录伤害和critical
  614.      #=======================================
  615.      @battler_damage = battler_damage
  616.      @battler_critical = battler_critical
  617.      @_animation = animation
  618.      return if @_animation == nil
  619.      @_animation_hit = hit
  620.      @_animation_duration = @_animation.frame_max
  621.      animation_name = @_animation.animation_name
  622.      animation_hue = @_animation.animation_hue
  623.      bitmap = RPG::Cache.animation(animation_name, animation_hue)
  624.      #=======================================
  625.      # 修改:计算总闪光权限值
  626.      #=======================================
  627.      for timing in @_animation.timings
  628.        quanzhong = animation_process_timing(timing, @_animation_hit,true)
  629.        @all_quanzhong += quanzhong
  630.        # 记录最后一次闪光
  631.        @_last_frame = timing.frame if quanzhong != 0
  632.      end
  633.      #.........................................................................
  634.      @last_frame = @_last_frame
  635.      #.........................................................................
  636.      if @@_reference_count.include?(bitmap)
  637.        @@_reference_count[bitmap] += 1
  638.      else
  639.        @@_reference_count[bitmap] = 1
  640.      end
  641.      #=======================================
  642.      # 修改:行动方动画不显示伤害
  643.      #=======================================
  644.      if $scene.is_a?(Scene_Battle)
  645.        if $scene.animation1_id == @battler.animation_id
  646.          @battler_damage = ""
  647.        end
  648.      end
  649.      @_animation_sprites = []
  650.      if @_animation.position != 3 or not @@_animations.include?(animation)
  651.        for i in 0..15
  652.          sprite = ::Sprite.new(self.viewport)
  653.          sprite.bitmap = bitmap
  654.          sprite.visible = false
  655.          @_animation_sprites.push(sprite)
  656.        end
  657.        unless @@_animations.include?(animation)
  658.          @@_animations.push(animation)
  659.        end
  660.      end
  661.      update_animation
  662.    end
  663.    #=======================================
  664.    # 修改:更换清除伤害的算法,以防万一
  665.    #       本内容在脚本中没有使用过
  666.    #=======================================
  667.    def dispose_damage
  668.      for damage in @_damage.reverse
  669.        damage[0].bitmap.dispose
  670.        damage[0].dispose
  671.        @_damage.delete(damage)
  672.      end
  673.      @_total_damage = 0
  674.      @_last_frame = -1
  675.      if @_total_damage_sprite != nil
  676.        @_total_damage_duration = 0
  677.        @_total_damage_sprite.bitmap.dispose
  678.        @_total_damage_sprite.dispose
  679.        @_total_damage_sprite = nil
  680.      end
  681.    end
  682.    #=======================================
  683.    # 清除hit数
  684.    #=======================================
  685.    #...........................................................................
  686.    def dispose_hit
  687.      if @_hits_sprite != nil
  688.        @_hits_sprite.bitmap.dispose
  689.        @_hits_sprite.dispose
  690.        @_hits_sprite = nil
  691.      end
  692.    end
  693.    #...........................................................................
  694.    def dispose_animation
  695.      #=======================================
  696.      # 修改:清除记录的伤害,清除权重记录
  697.      #=======================================
  698.      @battler_damage = nil
  699.      @battler_critical = nil
  700.      @all_quanzhong = 1
  701.      @_total_damage = 0
  702.      @_last_frame = -1
  703.      #.........................................................................
  704.      @hits = 0
  705.      #.........................................................................
  706.      if @_animation_sprites != nil
  707.        sprite = @_animation_sprites[0]
  708.        if sprite != nil
  709.          @@_reference_count[sprite.bitmap] -= 1
  710.          if @@_reference_count[sprite.bitmap] == 0
  711.            sprite.bitmap.dispose
  712.          end
  713.        end
  714.        for sprite in @_animation_sprites
  715.          sprite.dispose
  716.        end
  717.        @_animation_sprites = nil
  718.        @_animation = nil
  719.      end
  720.    end
  721.    def update
  722.      super
  723.      if @_whiten_duration > 0
  724.        @_whiten_duration -= 1
  725.        self.color.alpha = 128 - (16 - @_whiten_duration) * 10
  726.      end
  727.      if @_appear_duration > 0
  728.        @_appear_duration -= 1
  729.        self.opacity = (16 - @_appear_duration) * 16
  730.      end
  731.      if @_escape_duration > 0
  732.        @_escape_duration -= 1
  733.        self.opacity = 256 - (32 - @_escape_duration) * 10
  734.      end
  735.      if @_collapse_duration > 0
  736.        @_collapse_duration -= 1
  737.        self.opacity = 256 - (48 - @_collapse_duration) * 6
  738.      end
  739.      #=======================================
  740.      # 修改:更新算法,更新弹出
  741.      #=======================================
  742.      if @_damage_duration > 0
  743.        @_damage_duration -= 1
  744.        for damage in @_damage
  745.          damage[0].x = self.x + self.viewport.rect.x -
  746.                        self.ox + self.src_rect.width / 2 +
  747.                        (40 - damage[1]) * damage[3] / 10
  748.          damage[0].y -= damage[4]+damage[1]/10
  749.          damage[0].opacity = damage[1]*20
  750.          damage[1] -= 1
  751.          if damage[1]==0
  752.            damage[0].bitmap.dispose
  753.            damage[0].dispose
  754.            @_damage.delete(damage)
  755.            next
  756.          end
  757.        end
  758.      end
  759.      #=======================================
  760.      # 添加:弹出总伤害
  761.      #=======================================
  762.      if @_total_damage_duration > 0
  763.        @_total_damage_duration -= 1
  764.        @_total_damage_sprite.y -= 1 if @_total_damage_duration % 2 == 0
  765.        if @_total_damage_sprite.zoom_x > 1.0
  766.          @_total_damage_sprite.zoom_x -= 0.05
  767.        end
  768.        if @_total_damage_sprite.zoom_y > 1.0
  769.          @_total_damage_sprite.zoom_y -= 0.05
  770.        end
  771.        @_total_damage_sprite.opacity = 256 - (24 - @_total_damage_duration) * 16
  772.        #......................................................................
  773.        if @_total_damage_duration <= 7 and @_total_damage_duration > 0
  774.          @_hits_sprite.opacity -= 32
  775.          @_hits_sprite.x += 1
  776.        end
  777.        #......................................................................
  778.        if @_total_damage_duration <= 0
  779.          #.....................................................................
  780.          dispose_hit
  781.          #.....................................................................
  782.          @_total_damage = 0
  783.          @_total_damage_duration = 0
  784.          @_total_damage_sprite.bitmap.dispose
  785.          @_total_damage_sprite.dispose
  786.          @_total_damage_sprite = nil
  787.        end
  788.      end
  789.      #=======================================
  790.      if @_animation != nil and (Graphics.frame_count % 2 == 0)
  791.        @_animation_duration -= 1
  792.        update_animation
  793.      end
  794.      if @_loop_animation != nil and (Graphics.frame_count % 2 == 0)
  795.        update_loop_animation
  796.        @_loop_animation_index += 1
  797.        #......................................................................
  798.        @loop_animation_once = 0
  799.        @loop_animation_once = 1 if @once == 1 and @_loop_animation_index == @_loop_animation.frame_max
  800.        #......................................................................
  801.        @_loop_animation_index %= @_loop_animation.frame_max
  802.      end
  803.      if @_blink
  804.        @_blink_count = (@_blink_count + 1) % 32
  805.        if @_blink_count < 16
  806.          alpha = (16 - @_blink_count) * 6
  807.        else
  808.          alpha = (@_blink_count - 16) * 6
  809.        end
  810.        self.color.set(255, 255, 255, alpha)
  811.      end
  812.      @@_animations.clear
  813.    end
  814.    #..........................................................................
  815.    def loop_animation_once
  816.      return @_loop_animation_once
  817.    end
  818.    #..........................................................................
  819.    def update_animation
  820.      if @_animation_duration > 0
  821.        frame_index = @_animation.frame_max - @_animation_duration
  822.        @frame_index = frame_index
  823.        cell_data = @_animation.frames[frame_index].cell_data
  824.        position = @_animation.position
  825.        animation_set_sprites(@_animation_sprites, cell_data, position)
  826.        #=======================================
  827.        # 修改:弹出伤害,权重计算
  828.        #=======================================
  829.        for timing in @_animation.timings
  830.          if timing.frame == frame_index
  831.            t = 1.0 * animation_process_timing(timing, @_animation_hit)            
  832.            #p t,"当前权重", @all_quanzhong,"总权重"
  833.            if @battler_damage.is_a?(Numeric) and t != 0
  834.              t *= @battler_damage
  835.              t /= @all_quanzhong
  836.              #p t,"当前伤害",@battler_damage,"总伤害"
  837.              t = t.to_i
  838.              # 最后一次闪光的话,伤害修正
  839.              if frame_index == @_last_frame
  840.                @_total_damage = @battler_damage - t
  841.              end
  842.              #p t,@battler_damage,@all_quanzhong
  843.              damage(t,@battler_critical)
  844.            # 防止重复播放miss
  845.            elsif !@battler_damage.is_a?(Numeric) and timing.flash_scope != 0
  846.              damage(@battler_damage,@battler_critical)
  847.            end
  848.          end
  849.        end
  850.      else
  851.        dispose_animation
  852.      end
  853.    end
  854.    #=======================================
  855.    # 修改:敌人跳跃的功能 + 添加返回数值
  856.    #=======================================
  857.    def update_loop_animation
  858.      frame_index = @_loop_animation_index
  859.      cell_data = @_loop_animation.frames[frame_index].cell_data
  860.      position = @_loop_animation.position
  861.      #·改·
  862.      if @wait_count.to_i <= 0
  863.        @wait_count = 0
  864.        animation_set_sprites(@_loop_animation_sprites, cell_data, position)
  865.      else
  866.        @wait_count -= 1
  867.        for sprite in @_loop_animation_sprites
  868.          sprite.visible = false
  869.        end
  870.      end
  871.      if @wait_flash.to_i <= 0
  872.        @wait_flash = 0
  873.      else
  874.        @wait_flash -= 1
  875.        for sprite in @_loop_animation_sprites
  876.          sprite.blend_type = 1
  877.        end
  878.      end
  879.      #·改·
  880.      for timing in @_loop_animation.timings
  881.        if timing.frame == frame_index
  882.          animation_process_timing(timing, true)
  883.        end
  884.      end
  885.    end
  886.    #=======================================
  887.    # 修改:敌人跳跃的功能 + 添加返回数值
  888.    #=======================================
  889.    def loop_animation(animation)
  890.      return if animation == @_loop_animation
  891.      dispose_loop_animation
  892.      @_loop_animation = animation
  893.      return if @_loop_animation == nil
  894.      @_loop_animation_index = 0
  895.      animation_name = @_loop_animation.animation_name
  896.      animation_hue = @_loop_animation.animation_hue
  897.      bitmap = RPG::Cache.animation(animation_name, animation_hue)
  898.      if @@_reference_count.include?(bitmap)
  899.        @@_reference_count[bitmap] += 1
  900.      else
  901.        @@_reference_count[bitmap] = 1
  902.      end
  903.      @_loop_animation_sprites = []
  904.      for i in 0..15
  905.        sprite = ::Sprite.new
  906.        sprite.bitmap = bitmap
  907.        sprite.visible = false
  908.        @_loop_animation_sprites.push(sprite)
  909.      end
  910.      update_loop_animation
  911.    end
  912.    #=======================================
  913.    # 修改:敌人跳跃的功能 + 添加返回数值
  914.    #=======================================
  915.     def animation_process_timing(timing, hit,dontflash=false)
  916.       if (timing.condition == 0) or
  917.          (timing.condition == 1 and hit == true) or
  918.          (timing.condition == 2 and hit == false)
  919.         unless dontflash
  920.           if timing.se.name != ""
  921.             se = timing.se
  922.             Audio.se_play("Audio/SE/" + se.name, se.volume, se.pitch)
  923.           end
  924.         end
  925.         case timing.flash_scope
  926.         when 1
  927.           unless dontflash
  928.             self.flash(timing.flash_color, timing.flash_duration * 2)
  929.             #....................................................................
  930.             @wait_flash = timing.flash_duration
  931.             #....................................................................
  932.             if @_total_damage >0
  933.               @flash_shake_switch = true
  934.               @flash_shake = 10
  935.             end
  936.           end
  937.           return timing.flash_color.alpha * timing.flash_duration
  938.         when 2
  939.           unless dontflash
  940.             if self.viewport != nil
  941.               self.viewport.flash(timing.flash_color, timing.flash_duration * 2)
  942.               return timing.flash_color.alpha * timing.flash_duration
  943.             end
  944.           end
  945.         when 3
  946.           unless dontflash
  947.             self.flash(nil, timing.flash_duration * 2)
  948.             #@_loop_animation_count = 1
  949.             #·改·
  950.             @wait_count = timing.flash_duration
  951.             #·改·
  952.           end
  953.           return timing.flash_color.alpha * timing.flash_duration
  954.         end
  955.       end      
  956.       return 0
  957.     end   
  958. end
  959. end
  960. #==============================================================================
  961. # ■ Sprite_Battler
  962. #==============================================================================
  963. class Sprite_Battler < RPG::Sprite
  964. #--------------------------------------------------------------------------
  965. # ● 初始化对像
  966. #    添加跳跃记录
  967. #--------------------------------------------------------------------------
  968. def initialize(viewport, battler = nil)
  969.   super(viewport)
  970.   @battler = battler
  971.   @battler_visible = false
  972.   @flash_shake_switch = true
  973.   #........................................................................
  974.   @once = 0
  975.   @frame_index = -1
  976.   @last_frame = 0
  977.   #........................................................................
  978. end
  979. #--------------------------------------------------------------------------
  980. # ● 刷新画面
  981. #    增添跳跃功能
  982. #--------------------------------------------------------------------------
  983. def update
  984.   super
  985.   # 战斗者为 nil 的情况下
  986.   if @battler == nil
  987.     self.bitmap = nil
  988.     loop_animation(nil)
  989.     return
  990.   end
  991.   # 文件名和色相与当前情况有差异的情况下
  992.   if @battler.battler_name != @battler_name or
  993.      @battler.battler_hue != @battler_hue
  994.     # 获取、设置位图
  995.     @battler_name = @battler.battler_name
  996.     @battler_hue = @battler.battler_hue
  997.     self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
  998.     #.......................................................................
  999.     if not @battler.hidden and not @battler.dead?
  1000.       @battler.setup_battler_ani(@battler.battler_name.split(/★/)[1])
  1001.     end
  1002.     #.......................................................................
  1003.     @width = bitmap.width
  1004.     @height = bitmap.height
  1005.     self.ox = @width / 2
  1006.     self.oy = @height
  1007.   end
  1008.   #.......................................................................
  1009.   update_actor_animation
  1010.   update_enemy_animation
  1011.   #.......................................................................
  1012.   # 动画 ID 与当前的情况有差异的情况下
  1013.   #.........................................................................
  1014.   if @battler.is_a?(Game_Enemy)
  1015.     if @once == 1 and @loop_animation_once == 1 and
  1016.        @battler.battler_dead_ani == 1
  1017.       @battler.setup_battler_ani(@battler.battler_name.split(/★/)[5])
  1018.     elsif @once == 1 and @loop_animation_once == 1 and $scene.phase != 5
  1019.       @battler.setup_battler_ani(@battler.battler_name.split(/★/)[1])
  1020.     end
  1021.   end
  1022.   if @battler.is_a?(Game_Actor)
  1023.     if @once == 1 and @loop_animation_once == 1 and $scene.phase != 5 and
  1024.        @battler.battler_dead_ani == 1
  1025.       @battler.setup_battler_ani(@battler.battler_name.split(/★/)[5])
  1026.     elsif @once == 1 and @loop_animation_once == 1 and $scene.phase != 5
  1027.       @battler.setup_battler_ani(@battler.battler_name.split(/★/)[1])
  1028.     elsif @once == 1 and @loop_animation_once == 1 and $scene.phase == 5 and
  1029.           not @battler.dead?
  1030.       @battler.setup_battler_ani(@battler.battler_name.split(/★/)[7])
  1031.     end
  1032.   end
  1033.   if @battler.battler_ani != @battler_ani
  1034.     @battler_ani = @battler.battler_ani
  1035.     @once = @battler.battler_ani_once
  1036.     loop_animation($data_animations[@battler_ani.to_i])
  1037.   end
  1038.   #.........................................................................
  1039.   # 应该被显示的角色的情况下
  1040.   if @battler.is_a?(Game_Actor) and @battler_visible
  1041.     # 不是主状态的时候稍稍降低点透明度
  1042.     if $game_temp.battle_main_phase
  1043.       self.opacity += 3 if self.opacity < 255
  1044.     else
  1045.       self.opacity -= 3 if self.opacity > 207
  1046.     end
  1047.   end
  1048.   # 明灭
  1049.   if @battler.blink
  1050.     blink_on
  1051.   else
  1052.     blink_off
  1053.   end
  1054.   # 不可见的情况下
  1055.   unless @battler_visible
  1056.     # 出现
  1057.     if not @battler.hidden and not @battler.dead? and
  1058.        (@battler.damage == nil or @battler.damage_pop)
  1059.       #.......................................................................
  1060.       if @battler.is_a?(Game_Enemy)
  1061.         @battler.setup_battler_ani(@battler.battler_name.split(/★/)[1])
  1062.         #appear
  1063.       else
  1064.         @battler.setup_battler_ani(@battler.battler_name.split(/★/)[1])
  1065.       end
  1066.       #.......................................................................
  1067.       @battler_visible = true
  1068.     end
  1069.   end
  1070.   # 可见的情况下
  1071.   if @battler_visible
  1072.     # 逃跑
  1073.     if @battler.hidden
  1074.       $game_system.se_play($data_system.escape_se)
  1075.       escape
  1076.       @battler_visible = false
  1077.     end
  1078.     # 白色闪烁
  1079.     if @battler.white_flash
  1080.       whiten
  1081.       @battler.white_flash = false
  1082.     end
  1083.     # 动画
  1084.     if @battler.animation_id != 0
  1085.       animation = $data_animations[@battler.animation_id]
  1086.       animation(animation, @battler.animation_hit,@battler.damage, @battler.critical)
  1087.       @battler.animation_id = 0
  1088.     end
  1089.     # 伤害
  1090.     if @battler.damage_pop
  1091.       @battler.damage = nil
  1092.       @battler.critical = false
  1093.       @battler.damage_pop = false
  1094.     end
  1095.     # korapusu
  1096.     if @battler.damage == nil and @battler.dead?
  1097.       if @battler.is_a?(Game_Enemy)
  1098.         if @battler.battler_dead_ani != 1
  1099.           #p "Battler Death Error"
  1100.           $game_system.se_play($data_system.enemy_collapse_se)
  1101.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[4], 1)
  1102.           @battler.setup_battler_dead_ani(1)
  1103.         end
  1104.         #.....................................................................
  1105.         collapse
  1106.         #.....................................................................
  1107.       else
  1108.         #.....................................................................
  1109.         if @battler.battler_dead_ani != 1
  1110.           #p "Battler Death Error"
  1111.           $game_system.se_play($data_system.enemy_collapse_se)
  1112.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[4], 1)
  1113.           @battler.setup_battler_dead_ani(1)
  1114.         end
  1115.         #.....................................................................
  1116.       end
  1117.       @battler_visible = false
  1118.     end
  1119.   end
  1120.   # 设置活动块的坐标
  1121.   if @flash_shake_switch == true
  1122.     self.x = @battler.screen_x
  1123.     self.y = @battler.screen_y
  1124.     self.z = @battler.screen_z
  1125.     @flash_shake_switch = false
  1126.   end
  1127.   if @flash_shake != 0 and @battler.damage != nil and RPG::BATTLER_JUMP
  1128.     if @battler.is_a?(Game_Enemy)
  1129.       case @flash_shake
  1130.       when 9..10
  1131.         self.x -=4
  1132.         self.y -=4
  1133.         self.z = @battler.screen_z
  1134.       when 6..8
  1135.         self.x -=2
  1136.         self.y -=2
  1137.         self.z = @battler.screen_z
  1138.       when 3..5
  1139.         self.x +=2
  1140.         self.y +=2
  1141.         self.z = @battler.screen_z
  1142.       when 1..2
  1143.         self.x +=4
  1144.         self.y +=4
  1145.         self.z = @battler.screen_z
  1146.       end
  1147.     end
  1148.     if @battler.is_a?(Game_Actor)
  1149.       case @flash_shake
  1150.       when 9..10
  1151.         self.x +=4
  1152.         self.y +=4
  1153.         self.z = @battler.screen_z
  1154.       when 6..8
  1155.         self.x +=2
  1156.         self.y +=2
  1157.         self.z = @battler.screen_z
  1158.       when 3..5
  1159.         self.x -=2
  1160.         self.y -=2
  1161.         self.z = @battler.screen_z
  1162.       when 1..2
  1163.         self.x -=4
  1164.         self.y -=4
  1165.         self.z = @battler.screen_z
  1166.       end
  1167.     end
  1168.     @flash_shake -= 1
  1169.   end
  1170. end
  1171. end

  1172. #==============================================================================
  1173. # ■ Scene_Battle
  1174. #------------------------------------------------------------------------------
  1175. #  处理战斗画面的类。
  1176. #==============================================================================

  1177. class Scene_Battle
  1178. #--------------------------------------------------------------------------
  1179. # ● 定义实例变量
  1180. #--------------------------------------------------------------------------
  1181. attr_reader   :animation1_id                    # 行动方动画ID
  1182. end
  1183. class Sprite_Battler < RPG::Sprite
  1184.   #--------------------------------------------------------------------------
  1185.   # ● 处理角色动作
  1186.   #--------------------------------------------------------------------------
  1187.   def update_actor_animation
  1188.     if @battler.is_a?(Game_Actor)
  1189.       if @battler.show_damage_value != nil
  1190.         self.damage(@battler.show_damage_value, false)
  1191.         @battler.show_damage(nil)
  1192.         @battler.setup_battler_ani(@battler.battler_name.split(/★/)[3], 1)
  1193.         @battler.setup_battler_hurt_ani(1)
  1194.       end
  1195.       if @battler.current_action.kind == 0 and @battler.current_action.basic == 1
  1196.       else
  1197.         if @hits == 1 and not @battler.dead? and @battler.battler_hurt_ani != 1 and @battler.damage.is_a?(Numeric) and @battler.damage > 0
  1198.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[3], 1)
  1199.           @battler.setup_battler_hurt_ani(1)
  1200.         elsif @frame_index == @last_frame and @battler.dead? and @battler.battler_dead_ani != 1
  1201.           for actor in $game_party.actors
  1202.             if @battler != actor
  1203.               actor.add_state(6)
  1204.             end
  1205.           end
  1206.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[4], 1)
  1207.           @battler.setup_battler_dead_ani(1)
  1208.         end
  1209.       end
  1210.     end
  1211.   end
  1212.   #--------------------------------------------------------------------------
  1213.   # ● 处理敌人动作
  1214.   #--------------------------------------------------------------------------
  1215.   def update_enemy_animation
  1216.     if @battler.is_a?(Game_Enemy)
  1217.       if @battler.show_damage_value != nil
  1218.         self.damage(@battler.show_damage_value, false)
  1219.         @battler.show_damage(nil)
  1220.         @battler.setup_battler_ani(@battler.battler_name.split(/★/)[3], 1)
  1221.         @battler.setup_battler_hurt_ani(1)
  1222.       end
  1223.       if @battler.current_action.kind == 0 and @battler.current_action.basic == 1
  1224.       else
  1225.         if @hits == 1 and not @battler.dead? and @battler.battler_hurt_ani != 1 and @battler.damage.is_a?(Numeric) and @battler.damage > 0
  1226.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[3], 1)
  1227.           @battler.setup_battler_hurt_ani(1)
  1228.         elsif @frame_index == @last_frame and @battler.dead? and @battler.battler_dead_ani != 1
  1229.           @battler.setup_battler_ani(@battler.battler_name.split(/★/)[4], 1)
  1230.           @battler.setup_battler_dead_ani(1)
  1231.           collapse
  1232.         end
  1233.       end
  1234.     end
  1235.   end
  1236. end
复制代码

点评

好像全动画在待机时是角色Z值,其它动作是动画Z值。  发表于 2015-5-21 16:47

博客:我的博客

Lv3.寻梦者

梦石
0
星屑
1232
在线时间
1017 小时
注册时间
2011-4-30
帖子
1516
2
发表于 2015-5-21 16:39:07 | 只看该作者
搜索.z
大概倒数那几个就是
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-12-13 01:39

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表