Save-Point
MenuDisabler VX + ACE - Printable Version

+- Save-Point (https://www.save-point.org)
+-- Forum: Material Development (https://www.save-point.org/forum-8.html)
+--- Forum: Scripts Database (https://www.save-point.org/forum-39.html)
+---- Forum: RPGMaker VX/VXAce (RGSS2/3) Engines (https://www.save-point.org/forum-117.html)
+---- Thread: MenuDisabler VX + ACE (/thread-11329.html)



MenuDisabler VX + ACE - kyonides - 12-12-2024

MenuDisabler VX + ACE

by Kyonides

Introduction

Do you need to block the player's ability to consume items?
Or do you hate the team and wish to make it suffer by blocking all skills just because?
Or perhaps you should prevent the player from equiping new gear at any specific moment...

If any of those things is true, then this scriptlet is for you! Grinning

Just configure the game switch ID's accordingly. Winking

For VX

Code:
# * MenuDisabler VX * #
#   Scripter : Kyonides Arkanthes
#   2023-11-17

# It uses 3 game switches to block items, skills or equipment.

module MenuDisabler
  BLOCK_ITEM_SWITCH  = 100
  BLOCK_SKILL_SWITCH = 150
  BLOCK_EQUIP_SWITCH = 200
end

class Window_Command
  def change_command(name, enabled)
    cmd = @commands.find {|v| v == name }
    n = @commands.index(cmd)
    draw_item(n, enabled) if n
  end

  def make_command_indexes
    @names = {}
    @commands.each_with_index {|c, n| @names[n] = c }
  end

  def current_name
    @names[@index]
  end
end

class Scene_Menu
  include MenuDisabler
  alias :kyon_disable_equip_scn_mn_crt_cmd_win :create_command_window
  alias :kyon_disable_equip_scn_mn_cmd_sel :update_command_selection
  def create_command_window
    kyon_disable_equip_scn_mn_crt_cmd_win
    @command_window.make_command_indexes
    anybody = $game_party.members.size > 0
    @states = {}
    @states[Vocab.item]     = (anybody and !$game_switches[BLOCK_ITEM_SWITCH])
    @states[Vocab.skill]    = (anybody and !$game_switches[BLOCK_SKILL_SWITCH])
    @states[Vocab.equip]    = (anybody and !$game_switches[BLOCK_EQUIP_SWITCH])
    @states[Vocab.status]   = anybody
    @states[Vocab.save]     = !$game_system.save_disabled
    @states[Vocab.game_end] = true
    @command_window.change_command(Vocab.item, @states[Vocab.item])
    @command_window.change_command(Vocab.skill, @states[Vocab.skill])
    @command_window.change_command(Vocab.equip, @states[Vocab.equip])
  end

  def update_command_selection
    if Input.trigger?(Input::C)
      name = @command_window.current_name
      return Sound.play_cancel unless @states[name]
    end
    kyon_disable_equip_scn_mn_cmd_sel
  end
end

For VX ACE

Code:
# * MenuDisabler ACE * #
#   Scripter : Kyonides Arkanthes
#   2024-03-17

# It uses 3 game switches to block items, skills or equipment.

module MenuDisabler
  BLOCK_ITEM_SWITCH  = 100
  BLOCK_SKILL_SWITCH = 150
  BLOCK_EQUIP_SWITCH = 200
end

class Window_Command
  def change_command(name, symbol, enabled, ext=nil)
    hash = @list.find {|v| v[:name] == name }
    if hash
      hash[:enabled] = enabled
    else
      hash = { name: name, symbol: symbol, enabled: enabled, ext: ext }
      @list << hash
    end
    n = @list.index(hash)
    clear_item(n)
    draw_item(n)
  end
end

class Scene_Menu
  alias :kyon_disable_equip_scn_mn_crt_cmd_win :create_command_window
  alias :kyon_disable_equip_scn_mn_cmd_personal :command_personal
  def create_command_window
    kyon_disable_equip_scn_mn_crt_cmd_win
    anybody = $game_party.members.size > 0
    state = !$game_switches[MenuDisabler::BLOCK_ITEM_SWITCH]
    @command_window.change_command(Vocab.item, :item, anybody && state)
    state = !$game_switches[MenuDisabler::BLOCK_SKILL_SWITCH]
    @command_window.change_command(Vocab.skill, :skill, anybody && state)
    state = !$game_switches[MenuDisabler::BLOCK_EQUIP_SWITCH]
    @command_window.change_command(Vocab.equip, :equip, anybody && state)
  end
end

Terms & Conditions

Free for use in ANY game. Gamer
Due credit is mandatory. Serious
That's it! Tongue sticking out