Quote: @Morpheus: favourite, silly brittish spelling
blade2k » articles & tutorials

jump to:
Tutorials » Game Creation » RPG Maker 2000

Dynamic Party System 1


Reading Article
Author: Vulpes Mundi
Posted on 08/02/2004
print :: back to list

T

he Existence Triad Legacy - Dynamic Party System 1 FAQ version 1.3

Program: RPG Maker 2000
Version: 1.05b (as of writing)
System: Windows PC
Region: English (translated from Japanese)
Developed by: ASCII Corporation and Yoji Ojima (c) 2000
Translated by: Don Miguel (c) 2000

FAQ written by: Vulpes Mundi (c) 2000

Email: vulpesmundi@hotmail.com Website: http://etl.fly.to/
VCL Art Archives: http://velar.ctrl-c.liu.se/vcl/Artists/Vulpes-Mundi/
________________________________________________________________________
_________________________
___/ Table of Contents __________________________________________

--- SECTION I - FAQ Information
A. Revision History
B. About this FAQ
--- SECTION II - Scripting
C. Events 101
D. Character Script
E. Enable DPS Script
F. Script Display
--- SECTION III - End of an Era
G. Closure

________________________________________________________________________
_________________________
__________________________________________/ I. FAQ Information ___
_________________________
___/ A. Revision History __________________________________________

1. FAQ VERSIONS AND EDITS - newest to oldest
date completed version

October 10, 2000 - 1.3
Hopefully the final version. I went back and tweaked a few minor
details, errors, grammar, etc. I moved a step from the enable script to
step 11 on the character script (required). There are now 52 steps on
the character script and 8 steps on the enable script. *wipes forehead*

October 06, 2000 - 1.2
Oops. When I corrected some of the previous anomalies, I
accidentally deleted a very important portion at the end of the
character script. It would be a little difficult to make the script
work properly without it. *smiles sheepishly*

October 05, 2000 - 1.1
After a few hour nap I come back to find a number of anomalies,
which I promptly corrected. Goes to show you never to rush these things
when you're beyond tired. *grins*

October 05, 2000 - 1.0
Didn't take too long to compile the info. 'Course I didn't sleep,
and now I'm about to fall asleep on my keyboard. *blinks wearily*

October 04, 2000 - 0.1
Officially began working on the FAQ. *yawns*

2. FUTURE PLANS
I have another idea in mind. If a Dynamic Party System 2 FAQ shows
up, then you'll know that what I was thinking came to fruition. =^,^=

_________________________
___/ B. About this FAQ __________________________________________

1. THE GYST OF IT
This document is intended to offer useful information in order to
put together a simple yet dynamic party change system for an RM2k game.
In a nutshell, the Dynamic Party System incorporates a wandering
character concept. When not in the entourage, characters will randomly
move about the area where they are programmed to do so. Upon speaking
with one of the wandering characters, the player is given the choice to
add the character to the party, and consequently remove individual
characters currently in the party. This system was coded by the author,
Vulpes Mundi. You're welcomed to use and customize this script, but
please give Vulpes Mundi credit for creating it if you do.

2. COPYRIGHT NOTICE
This document was compiled (typed up) in its entirety by the
author, Vulpes Mundi. As the author, Vulpes Mundi holds all rights and
priviledges to this document. As the viewer, you have the right to view
this document for your own personal use granted you do NOT alter it,
take credit for it, give it to other people (please send them to the FAQ
online), send it in to any publications, or attempt to financially gain
from it. *insert Robocop* "Thank you for your cooperation."

If you wish to post this FAQ on your website please feel free to send me
an Email request. Odds are that if I haven't already given you
permission to do so, it's because I don't know about your website. My
apologies, but I usually stick to my regular haunts unless I'm
introduced to something different by someone. Just so you know.

Following is a list of websites where this FAQ is permitted to appear
(if you found it on another site, please send the author an Email noting
the website name and address it was found on):

The Existence Triad Legacy website http://etl.fly.to/
Don Miguel's RM2k website http://rpgmaker.chat.ru/
RPGmaker.net http://www.rpgmaker.net/

________________________________________________________________________
_________________________
__________________________________________/ II. Scripting ___
_________________________
___/ C. Events 101 __________________________________________

Though everything that is required for the dynamic party is spelled
out in black and white, it helps to understand the Events Commands that
are being used and how they work (why they make things happen the way
they do). Granted the majority of people that're going to read this
already have a decent knowledge of what's going on, it'd be proper to
clue the minority into what's going on. If there's one thing to note
about RM2k, it's that not everything about it is easy to understand. It
takes time, patience, and a lot of trial and error. Hopefully this will
assist some to `get it` just a little quicker than they would on their
own. Note that only Events Commands that are used in the Dynamic Party
System script are described in this FAQ.

1. Show Message <> Messg: (input)
The event to have messages printed on the screen. Since RM2k uses
a monotype font (all letters take up the same amount of space - in this
case 6-by-10 pixels each) the maximum character limit per line is 50,
with a limit of only 38 when using a face graphic.

2. Show Choice <> Show Choice: (1)/(2)/(3)/(4)
Gives the player options to choose from. Up to four choices can be
customized, and a fifth choice (which is always a cancel) can be added.
This event is most commonly used for typical Yes/No questions, but can
do so much more than that.

3. Change Switch <> Change Switch: [####: (name)]-(option)
Switches are used to open, close, activate, or deactivate an event.
Changing a switch is merely operating a command in order for it to do
it's specific task, as it is set. A switch that opens an event begins
that event right then and there, while closing an event ends the event
immediately. A switch that activates an event gives the player the
possibility of encountering that event. A switch that deactivates an
event removes the possibility of the party encountering that event. For
example: A guard at a bridge crossing the country's border tells the
party that "in order to cross the bridge you need the king's permission
first." So the party heads to the castle and eventually is granted
audience with the king and gets his permission. A change switch within
the king event can be used to deactivate the guard that wouldn't allow
you to cross the bridge (or perhaps something more complex). These are
just ways of describing what switches do. Other's may refer to switches
differently. A common use for switches is as a toggle. For example: A
change switch can be used to both open or close a door depending on how
many times it has been pressed. The possibilities are nearly endless.

4. Change Variable <> Variable Ch: [####: (name)] (option)
Variables are a bit awkward, if not difficult, to describe. They
can be used for many things, including the Change Switch and Fork
Conditions events. Using Change Variable will set a specific variable
to the new value that has just been entered via the Change Variable.
For example: In this FAQ a variable of the size of the party (how many
characters are currently travelling together) is used to decide whether
or not another character can be added to the party upon a party change.
If there's zero, one, two, or three party members currently together,
the variable is told to use an ELSE Case from a Fork Conditions, thereby
adding another character. If the party has four characters in it
already, it will then select the main FORK Optn case (also referred to
as an IF Case) from a Fork Conditions, and therefore will not add any
more characters. Hopefully that makes some sense.

5. Change Party <> Change Hero's Party: (name) -> (option)
This command is used to either add or remove characters from the
party. Doesn't get any deeper than that. Just keep in mind that bugs
in improper scripting can cause characters to be lost forever. The
script in this FAQ has been thoroughly tested and proven to be bug-free.

6. Fork Conditions <> FORK Optn: (options)
This is a very versatile event, when used properly. The main FORK
Optn case can be referred to as the IF Case. In other words, IF the
requirements of the case are met, it will use that option. If the
requirements aren't met, it will either use an ELSE Case (the other
choice) if it's applied, or simply ignore the event completely. The
ELSE Case is used when you want to use one OR the other option, but not
both. Example: Let's use the bridge crossing from the Change Switch
dialogue. Imagine if the guard stopping the party from crossing the
bridge is scripted with a Fork Conditions. Using the FORK Option set to
the king's permission switch turned off, the guard won't let you pass.
Using the ELSE Case, once the Switch has been turned on (when the party
received permission from the king) the guard can then be programmed to
step out of the way (using the Move Event command) when you speak to
him. Why? Because now that the king's permission switch is turned on,
the FORK Optn requirement (permission switch off) is not met, and
therefore ignored. Since there's an ELSE Case, it uses that instead.

_________________________
___/ D. Character Script __________________________________________

This chapter is devoted to walking the reader through the scripting
process on a step-by-step basis, explaining what needs to be done
specifically for each step. By the end of this chapter, it is expected
that the reader understands and has no doubt as to how to use this
dynamic party system. Here's hoping, anyway. Do note that this
specific script was put together using six characters, and that you'll
need a character script for each character that you wish to use.
Finally, don't forget to Apply your progress frequently, in case of
unforseen errors/accidents.

NOTE: A few generic labels have been used in this example of the script.
A label of (character 1), (2), (3), (4), (5), or (6) means that
everything using that label should reflect the same specific character
(ie. if Daena is character 1, all (character 1) labels will apply to
her). These are the same for every character's code and, therefore,
don't need to be altered. A label of (character #) should match the
character that the event is made for (ie. if it's Daena's event, all
(character #) labels will apply to her). Note that numerals and the #
sign in Switches follows the same concept as the character labels.


1. In your game database, make sure you have the correct amount of
characters created (if you're following this FAQ to the letter, create
six characters). You can leave the default settings or set them up as
you like. Your choice. If you wish to use a specific example, you can
set the first character graphic to use the cute kitty girl in the upper
right-hand corner of the charset Crown2 found in the default RTP. Also,
name her Daena (can you tell I like Legend of Mana?). All labels of
(character 1) and (character #) will apply to her during this example.

2. Double-click on any empty space on your map to open a new Event in
the Event Editor and name the event (character #).

3. Use Select Graphic to choose a graphic (ie. the same cute kitty
girl graphic that Daena uses). Also, set Movement Type to Random,
Frequency to 1, Animation Type to Common/With Stepping, and Movement
Speed to 3: x2 Slower (or set these to whatever you wish).

4. Set Event Start Condition to Push Key, and Position should be set
to Same Level as Hero.

5. In the Event Conditions box, check a []Switch and set it to a new
switch. Name the switch (character #).

6. Double-click on the <> in the Events Commands window. Now click
Show Message. In the box that pops up, type the following:
(character #):
"Do you want me to join the party?"

7. Double-click on the next <>. Now click Show Choice. Set Choice 1
to Yes, Choice 2 to No, and the Cancel Case to Ignore.

8. Double-click on the <> following the [No] Case. Now click Show
Message. In the box that pops up,
type the following:
(character #):
"I'll be here if you need me."

9. Double-click on the <> following the [Yes] Case. Now click Show
Message. In the box that pops up, type the following:
Remove any current party members?

10. Double-click on the next <>. Now click Show Choice. Set Choice 1
to Yes, Choice 2 to No, and the Cancel Case to Ignore.

11. Double-click on the <> following the END Case. Now click Change
Variable. Choose Variable(s) should be set to One applied to a new
variable named Party Size. In the Set row, apply the option Set. For
an Operand, select Other and set it to Party Size.

12. Double-click on the next <>. Now, on the third page, click Fork
Conditions. Set the Conditions to Variable and apply the switch named
Party Size just created on step 11. Set should be applied and have a
value of 4 with the Same option activated. Check the []Add ELSE Case.
Nothing need be done on the second page.

13. Double-click on the <> following the FORK Optn. Now click Show
Message. In the box that pops up, type the following:
You have too many party members,
currently. Remove one or more
if you wish to make changes.

14. Double-click on the <> following the ELSE Case of the FORK Optn
created on step 12. Now, on the first page, click Change Party. Set
should be Add Member. Replace Main Hero (which is a typo - it would
more appropriately read Which Character, Character To Change, or simply
Change) should be on Fix set to (character #).

15. Double-click on the next <>. Now click Change Switch. Choose One
switch, and select the switch named (character #) that was created on
step 5. Set it to OFF.

16. Double-click on the next <>. Now click Show Message. In the box
that pops up, type the following:
(character #) has joined the party.

17. Double-click on the <> following the [Yes] Case of the choice
created on step 10. Now, on the third page, click Fork Conditions. On
page 2, set the Condition to Hero (character 1) with the Hero Condition
Is in the party (is in Hero Party) applied.

18. Double-click on the <> following the FORK Optn. Now, on the first
page, click Show Message. In the box that pops up, type the following:
Remove (character 1)?

19. Double-click on the next <>. Now click on Show Choice. Set Choice
1 to Yes, Choice 2 to No, and the Cancel Case to Ignore.

20. Double-click on the <> following the [Yes] Case. Now click Change
Party. Set should be Remove Member. Replace Main Hero should be on Fix
set to (character 1).

21. Double-click on the next <>. Now click Change Switch. Choose One
switch, and select the switch named (character 1). Set it to ON.

22. Double-click on the next <>. Now click Show Message. In the box
that pops up, type the following:
(character 1) has left the party.

23. Double-click on the <> following the END Case of the FORK Optn
created on step 17. Now, on the third page, click Fork Conditions. On
page 2, set the Condition to Hero (character 2) with the Hero Condition
Is in the party (is in Hero Party) applied.

24. Double-click on the <> following the FORK Optn. Now, on the first
page, click Show Message. In the box that pops up, type the following:
Remove (character 2)?

25. Double-click on the next <>. Now click on Show Choice. Set Choice
1 to Yes, Choice 2 to No, and the Cancel Case to Ignore.

26. Double-click on the <> following the [Yes] Case. Now click Change
Party. Set should be Remove Member. Replace Main Hero should be on Fix
set to (character 2).

27. Double-click on the next <>. Now click Change Switch. Choose One
switch, and select a new switch named (character 2). Set it to ON.

28. Double-click on the next <>. Now click Show Message. In the box
that pops up, type the following:
(character 2) has left the party.

29. Double-click on the <> following the END Case of the FORK Optn
created on step 23. Now, on the third page, click Fork Conditions. On
page 2, set the Condition to Hero (character 3) with the Hero Condition
Is in the party (is in Hero Party) applied.

30. Double-click on the <> following the FORK Optn. Now, on the first
page, click Show Message. In the box that pops up, type the following:
Remove (character 3)?

31. Double-click on the next <>. Now click on Show Choice. Set Choice
1 to Yes, Choice 2 to No, and the Cancel Case to Ignore.

32. Double-click on the <> following the [Yes] Case. Now click Change
Party. Set should be Remove Member. Replace Main Hero should be on Fix
set to (character 3).

33. Double-click on the next <>. Now click Change Switch. Choose One
switch, and select a new switch named (character 3). Set it to ON.

34. Double-click on the next <>. Now click Show Message. In the box
that pops up, type the following:
(character 3) has left the party.

35. Double-click on the <> following the END Case of the FORK Optn
created on step 29. Now, on the third page, click Fork Conditions. On
page 2, set the Condition to Hero (character 4) with the Hero Condition
Is in the party (is in Hero Party) applied.

36. Double-click on the <> following the FORK Optn. Now, on the first
page, click Show Message. In the box that pops up, type the following:
Remove (character 4)?

37. Double-click on the next <>. Now click on Show Choice. Set Choice
1 to Yes, Choice 2 to No, and the Cancel Case to Ignore.

38. Double-click on the <> following the [Yes] Case. Now click Change
Party. Set should be Remove Member. Replace Main Hero should be on Fix
set to (character 4).

39. Double-click on the next <>. Now click Change Switch. Choose One
switch, and select a new switch named (character 4). Set it to ON.

40. Double-click on the next <>. Now click Show Message. In the box
that pops up, type the following:
(character 4) has left the party.

41. Double-click on the <> following the END Case of the FORK Optn
created on step 35. Now, on the third page, click Fork Conditions. On
page 2, set the Condition to Hero (character 5) with the Hero Condition
Is in the party (is in Hero Party) applied.

42. Double-click on the <> following the FORK Optn. Now, on the first
page, click Show Message. In the box that pops up, type the following:
Remove (character 5)?

43. Double-click on the next <>. Now click on Show Choice. Set Choice
1 to Yes, Choice 2 to No, and the Cancel Case to Ignore.

44. Double-click on the <> following the [Yes] Case. Now click Change
Party. Set should be Remove Member. Replace Main Hero should be on Fix
set to (character 5).

45. Double-click on the next <>. Now click Change Switch. Choose One
switch, and select a new switch named (character 5). Set it to ON.

46. Double-click on the next <>. Now click Show Message. In the box
that pops up, type the following:
(character 5) has left the party.

47. Double-click on the <> following the END Case of the FORK Optn
created on step 41. Now, on the third page, click Fork Conditions. On
page 2, set the Condition to Hero (character 6) with the Hero Condition
Is in the party (is in Hero Party) applied.

48. Double-click on the <> following the FORK Optn. Now, on the first
page, click Show Message. In the box that pops up, type the following:
Remove (character 6)?

49. Double-click on the next <>. Now click on Show Choice. Set Choice
1 to Yes, Choice 2 to No, and the Cancel Case to Ignore.

50. Double-click on the <> following the [Yes] Case. Now click Change
Party. Set should be Remove Member. Replace Main Hero should be on Fix
set to (character 6).

51. Double-click on the next <>. Now click Change Switch. Choose One
switch, and select a new switch named (character 6). Set it to ON.

52. Double-click on the next <>. Now click Show Message. In the box
that pops up, type the following:
(character 6) has left the party.

~End


You've now completed the script for one character. You'll need to
create this code for each character in the party (in the case of our
example: six times). You can either do each character script manually,
or just copy and paste the script and then change specific steps to
match another character. The steps that will need to be altered are: 2,
3, 5, 6, 8, 14, 15, and 16. Nothing else changes.

_________________________
___/ E. Enable DPS Script __________________________________________

This is the activation code for the Dynamic Party System. The
Character scripts are useless without it.


1. Double-click on any empty space on your map to open a new Event in
the Event Editor and name the event Enable DPS.

2. Use Select Graphic to choose a blank sprite (the pink square) and
set Movement Type to Stay Still.

3. Set Event Start Condition to Auto Start, and Position should be set
to Below Hero.

4. Double-click on the next <>. Now click Change Switch. Set it to
One and (character ?)*. Set it to ON.

* The (character ?) switch you set it to depends on which characters
are NOT in the party. Repeat step 4 for each of the characters that are
not included in the initial or current party (as the case may be).

5. Double-click on the next <>. Now click Change Switch. Set it to
One and apply a new switch named Enable DPS Off. Set it to ON.

6. Push the New Page button.

7. Now editing Page 2, change the Start Condition to Parallel Process.

8. In the Event Conditions box, check a []Switch and set it to the
Enable DPS Off switch that was created on step 5.

~End


Unlike the character scripts, the Enable DPS script needs only be
made once. It activates specific switches that allows the character
scripts to work properly. And that's it.

_________________________
___/ F. Script Display __________________________________________

This is the basic script as it would appear in the Events Commands
window. For convenience, step numbers have been listed to the left of
the script. The script is very customizable. Messages, face graphics,
the amount of characters used, and more, can be changed to match the
individuals liking. Keep in mind that this specific script was put
together using six characters.

NOTE: A few generic labels have been used in this example of the script.
A label of (character 1), (2), (3), (4), (5), or (6) means that
everything using that label should reflect the same specific character
(ie. if Daena is character 1, all (character 1) labels will apply to
her). These are the same for every character's code and, therefore,
don't need to be altered. A label of (character #) should match the
character that the event is made for (ie. if it's Daena's event, all
(character #) labels will apply to her). Note that numerals and the #
sign in Switches follows the same concept as the character labels.


CHARACTER SCRIPT:

6. <> Messg: (character #):
: : "Do you want me to join the party?"
7. <> Show Choice: Yes/No
:[Yes] Case
9. <> Messg: Remove any current party members?
10. <> Show Choice: Yes/No
:[Yes] Case
17. <> FORK Optn: (character 1) is in the Party
18. <> Messg: Remove (character 1)?
19. <> Show Choice: Yes/No
:[Yes] Case
20. <> Change Hero's Party: (character 1) -> Remv
21. <> Change Switch: [0001: (character 1)]-ON Set
22. <> Messg: (character 1) has left the party.
<>
:[No] Case
<>
:END Case
<>
:END Case
23. <> FORK Optn: (character 2) is in the Party
24. <> Messg: Remove (character 2)?
25. <> Show Choice: Yes/No
:[Yes] Case
26. <> Change Hero's Party: (character 2) -> Remv
27. <> Change Switch: [0002: (character 2)]-ON Set
28. <> Messg: (character 2) has left the party.
<>
:[No] Case
<>
:END Case
<>
:END Case
29. <> FORK Optn: (character 3) is in the Party
30. <> Messg: Remove (character 3)?
31. <> Show Choice: Yes/No
:[Yes] Case
32. <> Change Hero's Party: (character 3) -> Remv
33. <> Change Switch: [0003: (character 3)]-ON Set
34. <> Messg: (character 3) has left the party.
<>
:[No] Case
<>
:END Case
<>
:END Case
35. <> FORK Optn: (character 4) is in the Party
36. <> Messg: Remove (character 4)?
37. <> Show Choice: Yes/No
:[Yes] Case
38. <> Change Hero's Party: (character 4) -> Remv
49. <> Change Switch: [0004: (character 4)]-ON Set
40. <> Messg: (character 4) has left the party.
<>
:[No] Case
<>
:END Case
<>
:END Case
41. <> FORK Optn: (character 5) is in the Party
42. <> Messg: Remove (character 5)?
43. <> Show Choice: Yes/No
:[Yes] Case
44. <> Change Hero's Party: (character 5) -> Remv
45. <> Change Switch: [0005: (character 5)]-ON Set
46. <> Messg: (character 5) has left the party.
<>
:[No] Case
<>
:END Case
<>
:END Case
47. <> FORK Optn: (character 6) is in the Party
48. <> Messg: Remove (character 6)?
49. <> Show Choice: Yes/No
:[Yes] Case
50. <> Change Hero's Party: (character 6) -> Remv
51. <> Change Switch: [0006: (character 6)]-ON Set
52. <> Messg: (character 6) has left the party.
<>
:[No] Case
<>
:END Case
<>
:END Case
<>
:[No] Case
<>
:END Case
11. <> Variable Ch: [0001: Party Size] Set, Size of Party
12. <> FORK Optn: Varbl [0001: Party Size]-4
13. <> Messg: You have too many party members,
: : currently. Remove one or more
: : if you wish to make changes.
<>
:ELSE Case
14. <> Change Hero's Party: (character #) -> Add
15. <> Change Switch: [000#: (character #)]-OFF Set
16. <> Messg: (character #) has joined the party.
<>
:END Case
<>
8. :[No] Case
<> Messg: (character #):
: : "I'll be here if you need me."
<>
:END Case
<>


ENABLE DYNAMIC PARTY SYSTEM SCRIPT (Page 1):

* <> Change Switch: [0001: (character 1)]-ON Set
* <> Change Switch: [0002: (character 2)]-ON Set
* <> Change Switch: [0003: (character 3)]-ON Set
* <> Change Switch: [0004: (character 4)]-ON Set
* <> Change Switch: [0005: (character 5)]-ON Set
* <> Change Switch: [0006: (character 6)]-ON Set
<> Change Switch: [0007: Enable DPS Off]-ON Set
<>

* Optional. Do NOT apply a Change Switch for ANY characters in the
Initial Party (Init Party) or whatever the party is set up to be when
the Dynamic Party System is used. Doing so will cause the characters to
come across copies of themselves. Only use a Change Switch for each of
the characters not currently in the party.

________________________________________________________________________
_________________________
__________________________________________/ III. End of an Era ___
_________________________
___/ G. Closure __________________________________________

1. RM2k is a great resource for those of us who've always wanted to
create our own RPGs. Finally, our dreams can come to fruition. My only
real disappointment with RM2k is it's many limitations, including
graphics, sound file compatability, character creation, etc. Still,
it's the easiest RPG creation program available, and despite its
limitations can still accomplish a lot. So I'd like to take these last
words to thank ASCII Corporation and Yoji Ojima for creating a wonderful
program, and Don Miguel for taking the time and effort to translate it
into English for those of us that (unfortunately) cannot read Japanese.
My sincerest appreciation to you all. Take care.


Vulpes Mundi,
9:01 AM (PST / -8 GMT), Thursday, October 05, 2000.