Robin_Gravel |
Hi folks
I wish to add a command list in my game.
In game.sh:
// Menu IDs eg. $302 means third menu, second item (define MENU_ABOUT $101) (define MENU_HELP $102) (define MENU_LIST $103) // added this one (define MENU_RESTART $201) (define MENU_SAVE $202) (define MENU_RESTORE $203) (define MENU_QUIT $205) (define MENU_PAUSE $301) (define MENU_INVENTORY $302) (define MENU_RETYPE $303) (define MENU_COLOURS $305) (define MENU_CHANGESPEED $401) (define MENU_FASTERSPEED $403) (define MENU_NORMALSPEED $404) (define MENU_SLOWERSPEED $405) (define MENU_VOLUME $501) (define MENU_TOGGLESOUND $502)
|
Robin_Gravel |
In menubar.sc:
/****************************************************************************** menubar.sc Contains the customized Menubar class. This is the script you modify if you want to customize the menu. ******************************************************************************/ (include "sci.sh") (include "game.sh") /******************************************************************************/ (script MENUBAR_SCRIPT) /******************************************************************************/ (use "main") (use "controls") (use "gauge") (use "sound") (use "user") /******************************************************************************/ (class TheMenuBar of MenuBar (properties state 0 ) (method (init) AddMenu( " " "About Template`^a:"+ "Help`#1" "Command list`#6" ) AddMenu( " File " "Restart Game`#9:"+ "Save Game`#5:"+ "Restore Game`#7:"+ "--! :"+ "Quit`^q" ) AddMenu( " Action " "Pause Game`^p:"+ "Inventory`^I:"+ "Retype`#3:"+ "--! :"+ "Colors`^c" ) AddMenu( " Speed " "Change...`^s:"+ "--!:"+ "Faster`+:"+ "Normal`=:"+ "Slower`-" ) (if(DoSound(sndSET_SOUND)) AddMenu( " Sound " "Volume...`^v:"+ "Turn Off`#2=1" ) )(else AddMenu( " Sound " "Volume...`^v:"+ "Turn On`#2=1" ) ) (if(< Graph(grGET_COLOURS) 9) SetMenu(MENU_COLOURS 32 0) )(else SetMenu(MENU_COLOURS smMENU_SAID '/color') ) SetMenu(MENU_SAVE smMENU_SAID 'save[/game]') SetMenu(MENU_RESTORE smMENU_SAID 'restore[/game]') SetMenu(MENU_RESTART smMENU_SAID 'restart[/game]') SetMenu(MENU_QUIT smMENU_SAID 'done[/game]') SetMenu(MENU_PAUSE smMENU_SAID 'delay[/game]') SetMenu(MENU_INVENTORY smMENU_SAID 'all') ) (method (handleEvent pEvent) (var menuItem, hGauge, newSpeed, newVolume, wndCol, wndBack, hPause) = menuItem (super:handleEvent(pEvent)) (switch(menuItem) (case MENU_ABOUT Print( " Template Game\n"+ " By Brian Provinciano" #title "About" ) ) (case MENU_HELP Print( "<Put your how to play stuff here>" #title "How To Play" ) ) (case MENU_LIST Print( "LOOK OPEN CLOSE SPEAK TALK" #title "Command list" ) ) (case MENU_RESTART (if(Print( "Are you serious? You really want to start all the way back at the beginning again?" #title "Restart" #font gDefaultFont #button "Restart" 1 #button " Oops " 0 ) ) (send gGame:restart()) ) ) (case MENU_RESTORE (send gGame:restore()) )
... to be continued
|
Robin_Gravel |
(case MENU_SAVE (send gGame:save()) ) (case MENU_QUIT (if(Print( "Do you really want to quit?" #title "Quit" #font gDefaultFont #button " Quit " 1 #button " Oops " 0 ) ) = gQuitGame TRUE ) ) (case MENU_PAUSE = hPause (Sound:pause()) Print("Game Paused") (Sound:pause(hPause)) ) (case MENU_INVENTORY (if(PrintCantDoThat($400)) (send gInv:showSelf(gEgo)) ) ) (case MENU_RETYPE (send pEvent: claimed(FALSE) type(evKEYBOARD) message( (User:echo) ) ) ) (case MENU_COLOURS = wndCol 16 (while(>u wndCol 15 and <> wndCol -1) = wndCol GetNumber("New Text Color: (0-15)") ) (if(<> wndCol -1) = wndBack 16 (while(<> wndBack -1 and >u wndBack 15 or == wndCol wndBack) = wndBack GetNumber("New Background Color: (0-15)") ) (if(<> wndBack -1) = gWndColor wndCol = gWndBack wndBack (send gTheWindow: color(gWndColor) back(gWndBack) ) ) ) ) (case MENU_CHANGESPEED = hGauge (Gauge:new()) = newSpeed (send hGauge: text("Game Speed") description("Use the mouse or the left and right arrow keys to select the game speed.") higher("Faster") lower("Slower") normal(NORMAL_SPEED) doit(- 15 gSpeed) ) (send gGame:setSpeed(- 15 newSpeed)) DisposeScript(GAUGE_SCRIPT) ) (case MENU_FASTERSPEED (if(gSpeed) (send gGame:setSpeed(--gSpeed)) ) ) (case MENU_NORMALSPEED (if(gSpeed) (send gGame:setSpeed(12)) ) ) (case MENU_SLOWERSPEED (if(< gSpeed 15) (send gGame:setSpeed(++gSpeed)) ) ) (case MENU_VOLUME = hGauge (Gauge:new()) = newVolume (send hGauge: text("Sound Volume") description("Use the mouse or the left and right arrow keys to adjust the volume.") higher("Louder") lower("Softer") normal(15) doit(DoSound(sndVOLUME newVolume)) ) DoSound(sndVOLUME newVolume) DisposeScript(GAUGE_SCRIPT) ) (case MENU_TOGGLESOUND ToggleSound() ) ) ) ) /******************************************************************************/ (procedure public (ToggleSound) (var SOUND_OFF) = SOUND_OFF DoSound(sndSET_SOUND) = SOUND_OFF DoSound( sndSET_SOUND not(SOUND_OFF) ) (if(SOUND_OFF) SetMenu(MENU_TOGGLESOUND smMENU_TEXT "Turn On") )(else SetMenu(MENU_TOGGLESOUND smMENU_TEXT "Turn Off") ) )
I have no problem when compiling but nothing happens in the game by pressing F6 or it doesn't show in the menu.
What's wrong?
Robin Gravel
PS: sorry but I got 'you're message is too long
|
AGI1122 |
Change this:
AddMenu( " " "About Template`^a:"+ "Help`#1" "Command list`#6" )
To this:
AddMenu( " " "About Template`^a:"+ "Help`#1:"+ "Command list`#6" )
You forgot the + after the " which is why it doesn't show anything or do anything.
|
Robin_Gravel |
Thanks Chris
But it still not works.
Robin Gravel
|
AGI1122 |
I modified my code, didn't notice a missing : before the " until just now.
|
Robin_Gravel |
Thanks again Chris
I made another mistake in my code. I fixed it.
Here the correct code:
AddMenu( " " "About Template`^a:"+ "Help`#1:" "Command list`#6:" )
My game works.
Robin Gravel
|