#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ #_/ ◆ Additional Help Window Functions - KGC_HelpExtension ◆ VX ◆ #_/ ◇ Last Update: 2007/12/19 #_/ ◆ Written by TOMY #_/ ◆ Translation by Mr. Anonymous #_/ ◆ KGC Site: #_/ ◆ http://ytomy.sakura.ne.jp/ #_/ ◆ Translator's Blog: #_/ ◆ http://mraprojects.wordpress.com #_/---------------------------------------------------------------------------- #_/ Installation: Requires and is inserted above KGC_DrawFormatText. #_/============================================================================ #_/ Additional Help Window functions. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ #=============================================================================# # ★ BEGIN Customization ★ # #=============================================================================# module KGC module HelpExtension # The number of rows (lines) the help window can display. # Rows are divided with the | character in the item/skill's description. ROW_MAX = 3 # Button used when status window of shop screen scrolls. SHOP_STATUS_SCROLL_BUTTON = Input::A end end #=============================================================================# # ★ END Customization ★ # #=============================================================================# #-------------------------------------------------------------------------- $imported = {} if $imported == nil $imported["HelpExtension"] = true #============================================================================== # ■ Window_Help #============================================================================== class Window_Help < Window_Base attr_reader :row_max #-------------------------------------------------------------------------- # ● Object initialization #-------------------------------------------------------------------------- alias initialize_KGC_HelpExtension initialize def initialize @row_max = 1 initialize_KGC_HelpExtension end #-------------------------------------------------------------------------- # ● The number of lines setting #-------------------------------------------------------------------------- def row_max=(value) @row_max = [value, 1].max self.height = WLH * @row_max + 32 create_contents # Content restoration text = @text align = @align @text = @align = nil set_text(text, align) end #-------------------------------------------------------------------------- # ● Text setting # Text: Character string displayed in window # Align: Alignment(0. left justification, 1 center just., 2 right just.) #-------------------------------------------------------------------------- def set_text(text, align = 0) if text != @text or align != @align self.contents.clear self.contents.font.color = normal_color font_buf = self.contents.font.clone # \N[x] Converts to an integer. buf = text.gsub(/\\N(\[\d+\])/i) { "\\__#{$1}" } lines = buf.split(/(?:[|]|\\n)/i) lines.each_with_index { |l, i| # Convert \N[x] returns and draws. l.gsub!(/\\__(\[\d+\])/i) { "\\N#{$1}" } self.contents.draw_format_text(4, i * WLH, self.width - 40, WLH, l, align) } self.contents.font = font_buf @text = text @align = align end end end #==================================End Class===================================# #============================================================================== # ■ Scene_Item #============================================================================== class Scene_Item < Scene_Base #-------------------------------------------------------------------------- # ● Beginning processing #-------------------------------------------------------------------------- alias start_KGC_HelpExtension start def start start_KGC_HelpExtension adjust_window_size end #-------------------------------------------------------------------------- # ● Adjustment of window size #-------------------------------------------------------------------------- def adjust_window_size @help_window.row_max = KGC::HelpExtension::ROW_MAX @item_window.y = @help_window.height @item_window.height = Graphics.height - @help_window.height @item_window.refresh end end #==================================End Class===================================# #============================================================================== # ■ Scene_Skill #============================================================================== class Scene_Skill < Scene_Base #-------------------------------------------------------------------------- # ● Beginning processing #-------------------------------------------------------------------------- alias start_KGC_HelpExtension start def start start_KGC_HelpExtension adjust_window_size end #-------------------------------------------------------------------------- # ● Adjustment of window size #-------------------------------------------------------------------------- def adjust_window_size @help_window.row_max = KGC::HelpExtension::ROW_MAX @status_window.y = @help_window.height dy = @help_window.height + @status_window.height @skill_window.y = dy @skill_window.height = Graphics.height - dy @skill_window.refresh end end #==================================End Class===================================# #============================================================================== # ■ Scene_Equip #============================================================================== class Scene_Equip < Scene_Base #-------------------------------------------------------------------------- # ● Beginning processing #-------------------------------------------------------------------------- alias start_KGC_HelpExtension start def start start_KGC_HelpExtension adjust_window_size end #-------------------------------------------------------------------------- # ● Adjustment of window size #-------------------------------------------------------------------------- def adjust_window_size @help_window.row_max = KGC::HelpExtension::ROW_MAX @equip_window.y = @help_window.height @status_window.y = @help_window.height resize_item_windows end #-------------------------------------------------------------------------- # ● Size change of item window #-------------------------------------------------------------------------- def resize_item_windows @item_windows.each { |w| dy = @help_window.height + @equip_window.height w.y = dy w.height = Graphics.height - dy w.refresh } end end #==================================End Class===================================# #============================================================================== # ■ Scene_Shop #============================================================================== class Scene_Shop < Scene_Base #-------------------------------------------------------------------------- # ● Beginning processing #-------------------------------------------------------------------------- alias start_KGC_HelpExtension start def start start_KGC_HelpExtension adjust_window_size end #-------------------------------------------------------------------------- # ● Adjustment of window size #-------------------------------------------------------------------------- def adjust_window_size @help_window.row_max = KGC::HelpExtension::ROW_MAX @command_window.y = @help_window.height @gold_window.y = @help_window.height dy = @help_window.height + @command_window.height @dummy_window.y = @buy_window.y = @sell_window.y = @number_window.y = @status_window.y = dy @dummy_window.height = @buy_window.height = @sell_window.height = @number_window.height = @status_window.height = Graphics.height - dy @dummy_window.create_contents @number_window.create_contents end #-------------------------------------------------------------------------- # ● Frame Update #-------------------------------------------------------------------------- alias update_KGC_HelpExtension update def update if !@command_window.active && Input.press?(KGC::HelpExtension::SHOP_STATUS_SCROLL_BUTTON) super update_menu_background update_scroll_status return else @status_window.cursor_rect.empty end update_KGC_HelpExtension end #-------------------------------------------------------------------------- # ● Processing status window scroll #-------------------------------------------------------------------------- def update_scroll_status @status_window.cursor_rect.width = @status_window.contents.width @status_window.cursor_rect.height = @status_window.height - 32 @status_window.update if Input.press?(Input::UP) @status_window.oy = [@status_window.oy - 4, 0].max elsif Input.press?(Input::DOWN) max_pos = [@status_window.contents.height - (@status_window.height - 32), 0].max @status_window.oy = [@status_window.oy + 4, max_pos].min end end end #==================================End Class===================================# #============================================================================== # ■ Scene_Battle #============================================================================== class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # ● Beginning of skill selection #-------------------------------------------------------------------------- alias start_skill_selection_KGC_HelpExtension start_skill_selection def start_skill_selection start_skill_selection_KGC_HelpExtension adjust_skill_window_size end #-------------------------------------------------------------------------- # ● Size adjustment of skill window #-------------------------------------------------------------------------- def adjust_skill_window_size @help_window.row_max = KGC::HelpExtension::ROW_MAX @skill_window.y = @help_window.height @skill_window.height = Graphics.height - (@help_window.height + @status_window.height) @skill_window.refresh end #-------------------------------------------------------------------------- # ● Beginning of item selection #-------------------------------------------------------------------------- alias start_item_selection_KGC_HelpExtension start_item_selection def start_item_selection start_item_selection_KGC_HelpExtension adjust_item_window_size end #-------------------------------------------------------------------------- # ● Size adjustment of item window #-------------------------------------------------------------------------- def adjust_item_window_size @help_window.row_max = KGC::HelpExtension::ROW_MAX @item_window.y = @help_window.height @item_window.height = Graphics.height - (@help_window.height + @status_window.height) @item_window.refresh end end #==================================End Class===================================#