Gw Temp

Menu

Tutorial - 'Another Custom Menu Tut' by Angroth

An item about RPGMaker 2000 posted on

Blurb

Just another custom menu tutorial. What makes this one more special? Because Angroth gets angry if you say it isn't.

Body

This tutorial will show you how to make a custom menu system in RPG Maker 2000. Admittedly its been done before but who says I can’t do it aswell and put my own spin on it? This does work with a custom battle system as I was using it with my latest CBS however I updated the CBS recently and it doesn’t use this menu anymore.. Sob!
Anyway, firstly this event must be (or is better in) the database common events location. Call it Menu Key and set it as a parallel process with a switch that changes a Menu Available switch on. But before you continue its best you have a custom menu graphic (picture). Here’s a quick way to make it:
- Make a NPC in your game say all the letters of the alphabet like so: AaBbCcDdEe etc
- Play your game and talk to the NPC
- Press the print screen button to copy the screen
- Enter paint program and paste picture
- Save the file as a template to make your menu (you have all the letters and the system box)

Once you’ve done that you must go onto the next common event and name it something like Cursor loop. Upon doing this you should create the following variables in advance:
1 - Cursor input
2 - Cursor Pos X
3 - Cursor Pos Y
4 - Cursor Position
After this its advisable that you create some form of pointer or cursor for your menu (a little hand with a pointing finger is cliché but always cool). As well as that you should make a variable key for menu. By using ??? I have intended that you find the specified location for where the menu is located on your screen.

The first section is as follows:

<>Disable System Menu: Disable
<>Saving: Disabled
<>Enter Password:[????:Key for menu]
<>FORK Optn:Varib[????:Key for menu]-6
<>Play SE: Beep
<>Show Picture: 1,Menu,(???,???)
<>Move Picture: 1,(???+20,???)
<>Set Screen Tone:(R050,G050,B050,S050),0.2sec
<>Call Event: Cursor Loop
<>
:END Case
<>

Remember the variables you created? Good! Cuz they’ll come in handy at this next point. So will your pointer. The second sections coding is:


<>Variable Ch:[????:Cursor Pos X]Set,??
<>Variable Ch:[????:Cursor Pos Y]Set,??
<>Variable Ch:[????:Cursor Position]Set,1
<>Show Picture: 20,Cursor,(V[Cursor Pos Y],V[Cursor Pos X])
<>Move Picture: 20,(V[Cursor Poss Y+20],V[Cursor Pos X])
<>CYCLE
<>Enter Password:[????:Cursor input]

*If you press down at this point, the following happens:

<>FORK Optn:Varb[????:[Cursor input]-1 (1 specifies the down button)
<>FORK Optn:Varb[????:[Cursor Position]-? (number of options in menu)
<>
:ELSE Case
<>Variable Ch:[????:Cursor Position]+,1
<>Variable Ch:[????:Cursor Pos Y]+,?? (Here the ?? = the space between your text)
<>Move Picture: 20,(V[Cursor Pos Y+20],V[Cursor Pos X])
<>Play SE: Beep
<>
:END Case
<>
:END Case

*If you press up at this point, the following happens:

<>FORK Optn:Varb[????:[Cursor input]-4 (4 specifies the up button)
<>FORK Optn:Varb[????:[Cursor Position]-? (number of options in menu (again))
<>
:ELSE Case
<>Variable Ch:[????:Cursor Position]-,1
<>Variable Ch:[????:Cursor Pos Y]-,?? (?? Specifies the space between your text)
<>Move Picture: 20,(V[Cursor Pos Y-20],V[Cursor Pos X])
<>Play SE: Beep
<>
:END Case
<>
:END Case

If you have done the above section then that’s very good as that’s the main weight off your back. Is all there is left is actually the selecting of the different menu options. When you think about it though its really quite pissy easy to do if you don’t know how to do it.
When you press DOWN, the enter password sets a variable to 1. And when this variable is
on 1, a FORK is triggered. FORK is simply an event that says IF X is 1 then do THIS (If Then function).
So this FORK is triggered and you change the variable "Cursor PosY" by deducting 2 and show move the picture by the variables-which have now changed by 2 less. So the picture of the Cursor moves down and the cursor position moves by 1. I don't know if you understood that because I didn’t when I just read it myself however it doesn’t really matter (as long as you get the coding correct). By the end of this you should end up learning how it all works anyway.
Now here’s the last part:
Last of all is doing the actual menu option selecting. You will probably have loads of menu options especially if you’re doing a custom combat system however I will demonstrate a simply dum arse 3 options (as most other authors do).
The first option will be called ‘MENU’ and can take you to Rm2k’s default menu system.
The second option will be called ‘SAVE’ and can..save your game??
The final option will be called ‘QUIT’ and can exit your custom menu.

Then you should continue to type just above the END CASE the following:-

<>FORK Optn:Varb[????:[Cursor Position]-1 (1=Whatever is at the top of your menu)
<>FORK Optn:Varb[????:[Cursor input]-5 (5 specifies you pressing enter button)
<>Play SE: Decision
<>Call System Menu
<>
:ENDCase

<>FORK Optn:Varb[????:[Cursor Position]-2 (2=Whatever is 2nd of your menu)
<>FORK Optn:Varb[????:[Cursor input]-5 (5 specifies you pressing enter button)
<>Play SE: Decision
<>Call Save Menu
<>BREAK Cycle
:ENDCase

<>FORK Optn:Varb[????:[Cursor input]-6 (6 specifies you pressing esc button)
<>BREAK Cycle
:ENDCase
<>
:END CYCLE
<>Set Screen Tone:(R100,G100,B100,S100),0.2sec
<>Play SE: Buzzer
<>Erase Picture: 1
<>Erase Picture: 20

Well, that’s it! It can be used for custom menu’s, custom battle system menu’s, mini games and whatever the hell you can think you could use this for. I was doing this late at night so if there’s anything wrong with it, please let me know! So, I guess that’s it for now. See you in my next tut!