Project1

标题: 《命运的引导者~传说宝石2》获得经验的脚本出错…… [打印本页]

作者: wshzya    时间: 2012-11-30 13:07
标题: 《命运的引导者~传说宝石2》获得经验的脚本出错……
本帖最后由 wshzya 于 2012-12-1 11:40 编辑

我用了命运的引导者~传说宝石2获得经验的脚本。
  1. #◆◇◆◇◆  アクティブレベルアップVXA ver 1.01  ◇◆◇◆◇
  2. # 開発者用・高速数字描写機構 ver 1.11 以降必須
  3. #  サポート掲示板 http://www2.ezbbs.net/21/minto-aaa/
  4. #   by みんと

  5. =begin

  6. ■ 更新履歴

  7. ○ ver 1.01(2012/01/21)
  8. 多人数PTで落ちるミスを修正

  9. ○ ver 1.00(2012/01/20)
  10. 公開

  11. ■ 説明

  12. なるべく下の方にセクションを作成し、
  13. 本スクリプトを導入してください。

  14. 戦闘終了時のリザルト表示を
  15. カシャカシャEXP獲得表示に変更します。
  16. ゲージもアクティブで変動し、
  17. いっぱいになったらレベルアップします。

  18. また、その際は専用のグラフィックに変更されます。

  19. 画像はサンプルのものを使用していただいて構いません。

  20. 演出はCボタン(Enterキー)でカットできます。

  21. =end

  22. #==============================================================================
  23. # ☆ MINTO
  24. #------------------------------------------------------------------------------
  25. #   様々なフラグを扱うメインモジュールです。
  26. #==============================================================================

  27. module MINTO
  28.   
  29.   # アクティブレベルアップVXを有効化 ( true で有効 / false で無効 )
  30.   RGSS["Active_Lv_UpVX"] = true
  31.   
  32. end

  33. # アクティブレベルアップVXが有効な場合に以降の処理を実行する
  34. if MINTO::RGSS["Active_Lv_UpVX"] == true then

  35. #==============================================================================
  36. # ☆ カスタマイズ
  37. #------------------------------------------------------------------------------
  38. #   機能のカスタマイズをここで行います。
  39. #==============================================================================

  40. module MINTO
  41.   
  42.   # 使用する顔グラグラフィックファイル名
  43.   # Face_Name[ID] = ["通常時のファイル末尾名", "LVUP時のファイル末尾名"]
  44.   # すべてピクチャーフォルダを参照します。
  45.   # ※ ファイル名は機械的に参照します。
  46.   # たとえば、Face_Name[1] = ["普", "笑"]と設定し、
  47.   # ファイル名がActor1でインデックスが0の場合、
  48.   # 実際のファイル名は Actor1_0普, Actor1_0笑 となります。
  49.   # 原則、全アクター分設定してください。
  50.   # nil の場合は「現在の設定グラフィック」を参照します。
  51.   Face_Name = [] # 変更しない
  52.   Face_Name[1] = [nil, nil]
  53.   Face_Name[2] = [nil, nil]
  54.   Face_Name[3] = [nil, nil]
  55.   Face_Name[4] = [nil, nil]
  56.   Face_Name[5] = [nil, nil]
  57.   Face_Name[6] = [nil, nil]
  58.   Face_Name[7] = [nil, nil]
  59.   Face_Name[8] = [nil, nil]
  60.   Face_Name[9] = [nil, nil]
  61.   Face_Name[12] = [nil, nil]
  62.   Face_Name[13] = [nil, nil]
  63.   Face_Name[14] = [nil, nil]
  64.   Face_Name[15] = [nil, nil]
  65.   Face_Name[16] = [nil, nil]
  66.   Face_Name[17] = [nil, nil]
  67.   Face_Name[18] = [nil, nil]
  68.   Face_Name[19] = [nil, nil]
  69.   Face_Name[20] = [nil, nil]
  70.   Face_Name[21] = [nil, nil]
  71.   Face_Name[22] = [nil, nil]
  72.   
  73.   # 確保するメンバーサイズ
  74.   # 他サイトさんの戦闘メンバー拡張スクリプトを導入している場合は、
  75.   # その最大数を設定してください
  76.   Max_Size = 4
  77.   
  78.   # 演出用の最終レベル
  79.   #(他サイトさんのレベル限界変更スクリプトを導入している場合は、
  80.   # その最終値を入力してください)
  81.   Final_Level = 99
  82.   
  83.   # 空EXPゲージの名前
  84.   Base_EXP_Gauge = "gauge"
  85.   
  86.   # 本体EXPゲージの名前
  87.   A_EXP_Gauge = "gauge_exp2"
  88.   
  89.   # 演出時間フレーム
  90.   #(1秒間が基本的に60フレームです。
  91.   # ただし、入手EXPがそれ未満の場合はEXP分のフレーム時間になります)
  92.   LVUP_Frame = 300
  93.   
  94.   # ゲージ加算SE([ファイル名, ボリューム, ピッチ)
  95.   # ※ マシンスペックが高くないと、おそらく処理落ちします
  96.   #    不要な場合はSE名に "" を設定してください
  97.   Gauge_SE = ["Decision1", 80, 400]
  98.   
  99.   # LVUP時に鳴らすSE([ファイル名, ボリューム, ピッチ)
  100.   LVUP_SE = ["Up4", 100, 150]
  101.   
  102.   #--------------------------------------------------------------------------
  103.   # ● KGC Softwareスクリプトの検索
  104.   #    key : スクリプトキー
  105.   #--------------------------------------------------------------------------
  106.   def self.search_kgc(key)
  107.     # 指定されたスクリプトが有効かどうか調べる
  108.     $imported != nil and $imported[key] == true
  109.   end
  110. end
  111. #==============================================================================
  112. # ■ Mint_Picture_Number
  113. #------------------------------------------------------------------------------
  114. #  ピクチャー数字のスプライト表示を扱うクラスです。
  115. #   このクラスは数値の高速再描写に特化したクラスとなっています。
  116. #==============================================================================

  117. class Mint_Picture_Number
  118.   #--------------------------------------------------------------------------
  119.   # ● ストリングポップ
  120.   #    string : 求められた文字列のピクチャーの名前
  121.   #    x_plus : 外部からのX座標の調整用
  122.   #    y_plus : 外部からのY座標の調整用
  123.   #--------------------------------------------------------------------------
  124.   def string_pop(string = "", x_plus = 0, y_plus = 0)
  125.     # string が無効なら処理を終了
  126.     return if string == ""
  127.     # 配列の nil をなくす
  128.     #@string_pop_sprite.compact!
  129.     #@string_pop_duration.compact!
  130.     # スプライトを生成
  131.     string_pop_sprite = Sprite.new
  132.     # 画像を描写
  133.     if Scene_Menu.method_defined?("snapshot_for_background") then
  134.       string_pop_sprite.bitmap = Cache.picture(string)
  135.     else
  136.       string_pop_sprite.bitmap = RPG::Cache.picture(string)
  137.     end
  138.     # 座標データを代入
  139.     string_pop_sprite.x = @x.to_i + x_plus
  140.     string_pop_sprite.y = @y.to_i + y_plus
  141.     string_pop_sprite.z = 10001
  142.     # 配列の先頭にシフト
  143.     @string_pop_sprite.push(string_pop_sprite)
  144.     @string_pop_duration.push(40)
  145.   end
  146.   #--------------------------------------------------------------------------
  147.   # ● フレーム更新
  148.   #    battler : バトラー
  149.   #--------------------------------------------------------------------------
  150.   def update(battler = nil)
  151.     # 1つでもストリングポップが表示中の場合
  152.     if @string_pop_sprite.size >= 1
  153.       # 表示中のストリングポップを1つずつ処理する
  154.       for i in 0...@string_pop_sprite.size
  155.         # ストリングポップを代入
  156.         string = @string_pop_sprite[i]
  157.         # スプライトが無効な場合
  158.         if string.nil?
  159.           # 次の処理へ
  160.           next
  161.         end
  162.         # 不透明度が0の場合
  163.         if string.opacity <= 0
  164.           # ストリングポップを解放
  165.           #dispose_string_pop(i)
  166.           # 次の処理へ
  167.           next
  168.         end
  169.         # カウントを減らす
  170.         @string_pop_duration[i] -= 1
  171.         # 残りカウントに応じて分岐
  172.         case @string_pop_duration[i]
  173.         when 36..39
  174.           string.y -= 4
  175.           string.blend_type = 1
  176.         when 33..37
  177.           string.y -= 2
  178.           string.blend_type = 1
  179.         when 32..34
  180.           string.y += 2
  181.           string.blend_type = 0
  182.         when 25..32
  183.           string.y += 4
  184.           string.blend_type = 0
  185.         end
  186.         # 透明度をカウントに応じて下げる
  187.         string.opacity = 255 - ((12 - @string_pop_duration[i]) * 26)
  188.       end
  189.       # 配列の nil を無くす
  190.       #@string_pop_sprite.compact!
  191.       #@string_pop_duration.compact!
  192.     end
  193.   end
  194. end
  195. #==============================================================================
  196. # ■ MINTO_Number
  197. #------------------------------------------------------------------------------
  198. #  ピクチャーよる数字の表示を扱うモジュールです。
  199. #   このモジュールは数値の高速描写に特化したモジュールとなっています。
  200. #==============================================================================

  201. module MINTO_Number
  202.   #--------------------------------------------------------------------------
  203.   # ● 定数
  204.   #--------------------------------------------------------------------------
  205.   WIDHT  = -4 # 横幅調節値
  206.   HEIGHT = 24 # 1カラーの高さ
  207.   #--------------------------------------------------------------------------
  208.   # ● 数字の描写
  209.   #    x      : 描写先 X 座標
  210.   #    y      : 描写先 Y 座標
  211.   #    number : 描写する数字
  212.   #    bitmap : 使用するビットマップ
  213.   #    color  : 使用するカラーインデックス
  214.   #    text   : 使用する画像ファイル名
  215.   #--------------------------------------------------------------------------
  216.   def self.draw_number(x, y, number, bitmap, color = 0, text = "String02")
  217.     # ピクチャーの読み込み
  218.     picture = Cache.picture(text)
  219.     # ピクチャーの基本の横幅を取得する
  220.     width_base = picture.width / 10.0
  221.     # 求められた数字を一文字ずつ配列にする
  222.     array = number.to_s.split(//)
  223.     # ループ処理(イテレータ)
  224.     (0...array.size).each do |i|
  225.       # 描写座標を計算
  226.       draw_x = array[i].to_i * width_base
  227.       draw_y = HEIGHT * color
  228.       # 描写座標を取得する
  229.       rect = Rect.new(draw_x, draw_y, width_base, HEIGHT)
  230.       # 数字を描写
  231.       bitmap.blt(x + (i * (width_base + WIDHT)), y + 4, picture, rect)
  232.     end
  233.   end
  234. end
  235. #==============================================================================
  236. # ■ Mint_Gauge_System_Active
  237. #------------------------------------------------------------------------------
  238. #  ピクチャーゲージのスプライト表示を扱うクラスです。
  239. #   このクラスはゲージの高速再描写に特化したクラスとなっています。
  240. #==============================================================================

  241. class Mint_Gauge_System_Active
  242.   #--------------------------------------------------------------------------
  243.   # ● オブジェクト初期化
  244.   #    gauge : ゲージ画像
  245.   #--------------------------------------------------------------------------
  246.   def initialize(x, y, z = 500, type = 0)
  247.     # 空ゲージを読み込む
  248.     gauge_base = Cache.picture(MINTO::Base_EXP_Gauge)
  249.     # 空ゲージ用のスプライトを作成
  250.     @sprite_gauge_base = Sprite.new
  251.     # 座標を設定
  252.     @sprite_gauge_base.x = x
  253.     @sprite_gauge_base.y = y
  254.     @sprite_gauge_base.z = z
  255.     # スプライトを作成
  256.     [url=home.php?mod=space&uid=114926]@sprite[/url] = @sprite_gauge_base.dup
  257.     @sprite.x -= 16
  258.     @sprite.y -= 16
  259.     @sprite.z += 1
  260.     @sprite.bitmap = Bitmap.new(64, 32)
  261.     @sprite.bitmap.font.color.set(0, 200, 250)
  262.     # 空ゲージを描写
  263.     @sprite_gauge_base.bitmap = gauge_base
  264.     # 本体ゲージを読み込む
  265.     @gauge = gauge_initialize(type)
  266.     # 本体ゲージ用の配列を作成
  267.     @sprite_gauge = [Sprite.new]
  268.     (1..6).each do |i|
  269.       # 本体ゲージ用のスプライトを作成
  270.       @sprite_gauge[i] = Sprite.new
  271.       # 座標を設定
  272.       @sprite_gauge[i].x = (x - i) + 8
  273.       @sprite_gauge[i].y = y + i
  274.       @sprite_gauge[i].z = z
  275.     end
  276.   end
  277.   #--------------------------------------------------------------------------
  278.   # ● ゲージ用ビットマップの作成
  279.   #--------------------------------------------------------------------------
  280.   def gauge_initialize(type)
  281.     # タイプに応じて分岐
  282.     case type
  283.     when 0
  284.       # ゲージの読み込み
  285.       gauge = Cache.picture(MINTO::A_EXP_Gauge)
  286.     end
  287.     # 本体ゲージ用のスプライトを作成
  288.     sprite_gauge = []
  289.     (1..100).each do |i|
  290.       # 本体ゲージ用のビットマップを作成
  291.       sprite_gauge[i] = Bitmap.new(i, 1)
  292.       # 本体ゲージ用の描写範囲を計算
  293.       dest_rect = Rect.new(0, 0, i, 1)
  294.       sprite_gauge[i].stretch_blt(dest_rect, gauge, gauge.rect)
  295.     end
  296.     return sprite_gauge
  297.   end
  298.   #--------------------------------------------------------------------------
  299.   # ● 解放
  300.   #--------------------------------------------------------------------------
  301.   def dispose
  302.     # スプライトを解放
  303.     for s in @sprite_gauge
  304.       s.dispose
  305.     end
  306.     @sprite_gauge_base.bitmap.dispose
  307.     @sprite_gauge_base.dispose
  308.     @sprite.bitmap.dispose
  309.     @sprite.dispose
  310.   end
  311.   #--------------------------------------------------------------------------
  312.   # ● 縁文字描写
  313.   #--------------------------------------------------------------------------
  314.   def draw_frame_text(x, y, width, height, text, ag = 0)
  315.     # 元の色を保存
  316.     ori_color = @sprite.bitmap.font.color.clone
  317.     # 縁の色を定義
  318.     @sprite.bitmap.font.color.set(0, 0, 0)
  319.     # 縁文字を描写
  320.     @sprite.bitmap.draw_text(x-1, y, width, height, text, ag)
  321.     @sprite.bitmap.draw_text(x+1, y, width, height, text, ag)
  322.     @sprite.bitmap.draw_text(x, y-1, width, height, text, ag)
  323.     @sprite.bitmap.draw_text(x, y+1, width, height, text, ag)
  324.     # 元の色に戻す
  325.     @sprite.bitmap.font.color = ori_color
  326.     # 本体の文字を描写
  327.     @sprite.bitmap.draw_text(x, y, width, height, text, ag)
  328.   end
  329.   #--------------------------------------------------------------------------
  330.   # ● 可視状態の取得
  331.   #--------------------------------------------------------------------------
  332.   def visible
  333.     # 先頭の可視状態を返す
  334.     return @sprite_gauge[1].visible
  335.   end
  336.   #--------------------------------------------------------------------------
  337.   # ● 可視状態の変更
  338.   #    visible : 新しい可視状態
  339.   #--------------------------------------------------------------------------
  340.   def visible=(visible)
  341.     # 可視状態の変更(イテレータ)
  342.     (1..6).each{|i| @sprite_gauge[i].visible = visible}
  343.     @sprite_gauge_base.visible = visible
  344.   end
  345.   #--------------------------------------------------------------------------
  346.   # ● レートの設定
  347.   #    rate : ゲージの減少率
  348.   #--------------------------------------------------------------------------
  349.   def set_rate(rate)
  350.     rate = [[rate, 100].min, 0].max
  351.     # ゲージを実際に描写
  352.     @sprite_gauge[1].bitmap = @gauge[rate]
  353.     @sprite_gauge[2].bitmap = @gauge[rate]
  354.     @sprite_gauge[3].bitmap = @gauge[rate]
  355.     @sprite_gauge[4].bitmap = @gauge[rate]
  356.     @sprite_gauge[5].bitmap = @gauge[rate]
  357.     @sprite_gauge[6].bitmap = @gauge[rate]
  358.   end
  359. end
  360. #==============================================================================
  361. # ■ Game_Temp
  362. #------------------------------------------------------------------------------
  363. #  セーブデータに含まれない、一時的なデータを扱うクラスです。このクラスのイン
  364. # スタンスは $game_temp で参照されます。
  365. #==============================================================================

  366. class Game_Temp
  367.   #--------------------------------------------------------------------------
  368.   # ● 公開インスタンス変数
  369.   #--------------------------------------------------------------------------
  370.   attr_accessor :after_battle_phase       # アフターバトルフェーズ中フラグ
  371. end
  372. #==============================================================================
  373. # ■ Game_Actor
  374. #------------------------------------------------------------------------------
  375. #  アクターを扱うクラスです。このクラスは Game_Actors クラス ($game_actors)
  376. # の内部で使用され、Game_Party クラス ($game_party) からも参照されます。
  377. #==============================================================================

  378. class Game_Actor < Game_Battler
  379.   #--------------------------------------------------------------------------
  380.   # ● EXPリストの取得
  381.   #--------------------------------------------------------------------------
  382.   def exp_list
  383.     return @exp_list
  384.   end
  385.   #--------------------------------------------------------------------------
  386.   # ● ゲージ用のEXP_NEXT の取得
  387.   #--------------------------------------------------------------------------
  388.   def minto_next_exp(lv, exp)
  389.     exp_rate = exp_for_level(lv + 1) - exp_for_level(lv)
  390.     next_exp = exp_for_level(lv + 1) - exp
  391.     rate = (next_exp * 100) / exp_rate
  392.     if exp_for_level(lv + 1) == 0
  393.       rate = 100
  394.     end
  395.     return 100 - rate
  396.   end
  397.   #--------------------------------------------------------------------------
  398.   # ● 次のレベルまでの EXP 取得
  399.   #--------------------------------------------------------------------------
  400.   def next_rest_exp2(lv, exp)
  401.     return exp_for_level(lv + 1) > 0 ? (exp_for_level(lv + 1) - exp) : 0
  402.   end
  403.   #--------------------------------------------------------------------------
  404.   # ● 次のレベルの経験値を取得
  405.   #--------------------------------------------------------------------------
  406.   def next_level_exp
  407.     exp_for_level([url=home.php?mod=space&uid=22147]@level[/url] + 1)
  408.   end
  409.   #--------------------------------------------------------------------------
  410.   # ○ AP 獲得(KGC[EquipLearnSkill]再定義)
  411.   #    ap   : AP の増加量
  412.   #    show : マスタースキル表示フラグ
  413.   #--------------------------------------------------------------------------
  414.   def gain_ap(ap, show)
  415.     # 最終スキルを記憶
  416.     last_full_ap_skills = full_ap_skills
  417.     # 装備品により習得しているスキルに AP を加算
  418.     equipment_skills(true).each do |skill|
  419.       # APの変更
  420.       change_ap(skill, skill_ap(skill.id) + ap)
  421.     end
  422.     # マスタースキル表示フラグが有効で、且つスキル要素が異なっている場合
  423.     if show == true and (last_full_ap_skills != full_ap_skills) then
  424.       # メソッドを返す(スキル習得)
  425.       return true
  426.     end
  427.     # メソッドを返す(スキル未習得)
  428.     return false
  429.   end
  430.   #--------------------------------------------------------------------------
  431.   # ○ マスターしたスキルの表示(KGC[EquipLearnSkill]再定義)
  432.   #    new_skills : 新しくマスターしたスキルの配列
  433.   #--------------------------------------------------------------------------
  434.   def display_full_ap_skills(new_skills)
  435.     # 無効化(処理を行わない)
  436.     return
  437.   end
  438. end
  439. #==============================================================================
  440. # ■ Game_Troop
  441. #------------------------------------------------------------------------------
  442. #  敵グループおよび戦闘に関するデータを扱うクラスです。バトルイベントの処理も
  443. # 行います。このクラスのインスタンスは $game_troop で参照されます。
  444. #==============================================================================

  445. class Game_Troop < Game_Unit
  446.   #--------------------------------------------------------------------------
  447.   # ● 全滅判定の取得
  448.   #--------------------------------------------------------------------------
  449.   def all_dead?
  450.     # スーパークラスの処理に以降
  451.     bool = super
  452.     # 勝利確定の場合
  453.     if bool then
  454.       # アフターバトルフェーズ中でない場合
  455.       unless $game_temp.after_battle_phase then
  456.         # アフターバトルフェーズを予約する
  457.         $game_temp.after_battle_phase = true
  458.         # アフターバトルフェーズ準備
  459.         SceneManager.scene.reservation_after_battle_phase
  460.       end
  461.     end
  462.     # メソッドを返す
  463.     return bool
  464.   end
  465.   #--------------------------------------------------------------------------
  466.   # ● ドロップアイテムの配列作成)
  467.   #    forcing : 強制フラグ
  468.   #--------------------------------------------------------------------------
  469.   def make_drop_items(forcing = false)
  470.     # 強制フラグがオフの場合
  471.     if forcing == false then
  472.       # メソッドを返す
  473.       return []
  474.     end
  475.     return dead_members.inject([]) {|r, enemy| r += enemy.make_drop_items }
  476.   end
  477. end
  478. #==============================================================================
  479. # ■ Game_Message
  480. #------------------------------------------------------------------------------
  481. #  文章や選択肢などを表示するメッセージウィンドウの状態を扱うクラスです。この
  482. # クラスのインスタンスは $game_message で参照されます。
  483. #==============================================================================

  484. class Game_Message
  485.   #--------------------------------------------------------------------------
  486.   # ● テキストの追加
  487.   #--------------------------------------------------------------------------
  488.   alias :minto_rgss3_3_add :add
  489.   def add(text)
  490.     # アフターバトルフェーズが予約されている場合
  491.     if $game_temp.after_battle_phase
  492.       # メソッドを返す
  493.       return
  494.     end
  495.     # 元の処理を実行
  496.     minto_rgss3_3_add(text)
  497.   end
  498. end
  499. #==============================================================================
  500. # ■ Window_BattleMessage
  501. #------------------------------------------------------------------------------
  502. #  戦闘中に表示するメッセージウィンドウです。通常のメッセージウィンドウの機能
  503. # に加え、戦闘進行のナレーションを表示する機能を持ちます。
  504. #==============================================================================

  505. class Window_BattleMessage < Window_Message
  506.   #--------------------------------------------------------------------------
  507.   # ● 可視状態の変更
  508.   #    visible : 新しい可視状態
  509.   #--------------------------------------------------------------------------
  510.   def visible=(visible)
  511.     # アフターバトルフェーズ中の場合
  512.     if $game_temp.after_battle_phase == true then
  513.       # スーパークラスを実行(文章の無効化)
  514.       super(visible)
  515.       # メッセージを不可視にする
  516.       $game_message.visible = false
  517.       # メッセージとそれに係わるフラグを無効化
  518.       $game_message.texts.clear
  519.     # アフターバトルフェーズ中でない場合
  520.     else
  521.       # スーパークラスを実行(通常の処理)
  522.       super(visible)
  523.     end
  524.   end
  525.   #--------------------------------------------------------------------------
  526.   # ● フレーム更新
  527.   #--------------------------------------------------------------------------
  528.   alias :update_Active_Lv_UpVX :update
  529.   def update
  530.     # 元の処理を実行
  531.     update_Active_Lv_UpVX
  532.     # アフターバトルフェーズ中の場合
  533.     if $game_temp.after_battle_phase == true then
  534.       # ウィンドウを可視状態にする
  535.       self.visible = true
  536.     end
  537.   end
  538. end
  539. #==============================================================================
  540. # ■ Window_BattleResult
  541. #------------------------------------------------------------------------------
  542. #  バトル終了時に、獲得した EXP やゴールドなどを表示するウィンドウです。
  543. #==============================================================================

  544. class Window_BattleResult < Window_Base
  545.   #--------------------------------------------------------------------------
  546.   # ● オブジェクト初期化
  547.   #     exp       : EXP
  548.   #     gold      : ゴールド
  549.   #     treasures : トレジャー
  550.   #--------------------------------------------------------------------------
  551.   def initialize(exp, gold, treasures, ap, gage_window)
  552.     super(320, 0, 224, 416)
  553.     self.opacity = 255
  554.     self.z = 0x270f
  555.     # 各データを保管
  556.     [url=home.php?mod=space&uid=13302]@exp[/url] = [exp, 999999].min
  557.     [url=home.php?mod=space&uid=236945]@gold[/url] = [gold, 999999].min
  558.     @ap = ap
  559.     @puls = 0
  560.     @items = {}
  561.     @gage_window = gage_window
  562.     # 文字の表示形式を調節
  563.     self.contents.font.italic = true
  564.     # テキストの配列を作成
  565.     text_array = ["EXP", Vocab::currency_unit]
  566.     # APが0以外の場合
  567.     if @ap != 0 then
  568.       # 用語[AP]を追加
  569.       text_array << "AP"
  570.       @puls = 48
  571.     end
  572.     # ループ処理
  573.     for i in 0...text_array.size do
  574.       # テキストを取得
  575.       text = text_array[i]
  576.       # テキスト表示
  577.       frame_text(4, 8 + 50 * i, 224, 25, text, system_color)
  578.       # アンダーライン描写
  579.       self.contents.fill_rect(4, 40 + 50 * i, 224, 1, system_color)
  580.     end
  581.     # 文字の表示形式を戻す
  582.     self.contents.font.italic = false
  583.     # 入手アイテムが1つでも存在する場合
  584.     if treasures.to_a != [] then
  585.       # ループ処理
  586.       for item in treasures do
  587.         # 無効な個数の場合
  588.         if @items[item] == nil then
  589.           # 個数を初期化
  590.           @items[item] = 0
  591.         end
  592.         # 個数を加算
  593.         @items[item] += 1
  594.         # アイテムを入手
  595.         $game_party.gain_item(item, 1)
  596.       end
  597.       # 重複するアイテムを削除
  598.       treasures.uniq!
  599.       # トレジャー用のテキストを表示
  600.       frame_text(4, 24 * 4 + @puls, 256, 24, "入手道具", system_color)
  601.       # 入手アイテム名のY座標
  602.       y = 24 * 5 + @puls
  603.       # ループ処理
  604.       for item in treasures do
  605.         # 入手アイテムを描写
  606.         draw_item_name(item, 4, y)
  607.         y += 24
  608.       end
  609.     end
  610.     refresh
  611.   end
  612.   #--------------------------------------------------------------------------
  613.   # ● 縁文字描写
  614.   #--------------------------------------------------------------------------
  615.   def frame_text(x, y, width, height, text, color, ag = 0)
  616.     self.contents.font.color.set(0, 0, 0)
  617.     self.contents.font.shadow = false
  618.     self.contents.draw_text(x-1, y, width, height, text, ag)
  619.     self.contents.draw_text(x+1, y, width, height, text, ag)
  620.     self.contents.draw_text(x, y-1, width, height, text, ag)
  621.     self.contents.draw_text(x, y+1, width, height, text, ag)
  622.     self.contents.font.color = color
  623.     self.contents.draw_text(x, y, width, height, text, ag)
  624.   end
  625.   #--------------------------------------------------------------------------
  626.   # ● アイテム名の描画
  627.   #     item : アイテム
  628.   #     x    : 描画先 X 座標
  629.   #     y    : 描画先 Y 座標
  630.   #--------------------------------------------------------------------------
  631.   def draw_item_name(item, x, y)
  632.     # 無効なアイテムの場合
  633.     if item == nil then
  634.       # メソッドを返す
  635.       return
  636.     end
  637.     # アイテムのアイコンを描写
  638.     draw_icon(item.icon_index, x, y, true)
  639.     # アイテム名を縁取りして描写
  640.     frame_text(x + 28, y, 112, 24, item.name, normal_color)
  641.     # 対象アイテムを2つ以上入手している場合
  642.     if @items[item] >= 2 then
  643.       # アイテムの入手個数を描写
  644.       frame_text(-24, y, 188, 24, "×", normal_color, 2)
  645.       frame_text(0, y, 188, 24, @items[item].to_s, normal_color, 2)
  646.     end
  647.   end
  648.   #--------------------------------------------------------------------------
  649.   # ● リフレッシュ
  650.   #--------------------------------------------------------------------------
  651.   def refresh
  652.     self.openness = 1
  653.     @gage_window.openness = 1
  654.     @gage_window.visible = true
  655.     # 16フレーム待つ
  656.     16.times do
  657.       # ウィンドウを開く
  658.       self.openness += 16
  659.       @gage_window.openness += 16
  660.       # ゲーム画面を更新
  661.       Graphics.update
  662.     end
  663.     # EXPを描写
  664.     MINTO_Number.draw_number(96, 4, @exp, self.contents, 1)
  665.     # ゴールドを描写
  666.     MINTO_Number.draw_number(96, 52, @gold, self.contents, 1)
  667.     # APが0以外の場合
  668.     if @ap != 0 then
  669.       # APを描写
  670.       MINTO_Number.draw_number(96, 100, @ap, self.contents, 1)
  671.     end
  672.     # ゲージウィンドウをリフレッシュ
  673.     @gage_window.refresh_exp
  674.   end
  675. end
  676. #==============================================================================
  677. # ■ Window_Active_Exp
  678. #------------------------------------------------------------------------------
  679. #  獲得したEXPに応じて、ゲージを変動させるウィンドウです。
  680. #==============================================================================

  681. class Window_Active_Exp < Window_Base
  682.   #--------------------------------------------------------------------------
  683.   # ● オブジェクト初期化
  684.   #    exp : EXP
  685.   #--------------------------------------------------------------------------
  686.   def initialize(exp, skills, last_exp, last_level)
  687.     super(0, 0, 320, 416)
  688.     edge = Cache.picture("Blue_Edge")
  689.     [url=home.php?mod=space&uid=13302]@exp[/url] = exp
  690.     # EXP表示用の配列を作成
  691.     @text = []
  692.     # LV表示用の配列を作成
  693.     @lv = []
  694.     # EXPゲージ用の配列
  695.     @exp_gauge = []
  696.     # スキル保存用の配列
  697.     @skills = []
  698.     # 最終EXP用の配列
  699.     @last_exp = last_exp
  700.     # 最終レベル用の配列
  701.     @last_level = last_level
  702.     # ループ処理
  703.     for i in 0...$game_party.all_members.size.to_m(MINTO::Max_Size) do
  704.       # 配列を初期化
  705.       @skills[i] = []
  706.       # ループ処理
  707.       for id in 0...skills[i].size do
  708.         # スキルが有効な場合
  709.         if skills[i] != nil and skills[i][id] != nil then
  710.           # 最終スキルの配列の複製を作成
  711.           @skills[i] << skills[i][id].id
  712.         end
  713.       end
  714.     end
  715.     # 演出スキップフラグをクリア
  716.     @skip = false
  717.     self.opacity = 255
  718.     self.z = 9999
  719.     # スプライトを作成
  720.     @sprite = Sprite.new
  721.     # スプライトのビットマップを作成
  722.     @sprite.bitmap = Bitmap.new(width - 32, height - 32)
  723.     # スプライトのデータを設定
  724.     @sprite.x = self.x + 16
  725.     @sprite.y = self.y + 16
  726.     @sprite.z = 10000
  727.     # グラフィック用のスプライトを作成
  728.     @sprite3 = @sprite.dup
  729.     @sprite3.z = 9999
  730.     @sprite3.bitmap = Bitmap.new(width - 32, 416)
  731.     @sprite3.visible = false
  732.     # ループ処理
  733.     for i in 0...$game_party.all_members.size.to_m(MINTO::Max_Size) do
  734.       dest_rect = Rect.new(0, 16 + (96 * i), 352 * 81 / 100, 108 * 81 / 100)
  735.       @sprite3.bitmap.stretch_blt(dest_rect, edge, edge.rect)
  736.     end
  737.     # グラフィック用のスプライトを作成
  738.     @sprite2 = @sprite.dup
  739.     @sprite2.z = 9999
  740.     @sprite2.bitmap = Bitmap.new(width - 32, height - 32)
  741.   end
  742.   #--------------------------------------------------------------------------
  743.   # ● プラス座標の取得
  744.   #--------------------------------------------------------------------------
  745.   def puls_y
  746.     size = MINTO::Max_Size
  747.     return (96.0 * (4.0 / size.to_f)).to_i
  748.   end
  749.   #--------------------------------------------------------------------------
  750.   # ● 修正座標の取得
  751.   #    y : Y座標
  752.   #--------------------------------------------------------------------------
  753.   def y_pass(y)
  754.     size = MINTO::Max_Size
  755.     return (y * (4.0 / size.to_f)).to_i
  756.   end
  757.   #--------------------------------------------------------------------------
  758.   # ● スプライトの作成
  759.   #--------------------------------------------------------------------------
  760.   def sprite_set
  761.     # パーティー人数分だけ繰り返す
  762.     for i in 0...$game_party.all_members.size.to_m(MINTO::Max_Size) do
  763.       # アクターを取得
  764.       actor = $game_party.all_members[i]
  765.       # 座標を取得
  766.       y = i * puls_y
  767.       # アクター名を描写
  768.       frame_text(4, y, 164, 24, actor.name, normal_color)
  769.       # 用語を描写
  770.       frame_text(12, y + y_pass(36), 64, 24, "LV", system_color)
  771.       frame_text(128, y + y_pass(66), 64, 24, "NEXT", system_color, 2)
  772.     end
  773.   end
  774.   #--------------------------------------------------------------------------
  775.   # ● 顔グラフィックの描画
  776.   #     face_name  : 顔グラフィック ファイル名
  777.   #     face_index : 顔グラフィック インデックス
  778.   #     x          : 描画先 X 座標
  779.   #     y          : 描画先 Y 座標
  780.   #     size       : 表示サイズ
  781.   #--------------------------------------------------------------------------
  782.   def draw_face(face_name, face_index, x, y, size = puls_y)
  783.     rect = Rect.new(0, 0, 0, 0)
  784.     rect.x = (face_index % 4 * 96 + (96 - size) / 2)
  785.     rect.y = (face_index / 4 * 96 + (96 - size) / 2)
  786.     rect.width = puls_y.to_m(96)
  787.     rect.height = puls_y.to_m(96)
  788.     # 対象の範囲を消す
  789.     @sprite2.bitmap.fill_rect(x, y, puls_y, puls_y, Color.new(0, 0, 0, 0))
  790.     @sprite2.bitmap.blt(x + 76, y, Cache.face(face_name), rect)
  791.   end
  792.   #--------------------------------------------------------------------------
  793.   # ● グラフィックの作成
  794.   #    actor : アクター
  795.   #    x     : 描写先のX座標
  796.   #    y     : 描写先のY座標
  797.   #    index : インデックス
  798.   #    type  : 描写タイプ
  799.   #--------------------------------------------------------------------------
  800.   def graphic_set(actor, x, y, index, type)
  801.     # 顔グラフィックの配列
  802.     face = []
  803.     # 顔グラフィック末尾名が有効な場合
  804.     unless MINTO::Face_Name[actor.id][type].nil? then
  805.       # ファイル名を作成
  806.       file_name = "#{actor.face_name}_#{actor.face_index}"
  807.       # ファイル末尾名を取得
  808.       file_name += MINTO::Face_Name[actor.id][type]
  809.       # 顔グラフィックを読み込む
  810.       face[index] = Cache.picture(file_name)
  811.       # 対象の範囲を消す
  812.       rect = Rect.new(x, y, puls_y, puls_y)
  813.       @sprite2.bitmap.fill_rect(rect, Color.new(0, 0, 0, 0))
  814.       # 顔グラフィックを描写
  815.       @sprite2.bitmap.blt(x, y, face[index], Rect.new(0, 0, puls_y, puls_y))
  816.     # 顔グラフィック末尾名が無効な場合
  817.     else
  818.       # 現在の設定グラフィックを描写
  819.       draw_face(actor.face_name, actor.face_index, x, y)
  820.     end
  821.   end
  822.   #--------------------------------------------------------------------------
  823.   # ● 縁文字描写
  824.   #--------------------------------------------------------------------------
  825.   def frame_text(x, y, width, height, text, color, ag = 0)
  826.     @sprite.bitmap.font.color.set(0, 0, 0)
  827.     @sprite.bitmap.font.shadow = false
  828.     @sprite.bitmap.draw_text(x-1, y, width, height, text, ag)
  829.     @sprite.bitmap.draw_text(x+1, y, width, height, text, ag)
  830.     @sprite.bitmap.draw_text(x, y-1, width, height, text, ag)
  831.     @sprite.bitmap.draw_text(x, y+1, width, height, text, ag)
  832.     @sprite.bitmap.font.color = color
  833.     @sprite.bitmap.draw_text(x, y, width, height, text, ag)
  834.   end
  835.   #--------------------------------------------------------------------------
  836.   # ● リフレッシュEXP
  837.   #--------------------------------------------------------------------------
  838.   def refresh_exp
  839.     # 可視フラグをオン
  840.     self.visible = true
  841.     @sprite3.visible = true
  842.     # 用語を描写
  843.     sprite_set
  844.     # 更新フレーム数を作成
  845.     thyme = @exp < MINTO::LVUP_Frame ? @exp.abs : MINTO::LVUP_Frame
  846.     rate_p = @exp < MINTO::LVUP_Frame ? @exp.abs : MINTO::LVUP_Frame
  847.     # EXPの配列
  848.     exp = []
  849.     # LVの配列
  850.     last_lv = []
  851.     # 最終EXPの配列
  852.     last_exp = []
  853.     # レベルアップフラグ
  854.     level_up = []
  855.     # パーティー人数分だけ繰り返す
  856.     for i in 0...$game_party.all_members.size.to_m(MINTO::Max_Size) do
  857.       actor = $game_party.all_members[i]
  858.       # 座標を取得
  859.       x = 160
  860.       y = i * puls_y
  861.       # LV表示用のピクチャー数字を作成
  862.       @lv[i] = Mint_Picture_Number.new(52, y + y_pass(52), 2, 10000)
  863.       # NEXT_EXP表示用のピクチャー数字を作成
  864.       @text[i] = Mint_Picture_Number.new(x + 40, y + y_pass(82), 6, 10000)
  865.       # EXPゲージを作成
  866.       @exp_gauge[i] = Mint_Gauge_System_Active.new(x + 8,
  867.       y + y_pass(102), 9999)
  868.       # 最終LevelとEXPを代入
  869.       last_lv[i] = @last_level[i].to_i
  870.       last_exp[i] = @last_exp[i].to_i
  871.       # EXPの獲得が可能な場合
  872.       if actor.exist? then
  873.         # 入手EXPがLVUP_Frame以上なら、LVUP_Frameで割ってその余りを求める
  874.         if @exp > MINTO::LVUP_Frame then
  875.           last_exp[i] += @exp % MINTO::LVUP_Frame
  876.           # 経験値2倍の場合
  877.           if actor.final_exp_rate >= 2
  878.             # 倍率補正を考慮
  879.             for to_loop in 0...(actor.final_exp_rate - 1) do
  880.               last_exp[i] += @exp % MINTO::LVUP_Frame
  881.             end
  882.           end
  883.         end
  884.       end
  885.       # グラフィックを描写
  886.       graphic_set(actor, 0, y, actor.id, 0)
  887.     end
  888.     # 更新フレームがなくなるまで繰り返す
  889.     thyme.times do
  890.       # グラフィックをクリア
  891.       @sprite2.bitmap.clear
  892.       # Cボタンが押された場合
  893.       if Input.trigger?(Input::C)
  894.         # スキップフラグをオン
  895.         @skip = true
  896.       end
  897.       # スキップしない場合
  898.       if @skip != true then
  899.         # ゲージ加算SEが有効な場合
  900.         if MINTO::Gauge_SE[0] != "" then
  901.           # SEデータを代入
  902.           data = MINTO::Gauge_SE
  903.           # ゲージ加算SEを演奏
  904.           Audio.se_play("Audio/SE/#{data[0]}", data[1], data[2])
  905.         end
  906.       end
  907.       # パーティー人数分だけ繰り返す
  908.       for i in 0...$game_party.all_members.size.to_m(MINTO::Max_Size) do
  909.         # アクターを代入
  910.         actor = $game_party.all_members[i]
  911.         # EXPの獲得が可能な場合
  912.         if actor.exist? then
  913.           # 描写用のEXPを加算
  914.           last_exp[i] += (@exp / rate_p)
  915.           # 経験値倍率補正がある場合
  916.           if actor.final_exp_rate >= 2
  917.             # 倍率補正を考慮
  918.             for to_loop in 0...(actor.final_exp_rate - 1) do
  919.               last_exp[i] += (@exp / rate_p)
  920.             end
  921.           end
  922.         end
  923.         # NEXT_EXPを取得
  924.         next_p = actor.next_rest_exp2(last_lv[i], last_exp[i])
  925.         # NEXT_EXPが文字列ではない場合
  926.         if next_p.is_a?(Numeric) then
  927.           # 最低値を0に設定
  928.           next_p = next_p.to_min(0)
  929.           # アクターのマザーデータを取得
  930.           d_actor = $data_actors[actor.id]
  931.           # 最終レベルを代入
  932.           final_level = MINTO::Final_Level
  933.           # レベルアップが可能な場合
  934.           # (NEXT_EXPが0で且つ、最終レベルがMAXレベル未満の場合)
  935.           if next_p == 0 and last_lv[i] < final_level then
  936.             # 描写用のLVを加算
  937.             last_lv[i] += 1
  938.             # スキル習得判定
  939.             for skill in actor.class.learnings do
  940.               # レベル条件を満たしている場合
  941.               if last_lv[i] >= skill.level then
  942.                 # 最終スキルに存在しない場合
  943.                 unless @skills[i].include?(skill.skill_id) then
  944.                   # 最終スキルに保存
  945.                   @skills[i].push(skill.skill_id)
  946.                   # NewSkill表示
  947.                   @lv[i].string_pop("NewSkill", 144, y_pass(-32))
  948.                 end
  949.               end
  950.             end
  951.             # スキップしない場合
  952.             if @skip != true then
  953.               # SEデータを代入
  954.               data = MINTO::LVUP_SE
  955.               # SEを演奏する
  956.               Audio.se_play("Audio/SE/#{data[0]}", data[1], data[2])
  957.             end
  958.             # 限界レベルを取得
  959.             last_lv[i] = [last_lv[i], final_level].min
  960.             # LVUP表示
  961.             @lv[i].string_pop("lvup", 144)
  962.             # レベルアップフラグを設定
  963.             level_up[i] = true
  964.           end
  965.           # レベルアップが有効な場合
  966.           if level_up[i] == true then
  967.             # グラフィックを描写
  968.             graphic_set(actor, 0, (i * puls_y), actor.id, 1)
  969.           else
  970.             # グラフィックを描写
  971.             graphic_set(actor, 0, (i * puls_y), actor.id, 0)
  972.           end
  973.         end
  974.         # ゲージの長さを算出
  975.         n = actor.next_rest_exp2(last_lv[i], last_exp[i])
  976.         rate = actor.minto_next_exp(last_lv[i], last_exp[i]).to_max(0, 100)
  977.         # ゲージを更新
  978.         @exp_gauge[i].set_rate(rate)
  979.         # NEXT_EXPを描写
  980.         @text[i].set_text(n.to_min(0))
  981.         # 最終レベルを描写
  982.         @lv[i].set_text(last_lv[i])
  983.         # LVUP表示を更新
  984.         @lv[i].update
  985.       end
  986.       # スキップフラグがオフの場合
  987.       if @skip == false then
  988.         # ゲーム画面を更新
  989.         Graphics.update
  990.         # 入力情報を更新
  991.         Input.update
  992.       end
  993.     end
  994.     # 必須ウェイトタイム(変更しない)
  995.     thyme = 0
  996.     # パーティー人数分だけ繰り返す
  997.     for i in 0...$game_party.all_members.size.to_m(MINTO::Max_Size) do
  998.       # LVUP表示カウントを取得する
  999.       size = @lv[i].string_pop_duration.size
  1000.       count = @lv[i].string_pop_duration[size - 1].to_i
  1001.       # thyme より count の方が高ければ thyme を上書き
  1002.       if count > thyme then
  1003.         thyme = count
  1004.       end
  1005.     end
  1006.     # 必須ウェイトタイムが1以上の限り更新する
  1007.     while thyme >= 1 do
  1008.       # パーティー人数分だけ繰り返す
  1009.       for i in 0...$game_party.all_members.size.to_m(MINTO::Max_Size) do
  1010.         # LVUP表示を更新
  1011.         @lv[i].update
  1012.       end
  1013.       # カウントを減らす
  1014.       thyme -= 1
  1015.       # ゲーム画面を更新
  1016.       Graphics.update
  1017.     end
  1018.     # 入力情報を更新
  1019.     Input.update
  1020.   end
  1021.   #--------------------------------------------------------------------------
  1022.   # ● フレーム更新(スキル習得)
  1023.   #    learning_skill : 新たにスキルを習得したかどうかのフラグ
  1024.   #--------------------------------------------------------------------------
  1025.   def update_skill(learning_skill)
  1026.     # SkillLearningSE演奏フラグ
  1027.     learning = 0
  1028.     # パーティー人数分だけ繰り返す
  1029.     for i in 0...$game_party.all_members.size.to_m(MINTO::Max_Size) do
  1030.       # アクターを代入
  1031.       actor = $game_party.all_members[i]
  1032.       # EXPの獲得が可能な場合
  1033.       if $game_party.existing_members.include?(actor) then
  1034.         # スキル数が増えている場合
  1035.         if learning_skill[actor] == true then
  1036.           # SkillLearning表示
  1037.           @lv[i].string_pop("learning", -64, y_pass(-32))
  1038.           # SEを演奏する
  1039.           learning = 1
  1040.         end
  1041.       end
  1042.     end
  1043.     # 一人でもスキルを習得した場合
  1044.     if learning == 1 then
  1045.       # SEデータを代入
  1046.       data = MINTO::LVUP_SE
  1047.       # SEを演奏する
  1048.       Audio.se_play("Audio/SE/#{data[0]}", data[1], data[2])
  1049.     end
  1050.     # 必須ウェイトタイム(変更しない)
  1051.     thyme = 0
  1052.     # パーティー人数分だけ繰り返す
  1053.     for i in 0...$game_party.all_members.size.to_m(MINTO::Max_Size) do
  1054.       # LVUP表示カウントを取得する
  1055.       count = @lv[i].string_pop_duration[0].to_i
  1056.       # thyme より count の方が高ければ thyme を上書き
  1057.       if count > thyme then
  1058.         thyme = count
  1059.       end
  1060.     end
  1061.     # ループ処理(必須ウェイトタイム)
  1062.     thyme.times do
  1063.       # パーティー人数分だけ繰り返す
  1064.       for i in 0...$game_party.all_members.size.to_m(MINTO::Max_Size) do
  1065.         # LVUP表示を更新
  1066.         @lv[i].update
  1067.       end
  1068.       # ゲーム画面を更新
  1069.       Graphics.update
  1070.     end
  1071.     # 入力情報を更新
  1072.     Input.update
  1073.   end
  1074.   #--------------------------------------------------------------------------
  1075.   # ● 解放
  1076.   #--------------------------------------------------------------------------
  1077.   def dispose
  1078.     # ループ処理
  1079.     for sprite in @text + @lv + @exp_gauge do
  1080.       # 特殊スプライトを解放
  1081.       sprite.dispose
  1082.     end
  1083.     # スプライトを解放
  1084.     @sprite.bitmap.dispose
  1085.     @sprite.dispose
  1086.     @sprite2.bitmap.dispose
  1087.     @sprite2.dispose
  1088.     @sprite3.bitmap.dispose
  1089.     @sprite3.dispose
  1090.     # スーパークラスを実行
  1091.     super
  1092.   end
  1093. end
  1094. #==============================================================================
  1095. # ■ Scene_Menu
  1096. #------------------------------------------------------------------------------
  1097. #  メニュー画面の処理を行うクラスです。
  1098. #==============================================================================

  1099. class Scene_Menu < Scene_MenuBase
  1100.   #--------------------------------------------------------------------------
  1101.   # ● 背景として使うためのスナップショット作成
  1102.   #--------------------------------------------------------------------------
  1103.   def snapshot_for_background
  1104.   end
  1105. end
  1106. #==============================================================================
  1107. # ■ Scene_Battle
  1108. #------------------------------------------------------------------------------
  1109. #  バトル画面の処理を行うクラスです。
  1110. #==============================================================================

  1111. class Scene_Battle < Scene_Base
  1112.   #--------------------------------------------------------------------------
  1113.   # ● 公開インスタンス変数
  1114.   #--------------------------------------------------------------------------
  1115.   attr_reader   :last_exp                 # 最終EXP
  1116.   attr_reader   :last_level               # 最終レベル
  1117.   attr_reader   :last_skills              # 最終スキルの配列
  1118.   attr_accessor :active_gauge_window      # ゲージウィンドウ
  1119.   #--------------------------------------------------------------------------
  1120.   # ● 終了処理
  1121.   #--------------------------------------------------------------------------
  1122.   alias :terminate_Active_Lv_UpVX :terminate
  1123.   def terminate
  1124.     # アクティブゲージウィンドウが有効な場合
  1125.     if @active_gauge_window != nil then
  1126.       # アクティブゲージウィンドウを解放
  1127.       @active_gauge_window.dispose
  1128.       # バトルリザルトウィンドウを解放
  1129.       @result_window.dispose
  1130.     end
  1131.     # アフターバトルフェーズをクリア
  1132.     $game_temp.after_battle_phase = false
  1133.     # 元の処理を実行
  1134.     terminate_Active_Lv_UpVX
  1135.   end
  1136.   #--------------------------------------------------------------------------
  1137.   # ● 終了前処理
  1138.   #--------------------------------------------------------------------------
  1139.   alias :minto_rgss3_3_pre_terminate :pre_terminate
  1140.   def pre_terminate
  1141.     # アフターバトルフェーズ中の場合
  1142.     if $game_temp.after_battle_phase == true then
  1143.       # アフターバトルフェーズの開始
  1144.       start_after_battle_phase
  1145.       # ループ処理
  1146.       loop do
  1147.         # ゲーム画面を更新
  1148.         Graphics.update
  1149.         # 入力情報を更新
  1150.         Input.update
  1151.         # C ボタンが押された場合
  1152.         if Input.trigger?(Input::C) == true then
  1153.           break
  1154.         end
  1155.       end
  1156.     end
  1157.     # 元の処理を実行
  1158.     minto_rgss3_3_pre_terminate
  1159.   end
  1160.   #--------------------------------------------------------------------------
  1161.   # ● アフターバトルフェーズの準備
  1162.   #--------------------------------------------------------------------------
  1163.   def reservation_after_battle_phase
  1164.     # 最終EXPとレベルを初期化
  1165.     @last_exp = []
  1166.     @last_level = []
  1167.     # 最終スキルの配列
  1168.     @last_skills = []
  1169.     # パーティー人数分だけ繰り返す
  1170.     for i in 0...$game_party.all_members.size.to_m(MINTO::Max_Size) do
  1171.       # アクターを取得
  1172.       actor = $game_party.all_members[i]
  1173.       # 最終EXPを保存
  1174.       @last_exp[i] = actor.exp.to_i
  1175.       # 最終レベルを保存
  1176.       @last_level[i] = actor.level.to_i
  1177.       # 最終スキルの取得
  1178.       @last_skills[i] = actor.skills.dec
  1179.     end
  1180.     # リザルトデータを記憶
  1181.     @exp = $game_troop.exp_total
  1182.     @gold = $game_troop.gold_total
  1183.     @drop_items = $game_troop.make_drop_items(true)
  1184.     @ap = 0
  1185.   end
  1186.   #--------------------------------------------------------------------------
  1187.   # ● アフターバトルフェーズの開始
  1188.   #--------------------------------------------------------------------------
  1189.   def start_after_battle_phase
  1190.     # アクティブゲージウィンドウを作成
  1191.     @active_gauge_window = Window_Active_Exp.new(@exp, @last_skills,
  1192.     @last_exp, @last_level)
  1193.     # バトルリザルトウィンドウを作成
  1194.     @result_window = Window_BattleResult.new(@exp, @gold, @drop_items, @ap,
  1195.     @active_gauge_window)
  1196.   end
  1197. end

  1198. end
复制代码
第830行   unless MINTO::Face_Name[actor.id][type].nil? then
出现 NoMethodError。undefined method '[]' for nil:NilClass。
别的人物都没问题,但有几个不管换位置还是职业都出错。求指教~~~
  
作者: wshzya    时间: 2012-11-30 21:04
看相关帖子里就有命运引导者传说宝石正式版……
作者: wshzya    时间: 2012-12-1 11:39
自己解决了~~~~~~




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