3 Character Menu , For games using parties of only three characters.
Dec 23 2010, 08:04 PM
Chaotic Good
Group: + Gold Member
Posts: 2,538
Type: Writer
RM Skill: Masterful
3 Character Menu By Dark GaiaIntroduction This is a simple menu rewrite that makes it so your menu only shows three characters, instead of the usual four. This is designed for games that use three character parties, like
Final Fantasy VIII and
Chrono Trigger . It also adds a window displaying the player's current location along the bottom of the screen, just in case you don't already have one.
Installation To install this script into your game, just open up your Script Editor, scroll down to where it says â–¼ Materials and just below this point, right click, choose "Insert" and paste this script in. This script
should work alongside any other scripts that modify the menu, except for scripts that alter the properties of the windows or add new windows or commands.
Usage Conditions This is free for use, even for commercial games, but you must credit me if you use it.
Script
[Show/Hide] Show script
CODE
#============================================================================== # * 3 Character Menu* # by Dark Gaia #============================================================================== # * This script rewrites your menu screen so that it shows only three party # members, for games where you only want to use a party of three. * #============================================================================== # * THIS SCRIPT ONLY WORKS IN RPG MAKER VX! * #============================================================================== # * To install this script into your game, just open up your Script Editor, # scroll down to where it says â–¼ Materials and just below this point, right # click, choose "Insert" and paste this script in. * #============================================================================== # * This script is free for use in all games, including commercial games, so # long as you credit me if you use it. * #============================================================================== #Begin script - do not edit past here, or you may break the script! #============================================================================== # ** Window_MenuStatus #============================================================================== class Window_MenuStatus < Window_Selectable #-------------------------------------------------------------------------- # * Object Initialization # x : window X coordinate # y : window Y coordinate #-------------------------------------------------------------------------- def initialize(x, y) super(x, y, 360, 360) refresh self.active = false self.index = -1 end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear @item_max = $game_party.members.size @column_max = $game_party.members.size for actor in $game_party.members draw_actor_face(actor, actor.index * 115 +2, 2, 92 ) x = actor . index * 115 + WLH / 2 y = 96 + WLH / 2 draw_actor_name (actor, x - 10, y + 0) draw_actor_class(actor, x - 10, y + 30) draw_actor_level(actor, x - 10, y + 45) draw_actor_state(actor, x - 10, y + 60) if actor . index % 2 == 0 draw_actor_hp(actor, x - 10, y + 125, width - 270) draw_actor_mp(actor, x - 10, y + 145, width - 270) else draw_actor_hp(actor, x - 10, y + 125, width - 270) draw_actor_mp(actor, x - 10, y + 145, width - 270) end end end #-------------------------------------------------------------------------- # * Update cursor #-------------------------------------------------------------------------- def update_cursor if @index < 0 # No cursor self.cursor_rect.empty elsif @index < @item_max # Normal self.cursor_rect.set(@index * 115, 0, 96, 103) elsif @index >= 100 # Self self.cursor_rect.set( (@index - 100) * 96, 0, 96, 96) else # All self.cursor_rect.set(0, 0, 96, @item_max * 96) end end end #============================================================================== # ** Window_Location #============================================================================== class Window_Lieu < Window_Base def initialize(x, y) super(x, y, 360, WLH+32) self.contents = Bitmap.new(width - 32, height - 32) refresh end def refresh self.contents.clear $maps = load_data("Data/MapInfos.rvdata") @map_id = $game_map.map_id @map_name = $maps[@map_id].name self.contents.font.color = system_color self.contents.font.color = normal_color self.contents.draw_text(-10, -3, 360, 32, @map_name, 1) end end #============================================================================== # ** Scene_Menu #============================================================================== class Scene_Menu < Scene_Base #-------------------------------------------------------------------------- # * Object Initialization # menu_index : command cursor's initial position #-------------------------------------------------------------------------- def initialize(menu_index = 0) @menu_index = menu_index end #-------------------------------------------------------------------------- # * Start processing #-------------------------------------------------------------------------- def start super create_menu_background create_command_window @lieu_window = Window_Lieu.new(184, 360) @gold_window = Window_Gold.new(0, 360) @status_window = Window_MenuStatus.new(184, 0) end #-------------------------------------------------------------------------- # * Termination Processing #-------------------------------------------------------------------------- def terminate super dispose_menu_background @command_window.dispose @gold_window.dispose @lieu_window.dispose @status_window.dispose end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super update_menu_background @command_window.update @gold_window.update @lieu_window.update @status_window.update if @command_window.active update_command_selection elsif @status_window.active update_actor_selection end end #-------------------------------------------------------------------------- # * Create Command Window #-------------------------------------------------------------------------- def create_command_window s1 = Vocab::item s2 = Vocab::skill s3 = Vocab::equip s4 = Vocab::status s5 = Vocab::save s6 = Vocab::game_end @command_window = Window_Command.new(184, [s1, s2, s3, s4, s5, s6]) @command_window.index = @menu_index if $game_party.members.size == 0 # If number of party members is 0 @command_window.draw_item(0, false) # Disable item @command_window.draw_item(1, false) # Disable skill @command_window.draw_item(2, false) # Disable equipment @command_window.draw_item(3, false) # Disable status end if $game_system.save_disabled # If save is forbidden @command_window.draw_item(4, false) # Disable save end end #-------------------------------------------------------------------------- # * Update Command Selection #-------------------------------------------------------------------------- def update_command_selection if Input.trigger?(Input::B) Sound.play_cancel $scene = Scene_Map.new elsif Input.trigger?(Input::C) if $game_party.members.size == 0 and @command_window.index < 4 Sound.play_buzzer return elsif $game_system.save_disabled and @command_window.index == 4 Sound.play_buzzer return end Sound.play_decision case @command_window.index when 0 # Item $scene = Scene_Item.new when 1,2,3 # Skill, equipment, status start_actor_selection when 4 # Save $scene = Scene_File.new(true, false, false) when 5 # End Game $scene = Scene_End.new end end end #-------------------------------------------------------------------------- # * Start Actor Selection #-------------------------------------------------------------------------- def start_actor_selection @command_window.active = false @status_window.active = true if $game_party.last_actor_index < @status_window.item_max @status_window.index = $game_party.last_actor_index else @status_window.index = 0 end end #-------------------------------------------------------------------------- # * End Actor Selection #-------------------------------------------------------------------------- def end_actor_selection @command_window.active = true @status_window.active = false @status_window.index = -1 end #-------------------------------------------------------------------------- # * Update Actor Selection #-------------------------------------------------------------------------- def update_actor_selection if Input.trigger?(Input::B) Sound.play_cancel end_actor_selection elsif Input.trigger?(Input::C) $game_party.last_actor_index = @status_window.index Sound.play_decision case @command_window.index when 1 # skill $scene = Scene_Skill.new(@status_window.index) when 2 # equipment $scene = Scene_Equip.new(@status_window.index) when 3 # status $scene = Scene_Status.new(@status_window.index) end end end end
Screenshot
This post has been edited by Dark Gaia : Dec 23 2010, 08:06 PM
__________________________
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:
RPG RPG Revolution is an
Privacy
Policy and
Legal