RMXPirate 0 Report post Posted April 28, 2007 Ok, so I was trying to make my very first script which was going to be a menu script but unfortunately I couldn?t. So I was wondering if someone could make it for me :P. I think it would be a nice addition to the many Scripts made. Any who pretty much it is a Custom menu system. I included a preview below(it?s a crappy preview but its good enough). Pretty much its just like the normal menu except the command thing has been placed on the top and each selection is in a different window. When u press left it goes to the next window? Share this post Link to post Share on other sites
Leon 55 Report post Posted April 28, 2007 Ok, so I was trying to make my very first script which was going to be a menu script but unfortunately I couldn?t. So I was wondering if someone could make it for me :P . I think it would be a nice addition to the many Scripts made. Any who pretty much it is a Custom menu system. I included a preview below(it?s a crappy preview but its good enough). Pretty much its just like the normal menu except the command thing has been placed on the top and each selection is in a different window. When u press left it goes to the next window? This script will be very easy to do, and I have been looking for an easy script or two to help me relax. Give me a couple days, because this is easier than you'd think... Share this post Link to post Share on other sites
RMXPirate 0 Report post Posted April 28, 2007 alright i can wait! And thanks! I think its easy because all u have to do is add the commands, everything else is the same as the old menu system isnt it? Share this post Link to post Share on other sites
Leon 55 Report post Posted April 28, 2007 All I have to do is make a window for each command, set it so when you press left/right, that window is deactivated, and the next is, and have it so when you hit enter, it goes to the next scene, saving the cursor's position in $game_party, or cancel, save the cursor's position. VERY easyfor an experienced scripter. Give me... oh... 4-6 hours, if that. I can only assume you are using teh default Menu, with chanes to the scene's windows. Share this post Link to post Share on other sites
RMXPirate 0 Report post Posted April 28, 2007 yeah i am using the default! I figured it would work like that. maybe when ur finneshed u can make it so when it hovers over the command window it will make that command window expand if u know what i mean. But do do that yeat just make it like i said before then if u want u can do that later. Share this post Link to post Share on other sites
Leon 55 Report post Posted April 28, 2007 Actually, i have your drawing completed, the scene is actually done. Let me load it up. #=================================== # Ichabod's Menu, made by Leon. #---------------------------------------------------------------------- # Here you go, and it goes off of the built in scenes. # Just put it under 'Scene_Debug', but above 'Main' #=================================== $defaultfonttype = Font.default_name $defaultfontsize = Font.default_size #=================================== # Game_Party #=================================== class Game_Party attr_accessor :menu_cursor alias leon_ichabodmenu_gameparty_initialize initialize def initialize leon_ichabodmenu_gameparty_initialize @menu_cursor = 0 end end #=================================== # Window_Item_Option #=================================== class Window_Item_Option < Window_Selectable def initialize super(0, 0, 106, 64) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $defaultfonttype self.contents.font.size = $defaultfontsize if $game_party.menu_cursor == 0 self.active = true self.index = 0 else self.active = false self.index = -1 end refresh end def refresh self.contents.clear self.contents.draw_text(4, 0, (106-34), 32, "Item", 1) end end #=================================== # END Window_Item_Option #=================================== #=================================== # Window_Skill_Option #=================================== class Window_Skill_Option < Window_Selectable def initialize super(106, 0, 107, 64) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $defaultfonttype self.contents.font.size = $defaultfontsize if $game_party.menu_cursor == 1 self.active = true self.index = 0 else self.active = false self.index = -1 end refresh end def refresh self.contents.clear self.contents.draw_text(4, 0, (107-34), 32, "Skill", 1) end end #=================================== # END Window_Skill_Option #=================================== #=================================== # Window_Equip_Option #=================================== class Window_Equip_Option < Window_Selectable def initialize super(213, 0, 107, 64) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $defaultfonttype self.contents.font.size = $defaultfontsize if $game_party.menu_cursor == 2 self.active = true self.index = 0 else self.active = false self.index = -1 end refresh end def refresh self.contents.clear self.contents.draw_text(4, 0, (107-34), 32, "Equip", 1) end end #=================================== # END Window_Equip_Option #=================================== #=================================== # Window_Status_Option #=================================== class Window_Status_Option < Window_Selectable def initialize super(320, 0, 107, 64) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $defaultfonttype self.contents.font.size = $defaultfontsize if $game_party.menu_cursor == 3 self.active = true self.index = 0 else self.active = false self.index = -1 end refresh end def refresh self.contents.clear self.contents.draw_text(4, 0, (107-34), 32, "Status", 1) end end #=================================== # END Window_Status_Option #=================================== #=================================== # Window_Save_Option #=================================== class Window_Save_Option < Window_Selectable def initialize super(427, 0, 107, 64) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $defaultfonttype self.contents.font.size = $defaultfontsize if $game_party.menu_cursor == 4 self.active = true self.index = 0 else self.active = false self.index = -1 end refresh end def refresh self.contents.clear self.contents.draw_text(4, 0, (107-34), 32, "Save", 1) end end #=================================== # END Window_Save_Option #=================================== #=================================== # Window_Endgame_Option #=================================== class Window_Endgame_Option < Window_Selectable def initialize super(534, 0, 106, 64) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $defaultfonttype self.contents.font.size = $defaultfontsize if $game_party.menu_cursor == 5 self.active = true self.index = 0 else self.active = false self.index = -1 end refresh end def refresh self.contents.clear self.contents.font.size = 18 self.contents.draw_text(0, 0, (106-32), 32, "End Game", 1) end end #=================================== # END Window_Endgame_Option #=================================== #=================================== # Window_Actor_Select #=================================== class Window_Actor_Select < Window_Selectable def initialize super(160, 64, 480, 416) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $defaultfonttype self.contents.font.size = $defaultfontsize self.active = false self.index = -1 refresh end def refresh self.contents.clear self.contents.font.size = 18 @item_max = $game_party.actors.size for i in 0...$game_party.actors.size x = 64 y = i * 95 actor = $game_party.actors[i] draw_actor_graphic(actor, x - 40, y + 80) draw_actor_name(actor, x, y) draw_actor_class(actor, x + 144, y) draw_actor_level(actor, x, y + 28) draw_actor_state(actor, x + 90, y + 28) draw_actor_exp(actor, x, y + 54) draw_actor_hp(actor, x + 236, y + 28) draw_actor_sp(actor, x + 236, y + 54) end end def update_cursor_rect if @index < 0 self.cursor_rect.empty else self.cursor_rect.set(0, @index * 95, self.width - 32, 96) end end end #=================================== # END Window_Actor_Select #=================================== #=================================== # Scene_Menu #=================================== class Scene_Menu def initialize(menu_index = 0) @menu_index = menu_index end def main @playtime_window = Window_PlayTime.new @playtime_window.x = 0 @playtime_window.y = 224-160 @steps_window = Window_Steps.new @steps_window.x = 0 @steps_window.y = 320-160 @gold_window = Window_Gold.new @gold_window.x = 0 @gold_window.y = 416-160 @item_window = Window_Item_Option.new @skill_window = Window_Skill_Option.new @equip_window = Window_Equip_Option.new @status_window = Window_Status_Option.new @save_window = Window_Save_Option.new @endgame_window = Window_Endgame_Option.new @actor_window = Window_Actor_Select.new Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end Graphics.freeze @item_window.dispose @skill_window.dispose @equip_window.dispose @status_window.dispose @save_window.dispose @endgame_window.dispose @gold_window.dispose @steps_window.dispose @playtime_window.dispose @actor_window.dispose end def update @item_window.update @skill_window.update @equip_window.update @status_window.update @save_window.update @endgame_window.update @gold_window.update @steps_window.update @playtime_window.update @actor_window.update case $game_party.menu_cursor when 0 @item_window.active = true @item_window.index = 0 when 1 @skill_window.active = true @skill_window.index = 0 when 2 @equip_window.active = true @equip_window.index = 0 when 3 @status_window.active = true @status_window.index = 0 when 4 @save_window.active = true @save_window.index = 0 when 5 @endgame_window.active = true @endgame_window.index = 0 end if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) $scene = Scene_Map.new end if @item_window.active update_item return end if @skill_window.active update_skill return end if @equip_window.active update_equip return end if @status_window.active update_status return end if @save_window.active update_save return end if @endgame_window.active update_endgame return end end def update_item if Input.trigger?(Input::LEFT) $game_party.menu_cursor = 5 @item_window.index = -1 @item_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::RIGHT) $game_party.menu_cursor = 1 @item_window.index = -1 @item_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::C) $game_system.se_play($data_system.decision_se) $game_party.menu_cursor = 0 $scene = Scene_Item.new end end def update_skill if Input.trigger?(Input::LEFT) $game_party.menu_cursor = 0 @skill_window.index = -1 @skill_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::RIGHT) $game_party.menu_cursor = 2 @skill_window.index = -1 @skill_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::C) $game_system.se_play($data_system.decision_se) $game_party.menu_cursor = 1 $scene = Scene_Skill.new end end def update_equip if Input.trigger?(Input::LEFT) $game_party.menu_cursor = 1 @equip_window.index = -1 @equip_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::RIGHT) $game_party.menu_cursor = 3 @equip_window.index = -1 @equip_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::C) $game_system.se_play($data_system.decision_se) $game_party.menu_cursor = 2 $scene = Scene_Equip.new end end def update_status if Input.trigger?(Input::LEFT) $game_party.menu_cursor = 2 @status_window.index = -1 @status_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::RIGHT) $game_party.menu_cursor = 4 @status_window.index = -1 @status_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::C) $game_system.se_play($data_system.decision_se) $game_party.menu_cursor = 3 $scene = Scene_Status.new end end def update_save if Input.trigger?(Input::LEFT) $game_party.menu_cursor = 3 @save_window.index = -1 @save_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::RIGHT) $game_party.menu_cursor = 5 @save_window.index = -1 @save_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::C) $game_system.se_play($data_system.decision_se) $game_party.menu_cursor = 4 $scene = Scene_Save.new end end def update_endgame if Input.trigger?(Input::LEFT) $game_party.menu_cursor = 4 @endgame_window.index = -1 @endgame_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::RIGHT) $game_party.menu_cursor = 0 @endgame_window.index = -1 @endgame_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::C) $game_system.se_play($data_system.decision_se) $game_party.menu_cursor = 5 $scene = Scene_End.new end end end Share this post Link to post Share on other sites
RMXPirate 0 Report post Posted April 28, 2007 its pretty much good, but u cant slect which character you want to equip items with... it just automatically goes to the first player. Share this post Link to post Share on other sites
Leon 55 Report post Posted April 28, 2007 I knew I forgot something... *slaps forehead* easily fixed. My apologies. (I had to rewrite some of the code, and forgot a snippet.) Ok, fixed: Share this post Link to post Share on other sites
RMXPirate 0 Report post Posted April 28, 2007 oic lol. Just post when u finnish. And then ill talk to u about how i want the expand feature to look!! Share this post Link to post Share on other sites
Leon 55 Report post Posted April 28, 2007 Fiuxed: #=================================== # Ichabod's Menu, made by Leon. #---------------------------------------------------------------------- # Here you go, and it goes off of the built in scenes. # Just put it under 'Scene_Debug', but above 'Main' #=================================== $defaultfonttype = Font.default_name $defaultfontsize = Font.default_size #=================================== # Game_Party #=================================== class Game_Party attr_accessor :menu_cursor alias leon_ichabodmenu_gameparty_initialize initialize def initialize leon_ichabodmenu_gameparty_initialize @menu_cursor = 0 end end #=================================== # Window_Item_Option #=================================== class Window_Item_Option < Window_Selectable def initialize super(0, 0, 106, 64) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $defaultfonttype self.contents.font.size = $defaultfontsize if $game_party.menu_cursor == 0 self.active = true self.index = 0 else self.active = false self.index = -1 end refresh end def refresh self.contents.clear self.contents.draw_text(4, 0, (106-34), 32, "Item", 1) end end #=================================== # END Window_Item_Option #=================================== #=================================== # Window_Skill_Option #=================================== class Window_Skill_Option < Window_Selectable def initialize super(106, 0, 107, 64) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $defaultfonttype self.contents.font.size = $defaultfontsize if $game_party.menu_cursor == 1 self.active = true self.index = 0 else self.active = false self.index = -1 end refresh end def refresh self.contents.clear self.contents.draw_text(4, 0, (107-34), 32, "Skill", 1) end end #=================================== # END Window_Skill_Option #=================================== #=================================== # Window_Equip_Option #=================================== class Window_Equip_Option < Window_Selectable def initialize super(213, 0, 107, 64) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $defaultfonttype self.contents.font.size = $defaultfontsize if $game_party.menu_cursor == 2 self.active = true self.index = 0 else self.active = false self.index = -1 end refresh end def refresh self.contents.clear self.contents.draw_text(4, 0, (107-34), 32, "Equip", 1) end end #=================================== # END Window_Equip_Option #=================================== #=================================== # Window_Status_Option #=================================== class Window_Status_Option < Window_Selectable def initialize super(320, 0, 107, 64) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $defaultfonttype self.contents.font.size = $defaultfontsize if $game_party.menu_cursor == 3 self.active = true self.index = 0 else self.active = false self.index = -1 end refresh end def refresh self.contents.clear self.contents.draw_text(4, 0, (107-34), 32, "Status", 1)<br /> end end #=================================== # END Window_Status_Option #=================================== #=================================== # Window_Save_Option #=================================== class Window_Save_Option < Window_Selectable def initialize super(427, 0, 107, 64) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $defaultfonttype self.contents.font.size = $defaultfontsize if $game_party.menu_cursor == 4 self.active = true self.index = 0 else self.active = false self.index = -1 end refresh end def refresh self.contents.clear self.contents.draw_text(4, 0, (107-34), 32, "Save", 1) end end #=================================== # END Window_Save_Option #=================================== #=================================== # Window_Endgame_Option #=================================== class Window_Endgame_Option < Window_Selectable def initialize super(534, 0, 106, 64) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $defaultfonttype self.contents.font.size = $defaultfontsize if $game_party.menu_cursor == 5 self.active = true self.index = 0 else self.active = false self.index = -1 end refresh end def refresh self.contents.clear self.contents.font.size = 18 self.contents.draw_text(0, 0, (106-32), 32, "End Game", 1) end end #=================================== # END Window_Endgame_Option #=================================== #=================================== # Window_Actor_Select #=================================== class Window_Actor_Select < Window_Selectable def initialize super(160, 64, 480, 416) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $defaultfonttype self.contents.font.size = $defaultfontsize self.active = false self.index = -1 refresh end def refresh self.contents.clear self.contents.font.size = 18 @item_max = $game_party.actors.size for i in 0...$game_party.actors.size x = 64 y = i * 95 actor = $game_party.actors[i] draw_actor_graphic(actor, x - 40, y + 80) draw_actor_name(actor, x, y) draw_actor_class(actor, x + 144, y) draw_actor_level(actor, x, y + 28) draw_actor_state(actor, x + 90, y + 28) draw_actor_exp(actor, x, y + 54) draw_actor_hp(actor, x + 236, y + 28) draw_actor_sp(actor, x + 236, y + 54) end end def update_cursor_rect if @index < 0 self.cursor_rect.empty else self.cursor_rect.set(0, @index * 95, self.width - 32, 96) end end end #=================================== # END Window_Actor_Select #=================================== #=================================== # Scene_Menu #=================================== class Scene_Menu def initialize(menu_index = 0) @menu_index = menu_index end def main @playtime_window = Window_PlayTime.new @playtime_window.x = 0 @playtime_window.y = 224-160 @steps_window = Window_Steps.new @steps_window.x = 0 @steps_window.y = 320-160 @gold_window = Window_Gold.new @gold_window.x = 0 @gold_window.y = 416-160 @item_window = Window_Item_Option.new @skill_window = Window_Skill_Option.new @equip_window = Window_Equip_Option.new @status_window = Window_Status_Option.new @save_window = Window_Save_Option.new @endgame_window = Window_Endgame_Option.new @actor_window = Window_Actor_Select.new Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end Graphics.freeze @item_window.dispose @skill_window.dispose @equip_window.dispose @status_window.dispose @save_window.dispose @endgame_window.dispose @gold_window.dispose @steps_window.dispose @playtime_window.dispose @actor_window.dispose end def update @item_window.update @skill_window.update @equip_window.update @status_window.update @save_window.update @endgame_window.update @gold_window.update @steps_window.update @playtime_window.update @actor_window.update case $game_party.menu_cursor when 0 @item_window.active = true @item_window.index = 0 when 1 @skill_window.active = true @skill_window.index = 0 when 2 @equip_window.active = true @equip_window.index = 0 when 3 @status_window.active = true @status_window.index = 0 when 4 @save_window.active = true @save_window.index = 0 when 5 @endgame_window.active = true @endgame_window.index = 0 end if @actor_window.active update_actor return end if @item_window.active update_item return end if @skill_window.active update_skill return end if @equip_window.active update_equip return end if @status_window.active update_status return end if @save_window.active update_save return end if @endgame_window.active update_endgame return end end def update_item if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) $scene = Scene_Map.new end if Input.trigger?(Input::LEFT) $game_party.menu_cursor = 5 @item_window.index = -1 @item_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::RIGHT) $game_party.menu_cursor = 1 @item_window.index = -1 @item_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::C) $game_system.se_play($data_system.decision_se) $game_party.menu_cursor = 0 $scene = Scene_Item.new end end def update_skill if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) $scene = Scene_Map.new end if Input.trigger?(Input::LEFT) $game_party.menu_cursor = 0 @skill_window.index = -1 @skill_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::RIGHT) $game_party.menu_cursor = 2 @skill_window.index = -1 @skill_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::C) $game_system.se_play($data_system.decision_se) $game_party.menu_cursor = 1 @skill_window.active = false @actor_window.active = true @actor_window.index = 0 #$scene = Scene_Skill.new end end def update_equip if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) $scene = Scene_Map.new end if Input.trigger?(Input::LEFT) $game_party.menu_cursor = 1 @equip_window.index = -1 @equip_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::RIGHT) $game_party.menu_cursor = 3 @equip_window.index = -1 @equip_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::C) $game_system.se_play($data_system.decision_se) $game_party.menu_cursor = 2 @equip_window.active = false @actor_window.active = true @actor_window.index = 0 #$scene = Scene_Equip.new end end def update_status if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) $scene = Scene_Map.new end if Input.trigger?(Input::LEFT) $game_party.menu_cursor = 2 @status_window.index = -1 @status_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::RIGHT) $game_party.menu_cursor = 4 @status_window.index = -1 @status_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::C) $game_system.se_play($data_system.decision_se) $game_party.menu_cursor = 3 @status_window.active = false @actor_window.active = true @actor_window.index = 0 #$scene = Scene_Status.new end end def update_save if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) $scene = Scene_Map.new end if Input.trigger?(Input::LEFT) $game_party.menu_cursor = 3 @save_window.index = -1 @save_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::RIGHT) $game_party.menu_cursor = 5 @save_window.index = -1 @save_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::C) $game_system.se_play($data_system.decision_se) $game_party.menu_cursor = 4 $scene = Scene_Save.new end end def update_endgame if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) $scene = Scene_Map.new end if Input.trigger?(Input::LEFT) $game_party.menu_cursor = 4 @endgame_window.index = -1 @endgame_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::RIGHT) $game_party.menu_cursor = 0 @endgame_window.index = -1 @endgame_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::C) $game_system.se_play($data_system.decision_se) $game_party.menu_cursor = 5 $scene = Scene_End.new end end def update_actor if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) case $game_party.menu_cursor when 1 @skill_window.active = true @actor_window.active = false @actor_window.index = -1 when 2 @equip_window.active = true @actor_window.active = false @actor_window.index = -1 when 3 @status_window.active = true @actor_window.active = false @actor_window.index = -1 end end if Input.trigger?(Input::C) $game_system.se_play($data_system.decision_se) case $game_party.menu_cursor when 1 $scene = Scene_Skill.new(@actor_window.index) when 2 $scene = Scene_Equip.new(@actor_window.index) when 3 $scene = Scene_Status.new(@actor_window.index) end end end end Share this post Link to post Share on other sites
Ratty524 0 Report post Posted April 28, 2007 Wow, I've been considering on having a custom menu screen, though scripting in general is something I'm still trying to learn. Share this post Link to post Share on other sites
RMXPirate 0 Report post Posted April 28, 2007 Awesome it works, now can i ask you if u can make it do this when its hovering over a selction?: Pretty much it will expand on he left and right sides. then when u go to the next selction it will unexpand and expand the next one! Could u do that? Share this post Link to post Share on other sites
Leon 55 Report post Posted April 28, 2007 I tried something like taht before with a CMS I built somebody else, but they experienced bad lag... Share this post Link to post Share on other sites
RMXPirate 0 Report post Posted April 29, 2007 ok i figured that would b the answer. Share this post Link to post Share on other sites
RMXPirate 0 Report post Posted April 29, 2007 hey cant you try and do it? I mean someone made one for me at rmxp and it works fine, no lag but its sdk version :lol: and i dont like sdk scripts, so maybe you can try? Edit: I tried it myself but only got the right side to expand. Maybe u can try and fix it? #=================================== # Ichabod's Menu, made by Leon. #---------------------------------------------------------------------- # Here you go, and it goes off of the built in scenes. # Just put it under 'Scene_Debug', but above 'Main' #=================================== $defaultfonttype = Font.default_name $defaultfontsize = Font.default_size #=================================== # Game_Party #=================================== class Game_Party attr_accessor :menu_cursor alias leon_ichabodmenu_gameparty_initialize initialize def initialize leon_ichabodmenu_gameparty_initialize @menu_cursor = 0 end end #=================================== # Window_Item_Option #=================================== class Window_Item_Option < Window_Selectable def initialize super(0, 0, 106, 64) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $defaultfonttype self.contents.font.size = $defaultfontsize if $game_party.menu_cursor == 0 self.active = true self.index = 0 else self.active = false self.index = -1 end refresh end def refresh self.contents.clear self.contents.draw_text(4, 0, (106-34), 32, "Item", 1) end end #=================================== # END Window_Item_Option #=================================== #=================================== # Window_Skill_Option #=================================== class Window_Skill_Option < Window_Selectable def initialize super(106, 0, 107, 64) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $defaultfonttype self.contents.font.size = $defaultfontsize if $game_party.menu_cursor == 1 self.active = true self.index = 0 else self.active = false self.index = -1 end refresh end def refresh self.contents.clear self.contents.draw_text(4, 0, (107-34), 32, "Skill", 1) end end #=================================== # END Window_Skill_Option #=================================== #=================================== # Window_Equip_Option #=================================== class Window_Equip_Option < Window_Selectable def initialize super(213, 0, 107, 64) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $defaultfonttype self.contents.font.size = $defaultfontsize if $game_party.menu_cursor == 2 self.active = true self.index = 0 else self.active = false self.index = -1 end refresh end def refresh self.contents.clear self.contents.draw_text(4, 0, (107-34), 32, "Equip", 1) end end #=================================== # END Window_Equip_Option #=================================== #=================================== # Window_Status_Option #=================================== class Window_Status_Option < Window_Selectable def initialize super(320, 0, 107, 64) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $defaultfonttype self.contents.font.size = $defaultfontsize if $game_party.menu_cursor == 3 self.active = true self.index = 0 else self.active = false self.index = -1 end refresh end def refresh self.contents.clear self.contents.draw_text(4, 0, (107-34), 32, "Status", 1) end end #=================================== # END Window_Status_Option #=================================== #=================================== # Window_Save_Option #=================================== class Window_Save_Option < Window_Selectable def initialize super(427, 0, 107, 64) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $defaultfonttype self.contents.font.size = $defaultfontsize if $game_party.menu_cursor == 4 self.active = true self.index = 0 else self.active = false self.index = -1 end refresh end def refresh self.contents.clear self.contents.draw_text(4, 0, (107-34), 32, "Save", 1) end end #=================================== # END Window_Save_Option #=================================== #=================================== # Window_Endgame_Option #=================================== class Window_Endgame_Option < Window_Selectable def initialize super(534, 0, 106, 64) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $defaultfonttype self.contents.font.size = $defaultfontsize if $game_party.menu_cursor == 5 self.active = true self.index = 0 else self.active = false self.index = -1 end refresh end def refresh self.contents.clear self.contents.font.size = 18 self.contents.draw_text(0, 0, (106-32), 32, "End Game", 1) end end #=================================== # END Window_Endgame_Option #=================================== #=================================== # Window_Actor_Select #=================================== class Window_Actor_Select < Window_Selectable def initialize super(160, 64, 480, 416) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $defaultfonttype self.contents.font.size = $defaultfontsize self.active = false self.index = -1 refresh end def refresh self.contents.clear self.contents.font.size = 18 @item_max = $game_party.actors.size for i in 0...$game_party.actors.size x = 64 y = i * 95 actor = $game_party.actors[i] draw_actor_graphic(actor, x - 40, y + 80) draw_actor_name(actor, x, y) draw_actor_class(actor, x + 144, y) draw_actor_level(actor, x, y + 28) draw_actor_state(actor, x + 90, y + 28) draw_actor_exp(actor, x, y + 54) draw_actor_hp(actor, x + 236, y + 28) draw_actor_sp(actor, x + 236, y + 54) end end def update_cursor_rect if @index < 0 self.cursor_rect.empty else self.cursor_rect.set(0, @index * 95, self.width - 32, 96) end end end #=================================== # END Window_Actor_Select #=================================== #=================================== # Scene_Menu #=================================== class Scene_Menu def initialize(menu_index = 0) @menu_index = menu_index end def main @playtime_window = Window_PlayTime.new @playtime_window.x = 0 @playtime_window.y = 224-160 @steps_window = Window_Steps.new @steps_window.x = 0 @steps_window.y = 320-160 @gold_window = Window_Gold.new @gold_window.x = 0 @gold_window.y = 416-160 @item_window = Window_Item_Option.new @skill_window = Window_Skill_Option.new @equip_window = Window_Equip_Option.new @status_window = Window_Status_Option.new @save_window = Window_Save_Option.new @endgame_window = Window_Endgame_Option.new @actor_window = Window_Actor_Select.new Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end Graphics.freeze @item_window.dispose @skill_window.dispose @equip_window.dispose @status_window.dispose @save_window.dispose @endgame_window.dispose @gold_window.dispose @steps_window.dispose @playtime_window.dispose @actor_window.dispose end def update @item_window.update @skill_window.update @equip_window.update @status_window.update @save_window.update @endgame_window.update @gold_window.update @steps_window.update @playtime_window.update @actor_window.update case $game_party.menu_cursor when 0 @item_window.active = true @item_window.index = 0 when 1 @skill_window.active = true @skill_window.index = 0 when 2 @equip_window.active = true @equip_window.index = 0 when 3 @status_window.active = true @status_window.index = 0 when 4 @save_window.active = true @save_window.index = 0 when 5 @endgame_window.active = true @endgame_window.index = 0 end if @actor_window.active update_actor return end if @item_window.active update_item return end if @skill_window.active update_skill return end if @equip_window.active update_equip return end if @status_window.active update_status return end if @save_window.active update_save return end if @endgame_window.active update_endgame return end end def update_item @item_window.width = 120 @item_window.z += 1 if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) $scene = Scene_Map.new end if Input.trigger?(Input::LEFT) @item_window.width = 106 $game_party.menu_cursor = 5 @item_window.index = -1 @item_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::RIGHT) @item_window.width = 106 $game_party.menu_cursor = 1 @item_window.index = -1 @item_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::C) @item_window.width = 106 $game_system.se_play($data_system.decision_se) $game_party.menu_cursor = 0 $scene = Scene_Item.new end end def update_skill @skill_window.width = 121 @skill_window.z += 1 if Input.trigger?(Input::B) @skill_window.width = 106 $game_system.se_play($data_system.cancel_se) $scene = Scene_Map.new end if Input.trigger?(Input::LEFT) @skill_window.width = 107 $game_party.menu_cursor = 0 @skill_window.index = -1 @skill_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::RIGHT) @skill_window.width = 107 $game_party.menu_cursor = 2 @skill_window.index = -1 @skill_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::C) @skill_window.width = 107 $game_system.se_play($data_system.decision_se) $game_party.menu_cursor = 1 @skill_window.active = false @actor_window.active = true @actor_window.index = 0 #$scene = Scene_Skill.new end end def update_equip @equip_window.width = 121 @equip_window.z += 1 if Input.trigger?(Input::B) @equip_window.width = 107 @equip_window.x = 213 $game_system.se_play($data_system.cancel_se) $scene = Scene_Map.new end if Input.trigger?(Input::LEFT) @equip_window.width = 107 $game_party.menu_cursor = 1 @equip_window.index = -1 @equip_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::RIGHT) @equip_window.width = 107 $game_party.menu_cursor = 3 @equip_window.index = -1 @equip_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::C) @equip_window.width = 107 $game_system.se_play($data_system.decision_se) $game_party.menu_cursor = 2 @equip_window.active = false @actor_window.active = true @actor_window.index = 0 #$scene = Scene_Equip.new end end def update_status @status_window.width = 121 @status_window.z += 1 if Input.trigger?(Input::B) @status_window.width = 107 $game_system.se_play($data_system.cancel_se) $scene = Scene_Map.new end if Input.trigger?(Input::LEFT) @status_window.width = 107 $game_party.menu_cursor = 2 @status_window.index = -1 @status_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::RIGHT) @status_window.width = 107 $game_party.menu_cursor = 4 @status_window.index = -1 @status_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::C) @status_window.width = 107 $game_system.se_play($data_system.decision_se) $game_party.menu_cursor = 3 @status_window.active = false @actor_window.active = true @actor_window.index = 0 #$scene = Scene_Status.new end end def update_save @save_window.width = 121 @save_window.z += 1 if Input.trigger?(Input::B) @save_window.width = 107 $game_system.se_play($data_system.cancel_se) $scene = Scene_Map.new end if Input.trigger?(Input::LEFT) @save_window.width = 107 $game_party.menu_cursor = 3 @save_window.index = -1 @save_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::RIGHT) @endgame_window.refresh @save_window.width = 107 $game_party.menu_cursor = 5 @save_window.index = -1 @save_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::C) @save_window.width = 107 $game_system.se_play($data_system.decision_se) $game_party.menu_cursor = 4 $scene = Scene_Save.new end end def update_endgame if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) $scene = Scene_Map.new end if Input.trigger?(Input::LEFT) $game_party.menu_cursor = 4 @endgame_window.index = -1 @endgame_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::RIGHT) $game_party.menu_cursor = 0 @endgame_window.index = -1 @endgame_window.active = false $game_system.se_play($data_system.cursor_se) end if Input.trigger?(Input::C) $game_system.se_play($data_system.decision_se) $game_party.menu_cursor = 5 $scene = Scene_End.new end end def update_actor if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) case $game_party.menu_cursor when 1 @skill_window.active = true @actor_window.active = false @actor_window.index = -1 when 2 @equip_window.active = true @actor_window.active = false @actor_window.index = -1 when 3 @status_window.active = true @actor_window.active = false @actor_window.index = -1 end end if Input.trigger?(Input::C) $game_system.se_play($data_system.decision_se) case $game_party.menu_cursor when 1 $scene = Scene_Skill.new(@actor_window.index) when 2 $scene = Scene_Equip.new(@actor_window.index) when 3 $scene = Scene_Status.new(@actor_window.index) end end end end Share this post Link to post Share on other sites
Leon 55 Report post Posted April 29, 2007 To give it the illusion of expanding, you need to move the window to the left, while expanding it to the right twice as much. By doing both at once, it will lag. Ill try it later, right now, i dont have a power cord. Share this post Link to post Share on other sites
RMXPirate 0 Report post Posted April 29, 2007 oic. Well i did try that after a while but it does lag, alot! But for some reason the sdk one doesnt, i wonder y. Oh well. Thanks for this though! Share this post Link to post Share on other sites