#◆◇◆◇◆ 遮光スクリプト ver 1.00 ◇◆◇◆◇ # 全マスタースクリプト共通スクリプト # サポート掲示板 http://www2.ezbbs.net/21/minto-aaa/ # by みんと =begin ■ 説明 現在キャラクターが立っている タイルの地形タグが特定の値だった場合、 キャラクターを微暗転させて表示します。 木陰や裏路地などの演出に向いています。 設定はソース内部を参照してください。 =end #============================================================================== # ☆ MINTO #------------------------------------------------------------------------------ # 様々なフラグを扱うメインモジュールです。 #============================================================================== module MINTO # 遮光スクリプトを有効化 ( true で有効 / false で無効 ) RGSS["遮光スクリプト"] = true end # 遮光スクリプトが有効な場合に以降の処理を実行する if MINTO::RGSS["遮光スクリプト"] == true then #============================================================================== # ☆ カスタマイズ #------------------------------------------------------------------------------ # 機能のカスタマイズを行うモジュールです。 #============================================================================== module MINTO # 遮光演出のタイルとして扱う地形タグのID Cut_Off_Tile_ID = 7 end #============================================================================== # ■ Close_Light_Module #------------------------------------------------------------------------------ #  遮光演出用のモジュールです。 # Game_Character クラスのインスタンスを監視し、 # スプライトの状態を自動的に変化させます。 #============================================================================== module Close_Light_Module #-------------------------------------------------------------------------- # ● オブジェクト初期化 # viewport : ビューポート #-------------------------------------------------------------------------- def initialize(viewport) # 継承先のスーパークラスの処理に移行 super(viewport) # 暗転用の各データを設定 @tone_rate = 0 @tone_power = 0 @tone_type = 0 @tone_max = 0 end #-------------------------------------------------------------------------- # ● 地形タグの取得 # x : 求められた X 座標 # y : 求められた Y 座標 #-------------------------------------------------------------------------- def terrain_tag(x, y) # 求められた座標の地形タグの情報を返す return $game_map.terrain_tag(x, y) end #-------------------------------------------------------------------------- # ● 暗転モード処理 # type : 実行処理(0 : 暗転, 1 : 暗転解除) # power : 暗転速度 # max : 暗転最大値 #-------------------------------------------------------------------------- def blackout(type = 0, power = 10, max = 150) # 暗転フラグを設定 self.black = (type == 0) # 暗転用の各データを設定 @tone_power = power @tone_type = type @tone_max = max end #------------------------------------------------------------------------ # ● フレーム更新 (暗転処理) #------------------------------------------------------------------------ def update_blackout # 暗転フラグに応じて分岐 case self.black # 暗転が有効の場合 when true then # 暗転しきっていない場合 if @tone_rate != -@tone_max then # 暗転する値を求める @tone_rate = [@tone_rate - @tone_power, -@tone_max].max # 実際に暗転させる self.tone.red = @tone_rate self.tone.green = @tone_rate self.tone.blue = @tone_rate end # 暗転が無効の場合 else # まだ暗転が解除されていない場合 if @tone_rate != 0 then # 暗転解除の値を求める @tone_rate = [@tone_rate + @tone_power, 0].min # 実際に暗転を解除させる self.tone.red = @tone_rate self.tone.green = @tone_rate self.tone.blue = @tone_rate end end end #------------------------------------------------------------------------ # ● フレーム更新 #------------------------------------------------------------------------ def update # 継承先のスーパークラスの処理に移行 super # キャラクターが無効な場合 if @character == nil then # メソッドを返す return end # キャラクターの現在位置を取得 x = @character.x y = @character.y # 現在のタイルの地形タグのIDが Cut_Off_Tile_ID の場合 if terrain_tag(x, y) == MINTO::Cut_Off_Tile_ID then # 暗転開始 blackout(0, 16, 64) # 現在のタイルの地形タグのIDが Cut_Off_Tile_ID 以外の場合 else # 暗転解除 blackout(1, 16, 64) end # 暗転を更新 update_blackout end end #============================================================================== # ■ Sprite_Character #------------------------------------------------------------------------------ #  キャラクター表示用のスプライトです。Game_Character クラスのインスタンスを # 監視し、スプライトの状態を自動的に変化させます。 #============================================================================== class Sprite_Character < RPG::Sprite #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :black # 暗転フラグ #-------------------------------------------------------------------------- # ● システムインクルード #-------------------------------------------------------------------------- include(Close_Light_Module) # 遮光演出モジュール end end