by Dargor
Version 1.8
Introduction
This script let you use a map as the title screen. Additionally, you can choose to run an introduction scene before the title screen.
Features
- Display a map as the title screen
- The map's spriteset is animated and events are executed
- Use the map's BGM as the title BGM
- Support for introductions before the title screen
- Support for random introductions
- Support for random title screen maps
- Skip introduction
Screenshots
http://img138.imageshack.us/img138/3900/vxatitleid1.th.png[/img]
Demo
Thanks to matmicash for his demo: http://www.mediafire.com/?jadmg3emh3q
Script
Code:
#==============================================================================
# ** Advanced Title Screen
#------------------------------------------------------------------------------
# © Dargor, 2008
#Â 02/06/08
#Â Version 1.8
#------------------------------------------------------------------------------
#Â VERSION HISTORY:
#Â - 1.0 (26/05/08), Initial release
#Â - 1.1 (26/05/08), Support added for Introductions
#Â - 1.2 (29/05/08), Map background added in the loading screen
#Â - 1.3 (01/06/08), Fixed screen tone delay in the title screen
#Â - 1.4 (01/06/08), Added an Instant Title Screen Variable
#Â - 1.5 (02/06/08), Audio Bug fixed between Intro and Title
#Â - 1.6 (02/06/08), Bug fixed with Instant Title Screen
#Â - 1.7 (02/06/08), Added support for random title screen maps
#Â - 1.8 (02/06/08), Added support for random introductions
#------------------------------------------------------------------------------
#Â INSTRUCTIONS:
#Â - Paste this above main
#Â - Edit the constants in Title_Screen module
#==============================================================================
#==============================================================================
# ** Title Screen Customization Module
#==============================================================================
module Title_Screen
 # ID of the title screen map
 Map = 1
 # Is the title screen map randomized?
 Map_Randomized = true
 # Random ID of the title screen map
 Random_Maps = [1,2,3]
 # Play the map BGM instead of the title screen BGM
 Map_BGM = true
 # Instant Title Screen (if true, disable the fade to black)
 # Works ONLY in Introduction mode
 Instant_Title_Screen = true
 # Introduction flag
 Intro = true
 # Is the introduction randomized?
 Intro_Randomized = true
 # Introduction map ID
 Intro_Map = 2
 # Random Introduction map ID
 Random_Intro_Maps = [1,2,3]
 # Introduction map player location (x,y)
 Intro_Coords = [10,10]
 # Introduction map player location (x,y)
 # For Random intro only.
 Random_Intro_Coords = [
            [10,10],
            [5,5],
            [0,0]
            ]
end
#==============================================================================
# ** Scene_Map
#------------------------------------------------------------------------------
#Â This class performs the map screen processing.
#==============================================================================
class Scene_Map < Scene_Base
 #--------------------------------------------------------------------------
 # * Alias Listing
 #--------------------------------------------------------------------------
 alias dargor_vx_advanced_title_map_update update
 alias dargor_vx_advanced_title_map_call_title call_title
 #--------------------------------------------------------------------------
 # * Frame Update
 #--------------------------------------------------------------------------
 def update
  if $intro_running && Input.trigger?(Input::B)
   $intro_running = nil
   $intro_completed = true
   $scene = Scene_Title.new
   unless Title_Screen::Instant_Title_Screen
    RPG::BGM.fade(1500)
    Graphics.fadeout(60)
    Graphics.wait(40)
   end
   return
  end
  dargor_vx_advanced_title_map_update
 end
 #--------------------------------------------------------------------------
 # * Switch to Title Screen
 #--------------------------------------------------------------------------
 def call_title
  if $intro_running
   $intro_running = nil
   $intro_completed = true
   dargor_vx_advanced_title_map_call_title
   unless Title_Screen::Instant_Title_Screen
    RPG::BGM.fade(1500)
    Graphics.fadeout(60)
    Graphics.wait(40)
   end
   return
  end
  dargor_vx_advanced_title_map_call_title
 end
end
#==============================================================================
# ** Scene_Title
#------------------------------------------------------------------------------
#Â This class performs the title screen processing.
#==============================================================================
class Scene_Title < Scene_Base
 #--------------------------------------------------------------------------
 # * Alias Listing
 #--------------------------------------------------------------------------
 alias dargor_vx_advanced_title_start start
 alias dargor_vx_advanced_title_terminate terminate
 alias dargor_vx_advanced_title_update update
 alias dargor_vx_advanced_title_command_new_game command_new_game
 alias dargor_vx_advanced_title_play_title_music play_title_music
 #--------------------------------------------------------------------------
 # * Start processing
 #--------------------------------------------------------------------------
 def start
  $intro_running = false if $intro_running.nil?
  $intro_completed = false if $intro_completed.nil?
  if Title_Screen::Intro && !$intro_completed
   start_introduction
   return
  end
  dargor_vx_advanced_title_start
  create_map_background      # Create map as background
 end
 #--------------------------------------------------------------------------
 # * Termination Processing
 #--------------------------------------------------------------------------
 def terminate
  dargor_vx_advanced_title_terminate
  @spriteset.dispose
 end
 #--------------------------------------------------------------------------
 # * Frame Update
 #--------------------------------------------------------------------------
 def update
  dargor_vx_advanced_title_update
  $game_map.interpreter.update   # Update map interpreter
  $game_map.update         # Update map
  @spriteset.update        # Update map spriteset
 end
 #--------------------------------------------------------------------------
 # * Create Map Background
 #--------------------------------------------------------------------------
 def create_map_background(temp=false)
  if Title_Screen::Map_Randomized
   id = rand(Title_Screen::Random_Maps.size)
   map_id = Title_Screen::Random_Maps[id]
  else
   map_id = Title_Screen::Map
  end
  $game_map.setup(map_id)
  $game_map.interpreter.update   # Update map interpreter
  $game_map.update         # Update map
  if temp
   @spriteset = @sprite
   @spriteset.visible = false
  else
   @spriteset = Spriteset_Map.new
  end
  @spriteset.update        # Update map spriteset
  play_title_music(true)
 end
 #--------------------------------------------------------------------------
 # * Play Title Screen Music
 #--------------------------------------------------------------------------
 def play_title_music(temp = false)
  if Title_Screen::Map_BGM
   $game_map.autoplay if temp
   return
  end
  dargor_vx_advanced_title_play_title_music
 end
 #--------------------------------------------------------------------------
 # * Command: New Game
 #--------------------------------------------------------------------------
 def command_new_game
  # Clear previous map data and create a new one
  $game_map = Game_Map.new
  # the usual
  dargor_vx_advanced_title_command_new_game
 end
 #--------------------------------------------------------------------------
 # * Command: New Game
 #--------------------------------------------------------------------------
 def start_introduction
  load_database          # Load database
  create_game_objects       # Create game objects
  create_title_graphic       # Create title graphic
  create_command_window      # Create command window
  @command_window.visible = false
  create_map_background(true)   # Create map as background
  # Clear previous map data and create a new one
  $game_map = Game_Map.new
  $intro_running = true
  confirm_player_location
  if Title_Screen::Intro_Randomized
   id = rand(Title_Screen::Random_Intro_Maps.size)
   map_id = Title_Screen::Random_Intro_Maps[id]
   coords = Title_Screen::Random_Intro_Coords[id]
   x = coords[0]
   y = coords[1]
  else
   map_id = Title_Screen::Intro_Map
   x = Title_Screen::Intro_Coords[0]
   y = Title_Screen::Intro_Coords[1]
  end
  $game_party.setup_starting_members      # Initial party
  $game_map.setup(map_id)  # Initial map position
  $game_player.moveto(x, y)
  $game_player.refresh
  $scene = Scene_Map.new
  $game_map.autoplay
 end
end
#==============================================================================
# ** Scene_File
#------------------------------------------------------------------------------
#Â This class performs the save and load screen processing.
#==============================================================================
class Scene_File < Scene_Base
 #--------------------------------------------------------------------------
 # * Alias Listing
 #--------------------------------------------------------------------------
 alias dargor_vx_advanced_title_file_start start
 alias dargor_vx_advanced_title_file_terminate terminate
 alias dargor_vx_advanced_title_file_update update
 #--------------------------------------------------------------------------
 # * Start processing
 #--------------------------------------------------------------------------
 def start
  dargor_vx_advanced_title_file_start
  unless @saving
   create_map_background
  end
 end
 #--------------------------------------------------------------------------
 # * Create Map Background
 #--------------------------------------------------------------------------
 def create_map_background
  @spriteset = Spriteset_Map.new
 end
 #--------------------------------------------------------------------------
 # * Termination Processing
 #--------------------------------------------------------------------------
 def terminate
  dargor_vx_advanced_title_file_terminate
  unless @saving
   @spriteset.dispose
  end
 end
 #--------------------------------------------------------------------------
 # * Frame Update
 #--------------------------------------------------------------------------
 def update
  unless @saving
   $game_map.interpreter.update   # Update map interpreter
   $game_map.update         # Update map
   @spriteset.update
  end
  dargor_vx_advanced_title_file_update
 end
end
Note
Obviously event commands such as Display Message, Battle Processing, etc. does not work in the title screen.
Don't forget to credit me!