FModEx Audio Library

● ARCHIVED · READ-ONLY
Started by FenixFyreX 5 posts View original ↗
  1. 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 playing
    How come this script errors when I use skills from YEM/BEM?

    I 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
    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
    end
    If you have any questions, or bugs, please ask / post.

    NOTICE: 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
  2. lol I made a porting of this script too ^^

    Don't know if I'll post it now xD

    Nice work :)
  3. This script works fine :D

    but i have a problem that is after the battle, and I save a file and then I load the file.

    My problem after I load the data on MAP BGM does not work but even after victory BGM (Fanfare) that works.

    :(

    I also wear a Victory Aftermath script and it works fine but when wearing a patch script error like this image:

    untitl12.jpg

    I have an opinion to solve the problem after loading the data and BGM work well. :)

    in the script that I note below:

    212.jpg

    exactly in the

    BGM = RPG :: BGM.new ("field", 100.100)

    can be replaced with a call to BGM in MAP last player who is being occupied.

    I'm less so the script but maybe it could solve the problem. but I do not know how. :wacko:

    hehehehe

    thank you, sorry if there are words that one :D

    n sorry my english so bad =__=a

    somebody help me please TAT

    Edit : correct word.
  4. I've been trying this script out on and off for the past few months. It's a great script until I run into a few errors. Now, I've tried resolving these in several ways, but I always run into something else. I had a look around, but I couldn't find anything helping the problem. I figured it was time to register here and ask the man, himself, for help!

    The first error is something I think is a bit odd - the game states there are 5 arguments, but I only see 4 on the line it's referring to. This happens about half the time at the end of a battle. Here's a screenshot of the error and the code section:

    DMerror_zps3ed6fe24.jpg

    So, I figure 'let's try deleting the last argument and see what happens'. I was at a loss, after all, so was doing some trial and erroring. So, I try that and this error comes up, instead, about an incorrect integer. I decided this was probably a result of deleting the last argument from the previous error, so that doesn't resolve it:

    Dmerror2_zps27dbf315.jpg

    So I need some help on this.

    It also should be noted I'm not using Yanfly's Victory Aftermath, but rather, Waratana's (YERD's was incompatible with what is perhaps the most important script in my game, so I opted for Waratana's, which looks nice at the end of a battle, anyway). Therefore, the patch doesn't work, that you've suggested for Yanfly's Victory Aftermath (the poster above me pretty much gives the error, let alone it's configured for Yanfly's modules without editing). I also sometimes get an error that RGSS2 Player has stopped working, only since putting the FModEx Audio Library in. All of these errors occur at the end of a battle.
  5. I would like to ask everyone to hold off 1 month from using this script. This is a script I ported from RPG Maker XP, and I have lost all data for it. It needs a serious rewrite, and quite frankly it's become too much of a hassle messing with it in its current state. I'm planning on rewriting this, however that takes time.

    Hopefully this will be closed soon, and I'll have it reopened when I'm done. Sorry for the trouble guys