2 Actor Compact Menu
2 Actor Compact MenuBy Stulee1(forums.rpgmakerweb.com)
Location Window by Roninator 2 (forums.rpgmakerweb.com)
Terms Of Use : Feel Free To Use So Long As Propper Credits Are Given - Must Credit Roninator 2 Aswell As Me
Added a couple of new lines of code like font size just for the location windowAnd The xy positions of the menu windows
Spoiler: Screenshot
Spoiler: Script Code:
#2 Actor Compact Menu# #By Stulee1# #Location Window by Roninator2 #Makes Rpgmaker Vx Think Your Only Using 2 Characters in a# #compact form# #Place Above Main But Below Materials# #Terms Of Use# #feel free to use as you wish so long #as credit is given#==============================================================================# ** Window_Gold#------------------------------------------------------------------------------#This window displays the amount of gold.#==============================================================================class Window_Gold < Window_Base#--------------------------------------------------------------------------# * Object Initialization# x : window X coordinate# y : window Y coordinate#--------------------------------------------------------------------------def initialize(x, y) super(x, y, 160, WLH + 34) refreshend#--------------------------------------------------------------------------# * Refresh#--------------------------------------------------------------------------def refresh self.contents.clear draw_currency_value($game_party.gold, 4, 0, 120)endend#==============================================================================# ** Scene_Menu#------------------------------------------------------------------------------#This class performs the menu screen processing.#==============================================================================class Scene_Menu < Scene_Base#--------------------------------------------------------------------------# * Object Initialization# menu_index : command cursor's initial position#--------------------------------------------------------------------------def initialize(menu_index = 0) @menu_index = menu_indexend#--------------------------------------------------------------------------# * Start processing#--------------------------------------------------------------------------def start super create_menu_background create_command_window @gold_window = Window_Gold.new(0, 175) @status_window = Window_MenuStatus.new(160, 0)end#--------------------------------------------------------------------------# * Termination Processing#--------------------------------------------------------------------------def terminate super dispose_menu_background @command_window.dispose @gold_window.dispose @status_window.disposeend#--------------------------------------------------------------------------# * Frame Update#--------------------------------------------------------------------------def update super update_menu_background @command_window.update @gold_window.update @status_window.update if @command_window.active update_command_selection elsif @status_window.active update_actor_selection endend#--------------------------------------------------------------------------# * 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(160, ) @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 @command_window.x = 60 end if $game_system.save_disabled # If save is forbidden @command_window.draw_item(4, false) # Disable save endend#--------------------------------------------------------------------------# * 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 endend#--------------------------------------------------------------------------# * 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 endend#--------------------------------------------------------------------------# * End Actor Selection#--------------------------------------------------------------------------def end_actor_selection @command_window.active = true @status_window.active = false @status_window.index = -1end#--------------------------------------------------------------------------# * 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 endendend#==============================================================================# ** Window_MenuStatus#------------------------------------------------------------------------------#This window displays party member status on the menu screen.#==============================================================================class Window_MenuStatus < Window_Selectable#--------------------------------------------------------------------------# * Object Initialization# x : window X coordinate# y : window Y coordinate#--------------------------------------------------------------------------def initialize(x, y) super(x, y, 130, 233) refresh self.active = false self.index = -1end#--------------------------------------------------------------------------# * Refresh#--------------------------------------------------------------------------def refresh self.contents.clear @item_max = $game_party.members.size for actor in $game_party.members draw_actor_face(actor, 2, actor.index * 96 + 2, 92) x = 104 y = actor.index * 96 + WLH / 2 draw_actor_name(actor, x, y) draw_actor_class(actor, x + 120, y) draw_actor_level(actor, x, y + WLH * 1) draw_actor_state(actor, x, y + WLH * 2) draw_actor_hp(actor, x + 120, y + WLH * 1) draw_actor_mp(actor, x + 120, y + WLH * 2) endend#--------------------------------------------------------------------------# * Update cursor#--------------------------------------------------------------------------def update_cursor if @index < 0 # No cursor self.cursor_rect.empty elsif @index < @item_max # Normal self.cursor_rect.set(0, @index * 96, contents.width, 96) elsif @index >= 100 # Self self.cursor_rect.set(0, (@index - 100) * 96, contents.width, 96) else # All self.cursor_rect.set(0, 0, contents.width, @item_max * 96) endendendclass Window_Location < Window_Basedef refresh self.contents.clear self.contents.font.color = normal_color self.contents.font.size = 25 self.contents.draw_text(0, -5, 120, 20, find_map_name, 1)enddef find_map_name name = "no where" id = $game_map.map_id.to_s data = load_data("Data/MapInfos.rvdata") map_name = data[$game_map.map_id].name if !map_name.include?(id) name = map_name end return nameendendclass Scene_Menu < Scene_Basedef start super create_menu_background create_command_window @gold_window = Window_Gold.new(120, 235) @status_window = Window_MenuStatus.new(280, 60) @location_window = Window_Location.new(120,293,293,48) @location_window.refresh @command_window.x = 120 @command_window.y = 60enddef terminate super dispose_menu_background @command_window.dispose @gold_window.dispose @status_window.dispose @location_window.disposeendend
本贴来自国际rpgmaker官方论坛作者:stulee1处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/2-actor-compact-menu.141147/
页:
[1]