Character Selector V. 1.1
Introduction
I originally made this for a friend, but then I thought that I might as well share it with you guys.
It's basically just a simple character selector, nothing big really.
Features
Version 1.1
- You can now choose what actor's that shouldn't be included.
- You can now go back from character selection to "New Game", "Continue", "Shutdown"
Version 1.0
- Simple scrolling character selection window.
Screenshots
Download
Wont be needed.
Just take the script and insert it above Main.
Script
Instructions
You don't have to do anything else then insert it above Main, it will then automatically take every character from the "Actors" tab in the database.
If you on the other hand don't want all the actors to show up, edit line 10 in the script,
for example, if you don't want actor 1, 4, and 5 to be playable, then edit it like so,
Bug Report?
- None so far.
- Please report all bugs that you can find.
Author's Notes
You are free to use the this scripts in your commercial or non-commercial projects without credits, but it would be greatly appreciated if you do give credits.
Please do not redistribute this script without permission. If you want to post it on any forum, please link to this topic.
Credit
S.S Muu - For creating the script.
Introduction
I originally made this for a friend, but then I thought that I might as well share it with you guys.
It's basically just a simple character selector, nothing big really.
Features
Version 1.1
- You can now choose what actor's that shouldn't be included.
- You can now go back from character selection to "New Game", "Continue", "Shutdown"
Version 1.0
- Simple scrolling character selection window.
Screenshots
Download
Wont be needed.
Just take the script and insert it above Main.
Script
Code:
#==============================================================================
# ** Character selector
#------------------------------------------------------------------------------
# Author   S.S Muu
# Version  1.1
# Date    23-01-09 (dd-mm-yy)
#==============================================================================
Â
#--[  Config  ]----------------------------------------------------------------
DO_NOT_INCLUDE = [] # The actors who shouldn't be included. For example [1, 4, 6]
Â
#--[ Â IMPORTANT Â ]-------------------------------------------------------------
#-- Don't Edit Below if you don't know what you're doing!
#------------------------------------------------------------------------------
Â
#==============================================================================
# ** Game_Party
#------------------------------------------------------------------------------
# Â This class handles the party. It includes information on amount of gold
# Â and items. Refer to "$game_party" for the instance of this class.
#==============================================================================
class Game_Party
 attr_accessor :actors # Actors
end
Â
#==============================================================================
# ** Window_Command
#------------------------------------------------------------------------------
# Â This window deals with general command choices.
#==============================================================================
class Window_Command < Window_Selectable
 attr_reader :commands
 #--------------------------------------------------------------------------
 # * New Commands
 #--------------------------------------------------------------------------
 def new_commands(commands)
  @item_max = commands.size
  @commands = commands
  self.contents = Bitmap.new(self.width - 32, @item_max * 32)
  refresh
  self.index = 0
 end
end
Â
#==============================================================================
# ** Scene_Title
#------------------------------------------------------------------------------
# Â This class performs title screen processing.
#==============================================================================
Â
class Scene_Title
 #--------------------------------------------------------------------------
 # * Main Processing
 #--------------------------------------------------------------------------
 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")
  # Make system object
  $game_system = Game_System.new
  # Make title graphic
  @sprite = Sprite.new
  @sprite.bitmap = RPG::Cache.title($data_system.title_name)
  # Make characters
  @characters = []
  for i in 1...$data_actors.size
   @characters.push($data_actors[i].name) if !DO_NOT_INCLUDE.include?(i)
  end
  @characters_height = @characters.size * 32 + 32
  # 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
  # Make default commands
  @default = [s1, s2, s3]
  # 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 @command_window.commands == @characters and @command_window.height < @characters_height and @command_window.y > 32
   @command_window.y -= 5
   @command_window.height += 5
  elsif @command_window.commands == @default and @command_window.height > 128
   @command_window.y += 5
   @command_window.height -= 5
  elsif @command_window.commands == @default and @command_window.height < 128
   @command_window.y -= 1
   @command_window.height += 1
  end
  # If B button was pressed
  if Input.trigger?(Input::B)
   # Play cancel SE
   $game_system.se_play($data_system.cancel_se)
   # Switch to Default commands
   @command_window.new_commands(@default)
   if @continue_enabled
    @command_window.index = 1
   else
    @command_window.disable_item(1)
   end
  end
  # If C button was pressed
  if Input.trigger?(Input::C)
   # Branch by command window cursor position
   if @command_window.commands == @characters
    command_new_game
   else
    case @command_window.index
    when 0  # New game
     # Play decision SE
     $game_system.se_play($data_system.decision_se)
     # Switch to Character commands
     @command_window.new_commands(@characters)
    when 1  # Continue
     command_continue
    when 2  # Shutdown
     command_shutdown
    end
   end
  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
  $game_party.actors[0] = $game_actors[@command_window.index + 1]
  # 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
end
Â
Instructions
You don't have to do anything else then insert it above Main, it will then automatically take every character from the "Actors" tab in the database.
If you on the other hand don't want all the actors to show up, edit line 10 in the script,
for example, if you don't want actor 1, 4, and 5 to be playable, then edit it like so,
Code:
DO_NOT_INCLUDE = [1, 4, 5]
Bug Report?
- None so far.
- Please report all bugs that you can find.
Author's Notes
You are free to use the this scripts in your commercial or non-commercial projects without credits, but it would be greatly appreciated if you do give credits.
Please do not redistribute this script without permission. If you want to post it on any forum, please link to this topic.
Credit
S.S Muu - For creating the script.