赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 35740 |
最后登录 | 2017-9-25 |
在线时间 | 260 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 260 小时
- 注册时间
- 2010-9-18
- 帖子
- 11
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
请问能将 升级提示◆暮2版的 文字显示 功能 并入泛用型升级提示 v1.1 中吗?
泛用型升级提示 v1.1 在显示获得技能时 位置出错,如下图(黄字部分)
升级提示◆暮2版的如下图(紫色部分),是类似Rmxp中文章显示的功能
或者,能将 升级提示◆暮2版 加上升级提示音乐吗(在脚本中加),别的升级提示似乎都有这个功能
以下为两个脚本
1.泛用型升级提示 v1.1- #==============================================================================
- # 本脚本来自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,使用和转载请保留此信息
- #==============================================================================
复制代码 升级提示◆暮色轮回2版- #◆◇◆◇◆ レベルアップポップスクリプト 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
复制代码 |
|