Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #===============================================================================
- #
- # Sky's Command Window Menu's
- # Started May 5, 2010
- # Completed May 6, 2010
- # Updated July 3, 2010
- #
- #===========================================================================
- #
- # Features :
- # Version 1.0 - May 6, 2010
- # - Make up a whole scene based around choice menu's
- # - Easy to make your own command menu, and places
- # choice number into a variable of your choice
- # Version 1.1 -
- # - Choices can be set to a default "Text" if they
- # require a switch that is not on(Switches not required, so only
- # if you use a switch)
- # Version 1.2 - July 3, 2010
- # - Can now use icons
- #
- #===========================================================================
- #
- # Credit (be sure to credit the following and rpgmakervx.net)
- # Sky00Valentine :creator and editor (You aren't required to include me, but I wouldn't mind if you did.)
- # Celianna :for requesting the script here, http://www.rpgmakervx.net/index.php?showtopic=29557
- #
- #===========================================================================
- #
- # Terms of Use
- # ------------
- #
- # Crediting Rpgmakervx.net and Celianna is the only thing I ask.
- # However feel free to credit Sky00Valentine if you
- # see fit.
- #
- #===========================================================================
- # Instructions
- # ------------
- # requires the SAATW script, I use it for some of my scripts so you may
- # or may not already have it.
- #
- # for each different scene you want you will have to make another hash.
- # what that means is you must make a new
- #
- # Choice_Command_Text = {
- # "Layout" => 0,
- # "Variable" => 1,
- # "Title" => "Title of Menu",
- # "Column" => ["Left Column","Right Column"],
- # "Next" => Scene_Map.new,
- # 0 => ["1st command", "Right side of command",Switch #],
- # 1 => ["2nd command", "Right side of 2nd command"],
- # } NOTE: SWITCH NUMBER IS NOT REQUIRED ONLY USE IF YOU WANT THE CHOICE
- # ACTIVATED BY A SWITCH
- #
- # Variable will be the variable you want to tie to your choice. If you say
- # The Variable is 3, When the menu pops up if you choose choice 6 then the
- # number 6 will be stored in the game variable 3.
- #
- # When you create a new hash add a new index to the Menu_Index hash which
- # includes the newly created hash. Here is a before and after example,
- #
- # Before creating a new Menu Hash:
- #
- # Menu_Index = {
- # 0 => Test_Menu
- # }
- #
- # After I made a new hash called Example_Menu I get:
- #
- # Menu_Index = {
- # 0 => Test_Menu
- # 1 => Example_Menu
- # }
- #
- # Now to call a menu in game use the call script
- # $scene = Scene_Command.new(Menu_Index)
- # In the above example the Menu_Index for Test_Menu would be 0
- # and the Menu_Index for Example_Menu would be 1.
- # So if i use the call script
- # $scene = Scene_Command.new(0)
- # then it will call the Test_Menu.
- #
- # Other than that it should explain itself.
- # Enjoy...
- #
- # To use icons in the Command String use the following setup.
- # /i[icon index number]
- # where icon number is the index of the icon
- # ex. /i[4] will show icon number 4
- #
- #===============================================================================
- module Sky
- module Text
- SWITCH_OFF = "Switch not activated" # If a switch isn't activated this text will be displayed
- # and if no switch was listed this will be ignored.
- Test_Menu = {
- "Layout" => 0, # The Layout you want to use
- "Variable" => 1, # Variable the choice will be stored in
- "Title" => "Title of Menu", #The Title of the Menu
- "Column" => ["Left Column","Right Column"], # Names for the Columns
- "Next" => Scene_Map.new, #What scene do you want after you leave this one.
- 0 => ["Super Potion", "Right side of command",1], # Left command, Right Command, Switch(if needed)
- 1 => ["2nd command", "Right side of 2nd command"],
- 2 => ["Just Make More", "You can leave this side empty."],
- 3 => ["If you need", "" ], #empty quotes will make it blank.
- 4 => ["A","This /i[1] Me"],
- 5 => ["/i[20]",""],
- 6 => ["A",""],
- 7 => ["A",""],
- 8 => ["A",""],
- 9 => ["A",""],
- 10 => ["A",""],
- 11 => ["A",""],
- 12 => ["A",""],
- }
- Other_Menu = {
- "Layout" => 1,
- "Variable" => 1, # Variables can be the same if you like or different
- "Title" => "Another Title", #The Title of the Menu
- "Column" => ["This Column","That Column"], # Names for the Columns
- "Next" => Scene_Menu.new(0), #What scene do you want after you leave this one.
- 0 => ["I am command 1", "Right side of command"], # Left command, Right Command. See no switch
- 1 => ["I am command 2", ""],
- 2 => ["", "You can leave the other side empty too."],
- 3 => ["Do you get", "it now?" ], #empty quotes will make it blank.
- }
- Next_Menu = {
- "Layout" => 1,
- "Variable" => 1, # Variables can be the same if you like or different
- "Title" => "Synthesis Shop", #The Title of the Menu
- "Column" => ["Item","Ingredients"], # Names for the Columns
- "Next" => Scene_Map.new, #What scene do you want after you leave this one.
- 0 => ["/i[64] Super Potion", "2x /i[65] Potion"],
- 1 => ["/i[3] Mana Sword", "/i[64] Super Potion /i[1] Sword"],
- }
- Question_Menu = {
- "Layout" => 1,
- "Variable" => 1, # Variables can be the same if you like or different
- "Title" => "What is 5 x 8", #The Title of the Menu
- "Column" => ["",""], # Names for the Columns
- "Next" => Scene_Map.new, #What scene do you want after you leave this one.
- 0 => ["A.", "12"],
- 1 => ["B", "58"],
- 2 => ["C", "13"],
- 3 => ["D", "3"],
- 4 => ["E", "Im stupid to still be looking"],
- 5 => ["Trick", "What the heck is x?"],
- 6 => ["T?", "T? Wait what?"],
- }
- Menu_Index = {
- 0 => Test_Menu,
- 1 => Other_Menu,
- 2 => Next_Menu,
- 3 => Question_Menu,
- }
- end
- end
- class SCommand_Window < Window_Selectable
- def initialize(commands)
- super(0,114,544,WLH*page_row_max+32)
- @commands = commands
- @item_max = commands.size - 5
- @index = 0
- create_contents
- refresh
- @normal = self.windowskin
- self.windowskin = Bitmap.new("Graphics/System/No_Arrow_Window") rescue self.windowskin = @normal
- end
- def refresh
- for i in 0...@item_max
- draw_item(i)
- end
- end
- def page_row_max
- return 11
- end
- def draw_item(index)
- rect = item_rect(index)
- rect.x += 4
- rect.width -= 8
- self.contents.clear_rect(rect)
- if @commands[index].size == 3
- self.contents.icon_text(rect.x,rect.y,rect.width,rect.height, @commands[index][0]) if $game_switches[@commands[index][2]]
- self.contents.icon_text_right(rect.y,rect.width,24, @commands[index][1]) if $game_switches[@commands[index][2]]
- self.contents.draw_text(rect, Sky::Text::SWITCH_OFF) unless $game_switches[@commands[index][2]]
- else
- self.contents.icon_text(rect.x,rect.y,rect.width,rect.height, @commands[index][0])
- self.contents.icon_text_right(rect.y,rect.width,24, @commands[index][1])
- end
- end
- end
- class Scene_Command < Scene_Base
- def initialize(index)
- @menu = Sky::Text::Menu_Index[index]
- end
- def start
- if @menu["Layout"] == 0
- @veiwport = Viewport.new(0,0,544,416)
- @header = Window_Base.new(0,0,544,56)
- @header.contents.draw_text(0,0,508,24,@menu["Title"],1)
- @window = Window_Base.new(0,56,544,360)
- @window.contents.font.size = 32
- @window.contents.draw_text(4,16,512,36,@menu["Column"][0])
- @window.contents.draw_text(4,16,504,36,@menu["Column"][1],2)
- @window.contents.font.size = 20
- @command_window = SCommand_Window.new(@menu)
- @command_window.z = 101
- @command_window.opacity = 0
- create_menu_background
- else
- @veiwport = Viewport.new(0,0,544,416)
- @header = Window_Base.new(0,0,544,64)
- @header.contents.font.size = 32
- @header.contents.draw_text(0,0,508,34,@menu["Title"],1)
- @header.contents.font.size = 20
- @window = Window_Base.new(0,64,544,352)
- @window.contents.font.bold = true
- @window.contents.draw_text(4,8,512,24,@menu["Column"][0])
- @window.contents.draw_text(4,8,504,24,@menu["Column"][1],2)
- @window.contents.font.bold = false
- @command_window = SCommand_Window.new(@menu)
- @command_window.z = 101
- @command_window.opacity = 0
- create_menu_background
- end
- end
- def update
- @header.update
- @command_window.update
- if Input.trigger?(Input::B)
- Sound.play_cancel
- $game_variables[@menu["Variable"]] = -1
- dispose_windows
- elsif Input.trigger?(Input::C)
- if @menu[@command_window.index].size == 3
- if $game_switches[@menu[@command_window.index][2]]
- Sound.play_decision
- $game_variables[@menu["Variable"]] = @command_window.index + 1
- dispose_menu_background
- @header.dispose
- @command_window.dispose
- @window.dispose
- $scene = @menu["Next"]
- else
- Sound.play_buzzer
- end
- else
- Sound.play_decision
- $game_variables[@menu["Variable"]] = @command_window.index + 1
- @header.dispose
- @command_window.dispose
- @window.dispose
- $scene = @menu["Next"]
- end
- end
- end
- def dispose_windows
- dispose_menu_background
- @header.dispose
- @command_window.dispose
- @window.dispose
- $scene = Scene_Map.new
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement