Код:
#Аддон для Yanfly Engine Ace - Target Manager v1.03
# Размещать ниже основного скрипта
# Использование:
# Добавить в примечание к навыку\предмету следующий тег
# Назначит целью атаки навыка, врага с порядковым номеров Х пати, отсчет
# начинается с нуля.
# <targets: x single enemy>
# Например: <targets: 0 single enemy>
# Такая команда назначит целью самого первого героя в пати.
#-------------------------------------------------------------------------#
#-------------------------------------------------------------------------#
#-------------------------------------------------------------------------#
#-------------------------------------------------------------------------#
#-------------------------------------------------------------------------#
class RPG::UsableItem < RPG::BaseItem
#--------------------------------------------------------------------------
# common cache: load_notetags_target
#--------------------------------------------------------------------------
def load_notetags_target
@random_hits = [3, 4, 5, 6].include?(@scope) ? @scope - 2 : 0
@sigle_target_id = 0
#---
self.note.split(/[\r\n]+/).each { |line|
case line
#---
when YEA::REGEXP::USABLEITEM::TOTAL_HITS
@repeats = [$1.to_i, 1].max
#---
when YEA::REGEXP::USABLEITEM::TARGETS
@random_hits = 0
case $1
when /EVERYBODY/i
@scope = :everybody
when /TARGET ALL FOES/i
@scope = :target_all_foes
when /TARGET[ ](\d+)[ ]RANDOM FOE/i
@scope = :target_random_foes
@random_hits = $1.to_i
when /(\d+)[ ]RANDOM FOE/i
@scope = 3
@random_hits = $1.to_i
when /ALL BUT USER/i
@scope = :all_but_user
when /TARGET ALL ALLIES/i
@scope = :target_all_allies
when /TARGET[ ](\d+)[ ]RANDOM ALL/i
@scope = :target_random_allies
@random_hits = $1.to_i
when /(\d+)[ ]RANDOM ALL/i
@scope = :random_allies
@random_hits = $1.to_i
when /(\d+)[ ]SINGLE ENEMY/i
@scope = :single_enemy
@sigle_target_id = $1.to_i
end
#---
end
} # self.note.split
#---
end
def for_single_enemy?
return @scope == :single_enemy
end
def sigle_target; return @sigle_target_id; end
end
class Game_Action
def make_custom_targets
array = []
if item.for_everybody?
array |= opponents_unit.alive_members
array |= friends_unit.alive_members
elsif item.for_target_all_foes?
array |= [opponents_unit.smooth_target(@target_index)]
array |= opponents_unit.alive_members
elsif item.for_target_random_foes?
array |= [opponents_unit.smooth_target(@target_index)]
array += Array.new(item.number_of_targets) { opponents_unit.random_target }
elsif item.for_all_but_user?
array |= friends_unit.alive_members
array -= [subject]
elsif item.for_target_all_allies?
array |= [friends_unit.smooth_target(@target_index)]
array |= friends_unit.alive_members
elsif item.for_target_random_allies?
array |= [friends_unit.smooth_target(@target_index)]
array += Array.new(item.number_of_targets) { friends_unit.random_target }
elsif item.for_random_allies?
array += Array.new(item.number_of_targets) { friends_unit.random_target }
elsif item.for_single_enemy?
array |= [opponents_unit.smooth_target(item.sigle_target)]
end
return array
end
end # Game_Action
Социальные закладки