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? 
Now you can do it! 
This scriptlet lets you alter its color! 
Just configure the SELECT_COLOR constant accordingly and that's it!
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.
Crediting me as the author is optional. 
That's it!
|