#◆◇◆◇◆ ☆☆ アクティブレベルアップ2 ver 1.03 ◇◆◇◆◇ # ☆ マスタースクリプト ver 3.00 以降専用 # サポート掲示板 http://www2.ezbbs.net/21/minto-aaa/ # by みんと =begin 更新履歴 ver 1.03(2009/03/27) 入手EXPが0だと情報が表示されないミスを修正 ver 1.02 使用側アニメが表示されなくなるミスを修正。 ver 1.01 一部のメソッド名を変更。 説明 このスクリプト素材には 開発者用・高速数字描写機構の導入が必須となります。 動くリザルトシリーズ、及び 他のアクティブレベルアップシリーズとの同時使用は出来ません。 なるべく下の方にセクションを作成し、 本スクリプトを導入してください。 戦闘終了時のリザルト表示を カシャカシャEXP獲得表示に変更します。 ゲージもアクティブで変動し、 いっぱいになったらレベルアップします。 また、その際は専用のグラフィックに変更されます。 画像はサンプルのものを使用していただいて構いません。 演出はCボタン(Enterキー)でカットできます。 基本的に顔グラフィック推奨ですが、 バトラーも使用できます。 =end #============================================================================== # ☆ MINTO #------------------------------------------------------------------------------ # 様々なフラグを扱うメインモジュールです。 #============================================================================== module MINTO # アクティブレベルアップ2を有効化 ( true で有効 / false で無効 ) RGSS["Active_Lv_Up2"] = true end if MINTO::RGSS["Active_Lv_Up2"] #============================================================================== # ☆ カスタマイズ #------------------------------------------------------------------------------ # 機能のカスタマイズを行うモジュールです。 #============================================================================== module MINTO # 使用する顔グラの名前(アクターID順で記入。nil ならバトラーを使用) # ピクチャーフォルダを参照します # Face_Name[ID] = ["通常時のファイル名", "レベルアップ時のファイル名"] Face_Name = [] # 変更しない Face_Name[1] = [nil, nil] Face_Name[2] = [nil, nil] Face_Name[3] = [nil, nil] Face_Name[4] = [nil, nil] Face_Name[5] = ["ミルフィー普", "ミルフィー笑"] Face_Name[6] = ["リィズ普", "リィズ笑"] # 空EXPゲージの名前 Base_EXP_Gauge = "gauge" # 本体EXPゲージの名前 A_EXP_Gauge = "gauge_exp2" # 演出時間フレーム #(1秒間が基本的に40フレームです。 # ただし、入手EXPがそれ未満の場合はEXP分のフレーム時間になります) LVUP_Frame = 400 # LVUP時に鳴らすSE([ファイル名, ボリューム, ピッチ) LVUP_SE = ["056-Right02", 80, 150] # 計算用の最終レベル # 他サイトさんのスクリプトで # 最終レベルを99以上にしてる場合のみ99以上の値を入力してください Final_LV = 99 end #============================================================================== # ■ Mint_Picture_Number #------------------------------------------------------------------------------ #  ピクチャー数字のスプライト表示を扱うクラスです。 # このクラスは数値の高速再描写に特化したクラスとなっています。 #============================================================================== class Mint_Picture_Number #-------------------------------------------------------------------------- # ● ストリングポップ # string : 求められた文字列のピクチャーの名前 # x_plus : 外部からのX座標の調整用 # y_plus : 外部からのY座標の調整用 #-------------------------------------------------------------------------- def string_pop(string = "", x_plus = 0, y_plus = 0) # 画像を読み込む(空文字の場合は無視) if string != "" @string = RPG::Cache.picture(string) end # @string が nil なら処理を終了 return if @string == nil # 配列の nil をなくす @string_pop_sprite.compact! @string_pop_duration.compact! # ストリングポップを解放(解放されている場合は無視) dispose_string_pop # スプライトを生成 string_pop_sprite = Sprite.new # 幅を代入 width = @string.rect.width # 高さを代入 height = @string.rect.height # 画像の幅と高さからビットマップを生成 string_pop_sprite.bitmap = Bitmap.new(width, height) # 画像を実際に描写 string_pop_sprite.bitmap.blt(0, 0, @string, @string.rect) # 座標データを代入 string_pop_sprite.x = @x.to_i + x_plus string_pop_sprite.y = @y.to_i + y_plus string_pop_sprite.z = 10001 # 配列の先頭にシフト @string_pop_sprite.unshift(string_pop_sprite) @string_pop_duration.unshift(40) end end #============================================================================== # ■ Mint_Gauge_System_Active #------------------------------------------------------------------------------ #  ピクチャーゲージのスプライト表示を扱うクラスです。 # このクラスはゲージの高速再描写に特化したクラスとなっています。 #============================================================================== class Mint_Gauge_System_Active #-------------------------------------------------------------------------- # ● オブジェクト初期化 # gauge : ゲージ画像 #-------------------------------------------------------------------------- def initialize(x, y, z = 500, type = 0) # 空ゲージを読み込む gauge_base = RPG::Cache.picture(MINTO::Base_EXP_Gauge) # 空ゲージ用のスプライトを作成 @sprite_gauge_base = Sprite.new # 座標を設定 @sprite_gauge_base.x = x @sprite_gauge_base.y = y @sprite_gauge_base.z = z # スプライトを作成 @sprite = @sprite_gauge_base.dup @sprite.x -= 16 @sprite.y -= 16 @sprite.z += 1 @sprite.bitmap = Bitmap.new(64, 32) @sprite.bitmap.font.color.set(0, 200, 250) # 空ゲージを描写 @sprite_gauge_base.bitmap = gauge_base # 本体ゲージを読み込む @gauge = gauge_initialize(type) # 本体ゲージ用の配列を作成 @sprite_gauge = [Sprite.new] (1..6).each do |i| # 本体ゲージ用のスプライトを作成 @sprite_gauge[i] = Sprite.new # 座標を設定 @sprite_gauge[i].x = (x - i) + 8 @sprite_gauge[i].y = y + i @sprite_gauge[i].z = z end end #-------------------------------------------------------------------------- # ● ゲージ用ビットマップの作成 #-------------------------------------------------------------------------- def gauge_initialize(type) # タイプに応じて分岐 case type when 0 # ゲージの読み込み gauge = RPG::Cache.picture(MINTO::A_EXP_Gauge) end # 本体ゲージ用のスプライトを作成 sprite_gauge = [] (1..100).each do |i| # 本体ゲージ用のビットマップを作成 sprite_gauge[i] = Bitmap.new(i, 1) # 本体ゲージ用の描写範囲を計算 dest_rect = Rect.new(0, 0, i, 1) sprite_gauge[i].stretch_blt(dest_rect, gauge, gauge.rect) end return sprite_gauge end #-------------------------------------------------------------------------- # ● 解放 #-------------------------------------------------------------------------- def dispose # スプライトを解放 for s in @sprite_gauge s.dispose end @sprite_gauge_base.bitmap.dispose @sprite_gauge_base.dispose @sprite.bitmap.dispose @sprite.dispose end #-------------------------------------------------------------------------- # ● 縁文字描写 #-------------------------------------------------------------------------- def draw_frame_text(x, y, width, height, text, ag = 0) # 元の色を保存 ori_color = @sprite.bitmap.font.color.clone # 縁の色を定義 @sprite.bitmap.font.color.set(0, 0, 0) # 縁文字を描写 @sprite.bitmap.draw_text(x-1, y, width, height, text, ag) @sprite.bitmap.draw_text(x+1, y, width, height, text, ag) @sprite.bitmap.draw_text(x, y-1, width, height, text, ag) @sprite.bitmap.draw_text(x, y+1, width, height, text, ag) # 元の色に戻す @sprite.bitmap.font.color = ori_color # 本体の文字を描写 @sprite.bitmap.draw_text(x, y, width, height, text, ag) end #-------------------------------------------------------------------------- # ● 可視状態の取得 #-------------------------------------------------------------------------- def visible # 先頭の可視状態を返す return @sprite_gauge[1].visible end #-------------------------------------------------------------------------- # ● 可視状態の変更 # visible : 新しい可視状態 #-------------------------------------------------------------------------- def visible=(visible) # 可視状態の変更(イテレータ) (1..6).each{|i| @sprite_gauge[i].visible = visible} @sprite_gauge_base.visible = visible end #-------------------------------------------------------------------------- # ● レートの設定 # rate : ゲージの減少率 #-------------------------------------------------------------------------- def set_rate(rate) rate = [[rate, 100].min, 0].max # ゲージを実際に描写 @sprite_gauge[1].bitmap = @gauge[rate] @sprite_gauge[2].bitmap = @gauge[rate] @sprite_gauge[3].bitmap = @gauge[rate] @sprite_gauge[4].bitmap = @gauge[rate] @sprite_gauge[5].bitmap = @gauge[rate] @sprite_gauge[6].bitmap = @gauge[rate] end end #============================================================================== # ■ Game_Actor #------------------------------------------------------------------------------ #  アクターを扱うクラスです。このクラスは Game_Actors クラス ($game_actors) # の内部で使用され、Game_Party クラス ($game_party) からも参照されます。 #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ● EXPリストの取得 #-------------------------------------------------------------------------- def exp_list return @exp_list end #-------------------------------------------------------------------------- # ● ゲージ用のEXP_NEXT の取得 #-------------------------------------------------------------------------- def minto_next_exp(lv, exp) if lv >= MINTO::Final_LV lv = MINTO::Final_LV end exp_rate = @exp_list[lv+1] - @exp_list[lv] next_exp = @exp_list[lv+1] - exp rate = (next_exp * 100) / exp_rate if @exp_list[lv+1] == 0 rate = 100 end return 100 - rate end #-------------------------------------------------------------------------- # ● 次のレベルまでの EXP 取得 #-------------------------------------------------------------------------- def next_rest_exp2(lv, exp) if lv >= MINTO::Final_LV lv = MINTO::Final_LV end return @exp_list[lv+1] > 0 ? (@exp_list[lv+1] - exp) : 0 end end #============================================================================== # ■ Window_BattleResult #------------------------------------------------------------------------------ #  バトル終了時に、獲得した EXP やゴールドなどを表示するウィンドウです。 #============================================================================== class Window_BattleResult < Window_Base #-------------------------------------------------------------------------- # ● オブジェクト初期化 # exp : EXP # gold : ゴールド # treasures : トレジャー # ap : AP #-------------------------------------------------------------------------- def initialize(exp, gold, treasures, ap = 0) super(8, 8, 624, 232) self.contents = Bitmap.new(width - 32, height - 32) self.opacity = 224 self.z = 0x270f self.visible = false # スプライトを作成 @sprite = Sprite.new # スプライトのビットマップを作成 @sprite.bitmap = Bitmap.new(640, 480) # スプライトのデータを設定 @sprite.z = 9997 @sprite.opacity = 160 # 各データを保管 @exp = [exp, 999999].min @gold = [gold, 999999].min # 文字の表示形式を調節 self.contents.font.size = 30 self.contents.font.italic = true # テキストの配列を作成 text_array = ["EXP", Data_System.data.words.gold] # アビリティシステムが有効な場合 if MINTO::RGSS["equip_skill_ability_system"] == true then # 用語 APを追加 text_array.push("AP") # APを保存 @ap = [$scene.ap, 999999].min end # ループ処理 for i in 0...text_array.size do # テキストを取得 text = text_array[i] # テキスト表示 frame_text(4, 8 + 66 * i, 256, 33, text, system_color) # アンダーライン描写 self.contents.fill_rect(4, 48 + 66 * i, 296, 1, system_color) end # 文字の表示形式を戻す self.contents.font.size = 22 self.contents.font.italic = false # 入手アイテムが1つでも存在する場合 if treasures != [] then # トレジャー用のテキストを表示 frame_text(316, 1, 256, 32, "入手アイテム", system_color) # 入手アイテム名のY座標 y = 32 # 入手アイテムを描写 for item in treasures do draw_item_name(item, 316, y) y += 32 end end # EXP表示用のスプライトを作成 @exp_sprite = Mint_Picture_Number.new(224, 48, 6, self.z + 10) # ゴールド表示用のスプライトを作成 @gold_sprite = Mint_Picture_Number.new(224, 112, 6, self.z + 10) # AP表示用のスプライトを作成 @ap_sprite = Mint_Picture_Number.new(224, 178, 6, self.z + 10) end #-------------------------------------------------------------------------- # ● 解放 #-------------------------------------------------------------------------- def dispose # ピクチャー数字を解放 for sprite in [@exp_sprite, @gold_sprite, @ap_sprite] sprite.dispose end # スプライトを解放 @sprite.bitmap.dispose @sprite.dispose # スーパークラスを実行 super # ゲージウィンドウを解放 @gauge_window.dispose end #-------------------------------------------------------------------------- # ● 可視フラグの変更 # visible : 可視フラグ #-------------------------------------------------------------------------- def visible=(visible) # スーパークラスを実行 super(visible) # 可視状態の場合 if self.visible == true then # リフレッシュ refresh # ゲージウィンドウをコピー @gauge_window = $scene.active_gauge_window end end #-------------------------------------------------------------------------- # ● 縁文字描写 #-------------------------------------------------------------------------- def frame_text(x, y, width, height, text, color, ag = 0) self.contents.font.color.set(0, 0, 0) self.contents.draw_text(x-1, y, width, height, text, ag) self.contents.draw_text(x+1, y, width, height, text, ag) self.contents.draw_text(x, y-1, width, height, text, ag) self.contents.draw_text(x, y+1, width, height, text, ag) self.contents.font.color = color self.contents.draw_text(x, y, width, height, text, ag) end #-------------------------------------------------------------------------- # ● アイテム名の描画 # item : アイテム # x : 描画先 X 座標 # y : 描画先 Y 座標 #-------------------------------------------------------------------------- def draw_item_name(item, x, y) # 無効なアイテムの場合 if item == nil then # メソッドを返す return end # アイテムのアイコングラフィックを読み込む bitmap = RPG::Cache.icon(item.icon_name) # アイコングラフィックを描写 self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24)) # アイテム名を縁取りして描写 frame_text(x + 28, y, 224, 32, item.name, normal_color) end #-------------------------------------------------------------------------- # ● リフレッシュ #-------------------------------------------------------------------------- def refresh # EXPを描写 @exp_sprite.set_text(@exp) # ゴールドを描写 @gold_sprite.set_text(@gold) # アビリティシステムが有効な場合 if MINTO::RGSS["equip_skill_ability_system"] == true then # APを描写 @ap_sprite.set_text(@ap) end # フィルターを描写 @sprite.bitmap.fill_rect(0, 0, 640, 480, Color.new(0, 0, 0, 255)) # ゲージウィンドウをリフレッシュ $scene.active_gauge_window.refresh_exp end end #============================================================================== # ■ Window_Active_Exp #------------------------------------------------------------------------------ #  獲得したEXPに応じて、ゲージを変動させるウィンドウです。 #============================================================================== class Window_Active_Exp < Window_Base #-------------------------------------------------------------------------- # ● オブジェクト初期化 # exp : EXP #-------------------------------------------------------------------------- def initialize(exp, skills) super(8, 240, 624, 232) @exp = exp # EXP表示用の配列を作成 @text = [] # LV表示用の配列を作成 @lv = [] # EXPゲージ用の配列 @exp_gauge = [] # 最終スキルの配列を作成 @skills = skills.dup # 演出スキップフラグをクリア @skip = false self.contents = Bitmap.new(width - 32, height - 32) self.opacity = 224 self.z = 9999 self.visible = false # スプライトを作成 @sprite = Sprite.new # スプライトのビットマップを作成 @sprite.bitmap = Bitmap.new(width - 32, height - 32) # スプライトのデータを設定 @sprite.x = self.x + 16 @sprite.y = self.y + 16 @sprite.z = 10000 # グラフィック用のスプライトを作成 @sprite2 = @sprite.dup @sprite2.z = 9999 @sprite2.bitmap = Bitmap.new(width - 32, height - 32) end #-------------------------------------------------------------------------- # ● スプライトの作成 #-------------------------------------------------------------------------- def sprite_set # パーティー人数分だけ繰り返す(イテレータ) (0...$game_party.actors.size).each do |i| # アクターを取得 actor = $game_party.actors[i] # 座標を取得 x = i * 160 # アクター名を描写 frame_text(x, 0, 96, 32, actor.name, normal_color) y = 128 # 用語を描写 frame_text(x, y, 64, 32, "LV", system_color) frame_text(x, y + 32, 64, 32, "NEXT", system_color) end end #-------------------------------------------------------------------------- # ● グラフィックの作成 # actor : アクター # x : 描写先のX座標 # y : 描写先のY座標 # i : インデックス # type : 描写タイプ #-------------------------------------------------------------------------- def graphic_set(actor, x, y, i, type) # 顔グラフィックの配列 face = [] # 顔グラフィックを読み込む # (顔グラフィック名が nil ならバトラーを読み込む) if MINTO::Face_Name[actor.id][type] face[i] = RPG::Cache.picture(MINTO::Face_Name[actor.id][type]) else # バトラー画像を読み込む battler_name = actor.battler_name battler_hue = actor.battler_hue face[i] = RPG::Cache.battler(battler_name, battler_hue) end # キャラグラフィックを描写 @sprite2.bitmap.blt(x, y, face[i], face[i].rect) end #-------------------------------------------------------------------------- # ● 縁文字描写 #-------------------------------------------------------------------------- def frame_text(x, y, width, height, text, color, ag = 0) @sprite.bitmap.font.color.set(0, 0, 0) @sprite.bitmap.draw_text(x-1, y, width, height, text, ag) @sprite.bitmap.draw_text(x+1, y, width, height, text, ag) @sprite.bitmap.draw_text(x, y-1, width, height, text, ag) @sprite.bitmap.draw_text(x, y+1, width, height, text, ag) @sprite.bitmap.font.color = color @sprite.bitmap.draw_text(x, y, width, height, text, ag) end #-------------------------------------------------------------------------- # ● リフレッシュEXP #-------------------------------------------------------------------------- def refresh_exp # 可視フラグをオン self.visible = true # 用語を描写 sprite_set # 更新フレーム数を作成 thyme = @exp < MINTO::LVUP_Frame ? @exp.abs : MINTO::LVUP_Frame rate_p = @exp < MINTO::LVUP_Frame ? @exp.abs : MINTO::LVUP_Frame # EXPの配列 exp = [] # LVの配列 last_lv = [] # 最終EXPの配列 last_exp = [] # レベルアップフラグ level_up = [] # パーティー人数分だけ繰り返す(イテレータ) (0...$game_party.actors.size).each do |i| # アクターを代入 actor = $game_party.actors[i] # 座標を取得 x = 24 + (i * 160) y = self.y + 164 # LV表示用のピクチャー数字を作成 @lv[i] = Mint_Picture_Number.new(x + 60, y - 16, 3, 10000) # NEXT_EXP表示用のピクチャー数字を作成 @text[i] = Mint_Picture_Number.new(x, y + 34, 7, 10000) # EXPゲージを作成 @exp_gauge[i] = Mint_Gauge_System_Active.new(x, y + 48, 9999) # 最終LevelとEXPを代入 last_lv[i] = $scene.last_level[i].to_i last_exp[i] = $scene.last_exp[i].to_i # 入手EXPがLVUP_Frame以上なら、LVUP_Frameで割ってその余りを求める if @exp > MINTO::LVUP_Frame then last_exp[i] += @exp % MINTO::LVUP_Frame end # NEXT_EXPを描写 @text[i].set_text([last_exp[i], 0].max) # 最終レベルを描写 @lv[i].set_text(last_lv[i]) # グラフィックを描写 graphic_set(actor, i * 160, 32, i, 0) end # 更新フレームがなくなるまで繰り返す while thyme >= 1 do # グラフィックをクリア @sprite2.bitmap.clear # Cボタンが押された場合 if Input.trigger?(Input::C) # スキップフラグをオン @skip = true end # パーティー人数分だけ繰り返す(イテレータ) (0...$game_party.actors.size).each do |i| # アクターを代入 actor = $game_party.actors[i] # アクターが存在し、且つEXPが獲得可能な状態なら if actor.exist? and not actor.cant_get_exp? then # 描写用のEXPを加算 last_exp[i] += (@exp / rate_p) end # NEXT_EXPを取得 next_p = actor.next_rest_exp2(last_lv[i], last_exp[i]) # NEXT_EXPが文字列ではない場合 if next_p.is_a?(Numeric) then # 最低値を0に設定 next_p = [next_p, 0].max # アクターのマザーデータを取得 d_actor = Data_Actors.data[actor.id] # 99以上の最終レベルが設定されている場合 if MINTO::Final_LV >= 100 then # 最終レベルを代入 final_level = MINTO::Final_LV else # 最終レベルを代入 final_level = d_actor.final_level end # レベルアップが可能な場合 # (NEXT_EXPが0で且つ、最終レベルがMAXレベル未満の場合) if next_p == 0 and last_lv[i] < final_level then # 描写用のLVを加算 last_lv[i] += 1 # スキル習得判定 for skill in Data_Classes.data[actor.class_id].learnings do # レベル条件を満たしている場合 if skill.level <= last_lv[i] then # 最終スキルに存在しない場合 if not @skills[i].include?(skill.skill_id) then # 最終スキルに保存 @skills[i].push(skill.skill_id) # NewSkill表示 @lv[i].string_pop("NewSkill", -64, -32) end end end # SEデータを代入 data = MINTO::LVUP_SE # SEを演奏する Audio.se_play("Audio/SE/#{data[0]}", data[1], data[2]) # 限界レベルを取得 last_lv[i] = [last_lv[i], final_level].min # LVUP表示 @lv[i].string_pop("lvup", -64) # レベルアップフラグを設定 level_up[i] = true end # レベルアップが有効な場合 if level_up[i] == true then # グラフィックを描写 graphic_set(actor, i * 160, 32, i, 1) else # グラフィックを描写 graphic_set(actor, i * 160, 32, i, 0) end end # ゲージの長さを算出 n = actor.next_rest_exp2(last_lv[i], last_exp[i]) rate = [[actor.minto_next_exp(last_lv[i], last_exp[i]), 0].max, 100].min # ゲージを更新 @exp_gauge[i].set_rate(rate) # NEXT_EXPを描写 @text[i].set_text([n, 0].max) # 最終レベルを描写 @lv[i].set_text(last_lv[i]) # LVUP表示を更新 @lv[i].update end # カウントを減らす thyme -= 1 # スキップフラグがオフの場合のみ更新する if @skip == false then # ゲーム画面を更新 Graphics.update # 入力情報を更新 Input.update end end # 必須ウェイトタイム(変更しない) thyme = 0 # パーティー人数分だけ繰り返す(イテレータ) (0...$game_party.actors.size).each do |i| # LVUP表示カウントを取得する count = @lv[i].string_pop_duration[0].to_i # thyme より count の方が高ければ thyme を上書き if count > thyme then thyme = count end end # 必須ウェイトタイムが1以上の限り更新する while thyme >= 1 do # パーティー人数分だけ繰り返す(イテレータ) (0...$game_party.actors.size).each do |i| # LVUP表示を更新 @lv[i].update end # カウントを減らす thyme -= 1 # ゲーム画面を更新 Graphics.update end end #-------------------------------------------------------------------------- # ● 解放 #-------------------------------------------------------------------------- def dispose # ループ処理 for sprite in @text + @lv + @exp_gauge do # 特殊スプライトを解放 sprite.dispose end # スプライトを解放 @sprite.bitmap.dispose @sprite.dispose @sprite2.bitmap.dispose @sprite2.dispose # スーパークラスを実行 super end end #============================================================================== # ■ Scene_Battle (分割定義 1) #------------------------------------------------------------------------------ #  バトル画面の処理を行うクラスです。 #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_reader :last_exp # 最終EXP attr_reader :last_level # 最終レベル attr_reader :last_skills # 最終スキルの配列 attr_accessor :active_gauge_window # ゲージウィンドウ end #============================================================================== # ■ Scene_Battle (分割定義 2) #------------------------------------------------------------------------------ #  バトル画面の処理を行うクラスです。 #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # ● アフターバトルフェーズ開始 #-------------------------------------------------------------------------- alias start_phase5_Active_Lv_Up2 start_phase5 def start_phase5 # 最終EXPとレベルを初期化 @last_exp = [] @last_level = [] # 最終スキルの配列 @last_skills = [] # パーティー人数分だけ繰り返す(イテレータ) (0...$game_party.actors.size).each do |i| # アクターを取得 actor = $game_party.actors[i] # 最終EXPを保存 @last_exp[i] = actor.exp.to_i # 最終レベルを保存 @last_level[i] = actor.level.to_i # 最終スキルの取得 @last_skills[i] = actor.skills.dup end # EXPを初期化 exp = 0 # 全エネミー分だけ繰り返す(イテレータ) ($game_troop.enemies).each do |enemy| # エネミーが隠れ状態でない場合 unless enemy.hidden then # 獲得EXPを追加 exp += enemy.exp end end # アクティブゲージウィンドウを作成 @active_gauge_window = Window_Active_Exp.new(exp, last_skills) # 元の処理を実行 start_phase5_Active_Lv_Up2 end end end