Chaos Project

RPG Maker => RPG Maker Scripts => RMXP Script Database => Topic started by: lilbrudder917 on December 30, 2009, 09:46:09 pm

Title: [XP] TitleSwap
Post by: lilbrudder917 on December 30, 2009, 09:46:09 pm
TitleSwap
Authors: LilBrudder917
Version: 1.0
Type: Custom Title
Key Term: Title / Save / Load / GameOver Add-on



Introduction

This script allows the player to change the title screen graphic by pressing an arrow key. Script version of MenuSwap (http://forum.chaos-project.com/index.php/topic,3425.0.html).


Features




Screenshots

GIF'd: ShowHide
(http://img697.imageshack.us/img697/9392/titleswap.gif)



Demo

Click here for it! (http://www.megaupload.com/?d=HQH0MZ5U)


Script

Spoiler: ShowHide
#==============================================================================
# TitleSwap by LilBrudder917
# Version 1.0
#------------------------------------------------------------------------------
# Edits Scene_Title. Shouldn't cause serious compatibility issues, though.
#
#  FEATURES:
#   + Allows the player to change the title image using < and > keys.
#
#  HOW TO USE:
#
# Have multiple title images in your Title Folder all beginning with the prefix
# you chose and ending with the number that they will be.
#                                       (title_1 before title_2)
#==============================================================================
#                              CONFIGURATION                                  
#==============================================================================

$TITLEIMG = "title_"             # Title Image Prefix
$TITLELMT = 4                    # Title Image Limit

#==============================================================================
#                               SCRIPT BELOW
#==============================================================================

class Scene_Title
 #--------------------------------------------------------------------------
 # * Main Processing
 #--------------------------------------------------------------------------
 
 attr_accessor :title_imgspc
 
 def main
   # If battle test
   if $BTEST
     battle_test
     return
   end
   # Load database
   $data_actors        = load_data("Data/Actors.rxdata")
   $data_classes       = load_data("Data/Classes.rxdata")
   $data_skills        = load_data("Data/Skills.rxdata")
   $data_items         = load_data("Data/Items.rxdata")
   $data_weapons       = load_data("Data/Weapons.rxdata")
   $data_armors        = load_data("Data/Armors.rxdata")
   $data_enemies       = load_data("Data/Enemies.rxdata")
   $data_troops        = load_data("Data/Troops.rxdata")
   $data_states        = load_data("Data/States.rxdata")
   $data_animations    = load_data("Data/Animations.rxdata")
   $data_tilesets      = load_data("Data/Tilesets.rxdata")
   $data_common_events = load_data("Data/CommonEvents.rxdata")
   $data_system        = load_data("Data/System.rxdata")
   @title_imgspc       = 1
   
   # Make system object
   $game_system = Game_System.new
   # Make title graphic
   @sprite = Sprite.new
   @sprite.bitmap = RPG::Cache.title($data_system.title_name)
   # Make command window
   s1 = "New Game"
   s2 = "Continue"
   s3 = "Shutdown"
   @command_window = Window_Command.new(192, [s1, s2, s3])
   @command_window.back_opacity = 160
   @command_window.x = 320 - @command_window.width / 2
   @command_window.y = 288
   # Continue enabled determinant
   # Check if at least one save file exists
   # If enabled, make @continue_enabled true; if disabled, make it false
   @continue_enabled = false
   for i in 0..3
     if FileTest.exist?("Save#{i+1}.rxdata")
       @continue_enabled = true
     end
   end
   # If continue is enabled, move cursor to "Continue"
   # If disabled, display "Continue" text in gray
   if @continue_enabled
     @command_window.index = 1
   else
     @command_window.disable_item(1)
   end
   # Play title BGM
   $game_system.bgm_play($data_system.title_bgm)
   # Stop playing ME and BGS
   Audio.me_stop
   Audio.bgs_stop
   # Execute transition
   Graphics.transition
   # Main loop
   loop do
     # Update game screen
     Graphics.update
     # Update input information
     Input.update
     # Frame update
     update
     # Abort loop if screen is changed
     if $scene != self
       break
     end
   end
   # Prepare for transition
   Graphics.freeze
   # Dispose of command window
   @command_window.dispose
   # Dispose of title graphic
   @sprite.bitmap.dispose
   @sprite.dispose
 end
 #--------------------------------------------------------------------------
 # * Frame Update
 #--------------------------------------------------------------------------
 def update
   # Update command window
   @command_window.update
   # If C button was pressed
   if Input.trigger?(Input::C)
     # Branch by command window cursor position
     case @command_window.index
     when 0  # New game
       command_new_game
     when 1  # Continue
       command_continue
     when 2  # Shutdown
       command_shutdown
     end
   elsif Input.trigger?(Input::LEFT)
     if @title_imgspc == 1
       @title_imgspc = $TITLELMT
     else
       @title_imgspc = @title_imgspc - 1
     end
     @sprite.bitmap = RPG::Cache.title($TITLEIMG + @title_imgspc.to_s)
   elsif Input.trigger?(Input::RIGHT)
     if @title_imgspc == $TITLELMT
       @title_imgspc = 1
     else
       @title_imgspc = @title_imgspc + 1
     end
     @sprite.bitmap = RPG::Cache.title($TITLEIMG + @title_imgspc.to_s)
   end
 end
 #--------------------------------------------------------------------------
 # * Command: New Game
 #--------------------------------------------------------------------------
 def command_new_game
   # Play decision SE
   $game_system.se_play($data_system.decision_se)
   # Stop BGM
   Audio.bgm_stop
   # Reset frame count for measuring play time
   Graphics.frame_count = 0
   # Make each type of game object
   $game_temp          = Game_Temp.new
   $game_system        = Game_System.new
   $game_switches      = Game_Switches.new
   $game_variables     = Game_Variables.new
   $game_self_switches = Game_SelfSwitches.new
   $game_screen        = Game_Screen.new
   $game_actors        = Game_Actors.new
   $game_party         = Game_Party.new
   $game_troop         = Game_Troop.new
   $game_map           = Game_Map.new
   $game_player        = Game_Player.new
   # Set up initial party
   $game_party.setup_starting_members
   # Set up initial map position
   $game_map.setup($data_system.start_map_id)
   # Move player to initial position
   $game_player.moveto($data_system.start_x, $data_system.start_y)
   # Refresh player
   $game_player.refresh
   # Run automatic change for BGM and BGS set with map
   $game_map.autoplay
   # Update map (run parallel process event)
   $game_map.update
   # Switch to map screen
   $scene = Scene_Map.new
 end
 #--------------------------------------------------------------------------
 # * Command: Continue
 #--------------------------------------------------------------------------
 def command_continue
   # If continue is disabled
   unless @continue_enabled
     # Play buzzer SE
     $game_system.se_play($data_system.buzzer_se)
     return
   end
   # Play decision SE
   $game_system.se_play($data_system.decision_se)
   # Switch to load screen
   $scene = Scene_Load.new
 end
 #--------------------------------------------------------------------------
 # * Command: Shutdown
 #--------------------------------------------------------------------------
 def command_shutdown
   # Play decision SE
   $game_system.se_play($data_system.decision_se)
   # Fade out BGM, BGS, and ME
   Audio.bgm_fade(800)
   Audio.bgs_fade(800)
   Audio.me_fade(800)
   # Shutdown
   $scene = nil
 end
 #--------------------------------------------------------------------------
 # * Battle Test
 #--------------------------------------------------------------------------
 def battle_test
   # Load database (for battle test)
   $data_actors        = load_data("Data/BT_Actors.rxdata")
   $data_classes       = load_data("Data/BT_Classes.rxdata")
   $data_skills        = load_data("Data/BT_Skills.rxdata")
   $data_items         = load_data("Data/BT_Items.rxdata")
   $data_weapons       = load_data("Data/BT_Weapons.rxdata")
   $data_armors        = load_data("Data/BT_Armors.rxdata")
   $data_enemies       = load_data("Data/BT_Enemies.rxdata")
   $data_troops        = load_data("Data/BT_Troops.rxdata")
   $data_states        = load_data("Data/BT_States.rxdata")
   $data_animations    = load_data("Data/BT_Animations.rxdata")
   $data_tilesets      = load_data("Data/BT_Tilesets.rxdata")
   $data_common_events = load_data("Data/BT_CommonEvents.rxdata")
   $data_system        = load_data("Data/BT_System.rxdata")
   # Reset frame count for measuring play time
   Graphics.frame_count = 0
   # Make each game object
   $game_temp          = Game_Temp.new
   $game_system        = Game_System.new
   $game_switches      = Game_Switches.new
   $game_variables     = Game_Variables.new
   $game_self_switches = Game_SelfSwitches.new
   $game_screen        = Game_Screen.new
   $game_actors        = Game_Actors.new
   $game_party         = Game_Party.new
   $game_troop         = Game_Troop.new
   $game_map           = Game_Map.new
   $game_player        = Game_Player.new
   # Set up party for battle test
   $game_party.setup_battle_test_members
   # Set troop ID, can escape flag, and battleback
   $game_temp.battle_troop_id = $data_system.test_troop_id
   $game_temp.battle_can_escape = true
   $game_map.battleback_name = $data_system.battleback_name
   # Play battle start SE
   $game_system.se_play($data_system.battle_start_se)
   # Play battle BGM
   $game_system.bgm_play($game_system.battle_bgm)
   # Switch to battle screen
   $scene = Scene_Battle.new
 end
end





Instructions

Add title graphics into the Title folder, naming them "title_1", "title_2", and so on, unless you change the image prefix. If some graphics aren't showing in-game, try changing the limit in the script ($TITLELMT is lower than the amount of graphics you have in the folder). Also, if the limit is higher than the amount of graphics in the Title folder, the game will crash when the player tries to change to it.


Compatibility

Shouldn't be any serious compatibility issues, but if there are any, it'd probably be with custom Scene_Titles.


Credits and Thanks




Author's Notes

This is a script version of MenuSwap (http://forum.chaos-project.com/index.php/topic,3425.0.html). They both accomplish the same thing.
Title: Re: [XP] TitleSwap
Post by: Daxisheart on January 04, 2010, 06:42:14 pm
Maybe you should make it fade/transition to other screens instead. The images you used contrasted greatly, and sorta hurts the eyes. I know, it's the maker's problem, but still.