Gw Temp

Menu

Tutorial - 'Advanced Picture-Based CMS' by USSJGohan

An item about RPGMaker 2000 posted on

Blurb

If you've ever stared in awe at those wonderfully-made custom menu systems...well...stare no more! USSJTrunks is here to show you how to make those cool picture-based CMSes.

Body

Ok, bear with me, this is my first tutorial.

Custom Menu System (CMS) for RM2k

To do this tutorial you need a basic knowledge of;

Variables
Fork Conditions
Switches
Common Events

If you don't know these give this tutorial a try as I will try to explain things more.

Ok, open up Rm2k and open up your project.
Press F8 (to enter the database) and click on the last tab "common events".

You need to make three common events.


And an event on each page the menu is allowed.


Event On Page Menu Is allowed.

**Event On Page**

Click Switch and make it "0001: Stop Move"
Inside make it memorize BGM
Make it Auto Start

Write lets explain what that does, memorize BGM on Auto Start stops the sprite from moving, this is always good if you don't want your sprite to move while accessing the menu, the switch is so that it only turns on when menu is accessed (you do what your sprite to be moving when the menu isn't on!).


**Common Event: 1**

Name : Key for menu.
Event Start Condition = Parallel Process.
Appearance Condition Switch = (Make a switch, 0002: Menu Available) 0002: Menu Available

Events Commands:
<>Enter Password:[0001: Key for menu]
<>FORK Optn:Varb[0001: Key for menu]-6
<>Play SE: Cursor2
<>Set ScreenTone:(R050,G050,B050,S050),2.0secs(W)
<>Call Event: Cursor cycle (will not display as cursor cycle till event 2 is made so click the second one down.)
<>
:END Case
<>
**END OF COMMON EVENT.**

Ok, lets explain this, Enter Password choose the variable to 0001, make sure that only "Wait Till Key Hit" and "Cancel (6)" are checked. This makes if the cancel button is pressed it stores the number "6" into variable number "1".
The Fork condition makes it that if the number in variable 0001 is "same" to six (the cancel button) it sets off whats inside. Do not be fooled by the code its not -6 it is equal to 6.
Play Sound Effect, doesn't need explaining.
Set ScreenTone changes the colour of the screen.
Call Event turns on the menu and will call everything in the next event we are going to make.


**Common Event: 2** (The hard/long one!)

Ok before we start you better make these variables.

0002: cursor input
0003: cursor poss x
0004: cursor poss y
0005: cursor poss

Ok here we go.
Name : Cursor cycle
Event Start Condition = Call.
Appearance Condition Switch = **Nothing**

<>Show Picture: 1, Menu For Game, (160,120) **Magnification 0**
<>Move Picture: 1, (160,120),1.0sec(W) **Magnification 100**
<>Change Switch:[0001:Stop Move]-ON Set **Change Switch makes the event on your page turn on and stops the sprite from moving.**
<>Variable Ch:[0003: cursor poss x] Set, 160
<>Variable Ch:[0004: cursor poss y] Set, 110
<>Variable Ch:{0005: cursor poss] Set, 1
<>Show Picture: 20, **your pointer/cursor pic**, (V[0003],V[0004]) **Magnification 25** **Instead Of position click variables and for x = 0003, y = 0004.**
<>Move Picture: 20, (V[0003],V[0004]),1.0sec(W) **Magnification 100** **Instead Of position click variables and for x = 0003, y = 0004.**
<>CYCLE
<>Enter Password:[0002: cursor input]
**This is the code for pressing down**
<>Fork Optn:Varbl[0002:cursor input]-1 **1=Down** **No ELSE Case** **The - does not mean minus! This means if cursor input is the "same" as "1" not "-1"
<>Fork Optn:Varbl[0005:cursor poss]-3 **With ELSE Case!** **3 = Three choices**
<> **Do Not add anything**
:ELSE Case
<>Variable Ch:[0005: cursor poss] +, 1
<>Variable Ch:[0004: cursor poss y]+, 51 **This can be changed according to your menu, its how for the cursor goes down**
<>Move Picture: 20, (V[0003],V[0004]),1.0(W)
<>Play SE: Cursor2
<>
:END Case
<>
:End Case
**This is the code for pressing up**
<>Fork Optn:Varbl[0002:cursor input]-4 **1=Down** **No ELSE Case** **The - does not mean minus! This means if cursor input is the "same" as "1" not "-1"
<>Fork Optn:Varbl[0005:cursor poss]-1 **With ELSE Case!** **1 = DON'T CHANGE!**
<> **Do Not add anything**
:ELSE Case
<>Variable Ch:[0005: cursor poss] -, 1 **That is a minus**
<>Variable Ch:[0004: cursor poss y]+, 51 **That is a minus ** **This can be changed according to your menu, its how for the cursor goes up, it should be the same as down**
<>Move Picture: 20, (V[0003],V[0004]),1.0(W)
<>Play SE: Cursor2
<>
:END Case
<>
:End Case
**This is the code for option 1, my option 1 opens the menu**
<>FORK Optn:Varbl[cursor poss]-1 **cursor position is 1** **NOT MINUS!**
<>FORK Optn:Varbl[cursor input]-5 **5 = Decision Key** **NOT MINUS!**
<>Play SE: Desision1
<>Call Menu System **Page three "call menu"**
<>Break cycle
:END Case
<>
:END Case
**This is the code for option 2, my option 2 opens the save menu**
<>FORK Optn:Varble[cursor poss]-2 **Cursor Position is 2** **NOT MINUS!**
<>FORK Optn:Varbl[cursor input]-5
<>Play SE: Desision1
<>Call Save Menu **Page three "Call Save Menu"
<>Break cycle
:END Case
<>
:END Case
**This is the code for option 3, my option 3 closes the CMS**
<>FORK Optn:Varble[cursor poss]-3 **Cursor Position is 3** **NOT MINUS!**
<>FORK Optn:Varbl[cursor input]-5
<>Change Switch : [0001:Stop Move]-OFF Set
<>Erase Picture : 20
<>Erase Picture : 1
<>BREAK Cycle
<>
:END Case
<>
:END Case
<>
:END Cycle
<>Change the color to 100 on all areas.
erase picture 1,2,3,20
:END Case
<>
:END Case