This was edited by DerVVulfman to work on RPG Maker VX I only made the original for XP so you should credit DerVVulfman for this. You can credit me if you want but I don't mind if you don't.
http://i4.photobucket.com/albums/y139/Fomar0153/VX/VX006.png[/img]
http://i4.photobucket.com/albums/y139/F ... /VX007.png[/img]
http://i4.photobucket.com/albums/y139/F ... /VX008.png[/img]
It goes back down to four lines during the main battle phase so animations aren't obscured or anything.
http://i4.photobucket.com/albums/y139/F ... /VX007.png[/img]
http://i4.photobucket.com/albums/y139/F ... /VX008.png[/img]
It goes back down to four lines during the main battle phase so animations aren't obscured or anything.
Code:
#===============================================================================
# ** Large Party System
#------------------------------------------------------------------------------
# by DerVVulfman (original by Fomar0153)
# version 1.0
# 03-01-2008
# RGSS2
#-------------------------------------------------------------------------------
# This system allows you to break the 4 team barrier setup by RPGMaker VX. By
# using this code, you can have 5, 6 or even 10 member parties.
#
# This page of the code can enhance your project to allow parties of over four
# members. The controls are very simple. To establish a default number of
# party members, edit the PARTY SIZE value in the configuration section below.
# If you wish to alter the party size limit while the game is running, call on
# the $game_party.party_size value from a map event and change it there. But,
# remember that you'll need to run '$game_party.refresh' for the change to take
# effect.
#------------------------------------------------------------------------------
#
# EDITS AND MODIFICATIONS:
#
# This system Aliases the following methods:
# * initialize (Game_Party)
# * refresh (Window_MenuStatus)
# * update_info_viewport (Scene_Battle)
#
# This system redefines the following methods:
# * add_actor (Game_Party)
# * initialize (Window_MenuStatus)
# * update_cursor (Window_MenuStatus)
# * initialize (Window_BattleStatus)
# * create_info_viewport (Scene_Battle)
#
#===============================================================================
PARTY_SIZE = 6
#==============================================================================
# ** 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
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_reader :party_size # Current size of the party
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias fomar_init initialize
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
fomar_init
@party_size = PARTY_SIZE
end
#--------------------------------------------------------------------------
# * Add an Actor
# actor_id : actor ID
#--------------------------------------------------------------------------
def add_actor(actor_id)
if @actors.size < $game_party.party_size and not @actors.include?(actor_id)
@actors.push(actor_id)
$game_player.refresh
end
end
#--------------------------------------------------------------------------
# * Adjust the maximum party value (permits addition & keeps within range)
#--------------------------------------------------------------------------
def party_size=(party_size)
# Prevent Nil values
@party_size = 4 if party_size == nil
# Set party size
@party_size = party_size
# Reset to default if an incorrect value
@party_size = 4 if party_size < 1
end
end
#==============================================================================
# ** Window_MenuStatus
#------------------------------------------------------------------------------
# This window displays party member status on the menu screen.
#==============================================================================
class Window_MenuStatus < Window_Selectable
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias large_refresh refresh
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(x, y)
unless $game_party.members.size > 4
super(x, y, 384, 416)
else
super(x, y, 384, 138 * $game_party.members.size)
end
refresh
self.active = false
self.index = -1
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
large_refresh
self.height = 416
end
#--------------------------------------------------------------------------
# * Update cursor
#--------------------------------------------------------------------------
def update_cursor
if @index < 0
self.cursor_rect.empty
return
end
# Get top row
row = @index / @column_max
if row < self.top_row
self.top_row = row
end
# Reset Top Row if at bottom of list
if row > self.top_row + (self.page_row_max - 1)
self.top_row = row - (self.page_row_max - 1)
end
# Obtain cursor width
cursor_width = self.width / @column_max
x = @index % @column_max * cursor_width
y = @index / @column_max * 96 - self.oy
# Draw the cursor
self.cursor_rect.set(x, y, cursor_width, 96)
end
#--------------------------------------------------------------------------
# * Get Top Row
#--------------------------------------------------------------------------
def top_row
return self.oy / 96
end
#--------------------------------------------------------------------------
# * Set Top Row
# row : row shown on top
#--------------------------------------------------------------------------
def top_row=(row)
if row < 0
row = 0
end
if row > row_max - 1
row = row_max - 1
end
self.oy = row * 96
end
#--------------------------------------------------------------------------
# * Get Number of Rows Displayable on 1 Page
#--------------------------------------------------------------------------
def page_row_max
return 4
end
end
#==============================================================================
# ** Window_BattleStatus
#------------------------------------------------------------------------------
# This window displays the status of all party members on the battle screen.
#==============================================================================
class Window_BattleStatus < Window_Selectable
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
unless $game_party.members.size > 4
super(0, 0, 416, 128)
else
super(0, 0, 416, 32 * $game_party.members.size)
end
refresh
self.active = false
end
end
#==============================================================================
# ** Scene_Battle
#------------------------------------------------------------------------------
# This class performs battle screen processing.
#==============================================================================
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias fomar_update update_info_viewport
#--------------------------------------------------------------------------
# * Create Information Display Viewport
#--------------------------------------------------------------------------
def create_info_viewport
# Change viewport to accommodate party size
unless $game_party.members.size > 4
@info_viewport = Viewport.new(0, 288, 544, 128)
else
@info_viewport = Viewport.new(0, 416 - (32 * $game_party.members.size),
544, (32 * $game_party.members.size))
end
@info_viewport.z = 100
@status_window = Window_BattleStatus.new
@party_command_window = Window_PartyCommand.new
@actor_command_window = Window_ActorCommand.new
@status_window.viewport = @info_viewport
@party_command_window.viewport = @info_viewport
@actor_command_window.viewport = @info_viewport
@status_window.x = 128
@actor_command_window.x = 544
@info_viewport.visible = false
end
#--------------------------------------------------------------------------
# * Update Information Display Viewport
#--------------------------------------------------------------------------
def update_info_viewport
# Obtain Battlestatus Height
oldheight = @status_window.height.to_i / 32
# Reset Battlestatus Height if party size increases
if $game_party.members.size > oldheight
dispose_info_viewport
create_info_viewport
end
# Perform the original call
fomar_update
end
end