Multiple Parties

0 Members and 1 Guest are viewing this topic.

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Multiple Parties
Version: 1.0b
Author: modern algebra
Date: April 2, 2008

Description


This script allows you to maintain multiple parties (separate item lists, step count, everything) and allows you to merge them at will. Primarily useful for a game where parties split up or a game where you can have separate parties

Features

  • Allows for many parties
  • Perfect if you want parties to be able to split up and not have access to all the same items and things
  • Allows for easy merging and deletion of parties

Screenshots

N/A for this script

Instructions

FROM SCRIPT:
Place this script below all of the default scripts in the Script Editor.
There are several codes to keep in mind:

   $game_parties[id]                                :accesses the party located in that index creates it if it does not yet exist.
   $game_parties[id] = X                          :Sets the party to X. It MUST be a Game_Party object
   party = $game_parties.merge(id1,id2) :merges two parties and saves them in party
   $game_parties.merge! (id1, id2)          :merges two parties and saves them in $game_parties[id1] and deletes $game_parties[id2]
   $game_parties.delete (id)                    :Deletes $game_parties[id]

In order to switch the current party, just do this:

   $game_party = $game_parties[id]
   $game_player.refresh

By default, the original party is saved in $game_parties[0], so you may want to avoid overwriting $game_parties[0] and just work with 1,2,...

Also, be very careful when dealing with parties. Always remember what parties exist and where they are in $game_parties or else you may make a stupid error occur.

    *EXAMPLE EVENT*

      @>Change Items: [Potion], + 1
      @>Change Gold: + 50
      @>Script: p = $game_parties[1]
       :      : $game_party = p
       :      : $game_player.refresh
      @>Change Party Member: Add [Oscar], Initialize
      @>Change Weapons: [Bastard Sword], +1
      @>Change Gold: + 100

This event just switched your party to the party with index 1, and, assuming that $game_parties[1] did not previously exist, if you looked at your menu you would see that Oscar is in the party, you have 100 Gold, and a Bastard Sword. The potion and the other 50 Gold went to the initial party

Now, let's say Oscar later meets up with his party and rejoins. Then this event would do the trick:

   @>Script: $game_parties.merge! (0, 1)
     :      : $game_party = $game_parties[0]
     :      : $game_player.refresh

And there, the two parties have been merged and everything that Oscar had obtained goes to the party.

Script


Code: [Select]
#==============================================================================
#  Multiple Parties
#  Version: 1.0b
#  Author: modern algebra (rmrk.net)
#  Date: April 2, 2008
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#  Description:
#    This script allows you to maintain multiple parties (separate item lists, steps,
#    everything) and allows you to merge them at will. Primarily useful for a
#    game where parties split up or a game where you can have separate parties
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#  Instructions:
#    Place this script under ? Materials in the Script Editor.
#    There are several codes to keep in mind:
#
#      $game_parties[id]                :accesses the party located in that index.
#                                       :creates it if it does not yet exist.
#      $game_parties[id] = X            :Sets the party to X. It MUST be a  
#                                       :Game_Party object
#      p = $game_parties.merge(id1,id2) :merges two parties and saves them in p
#      $game_parties.merge! (id1, id2)  :merges two parties and saves them in
#                                       :$game_parties[id1] and deletes $game_parties[id2]
#      $game_parties.delete (id)        :Deletes $game_parties[id]
#
#    In order to switch the current party, just do this:
#
#      $game_party = $game_parties[id]
#      $game_player.refresh
#
#    By default, the original party is saved in $game_parties[0], so you may
#    want to avoid overwriting $game_parties[0] and just work with 1,2,...
#
#    Also, be very careful when dealing with parties. Always remember what
#    parties exist and where they are in $game_parties or else you may make a
#    stupid error occur.
#
#        *EXAMPLE EVENT*
#
#      @>Change Items: [Potion], + 1
#      @>Change Gold: + 50
#      @>Script: p = $game_parties[1]
#       :      : $game_party = p
#       :      : $game_player.refresh
#      @>Change Party Member: Add [Oscar], Initialize
#      @>Change Weapons: [Bastard Sword], +1
#      @>Change Gold: + 100
#
#    Assuming that $game_parties[1] did not previously exist, this event just
#    switched your party to the party with index 1, and if you looked at your
#    menu you would see that Oscar is in the party, you have 100 Gold, and a
#    Bastard Sword. The potion and the other 50 Gold went to the initial party
#
#    Now, let's say Oscar later meets up with his party and rejoins. Then this
#    event would do the trick:
#
#      @>Script: $game_parties.merge! (0, 1)
#       :      : $game_party = $game_parties[0]
#       :      : $game_player.refresh
#
#    And there, the two parties have been merged and everything that Oscar had
#    obtained goes to the party.
#==============================================================================

#==============================================================================
# ** Game_Party
#------------------------------------------------------------------------------
#  Summary of Changes:
#    new method - add_multiple_steps
#==============================================================================

class Game_Party < Game_Unit
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Add Multiple Steps
  #    amount : the amount of steps to add
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def add_multiple_steps (amount)
    @steps += amount
  end
end

#==============================================================================
# ** Game_Parties
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#  This class handles Parties. It's a wrapper for the built-in class "Array."
#  It is accessed by $game_parties
#==============================================================================

class Game_Parties
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Object Initialization
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def initialize
    @data = [$game_party]
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Retrieve Party
  #    id : the ID of the party
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def [] (id)
    @data[id] = Game_Party.new if @data[id] == nil
    return @data[id]
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Set Party
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def []= (id, party)
    # Does nothing unless it is a party object
    return unless party.class == Game_Party
    @data[id] = party
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Merge
  #    id_1 : the ID of the first party
  #    id_2 : the ID of the second party
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def merge (id_1, id_2)
    new_party = Game_Party.new
    # Get old parties
    op1 = self[id_1]
    op2 = self[id_2]
    # Gold
    new_party.gain_gold (op1.gold + op2.gold)
    # Members
    (op1.members | op2.members).each { |actor| new_party.add_actor (actor.id) }
    # Items, Weapons, and Armor
    (op1.items | op2.items).each { |item|
      new_party.gain_item (item, op1.item_number (item) +  op2.item_number (item))
    }
    # Steps
    new_party.add_multiple_steps (op1.steps + op2.steps)
    # Last Item
    new_party.last_item_id = op1.last_item_id
    # Last Actor
    new_party.last_actor_index = op1.last_actor_index
    # Last Target
    new_party.last_target_index = op1.last_target_index
    # Quests (if game includes my Quest Log)
    begin
      (op1.quests.list | op2.quests.list).each { |quest|
        new_quest = new_party.quests[quest.id]
        # Reveal Objectives
        quest.revealed_objectives.each { |i| new_quest.reveal_objective (i) }
        # Complete Objectives
        quest.complete_objectives.each { |i| new_quest.complete_objective (i) }
        # Fail Objectives
        quest.failed_objectives.each { |i| new_quest.fail_objective (i) }
        # Concealed?
        new_quest.concealed = quest.concealed
        # Reward Given?
        new_quest.reward_given = quest.reward_given
      }
    rescue
    end
    return new_party
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Merge!
  #    id_1 : the ID of the first party to which the second party is merged
  #    id_2 : the ID of the second party that is deleted
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def merge! (id_1, id_2)
    @data[id_1] = merge (id_1, id_2)
    delete (id_2)
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Delete
  #     id : the ID of the quest to be deleted
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def delete (id)
    @data[id] = nil
    # If this was the last in the array
    if id == @data.size - 1
      # Delete any nil elements that exist between this party and its successor
      id -= 1
      while @data[id] == nil
        @data.delete (id)
        id -= 1
      end
    end
  end
end

#==============================================================================
# ** Scene_Title
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#  Summary of Changes:
#    aliased method - create_game_objects
#==============================================================================

class Scene_Title < Scene_Base
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Create Game Objects
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  alias modalg_multiparty_crt_gme_objcs_5som create_game_objects
  def create_game_objects
    modalg_multiparty_crt_gme_objcs_5som
    $game_parties      = Game_Parties.new
  end
end

#==============================================================================
# ** Scene_File
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#  Summary of Changes:
#    aliased methods - read_save_data, write_save_data
#==============================================================================

class Scene_File
  
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Write Save Data
  #     file : write file object (opened)
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  alias modalg_multiparty_wrt_sv_dta_6hye write_save_data
  def write_save_data(file)
    modalg_multiparty_wrt_sv_dta_6hye (file)
    Marshal.dump($game_parties,        file)
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Read Save Data
  #     file : file object for reading (opened)
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  alias modalg_multiparty_rd_sv_dat_2gte read_save_data
  def read_save_data(file)
    modalg_multiparty_rd_sv_dat_2gte (file)
    $game_parties        = Marshal.load(file)
  end
end

Credit


  • modern algebra

Support


Just post here for support

Known Compatibility Issues

If you are using the Quest Journal, please copy the script above, rather than out of the demo, as the demo has an error that may cause the game to incorrectly merge the quests of the two parties.

Author's Notes


Just a script I need to have for my own game that I wanted to share

Demo


See attached.


Creative Commons License
This script by modern algebra is licensed under a Creative Commons Attribution-Non-Commercial-Share Alike 2.5 Canada License.
« Last Edit: March 09, 2010, 02:47:46 PM by modern algebra »

***
Rep:
Level 86
I hate everyone except the ones I don't hate...
Nice, a pretty good idea actually, though I don't really get it. I might (just might) use it...
I wonder how many of my-reps are there for a reason, and not just because some jackass wanted to show off in front of some other jackasses...?
Probably a lot of them - and those people sure as hell don't deserve my pity, let alone my disgust.
That's right, let's see some more -Rep'ing! BOOYEAH!!

********
Shadow Knight
Rep:
Level 91
Ruin that brick wall!
Project of the Month winner for October 2008
Can you perhaps make a demo?
If you have time for it...
Be kind, everyone you meet is fighting a hard battle.

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Alright, demo is up. It probably looks complicated, but it's the eventing that is complicated, not the scripting.

Also, VX is annoying and doesn't give you the option of not fading when you transfer player, so you'll see some stupidness when you play the demo. I will write a script that allows you not to fade when you teleport perhaps.

***
Rep:
Level 86
OMFG look!! Text! :D
MA, would this work on XP?

if not, is there something smilar out there?

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
No, it wouldn't work in XP as is. As for something similar - there's a script on phylomortis that allows for many item bags. It's not an entire party, but it might suit your purposes: And I would link but apparently phylomortis expired on March 29 :(



Alright, I found it on my computer, but there are no credits anywhere :(

Anyway, I attached it to this post.
« Last Edit: April 04, 2008, 09:37:44 PM by modern algebra »

***
Rep:
Level 86
OMFG look!! Text! :D
although that's helpful, i was looking more on the lines of the multiple parties per se.

having about 3 groups in the same area, when you pressed a button, you changed from a party to another, and the other parties kept the same positions after changing to the other.

if you don't understand, try checking kefka's tower from ff3(6)

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
That sounds like my demo actually :P

Anyway, I can probably make one of these for RMXP - it'd be short. But it still takes some eventing to make it work. The primary purpose of the script is to not share inventory and gold with other parties. If that is necessary for your puzzle then I will translate the script. Otherwise, a script is not necessary.

********
Shadow Knight
Rep:
Level 91
Ruin that brick wall!
Project of the Month winner for October 2008
Tried the demo.
Using this kind of script actually opens up the way to many more puzzle possibilities, definitely practical and usable.
Be kind, everyone you meet is fighting a hard battle.

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
:(

I made a mistake. I've fixed the script now, so don't worry about it if you're new to the script, but anybody who already has the script will need to recopy the script and replace the one they have right now. Though, you've probably noticed it if you've tried to save  :'(

**
Rep:
Level 86
While using this command (picture) to switch parties, my characters lose all of their items when toggling parties. May you please tell me what is wrong? :?

Relieves ideas through Rmvx, all the while training to become an enthusiastic pain of a technician in the system's back-side.

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
What picture?

*
Resident Cloud
Rep:
Level 91
looks great. you could like split parties to go two different ways in some woods or something and then thed meet back in the middle with new items. Think scooby doo where they all come together with new clues but not as lame :D.

btw theres a typo in the description section "and arrows you to merge"

***
Rep:
Level 86
I hate everyone except the ones I don't hate...
but not as lame

That's a great way to use the script, but why can't things be lame and hilarious...? :'( ;)
I wonder how many of my-reps are there for a reason, and not just because some jackass wanted to show off in front of some other jackasses...?
Probably a lot of them - and those people sure as hell don't deserve my pity, let alone my disgust.
That's right, let's see some more -Rep'ing! BOOYEAH!!

**
Rep:
Level 86
pardon..here's the picture, sorry!
Something else I tried that didn't work was the text command \n[\v[17]] that resulted in a Window_Message error at line 218. It probably happened because the two commands were never supposed to merge like that..ironic, huh?

Relieves ideas through Rmvx, all the while training to become an enthusiastic pain of a technician in the system's back-side.

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Sorry, I missed your post. Just so that I understand the problem, are you saying that items are not saved? (I.E. if one party collects items and then you switch to another party and then switch back, the first party no longer has those items?) Or are you saying that the second party does not have the items the first party collected? If the latter, that is part of the purpose of the script. Also, you should not get any error from \n[\v[17]], unless \v[17] has a value larger than the number of actors you have set in the database


EDIT:

That being said, I sort of discovered that I had overlooked something because I am an idiot. Anyway, the script has been updated and fixed.
« Last Edit: May 28, 2008, 09:50:30 PM by modern algebra »

**
Rep: +0/-0Level 85
I'm actually having that odd problem too.  Mines really complex:

At the beginning of my game, I add 3 potions of two types, and a journal.  Now I can play through the game, and earn items, (for example on this test run I just earned 1 more of each type of potion, and some other new items).  Now it works just fine, but later on I switch to a new party and play with that party.  Works fine, the items don't show up for it, as the script intends.  Then I also switch to a 3rd party for a short custscene battle.  But when I switch back to my original party, and get ready to play with them again, here's the inventory:  3 potions of each type, and a journal!  So it didn't pick up the items I obtained while playing with them...

Is this an error you could pinpoint?

Edit:  Also I just noticed you updated your script.  Did this update fix this problem?
« Last Edit: June 08, 2008, 10:02:55 AM by gabiot »

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
No, it did not. But are you re-initializing the party?

I am assuming your initial party is $game_parties[0], but are you switching back to that party or are you recreating it? You should not recreate it.

I think that's the problem. As far as I can tell, it is not an error in the script, as the demo does not have that problem. But, if you can't figure it out, then you can either upload your project to sendspace and PM it to me to take a look at, or, if you don't feel comfortable sharing your project at this stage you can try to recreate the problem in a new project and send that to me.

Your problem is weird though, since you add those items to your party at the start of the game., so it can't be that the party has been recreated. So, maybe: do you change to another party shortly after the beginning of the gamer - remember the array counts from 0, 1, 2 ..., not 1, 2, 3... So I am thinking maybe you made the error of believing that your second party has ID 2 instead of ID 1, so when you switch back to the initial party, you actually switch to a new party... Anyway, I won't know what the actual problem is unless I can see the project.

**
Rep:
Level 84
I am already there
Thanx mate heaps of help   ;D

**
Rep: +0/-0Level 84
Jimmy Hendrix- True Guitar Hero
I was wondering if you could maybe make a little tutorial of this for the eventing, only because it really does seem complicated.
if you did may you post the link, if I just didn't overlook it 
God blessed us with food:
We killed it with poverty:

God blessed us with light:
We murdered it with global warming:

God blessed us with land:
We raped it with America:

**
Rep:
Level 84
I am already there
.... mate.... that's why there is the demo....

**
Rep: +0/-0Level 84
Jimmy Hendrix- True Guitar Hero
I understand that, but I asking for a less compilcated event example for n00b evnters like me
God blessed us with food:
We killed it with poverty:

God blessed us with light:
We murdered it with global warming:

God blessed us with land:
We raped it with America:

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
Well, the instructions and the demo seem pretty clear to me:

#      @>Script: p = $game_parties[1]
#       :      : $game_party = p
#       :      : $game_player.refresh

That's the script command that changes to a new party, and then if you want to add actors and things all you need to do is use regular event commands. Once an actor is in a party, you will not have to add him again every time though. So, if you run this event below:

#        *EXAMPLE EVENT*
#
#      @>Change Items: [Potion], + 1
#      @>Change Gold: + 50
#      @>Script: p = $game_parties[1]
#       :      : $game_party = p
#       :      : $game_player.refresh
#      @>Change Party Member: Add [Oscar], Initialize
#      @>Change Weapons: [Bastard Sword], +1
#      @>Change Gold: + 100

Then your second party has Oscar, a Bastard Sword, and 100 G. If you then run this code:

#      @>Script: p = $game_parties[0]
#       :      : $game_party = p
#       :      : $game_player.refresh

It will switch back to your first party, and if you then run this code:


#      @>Script: p = $game_parties[1]
#       :      : $game_party = p
#       :      : $game_player.refresh

It will change back to the second party, which would still have Oscar, a Bastard Sword, and 100G.

Merging is even easier:  $game_parties.merge (id_1, id_2).

Here though:

Code: [Select]
#==============================================================================
# ** Game_Interpreter
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#  Summary of Changes:
#    new method - change_party
#==============================================================================

class Game_Interpreter
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Change Party
  #    party_id : The ID of the party to change to
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def change_party (party_id = 0)
    $game_party = $game_parties[party_id]
    $game_player.refresh
  end
end

If you add this into the game, then you can use this command to change parties:

@>Script: change_party (new_party_id)
« Last Edit: August 31, 2008, 11:05:01 AM by modern algebra »

**
Rep: +0/-0Level 84
Jimmy Hendrix- True Guitar Hero
thanks for makin it a simpler
God blessed us with food:
We killed it with poverty:

God blessed us with light:
We murdered it with global warming:

God blessed us with land:
We raped it with America:

**
Rep:
Level 86
Awkward considering it's months later, but still..Thanks Modern for updating your script.

Relieves ideas through Rmvx, all the while training to become an enthusiastic pain of a technician in the system's back-side.