Simplified MOG Quick Tool Select

Status
Not open for further replies.

Lorenze

Veteran
Veteran
Joined
Mar 17, 2012
Messages
826
Reaction score
547
First Language
English
Primarily Uses
RMMV
EDIT: Nevermind, figured out how to do it myself. Thanks anyway!

Hey guys! All I need is a simple modification of Mog's quick tool select script for XAS. Here's what I need:

  • Removed "Skill Select" window (my game doesn't use skills), so when the player brings up the tool select, it goes
    straight to the "Item Select" window and stays there.
  • Reduce the height to only two row, with 7 items on each row.
  • Reduce the width to only have seven items selectable.
  • (Optional) Center the text in the top window
  • (Optional) Have be enabled/disabled with a switch
Here's quite possibly the worst mockup in existence, but hopefully you get the idea.



Here's the original code:

#==============================================================================# ■ +++ MOG - XAS QUICK TOOL SELECT (v1.0) +++#==============================================================================# By Moghunter# http://www.atelier-rgss.com#==============================================================================# Ativa uma janela que permite o jogador escolher rapidamente as habilidades,# equipamentos e itens usados no XAS. #===============================================================================module QUICK_TOOL_SELECT # Botão que ativa a janela de seleção rápida. QUICK_TOOL_SELECT_BUTTON = Input::L # Ativar janela deslizante. ENALBLE_SLIDE = trueend#==============================================================================# ■ Game_Player #==============================================================================class Game_Player < Game_Character #-------------------------------------------------------------------------- # ● Update Action Command #-------------------------------------------------------------------------- alias quick_tool_update_action_command update_action_command def update_action_command update_quick_tool_button quick_tool_update_action_command end #-------------------------------------------------------------------------- # ● Update Quick Tool Button #-------------------------------------------------------------------------- def update_quick_tool_button if Input.trigger?(QUICK_TOOL_SELECT::QUICK_TOOL_SELECT_BUTTON) return unless can_use_quick_tool_button? SceneManager.call(Scene_Quick_Skill_Tool) end end #-------------------------------------------------------------------------- # ● Can Use Quick Tool Button #-------------------------------------------------------------------------- def can_use_quick_tool_button? return false if self.battler.shield return false if self.battler.x_charge_action[2] > 0 return true end end #==============================================================================# ■ Window_Skill_Tool#==============================================================================class Window_Skill_Tool < Window_Selectable #-------------------------------------------------------------------------- # ● Initialize #-------------------------------------------------------------------------- def initialize(actor) size_x = 285 size_y = 200 center_x = (544 - size_x) / 2 center_y = (416 - size_y) / 2 super(center_x , center_y, size_x, size_y) @actor = actor self.z = 9999 select(0) activate refresh end #------------------------------------------------------------------------------ # ● Col Max #------------------------------------------------------------------------------ def col_max return 8 end #------------------------------------------------------------------------------ # ● Item Max #------------------------------------------------------------------------------ def item_max return @item_max == nil ? 0 : @item_max end #-------------------------------------------------------------------------- # ● Skill #-------------------------------------------------------------------------- def skill return @data[self.index] end #-------------------------------------------------------------------------- # ● Refresh #-------------------------------------------------------------------------- def refresh @data = [] for skill in @actor.skills if skill.note =~ /<Duration = (\d+)>/ @data.push(skill) end end @item_max = @data.size create_contents for i in 0...@item_max draw_item(i) end end #-------------------------------------------------------------------------- # ● Draw Item #-------------------------------------------------------------------------- def draw_item(index) rect = item_rect(index) self.contents.clear_rect(rect) skill = @data[index] if skill != nil rect.width -= 4 draw_icon(skill.icon_index, rect.x, rect.y, true) end end #-------------------------------------------------------------------------- # ● Item Rect #-------------------------------------------------------------------------- def item_rect(index) rect = Rect.new(0, 0, 0, 0) rect.width = 24 rect.height = 24 rect.x = index % col_max * 32 rect.y = index / col_max * 24 return rect end #-------------------------------------------------------------------------- # ● Cursor Page Down #-------------------------------------------------------------------------- def cursor_pagedown end #-------------------------------------------------------------------------- # ● Cursor Page Up #-------------------------------------------------------------------------- def cursor_pageup end #-------------------------------------------------------------------------- # ● Update Help #-------------------------------------------------------------------------- def update_help @help_window.set_text(skill == nil ? "" : (skill.name + " - " + skill.description)) end end#==============================================================================# ■ Window_Item_Tool#==============================================================================class Window_Item_Tool < Window_Selectable #-------------------------------------------------------------------------- # ● Initialize #-------------------------------------------------------------------------- def initialize(actor) size_x = 285 size_y = 200 center_x = (544 - size_x) / 2 center_y = (416 - size_y) / 2 super(center_x , center_y, size_x, size_y) @actor = actor @column_max = 8 self.z = 9999 select(0) activate refresh end #------------------------------------------------------------------------------ # ● Col Max #------------------------------------------------------------------------------ def col_max return 8 end #------------------------------------------------------------------------------ # ● Item Max #------------------------------------------------------------------------------ def item_max return @item_max == nil ? 0 : @item_max end #-------------------------------------------------------------------------- # ● Item #-------------------------------------------------------------------------- def item return @data[self.index] end #-------------------------------------------------------------------------- # ● Refresh #-------------------------------------------------------------------------- def refresh @data = [] for item in $game_party.items if item.note =~ /<Action ID = (\d+)>/ @data.push(item) end end for weapon in $game_party.weapons if weapon.note =~ /<Action ID = (\d+)>/ and @actor.equippable?(weapon) @data.push(weapon) end end for armor in $game_party.armors if armor.note =~ /<Action>/ and @actor.equippable?(armor) @data.push(armor) end end @item_max = @data.size create_contents for i in 0...@item_max draw_item(i) end end #-------------------------------------------------------------------------- # ● Draw Item #-------------------------------------------------------------------------- def draw_item(index) rect = item_rect(index) self.contents.clear_rect(rect) item = @data[index] if item != nil rect.width -= 4 draw_icon(item.icon_index, rect.x, rect.y, true) end end #-------------------------------------------------------------------------- # ● Item Rect #-------------------------------------------------------------------------- def item_rect(index) rect = Rect.new(0, 0, 0, 0) rect.width = 24 rect.height = 24 rect.x = index % col_max * 32 rect.y = index / col_max * 24 return rect end #-------------------------------------------------------------------------- # ● Cursor Page Down #-------------------------------------------------------------------------- def cursor_pagedown end #-------------------------------------------------------------------------- # ● Cursor Page Up #-------------------------------------------------------------------------- def cursor_pageup end #-------------------------------------------------------------------------- # ● Update Help #-------------------------------------------------------------------------- def update_help @help_window.set_text(item == nil ? "" : (item.name + " - " + item.description)) end end#==============================================================================# ■ Scene Quick Skill Tool#==============================================================================class Scene_Quick_Skill_Tool < Scene_Base include QUICK_TOOL_SELECT #-------------------------------------------------------------------------- # ● Initialize #-------------------------------------------------------------------------- def initialize @actor = $game_party.members[0] end #-------------------------------------------------------------------------- # ● Start #-------------------------------------------------------------------------- def start super @spriteset = Spriteset_Map.new @viewport = Viewport.new(0, 0, 544, 416) @viewport.rect.set(0, 0, 544, 416) @viewport.ox = 0 @viewport.z = 9999 @help_window = Window_Help.new @help_window.viewport = @viewport @skill_window = Window_Skill_Tool.new(@actor) @skill_window.viewport = @viewport @skill_window.help_window = @help_window create_text_sprite setup_slide end #-------------------------------------------------------------------------- # ● Setup Slide #-------------------------------------------------------------------------- def setup_slide return unless ENALBLE_SLIDE @orig_x = @skill_window.x @skill_window.x -= 100 @skill_window.opacity = 0 @skill_window.contents_opacity = 0 @text.x = @skill_window.x @text.opacity = @skill_window.opacity @help_window.x += 100 @help_window.opacity = @skill_window.opacity @help_window.contents_opacity = @skill_window.contents_opacity end #-------------------------------------------------------------------------- # ● Create Text Sprite #-------------------------------------------------------------------------- def create_text_sprite @text = Sprite.new @text.bitmap = Bitmap.new(@skill_window.width,@skill_window.height + 32) @text.z = 10000 @text.bitmap.font.size = 16 @text.bitmap.font.bold = true @text.bitmap.font.name = "PT Sans" text_string = "Skill" @text.bitmap.draw_text(0, 0, @skill_window.width, 32, text_string.to_s,1) @text.bitmap.font.size = 14 text_string = "Q Item Select W" @text.bitmap.draw_text(0, @skill_window.height + 5, @skill_window.width, 32, text_string.to_s,1) @text.x = @skill_window.x @text.y = @skill_window.y - 20 end #-------------------------------------------------------------------------- # ● Perform Transition #-------------------------------------------------------------------------- def perform_transition if ENALBLE_SLIDE Graphics.transition(0) else Graphics.transition(10) end end #-------------------------------------------------------------------------- # ● Terminate #-------------------------------------------------------------------------- def terminate super @spriteset.dispose @text.bitmap.dispose @text.dispose unless @help_window.disposed? @help_window.dispose @skill_window.dispose end end #-------------------------------------------------------------------------- # ● Pre-Terminate #-------------------------------------------------------------------------- def pre_terminate super update_slide_terminate end #-------------------------------------------------------------------------- # ● Update Slide Terminate #-------------------------------------------------------------------------- def update_slide_terminate return unless ENALBLE_SLIDE for i in 0..10 @skill_window.x -= 10 @help_window.x += 10 @skill_window.opacity -= 25 @skill_window.contents_opacity -= 25 @text.x = @skill_window.x @text.opacity = @skill_window.opacity @help_window.opacity = @skill_window.opacity @help_window.contents_opacity = @skill_window.contents_opacity Graphics.update end end #-------------------------------------------------------------------------- # ● Update #-------------------------------------------------------------------------- def update super @spriteset.update update_skill_selection update_slide end #-------------------------------------------------------------------------- # ● Update Slide #-------------------------------------------------------------------------- def update_slide return unless ENALBLE_SLIDE return if @skill_window.x == @orig_x @skill_window.x += 10 @help_window.x -= 10 @skill_window.opacity += 25 @skill_window.contents_opacity += 25 if @skill_window.x >= @orig_x @skill_window.x = @orig_x @help_window.x = 0 @skill_window.opacity = 255 @skill_window.contents_opacity = 255 end @text.x = @skill_window.x @text.opacity = @skill_window.opacity @help_window.opacity = @skill_window.opacity @help_window.contents_opacity = @skill_window.contents_opacity end #-------------------------------------------------------------------------- # ● Update Skill Selection #-------------------------------------------------------------------------- def update_skill_selection if Input.trigger?(Input:: Sound.play_cancel SceneManager.call(Scene_Map) elsif Input.trigger?(Input::R) or Input.trigger?(Input::L) Sound.play_cursor SceneManager.call(Scene_Quick_Item_Tool) elsif Input.trigger?(Input::C) @skill = @skill_window.skill return if @skill == nil @actor.skill_id = @skill.id Sound.play_equip end endend#==============================================================================# ■ Scene Quick Item Tool#==============================================================================class Scene_Quick_Item_Tool < Scene_Base include QUICK_TOOL_SELECT #-------------------------------------------------------------------------- # ● Initialize #-------------------------------------------------------------------------- def initialize @actor = $game_party.members[0] end #-------------------------------------------------------------------------- # ● Start #-------------------------------------------------------------------------- def start super @spriteset = Spriteset_Map.new @viewport = Viewport.new(0, 0, 544, 416) @viewport.rect.set(0, 0, 544, 416) @viewport.ox = 0 @viewport.z = 9999 @help_window = Window_Help.new @help_window.viewport = @viewport @item_window = Window_Item_Tool.new(@actor) @item_window.viewport = @viewport @item_window.help_window = @help_window create_text_sprite setup_slide end #-------------------------------------------------------------------------- # ● Setup Slide #-------------------------------------------------------------------------- def setup_slide return unless ENALBLE_SLIDE @orig_x = @item_window.x @item_window.x -= 100 @item_window.opacity = 0 @item_window.contents_opacity = 0 @text.x = @item_window.x @text.opacity = @item_window.opacity @help_window.x += 100 @help_window.opacity = @item_window.opacity @help_window.contents_opacity = @item_window.contents_opacity end #-------------------------------------------------------------------------- # ● Create Text Sprite #-------------------------------------------------------------------------- def create_text_sprite @text = Sprite.new @text.bitmap = Bitmap.new(@item_window.width,@item_window.height + 32) @text.z = 10000 @text.bitmap.font.size = 16 @text.bitmap.font.bold = true @text.bitmap.font.name = "Georgia" text_string = "Item" @text.bitmap.draw_text(0, 0, @item_window.width, 32, text_string.to_s,1) @text.bitmap.font.size = 14 text_string = "L Skill Select R" @text.bitmap.draw_text(0, @item_window.height + 5, @item_window.width, 32, text_string.to_s,1) @text.x = @item_window.x @text.y = @item_window.y - 20 end #-------------------------------------------------------------------------- # ● Perform Transition #-------------------------------------------------------------------------- def perform_transition if ENALBLE_SLIDE Graphics.transition(0) else Graphics.transition(10) end end #-------------------------------------------------------------------------- # ● Terminate #-------------------------------------------------------------------------- def terminate super @spriteset.dispose @text.bitmap.dispose @text.dispose unless @help_window.disposed? @help_window.dispose @item_window.dispose end end #-------------------------------------------------------------------------- # ● Pre-Terminate #-------------------------------------------------------------------------- def pre_terminate super update_slide_terminate end #-------------------------------------------------------------------------- # ● Update Slide Terminate #-------------------------------------------------------------------------- def update_slide_terminate return unless ENALBLE_SLIDE for i in 0..10 @item_window.x -= 10 @help_window.x += 10 @item_window.opacity -= 25 @item_window.contents_opacity -= 25 @text.x = @item_window.x @text.opacity = @item_window.opacity @help_window.opacity = @item_window.opacity @help_window.contents_opacity = @item_window.contents_opacity Graphics.update end end #-------------------------------------------------------------------------- # ● Update #-------------------------------------------------------------------------- def update super @spriteset.update update_item_selection update_slide end #-------------------------------------------------------------------------- # ● Update Slide #-------------------------------------------------------------------------- def update_slide return unless ENALBLE_SLIDE return if @item_window.x == @orig_x @item_window.x += 10 @help_window.x -= 10 @item_window.opacity += 25 @item_window.contents_opacity += 25 if @item_window.x >= @orig_x @item_window.x = @orig_x @help_window.x = 0 @item_window.opacity = 255 @item_window.contents_opacity = 255 end @text.x = @item_window.x @text.opacity = @item_window.opacity @help_window.opacity = @item_window.opacity @help_window.contents_opacity = @item_window.contents_opacity end #-------------------------------------------------------------------------- # ● Update Item Selection #-------------------------------------------------------------------------- def update_item_selection if Input.trigger?(Input:: Sound.play_cancel SceneManager.call(Scene_Map) return elsif Input.trigger?(Input::R) or Input.trigger?(Input::L) Sound.play_cursor SceneManager.call(Scene_Quick_Skill_Tool) return elsif Input.trigger?(XAS_BUTTON::ACTION_2_BUTTON) @item = @item_window.item return if @item == nil if @item.is_a?(RPG::Weapon) if @actor.dual_wield? @actor.change_equip(1, @item) else @actor.change_equip(0, @item) end elsif @item.is_a?(RPG::Armor) @actor.change_equip(1, @item) elsif @item.is_a?(RPG::Item) @actor.item_id = @item.id end Sound.play_equip return elsif Input.trigger?(Input::C) @item = @item_window.item return if @item == nil case @item when RPG::Item @actor.item_id = @item.id when RPG::Weapon @actor.change_equip(0, @item) when RPG::Armor @actor.change_equip(1, @item) end Sound.play_equip @item_window.refresh return end endend$mog_rgss3_xas_quick_tool_select = true
Thanks so much!
 
Last edited by a moderator:

Lorenze

Veteran
Veteran
Joined
Mar 17, 2012
Messages
826
Reaction score
547
First Language
English
Primarily Uses
RMMV
Just gonna go ahead and bump this.
 

Lorenze

Veteran
Veteran
Joined
Mar 17, 2012
Messages
826
Reaction score
547
First Language
English
Primarily Uses
RMMV
Another bump. ;)
 

Lorenze

Veteran
Veteran
Joined
Mar 17, 2012
Messages
826
Reaction score
547
First Language
English
Primarily Uses
RMMV
Yet another bump.
 

Shaz

Global Moderators
Global Mod
Joined
Mar 2, 2012
Messages
40,720
Reaction score
13,996
First Language
English
Primarily Uses
RMMV
This thread is being closed, due to being solved. If for some reason you would like this thread re-opened, please report this post and leave a message why. Thank you.
 
Status
Not open for further replies.

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Posts

Latest Profile Posts

The second draft of my script is almost done, and I don't think I'm going to write a third draft. I'll make changes to dialogue here and there, but I'm happy with the series of events the way they are.
How you feel about font and dialogue box changing for every main character while the minor cast and regular npc get their own styles? Too much?
Just found an obviously custom effect (i.e. edited by me) in my resources>sounds folder called "rip jaw off". Dear Lord what is wrong with me as a person that at some point I needed a sound *specifically* for THAT??
(...rhetorical question.)
so like with the whole 'familiarity breeds contempt thingy', how are you supposed to tell if your title screen/battle music gets really tedious after a few dozen plays or if you're just personally hella sick of it?

Forum statistics

Threads
107,523
Messages
1,030,242
Members
139,648
Latest member
Heis
Top