Project1

标题: 为啥胜利动画没显示? [打印本页]

作者: ilyfenger    时间: 2013-6-21 11:18
标题: 为啥胜利动画没显示?
各位大大,我用的是全动画战斗系统(修改加强再加强版)脚本!在队伍战斗测试时可以显示战斗胜利动画,但是到测试游戏时战斗胜利动画就显示不了,这是为什么?求各位大大帮小人解惑,小人不胜感激!
作者: 美丽晨露    时间: 2013-6-21 12:22
大概楼主没有在原战斗脚本添加显示胜利动画
作者: ilyfenger    时间: 2013-6-21 14:37
请问美丽晨露姐姐,应该在哪添加呢?我是菜鸟有很多地方不懂的!求指教!
作者: 美丽晨露    时间: 2013-6-21 14:39
ilyfenger 发表于 2013-6-21 14:37 请问美丽晨露姐姐,应该在哪添加呢?我是菜鸟有很多地方不懂的!求指教! ...

现在在学校不方便,回去后写给你
作者: ilyfenger    时间: 2013-6-21 14:46
哦!谢谢姐姐了
作者: ilyfenger    时间: 2013-6-21 19:25
本帖最后由 ilyfenger 于 2013-6-21 19:26 编辑

美丽晨露姐姐:你还没出现吗?请问还有哪位大大知道的请告诉俺,俺不胜感激!
作者: ilyfenger    时间: 2013-6-21 22:06
本帖最后由 ilyfenger 于 2013-6-23 22:14 编辑

[attach]168455[/attach]我的工程范例已解决!谢谢各位大哥大姐!
作者: 美丽晨露    时间: 2013-6-21 22:25
  1. #==============================================================================
  2. # ■ Scene_Battle (分割定义 2)
  3. #------------------------------------------------------------------------------
  4. #  处理战斗画面的类。
  5. #==============================================================================

  6. class Scene_Battle
  7.   #--------------------------------------------------------------------------
  8.   # ● 开始自由战斗回合
  9.   #--------------------------------------------------------------------------
  10.   def start_phase1
  11.     # 转移到回合 1
  12.     @phase = 1
  13.     # 清除全体同伴的行动
  14.     $game_party.clear_actions
  15.     # 设置战斗事件
  16.     setup_battle_event
  17.   end
  18.   #--------------------------------------------------------------------------
  19.   # ● 刷新画面 (自由战斗回合)
  20.   #--------------------------------------------------------------------------
  21.   def update_phase1
  22.     # 胜败判定
  23.     if judge
  24.       # 胜利或者失败的情况下 : 过程结束
  25.       return
  26.     end
  27.     # 开始同伴命令回合
  28.     start_phase2
  29.   end
  30.   #--------------------------------------------------------------------------
  31.   # ● 开始同伴命令回合
  32.   #--------------------------------------------------------------------------
  33.   def start_phase2
  34.     # 转移到回合 2
  35.     @phase = 2
  36.     # 设置角色为非选择状态
  37.     @actor_index = -1
  38.     @active_battler = nil
  39.     # 有效化同伴指令窗口
  40.     @party_command_window.active = true
  41.     @party_command_window.visible = true
  42.     # 无效化角色指令窗口
  43.     @actor_command_window.active = false
  44.     @actor_command_window.visible = false
  45.     # 清除主回合标志
  46.     $game_temp.battle_main_phase = false
  47.     # 清除全体同伴的行动
  48.     $game_party.clear_actions
  49.     # 不能输入命令的情况下
  50.     unless $game_party.inputable?
  51.       # 开始主回合
  52.       start_phase4
  53.     end
  54.   end
  55.   #--------------------------------------------------------------------------
  56.   # ● 刷新画面 (同伴命令回合)
  57.   #--------------------------------------------------------------------------
  58.   def update_phase2
  59.     # 按下 C 键的情况下
  60.     if Input.trigger?(Input::C)
  61.       # 同伴指令窗口光标位置分支
  62.       case @party_command_window.index
  63.       when 0  # 战斗
  64.         # 演奏确定 SE
  65.         $game_system.se_play($data_system.decision_se)
  66.         # 开始角色的命令回合
  67.         start_phase3
  68.       when 1  # 逃跑
  69.         # 不能逃跑的情况下
  70.         if $game_temp.battle_can_escape == false
  71.           # 演奏冻结 SE
  72.           $game_system.se_play($data_system.buzzer_se)
  73.           return
  74.         end
  75.         # 演奏确定 SE
  76.         $game_system.se_play($data_system.decision_se)
  77.         # 逃走处理
  78.         update_phase2_escape
  79.       end
  80.       return
  81.     end
  82.   end
  83.   #--------------------------------------------------------------------------
  84.   # ● 画面更新 (同伴指令回合 : 逃跑)
  85.   #--------------------------------------------------------------------------
  86.   def update_phase2_escape
  87.     # 计算敌人速度的平均值
  88.     enemies_agi = 0
  89.     enemies_number = 0
  90.     for enemy in $game_troop.enemies
  91.       if enemy.exist?
  92.         enemies_agi += enemy.agi
  93.         enemies_number += 1
  94.       end
  95.     end
  96.     if enemies_number > 0
  97.       enemies_agi /= enemies_number
  98.     end
  99.     # 计算角色速度的平均值
  100.     actors_agi = 0
  101.     actors_number = 0
  102.     for actor in $game_party.actors
  103.       if actor.exist?
  104.         actors_agi += actor.agi
  105.         actors_number += 1
  106.       end
  107.     end
  108.     if actors_number > 0
  109.       actors_agi /= actors_number
  110.     end
  111.     # 逃跑成功判定
  112.     success = rand(100) < 50 * actors_agi / enemies_agi
  113.     # 成功逃跑的情况下
  114.     if success
  115.       # 演奏逃跑 SE
  116.       $game_system.se_play($data_system.escape_se)
  117.       # 还原为战斗开始前的 BGM
  118.       $game_system.bgm_play($game_temp.map_bgm)
  119.       # 战斗结束
  120.       battle_end(1)
  121.     # 逃跑失败的情况下
  122.     else
  123.       # 清除全体同伴的行动
  124.       $game_party.clear_actions
  125.       # 开始主回合
  126.       start_phase4
  127.     end
  128.   end
  129.   #--------------------------------------------------------------------------
  130.   # ● 开始结束战斗回合
  131.   #--------------------------------------------------------------------------
  132.   def start_phase5
  133.     # 转移到回合 5
  134.     @phase = 5
  135.     #........................................................................
  136.     # 胜利动画
  137.     @spriteset.win
  138.     #........................................................................
  139.     # 演奏战斗结束 ME
  140.     $game_system.me_play($game_system.battle_end_me)
  141.     # 还原为战斗开始前的 BGM
  142.     $game_system.bgm_play($game_temp.map_bgm)
  143.     # 初始化 EXP、金钱、宝物
  144.     exp = 0
  145.     gold = 0
  146.     treasures = []
  147.     # 循环
  148.     for enemy in $game_troop.enemies
  149.       # 敌人不是隐藏状态的情况下
  150.       unless enemy.hidden
  151.         # 获得 EXP、增加金钱
  152.         exp += enemy.exp
  153.         gold += enemy.gold
  154.         # 出现宝物判定
  155.         if rand(100) < enemy.treasure_prob
  156.           if enemy.item_id > 0
  157.             treasures.push($data_items[enemy.item_id])
  158.           end
  159.           if enemy.weapon_id > 0
  160.             treasures.push($data_weapons[enemy.weapon_id])
  161.           end
  162.           if enemy.armor_id > 0
  163.             treasures.push($data_armors[enemy.armor_id])
  164.           end
  165.         end
  166.       end
  167.     end
  168.     # 限制宝物数为 6 个
  169.     treasures = treasures[0..5]
  170.     # 获得 EXP
  171.     for i in 0...$game_party.actors.size
  172.       actor = $game_party.actors[i]
  173.       if actor.cant_get_exp? == false
  174.         last_level = actor.level
  175.         actor.exp += exp
  176.         if actor.level > last_level
  177.           @status_window.level_up(i)
  178.         end
  179.       end
  180.     end
  181.     # 获得金钱
  182.     $game_party.gain_gold(gold)
  183.     # 获得宝物
  184.     for item in treasures
  185.       case item
  186.       when RPG::Item
  187.         $game_party.gain_item(item.id, 1)
  188.       when RPG::Weapon
  189.         $game_party.gain_weapon(item.id, 1)
  190.       when RPG::Armor
  191.         $game_party.gain_armor(item.id, 1)
  192.       end
  193.     end
  194.     # 生成战斗结果窗口
  195.     @result_window = Window_BattleResult.new(exp, gold, treasures)
  196.     # 设置等待计数
  197.     @phase5_wait_count = 100
  198.   end
  199.   #--------------------------------------------------------------------------
  200.   # ● 画面更新 (结束战斗回合)
  201.   #--------------------------------------------------------------------------
  202.   def update_phase5
  203.     # 等待计数大于 0 的情况下
  204.     if @phase5_wait_count > 0
  205.       # 减少等待计数
  206.       @phase5_wait_count -= 1
  207.       # 等待计数为 0 的情况下
  208.       if @phase5_wait_count == 0
  209.         # 显示结果窗口
  210.         @result_window.visible = true
  211.         # 清除主回合标志
  212.         $game_temp.battle_main_phase = false
  213.         # 刷新状态窗口
  214.         @status_window.refresh
  215.       end
  216.       return
  217.     end
  218.     # 按下 C 键的情况下
  219.     if Input.trigger?(Input::C)
  220.       # 战斗结束
  221.       battle_end(0)
  222.     end
  223.   end
  224. end
复制代码
覆盖Scene_Battle 2的脚本或者插入MAIN之前
作者: ilyfenger    时间: 2013-6-21 22:29
好了哦!谢谢美丽晨露姐姐了!
作者: 冷血冰狐    时间: 2013-7-9 14:21
美丽晨露 发表于 2013-6-21 22:25
覆盖Scene_Battle 2的脚本或者插入MAIN之前

问问一下,这个胜利动画如何设置啊?
作者: 美丽晨露    时间: 2013-7-9 14:32
冷血冰狐 发表于 2013-7-9 14:21 问问一下,这个胜利动画如何设置啊?

需要全动画战斗脚本才能支持。
作者: 冷血冰狐    时间: 2013-7-9 14:38
美丽晨露 发表于 2013-7-9 14:32
需要全动画战斗脚本才能支持。

我做一些防御与待机战斗的动画,就是用图片4张动作为一张的战斗效果,,很不对齐,无论是待机还是防御,挨打,都会晃来晃去的,很不好使的,




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