Показано с 1 по 10 из 17

Тема: Область действия умений

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11
    Супер-модератор Аватар для dirge
    Информация о пользователе
    Регистрация
    25.02.2013
    Сообщений
    924
    Репутация: 79 Добавить или отнять репутацию

    По умолчанию

    В общем, т.к. для меня боевки слишком темная-темень, чтобы писать самостоятельные скрипты, то написал очередной супИр аддон к янфлайновскому таргет менеджеру.
    Спойлер Скрипт:
    Код:
    #Аддон для 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

    Сам таргет менеджер, я думаю найдешь.
    Вроде работает в сторону - враг атакует героя, а работает ли в сторону герой атакует врага - хз, но я думаю это и не нужно. Главное отключи для такого навыка стандартный таргет - "Область действия:нет", а все остальное как для обычного навыка.
    Последний раз редактировалось dirge; 18.08.2015 в 21:32.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Область действия умений