Код:
#----------------------------------------------------------------------------
# * [ACE] Caveman Battle Stands - Skill Addon
#----------------------------------------------------------------------------
# * Автор - caveman
# * Версия: 1.1 RU
# * Релиз: 31/08/2015
#
# * Описание:
# * Добавляет возможность задать скиллы, используемые только в стойках
# * не ниже определенного уровня.
# * В заметках скилла пишите <stand: 1,2> - это значит, что скилл доступен
# * при включенной стойке типа 1 уровня не меньше 2
#----------------------------------------------------------------------------
module DataManager
#--------------------------------------------------------------------------
# alias method: load_database
#--------------------------------------------------------------------------
class <<self; alias load_database_srs load_database; end
def self.load_database
load_database_srs
load_notetags_srs
end
#--------------------------------------------------------------------------
# new method: load_notetags_srs
#--------------------------------------------------------------------------
def self.load_notetags_srs
groups = [$data_skills]
for group in groups
for obj in group
next if obj.nil?
obj.load_notetags_srs
end
end
end
end # DataManager
class RPG::Skill < RPG::UsableItem
attr_accessor :stand_type
attr_accessor :stand_lvl
def load_notetags_srs
@stand_type = 0
@stand_lvl = 0
self.note.split(/[\r\n]+/).each { |line|
case line
when /<(?:STAND|stand):[ ](\d+)\,(\d+)>/i
@stand_type = $1.to_i
@stand_lvl = $2.to_i
end
}
end
end
class Game_Actor
def skill_conditions_met?(skill)
return false if stand_restriction?(skill)
return usable_item_conditions_met?(skill) &&
skill_wtype_ok?(skill) && skill_cost_payable?(skill) &&
!skill_sealed?(skill.id) && !skill_type_sealed?(skill.stype_id)
end
def stand_restriction?(skill)
return false if skill.stand_type == 0
return true if last_stand == nil
return true if skill.stand_type != last_stand.type
return true if skill.stand_lvl > last_stand.lvl
return false
end
end
Социальные закладки