Gw Temp

Menu

Tutorial - 'CMS - advanced' by Shadow Blade

An item about RPGMaker 2000 posted on

Blurb

A helpful tutorial on creating custom menu systems, very indepth

Body

Disclaimer: I do not claim to have made up the idea of a custom menu system.

If I have copied anyone else's work, I apologise.

The only thing I claim to have done is writing this tutorial after fugureing out how to make a cms by my self.

I did not copy anyone else's tutorial purposely.



Distribution: I don't care. And If I did, there isn't anything I could do about it. Just keep my name on it.



Before you begin, make sure to have these things:



1. idraw 3.32

2. rpg maker 2000 (duh)

3. Microsoft Paint (Who doesn't have it?)

4. Time

5. Patience



Open idraw. Select file, new. Make it a 256 color, 320x240 bitmap or png.

Open Paint, use the text tool to write this in 8-point Arial font:



Return to game

Save game

Quit Game



Use the select tool in paint to copy/paste the words into idraw. You will notice the white box following

the letters around gets in your way, so right-click on the white part of the selection and push "delete color."

That will get rid of the white leaving just the words. Make sure that the top left pixel in the letter "R" in

"Return to game" is 19 pixels down from the top and 17 pixels from the left. Trust me, this matters.



Make a 73x12 picture. It needs to have a one pixel border and the rest is the transparent color. Save it as "cursor."



Create a new project in rm2k. Go to the database and create a new common event. Call it "go to menu."

It will be parallel process. Set the appearance condition to a switch; call it "not at menu."

Import the picture into the "panorama" folder. Make a map that is 20x15 and only uses the blank tile,

the paralax background will be the picture you just made. One more thing set the music to "no change."

Back to the common event. The programming should look like this:



Disable System Menu Disable

Enter Password: Var[0001:callmenu]

If Var (0001:callmenu) 6

Memorize Place: Map[0002], X[0003], Y[0004]

Change Hero Walk Graphic: (Alex) Future 1-4

Teleport: 0002:Menu (001,014)

Change Switch: Var[0001: not at menu] Switch OFF

Change Var: Var[cursorpos] (Set)- 1

:End Case



This event takes the player to the menu map. The first action disables the default menu. The second is an enter password

command. Check all the box next to "cancel" and "wait until key hit." What the enter password command does is this:

it changes a variable depending on what key the player hits. If the person pushes "esc" it will change the variable to 6;

enter=5, up=4, dn=1, L=2, R=3. The next step is a fork condition that checks weather or not the variable "callmenu" is

equal to six. (It checks if the person pressed esc.) Inside the fork condition is a memorize place command.

Set the map memorize to variable 2:callmenu map, set the x coordinate to variable 3: callmenu x, and the y coordinate

to variable 4: callmenu y. Next, make the hero invisible with a change hero walk graphic command. Finally teleport the

hero to any place on the map menu and turn the switch "not at menu" to off.



8. Now the fun begins. Make a parallel process map event on the menu map. Make it invisible; it looks better that way.

Insert a loop into the coding box (it is labeled cycle on the pop-up menu) and OUTSIDE the loop put a label.

Inside the loop put three fork conditions. One will be dependent on the variable cursor pos being 1, the other: 2, and

the last: 3. Cursor pos is the variable that tells where the cursor is located.



So far the coding should look like this:



Loop

If var (cursorpos) 1



:End Case

If var (cursorpos) 2



:End Case

If var (cursorpos) 3



:End Case

:End Loop

Label 1#



Add in the input password command and a show picture command for each fork condition. Copy the x and y coordinates exactly.

This is why it was important to paste the text in to the panorama exactly like I told you.



Loop

If var (cursorpos) 1

Show Picture: ID: 1-Cursor-(52,24)

Enter Password: Var[Cursorinput]



:End Case

If var (cursorpos) 2

Show Picture: ID: 1-Cursor-(52,38)

Enter Password: Var[Cursorinput]



:End Case

If var (cursorpos) 3

Show Picture: ID: 1-Cursor-(52,52)

Enter Password: Var[Cursorinput]



:End Case

:End Loop

Label 1#



Next add in the fork conditions under each of the existing fork conditions. Under the "if cursorinput is 6"

put a go to label and set it to one.



Loop

If var (cursorpos) 1

Show Picture: ID: 1-Cursor-(52,24)

Enter Password: Var[Cursorinput]

If var (cursorinput) 1



:End Case

If var (cursorinput) 4



:End Case

If var (cursorinput) 5



:End Case

If var (cursorinput) 6

Goto Label 1#



:End Case

:End Case

If var (cursorpos) 2

Show Picture: ID: 1-Cursor-(52,38)

Enter Password: Var[Cursorinput]

If var (cursorinput) 1



:End Case

If var (cursorinput) 4



:End Case

If var (cursorinput) 5



:End Case

If var (cursorinput) 6

Goto Label 1#



:End Case

:End Case

If var (cursorpos) 3

Show Picture: ID: 1-Cursor-(52,52)

Enter Password: Var[Cursorinput]

If var (cursorinput) 1



:End Case

If var (cursorinput) 4



:End Case

If var (cursorinput) 5



:End Case

If var (cursorinput) 6

Goto Label 1#



:End Case

:End Case

:End Loop

Label 1#



Now insert some change variable commands. Remember 1=down 4=up 5=enter 6=esc



Loop

If var (cursorpos) 1

Show Picture: ID: 1-Cursor-(52,24)

Enter Password: Var[Cursorinput]

If var (cursorinput) 1

Change var var: [cursorpos] (set) 2



:End Case

If var (cursorinput) 4

Change var var: [cursorpos] (set) 3



:End Case

If var (cursorinput) 5



:End Case

If var (cursorinput) 6

Goto Label 1#



:End Case

:End Case

If var (cursorpos) 2

Show Picture: ID: 1-Cursor-(52,38)

Enter Password: Var[Cursorinput]

If var (cursorinput) 1

Change var var: [cursorpos] (set) 3



:End Case

If var (cursorinput) 4

Change var var: [cursorpos] (set) 1



:End Case

If var (cursorinput) 5



:End Case

If var (cursorinput) 6

Goto Label 1#



:End Case

:End Case

If var (cursorpos) 3

Show Picture: ID: 1-Cursor-(52,52)

Enter Password: Var[Cursorinput]

If var (cursorinput) 1

Change var var: [cursorpos] (set) 1



:End Case

If var (cursorinput) 4

Change var var: [cursorpos] (set) 2



:End Case

If var (cursorinput) 5



:End Case

If var (cursorinput) 6

Goto Label 1#



:End Case

:End Case

:End Loop

Label 1#



Now add the special functions for each position. These will go under the "5" forks. Also add the coding at label one.

This will include a go to memorized place and a change hero walk graphic.



Loop

If var (cursorpos) 1

Show Picture: ID: 1-Cursor-(52,24)

Enter Password: Var[Cursorinput]

If var (cursorinput) 1

Change var var: [cursorpos] (set) 2



:End Case

If var (cursorinput) 4

Change var var: [cursorpos] (set) 3



:End Case

If var (cursorinput) 5

Goto label 1#



:End Case

If var (cursorinput) 6

Goto Label 1#



:End Case

:End Case

If var (cursorpos) 2

Show Picture: ID: 1-Cursor-(52,38)

Enter Password: Var[Cursorinput]

If var (cursorinput) 1

Change var var: [cursorpos] (set) 3



:End Case

If var (cursorinput) 4

Change var var: [cursorpos] (set) 1



:End Case

If var (cursorinput) 5

Call Save Menu

:End Case

If var (cursorinput) 6

Goto Label 1#



:End Case

:End Case

If var (cursorpos) 3

Show Picture: ID: 1-Cursor-(52,52)

Enter Password: Var[Cursorinput]

If var (cursorinput) 1

Change var var: [cursorpos] (set) 1



:End Case

If var (cursorinput) 4

Change var var: [cursorpos] (set) 2



:End Case

If var (cursorinput) 5

Goto title screen

:End Case

If var (cursorinput) 6

Goto Label 1#



:End Case

:End Case

:End Loop

Label 1#

Goto memorized place: V[0002] (V[0003] V[0004])

Change Hero Walk Graphic: (Alex)Chara1-1

Change switch: var[0001:not at menu] switch on



Please note that you will have to turn the switch "not at menu" on manually. If you have questions and if you

are reading this at Gaming World, post below. I may have mercy on you and read the comments.