[Data] Damage response

» опубликован
Йоханга. Эта статья столько не о самом проекте, сколько о РО в общем.
Будем рассматривать как отлавливается урон юнита/юниту в Starcraft2 через РО.
Ведь пора клепать статьи о ск2 уже =)

Начало

Статья рассчитана на то что вы уже знаете что такое Алгоритмы и как их создавать, а так же Эффекты, Валидаторы и пр.
Примеры из проекта прилагаются.
У нас есть два случая - когда юнит атакован и когда юнит атакует.

Атакованный юнит (Attacked unit)

Нам нужен Алгоритм, который будет висеть на одном из 20 мобов, обозначая что моб главнее остальных. Ну и конечно, при убийстве этого моба, хорошо бы давать доп. вознаграждение в виде минералов.
  1. Создаём Алгоритм и вешаем перманентно на юнита-лидера.
  2. Создаём Эффект типа "Modify player", прописываем +250 минералов.
Для какого игрока запустить Эффект, который даёт доп. минералы - указывается в "Player +" (Target в нашем случае).
  1. Идём в настройки созданного Алгоритма, тыкаем в поле "Damage response". Находим такое:
  1. Ставим шанс 1.00, который означает отлов 100% попаданий.
    • Первый маркер "Location" обозначает как раз что отлавливается входящий урон.
    • Второй маркер это самое интересное:
      • "Exhausted" отлавливает урон конкретного юнита. Если выбрать значение None то отлавливаться будет урон от любого юнита.
      • "Fatal" означает фатальный это урон или нет. Если галочка стоит, то срабатывание произойдёт один раз, во время смерти юнита-лидера.
      • "Handled" это наш Эффект, который запускается при срабатывании. Можно запустить сразу много эффектов, используя Эффект типа "Set".
» Схема работы очень похожа на if/then/else плюс and/or
Если "входящий урон = Sniper rifle master (Damage)" и "этот урон фатален"
то "Запустить Эффект Contract job"
  1. Можно добавить Валидатор к нашему Эффекту, например для того чтобы проверить уровень Атакующего героя.

Атакующий юнит (Attacking unit)

Тут нам нужен алгоритм, который будет висеть на нашем Снайпере, которым мы можем управлять и стрелять всякую нечисть.
  1. Создаём Алгоритм и вешаем перманентно на Снайпера.
  2. Создаём Эффект типа "Damage", в поле "Flags +" выбираем Kill, это значит мгновенное убийство.
  1. Идём в настройки созданного Алгоритма, тыкаем в поле "Damage response". Находим такое:
  1. Ставим шанс 0.05, который означает отлов 5% попаданий.
    • Первый маркер "Location" обозначает как раз что отлавливается исходящий урон.
    • Второй маркер, или "Handled", это наш Эффект, который запускается при срабатывании. В нашем случае запускается Эффект на мгновенное убийство жертвы.

Напоследок

Если что-то непонятно - задавайте вопросы, не стесняйтесь, я сегодня добрый :) а завтра могу быть злой
Если вы попробовали и у вас не получилось, то попробуйте ещё раз! И потом ещё раз!

 

Просмотров: 665

Харгард #1 - 8 лет назад 0
Неплохо было бы, если б в начале статьи было краткое описание абилки и ситуаций, которые проиходят при ней.
А 5% вероятность ваншота - адовый беспредел :).