FModEx Audio Library
v1.0 for RMVX
Introduction
This library allows the user to memorize, pause, and resume music in RMVX.
Script/Demo
The demo with the scripts can be found here:
FModEx v1.0 RMVX
FAQ / Q&A / Notes
Keep this script above all other custom scripts. It may not work with custom battle systems. If not, request a patch and I'll provide one(cause this overwrites the playback of map music).
Why do midi's sound weird?
This script does not play nice with midi's. They are still playable, though, they just sound a bit harsher(the echo effect is gone).
What are all the script calls one can make, etc?
Here is a full list:
Spoiler
Code:
# pause_bgm OR pause_bgm(fade)
# pauses playback, if fade is included, the music fades out. fade is a number.
#
# resume_bgm OR resume_bgm(fade)
# pauses playback, if fade is included, the music fades in. fade is true or false.
#
# memorize_bgm
# memorizes the current bgm, does nothing if one isn't playing
#
# pause_bgs OR pause_bgs(fade)
# pauses playback, if fade is included, the bgs fades out. fade is a number.
#
# resume_bgs OR resume_bgs(fade)
# pauses playback, if fade is included, the bgs fades in. fade is true or false.
#
# memorize_bgs
# memorizes the current bgs, does nothing if one isn't playingI can almost guarantee the reason is that the skill in question is playing an ungodly amount of sound effects per second, resulting in an overflow error. Try toning down the amount of sound effects being played by the skills' animations.
Can you make this work with Victory Aftermath?
After further scrutiny, here is a patch for the two systems. The order of the scripts need to be:
FModExVAftermath
Patch
Patch
Spoiler
Code:
class Scene_Map < Scene_Base
def call_battle
@spriteset.update
Graphics.update
$game_player.make_encounter_count
$game_player.straighten
$game_system.memorize_bgm
$game_system.memorize_bgs
RPG::BGM.stop
RPG::BGS.stop
Sound.play_battle_start
$game_system.battle_bgm.play
$game_temp.next_scene = nil
$scene = Scene_Battle.new
end
def setup_fmodex_battle_call
$game_system.memorize_bgm
$game_system.memorize_bgs
RPG::BGM.stop
RPG::BGS.stop
end
end
class Scene_Battle < Scene_Base
def fmodex_battle_end
unless $BTEST
$game_system.resume_bgm(true,true)
$game_system.resume_bgs(true,true)
end
end
def process_victory
initialize_globals
@onscreen_status_window.close if $imported["OnScreenStatus"]
wait(YE::BATTLE::DISPLAY::VA_WAIT)
@info_viewport.visible = false
if $imported["SceneBattleReDux"] and @redux_msg
@message_window.dispose
@message_window = Window_BattleMessage.new
end
@message_window.visible = true
unless $game_switches[YE::BATTLE::DISPLAY::VA_BYPASS_WHOLE_SWITCH]
unless $game_switches[YE::BATTLE::DISPLAY::VA_BYPASS_BGM_SWITCH]
RPG::BGM.stop
$game_system.battle_end_me.play
if YE::BATTLE::DISPLAY::VA_PLAY_VICTORY_BGM
victory_bgm = YE::BATTLE::DISPLAY::VA_BGM
victory_bgm.play
else
fmodex_battle_end
end
end
@message_window.back_opacity = YE::BATTLE::DISPLAY::VA_BACK_OPACITY
if $imported["VictoryAftermathCompatibility"]
@message_window.dispose if @message_window != nil
@message_window = Window_BattleMessageCompatible.new
end
display_first_page
display_extra_pages if $imported["VictoryAftermathExtras"]
create_drop_items
display_last_page
else
value = YE::BATTLE::DISPLAY::VA_WAIT
value = 60 if value < 60
wait(value)
#---------
gold = $game_troop.gold_total
$game_party.gain_gold(gold)
exp = $game_troop.exp_total
members = $game_party.members.size
if YE::BATTLE::DISPLAY::VA_EXP_SPLIT
if members == 1
exp *= YE::BATTLE::DISPLAY::VA_EXP_1_MEMBER
elsif members == 2
exp *= YE::BATTLE::DISPLAY::VA_EXP_2_MEMBERS
elsif members == 3
exp *= YE::BATTLE::DISPLAY::VA_EXP_3_MEMBERS
else
exp *= YE::BATTLE::DISPLAY::VA_EXP_4_MEMBERS
end
exp /= 100
end
drop_items = $game_troop.make_drop_items
for item in drop_items
$game_party.gain_item(item, 1)
end
for actor in $game_party.existing_members
actor.gain_exp(exp, false)
end
hidden_extra_pages if $imported["VictoryAftermathExtras"]
#---------
end
unless $BTEST or $game_switches[YE::BATTLE::DISPLAY::VA_BYPASS_BGM_SWITCH]
fmodex_battle_end unless !YE::BATTLE::DISPLAY::VA_PLAY_VICTORY_BGM
end
victory_me = Thread.new {
time = YE::BATTLE::DISPLAY::VA_ME_FADE
RPG::ME.fade(time)
sleep(time / 1000.0)
RPG::ME.stop }
battle_end(0)
if YE::BATTLE::DISPLAY::VA_USE_COMEVENT
$game_temp.common_event_id = YE::BATTLE::DISPLAY::VA_COMMON_EVENT
end
end
endNOTICE: The two compositions in the demo were created by Da Buzz, and Mitchell McLaughlin. Credit them for the two pieces of music.
NOTICE: To use this system, you must credit the following:
Hiretsukan (Kevin Gadd) - janus@luminance.org - CREATOR OF SCRIPT
RPG/Cowlol (Firas Assad) - ArePeeGee (AIM name) - Modifier
FenixFyreX (Chaz Domerese) - fenixfyrex@gmail.com (GMail) - Modifier



