#============================================================================== # ■ RGSS2 暗転無効瞬間場所移動・クロスフェード場所移動 #------------------------------------------------------------------------------ # 場所移動時の暗転を無くし、瞬間的に場所移動を行う機能と # クロスフェード場所移動を行う機能を追加します。 #============================================================================== module FadeVariables #暗転無効瞬間場所移動・クロスフェード場所移動に用いる変数IDを指定します。 #ここで指定したIDの変数の値が1の時に、瞬間場所移動となります。 #2の時に、クロスフェード場所移動となります。 #1と2以外の場合、通常の場所移動になります。 VID = 20 end class Scene_Map < Scene_Base attr_reader :transfer_fade_break #-------------------------------------------------------------------------- # 終了処理 #-------------------------------------------------------------------------- alias terminate_fade_variables terminate def terminate cross_fade_sprite_dispose if @cross_fade_sprite terminate_fade_variables end #-------------------------------------------------------------------------- # 画面のフェードイン #-------------------------------------------------------------------------- alias fadein_fade_variables fadein def fadein(duration) case @transfer_fade_break when 1 when 2 32.times do @cross_fade_sprite.opacity -= 8 Graphics.update end cross_fade_sprite_dispose else fadein_fade_variables(duration) end end #-------------------------------------------------------------------------- # 画面のフェードアウト #-------------------------------------------------------------------------- alias fadeout_fade_variables fadeout def fadeout(duration) case @transfer_fade_break when 1 when 2 @cross_fade_sprite = Sprite.new @cross_fade_sprite.bitmap = Graphics.snap_to_bitmap @cross_fade_sprite.z = 1000000000 else fadeout_fade_variables(duration) end end #-------------------------------------------------------------------------- # 場所移動の処理 #-------------------------------------------------------------------------- alias update_transfer_player_fade_variables update_transfer_player def update_transfer_player v = $game_variables[FadeVariables::VID] @transfer_fade_break = v == 0 ? nil : v update_transfer_player_fade_variables @transfer_fade_break = nil end #-------------------------------------------------------------------------- # クロスフェードスプライトを消去 #-------------------------------------------------------------------------- def cross_fade_sprite_dispose @cross_fade_sprite.bitmap.dispose @cross_fade_sprite.dispose @cross_fade_sprite = nil end end class << Graphics #-------------------------------------------------------------------------- # ウェイト #-------------------------------------------------------------------------- alias wait_fade_variables wait unless $! def wait(duration) f = $scene.is_a?(Scene_Map) && $scene.transfer_fade_break wait_fade_variables(duration) unless f end end