Save-Point
Command Color 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: Command Color VX + ACE (/thread-11591.html)



Command Color VX + ACE - kyonides - 06-16-2025

Command Color VX + ACE

by Kyonides

Did you ever want to change your command window's currently selected command a little bit? Thinking
Now you can do it! Shocked
This scriptlet lets you alter its color! Painter

Just configure the SELECT_COLOR constant accordingly and that's it! Two Thumbs Up! 

VX Script
Code:
# * Command Color VX * #
#   Scripter : Kyonides
#   v0.5.0 - 2025-06-15

# The SELECT_COLOR Constant lets you configure your custom color following
# the usual (R,G,B) or (R,G,B,A) color format.

class Window_Command
  SELECT_COLOR = Color.new(255, 255, 0)
  DISABLED_ALPHA = 100
  alias :kyon_cmd_clr_win_comm_init :initialize
  alias :kyon_cmd_clr_win_comm_set_index :index=
  alias :kyon_cmd_clr_win_comm_draw_item :draw_item
  alias :kyon_cmd_clr_win_comm_up :update
  def initialize(width, commands)
    @disabled = []
    @last_pos = -1
    kyon_cmd_clr_win_comm_init(width, commands)
  end

  def disable_item(index)
    @disabled << index
    @disabled = @disabled.sort.uniq
  end

  def draw_item(index, enabled = true)
    disable_item(index) unless enabled
    kyon_cmd_clr_win_comm_draw_item(index, enabled)
  end

  def draw_item_color(n, current)
    rect = item_rect(n)
    rect.x += 4
    rect.width -= 8
    b = self.contents
    b.clear_rect(rect)
    new_color = current ? SELECT_COLOR.dup : normal_color.dup
    new_color.alpha = DISABLED_ALPHA if @disabled.include?(n)
    b.font.color = new_color
    b.draw_text(rect, @commands[n])
  end

  def index=(new_index)
    return if @index == new_index
    if @index >= 0
      draw_item_color(@index, nil)
      @last_pos = @index
    end
    kyon_cmd_clr_win_comm_set_index(new_index)
    draw_item_color(@index, true)
  end

  def update_command
    return if @last_pos == @index
    draw_item_color(@last_pos, nil) if @last_pos >= 0
    draw_item_color(@index, true)
    @last_pos = @index
  end

  def update
    kyon_cmd_clr_win_comm_up
    update_command
  end
end

VX ACE Script
Code:
# * Command Color ACE * #
#   Scripter : Kyonides
#   v0.5.0 - 2025-06-15

# The SELECT_COLOR Constant lets you configure your custom color following
# the usual (R,G,B) or (R,G,B,A) color format.

class Window_Command
  SELECT_COLOR = Color.new(255, 255, 0)
  def draw_new_item(index)
    change_color(SELECT_COLOR, command_enabled?(index))
    draw_text(item_rect_for_text(index), command_name(index), alignment)
  end

  def clear_old_item(n)
    return if @index == n
    clear_item(@index)
    draw_item(@index)
  end

  def select(n)
    clear_old_item(n)
    self.index = n if n
    draw_new_item(@index) if @index == n
  end
end

Terms & Use

Free as in Beer beer.
Crediting me as the author is optional. Winking
That's it! Tongue sticking out