Party Change CMS Tutorial:
With this Tutorial even a beginner can learn to make a CMS for changing the Hero's Party in rm2k(3).
What is needed:
rm2k(3)
8 Variables (May be Inaccurate)
4 Switches
CMS Tileset
Cursor Characterset
Number/Letter Characterset (If not included with CMS Tileset.)
Start by importing your files of course. Passability doesn't matter here.
Now create and customize a map for the Party Change screen using the CMS Tileset but be sure to include:
-A Window with all your Hero Sprites
-An area to show how many party members are in your Party.
-An area to show which members are in your party.
Now on to the events:
Start by making a Parrallel Process map event on the Party Change and include and command to keep track of Party Size in one of your 8 Variables
<> Variable Oper. [####:Party Size], Size of Party
Now make events for your Heros
These have two pages, neither have any commands in them but page 1 is the Hero's sprite
and page two is the same but transparent with a condition that that hero is in the party.
Now create an event using your cursor graphic.
No commands here.
Now in the area for showing your party size /your maximum size (yes with this tut you can change the maximum party size but can't be more that 4) create an event.
Make Page 1 have no preconditions and set the graphic to a 0(zero) graphic. Now create another page in the event using a 1 graphic and a precondition of of the
variable Party Size variable being at least one. Reapeat for each value (0,1,2,3,4 leaving out numbers if you want to shorten your maximum size.)
For the area where it shows who is in your party create one event for each Hero using their Hero sprites (non-tranparent) and a preconditon of that hero being in the
party.
Wow a lot of commandless events here but now make an event with no graphic make it an auto-start and set it to change a variable for the cursor position to 0
and change the cursor event location to the location of your first hero in the selection box then delete the event.
<> Variable Oper. [####:Cursor Pos], Set 0
<> Change Event Location: Cursor (X,Y)
<> Erase Event
Now before we move to the usage event let's make common event to go to and from the map.
Common Event 1: Empty Party
Type: Call
Have commands to remove EVERY Party Member (leaving out any unremovable characters)
Common Event 2: Change Party
Type: Call
Memorize your party's position into three variables then hide the screen using either a Hide Screen or Tint Screen command. Use the Hero Sprite transparency Command and set it to transparent (as opposed to changing a Hero Graphic to a blank one). Then call the Empty Party Event, Forbid Access to the DMS, teleport to the Party Change Screen, and Show the Screen again.
<> Memorize Location [V####,V####,V####]
<> Hide Screen, Use Default
<> Sprite Tranparency: Transparent
<> Call Event: Empty Party
<> Main Menu Access: Forbid
<> Teleport: Change Party (000,000)
<> Show Screen: Use Default
Common Event 3: Finish Changing
Type: Call
<> Message: "Is this the party you want"
<> Show Choice: Yes/No
[Yes] Handler
<> Hide Screen: Use Default
<> Sprite Transparency: Opaque
<> Recall to Location (Variables you memorized in the last Common Event)
<> Show Screen: Use Default
<> Main Menu access: Allow
<>
[No] Handler
<>
End
There. Now there is only one more event to make. And this is like an engine event that brings it all together to work right.
Create a map event with 5 pages
First page: Parallel Process
Use a Key input Proccessing command to check if the arrow keys, the decision key, or the cancel key are pressed. Do not have it wait.
Have conditional branches to see which key is pressed. Do not use directions (arrow keys) that you would not use. Example if your Menu is Vertical you'd use the up and down keys and not the left and right ones. Vice versa if horizantal.
Inside each branch (no else cases) change a switch for the key and at the end of the page set the variable used in your Key Inptu command to 0.
Second Page: Autostart. Conditions: Down(Right) Key Switch
Put a conditional branch cheanking if the Cursor Pos Variable used earlier is less than 1 less than the total number of party members available with else case.
Insert your commands like this.
<> Cond. Branch Var[####:Cursor Pos] is X less
<> Comment: X = 1 less than the total available party members
<> Play Sound: (Cursor Move Effect)
<> Comment: Sound Effect is optional
<> Move Event: Cursor, Phasing Mode ON, (Commands to get to next Party Member), Phasing Mode OFF
<> Proceed with movement
<> Variable Oper. [####:Crusor Pos], + 1
End
<> Switch Oper: [####: Right Key Pressed] OFF
Third Page: AutoStart. Conditions Up(Left) Key Switch
This is basically the opposite of the second page.
<> Cond. Branch. Var [####:Cursor Pos] is 0 Greater
<> Play Sound
<> Move Event: Cursor, Phasing Mode ON, (Commands to get to previous Party Member), Phasing Mode OFF
<> Proceed with movement
<> Variable Oper. [####:Crusor Pos], - 1
End
<> Switch Oper: [####: Left Key Pressed] OFF
Fourth Page: Auto Start. Conditions: Decision Key Switch
Have Conditional Branches for each possible value of Cursor Pos as well as branches for if X hero is in party to add/remove Party Members. If you want someone to be unremovable don't have a branch for whether they are in the party or not but instead just use a message to tell the player you can't remove them.
Also turn off the Decision Key Switch at the end of the code.
Fifth Page: Auto Start. Conditions: Cancel Key Switch
Use this code it's so simple:
<> Call event: Finish Changing
<> Switch Oper [####:Cancel Key Switch] OFF
And you are done.
Now whenever you want to go change your party use this code:
<> Call Event: Change Party
Bonus Tutorial: Assigning this System to an item!
Create a Party Change Item that turns on an unused switch.
Change the Type of the Change Party Common Event to AutoStart with the trigger switch of the switch flipped by the item.
Tack a switch operations to turn the precondition switch off.
There you go.
That's the party change tutorial by a helper.
Your Welcome.
Resources Shared!!!
Tileset:
http://img214.echo.cx/my.php?image=25190ay.pngCursor 1:
http://img214.echo.cx/my.php?image=customcursor1yl.pngCursor 2+ more:
http://img214.echo.cx/my.php?image=0starchart4uc.png