Emerald Lance
Member
Hello. I'm looking for a script that can process switching out party members and such. I'm using DerVVulfman's limit break script, so I'm looking for one that won't interfere with this one, particularly with the "Limit" option in the main menu. I've tried Dargor's script, but it makes it impossible to use the limit script at the same time.
DerVVulfmans' limit menu script makes a spot in the main menu for the "Limit" command. However, Dargor's party switcher script disables this spot. It should also be noted that Dargor's script disables the save function on the main menu as well.
As far as actual scripting knowledge, I have none. Absolutely none! If any changes to the scripts are necessary, then please elaborate and tell me exactly what I must do and where. Simply telling me to "add (insert random rgss code here)" flies right over my head. I've been taking the effort to try and learn as I go (which is helping, little by little) but I'm still very new to this. Any help from a patient person would be uber appreciated! Thanks.
DerVVulfmans' limit menu script makes a spot in the main menu for the "Limit" command. However, Dargor's party switcher script disables this spot. It should also be noted that Dargor's script disables the save function on the main menu as well.
As far as actual scripting knowledge, I have none. Absolutely none! If any changes to the scripts are necessary, then please elaborate and tell me exactly what I must do and where. Simply telling me to "add (insert random rgss code here)" flies right over my head. I've been taking the effort to try and learn as I go (which is helping, little by little) but I'm still very new to this. Any help from a patient person would be uber appreciated! Thanks.
This is the limit menu script that Dargor's seems to mess with, which just seems to be an edited version of Scene_Menu, but I'm not sure on exactly how.
Code:
Â
#==============================================================================
# ** Scene_Menu
#------------------------------------------------------------------------------
# Â This class performs menu screen processing.
#==============================================================================
Â
class Scene_Menu
 #--------------------------------------------------------------------------
 # * Object Initialization
 #   menu_index : command cursor's initial position
 #--------------------------------------------------------------------------
 def initialize(menu_index = 0)
  @menu_index = menu_index
 end
 #--------------------------------------------------------------------------
 # * Main Processing
 #--------------------------------------------------------------------------
 def main
  # Make command window
  s1 = $data_system.words.item
  s2 = $data_system.words.skill
  s3 = $data_system.words.equip
  s4 = "Status"
  s5 = "Limit"
  s6 = "Save"
  s7 = "End Game"
  @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7])
  @command_window.index = @menu_index
  # If number of party members is 0
  if $game_party.actors.size == 0
   # Disable items, skills, equipment, and status
   @command_window.disable_item(0)
   @command_window.disable_item(1)
   @command_window.disable_item(2)
   @command_window.disable_item(3)
   @command_window.disable_item(4)
  end
  # If save is forbidden
  if $game_system.save_disabled
   # Disable save
   @command_window.disable_item(5)
  end
  # Make play time window
  @playtime_window = Window_PlayTime.new
  @playtime_window.x = 0
  @playtime_window.y = 320
  # Make gold window
  @gold_window = Window_Gold.new
  @gold_window.x = 0
  @gold_window.y = 416
  # Make status window
  @status_window = Window_MenuStatus.new
  @status_window.x = 160
  @status_window.y = 0
  # 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 windows
  @command_window.dispose
  @playtime_window.dispose
  @gold_window.dispose
  @status_window.dispose
 end
 #--------------------------------------------------------------------------
 # * Frame Update
 #--------------------------------------------------------------------------
 def update
  # Update windows
  @command_window.update
  @playtime_window.update
  @gold_window.update
  @status_window.update
  # If command window is active: call update_command
  if @command_window.active
   update_command
   return
  end
  # If status window is active: call update_status
  if @status_window.active
   update_status
   return
  end
 end
 #--------------------------------------------------------------------------
 # * Frame Update (when command window is active)
 #--------------------------------------------------------------------------
 def update_command
  # If B button was pressed
  if Input.trigger?(Input::B)
   # Play cancel SE
   $game_system.se_play($data_system.cancel_se)
   # Switch to map screen
   $scene = Scene_Map.new
   return
  end
  # If C button was pressed
  if Input.trigger?(Input::C)
   # If command other than save or end game, and party members = 0
   if $game_party.actors.size == 0 and @command_window.index < 5
    # Play buzzer SE
    $game_system.se_play($data_system.buzzer_se)
    return
   end
   # Branch by command window cursor position
   case @command_window.index
   when 0  # item
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Switch to item screen
    $scene = Scene_Item.new
   when 1  # skill
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Make status window active
    @command_window.active = false
    @status_window.active = true
    @status_window.index = 0
   when 2  # equipment
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Make status window active
    @command_window.active = false
    @status_window.active = true
    @status_window.index = 0
   when 3  # status
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Make status window active
    @command_window.active = false
    @status_window.active = true
    @status_window.index = 0
   when 4  # limit
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Make status window active
    @command_window.active = false
    @status_window.active = true
    @status_window.index = 0       Â
   when 5  # save
    # If saving is forbidden
    if $game_system.save_disabled
     # 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 save screen
    $scene = Scene_Save.new
   when 6  # end game
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Switch to end game screen
    $scene = Scene_End.new
   end
   return
  end
 end
 #--------------------------------------------------------------------------
 # * Frame Update (when status window is active)
 #--------------------------------------------------------------------------
 def update_status
  # If B button was pressed
  if Input.trigger?(Input::B)
   # Play cancel SE
   $game_system.se_play($data_system.cancel_se)
   # Make command window active
   @command_window.active = true
   @status_window.active = false
   @status_window.index = -1
   return
  end
  # If C button was pressed
  if Input.trigger?(Input::C)
   # Branch by command window cursor position
   case @command_window.index
   when 1  # skill
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Switch to skill screen
    $scene = Scene_Skill.new(@status_window.index)
   when 2  # equipment
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Switch to equipment screen
    $scene = Scene_Equip.new(@status_window.index)
   when 3  # status
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Switch to status screen
    $scene = Scene_Status.new(@status_window.index)
   when 4  # limits
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Switch to skill screen
    $scene = Scene_LimitMenu.new(@status_window.index)   Â
   end
   return
  end
 end
end
Â
And here is the script that seems to mess with it.
Code:
#==============================================================================
# ** Commands Manager
#------------------------------------------------------------------------------
# Â Author: Dargor
# Â Version 1.2
# Â 20/09/2007
#==============================================================================
# * Instructions
#------------------------------------------------------------------------------
# - To add a command to the command window use:
# Â Â Â Â Â Â Â @command_window.add_command("command")
# - To remove a command to the command window use:
# Â Â Â Â Â Â Â @command_window.remove_command("command")
# - To rearrange the commands in the command window use:
# Â Â Â Â Â Â Â @command_window.set_commands(["cmd1","cmd2","cmd3"...])
# - You can also rearrange the default menu commands using:
# Â Â Â Â Â Â Â $game_system.menu_commands = ["cmd1","cmd2","cmd3"...]
#------------------------------------------------------------------------------
# * Note
#------------------------------------------------------------------------------
# - This script rewrites the update_command and update_status methods
# Â in Scene_Menu.
#==============================================================================
Â
#==============================================================================
# ** Game_System
#------------------------------------------------------------------------------
# Â This class handles data surrounding the system. Backround music, etc.
# Â is managed here as well. Refer to "$game_system" for the instance of
# Â this class.
#==============================================================================
Â
class Game_System
 #--------------------------------------------------------------------------
 # * Public Instance Variables
 #--------------------------------------------------------------------------
 attr_accessor :default_commands   # default commands
 attr_accessor :menu_commands     # menu commands
 attr_accessor :commands_max     # commands max
 #--------------------------------------------------------------------------
 # * Alias Listing
 #--------------------------------------------------------------------------
 alias dargor_menu_commands_initialize initialize
 #--------------------------------------------------------------------------
 # * Object Initialization
 #--------------------------------------------------------------------------
 def initialize
  @default_commands = ["Item","Skill","Equip","Status", "End Game"]
  @menu_commands = ["Item","Skill","Equip","Status", "End Game"]
  @commands_max = 6
  dargor_menu_commands_initialize
 end
end
Â
#==============================================================================
# ** Window_Command
#------------------------------------------------------------------------------
# Â This window deals with general command choices.
#==============================================================================
Â
class Window_Command < Window_Selectable
 #--------------------------------------------------------------------------
 # * Public Instance Variables
 #--------------------------------------------------------------------------
 attr_accessor :commands    # commands
 #--------------------------------------------------------------------------
 # * Alias Listing
 #--------------------------------------------------------------------------
 alias dargor_index_update update
 alias dargor_disable_item disable_item
 alias dargor_draw_item draw_item
 #--------------------------------------------------------------------------
 # * Add Command (command)
 #--------------------------------------------------------------------------
 def add_command(command)
  return if @commands.include?(command)
  @commands.push(command)
  set_commands(@commands)
 end
 #--------------------------------------------------------------------------
 # * Remove Command (command)
 #--------------------------------------------------------------------------
 def remove_command(command)
  @commands.delete(command)
  set_commands(@commands)
 end
 #--------------------------------------------------------------------------
 # * Set Commands (commands)
 #--------------------------------------------------------------------------
 def set_commands(commands)
  return if commands == [] or commands == nil
  @commands = commands
  @item_max = @commands.size
  self.contents = Bitmap.new(width - 32, @item_max * 32)
  refresh
  self.height = 32 + (32 * $game_system.commands_max)
 end
 #--------------------------------------------------------------------------
 # * Draw Item
 #   index : item number
 #   color : text color
 #--------------------------------------------------------------------------
 def draw_item(index, color)
  return if index.nil?
  dargor_draw_item(index, color)
 end
 #--------------------------------------------------------------------------
 # * Frame Update
 #--------------------------------------------------------------------------
 def update
  dargor_index_update
  update_index
 end
 #--------------------------------------------------------------------------
 # * Frame Update (index)
 #--------------------------------------------------------------------------
 def update_index
  if self.index >= @commands.size
   self.index = @commands.size-1
   return
  end
 end
 #--------------------------------------------------------------------------
 # * Disable Item
 #   index : item number / item string
 #--------------------------------------------------------------------------
 def disable_item(index)
  if index.is_a?(String)
   new_index = @commands.index(index)
   draw_item(new_index, disabled_color)
  else
   draw_item(index, disabled_color)
  end
 end
 #--------------------------------------------------------------------------
 # * Enable Item
 #   index : item number
 #--------------------------------------------------------------------------
 def enable_item(index)
  draw_item(index, normal_color)
 end
end
Â
#==============================================================================
# ** Scene_Menu
#------------------------------------------------------------------------------
# Â This class performs menu screen processing.
#==============================================================================
Â
class Scene_Menu
 #--------------------------------------------------------------------------
 # * Alias listing
 #--------------------------------------------------------------------------
 alias add_remove_command_main main
 alias add_remove_command_update update
 #--------------------------------------------------------------------------
 # * Main Processing
 #--------------------------------------------------------------------------
 def main
  # Default menu commands
  @default_commands = $game_system.default_commands
  # Create an empty array of command
  @commands = []
  # Call the original main method
  add_remove_command_main
 end
 #--------------------------------------------------------------------------
 # * Set Commands Access
 #--------------------------------------------------------------------------
 def set_commands_access
  # Reinitialize menu commands
  unless @command_window.commands == @commands
   @command_window.set_commands($game_system.menu_commands)
  end
  # Se basic commands name
  s1 = @default_commands[0]
  s2 = @default_commands[1]
  s3 = @default_commands[2]
  s4 = @default_commands[3]
  s5 = @default_commands[4]
  # If number of party members is 0
  if $game_party.actors.size == 0
   # Disable items, skills, equipment, and status
   @command_window.disable_item(s1)
   @command_window.disable_item(s2)
   @command_window.disable_item(s3)
   @command_window.disable_item(s4)
   @command_window.disable_item(s5)
  end
 Â
 end
 #--------------------------------------------------------------------------
 # * Frame Update
 #--------------------------------------------------------------------------
 def update
  # Set commands access
  set_commands_access
  # Set the array equal to the current commands
  @commands = @command_window.commands
  # Set commands access
  # Call the original update method
  add_remove_command_update
 end
 #--------------------------------------------------------------------------
 # * Frame Update (when command window is active)
 #--------------------------------------------------------------------------
 def update_command
  # Assign @command_window.index to its strings
  command = @commands[@command_window.index]
  # If B button was pressed
  if Input.trigger?(Input::B)
   # Play cancel SE
   $game_system.se_play($data_system.cancel_se)
   # Switch to map screen
   $scene = Scene_Map.new
   return
  end
  # If C button was pressed
  if Input.trigger?(Input::C)
   # If command other than save or end game, and party members = 0
   if $game_party.actors.size == 0 and @command_window.index < 4
    # Play buzzer SE
    $game_system.se_play($data_system.buzzer_se)
    return
   end
   # Branch by command window cursor position
   case command
   when @default_commands[0]
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Switch to item screen
    $scene = Scene_Item.new
   when @default_commands[1]
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Make status window active
    @command_window.active = false
    @status_window.active = true
    @status_window.index = 0
   when @default_commands[2]
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Make status window active
    @command_window.active = false
    @status_window.active = true
    @status_window.index = 0
   when @default_commands[3]
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Make status window active
    @command_window.active = false
    @status_window.active = true
    @status_window.index = 0
   when @default_commands[5]
    # If saving is forbidden
    if $game_system.save_disabled
     # 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 save screen
    $scene = Scene_Save.new
   when @default_commands[4]
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Switch to end game screen
    $scene = Scene_End.new
   end
   return
  end
 end
 #--------------------------------------------------------------------------
 # * Frame Update (when status window is active)
 #--------------------------------------------------------------------------
 def update_status
  # Assign @command_window.index to its strings
  command = @commands[@command_window.index]
  # If B button was pressed
  if Input.trigger?(Input::B)
   # Play cancel SE
   $game_system.se_play($data_system.cancel_se)
   # Make command window active
   @command_window.active = true
   @status_window.active = false
   @status_window.index = -1
   return
  end
  # If C button was pressed
  if Input.trigger?(Input::C)
   # Branch by command window cursor position
   case command
   when @default_commands[1]
    # If this actor's action limit is 2 or more
    if $game_party.actors[@status_window.index].restriction >= 2
     # 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 skill screen
    $scene = Scene_Skill.new(@status_window.index)
   when @default_commands[2]
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Switch to equipment screen
    $scene = Scene_Equip.new(@status_window.index)
   when @default_commands[3]
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Switch to status screen
    $scene = Scene_Status.new(@status_window.index)
   end
   return
  end
 end
end