Код:
	#Аддон для 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
 
Социальные закладки