############### ### README ### ############### # This is a script for the game "Oni" created by Bungie. # # How to start: # # Look for your Oni folder on your hard disk. It includes a folder named "GameDataFolder", which contains an other folder named "Igmd". # Open this folder. In it you find the different level folders for the scripts (the first folder is named "Airport", the last folder "tctf_ii"). # Put this script into a level folder and add "menu2" (without the " ") at the beginning of the main function in the main.bsl file. # # If you want to have this script in all levels, go to your Igmd folder and create a new folder named "global" (without the " "). # Put the script in this new folder and add "menu2" (without the " ") at the beginning of the main function in every main.bsl file. # # Attention: Don't put this script (oni_menu2.bsl) and the first menu script (oni_menu.bsl) together into a folder. # # Run back and punch to activate the menu. # # Use the movement keys to navigate. # # Oni doesn't remember the state of a variable. For example, if "break all" is on, and you load a new savepoint or a new level, # "break all" will switch to off. ################# ### VARIABLES ### ################# ### MAIN VARIABLES ### var int var_menu_active; var int var_menu = 1; var int var_menu_1 = 0; var int var_menu_2 = 0; var int var_menu_3 = 0; var int var_menu_4 = 0; var int var_menu_5 = 0; var int var_menu_6 = 0; var int var_menu_7 = 0; var int var_menu_8 = 0; var int var_menu_9 = 0; var int var_menu_10 = 0; var int var_menu_11 = 0; var int var_menu_12 = 0; var int var_menu_13 = 0; var int var_menu_14 = 0; var int var_menu_15 = 0; var int var_menu_16 = 0; ### KEY CHECK VARIABLES (chr_wait_animtype needs these to get not forked twice or more) ### var int var_up_in_use; var int var_down_in_use; var int var_switch_in_use; var int var_jump_in_use; ################## ### START MENU ### ################## func void menu2(void) { fork pre_menu_start } func void pre_menu_start(void) { chr_pin_character = 0 p3_everything_breakable = 0 door_ignore_locks = 0 fast_mode = 0 m3_fill_solid = 1 m3_shade_vertex = 1 chr_debug_characters = 0 show_performance = 0 gs_show_ui = 1 ai2_shownames = 0 ai2_showhealth = 0 fork start_menu } func void start_menu(void) { chr_wait_animtype 0 run_back_punch ai2_allpassive 1 var_menu_active = 1 chr_pin_character = 1 fork exit_menu if(var_up_in_use ne 1) fork menu_up if(var_down_in_use ne 1) fork menu_down if(var_switch_in_use ne 1) fork menu_switch fork show_menu } ######################## ### MESSAGE FUNCTION ### ######################## func void show_menu(void) { if(var_menu_active eq 1) { dmsg "[r.Oni Menu 2]" if(var_menu eq 1) { dmsg "[g.1. camera rotation in degrees]" if(var_menu_1 eq 0) dmsg "[y.reset][b. - 90 - 180 - 270]" if(var_menu_1 eq 1) dmsg "[b.reset - ][y.90][b. - 180 - 270]" if(var_menu_1 eq 2) dmsg "[b.reset - 90 - ][y.180][b. - 270]" if(var_menu_1 eq 3) dmsg "[b.reset - 90 - 180 - ][y.270]" } if(var_menu eq 2) { dmsg "[g.2. no clipping]" if(var_menu_2 eq 0) dmsg "[b.on -][y. OFF]" if(var_menu_2 eq 1) dmsg "[y.ON][b. - off]" } if(var_menu eq 3) { dmsg "[g.3. slowmotion]" if(var_menu_3 eq 0) dmsg "[b.on -][y. OFF]" if(var_menu_3 eq 1) dmsg "[y.ON][b. - off]" } if(var_menu eq 4) { dmsg "[g.4. AI ignores you]" if(var_menu_4 eq 0) dmsg "[b.on -][y. OFF]" if(var_menu_4 eq 1) dmsg "[y.ON][b. - off]" } if(var_menu eq 5) { dmsg "[g.5. break all]" if(var_menu_5 eq 0) dmsg "[b.on -][y. OFF]" if(var_menu_5 eq 1) dmsg "[y.ON][b. - off]" } if(var_menu eq 6) { dmsg "[g.6. unlock doors]" if(var_menu_6 eq 0) dmsg "[b.on -][y. OFF]" if(var_menu_6 eq 1) dmsg "[y.ON][b. - off]" } if(var_menu eq 7) { dmsg "[g.7. unstoppable]" if(var_menu_7 eq 0) dmsg "[b.on -][y. OFF]" if(var_menu_7 eq 1) dmsg "[y.ON][b. - off]" } if(var_menu eq 8) { dmsg "[g.8. omnipotent]" if(var_menu_8 eq 0) dmsg "[b.on -][y. OFF]" if(var_menu_8 eq 1) dmsg "[y.ON][b. - off]" } if(var_menu eq 9) { dmsg "[g.9. invincible]" if(var_menu_9 eq 0) dmsg "[b.on -][y. OFF]" if(var_menu_9 eq 1) dmsg "[y.ON][b. - off]" } if(var_menu eq 10) { dmsg "[g.10. fast mode]" if(var_menu_10 eq 0) dmsg "[b.on -][y. OFF]" if(var_menu_10 eq 1) dmsg "[y.ON][b. - off]" } if(var_menu eq 11) { dmsg "[g.11. show textures]" if(var_menu_11 eq 0) dmsg "[y.ON][b. - off]" if(var_menu_11 eq 1) dmsg "[b.on -][y. OFF]" } if(var_menu eq 12) { dmsg "[g.12. show shade vertex]" if(var_menu_12 eq 0) dmsg "[y.ON][b. - off]" if(var_menu_12 eq 1) dmsg "[b.on -][y. OFF]" } if(var_menu eq 13) { dmsg "[g.13. show UI]" if(var_menu_13 eq 0) dmsg "[y.ON][b. - off]" if(var_menu_13 eq 1) dmsg "[b.on -][y. OFF]" } if(var_menu eq 14) { dmsg "[g.14. show info box]" if(var_menu_14 eq 0) dmsg "[b.on -][y. OFF]" if(var_menu_14 eq 1) dmsg "[y.ON][b. - off]" } if(var_menu eq 15) { dmsg "[g.15. show names]" if(var_menu_15 eq 0) dmsg "[b.on -][y. OFF]" if(var_menu_15 eq 1) dmsg "[y.ON][b. - off]" } if(var_menu eq 16) { dmsg "[g.16. show health]" if(var_menu_16 eq 0) dmsg "[b.on -][y. OFF]" if(var_menu_16 eq 1) dmsg "[y.ON][b. - off]" } dmsg "[o.MOVE][ to navigate - ][o.JUMP][ to exit]" sleep 15 fork show_menu } } #################################### ### MOVE UP AND DOWN FUNCTIONS ### #################################### func void menu_up(void) { var_up_in_use = 1 chr_wait_animtype 0 run_start var_up_in_use = 0 if(var_menu_active eq 1) { var_menu = var_menu - 1 if(var_menu eq 0) var_menu = 16 sleep 15 fork menu_up } } func void menu_down(void) { var_down_in_use = 1 chr_wait_animtype 0 run_backwards_start var_down_in_use = 0 if(var_menu_active eq 1) { var_menu = var_menu + 1 if(var_menu eq 17) var_menu = 1 sleep 15 fork menu_down } } ############################## ### SWITCH ON/OFF FUNCTION ### ############################## func void menu_switch(void) { if(var_menu_10 eq 1) sleep 120 sleep 15 var_switch_in_use = 1 chr_wait_animtype 0 run_sidestep_left_start run_sidestep_right_start var_switch_in_use = 0 if(var_menu_active eq 1) { if(var_menu eq 1) { if(var_menu_1 eq 0) cm_orbit 2 90 if(var_menu_1 eq 1) cm_orbit 2 180 if(var_menu_1 eq 2) cm_orbit 2 270 if(var_menu_1 eq 3) cm_reset var_menu_1 = var_menu_1 + 1 if(var_menu_1 eq 4) var_menu_1 = 0 } if(var_menu eq 2) { if(var_menu_2 eq 0) chr_nocollision 0 1 if(var_menu_2 eq 1) chr_nocollision 0 0 var_menu_2 = var_menu_2 + 1 if(var_menu_2 eq 2) var_menu_2 = 0 } if(var_menu eq 3) { if(var_menu_3 eq 0) fork slowmo_3600 if(var_menu_3 eq 1) slowmo 0 var_menu_3 = var_menu_3 + 1 if(var_menu_3 eq 2) var_menu_3 = 0 } if(var_menu eq 4) { if(var_menu_4 eq 0) ai2_ignore_player = 1 if(var_menu_4 eq 1) ai2_ignore_player = 0 var_menu_4 = var_menu_4 + 1 if(var_menu_4 eq 2) var_menu_4 = 0 } if(var_menu eq 5) { if(var_menu_5 eq 0) p3_everything_breakable = 1 if(var_menu_5 eq 1) p3_everything_breakable = 0 var_menu_5 = var_menu_5 + 1 if(var_menu_5 eq 2) var_menu_5 = 0 } if(var_menu eq 6) { if(var_menu_6 eq 0) door_ignore_locks = 1 if(var_menu_6 eq 1) door_ignore_locks = 0 var_menu_6 = var_menu_6 + 1 if(var_menu_6 eq 2) var_menu_6 = 0 } if(var_menu eq 7) { if(var_menu_7 eq 0) unstoppable = 1 if(var_menu_7 eq 1) unstoppable = 0 var_menu_7 = var_menu_7 + 1 if(var_menu_7 eq 2) var_menu_7 = 0 } if(var_menu eq 8) { if(var_menu_8 eq 0) omnipotent = 1 if(var_menu_8 eq 1) omnipotent = 0 var_menu_8 = var_menu_8 + 1 if(var_menu_8 eq 2) var_menu_8 = 0 } if(var_menu eq 9) { if(var_menu_9 eq 0) invincible = 1 if(var_menu_9 eq 1) invincible = 0 var_menu_9 = var_menu_9 + 1 if(var_menu_9 eq 2) var_menu_9 = 0 } if(var_menu eq 10) { if(var_menu_10 eq 0) fast_mode = 1 if(var_menu_10 eq 1) { fast_mode = 0 sleep 60 } var_menu_10 = var_menu_10 + 1 if(var_menu_10 eq 2) var_menu_10 = 0 } if(var_menu eq 11) { if(var_menu_11 eq 0) m3_fill_solid = 0 if(var_menu_11 eq 1) m3_fill_solid = 1 var_menu_11 = var_menu_11 + 1 if(var_menu_11 eq 2) var_menu_11 = 0 } if(var_menu eq 12) { if(var_menu_12 eq 0) m3_shade_vertex = 0 if(var_menu_12 eq 1) m3_shade_vertex = 1 var_menu_12 = var_menu_12 + 1 if(var_menu_12 eq 2) var_menu_12 = 0 } if(var_menu eq 13) { if(var_menu_13 eq 0) gs_show_ui = 0 if(var_menu_13 eq 1) gs_show_ui = 1 var_menu_13 = var_menu_13 + 1 if(var_menu_13 eq 2) var_menu_13 = 0 } if(var_menu eq 14) { if(var_menu_14 eq 0) { chr_debug_characters = 1 show_performance = 1 } if(var_menu_14 eq 1) { chr_debug_characters = 0 show_performance = 0 } var_menu_14 = var_menu_14 + 1 if(var_menu_14 eq 2) var_menu_14 = 0 } if(var_menu eq 15) { if(var_menu_15 eq 0) ai2_shownames = 1 if(var_menu_15 eq 1) ai2_shownames = 0 var_menu_15 = var_menu_15 + 1 if(var_menu_15 eq 2) var_menu_15 = 0 } if(var_menu eq 16) { if(var_menu_16 eq 0) ai2_showhealth = 1 if(var_menu_16 eq 1) ai2_showhealth = 0 var_menu_16 = var_menu_16 + 1 if(var_menu_16 eq 2) var_menu_16 = 0 } fork menu_switch } } func void slowmo_3600(void) { slowmo 3600 sleep 3590 if(var_menu_3 eq 1) fork slowmo_3600 } ########################### ### EXIT MENU FUNCTIONS ### ########################### func void exit_menu(void) { chr_wait_animtype 0 jump chr_animate 0 KONOKOidle1 chr_peace 0 var_menu_active = 0 if(var_menu_2 eq 1) fork jump_check chr_pin_character = 0 ai2_allpassive 0 dmsg "[y. ]" dmsg "[y. ]" dmsg "[y. ]" dmsg "[exit from menu]" fork start_menu sleep 60 message_remove } func void jump_check(void) { if(var_jump_in_use ne 1) { var_jump_in_use = 1 chr_wait_animtype 0 jump jump_backward var_jump_in_use = 0 if(var_menu_active eq 0 and var_menu_2 eq 1) { chr_nocollision 0 0 chr_wait_animtype 0 stand chr_nocollision 0 1 fork jump_check } } } ############################ ### written by ssg, March 2005 ### ### last edit: 11/November/2008 ### ### visit http://oni.bungie.org ### ############################