Gw Temp

Menu

Tutorial - 'FF CMS' by kcin139

An item about RPGMaker 2000 posted on

Blurb

How to create a custom menu system similar to the one used in the final fantasy games

Body

===========================================================================================
How To Make a custom menu with RM2K better than the ones in FF6, FF7, FF8, FF9 & FF10 !
===========================================================================================
Go to /Data base/Common Events/Any number/ and call an event
"Key for menu" set it to parallel process with a switch saying
"Menu available"-ON now click on the white bit and type in the
following (N.B. first make another common event called "Cursor
loop" and set it on call. Then make a variable called Key for
menu. Where there is a ?? means try out numbers(this is whereabouts
your menu appears on the screen) The hardest thing you have to do is
draw your own custom menu-make it pretty and include the text on the picture
also space out the text EVENLY-it doesn't matter how far apart though (='_;=)

===========================================================================================
Now this is the code for PART1:-
===========================================================================================

<>Disable System Menu: Disable
<>Disable Save: Disable
<>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
<>
===========================================================================================
Done that? good now on the 2nd common event labelled "Cursor loop"
type in the following code; but first make some variables saying;
===========================================================================================

1.Cursor input
2.Cursor Poss X
2.Cursor Poss Y
4.Cursor Possition

===========================================================================================
Also find/draw a small picture of a cursor or pointer.
Now this is the code for PART 2:-
===========================================================================================

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

<>Note:===================================================================================
<>Note: WHEN YOU PRESS DOWN-HERE IS WHAT HAPPENS...
<>Note:===================================================================================

<>FORK Optn:Varb[????:[Cursor input]-1 (Here the 1 represents the DOWN key)
<>FORK Optn:Varb[????:[Cursor Possition]-? (Here the?=How many options you have)
<>
:ELSE Case
<>Variable Ch:[????:Cursor Possition]+,1
<>Variable Ch:[????:Cursor Poss Y]+,?? (Here the ?? = the space between your text)
<>Move Picture: 20,(V[Cursor Poss Y+20],V[Cursor Poss X])
<>Play SE: Beep
<>
:END Case
<>
:END Case

<>Note:===================================================================================
<>Note: WHEN YOU PRESS UP-HERE IS WHAT HAPPENS...
<>Note:===================================================================================

<>FORK Optn:Varb[????:[Cursor input]-4 (Here the 4 represents the UP key)
<>FORK Optn:Varb[????:[Cursor Possition]-? (Here the?=How many options you have)
<>
:ELSE Case
<>Variable Ch:[????:Cursor Possition]-,1
<>Variable Ch:[????:Cursor Poss Y]-,?? (Here the ?? = the space between your text)
<>Move Picture: 20,(V[Cursor Poss Y-20],V[Cursor Poss X])
<>Play SE: Beep
<>
:END Case
<>
:END Case


===========================================================================================
If you have done all that- i'm impressed! You have done the really hard stuff! That is
really complicated RM2K stuff but you still havent managed to do the "Choosing of
options...This isn't really that bad but i thought you should know whats going on...
When you press DOWN, the enter password sets a variable to 1. And when this variable is
on 1. a FORK triggures (A fork condition means "If a variable is ?[a number] then do this."
So this FORK triggures...Now heres the clever bit...You change the variable "Cursor Poss
Y" by minus 2 and show move the picture by the variables-which have now changed by minus 2
So the picture of the Cursor moves down and the cursor possition moves by 1...Wow. I don't
expect you to understand a word I say but so long as you have typed the code as aboth...
You can move onto the Final Part Step 3!!!-The cursor options and choosing!!!
===========================================================================================

Lets say yor menu has three commands:-

1.Menu (go's to the origanal RM2K menu from your own)
2.Save (Saves the game durr)
3.Exit (What could that do? Exit the menu maby?)

Then you should continue to type just a bove the END CYCLE the following:-
===========================================================================================

<>FORK Optn:Varb[????:[Cursor Possition]-1 (What ever is at the top of your menu, case)
<>FORK Optn:Varb[????:[Cursor input]-5 (When you press enter)
<>Play SE: Decision
<>Call System Menu
<>
:ENDCase

<>Note:===================================================================================

<>FORK Optn:Varb[????:[Cursor Possition]-1 (What ever is 2nd of your menu, case)
<>FORK Optn:Varb[????:[Cursor input]-5 (When you press enter)
<>Play SE: Decision
<>Call Save Menu
<>BREAK Cycle
:ENDCase

<>Note:===================================================================================


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

==========================================================================================
Congratulations-If you made one!! you can have as many options as you like and to make
it real neat you could move the pictures when you click on the options or play many SE's
I made a side-view battle system with custom menu's and it's really neat but a lot more
time consuming and complicated :( check out a game called kindred saga- it has the
ultimeate systems and menu's in it and good luck on making your own.
==========================================================================================

Here is a all in all source code of parts 2&3!















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

<>Note:===================================================================================
<>Note: WHEN YOU PRESS DOWN-HERE IS WHAT HAPPENS...
<>Note:===================================================================================

<>FORK Optn:Varb[????:[Cursor input]-1 (Here the 1 represents the DOWN key)
<>FORK Optn:Varb[????:[Cursor Possition]-? (Here the?=How many options you have)
<>
:ELSE Case
<>Variable Ch:[????:Cursor Possition]+,1
<>Variable Ch:[????:Cursor Poss Y]+,?? (Here the ?? = the space between your text)
<>Move Picture: 20,(V[Cursor Poss Y+20],V[Cursor Poss X])
<>Play SE: Beep
<>
:END Case
<>
:END Case

<>Note:===================================================================================
<>Note: WHEN YOU PRESS UP-HERE IS WHAT HAPPENS...
<>Note:===================================================================================

<>FORK Optn:Varb[????:[Cursor input]-4 (Here the 4 represents the UP key)
<>FORK Optn:Varb[????:[Cursor Possition]-? (Here the?=How many options you have)
<>
:ELSE Case
<>Variable Ch:[????:Cursor Possition]-,1
<>Variable Ch:[????:Cursor Poss Y]-,?? (Here the ?? = the space between your text)
<>Move Picture: 20,(V[Cursor Poss Y-20],V[Cursor Poss X])
<>Play SE: Beep
<>
:END Case
<>
:END Case
<>FORK Optn:Varb[????:[Cursor Possition]-1 (What ever is at the top of your menu, case)
<>FORK Optn:Varb[????:[Cursor input]-5 (When you press enter)
<>Play SE: Decision
<>Call System Menu
<>
:ENDCase

<>Note:===================================================================================

<>FORK Optn:Varb[????:[Cursor Possition]-1 (What ever is 2nd of your menu, case)
<>FORK Optn:Varb[????:[Cursor input]-5 (When you press enter)
<>Play SE: Decision
<>Call Save Menu
<>BREAK Cycle
:ENDCase

<>Note:===================================================================================


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