По первому вопросу.
Скрипт вполне подходит, если правильно понял запрос, просто его нужно немного дополнить.
Спойлер Аддон:Код:# Аддон для Yanfly Engine Ace - Battle Command List
# Требует скрипт Yanfly Engine Ace - Battle Command List v1.09b и умения ним пользоваться
#
# Аддон устанавливать ниже скрипта Yanfly Engine Ace - Battle Command List
#
# Добавляет возможность проверять надето ли определенное оружие\броня на персонажа.
# И если надето, то добавляет команду с навыком в списке меню боя.
#
#
# Предварительно добавьте нужный навык(команда "SKILL X") в список команд по-умолчанию
# в главном скрипте или же в команды героя\класса. Команды ниже просто скроют его до
# момента пока не будет надето нужное оружие\броня.
#
#
# <command hide until weapon: Х> - добавьте эту строку в примечания к навыку, чтобы
# проверять надето ли определенное оружие, для открытия команды с навыком.
# <command hide until armor: Х> - добавьте эту строку в примечания к навыку, чтобы
# проверять надето ли определенная броня, для открытия команды с навыком.
# Где Х - id оружия\брони в базе данных
#=========================================================================#
module YEA
module REGEXP
module BASEITEM
COMMAND_LIST_ON = /<(?:COMMAND_LIST|command list)>/i
COMMAND_LIST_OFF = /<\/(?:COMMAND_LIST|command list)>/i
end # BASEITEM
module USABLEITEM
COMMAND_NAME = /<(?:COMMAND NAME|command name):[ ](.*)>/i
COMMAND_HIDE_LEARN =
/<(?:COMMAND_HIDE_UNTIL_LEARN|command hide until learn)>/i
COMMAND_HIDE_USABLE =
/<(?:COMMAND_HIDE_UNTIL_USABLE|command hide until usable)>/i
COMMAND_HIDE_SWITCH =
/<(?:COMMAND_HIDE_UNTIL_SWITCH|command hide until switch):[ ](\d+)>/i
COMMAND_HIDE_WEAPON =
/<(?:COMMAND_HIDE_UNTIL_WEAPON|command hide until weapon):[ ](\d+)>/i
COMMAND_HIDE_ARMOR =
/<(?:COMMAND_HIDE_UNTIL_WEAPON|command hide until armor):[ ](\d+)>/i
end # USABLEITEM
end # REGEXP
end # YEA
class RPG::UsableItem < RPG::BaseItem
#--------------------------------------------------------------------------
# public instance variables
#--------------------------------------------------------------------------
attr_accessor :command_hide_until_weapon
attr_accessor :command_hide_until_armor
#--------------------------------------------------------------------------
# common cache: load_notetags_bcl
#--------------------------------------------------------------------------
def load_notetags_bcl
@command_name = @name.clone
@command_hide_until_switch = 0
@command_hide_until_weapon = 0
@command_hide_until_armor = 0
#---
self.note.split(/[\r\n]+/).each { |line|
case line
#---
when YEA::REGEXP::USABLEITEM::COMMAND_NAME
@command_name = $1.to_s
when YEA::REGEXP::USABLEITEM::COMMAND_HIDE_LEARN
@command_hide_until_learn = true
when YEA::REGEXP::USABLEITEM::COMMAND_HIDE_USABLE
@command_hide_until_usable = true
when YEA::REGEXP::USABLEITEM::COMMAND_HIDE_SWITCH
@command_hide_until_switch = $1.to_i
when YEA::REGEXP::USABLEITEM::COMMAND_HIDE_WEAPON
@command_hide_until_weapon = $1.to_i
when YEA::REGEXP::USABLEITEM::COMMAND_HIDE_ARMOR
@command_hide_until_armor = $1.to_i
#---
end
} # self.note.split
#---
end
end # RPG::UsableItem
class Window_ActorCommand < Window_Command
def add_use_skill?(skill_id)
skill = $data_skills[skill_id]
return false if hide_until_learn?(skill)
return false if hide_until_usable?(skill)
return false if hide_until_switch?(skill)
return false if hide_until_weapon?(skill)
return false if hide_until_armor?(skill)
return true
end
def hide_until_weapon?(skill)
return false unless skill.command_hide_until_weapon > 0
return false if @actor.weapons.include?($data_weapons[skill.command_hide_until_weapon])
return true
end
def hide_until_armor?(skill)
return false unless skill.command_hide_until_armor > 0
return false if @actor.armors.include?($data_armors[skill.command_hide_until_armor])
return true
end
end
#==========================КОНЕЦ===============================#
На быдло кодил небольшой аддон к тому скрипту. Вроде работает, если правильно использовать. Не забудь добавить навык в список команд, без этого нечего будет скрывать или показывать.
А второе вот, если я опять таки правильно понял.
Спойлер скрин: