Project1

标题: 關於回合制戰鬥結束後的情況 [打印本页]

作者: 沧海流沙    时间: 2016-8-25 22:52
标题: 關於回合制戰鬥結束後的情況
我想讓在戰鬥結束後自動跳過戰況彙報,因為一般都是要按C才能立即結束畫面。

作者: 沧海流沙    时间: 2016-8-25 22:54
用的默認腳本的Scene_Battle 2
應該是以下這段,怎麼讓它不用按C也繼續呢?
# ● 画面更新 (结束战斗回合)
  #--------------------------------------------------------------------------
  def update_phase5
    # 等待计数大于 0 的情况下
    if @phase5_wait_count > 0
      # 减少等待计数
      @phase5_wait_count -= 1
      # 等待计数为 0 的情况下
      if @phase5_wait_count == 0
        # 显示结果窗口
        @result_window.visible = true
        # 清除主回合标志
        $game_temp.battle_main_phase = false
        # 刷新状态窗口
        @status_window.refresh
      end
      return
    end
    # 按下 C 键的情况下
    if Input.trigger?(Input::C)
      # 战斗结束
      battle_end(0)
    end
  end
end

作者: 2357691704    时间: 2016-8-26 05:01
给,#z1、#z2、#z3 是为了防止秒退(即战斗结果窗口一出现就退出战斗。)
RUBY 代码复制
  1. # 生成战斗结果窗口
  2.     @result_window = Window_BattleResult.new(exp, gold, treasures)
  3.     # 设置等待计数
  4.     @phase5_wait_count = 140 #z1
  5.   end
  6.   #--------------------------------------------------------------------------
  7.   # ● 画面更新 (结束战斗回合)
  8.   #--------------------------------------------------------------------------
  9.   def update_phase5
  10.      # 等待计数大于 0 的情况下
  11.    if @phase5_wait_count > 0
  12.       # 减少等待计数
  13.       @phase5_wait_count -= 1
  14.          # 等待计数为 0 的情况下
  15.       if @phase5_wait_count == 80 #z2
  16.         # 显示结果窗口
  17.          @result_window.visible = true
  18.         # 清除主回合标志
  19.         $game_temp.battle_main_phase = false
  20.         # 刷新状态窗口
  21.         @status_window.refresh
  22.         end
  23.       return
  24.     end
  25.     if @phase5_wait_count == 0 #z3
  26.     # 按下 C 键的情况下
  27.    # if Input.trigger?(Input::C)
  28.       # 战斗结束
  29.       battle_end(0)
  30.     end
  31.   end
  32. end

作者: 沧海流沙    时间: 2016-8-26 08:20
本帖最后由 RyanBern 于 2016-8-26 09:42 编辑
2357691704 发表于 2016-8-26 05:01
给,#z1、#z2、#z3 是为了防止秒退(即战斗结果窗口一出现就退出战斗。)
# 生成战斗结果窗口
    @result_ ...


這是升級能力表
RUBY 代码复制
  1. #===============================================================
  2. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  3. #===============================================================
  4. # ———————————————————————————
  5. # ▼▲▼ XRXS_BP10. LEVEL UP!能力上昇表示ウィンドウ plus ▼▲▼
  6. # by 桜雅 在土
  7. #——以下3个如果需要修改,直接输入文件名即可
  8. $data_system_level_up_se = "" #升级时的音效设置
  9. $data_system_level_up_me = "Audio/ME/战斗胜利" # 升级时播放的ME
  10. $data_system_skilllearn_se = "Audio/SE/106-Heal02" # 学会特技时播放的声效。
  11. #=============================================================
  12. # ■ Window_LevelUpWindow
  13. #-------------------------------------------------------------------
  14. #  バトル終了時、レベルアップした場合にステータスを表示するウィンドウです。
  15. #=============================================================
  16. class Window_LevelUpWindow < Window_Base
  17.    #---------------------------------------------------------
  18.    # ● オブジェクト初期化
  19.    #------------------------------------------------------
  20.    def initialize(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
  21.       super(0, 128, 160, 192)
  22.       self.contents = Bitmap.new(width - 32, height - 32)
  23.       self.visible = false
  24.       self.back_opacity = 160
  25.       refresh(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
  26.    end
  27.    #-----------------------------------------------------------
  28.    # ● リフレッシュ
  29.    #---------------------------------------------------------
  30.    def refresh(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
  31.       self.contents.clear
  32.       self.contents.font.color = system_color
  33.       self.contents.font.size = 15
  34.       self.contents.draw_text( 0, 0, 160, 24, "修为上升")
  35.       self.contents.font.size = 18
  36.       self.contents.draw_text( 0, 28, 160, 24, $data_system.words.hp)
  37.       self.contents.draw_text( 0, 50, 160, 24, $data_system.words.sp)
  38.       self.contents.font.size = 14
  39.       self.contents.draw_text( 0, 72, 80, 24, $data_system.words.str)
  40.       self.contents.draw_text( 0, 94, 80, 24, $data_system.words.dex)
  41.       self.contents.draw_text( 0, 116, 80, 24, $data_system.words.agi)
  42.       self.contents.draw_text( 0, 138, 80, 24, $data_system.words.int)
  43.       self.contents.draw_text(92, 0, 128, 24, "→")
  44.       self.contents.draw_text(76, 28, 128, 24, "=")
  45.       self.contents.draw_text(76, 50, 128, 24, "=")
  46.       self.contents.draw_text(76, 72, 128, 24, "=")
  47.       self.contents.draw_text(76, 94, 128, 24, "=")
  48.       self.contents.draw_text(76, 116, 128, 24, "=")
  49.       self.contents.draw_text(76, 138, 128, 24, "=")
  50.       self.contents.font.color = normal_color
  51.       self.contents.draw_text( 0, 0, 88, 24, last_lv.to_s, 2)
  52.       self.contents.draw_text( 0, 28, 72, 24, "+" + up_hp.to_s, 2)
  53.       self.contents.draw_text( 0, 50, 72, 24, "+" + up_sp.to_s, 2)
  54.       self.contents.draw_text( 0, 72, 72, 24, "+" + up_str.to_s, 2)
  55.       self.contents.draw_text( 0, 94, 72, 24, "+" + up_dex.to_s, 2)
  56.       self.contents.draw_text( 0, 116, 72, 24, "+" + up_agi.to_s, 2)
  57.       self.contents.draw_text( 0, 138, 72, 24, "+" + up_int.to_s, 2)
  58.       self.contents.font.size = 20
  59.       self.contents.draw_text( 0, 0, 128, 24, actor.level.to_s, 2)
  60.       self.contents.draw_text( 0, 26, 128, 24, actor.maxhp.to_s, 2)
  61.       self.contents.draw_text( 0, 48, 128, 24, actor.maxsp.to_s, 2)
  62.       self.contents.draw_text( 0, 70, 128, 24, actor.str.to_s, 2)
  63.       self.contents.draw_text( 0, 92, 128, 24, actor.dex.to_s, 2)
  64.       self.contents.draw_text( 0, 114, 128, 24, actor.agi.to_s, 2)
  65.       self.contents.draw_text( 0, 136, 128, 24, actor.int.to_s, 2)
  66.       actor.hp += (actor.maxhp-actor.hp)
  67.       actor.sp += (actor.maxsp-actor.sp)
  68.    end
  69. end
  70. #===========================================================
  71. # ■ Window_SkillLearning
  72. #------------------------------------------------------------------------------
  73. #  レベルアップ時などにスキルを習得した場合にそれを表示するウィンドウです。
  74. #=============================================================
  75. class Window_SkillLearning < Window_Base
  76.    #-------------------------------------------------------------
  77.    # ● 公開インスタンス変数
  78.    #-----------------------------------------------------------
  79.    attr_reader :learned # スキルを習得したかどうか
  80.    #----------------------------------------------------------
  81.    # ● オブジェクト初期化
  82.    #----------------------------------------------------------
  83.    def initialize(class_id, last_lv, now_lv)
  84.       super(160, 64, 320, 64)
  85.       self.contents = Bitmap.new(width - 32, height - 28) # わざと▽を表示
  86.       self.visible = false
  87.       self.back_opacity = 160
  88.       @learned = false
  89.       refresh(class_id, last_lv, now_lv)
  90.    end
  91.    #------------------------------------------------------------
  92.    # ● リフレッシュ
  93.    #-------------------------------------------------------
  94.    def refresh(class_id, last_lv, now_lv)
  95.       for i in 0...$data_classes[class_id].learnings.size
  96.          learn_lv = $data_classes[class_id].learnings[i].level
  97.          # 今回のレベルアップ範囲で習得するスキルの場合
  98.          if learn_lv > last_lv and learn_lv <= now_lv
  99.             @learned = true
  100.             # SEの再生
  101.             if $data_system_skilllearn_se != ""
  102.                Audio.se_play($data_system_skilllearn_se)
  103.             end
  104.             # 各描写
  105.             skill_name = $data_skills[$data_classes[class_id].learnings[i].skill_id].name
  106.             self.contents.clear
  107.             self.contents.font.color = text_color(0)
  108.             self.contents.draw_text(0,0,448,32, "学会招式:"+skill_name)
  109.             self.contents.font.color = text_color(6)
  110.             #self.contents.draw_text(0,0,448,32, "          "+skill_name)
  111.             #self.contents.font.color = text_color(0)
  112.             self.visible = true
  113.             # メインループ
  114.             loop do
  115.                # ゲーム画面を更新
  116.                Graphics.update
  117.                # 入力情報を更新
  118.                Input.update
  119.                # フレーム更新
  120.                update
  121.                # 画面が切り替わったらループを中断
  122.                if @learned == false
  123.                   break
  124.                end
  125.             end
  126.             # メインループここまで
  127.          end
  128.       end
  129.    end
  130.    #-----------------------------------------------------------
  131.    # ● フレーム更新
  132.    #------------------------------------------------------------
  133.    def update
  134.       # C ボタンが押された場合
  135.       if Input.trigger?(Input::C)
  136.          @learned = false
  137.          self.visible = false
  138.       end
  139.    end
  140. end
  141. #==================================================================
  142. # ■ Window_BattleStatus
  143. #==================================================================
  144. class Window_BattleStatus < Window_Base
  145.    #---------------------------------------------------------
  146.    # ● 追加?公開インスタンス変数
  147.    #-------------------------------------------------------
  148.    attr_accessor :level_up_flags # LEVEL UP!表示
  149. end
  150. #===============================================================
  151. # ■ Game_Battler
  152. #===============================================================
  153. class Game_Battler
  154.    #--------------------------------------------------------------
  155.    # ● 追加?公開インスタンス変数
  156.    #----------------------------------------------------------
  157.    attr_accessor :exp_gain_ban # EXP取得一時禁止
  158.    #------------------------------------------------------
  159.    # ● オブジェクト初期化
  160.    #-----------------------------------------------------
  161.    alias xrxs_bp10_initialize initialize
  162.    def initialize
  163.       @exp_gain_ban = false
  164.       xrxs_bp10_initialize
  165.    end
  166.    #-------------------------------------------------------
  167.    # ● ステート [EXP を獲得できない] 判定
  168.    #-----------------------------------------------------
  169.    alias xrxs_bp10_cant_get_exp? cant_get_exp?
  170.    def cant_get_exp?
  171.       if @exp_gain_ban == true
  172.          return true
  173.       else
  174.          return xrxs_bp10_cant_get_exp?
  175.       end
  176.    end
  177. end
  178. #==============================================================
  179. # ■ Scene_Battle
  180. #==============================================================
  181. class Scene_Battle
  182.    #--------------------------------------------------
  183.    # ● アフターバトルフェーズ開始
  184.    #--------------------------------------------------
  185.    alias xrxs_bp10_start_phase5 start_phase5
  186.    def start_phase5
  187.       # EXP 獲得禁止
  188.       for i in 0...$game_party.actors.size
  189.          $game_party.actors[i].exp_gain_ban = true
  190.       end
  191.       xrxs_bp10_start_phase5
  192.       # EXP 獲得禁止の解除
  193.       for i in 0...$game_party.actors.size
  194.          $game_party.actors[i].exp_gain_ban = false
  195.       end
  196.  
  197.  
  198.       # EXPを初期化
  199.       @exp_gained = 0
  200.       for enemy in $game_troop.enemies
  201.          # 獲得 EXPを追加 # エネミーが隠れ状態でない場合
  202.  
  203.       # 設定
  204.       @phase5_step = 1
  205.       @exp_gain_actor = -1
  206.       # リザルトウィンドウを表示
  207.       @result_window.visible = true
  208.    end
  209.    #----------------------------------------------------------
  210.    # ● フレーム更新 (アフターバトルフェーズ)
  211.    #--------------------------------------------------------
  212.    #alias xrxs_bp10_update_phase5 update_phase5
  213.    def update_phase5
  214.       case @phase5_step
  215.       when 1
  216.          update_phase5_step1
  217.       else
  218.          # ウェイトカウントが 0 より大きい場合
  219.          if @phase5_wait_count > 0
  220.             # ウェイトカウントを減らす
  221.             @phase5_wait_count -= 1
  222.             # ウェイトカウントが 0 になった場合
  223.             if @phase5_wait_count == 80
  224.                # リザルトウィンドウを表示
  225.                @result_window.visible = true
  226.                # メインフェーズフラグをクリア
  227.                $game_temp.battle_main_phase = false
  228.                # ステータスウィンドウをリフレッシュ
  229.                @status_window.refresh
  230.             end
  231.             return
  232.          end
  233.     if @phase5_wait_count == 0
  234.       # 战斗结束
  235.       battle_end(0)
  236.     end
  237.          # レベルアップしている場合は強制バトル終了
  238.          battle_end(0) if @levelup_window != nil and @phase5_wait_count <= 0
  239.       end
  240.    end
  241.    #-----------------------------------------------------------
  242.    # ● フレーム更新 (アフターバトルフェーズ 1 : レベルアップ)
  243.    #-----------------------------------------------------------
  244.    def update_phase5_step1
  245.       # C ボタンが押された場合
  246.       if Input.trigger?(Input::C)
  247.          # ウィンドウを閉じて次のアクターへ
  248.          @levelup_window.visible = false if @levelup_window != nil
  249.          @status_window.level_up_flags[@exp_gain_actor] = false
  250.          phase5_next_levelup
  251.       end
  252.    end
  253.    #---------------------------------------------------------
  254.    # ● 次のアクターのレベルアップ表示へ
  255.    #---------------------------------------------------------
  256.    def phase5_next_levelup
  257.       begin
  258.          # 次のアクターへ
  259.          @exp_gain_actor += 1
  260.          # 最後のアクターの場合
  261.          if @exp_gain_actor >= $game_party.actors.size
  262.             # アフターバトルフェーズ開始
  263.             @phase5_step = 0
  264.             return
  265.          end
  266.          actor = $game_party.actors[@exp_gain_actor]
  267.          if actor.cant_get_exp? == false
  268.             # 現在の能力値を保持
  269.             last_level = actor.level
  270.             last_maxhp = actor.maxhp
  271.             last_maxsp = actor.maxsp
  272.             last_str = actor.str
  273.             last_dex = actor.dex
  274.             last_agi = actor.agi
  275.             last_int = actor.int
  276.             # 経験値取得の決定的瞬間(謎
  277.             actor.exp += @exp_gained
  278.             # 判定
  279.             if actor.level > last_level
  280.                # レベルアップした場合
  281.                @status_window.level_up(@exp_gain_actor)
  282.                # リザルトウィンドウを消す
  283.                @result_window.visible = false
  284.                # SEの再生
  285.                if $data_system_level_up_se != ""
  286.                   Audio.se_play($data_system_level_up_se)
  287.                end
  288.                # MEの再生
  289.                if $data_system_level_up_me != ""
  290.                   Audio.me_stop
  291.                   Audio.me_play($data_system_level_up_me)
  292.                end
  293.                # LEVEL-UPウィンドウの設定
  294.                @levelup_window = Window_LevelUpWindow.new(actor, last_level,
  295.                actor.maxhp - last_maxhp, actor.maxsp - last_maxsp, actor.str - last_str,
  296.                actor.dex - last_dex, actor.agi - last_agi, actor.int - last_int)
  297.                @levelup_window.x = 160 * @exp_gain_actor
  298.                @levelup_window.visible = true
  299.                # ステータスウィンドウをリフレッシュ
  300.                @status_window.refresh
  301.                # スキル習得ウィンドウの設定
  302.                @skilllearning_window = Window_SkillLearning.new(actor.class_id, last_level, actor.level)
  303.                # ウェイトカウントを設定
  304.                @phase5_wait_count = 40
  305.                @phase5_step = 1
  306.                return
  307.             end
  308.          end
  309.       end until false
  310.    end
  311. end
  312. #=============================================================
  313. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  314. #=============================================================

作者: 2357691704    时间: 2016-8-26 12:43
本帖最后由 2357691704 于 2016-8-26 12:46 编辑

弄好了。
sence_battle2的#z 建议改回100。
# 生成战斗结果窗口
    @result_window = Window_BattleResult.new(exp, gold, treasures)
    # 设置等待计数
    @phase5_wait_count = 100  #z
  end

升级提示脚本修改





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