Save-Point
RMVX MessageBack Changer - Printable Version

+- Save-Point (https://www.save-point.org)
+-- Forum: Material Development (https://www.save-point.org/forum-8.html)
+--- Forum: Scripts Database (https://www.save-point.org/forum-39.html)
+---- Forum: RPGMaker VX/VXAce (RGSS2/3) Engines (https://www.save-point.org/forum-117.html)
+---- Thread: RMVX MessageBack Changer (/thread-2246.html)



RMVX MessageBack Changer - DerVVulfman - 06-26-2009

RMVX MessageBack Changer
Version: 1.2


Introduction
Made in roughly 15 to 20  minutes (not counting these instructions), this script allows you to change the background skin used in the RMVX message system... the one usually seen when displaying a message with a semi-transparent background.


Script
Code:
#==============================================================================
# ** Battlebacks VX
#------------------------------------------------------------------------------
#    by DerVVulfman
#    version 1.2
#    03-29-2008
#    RGSS2
#==============================================================================
#
#  INTRODUCTION:
#
#  This system reintroduces the use of 'Battleback' graphics into your pro-
#  jects, something that was sadly lacking in tbe RPGMaker VX system.
#
#------------------------------------------------------------------------------
#
#  SCRIPT CALLS:
#
#  There's only one script call that you need to know.
#
#  --Changing Battlebacks--
#  Given that this system allows you to use 'Battlebacks, you may find a need
#  to 'change' the battleback in-game. Unfortunately, this can't be done with
#  a pre-rendered map event, so I had to make a script call:
#
#           $game_system.battleback = "filename"
#
#  The filename is whatever is stored within the folder that you have speci-
#  fied in the configuration section (in the BATTLEBACK_DIR value).

#------------------------------------------------------------------------------
#
#  SCRIPT PLACEMENT:
#
#  As a core/re-insertion script, it returns the classic battle backgrounds
#  that many users became used to with other RPG gaming systems.
#
#  If this script is being used  with any other script that alters any dis-
#  played effect or any system in the battlesystem's spriteset window, then
#  those scripts will most likely be placed BELOW this script  as they will
#  most need access to the revised battle viewport.
#
#------------------------------------------------------------------------------
#
#  EDITS AND MODIFICATIONS:

#  This system Aliases the following methods:
#  * initialize                     (Game_System)
#  * create_battleback              (Spriteset_Battle)
#  * create_battlefloor             (Spriteset_Battle)
#
#  This system adds the following methods:
#  * battleback                     (Cache)
#
#------------------------------------------------------------------------------
#
#  THANKS:
#
#  To Fantasy at RPG RPG Revolution for noticing a bug when using the 'Battle
#  Test' feature.
#
#------------------------------------------------------------------------------
#  TERMS AND CONDITIONS:
#
#  Free to use, even in commercial projects.  Just note that I need some form
#  of due credit... even a mere mention in some end titles.
#
#==============================================================================

   #========================================================================
   #  **  C  O  N  F  I  G  U  R  A  T  I  O  N      S  Y  S  T  E  M  **  #
   #======================================================================== 
 
  # Name of directory (used in cache)
    BATTLEBACK_DIR = "Graphics/Parallaxes/"

  # List of battlebacks by Map ID.
  #                    MapID    Filename                   
    BATTLEBACK_LIST = {1    =>  "Ocean",
                       2    =>  "CloudySky"}
                       
  # The name of the battleback used
  # when using the Battle Test feature.
    BATTLEBACK_TEST = "Mountains"                       

                   
#==============================================================================
# ** Cache
#------------------------------------------------------------------------------
#  This module loads each of graphics, creates a Bitmap object, and retains it.
# To speed up load times and conserve memory, this module holds the created
# Bitmap object in the internal hash, allowing the program to return
# preexisting objects when the same bitmap is requested again.
#==============================================================================

module Cache
  #--------------------------------------------------------------------------
  # * Get Battleback Graphic
  #     filename : Filename
  #-------------------------------------------------------------------------- 
  def self.battleback(filename)
    load_bitmap(BATTLEBACK_DIR, filename)
  end
end



#==============================================================================
# ** Game_System
#------------------------------------------------------------------------------
#  This class handles system-related data. Also manages vehicles and BGM, etc.
# The instance of this class is referenced by $game_system.
#==============================================================================

class Game_System
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :battleback               # filename of battleback
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  alias bback_initialize initialize
  def initialize
    bback_initialize
    @battleback = nil
  end
end



#==============================================================================
# ** Spriteset_Battle
#------------------------------------------------------------------------------
#  This class brings together battle screen sprites. It's used within the
# Scene_Battle class.
#==============================================================================

class Spriteset_Battle
  #--------------------------------------------------------------------------
  # * Create Battleback Sprite
  #--------------------------------------------------------------------------
  alias bback_create_battleback create_battleback
  def create_battleback
    # Perform and exit for battletests
    if $BTEST
      if BATTLEBACK_TEST != nil
        # Create Battleback sprite
        @battleback_sprite = Sprite.new(@viewport1)
        # Load image from cache
        @battleback_sprite.bitmap = Cache.battleback(BATTLEBACK_TEST)
        return
      else
        bback_create_battleback
        return
      end
    end
    # If map used 'called' battleback. 
    if $game_system.battleback != nil
      # Create Battleback sprite
      @battleback_sprite = Sprite.new(@viewport1)
      # Load image from cache
      @battleback_sprite.bitmap = Cache.battleback($game_system.battleback)   
    # If map has assigned battleback
    elsif BATTLEBACK_LIST.key?($game_map.map_id)
      # Create Battleback sprite
      @battleback_sprite = Sprite.new(@viewport1)
      # Load image from cache
      @battleback_sprite.bitmap = Cache.battleback(BATTLEBACK_LIST[$game_map.map_id])
    # Otherwise, as normal
    else
      # Perform the original call
      bback_create_battleback
    end
  end 
  #--------------------------------------------------------------------------
  # * Create Battlefloor Sprite
  #-------------------------------------------------------------------------- 
  alias bback_create_battlefloor create_battlefloor
  def create_battlefloor
    # Disable battlefloor for existing battleback maps
    if BATTLEBACK_LIST.key?($game_map.map_id) or $game_system.battleback != nil
      @battlefloor_sprite = Sprite.new(@viewport1)
      return
    end
    # Disable for battletests with set battleback
    if $BTEST
      if BATTLEBACK_TEST != nil
        @battlefloor_sprite = Sprite.new(@viewport1)
        return
      end
    end
    # Perform the original call
    bback_create_battlefloor
  end
end


Instructions
Pretty simple to use.  Only one value to edit as described in the script.


Compatibility
Made for RPGMaker VX.


Author's Notes
Took up to 20 minutes to write, not including the instructions.  Punky requested it.


Terms and Conditions
Free, dude.  Use it in commercial games if you like.