Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 17 из 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.

  2. #12

    По умолчанию

    Очень признательна за аддон, ты опять меня спас, и ведь не в лом было с этим возится.

  3. #13

    По умолчанию

    Чтобы не создавать похожую тему - отпишусь здесь.

    Проблему можно озаглавить как "Кривой таргетинг союзников".

    Одна из самых неприятных проблем мэйкера. Представим, что в бою участвует три монстра, два из них должны лечить / баффать центрального. Но указать конкретного союника для применения скилла мы не можем, цель выбирается случайно, кроме того иногда такой моб саппортер будет вешать скилл на себя.

  4. #14
    Маститый Аватар для HopeBree
    Информация о пользователе
    Регистрация
    27.03.2013
    Сообщений
    1,204
    Записей в дневнике
    6
    Репутация: 38 Добавить или отнять репутацию

    По умолчанию

    погугли "AI" monster или что-то в этом плане, добавить должны мозги мобам

  5. #15

    По умолчанию

    Если ты про это https://www.dropbox.com/s/yi1z5kze56074gp/TargetPrio.rb - то там чёрт ногу сломит. Все размазано. Без примеров.

  6. #16
    Маститый Аватар для HopeBree
    Информация о пользователе
    Регистрация
    27.03.2013
    Сообщений
    1,204
    Записей в дневнике
    6
    Репутация: 38 Добавить или отнять репутацию

    По умолчанию

    не только, скриптов полно с аи
    главное выбрать то, что подойдет
    http://forums.rpgmakerweb.com/index....ai-conditions/
    http://rpgmaker.net/scripts/253/code/
    кстате, твой однако не плох, главное знать хоть чуть-чуть про скрипты и их составление

  7. #17

    По умолчанию

    А что насчет этого скрипта? https://github.com/Archeia/YEARepo/b...tic_Targets.rb
    Правда не уточяется самое главное, что есть "string". Cкиллы? ID баттлера? другие команды? Для работы нужно размещать ниже основного скрипта(Target Manager), но ниже стоит аддон от dirge.

    PS: Ладно, обойдусь тупым Force action. Скрипт Янфая неоднозначен. В остальных трёх буду разбираться 100 лет, ибо тормоз мешает, они еще и жлобские(Использование, копирование, публикация, редактирование, упоминание и созерцание священного кода без повязки запрещены иначе мы отсудим у вас квартиру и отправим на пожизненные каторжные работы!), что совсем подавляет желание с ними возится...
    Последний раз редактировалось Succubus; 28.08.2015 в 23:57.

Страница 2 из 2 ПерваяПервая 12

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

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

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

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

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

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

Ваши права

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