| 
 
| 赞 | 0 |  
| VIP | 0 |  
| 好人卡 | 0 |  
| 积分 | 1 |  
| 经验 | 35740 |  
| 最后登录 | 2017-9-25 |  
| 在线时间 | 260 小时 |  
 Lv1.梦旅人 
	梦石0 星屑50 在线时间260 小时注册时间2010-9-18帖子11 | 
| 
请问能将 升级提示◆暮2版的 文字显示 功能  并入泛用型升级提示 v1.1 中吗?
x
加入我们,或者,欢迎回来。您需要 登录 才可以下载或查看,没有帐号?注册会员  
 泛用型升级提示 v1.1  在显示获得技能时 位置出错,如下图(黄字部分)
 
   升级提示◆暮2版的如下图(紫色部分),是类似Rmxp中文章显示的功能
 
   
 或者,能将 升级提示◆暮2版 加上升级提示音乐吗(在脚本中加),别的升级提示似乎都有这个功能
 以下为两个脚本
 
 1.泛用型升级提示 v1.1
 升级提示◆暮色轮回2版复制代码#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#============================================================================== 
#==============================================================================
# 泛用型升级提示 v1.1
# 
# 核心部分 By 叶子
# 窗口部分 原作者:桜雅 在土 修改:叶子
#
# Date: 2-12-2006 -v1.0
#       3-2-2006 -v1.1
#============================================================================== 
#
# 在对话时,调用“增加EXP”或“增减等级”指令前,请等待3帧以上,否则对话框来不及消失。
#
# 当打开此号数的开关的时候,等级上升将不会提示,比如默认打开45号开关,等级上升不再提示
$不显示升级窗口 = 255
#============================================================================== 
class Game_Actor
 #--------------------------------------------------------------------------
 # ● 更改 EXP
 #     exp : 新的 EXP
 #--------------------------------------------------------------------------
 def exp=(exp)
   # 记录旧等级
   last_level = @level
   @exp = [[exp, 9999999].min, 0].max
   # 升级
   while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
     @level += 1
     # 学会特技
     for j in $data_classes[@class_id].learnings
       if j.level == @level
         learn_skill(j.skill_id)
       end
     end
   end
   # 降级
   while @exp < @exp_list[@level]
     @level -= 1
   end
   # 修正当前的 HP 与 SP 超过最大值
   @hp = [@hp, self.maxhp].min
   @sp = [@sp, self.maxsp].min
   # 升级了的话,升级显示处理
   if @level > last_level and $game_switches[$不显示升级窗口] == false and
     not $BTEST
     show_level_up_result(last_level)
   end
 end
 #--------------------------------------------------------------------------
 # ● 升级显示处理
 #--------------------------------------------------------------------------
 def show_level_up_result(last_level)
   actor_parameters = self.last_parameters(last_level)
   last_maxhp = actor_parameters[0]
   last_maxsp = actor_parameters[1]
   last_str = actor_parameters[2]
   last_dex = actor_parameters[3]
   last_agi = actor_parameters[4]
   last_int = actor_parameters[5]
   level_up_window = Window_LevelUpWindow_A.new self,last_level,last_maxhp,
   last_maxsp,last_str,last_dex,last_agi,last_int
   level_up_window.visible = true
   skill_learning_window = Window_SkillLearning_A.new(@class_id,
   last_level, @level)
   # 循环
   loop do
     # 刷新游戏画面
     Graphics.update
     # 刷新输入信息
     Input.update
     # 按下C就关闭窗口
     if Input.trigger?(Input::C)
       unless skill_learning_window.refresh
         level_up_window.dispose
         skill_learning_window.dispose
         return true
       end
     end
   end
 end
 #--------------------------------------------------------------------------
 # ● 一次取得全部旧属性
 #--------------------------------------------------------------------------
 def last_parameters(level)
   #---------------------------
   # maxhp
   #---------------------------
   n = [[$data_actors[@actor_id].parameters[0, level] + @maxhp_plus, 1].max, 9999].min
   for i in @states
     n *= $data_states[i].maxhp_rate / 100.0
   end
   n = [[Integer(n), 1].max, 9999].min
   maxhp = n
   #---------------------------
   # maxsp
   #---------------------------
   n = [[$data_actors[@actor_id].parameters[1, level] + @maxsp_plus, 0].max, 9999].min
   for i in @states
     n *= $data_states[i].maxsp_rate / 100.0
   end
   n = [[Integer(n), 0].max, 9999].min
   maxsp = n
   #---------------------------
   # str
   #---------------------------
   n = $data_actors[@actor_id].parameters[2, level]
   weapon = $data_weapons[@weapon_id]
   armor1 = $data_armors[@armor1_id]
   armor2 = $data_armors[@armor2_id]
   armor3 = $data_armors[@armor3_id]
   armor4 = $data_armors[@armor4_id]
   n += weapon != nil ? weapon.str_plus : 0
   n += armor1 != nil ? armor1.str_plus : 0
   n += armor2 != nil ? armor2.str_plus : 0
   n += armor3 != nil ? armor3.str_plus : 0
   n += armor4 != nil ? armor4.str_plus : 0
   n = [[n + @str_plus, 1].max, 999].min
   for i in @states
     n *= $data_states[i].str_rate / 100.0
   end
   n = [[Integer(n), 1].max, 999].min
   str = n
   #---------------------------
   # dex
   #---------------------------
   n = $data_actors[@actor_id].parameters[3, level]
   weapon = $data_weapons[@weapon_id]
   armor1 = $data_armors[@armor1_id]
   armor2 = $data_armors[@armor2_id]
   armor3 = $data_armors[@armor3_id]
   armor4 = $data_armors[@armor4_id]
   n += weapon != nil ? weapon.dex_plus : 0
   n += armor1 != nil ? armor1.dex_plus : 0
   n += armor2 != nil ? armor2.dex_plus : 0
   n += armor3 != nil ? armor3.dex_plus : 0
   n += armor4 != nil ? armor4.dex_plus : 0
   n = [[n + @dex_plus, 1].max, 999].min
   for i in @states
     n *= $data_states[i].dex_rate / 100.0
   end
   n = [[Integer(n), 1].max, 999].min
   dex = n
   #---------------------------
   # agi
   #---------------------------
   n = $data_actors[@actor_id].parameters[4, level]
   weapon = $data_weapons[@weapon_id]
   armor1 = $data_armors[@armor1_id]
   armor2 = $data_armors[@armor2_id]
   armor3 = $data_armors[@armor3_id]
   armor4 = $data_armors[@armor4_id]
   n += weapon != nil ? weapon.agi_plus : 0
   n += armor1 != nil ? armor1.agi_plus : 0
   n += armor2 != nil ? armor2.agi_plus : 0
   n += armor3 != nil ? armor3.agi_plus : 0
   n += armor4 != nil ? armor4.agi_plus : 0
   n = [[n + @agi_plus, 1].max, 999].min
   for i in @states
     n *= $data_states[i].agi_rate / 100.0
   end
   n = [[Integer(n), 1].max, 999].min
   agi = n
   #---------------------------
   # int
   #---------------------------
   n = $data_actors[@actor_id].parameters[5, level]
   weapon = $data_weapons[@weapon_id]
   armor1 = $data_armors[@armor1_id]
   armor2 = $data_armors[@armor2_id]
   armor3 = $data_armors[@armor3_id]
   armor4 = $data_armors[@armor4_id]
   n += weapon != nil ? weapon.int_plus : 0
   n += armor1 != nil ? armor1.int_plus : 0
   n += armor2 != nil ? armor2.int_plus : 0
   n += armor3 != nil ? armor3.int_plus : 0
   n += armor4 != nil ? armor4.int_plus : 0
   n = [[n + @int_plus, 1].max, 999].min
   for i in @states
     n *= $data_states[i].int_rate / 100.0
   end
   n = [[Integer(n), 1].max, 999].min
   int = n
   return [maxhp, maxsp, str, dex, agi, int]
 end
end
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#============================================================================== 
# ————————————————————————————————————
# ▼▲▼ XRXS_BP10. LEVEL UP!能力上昇表示ウィンドウ plus ▼▲▼
# by 桜雅 在土
#——以下3个如果需要修改,直接输入文件名即可
$data_system_level_up_se = "" #升级时的音效设置
$data_system_level_up_me = "Audio/ME/007-Fanfare01" # 升级时播放的ME
$data_system_skilllearn_se = "" # 学会特技时播放的声效。
#==============================================================================
# ■ Window_LevelUpWindow
#------------------------------------------------------------------------------
#  バトル終了時、レベルアップした場合にステータスを表示するウィンドウです。
#==============================================================================
class Window_LevelUpWindow_A < Window_Base
 #--------------------------------------------------------------------------
 # ● オブジェクト初期化
 #--------------------------------------------------------------------------
 def initialize(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
   super(210, 100, 220, 222)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.visible = false
   self.back_opacity = 160
   # 防止被对话框遮住
   self.z = 9999
   refresh(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
   # SEの再生
   if $data_system_level_up_se != ""
     Audio.se_play($data_system_level_up_se)
   end
   # MEの再生
   if $data_system_level_up_me != ""
     Audio.me_stop
     Audio.me_play($data_system_level_up_me)
   end
 end
 #--------------------------------------------------------------------------
 # ● リフレッシュ
 #--------------------------------------------------------------------------
 def refresh(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
   self.contents.clear
   self.contents.font.color = text_color(6)
   self.contents.font.size = 20
   self.contents.draw_text(0, 0, 160, 24, actor.name.to_s)
   self.contents.font.color = system_color
   self.contents.font.size = 18
   self.contents.draw_text( 0, 26, 160, 24, "等级")
   self.contents.font.size = 18
   self.contents.draw_text( 0, 48, 80, 24, $data_system.words.hp)
   self.contents.draw_text( 0, 70, 80, 24, $data_system.words.sp)
   self.contents.draw_text( 0, 92, 80, 24, $data_system.words.str)
   self.contents.draw_text( 0, 114, 80, 24, $data_system.words.dex)
   self.contents.draw_text( 0, 136, 80, 24, $data_system.words.agi)
   self.contents.draw_text( 0, 158, 80, 24, $data_system.words.int)
   self.contents.draw_text(110, 26, 128, 24, "→")
   self.contents.draw_text(110, 48, 128, 24, "→")
   self.contents.draw_text(110, 70, 128, 24, "→")
   self.contents.draw_text(110, 92, 128, 24, "→")
   self.contents.draw_text(110, 114, 128, 24, "→")
   self.contents.draw_text(110, 136, 128, 24, "→")
   self.contents.draw_text(110, 158, 128, 24, "→")
   self.contents.font.color = normal_color
   self.contents.draw_text( 60, 26, 88, 24, last_lv.to_s)
   self.contents.draw_text( 60, 48, 72, 24, up_hp.to_s)
   self.contents.draw_text( 60, 70, 72, 24, up_sp.to_s)
   self.contents.draw_text( 60, 92, 72, 24, up_str.to_s)
   self.contents.draw_text( 60, 114, 72, 24, up_dex.to_s)
   self.contents.draw_text( 60, 136, 72, 24, up_agi.to_s)
   self.contents.draw_text( 60, 158, 72, 24, up_int.to_s)
   self.contents.draw_text( 145, 26, 128, 24, actor.level.to_s)
   self.contents.draw_text( 145, 48, 128, 24, actor.maxhp.to_s)
   self.contents.draw_text( 145, 70, 128, 24, actor.maxsp.to_s)
   self.contents.draw_text( 145, 92, 128, 24, actor.str.to_s)
   self.contents.draw_text( 145, 114, 128, 24, actor.dex.to_s)
   self.contents.draw_text( 145, 136, 128, 24, actor.agi.to_s)
   self.contents.draw_text( 145, 158, 128, 24, actor.int.to_s)
 end
end
#==============================================================================
# ■ Window_SkillLearning
#------------------------------------------------------------------------------
#  レベルアップ時などにスキルを習得した場合にそれを表示するウィンドウです。
#==============================================================================
class Window_SkillLearning_A < Window_Base
 #--------------------------------------------------------------------------
 # ● オブジェクト初期化
 #--------------------------------------------------------------------------
 def initialize(class_id, last_lv, now_lv)
   super(210, 322, 220, 56)
   self.contents = Bitmap.new(width - 32, height - 16) # わざと▽を表示
   self.visible = false
   self.back_opacity = 160
   # 防止被对话框遮住
   self.z = 9999
   @learn_skills = []
   for i in 0...$data_classes[class_id].learnings.size
     learn_lv = $data_classes[class_id].learnings[i].level
     # 今回のレベルアップ範囲で習得するスキルの場合
     if learn_lv > last_lv and learn_lv <= now_lv
       @learn_skills.push $data_skills[
       $data_classes[class_id].learnings[i].skill_id].name
     end
   end
   refresh
 end
 #--------------------------------------------------------------------------
 # ● リフレッシュ
 #--------------------------------------------------------------------------
 def refresh
   # 各描写
   skill_name = @learn_skills.shift
   if skill_name == nil
     return false
   end
   # SEの再生
   if $data_system_skilllearn_se != ""
     Audio.se_play($data_system_skilllearn_se, 100, 70)
   end
   self.contents.clear
   self.contents.font.size = 18
   self.contents.font.color = text_color(0)
   self.contents.draw_text(0,0,156,24, "学会特技:"+skill_name)
   self.contents.font.color = text_color(6)
   self.contents.draw_text(0,0,156,24, "          "+skill_name)
   self.contents.font.color = text_color(0)
   self.visible = true
   return true
 end
end
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
复制代码#◆◇◆◇◆  レベルアップポップスクリプト ver 1.03  ◇◆◇◆◇
# 全マスタースクリプト共通スクリプト
#  サポート掲示板 http://www2.ezbbs.net/21/minto-aaa/
#   by みんと
=begin
■ 更新履歴
○ ver 1.03(2009/04/29)
 レイアウトと汎用性を修正
 
○ ver 1.02(2009/04/27)
 汎用性を向上
○ ver 1.01(2009/04/26)
 ウィンドウの消し忘れを修正
○ ver 1.00(2009/04/25)
 公開
 
■ 説明
レベルアップした際の詳細な情報を1つずつ素早く表示します。
スキルを習得した場合は習得したスキル名を表示します。
動くリザルトシリーズ、
及びアクティブレベルアップ両シリーズにも対応しています。
両シリーズよりも「下」に導入してください。
=end
#==============================================================================
# ☆ MINTO
#------------------------------------------------------------------------------
#   様々なフラグを扱うメインモジュールです。
#==============================================================================
module MINTO
  
  # レベルアップポップスクリプトを有効化 ( true で有効 / false で無効 )
  RGSS["レベルアップポップスクリプト"] = true
  
end
# レベルアップポップスクリプトが有効な場合に以降の処理を実行する
if MINTO::RGSS["レベルアップポップスクリプト"] == true then
  
#==============================================================================
# ☆ カスタマイズ
#------------------------------------------------------------------------------
#   機能のカスタマイズをここで行います。
#==============================================================================
module MINTO
  
  # パラメータ上昇時のSE(名前、音量、ピッチ)
  SE_Data = ["Audio/SE/002-System02", 100, 120]
  
  # スキル習得時のSE(名前、音量、ピッチ)
  Skill_SE_Data = ["Audio/SE/157-Skill01", 100, 200]
  
  # スキル習得時のメッセージ末尾
  LearningMessage = "战技习得!!"
  
end
#==============================================================================
# ■ Object
#------------------------------------------------------------------------------
#  全てのクラスのスーパークラス。オブジェクトの一般的な振舞いを定義します。
#==============================================================================
class Object
  #--------------------------------------------------------------------------
  # ● 深い複製の作成
  #--------------------------------------------------------------------------
  def dec
    # Marshalモジュールを経由して、完全な複製を作成
    return Marshal.load(Marshal.dump(self))
  end
end
#==============================================================================
# ■ Bitmap
#------------------------------------------------------------------------------
#  画像そのものを扱う組み込みクラスです。
#==============================================================================
class Bitmap
  #--------------------------------------------------------------------------
  # ● 指定範囲のクリア
  #--------------------------------------------------------------------------
  def rect_clear(x, y, width, height)
    # 対象の範囲を消す
    rect = Rect.new(x, y, width, height)
    self.fill_rect(rect, Color.new(0, 0, 0, 0))
  end
end
#==============================================================================
# ■ Window
#------------------------------------------------------------------------------
#  ゲーム内の全てのウィンドウのスーパークラスです。
#   内部的には複数のスプライトで構成されています。
#==============================================================================
class Window
  #--------------------------------------------------------------------------
  # ● ウィンドウのセンタリング
  #--------------------------------------------------------------------------
  def centering
    # ウィンドウを画面の中央に配置する
    self.x = (640 - self.width)  / 2
    self.y = (480 - self.height) / 2
  end
end
#==============================================================================
# ■ Window_BattleStatus
#------------------------------------------------------------------------------
#  バトル画面でパーティメンバーのステータスを表示するウィンドウです。
#==============================================================================
class Window_BattleStatus < Window_Base
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_accessor :level_up_flags           # レベルアップフラグ
end
#==============================================================================
# ■ Window_Lvup_Data
#------------------------------------------------------------------------------
#   Lvup時のデータを表示するウィンドウです。
#==============================================================================
class Window_Lvup_Data < Window_Base
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_accessor :data                     # データ
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 512, 192)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.z = 10016
    self.visible = false
    @data = {}
    centering
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #    actor : アクター
  #--------------------------------------------------------------------------
  def refresh(actor)
    x = 160
    self.contents.clear
    # アクター名を描写
    self.contents.font.color = normal_color
    self.contents.draw_text(x * 0, 32 * 0, 224, 32, actor.name)
    # アクターグラフィックを描写
    battler_name = actor.battler_name
    battler_hue = actor.battler_hue
    bitmap = RPG::Cache.battler(battler_name, battler_hue)
    self.contents.blt(336, 0, bitmap, bitmap.rect)
    # 用語を描写
    self.contents.font.color = system_color
    self.contents.draw_text(x * 0, 32 * 1, 96, 32, "Level")
    self.contents.draw_text(x * 0, 32 * 2, 96, 32, $data_system.words.hp)
    self.contents.draw_text(x * 0, 32 * 3, 96, 32, $data_system.words.sp)
    self.contents.draw_text(x * 1, 32 * 1, 96, 32, $data_system.words.str)
    self.contents.draw_text(x * 1, 32 * 2, 96, 32, $data_system.words.dex)
    self.contents.draw_text(x * 1, 32 * 3, 96, 32, $data_system.words.agi)
    self.contents.draw_text(x * 1, 32 * 4, 96, 32, $data_system.words.int)
    self.contents.font.color = normal_color
    # パラメータを描写
    for i in 0...@data[actor].size do
      draw_status(actor, i)
    end
  end
  #--------------------------------------------------------------------------
  # ● 能力の描写
  #    actor : アクター
  #    index : 項目
  #--------------------------------------------------------------------------
  def draw_status(actor, index)
    # 描写座標を設定
    x = 60 + ((index / 4) * 160) + ((index / 4) * 8)
    y = 32 + ((index % 4) * 32)
    # 描写範囲をクリア
    self.contents.rect_clear(x, y, 48, 32)
    # 能力値を描写
    self.contents.draw_text(x, y, 96, 32, @data[actor][index].to_s)
  end
end
#==============================================================================
# ■ Window_BattleCenter_Help
#------------------------------------------------------------------------------
#  戦闘画面で任意の文章を表示するウィンドウです。
#==============================================================================
class Window_BattleCenter_Help < Window_Base
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 64, 56)
    self.z = 20000
    self.visible = false
    create_contents
    @message_duration = 0
    @save_text = ""
    @text = []
    @text_y = 0
    @text_x = 0
    @text_type = 0
    @text_index = 0
    @text_width = []
    @speed = 1
  end
  #--------------------------------------------------------------------------
  # ● ウィンドウ内容の作成
  #--------------------------------------------------------------------------
  def create_contents
    unless self.contents.nil?
      self.contents.dispose
      self.contents = nil
    end
    self.contents = Bitmap.new(width - 32, height - 32)
  end
  #--------------------------------------------------------------------------
  # ● テキスト設定
  #    text : スプライトに表示する文字列
  #--------------------------------------------------------------------------
  def set_text(text)
    # 求められたテキストが無効な場合
    if text.to_s == "" then
      # 表示カウントを設定
      @message_duration = 8
      # メソッドを終了
      return
    end
    self.active = true
    # 終了記号を追加
    text += "\\bw"
    # スプライトを可視状態にする
    self.visible = true
    # 各データを初期化
    @save_text = ""
    @text = []
    @text_width = []
    @text_index = 0
    @text_type = 0
    @speed = 1
    self.pause = false
    self.opacity = 192
    self.contents_opacity = 255
    # 表示カウントを設定
    @message_duration = 16
    # 文字を複製
    data = text.dup
    # 各制御文字を仮変換
    data.gsub!(/\\\\/) { "\000" }
    data.gsub!(/\\[Cc]\[([0-9]+)\]/) { "" }
    data.gsub!(/\\[Bb][Ww]/) { "" }
    # ウィンドウのサイズを調節
    self.width = 32 + (self.contents.text_size(data).width)
    self.height = 56
    # センター表示
    centering
    # ビットマップを再作成
    create_contents
    refresh(text.dup)
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #    text : スプライトに表示する文字列
  #--------------------------------------------------------------------------
  def refresh(text)
    # 基本情報を初期化
    self.contents.clear
    self.contents.font.color = normal_color
    self.contents.font.bold = false
    self.contents.font.italic = false
    @text_x = 0
    @text_y = 0
    # 文章のインデックスを初期化
    @text_index = 0
    # 便宜上、"\\\\" を "\000" に変換
    text.gsub!(/\\\\/) { "\000" }
    # 各制御文字を実際のものに変換
    text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
    text.gsub!(/\\[Bb][Ww]/) { "\017" }
    @save_text = text.dup
  end
  #--------------------------------------------------------------------------
  # ● テキストの更新
  #--------------------------------------------------------------------------
  def text_update
    @text = @save_text.split(//)
    # 無効な文字列の場合
    if @text[@text_index] == nil then
      # メソッドを返す
      return false
    end
    # スプライトを可視状態にする
    self.visible = true
    # テキストを取得
    c = @text[@text_index]
    # \\ の場合
    if c == "\000" then
      # 本来の文字に戻す
      c = "\\"
    # \C[n] の場合
    elsif c == "\001" then
      # 制御文字を処理
      @save_text.sub!(/\[([0-9]+)\]/, "")
      # 文字色のIDを取得
      color = $1.to_i
      # 文字色のIDが有効な場合
      if color >= 0 then
        # 文字色を変更
        self.contents.font.color = text_color(color)
      end
      # インデックスを進める
      @text_index += 1
      # メソッドを返す
      return true
    # \BW の場合
    elsif c == "\017" then
      # 文章の表示速度を初期化
      @speed = 0
      # ポーズサインを表示する
      self.pause = true
      # ボタン待ちフラグをオン
      @press = true
      # インデックスを進める
      @text_index += 1
      # メソッドを返す
      return true
    end
    # 文字を描画
    self.contents.draw_text(@text_x, 0, 40, 24, c)
    # @text_x に描画した文字の幅を加算
    @text_x += self.contents.text_size(c).width
    # インデックスを進める
    @text_index += 1
    return true
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    # ボタン入力待ちフラグがオンの場合
    if @press == true then
      super
      # C ボタンが押された場合
      if Input.trigger?(Input::C) == true then
        # ボタン入力待ちフラグをオフ
        @press = false
        # ポーズサインを非表示にする
        self.pause = false
        # ウィンドウを不可視にする
        self.visible = false
        # ボタン入力待ちフラグをオフ
        @press = false
      end
      # メソッドを返す
      return
    end
    # 更新が可能なフレームでない場合
    if @speed != 0 and (Graphics.frame_count % @speed != 0) then
      # メソッドを返す
      return
    end
    # テロップを更新中の場合
    if text_update == true then
      # スピードが 0 の場合
      if @speed == 0 then
        update
      end
      # メソッドを返す
      return
    else
      # 文章の表示速度を最速化
      @speed = 1
    end
  end
end
#==============================================================================
# ■ Scene_Battle (分割定義 1)
#------------------------------------------------------------------------------
#  バトル画面の処理を行うクラスです。
#==============================================================================
class Scene_Battle
  #--------------------------------------------------------------------------
  # ● メイン処理
  #--------------------------------------------------------------------------
  alias main_MITO_RGSS_120 main
  def main
    # 元の処理を実行
    main_MITO_RGSS_120
    # レベルアップウィンドウが有効な場合
    unless @lvup_window.nil?
      # レベルアップウィンドウを解放
      @lvup_window.dispose
      # センターヘルプウィンドウを解放
      @center_help_window.dispose
    end
  end
end
#==============================================================================
# ■ Scene_Battle (分割定義 2)
#------------------------------------------------------------------------------
#  バトル画面の処理を行うクラスです。
#==============================================================================
class Scene_Battle  
  #--------------------------------------------------------------------------
  # ● アフターバトルフェーズ開始
  #--------------------------------------------------------------------------
  alias start_phase5_MITO_RGSS_120 start_phase5
  def start_phase5
    @last_skills_array = []
    # フラグを設定
    @levelup_effect = false
    # レベルアップウィンドウを作成
    @lvup_window = Window_Lvup_Data.new
    # センターヘルプウィンドウを作成
    @center_help_window = Window_BattleCenter_Help.new
    # ループ処理(パーティー)
    for i in 0...$game_party.actors.size do
      # アクターを取得
      actor = $game_party.actors[i]
      # 最終能力値を保存
      save_last_parameter(actor)
      @last_skills_array[i] = []
      # ループ処理
      for skill in $data_classes[actor.class_id].learnings do
        # レベル条件を満たしている場合
        if skill.level <= actor.level then
          # 習得スキルに追加
          @last_skills_array[i].push(skill.skill_id)
        end
      end
      # 習得スキルに追加
      @last_skills_array[i] += actor.skills
      # 重複する要素を除外
      @last_skills_array[i].uniq!
    end
    # 元の処理を実行
    start_phase5_MITO_RGSS_120
  end
  #--------------------------------------------------------------------------
  # ● 最終能力値の記憶
  #    actor : アクター
  #--------------------------------------------------------------------------
  def save_last_parameter(actor)
    @lvup_window.data[actor] = []
    @lvup_window.data[actor][0] = actor.level
    @lvup_window.data[actor][1] = actor.maxhp
    @lvup_window.data[actor][2] = actor.maxsp
    @lvup_window.data[actor][3] = nil
    @lvup_window.data[actor][4] = actor.str
    @lvup_window.data[actor][5] = actor.dex
    @lvup_window.data[actor][6] = actor.agi
    @lvup_window.data[actor][7] = actor.int
  end
  #--------------------------------------------------------------------------
  # ● 現在のパラメータの取得
  #    actor : アクター
  #    index : 項目
  #--------------------------------------------------------------------------
  def look_parameter(actor, index)
    # 項目に応じて分岐
    case index
    when 0 then
      return actor.level
    when 1 then
      return actor.maxhp
    when 2 then
      return actor.maxsp
    when 3 then
      return nil
    when 4 then
      return actor.str
    when 5 then
      return actor.dex
    when 6 then
      return actor.agi
    when 7 then
      return actor.int
    end
  end
  #--------------------------------------------------------------------------
  # ● 習得したスキルの表示
  #    actor : アクター
  #--------------------------------------------------------------------------
  def learning_skills_pop(actor)
    # 最新のスキル
    learning_skills = []
    # ループ処理
    for skill in $data_classes[actor.class_id].learnings do
      # レベル条件を満たしている場合
      if skill.level <= actor.level then
        # 最新のスキルに追加
        learning_skills.push(skill.skill_id)
      end
    end
    # 最新のスキルにアクターのスキルを追加
    learning_skills += actor.skills
    # 重複する要素を除外
    learning_skills.uniq!
    # 習得済みスキルを除外
    learning_skills -= @last_skills_array[actor.index]
    # スキルを習得していない場合
    if learning_skills.empty?
      # メソッドを返す
      return
    end
    # ループ処理
    for id in learning_skills do
      # スキルを取得
      skill = $data_skills[id]
      # 習得MEを演奏
      data = MINTO::Skill_SE_Data
      Audio.se_play(data[0], data[1], data[2])
      text = "\\c[1]#{skill.name}\\c[0]#{MINTO::LearningMessage}"
      # スキル名を表示
      @center_help_window.set_text(text)
      # 表示が終わるまでループ
      while @center_help_window.visible == true
        # ゲーム画面を更新
        Graphics.update
        # 入力情報を更新
        Input.update
        # センターヘルプウィンドウを更新
        @center_help_window.update
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● レベルアップモーション
  #--------------------------------------------------------------------------
  def level_up_motion
    # ポップ作成
    @pop = Mint_Pop.new
    # ループ処理(パーティー)
    for id in 0...$game_party.actors.size do
      # アクターを取得
      actor = $game_party.actors[id]
      # パラメータウィンドウをリフレッシュ
      @lvup_window.refresh(actor)
      # レベルが上がっている場合
      if actor.level > @lvup_window.data[actor][0] then
        # パラメータウィンドウを表示
        @lvup_window.visible = true
        # ループ処理
        for i in (0..7) do
          # 描写座標を設定
          x = 168 + ((i / 4) * 160)
          y = 172 + ((i % 4) * 32)
          # 上昇したパラメータを読み込む
          parameter = look_parameter(actor, i)
          # 結果を収納する
          string = "+#{parameter.to_i - @lvup_window.data[actor][i].to_i}"
          # 無効なパラメータの場合
          if parameter.nil? then
            # 次のパラメータへ
            next
          end
          # 上昇後のパラメータを設定
          @lvup_window.data[actor][i] = parameter
          # パラメータウィンドウをリフレッシュ
          @lvup_window.draw_status(actor, i)
          # ポップ描写
          @pop.string_pop(string, x, y)
          # ウェイトカウントを設定
          wait = i == 7 ? 160 : 6
          # ポップSEを演奏
          data = MINTO::SE_Data
          Audio.se_play(data[0], data[1], data[2])
          # フレーム更新
          wait.times do
            # ゲーム画面を更新
            Graphics.update
            # 入力情報を更新
            Input.update
            # スプライトセットを更新
            @spriteset.update
            # ポップを更新
            @pop.update
            # パラメータウィンドウを更新
            @lvup_window.update
            # 最終インデックスの場合
            if i == 7 then
              # ポーズサインを表示する
              @lvup_window.pause = true
              # C ボタンが押された場合
              if Input.trigger?(Input::C) == true then
                # ポーズサインを非表示にする
                @lvup_window.pause = false
                # 更新を中断
                break
              end
            end
          end
        end
      end
      # 習得したスキルを表示
      learning_skills_pop(actor)
      # ポップを解放
      @pop.dispose
      # パラメータウィンドウを閉じる
      @lvup_window.visible = false
    end
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新 (アフターバトルフェーズ)
  #--------------------------------------------------------------------------
  alias update_phase5_MITO_RGSS_120 update_phase5
  def update_phase5
    # 元の処理を実行
    update_phase5_MITO_RGSS_120
    # ウェイトカウントが0の場合
    if @phase5_wait_count.zero? == true then
      # 演出未実行の場合
      unless @levelup_effect then
        # レベルアップモーション
        level_up_motion
        # フラグをオンにする
        @levelup_effect = true
      end
    end
  end
end
#==============================================================================
# ■ Mint_Pop
#------------------------------------------------------------------------------
#  数字のスプライト表示を扱うクラスです。
#==============================================================================
class Mint_Pop
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    @string_pop_sprite = []
    @string_pop_duration = []
  end
  #--------------------------------------------------------------------------
  # ● ストリングポップ
  #    string : 求められた文字列
  #    x      : X座標
  #    y      : Y座標
  #--------------------------------------------------------------------------
  def string_pop(string = "", x = 0, y = 0)
    # string が無効なら処理を終了
    return if string == ""
    # スプライトを生成
    string_pop_sprite = Sprite.new
    # 文字を描写
    string_pop_sprite.bitmap = Bitmap.new(96, 40)
    string_pop_sprite.bitmap.font.size = 17
    string_pop_sprite.bitmap.font.color.set(0, 0, 0)
    string_pop_sprite.bitmap.draw_text(-1, 12-1, 96, 32, string, 1)
    string_pop_sprite.bitmap.draw_text(+1, 12-1, 96, 32, string, 1)
    string_pop_sprite.bitmap.draw_text(-1, 12+1, 96, 32, string, 1)
    string_pop_sprite.bitmap.draw_text(+1, 12+1, 96, 32, string, 1)
    string_pop_sprite.bitmap.font.color.set(176, 255, 144)
    string_pop_sprite.bitmap.draw_text(0, 12, 96, 32, string, 1)
    # 座標データを代入
    string_pop_sprite.x = x
    string_pop_sprite.y = y
    string_pop_sprite.z = 10032
    # 配列の先頭にシフト
    @string_pop_sprite.unshift(string_pop_sprite)
    @string_pop_duration.unshift(40)      
  end
  #--------------------------------------------------------------------------
  # ● 解放
  #--------------------------------------------------------------------------
  def dispose
    # ループ処理
    for i in 0...@string_pop_sprite.size do
      # 有効なスプライトの場合
      unless @string_pop_sprite[i].nil? then
        # スプライトを解放
        @string_pop_sprite[i].bitmap.dispose
        @string_pop_sprite[i].dispose
        @string_pop_sprite[i] = nil
        @string_pop_duration[i] = nil
      end
    end
    # 配列内容をクリア
    @string_pop_sprite.clear
    @string_pop_duration.clear
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    # 1つでもストリングポップが表示中の場合
    if @string_pop_sprite.size > 0
      # 表示中のストリングポップを1つずつ処理する
      for i in 0...@string_pop_sprite.size
        # ストリングポップを代入
        string = @string_pop_sprite[i]
        # カウントが0の場合
        if @string_pop_duration[i] == 0
          # 次の処理へ
          next
        end
        # カウントを減らす
        @string_pop_duration[i] -= 1
        # 残りカウントに応じて分岐
        case @string_pop_duration[i]
        when 36..39
          string.y -= 4
        when 33..37
          string.y -= 2
        when 32..34
          string.y += 2
        when 25..32
          string.y += 4
        end
      end
    end
  end
end
end
 | 
 |