#◆◇◆◇◆ マスタースクリプトVX ver 1.02 ◇◆◇◆◇ # サポート掲示板 http://www2.ezbbs.net/21/minto-aaa/ # by みんと =begin 更新履歴 ver 1.02 Sprite.dupのミスを修正。 ver 1.01 開発モジュールを修正、機能を強化。 使い方 全てのみんとRGSSより上に導入してください。 (基本的にシステム上部に導入してください) これがないと全てのみんとRGSS2は動作いたしません。 =end #============================================================================== # ☆ MINTO #------------------------------------------------------------------------------ # 様々なフラグを扱うメインモジュールです。 #============================================================================== module MINTO # VXRGSSの導入環境ハッシュを初期化 RGSS = {} end #============================================================================== # ☆ MINTO_System #------------------------------------------------------------------------------ # 様々な機能を扱うシステムモジュールです。 #============================================================================== module MINTO_System #-------------------------------------------------------------------------- # ● 開始処理 #-------------------------------------------------------------------------- def start @tone_rate = 0 # シーンスプライトを作成 @scene_sprite = Sprite_Base.new # スーパークラスを実行 super end #-------------------------------------------------------------------------- # ● トランジション実行 #-------------------------------------------------------------------------- def perform_transition # スーパークラスを実行 super end #-------------------------------------------------------------------------- # ● 開始後処理 #-------------------------------------------------------------------------- def post_start # スーパークラスを実行 super end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- def update # シーンスプライトを更新 @scene_sprite.update # スーパークラスを実行 super end #-------------------------------------------------------------------------- # ● 終了前処理 #-------------------------------------------------------------------------- def pre_terminate # スーパークラスを実行 super end #-------------------------------------------------------------------------- # ● 終了処理 #-------------------------------------------------------------------------- def terminate # シーンスプライトを解放 @scene_sprite.bitmap.dispose if @scene_sprite.bitmap @scene_sprite.dispose @scene_sprite = nil # スーパークラスを実行 super end end # ☆ 開発用メソッド追加 ☆ #============================================================================== # ■ Scene_Base #------------------------------------------------------------------------------ #  ゲーム中のすべてのシーンのスーパークラスです。 #============================================================================== class Scene_Base #-------------------------------------------------------------------------- # ● 暗転モード処理 #-------------------------------------------------------------------------- def blackout(type = 0, power = 10, max = 100, sprite = nil) @tone_power = power @tone_type = type @tone_max = max update_blackout(sprite) end #-------------------------------------------------------------------------- # ● フレーム更新 (暗転処理) #-------------------------------------------------------------------------- def update_blackout(sprite) case @tone_type when 0 if @tone_rate != -@tone_max @tone_rate = [@tone_rate - @tone_power, -@tone_max].max sprite.tone.red = @tone_rate sprite.tone.green = @tone_rate sprite.tone.blue = @tone_rate end when 1 if @tone_rate != 0 @tone_rate = [@tone_rate + @tone_power, 0].min sprite.tone.red = @tone_rate sprite.tone.green = @tone_rate sprite.tone.blue = @tone_rate end end end end #============================================================================== # ■ Sprite #------------------------------------------------------------------------------ #  スプライト表示を扱う組み込みクラスです。 #============================================================================== class Sprite #-------------------------------------------------------------------------- # ● 複製の作成 #-------------------------------------------------------------------------- def dup # 各データをコピー sprite = Sprite.new(self.viewport) sprite.bitmap = self.bitmap.dup if self.bitmap sprite.x = self.x sprite.y = self.y sprite.z = self.z sprite.visible = self.visible sprite.ox = self.ox sprite.oy = self.oy sprite.angle = self.angle sprite.mirror = self.mirror sprite.opacity = self.opacity sprite.blend_type = self.blend_type sprite.color = self.color.dup sprite.src_rect = self.src_rect.dup sprite.zoom_x = self.zoom_x sprite.zoom_y = self.zoom_y return sprite end #-------------------------------------------------------------------------- # ● エフェクト表示中判定 #-------------------------------------------------------------------------- def effect? return false end end #============================================================================== # ■ Array #------------------------------------------------------------------------------ #  配列全般を扱う組み込みクラスです。 #============================================================================== class Array #-------------------------------------------------------------------------- # ● 要素の交換 # a : 要素1 # b : 要素2 #-------------------------------------------------------------------------- def change(a, b) # データを複製 data = self.dup # 要素を交換する(self自体には変化がない) data[a] = self[b] data[b] = self[a] return data end #-------------------------------------------------------------------------- # ● 要素の交換(破壊的) # a : 要素1 # b : 要素2 #-------------------------------------------------------------------------- def change!(a, b) # データを複製 data = self.dup # 要素を交換する(selfを直接書き換える) self[a] = data[b] self[b] = data[a] end end #============================================================================== # ■ Numeric #------------------------------------------------------------------------------ #  数値全般を扱う組み込みクラスです。 #============================================================================== class Numeric #-------------------------------------------------------------------------- # ● 範囲内から乱数を得る # min : 求められた最小の数値 #-------------------------------------------------------------------------- def mm_rand(min) return rand(self - min + 1) + min end #-------------------------------------------------------------------------- # ● 求めた数値に対するパーセンテージを返す # order : 求められた数値 #-------------------------------------------------------------------------- def rate(order) return 100 if order == 0 return (self * 100) / order end end