Submit Your Article


 
RPG Maker

Welcome Guest ( Log In | Register )


  Games Resources RPG Maker VX RPG Maker XP Scripts Tutorials Downloads

7 Pages V   1 2 3 > »   
Reply to this topicStart new topic
> Character Select Menu Ver. 1.1c, Credit to Prexus
Kinger556
post Apr 24 2008, 01:28 AM
Post #1


Level 12
Group Icon

Group: Revolutionary
Posts: 205
Type: Mapper
RM Skill: Skilled




1st of all,all credit gose to Prexus




PARTY SELECTION SCRIPT (Version 1.1c)

Features
Creates a scene to rearrange your party. There are a variety of things to do in this system. You can remove and add characters from being available in the Reserves (non-party members), lock characters so you can't add or remove them, and make characters "Unavailable", which does about the same thing as Locking. The reasoning behind having two things like this is for representation purposes. A character who isn't in your party, but is temporarily unavailable COULD show up as being "Locked" (lock icon) but I didn't feel it looked as good as being "Unavailable" (greyed out.) But a character who IS in your party, but can't be removed, obviously wouldn't make sense as being Unavailable.

You can also see the statistics of the character, as well as the face graphic, in a small window to the right of the Party/Reserves



Locked.png:
Attached File  Locked.png ( 2.92K ) Number of downloads: 1116


Script:
Attached File  PartySelectScript.txt ( 9.73K ) Number of downloads: 3846



Tutorial
copy the script abuve and paste it abuve main

Right click the icon "Locked.png" and save it in the Graphics\System\ directory into your own project.

The initial starting party is automatically made available in your Reserves/Party. However, when adding a party member using the regular Event command, it doesn't automatically add the character to your Reserves. The reason being for temporary characters and such.

To make a character FOUND in your reserves, put this line in a Call Script:
CODE
$data_actors[ID].found = true

Change ID to the ID of the actor in the Database.
Change true to false to remove the character from the reserves.


To make a character LOCKED, put this line in a Call Script:
CODE
$data_actors[ID].required = true

Change ID to the ID of the actor in the Database.
Change true to false to unlock the character.


To make the character UNAVAILABLE, put this line in a Call Script:
CODE
$data_actors[ID].unavailable = true

Change ID to the ID of the actor in the Database.
Change true to false to make the character available again.


Instead of using $data_actors[id], you can also use $game_party.members[position].actor, which works better for things like the Skeleton, who locks the party leader (regardless of who it is.)

This post has been edited by puppeto4: May 22 2008, 12:03 PM
Attached File(s)
Attached File  VXPartySelector.png ( 68.5K ) Number of downloads: 2640
Attached File  VXPartySelector2.png ( 78.87K ) Number of downloads: 1650
 


__________________________













Personality
Go to the top of the page
 
+Quote Post
   
stinger9
post Apr 24 2008, 03:10 AM
Post #2



Group Icon

Group: Member
Posts: 1
Type: None
RM Skill: Undisclosed




Thanks for finding this!
Go to the top of the page
 
+Quote Post
   
hagen843
post Apr 24 2008, 03:38 AM
Post #3


Level 2
Group Icon

Group: Member
Posts: 20
Type: Event Designer
RM Skill: Skilled




I know this might sound stupid now, but can anywone tell me how to call the script? confused.gif


__________________________

Which Final Fantasy Character Are You?

There are no bad people! There are only the ones who help you and the ones against you.
Go to the top of the page
 
+Quote Post
   
Dann Woolf
post May 1 2008, 12:24 PM
Post #4


Level 9
Group Icon

Group: Revolutionary
Posts: 140
Type: None
RM Skill: Beginner




QUOTE (hagen843 @ Apr 24 2008, 02:52 AM) *
I know this might sound stupid now, but can anywone tell me how to call the script? confused.gif


Bump, hagen has a good point.

I myself would like to have a way to call this script from the menu.
Go to the top of the page
 
+Quote Post
   
Dann Woolf
post May 6 2008, 05:42 AM
Post #5


Level 9
Group Icon

Group: Revolutionary
Posts: 140
Type: None
RM Skill: Beginner




Sorry for the double post, but this fell off the front page and we still haven't been informed how to call this script, and I'd like to know how to do so from the menu.
Go to the top of the page
 
+Quote Post
   
TheBloodRed
post May 6 2008, 06:06 AM
Post #6



Group Icon

Group: Banned
Posts: 0
Type: None
RM Skill: Undisclosed




Reminds me of Final Fantasy 6. Good job! tongue.gif


__________________________
Don't post porn like I did!


This Public Safety Announcement is brought to you by the leadership team of RRR.
Go to the top of the page
 
+Quote Post
   
YanXie
post May 6 2008, 06:30 AM
Post #7


Because Tomorrow Will Surely Come...
Group Icon

Group: Revolutionary
Posts: 1,137
Type: None
RM Skill: Skilled




OK,to everybody who want to use this from menu,download this :

Attached File  Scene_Menu_Party_Changer_.txt ( 5.09K ) Number of downloads: 1363


And This :

Attached File  Scene_Party.txt ( 9.97K ) Number of downloads: 965


Or copy it below:

[Show/Hide] Scene_Menu
CODE
#==============================================================================
# ** Vocab
#------------------------------------------------------------------------------
#  This module defines terms and messages. It defines some data as constant# variables. Terms in the database are obtained from $data_system.
#==============================================================================
module Vocab
  # Party
  def self.party
    return "Party"
  end
end
#==============================================================================
# ** End Vocab
#------------------------------------------------------------------------------
###############################################################################
#==============================================================================
# ** Scene_File
#------------------------------------------------------------------------------
#  This class performs the save and load screen processing.
#==============================================================================
class Scene_File < Scene_Base
  #--------------------------------------------------------------------------
  # * Return to Original Screen
  #--------------------------------------------------------------------------
  def return_scene
    if @from_title
      $scene = Scene_Title.new
    elsif @from_event
      $scene = Scene_Map.new
    else
      $scene = Scene_Menu.new(5)
    end
  end
end
#==============================================================================
# ** End Scene_File
#------------------------------------------------------------------------------
###############################################################################
#==============================================================================
# ** Scene_End
#------------------------------------------------------------------------------
#  This class performs game end screen processing.
#==============================================================================
class Scene_End < Scene_Base
  #--------------------------------------------------------------------------
  # * Return to Original Screen
  #--------------------------------------------------------------------------
  def return_scene
    $scene = Scene_Menu.new(6)
  end
end
#==============================================================================
# ** End Scene_End
#------------------------------------------------------------------------------
###############################################################################

#==============================================================================
# ** Scene_Menu
#------------------------------------------------------------------------------
#  This class performs the menu screen processing.
#==============================================================================
class Scene_Menu < Scene_Base
  #--------------------------------------------------------------------------
  # * Create Command Window
  #--------------------------------------------------------------------------
  def create_command_window
    s1 = Vocab::item
    s2 = Vocab::skill
    s3 = Vocab::equip
    s4 = Vocab::status
    s5 = Vocab::party
    s6 = Vocab::save
    s7 = Vocab::game_end
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7])
    @command_window.index = @menu_index
    if $game_party.members.size == 0          # If number of party members is 0
      @command_window.draw_item(0, false)     # Disable item
      @command_window.draw_item(1, false)     # Disable skill
      @command_window.draw_item(2, false)     # Disable equipment
      @command_window.draw_item(3, false)     # Disable status
      @command_window.draw_item(4, false)     # Disable party
    end
    if $game_system.save_disabled             # If save is forbidden
      @command_window.draw_item(5, false)     # Disable save
    end
  end
  #--------------------------------------------------------------------------
  # * Update Command Selection
  #--------------------------------------------------------------------------
  def update_command_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
    elsif Input.trigger?(Input::C)
      if $game_party.members.size == 0 and @command_window.index < 5
        Sound.play_buzzer
        return
      elsif $game_system.save_disabled and @command_window.index == 5
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      case @command_window.index
      when 0      # Item
        $scene = Scene_Item.new
      when 1,2,3  # Skill, equipment, status
        start_actor_selection
      when 4      # End Game
        $scene = Scene_Party.new(true, false)        
      when 5      # Save
        $scene = Scene_File.new(true, false, false)
      when 6      # End Game
        $scene = Scene_End.new
      end
    end
  end
end
#==============================================================================
# ** End Scene_Menu
#------------------------------------------------------------------------------



[Show/Hide] Scene_Party
CODE
#==============================================================================
# ** Prexus - Party Manager (v1.1c)
#------------------------------------------------------------------------------
#  This is a Party Management system, created by Prexus. It allows you to
#  change your party makeup, out of a reserve of characters. It also allows you
#  to lock characters, making them mandatory, and make characters unavailable.
#
#  See thread at RMXP.org for instructions:
#  http://www.rmxp.org/forums/index.php?topic=42685.msg402326#msg402326
#
#  - Changelog (v1.1c)
#    * Fixed a graphical error in the party reserves window
#
#  - (v1.1b)
#    * Fixed a bug with the draw_item_name method, added the width parameter
#  - (v1.1)
#    * Added functionality to see player's equipment (press the A button)
#  
#==============================================================================

module RPG
  class Actor
    def setup
      @found = false
      @unavailable = false
      @required = false
    end
    attr_accessor :found
    attr_accessor :unavailable
    attr_accessor :required
  end
end

class Game_Actors
  attr_reader :data
  alias prex_party_g_actors_initialize initialize
  def initialize
    prex_party_g_actors_initialize
    $data_actors.each do |actor|
      actor.setup if actor
      @data[actor.id] = Game_Actor.new(actor.id) if actor
    end
  end
end

class Scene_File < Scene_Base
  alias prex_party_s_file_write_save_data write_save_data
  alias prex_party_s_file_read_save_data read_save_data
  def write_save_data(file)
    prex_party_s_file_write_save_data(file)
    Marshal.dump($data_actors, file)
  end
  def read_save_data(file)
    prex_party_s_file_read_save_data(file)
    $data_actors = Marshal.load(file)
  end
end

class Scene_Title < Scene_Base
  alias prex_party_s_title_command_new_game command_new_game
  def command_new_game
    prex_party_s_title_command_new_game
    $game_party.members.each {|s| s.actor.found = true if s}
  end
end

class Window_Base < Window
  def draw_item_name(item, x, y, enabled = true, width = 172)
    if item != nil
      draw_icon(item.icon_index, x, y, enabled)
      self.contents.font.color = normal_color
      self.contents.font.color.alpha = enabled ? 255 : 128
      self.contents.draw_text(x + 24, y, width, WLH, item.name)
    end
  end
end

class Scene_Party < Scene_Base
  def initialize(from_menu, from_event)
    @from_menu = from_menu
    @from_event = from_event
  end  
  def start
    super
    create_menu_background
    create_windows
  end
  def create_windows
    @member_window = Window_CurrentMember.new
    @party_window = Window_CurrentParty.new
    @party_window.active = true
    @selectable_window = Window_SelectMember.new
  end
  def update_windows
    @member_window.update
    @party_window.update
    @selectable_window.update
    if @party_window.active
      @member_window.set_member(@party_window.member)
    elsif @selectable_window.active
      @member_window.set_member(@selectable_window.member)
    end
  end
  def terminate
    super
    @member_window.dispose
    @party_window.dispose
    @selectable_window.dispose
  end
  def update
    super
    update_windows
    update_input
  end
  def update_input
    if Input.trigger?(Input::A)
      if @member_window.mode == 1
        @member_window.set_mode(0)
      elsif @member_window.mode == 0
        @member_window.set_mode(1)
      end
    end
    if @party_window.active
      if Input.trigger?(Input::B)
        Sound.play_cancel
        return_scene
      elsif Input.trigger?(Input::C)
        member = @party_window.member
        if member != nil
          if member.actor.unavailable or member.actor.required
            Sound.play_buzzer
            return
          end
        end
        Sound.play_decision
        @party_window.active = false
        @selectable_window.active = true
        @selectable_window.index = 0
      end
    elsif @selectable_window.active
      if Input.trigger?(Input::B)
        Sound.play_cancel
        @selectable_window.index = -1
        @selectable_window.active = false
        @party_window.active = true
      elsif Input.trigger?(Input::C)
        member = @selectable_window.member
        if member != nil
          if member.actor.unavailable
            Sound.play_buzzer
            return
          end
        end
        Sound.play_decision
        $game_party.remove_actor(@party_window.member.id) if @party_window.member != nil
        $game_party.add_actor(@selectable_window.member.id) if @selectable_window.member != nil
        @selectable_window.refresh
        @party_window.refresh
        @selectable_window.index = -1
        @selectable_window.active = false
        @party_window.active = true
      end
    end
  end
  def return_scene
    if @from_menu
      $scene = Scene_Menu.new(4)
    elsif @from_event
      $scene = Scene_Map.new
    end
  end  
end

class Window_CurrentMember < Window_Base
  attr_reader :mode
  def initialize(member = nil, mode = 0)
    super(304, 80, 192, 256)
    create_contents
    @member = member
    @mode = 0
    refresh
  end
  def member
    return @member
  end
  def set_member(member)
    old_member = @member
    @member = member
    refresh if old_member != @member
  end
  def set_mode(mode)
    @mode = mode if [0, 1].include?(mode)
    refresh
  end
  def refresh
    self.contents.clear
    return unless @member
    x, y = 0, 0
    self.draw_actor_face(@member, x, y, 48)
    self.draw_actor_name(@member, x + 52, y)
    self.draw_actor_class(@member, x + 52, y + WLH)
    self.draw_actor_level(@member, x, y + WLH*2)
    case @mode
    when 0
      self.draw_icon(142, self.contents.width - 24, y + WLH*2)
      self.contents.draw_text(x, y + WLH*2, self.contents.width - 12, WLH, 'Equip', 2)
      self.draw_actor_hp(@member, x, y + WLH*3, 160)
      self.draw_actor_mp(@member, x, y + WLH*4, 160)
      self.draw_actor_parameter(@member, x, y + WLH*5, 0)
      self.draw_actor_parameter(@member, x, y + WLH*6, 1)
      self.draw_actor_parameter(@member, x, y + WLH*7, 2)
      self.draw_actor_parameter(@member, x, y + WLH*8, 3)
    when 1
      self.draw_icon(143, self.contents.width - 24, y + WLH*2)
      self.contents.draw_text(x, y + WLH*2, self.contents.width - 12, WLH, 'Stat', 2)
      for i in 0...@member.equips.size
        item = @member.equips[i]
        self.draw_item_name(item, x, y + WLH*(3+i), true, self.contents.width - 24)
      end
    end
  end
end

class Window_CurrentParty < Window_Selectable
  def initialize
    super(48, 80, 256, 64)
    @item_max = 4
    @column_max = @item_max
    create_contents
    self.index = 0
    refresh
  end
  def member
    return $game_party.members[self.index]
  end
  def refresh
    for i in 0...@item_max
      rect = item_rect(i)
      self.contents.clear_rect(rect)
    end
    for i in 0...$game_party.members.size
      rect = item_rect(i)
      bitmap = Cache.character($game_party.members[i].character_name)
      sign = $game_party.members[i].character_name[/^[\!\$]./]
      if sign != nil and sign.include?('$')
        cw = bitmap.width / 3
        ch = bitmap.height / 4
      else
        cw = bitmap.width / 12
        ch = bitmap.height / 8
      end
      n = $game_party.members[i].character_index
      src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch)
      if $game_party.members[i].actor.unavailable
        self.contents.blt(rect.x, rect.y, bitmap, src_rect, 128)
      else
        self.contents.blt(rect.x, rect.y, bitmap, src_rect, 255)
      end
      if $game_party.members[i].actor.required
        lock_bitmap = Cache.system("Locked")
        self.contents.blt(rect.x + rect.width - lock_bitmap.width,
                          rect.y + rect.height - lock_bitmap.height,
                          lock_bitmap, lock_bitmap.rect)
      end
    end
  end
  def item_rect(index)
    rect = Rect.new(0, 0, 0, 0)
    rect.width = (contents.width + @spacing) / @column_max - @spacing
    rect.height = 32
    rect.x = index % @column_max * (rect.width + @spacing)
    rect.y = index / @column_max * 32
    return rect
  end
end

class Window_SelectMember < Window_Selectable
  def initialize
    super(48, 144, 256, 192)
    calculate_actors
    @item_max = @actors.size + 1
    @column_max = 4
    self.index = -1
    self.active = false
    refresh
  end
  def calculate_actors
    @actors = []
    for a in $game_actors.data
      @actors << a if a != nil and a.actor.found and !$game_party.members.include?(a)
    end
  end
  def member
    return @actors[self.index]
  end
  def refresh
    self.contents.clear
    calculate_actors
    @item_max = @actors.size + 1
    for i in 0...@actors.size
      rect = item_rect(i)
      bitmap = Cache.character(@actors[i].character_name)
      sign = @actors[i].character_name[/^[\!\$]./]
      if sign != nil and sign.include?('$')
        cw = bitmap.width / 3
        ch = bitmap.height / 4
      else
        cw = bitmap.width / 12
        ch = bitmap.height / 8
      end
      n = @actors[i].character_index
      src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch)
      if @actors[i].actor.unavailable
        self.contents.blt(rect.x, rect.y, bitmap, src_rect, 128)
      else
        self.contents.blt(rect.x, rect.y, bitmap, src_rect, 255)
      end
      if @actors[i].actor.required
        lock_bitmap = Cache.system("Locked")
        self.contents.blt(rect.x + rect.width - lock_bitmap.width,
                          rect.y + rect.height - lock_bitmap.height,
                          lock_bitmap, lock_bitmap.rect)
      end
    end
  end
  def item_rect(index)
    rect = Rect.new(0, 0, 0, 0)
    rect.width = (contents.width + @spacing) / @column_max - @spacing
    rect.height = 32
    rect.x = index % @column_max * (rect.width + @spacing)
    rect.y = index / @column_max * 32
    return rect
  end
end



Now now,you don't need above script anymore,since I redifined it,so if you use the original script,it will cause errors to you.So use only both script that I post here.

To call it from map now,you'll need to write this,since I modified it :

CODE
$scene = Scene_Party(false, true)


And,for menu,it already provided in the script in this post.

┐(-`◡◡´;-)┌
cheers,puppeto4. smile.gif




__________________________
how make teleport to graveyard then your character die?

AWAY FOR VACATION.
NOT HERE UNTIL JAN/FEB 2010 -w-/
Go to the top of the page
 
+Quote Post
   
Kyros Dragonlanc...
post May 16 2008, 09:49 AM
Post #8


Level 2
Group Icon

Group: Member
Posts: 19
Type: Event Designer
RM Skill: Skilled




Wait... I can't get the code to lock a character from the beginning of the game... What exactly is this "Call Script" you are talking about? I've never done much scripting, but I need my main character to be locked, because without at least one character being locked, you can put everyone into the reserve, and have no party members - and then you can't go back in and put them back in the main party; the "Party" menu option grays out.
Go to the top of the page
 
+Quote Post
   
YanXie
post May 16 2008, 10:05 AM
Post #9


Because Tomorrow Will Surely Come...
Group Icon

Group: Revolutionary
Posts: 1,137
Type: None
RM Skill: Skilled




Put the code in an event and have it run when you want the character to be locked.

btw,if you can't figure out how to use this,go to page 3 of event commands,and use "Script..." command

Put this line :

CODE
$data_actors[ID].required = true


Change "ID" to the actor ID(in the database) that you want to lock.

(・∀・)
cheers,puppeto4. smile.gif


__________________________
how make teleport to graveyard then your character die?

AWAY FOR VACATION.
NOT HERE UNTIL JAN/FEB 2010 -w-/
Go to the top of the page
 
+Quote Post
   
Kyros Dragonlanc...
post May 16 2008, 08:59 PM
Post #10


Level 2
Group Icon

Group: Member
Posts: 19
Type: Event Designer
RM Skill: Skilled




Yeah, I did that... since you start the game with the main character, I put an event next to the player starting position, and had it autorun, using the script you mentioned, puppet. (I do read the previous posts, unlike some people I've been on other forums with. lol.) And I assume by [ID] you mean the number of the character such as 001, 002, etc... but when I load up a test play, it won't allow me to move. And it's not frozen, the water around him is moving.
Go to the top of the page
 
+Quote Post
   
YanXie
post May 16 2008, 10:59 PM
Post #11


Because Tomorrow Will Surely Come...
Group Icon

Group: Revolutionary
Posts: 1,137
Type: None
RM Skill: Skilled




ohmy.gif

No,no,you are almost there.

Ok,you use an event which run with autorun trigger, right? At the end of the first page of the event, put "Control Self Switch # On"

Then, make a second page for the event. In that page tick "Self Switch # On" for the condition and don't put anything on that page(event graphic,command or whatever). And don't use autorun trigger for this page,instead use action trigger only.

cheers,puppeto4. smile.gif





__________________________
how make teleport to graveyard then your character die?

AWAY FOR VACATION.
NOT HERE UNTIL JAN/FEB 2010 -w-/
Go to the top of the page
 
+Quote Post
   
C7Edition
post May 16 2008, 11:28 PM
Post #12


Eight-Oh-Seven
Group Icon

Group: Revolutionary
Posts: 808
Type: None
RM Skill: Undisclosed




nice finding and thanks for extended help Puppeto. I was asking myself the same thing
Go to the top of the page
 
+Quote Post
   
Avarant87
post May 17 2008, 08:10 PM
Post #13


Level 1
Group Icon

Group: Member
Posts: 11
Type: Event Designer
RM Skill: Skilled




Anyone else notice that you can remove all characters from your party? And run around with no Sprite? Also be unable to access anything but Save and End Game?

Im sure its a quick fix, but I dunno how.

Just a check to see if the party player # = 0 or something


__________________________
Go to the top of the page
 
+Quote Post
   
YanXie
post May 17 2008, 09:45 PM
Post #14


Because Tomorrow Will Surely Come...
Group Icon

Group: Revolutionary
Posts: 1,137
Type: None
RM Skill: Skilled




QUOTE (Avarant87 @ May 18 2008, 11:24 AM) *
Anyone else notice that you can remove all characters from your party? And run around with no Sprite? Also be unable to access anything but Save and End Game?

Im sure its a quick fix, but I dunno how.

Just a check to see if the party player # = 0 or something


That's why the script has lock character function,so that there will be at least one actor left in the party at one time.

Refer to my posts above on how to use lock actor feature.

◕ ◡ ◕
cheers,puppeto4. wink.gif


__________________________
how make teleport to graveyard then your character die?

AWAY FOR VACATION.
NOT HERE UNTIL JAN/FEB 2010 -w-/
Go to the top of the page
 
+Quote Post
   
Avarant87
post May 17 2008, 11:23 PM
Post #15


Level 1
Group Icon

Group: Member
Posts: 11
Type: Event Designer
RM Skill: Skilled




QUOTE (puppeto4 @ May 17 2008, 08:59 PM) *
QUOTE (Avarant87 @ May 18 2008, 11:24 AM) *
Anyone else notice that you can remove all characters from your party? And run around with no Sprite? Also be unable to access anything but Save and End Game?

Im sure its a quick fix, but I dunno how.

Just a check to see if the party player # = 0 or something


That's why the script has lock character function,so that there will be at least one actor left in the party at one time.

Refer to my posts above on how to use lock actor feature.

◕ ◡ ◕
cheers,puppeto4. wink.gif


Yeah, but what if I don't want any specific character to be forced in the party? Something like Final Fantasy Tactics. No Real Party.


__________________________
Go to the top of the page
 
+Quote Post
   
YanXie
post May 18 2008, 12:09 AM
Post #16


Because Tomorrow Will Surely Come...
Group Icon

Group: Revolutionary
Posts: 1,137
Type: None
RM Skill: Skilled




Ok,fixed that one,get the script below :

Attached File  Scene_Party_InMenuAccess.txt ( 15.18K ) Number of downloads: 336


Or copy it below:

[Show/Hide] Scene_Party + AccessFromMenuFeature
CODE
#==============================================================================
# ** Prexus - Party Manager (v1.1c)
#------------------------------------------------------------------------------
#  This is a Party Management system, created by Prexus. It allows you to
#  change your party makeup, out of a reserve of characters. It also allows you
#  to lock characters, making them mandatory, and make characters unavailable.
#
#  See thread at RMXP.org for instructions:
#  http://www.rmxp.org/forums/index.php?topic=42685.msg402326#msg402326
#
#  - Changelog (v1.1c)
#    * Fixed a graphical error in the party reserves window
#
#  - (v1.1b)
#    * Fixed a bug with the draw_item_name method, added the width parameter
#  - (v1.1)
#    * Added functionality to see player's equipment (press the A button)
#  
#==============================================================================

module RPG
  class Actor
    def setup
      @found = false
      @unavailable = false
      @required = false
    end
    attr_accessor :found
    attr_accessor :unavailable
    attr_accessor :required
  end
end

class Game_Actors
  attr_reader :data
  alias prex_party_g_actors_initialize initialize
  def initialize
    prex_party_g_actors_initialize
    $data_actors.each do |actor|
      actor.setup if actor
      @data[actor.id] = Game_Actor.new(actor.id) if actor
    end
  end
end

class Scene_File < Scene_Base
  alias prex_party_s_file_write_save_data write_save_data
  alias prex_party_s_file_read_save_data read_save_data
  def write_save_data(file)
    prex_party_s_file_write_save_data(file)
    Marshal.dump($data_actors, file)
  end
  def read_save_data(file)
    prex_party_s_file_read_save_data(file)
    $data_actors = Marshal.load(file)
  end
end

class Scene_Title < Scene_Base
  alias prex_party_s_title_command_new_game command_new_game
  def command_new_game
    prex_party_s_title_command_new_game
    $game_party.members.each {|s| s.actor.found = true if s}
  end
end

class Window_Base < Window
  def draw_item_name(item, x, y, enabled = true, width = 172)
    if item != nil
      draw_icon(item.icon_index, x, y, enabled)
      self.contents.font.color = normal_color
      self.contents.font.color.alpha = enabled ? 255 : 128
      self.contents.draw_text(x + 24, y, width, WLH, item.name)
    end
  end
end

class Scene_Party < Scene_Base
  def initialize(from_menu, from_event)
    @from_menu = from_menu
    @from_event = from_event
  end  
  def start
    super
    create_menu_background
    create_windows
  end
  def create_windows
    @member_window = Window_CurrentMember.new
    @party_window = Window_CurrentParty.new
    @party_window.active = true
    @selectable_window = Window_SelectMember.new
  end
  def update_windows
    @member_window.update
    @party_window.update
    @selectable_window.update
    if @party_window.active
      @member_window.set_member(@party_window.member)
    elsif @selectable_window.active
      @member_window.set_member(@selectable_window.member)
    end
  end
  def terminate
    super
    @member_window.dispose
    @party_window.dispose
    @selectable_window.dispose
  end
  def update
    super
    update_windows
    update_input
  end
  def update_input
    if Input.trigger?(Input::A)
      if @member_window.mode == 1
        @member_window.set_mode(0)
      elsif @member_window.mode == 0
        @member_window.set_mode(1)
      end
    end
    if @party_window.active
      if Input.trigger?(Input::B)
        Sound.play_cancel
        return_scene
      elsif Input.trigger?(Input::C)
        member = @party_window.member
        if member != nil
          if member.actor.unavailable or member.actor.required
            Sound.play_buzzer
            return
          end
        end    
        Sound.play_decision
        @party_window.active = false
        @selectable_window.active = true
        @selectable_window.index = 0
      end
    elsif @selectable_window.active
      if Input.trigger?(Input::B)
        Sound.play_cancel
        @selectable_window.index = -1
        @selectable_window.active = false
        @party_window.active = true
      elsif Input.trigger?(Input::C)
        member = @selectable_window.member
        if member != nil
          if member.actor.unavailable
            Sound.play_buzzer
            return
          end
        end
        if $game_party.members.size == 1 and member == nil
          Sound.play_buzzer
          return
        end  
        Sound.play_decision
        $game_party.remove_actor(@party_window.member.id) if @party_window.member != nil
        $game_party.add_actor(@selectable_window.member.id) if @selectable_window.member != nil
        @selectable_window.refresh
        @party_window.refresh
        @selectable_window.index = -1
        @selectable_window.active = false
        @party_window.active = true
      end
    end
  end
  def return_scene
    if @from_menu
      $scene = Scene_Menu.new(4)
    elsif @from_event
      $scene = Scene_Map.new
    end
  end  
end

class Window_CurrentMember < Window_Base
  attr_reader :mode
  def initialize(member = nil, mode = 0)
    super(304, 80, 192, 256)
    create_contents
    @member = member
    @mode = 0
    refresh
  end
  def member
    return @member
  end
  def set_member(member)
    old_member = @member
    @member = member
    refresh if old_member != @member
  end
  def set_mode(mode)
    @mode = mode if [0, 1].include?(mode)
    refresh
  end
  def refresh
    self.contents.clear
    return unless @member
    x, y = 0, 0
    self.draw_actor_face(@member, x, y, 48)
    self.draw_actor_name(@member, x + 52, y)
    self.draw_actor_class(@member, x + 52, y + WLH)
    self.draw_actor_level(@member, x, y + WLH*2)
    case @mode
    when 0
      self.draw_icon(142, self.contents.width - 24, y + WLH*2)
      self.contents.draw_text(x, y + WLH*2, self.contents.width - 12, WLH, 'Equip', 2)
      self.draw_actor_hp(@member, x, y + WLH*3, 160)
      self.draw_actor_mp(@member, x, y + WLH*4, 160)
      self.draw_actor_parameter(@member, x, y + WLH*5, 0)
      self.draw_actor_parameter(@member, x, y + WLH*6, 1)
      self.draw_actor_parameter(@member, x, y + WLH*7, 2)
      self.draw_actor_parameter(@member, x, y + WLH*8, 3)
    when 1
      self.draw_icon(143, self.contents.width - 24, y + WLH*2)
      self.contents.draw_text(x, y + WLH*2, self.contents.width - 12, WLH, 'Stat', 2)
      for i in 0...@member.equips.size
        item = @member.equips[i]
        self.draw_item_name(item, x, y + WLH*(3+i), true, self.contents.width - 24)
      end
    end
  end
end

class Window_CurrentParty < Window_Selectable
  def initialize
    super(48, 80, 256, 64)
    @item_max = 4
    @column_max = @item_max
    create_contents
    self.index = 0
    refresh
  end
  def member
    return $game_party.members[self.index]
  end
  def refresh
    for i in 0...@item_max
      rect = item_rect(i)
      self.contents.clear_rect(rect)
    end
    for i in 0...$game_party.members.size
      rect = item_rect(i)
      bitmap = Cache.character($game_party.members[i].character_name)
      sign = $game_party.members[i].character_name[/^[\!\$]./]
      if sign != nil and sign.include?('$')
        cw = bitmap.width / 3
        ch = bitmap.height / 4
      else
        cw = bitmap.width / 12
        ch = bitmap.height / 8
      end
      n = $game_party.members[i].character_index
      src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch)
      if $game_party.members[i].actor.unavailable
        self.contents.blt(rect.x, rect.y, bitmap, src_rect, 128)
      else
        self.contents.blt(rect.x, rect.y, bitmap, src_rect, 255)
      end
      if $game_party.members[i].actor.required
        lock_bitmap = Cache.system("Locked")
        self.contents.blt(rect.x + rect.width - lock_bitmap.width,
                          rect.y + rect.height - lock_bitmap.height,
                          lock_bitmap, lock_bitmap.rect)
      end
    end
  end
  def item_rect(index)
    rect = Rect.new(0, 0, 0, 0)
    rect.width = (contents.width + @spacing) / @column_max - @spacing
    rect.height = 32
    rect.x = index % @column_max * (rect.width + @spacing)
    rect.y = index / @column_max * 32
    return rect
  end
end

class Window_SelectMember < Window_Selectable
  def initialize
    super(48, 144, 256, 192)
    calculate_actors
    @item_max = @actors.size + 1
    @column_max = 4
    self.index = -1
    self.active = false
    refresh
  end
  def calculate_actors
    @actors = []
    for a in $game_actors.data
      @actors << a if a != nil and a.actor.found and !$game_party.members.include?(a)
    end
  end
  def member
    return @actors[self.index]
  end
  def refresh
    self.contents.clear
    calculate_actors
    @item_max = @actors.size + 1
    for i in 0...@actors.size
      rect = item_rect(i)
      bitmap = Cache.character(@actors[i].character_name)
      sign = @actors[i].character_name[/^[\!\$]./]
      if sign != nil and sign.include?('$')
        cw = bitmap.width / 3
        ch = bitmap.height / 4
      else
        cw = bitmap.width / 12
        ch = bitmap.height / 8
      end
      n = @actors[i].character_index
      src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch)
      if @actors[i].actor.unavailable
        self.contents.blt(rect.x, rect.y, bitmap, src_rect, 128)
      else
        self.contents.blt(rect.x, rect.y, bitmap, src_rect, 255)
      end
      if @actors[i].actor.required
        lock_bitmap = Cache.system("Locked")
        self.contents.blt(rect.x + rect.width - lock_bitmap.width,
                          rect.y + rect.height - lock_bitmap.height,
                          lock_bitmap, lock_bitmap.rect)
      end
    end
  end
  def item_rect(index)
    rect = Rect.new(0, 0, 0, 0)
    rect.width = (contents.width + @spacing) / @column_max - @spacing
    rect.height = 32
    rect.x = index % @column_max * (rect.width + @spacing)
    rect.y = index / @column_max * 32
    return rect
  end
end
#==============================================================================
# ** Vocab
#------------------------------------------------------------------------------
#  This module defines terms and messages. It defines some data as constant
# variables. Terms in the database are obtained from $data_system.
#==============================================================================
module Vocab
  # Party
  def self.party
    return "Party"
  end
end
#==============================================================================
# ** End Vocab
#------------------------------------------------------------------------------
###############################################################################
#==============================================================================
# ** Scene_File
#------------------------------------------------------------------------------
#  This class performs the save and load screen processing.
#==============================================================================
class Scene_File < Scene_Base
  #--------------------------------------------------------------------------
  # * Return to Original Screen
  #--------------------------------------------------------------------------
  def return_scene
    if @from_title
      $scene = Scene_Title.new
    elsif @from_event
      $scene = Scene_Map.new
    else
      $scene = Scene_Menu.new(5)
    end
  end
end
#==============================================================================
# ** End Scene_File
#------------------------------------------------------------------------------
###############################################################################
#==============================================================================
# ** Scene_End
#------------------------------------------------------------------------------
#  This class performs game end screen processing.
#==============================================================================
class Scene_End < Scene_Base
  #--------------------------------------------------------------------------
  # * Return to Original Screen
  #--------------------------------------------------------------------------
  def return_scene
    $scene = Scene_Menu.new(6)
  end
end
#==============================================================================
# ** End Scene_End
#------------------------------------------------------------------------------
###############################################################################

#==============================================================================
# ** Scene_Menu
#------------------------------------------------------------------------------
#  This class performs the menu screen processing.
#==============================================================================
class Scene_Menu < Scene_Base
  #--------------------------------------------------------------------------
  # * Create Command Window
  #--------------------------------------------------------------------------
  def create_command_window
    s1 = Vocab::item
    s2 = Vocab::skill
    s3 = Vocab::equip
    s4 = Vocab::status
    s5 = Vocab::party
    s6 = Vocab::save
    s7 = Vocab::game_end
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7])
    @command_window.index = @menu_index
    if $game_party.members.size == 0          # If number of party members is 0
      @command_window.draw_item(0, false)     # Disable item
      @command_window.draw_item(1, false)     # Disable skill
      @command_window.draw_item(2, false)     # Disable equipment
      @command_window.draw_item(3, false)     # Disable status
      @command_window.draw_item(4, false)     # Disable party
    end
    if $game_system.save_disabled             # If save is forbidden
      @command_window.draw_item(5, false)     # Disable save
    end
  end
  #--------------------------------------------------------------------------
  # * Update Command Selection
  #--------------------------------------------------------------------------
  def update_command_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
    elsif Input.trigger?(Input::C)
      if $game_party.members.size == 0 and @command_window.index < 5
        Sound.play_buzzer
        return
      elsif $game_system.save_disabled and @command_window.index == 5
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      case @command_window.index
      when 0      # Item
        $scene = Scene_Item.new
      when 1,2,3  # Skill, equipment, status
        start_actor_selection
      when 4      # End Game
        $scene = Scene_Party.new(true, false)        
      when 5      # Save
        $scene = Scene_File.new(true, false, false)
      when 6      # End Game
        $scene = Scene_End.new
      end
    end
  end
end
#==============================================================================
# ** End Scene_Menu
#------------------------------------------------------------------------------


What I fix is that the party will at least need one member in the party every time.

To call it from map now,you'll need to write this,since I modified it :

CODE
$scene = Scene_Party(false, true)


And,for menu,it already provided in the script in this post.

(-`◡◡´-)
cheers,puppeto4. wink.gif



__________________________
how make teleport to graveyard then your character die?

AWAY FOR VACATION.
NOT HERE UNTIL JAN/FEB 2010 -w-/
Go to the top of the page
 
+Quote Post
   
Avarant87
post May 18 2008, 11:07 AM
Post #17


Level 1
Group Icon

Group: Member
Posts: 11
Type: Event Designer
RM Skill: Skilled




QUOTE (puppeto4 @ May 17 2008, 11:23 PM) *
Ok,fixed that one,get the script below :

Attached File  Scene_Party_InMenuAccess.txt ( 15.18K ) Number of downloads: 336


Or copy it below:

[Show/Hide] Scene_Party + AccessFromMenuFeature
CODE
#==============================================================================
# ** Prexus - Party Manager (v1.1c)
#------------------------------------------------------------------------------
#  This is a Party Management system, created by Prexus. It allows you to
#  change your party makeup, out of a reserve of characters. It also allows you
#  to lock characters, making them mandatory, and make characters unavailable.
#
#  See thread at RMXP.org for instructions:
#  http://www.rmxp.org/forums/index.php?topic=42685.msg402326#msg402326
#
#  - Changelog (v1.1c)
#    * Fixed a graphical error in the party reserves window
#
#  - (v1.1b)
#    * Fixed a bug with the draw_item_name method, added the width parameter
#  - (v1.1)
#    * Added functionality to see player's equipment (press the A button)
#  
#==============================================================================

module RPG
  class Actor
    def setup
      @found = false
      @unavailable = false
      @required = false
    end
    attr_accessor :found
    attr_accessor :unavailable
    attr_accessor :required
  end
end

class Game_Actors
  attr_reader :data
  alias prex_party_g_actors_initialize initialize
  def initialize
    prex_party_g_actors_initialize
    $data_actors.each do |actor|
      actor.setup if actor
      @data[actor.id] = Game_Actor.new(actor.id) if actor
    end
  end
end

class Scene_File < Scene_Base
  alias prex_party_s_file_write_save_data write_save_data
  alias prex_party_s_file_read_save_data read_save_data
  def write_save_data(file)
    prex_party_s_file_write_save_data(file)
    Marshal.dump($data_actors, file)
  end
  def read_save_data(file)
    prex_party_s_file_read_save_data(file)
    $data_actors = Marshal.load(file)
  end
end

class Scene_Title < Scene_Base
  alias prex_party_s_title_command_new_game command_new_game
  def command_new_game
    prex_party_s_title_command_new_game
    $game_party.members.each {|s| s.actor.found = true if s}
  end
end

class Window_Base < Window
  def draw_item_name(item, x, y, enabled = true, width = 172)
    if item != nil
      draw_icon(item.icon_index, x, y, enabled)
      self.contents.font.color = normal_color
      self.contents.font.color.alpha = enabled ? 255 : 128
      self.contents.draw_text(x + 24, y, width, WLH, item.name)
    end
  end
end

class Scene_Party < Scene_Base
  def initialize(from_menu, from_event)
    @from_menu = from_menu
    @from_event = from_event
  end  
  def start
    super
    create_menu_background
    create_windows
  end
  def create_windows
    @member_window = Window_CurrentMember.new
    @party_window = Window_CurrentParty.new
    @party_window.active = true
    @selectable_window = Window_SelectMember.new
  end
  def update_windows
    @member_window.update
    @party_window.update
    @selectable_window.update
    if @party_window.active
      @member_window.set_member(@party_window.member)
    elsif @selectable_window.active
      @member_window.set_member(@selectable_window.member)
    end
  end
  def terminate
    super
    @member_window.dispose
    @party_window.dispose
    @selectable_window.dispose
  end
  def update
    super
    update_windows
    update_input
  end
  def update_input
    if Input.trigger?(Input::A)
      if @member_window.mode == 1
        @member_window.set_mode(0)
      elsif @member_window.mode == 0
        @member_window.set_mode(1)
      end
    end
    if @party_window.active
      if Input.trigger?(Input::B)
        Sound.play_cancel
        return_scene
      elsif Input.trigger?(Input::C)
        member = @party_window.member
        if member != nil
          if member.actor.unavailable or member.actor.required
            Sound.play_buzzer
            return
          end
        end    
        Sound.play_decision
        @party_window.active = false
        @selectable_window.active = true
        @selectable_window.index = 0
      end
    elsif @selectable_window.active
      if Input.trigger?(Input::B)
        Sound.play_cancel
        @selectable_window.index = -1
        @selectable_window.active = false
        @party_window.active = true
      elsif Input.trigger?(Input::C)
        member = @selectable_window.member
        if member != nil
          if member.actor.unavailable
            Sound.play_buzzer
            return
          end
        end
        if $game_party.members.size == 1 and member == nil
          Sound.play_buzzer
          return
        end  
        Sound.play_decision
        $game_party.remove_actor(@party_window.member.id) if @party_window.member != nil
        $game_party.add_actor(@selectable_window.member.id) if @selectable_window.member != nil
        @selectable_window.refresh
        @party_window.refresh
        @selectable_window.index = -1
        @selectable_window.active = false
        @party_window.active = true
      end
    end
  end
  def return_scene
    if @from_menu
      $scene = Scene_Menu.new(4)
    elsif @from_event
      $scene = Scene_Map.new
    end
  end  
end

class Window_CurrentMember < Window_Base
  attr_reader :mode
  def initialize(member = nil, mode = 0)
    super(304, 80, 192, 256)
    create_contents
    @member = member
    @mode = 0
    refresh
  end
  def member
    return @member
  end
  def set_member(member)
    old_member = @member
    @member = member
    refresh if old_member != @member
  end
  def set_mode(mode)
    @mode = mode if [0, 1].include?(mode)
    refresh
  end
  def refresh
    self.contents.clear
    return unless @member
    x, y = 0, 0
    self.draw_actor_face(@member, x, y, 48)
    self.draw_actor_name(@member, x + 52, y)
    self.draw_actor_class(@member, x + 52, y + WLH)
    self.draw_actor_level(@member, x, y + WLH*2)
    case @mode
    when 0
      self.draw_icon(142, self.contents.width - 24, y + WLH*2)
      self.contents.draw_text(x, y + WLH*2, self.contents.width - 12, WLH, 'Equip', 2)
      self.draw_actor_hp(@member, x, y + WLH*3, 160)
      self.draw_actor_mp(@member, x, y + WLH*4, 160)
      self.draw_actor_parameter(@member, x, y + WLH*5, 0)
      self.draw_actor_parameter(@member, x, y + WLH*6, 1)
      self.draw_actor_parameter(@member, x, y + WLH*7, 2)
      self.draw_actor_parameter(@member, x, y + WLH*8, 3)
    when 1
      self.draw_icon(143, self.contents.width - 24, y + WLH*2)
      self.contents.draw_text(x, y + WLH*2, self.contents.width - 12, WLH, 'Stat', 2)
      for i in 0...@member.equips.size
        item = @member.equips[i]
        self.draw_item_name(item, x, y + WLH*(3+i), true, self.contents.width - 24)
      end
    end
  end
end

class Window_CurrentParty < Window_Selectable
  def initialize
    super(48, 80, 256, 64)
    @item_max = 4
    @column_max = @item_max
    create_contents
    self.index = 0
    refresh
  end
  def member
    return $game_party.members[self.index]
  end
  def refresh
    for i in 0...@item_max
      rect = item_rect(i)
      self.contents.clear_rect(rect)
    end
    for i in 0...$game_party.members.size
      rect = item_rect(i)
      bitmap = Cache.character($game_party.members[i].character_name)
      sign = $game_party.members[i].character_name[/^[\!\$]./]
      if sign != nil and sign.include?('$')
        cw = bitmap.width / 3
        ch = bitmap.height / 4
      else
        cw = bitmap.width / 12
        ch = bitmap.height / 8
      end
      n = $game_party.members[i].character_index
      src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch)
      if $game_party.members[i].actor.unavailable
        self.contents.blt(rect.x, rect.y, bitmap, src_rect, 128)
      else
        self.contents.blt(rect.x, rect.y, bitmap, src_rect, 255)
      end
      if $game_party.members[i].actor.required
        lock_bitmap = Cache.system("Locked")
        self.contents.blt(rect.x + rect.width - lock_bitmap.width,
                          rect.y + rect.height - lock_bitmap.height,
                          lock_bitmap, lock_bitmap.rect)
      end
    end
  end
  def item_rect(index)
    rect = Rect.new(0, 0, 0, 0)
    rect.width = (contents.width + @spacing) / @column_max - @spacing
    rect.height = 32
    rect.x = index % @column_max * (rect.width + @spacing)
    rect.y = index / @column_max * 32
    return rect
  end
end

class Window_SelectMember < Window_Selectable
  def initialize
    super(48, 144, 256, 192)
    calculate_actors
    @item_max = @actors.size + 1
    @column_max = 4
    self.index = -1
    self.active = false
    refresh
  end
  def calculate_actors
    @actors = []
    for a in $game_actors.data
      @actors << a if a != nil and a.actor.found and !$game_party.members.include?(a)
    end
  end
  def member
    return @actors[self.index]
  end
  def refresh
    self.contents.clear
    calculate_actors
    @item_max = @actors.size + 1
    for i in 0...@actors.size
      rect = item_rect(i)
      bitmap = Cache.character(@actors[i].character_name)
      sign = @actors[i].character_name[/^[\!\$]./]
      if sign != nil and sign.include?('$')
        cw = bitmap.width / 3
        ch = bitmap.height / 4
      else
        cw = bitmap.width / 12
        ch = bitmap.height / 8
      end
      n = @actors[i].character_index
      src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch)
      if @actors[i].actor.unavailable
        self.contents.blt(rect.x, rect.y, bitmap, src_rect, 128)
      else
        self.contents.blt(rect.x, rect.y, bitmap, src_rect, 255)
      end
      if @actors[i].actor.required
        lock_bitmap = Cache.system("Locked")
        self.contents.blt(rect.x + rect.width - lock_bitmap.width,
                          rect.y + rect.height - lock_bitmap.height,
                          lock_bitmap, lock_bitmap.rect)
      end
    end
  end
  def item_rect(index)
    rect = Rect.new(0, 0, 0, 0)
    rect.width = (contents.width + @spacing) / @column_max - @spacing
    rect.height = 32
    rect.x = index % @column_max * (rect.width + @spacing)
    rect.y = index / @column_max * 32
    return rect
  end
end
#==============================================================================
# ** Vocab
#------------------------------------------------------------------------------
#  This module defines terms and messages. It defines some data as constant
# variables. Terms in the database are obtained from $data_system.
#==============================================================================
module Vocab
  # Party
  def self.party
    return "Party"
  end
end
#==============================================================================
# ** End Vocab
#------------------------------------------------------------------------------
###############################################################################
#==============================================================================
# ** Scene_File
#------------------------------------------------------------------------------
#  This class performs the save and load screen processing.
#==============================================================================
class Scene_File < Scene_Base
  #--------------------------------------------------------------------------
  # * Return to Original Screen
  #--------------------------------------------------------------------------
  def return_scene
    if @from_title
      $scene = Scene_Title.new
    elsif @from_event
      $scene = Scene_Map.new
    else
      $scene = Scene_Menu.new(5)
    end
  end
end
#==============================================================================
# ** End Scene_File
#------------------------------------------------------------------------------
###############################################################################
#==============================================================================
# ** Scene_End
#------------------------------------------------------------------------------
#  This class performs game end screen processing.
#==============================================================================
class Scene_End < Scene_Base
  #--------------------------------------------------------------------------
  # * Return to Original Screen
  #--------------------------------------------------------------------------
  def return_scene
    $scene = Scene_Menu.new(6)
  end
end
#==============================================================================
# ** End Scene_End
#------------------------------------------------------------------------------
###############################################################################

#==============================================================================
# ** Scene_Menu
#------------------------------------------------------------------------------
#  This class performs the menu screen processing.
#==============================================================================
class Scene_Menu < Scene_Base
  #--------------------------------------------------------------------------
  # * Create Command Window
  #--------------------------------------------------------------------------
  def create_command_window
    s1 = Vocab::item
    s2 = Vocab::skill
    s3 = Vocab::equip
    s4 = Vocab::status
    s5 = Vocab::party
    s6 = Vocab::save
    s7 = Vocab::game_end
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7])
    @command_window.index = @menu_index
    if $game_party.members.size == 0          # If number of party members is 0
      @command_window.draw_item(0, false)     # Disable item
      @command_window.draw_item(1, false)     # Disable skill
      @command_window.draw_item(2, false)     # Disable equipment
      @command_window.draw_item(3, false)     # Disable status
      @command_window.draw_item(4, false)     # Disable party
    end
    if $game_system.save_disabled             # If save is forbidden
      @command_window.draw_item(5, false)     # Disable save
    end
  end
  #--------------------------------------------------------------------------
  # * Update Command Selection
  #--------------------------------------------------------------------------
  def update_command_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
    elsif Input.trigger?(Input::C)
      if $game_party.members.size == 0 and @command_window.index < 5
        Sound.play_buzzer
        return
      elsif $game_system.save_disabled and @command_window.index == 5
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      case @command_window.index
      when 0      # Item
        $scene = Scene_Item.new
      when 1,2,3  # Skill, equipment, status
        start_actor_selection
      when 4      # End Game
        $scene = Scene_Party.new(true, false)        
      when 5      # Save
        $scene = Scene_File.new(true, false, false)
      when 6      # End Game
        $scene = Scene_End.new
      end
    end
  end
end
#==============================================================================
# ** End Scene_Menu
#------------------------------------------------------------------------------


What I fix is that the party will at least need one member in the party every time.

To call it from map now,you'll need to write this,since I modified it :

CODE
$scene = Scene_Party(false, true)


And,for menu,it already provided in the script in this post.

(-`◡◡´-)
cheers,puppeto4. wink.gif


Thank you! So, is this new fix a 1 file thing? Cause I've tried to copy and paste this new one, and Im getting errors I didn't get before. Is this file replacing all of Scene_Menu or..? Feel kind of silly asking 'bout this; I can usually figure it out.

This post has been edited by Avarant87: May 18 2008, 11:20 AM


__________________________
Go to the top of the page
 
+Quote Post
   
Elighja
post May 18 2008, 11:08 AM
Post #18


Graphics Designer/Programmer
Group Icon

Group: Revolutionary
Posts: 202
Type: Developer
RM Skill: Advanced




Okay is this to select your main character or to arrange party members?
Go to the top of the page
 
+Quote Post
   
Avarant87
post May 18 2008, 11:21 AM
Post #19


Level 1
Group Icon

Group: Member
Posts: 11
Type: Event Designer
RM Skill: Skilled




QUOTE (Elighja @ May 18 2008, 10:22 AM) *
Okay is this to select your main character or to arrange party members?


You could essentially use it as both I guess.


__________________________
Go to the top of the page
 
+Quote Post
   
Kyros Dragonlanc...
post May 18 2008, 02:36 PM
Post #20


Level 2
Group Icon

Group: Member
Posts: 19
Type: Event Designer
RM Skill: Skilled




QUOTE (puppeto4 @ May 17 2008, 01:13 AM) *
ohmy.gif

No,no,you are almost there.

Ok,you use an event which run with autorun trigger, right? At the end of the first page of the event, put "Control Self Switch # On"

Then, make a second page for the event. In that page tick "Self Switch # On" for the condition and don't put anything on that page(event graphic,command or whatever). And don't use autorun trigger for this page,instead use action trigger only.

cheers,puppeto4. smile.gif


Cool, it works now! Thanks puppet! biggrin.gif
Go to the top of the page
 
+Quote Post
   

7 Pages V   1 2 3 > » 
Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 

Lo-Fi Version Time is now: 19th June 2013 - 02:38 PM
RPG RPG Revolution is an Privacy Policy and Legal
eXTReMe Tracker