#============================================================================== # ■ RGSS3 戦闘開始スナップショットフラッシュ消去 Ver1.00 by 星潟 #------------------------------------------------------------------------------ # VX互換等で戦闘開始時のスナップショットを作成した際 # 指定したスイッチの状態に応じて # 処理中のフラッシュを消去する設定が可能になります。 # (ダメージ床のフラッシュ直後にエンカウントすると # フラッシュが適用された画像が用いられてしまうと思いますが # このスクリプトを導入する事で、戦闘開始前にフラッシュを消去します) #============================================================================== module ENC_F_E #指定したスイッチIDを判定用スイッチとして扱います。 #0の場合は常にフラッシュ消去となります。 S_ID = 99 #ここで指定したタイプに応じてスイッチの扱いを変えます。 #trueの場合、上で指定したスイッチがONの時、フラッシュ消去を有効とします。 #falseの場合、上で指定したスイッチがOFFの時、フラッシュ消去を有効とします。 TYPE = false #フラッシュが終了するまで待つかどうかを指定します。 #trueの場合、フラッシュが完了するまで待ちます。 #falseの場合、待たずに即フラッシュが消滅します。 WAIT = true end class Game_Screen #-------------------------------------------------------------------------- # フラッシュ処理時間が残っていないか? #-------------------------------------------------------------------------- def flash_duration_zero? @flash_duration == 0 end end class Game_Map #-------------------------------------------------------------------------- # フラッシュ消去 #-------------------------------------------------------------------------- def enc_flash_erase #スクリーンのフラッシュを消去する。 @screen.clear_flash end #-------------------------------------------------------------------------- # フラッシュ処理時間が残っていないか? #-------------------------------------------------------------------------- def flash_duration_zero? #スクリーンの方で処理する。 @screen.flash_duration_zero? end end class Scene_Map < Scene_Base #-------------------------------------------------------------------------- # バトル画面遷移の前処理 #-------------------------------------------------------------------------- alias pre_battle_scene_enc_flash_erase_flag pre_battle_scene def pre_battle_scene #フラッシュ消去フラグが有効な場合。 if enc_flash_erase_flag #フラッシュ完了まで待つ場合。 if ENC_F_E::WAIT #フラッシュ処理時間が0になるまで更新してからループを終了する。 loop {$game_map.flash_duration_zero? ? break : update} #フラッシュ完了まで待たない場合。 else #マップのフラッシュを消去し、スプライトセットにも即時適用させる。 $game_map.enc_flash_erase @spriteset.enc_flash_erase end end #本来の処理を実行。 pre_battle_scene_enc_flash_erase_flag end #-------------------------------------------------------------------------- # フラッシュ消去フラグを取得 #-------------------------------------------------------------------------- def enc_flash_erase_flag #設定に応じてフラグを返す。 ENC_F_E::S_ID == 0 or $game_switches[ENC_F_E::S_ID] == ENC_F_E::TYPE end end class Spriteset_Map #-------------------------------------------------------------------------- # フラッシュ消去 #-------------------------------------------------------------------------- def enc_flash_erase #現在のスクリーンのフラッシュを即時適用する。 @viewport2.color.set($game_map.screen.flash_color) end end