Раздел:
Триггеры и объекты
Доброго времени суток всем. В процессе создания своей карты пришел к одной интересной концепции (возможно, она и не новая, но ресурсов, посвященных этой теме, я не встречал). И так, речь идет об альтернативном применении некоторых способностей в Warcraft 3.
Суть идеи состоит в том, что с помощью отслеживания включения/отключения автокастов у заклинаний, можно вносить в их работу некоторые изменения или же кардинально менять их действие. Рассмотрим пример. В РО создаем способность на основе Духовного пламени (Inner Fire), настраиваем все необходимые параметры. Далее открываем редактор триггеров и создаем несколько. Первый: Событие - Боевая единица получил приказ без указания цели; Условие - (отданный приказ) равно (приказ(innerfireon)); Действие - Установить переменную Spell_Logic = Да. Второй триггер такой же, но уже отслеживается приказ (innerfireoff) и логическая переменная устанавливается в значение "Нет". В принципе, эти триггеры можно объединить в один.
И создаем еще один триггер, уже на действие самого заклинания. Событие - Боевая единица приводит способность в действие, выставляем в условие наше заклинание и с помощью функции If/Then/Else мы можем отслеживать нашу логическую переменную и менять или дополнять действие нашей способности. Например, при автокасте способность может дополнительно излечивать цель ценой собственного здоровья, или еще что-нибудь.
Потенциал ограничивается только вашей фантазией. Так же можно включением автокаста на одной способности изменять действие другой (или других), либо же менять воздействие вражеских способностей на этого юнита. В общем, если покопаться можно найти огромное количество применений. На последок приведу список способностей с автоприменением, чтобы не тратили время на поиск:
Открыть
  1. Внутренний огонь (innerfire)
  2. Замедление (slow)
  3. Исцеление (heal)
  4. Похищение заклинаний (spellsteal)
  5. Ремонтировать (repair)
  6. Взрывоопасная смесь (unstableconcocotion)
  7. Жажда крови (bloodlust)
  8. Воскрешение мертвых (raisedead)
  9. Восстановление (replenish)
  10. Паутина (web)
  11. Призрачное касание (replenishmana)
  12. Проклятие (curse)
  13. Чумная эссенция (replenishlife)
  14. Жуки-падальщики (carrionscarab)
  15. Морозный доспех (frostarmor)
  16. Волшебный огонь (faeriefire)
  17. Дух возмездия (vengeance)
  18. Обновление (renew)
  19. Рассеяние чар (autodispel)
  20. Фазовый сдвиг (phaseshift)
  21. Бешенство (frenzy)
  22. Паразит (parasite)
`
ОЖИДАНИЕ РЕКЛАМЫ...
1
23
1 месяц назад
1
Надеюсь эта идея на поверхности кому-то поможет.
Кстати, в написании статей было бы неплохо примеры показывать наглядно в виде скринов триггера или блоков кода с использованием форматирования (вместо длинного полотна текста. Хоть и видно, что что-то форматировал).
Описал действие словами - показал скрин. Следующее действие словами - снова скрин. Так проще воспринимать информацию и быстрее читать будет.

За список способок лаек
Ответы (1)
0
4
1 месяц назад
0
Учту это на будущее. Просто ресурсу уже 100500 лет, и тут такие картоделы сидят (все изучено и проштрудированно), что я вообще думал, что мне в комментариях накидают, что об этом все знают и я открыл Америку.
0
9
1 месяц назад
Отредактирован Koladik
0
Видел на хайве обуждение этого. Есть еще сисема , но я не тестил она на 1.31 не нравботает.

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

Да и поведение у паразита, наример , отличается от идела, он старается кастовать на тех у кого мало здоровья, что для броска камня не подходит.

Учту это на будущее. Просто ресурсу уже 100500 лет, и тут такие картоделы сидят (все изучено и проштрудированно)
Проштудировано много но отдельного обсуждения на хгм я тоже не видел. Если бы ты поструктурированнее написал. Инфы бобольше бы собрал, в 10 раз полезнее было бы.
Ответы (5)
0
16
1 месяц назад
0
Koladik, чисто теоретически - почему именно паразит, а не замедление?
0
9
1 месяц назад
0
Галендор Крэйл, замедление само по себе в лоб используется. Конфликт будет. А так да оно лучше, но еще интересно, что он кидает замедло только на тех кто атакует. Например, если работники добывают золото а их бьет юнит с замедлом. То он им замедло не прокинет.
0
4
1 месяц назад
0
Так сделай триггер в котором при атаке на голема запускается выбор отрядов вокруг него и приказом заставляй его бросить камень. В функции отряда можно с помощью условий выбрать наиболее приемлемую цель, либо рандомную. Либо через дамми-юнита. В принципе сделать из базы, которая не предусматривает в себе автокаст, заклинание с автоприменением невозможно. Разве что костыли в виде приказов или даммиков.
0
4
1 месяц назад
0
Я возможно покопаюсь в этом глубже и напишу расширенную статью, но не знаю когда. Такая статья пойдет в ущерб работе над картой.
0
9
1 месяц назад
0
MrSaW, мы же обсуждаем автокаст отдельно от тригерных способностей, понятно, что ситуция не безвыходная. Я примерно так и делал.

Но в твоей идее тоже есть минусы, например, для меня не очевидно насколько систему нагружает составление отряда каждую секунду вокруг каждой единицы , имеющей данную способность. Хорошо, можно включать периодический триггер, когда юнит в бою, но как отследить , что юнит входит и выходит из боя?
0
4
1 месяц назад
Отредактирован MrSaW
0
Koladik, Зачем отслеживать каждую секунду? Событием может быть либо юнит атакован либо получает урон. Я бы как-то так сделал
imgur.com/a/OZP6OJS ()

Кто-нибудь подскажите как нормально вставлять изображения
Ответы (8)
0
9
1 месяц назад
0
MrSaW, другая проблема, юнит убегает, ты хочешь , чтобы он его застанел камнем. Но никто никого не атакует. Или юнит находится за стенкой никто опять никого не атакует.
0
9
1 месяц назад
0
Кто-нибудь подскажите как нормально вставлять изображения
Само слово внутри нижних подчеркиваний, ссылка внутри скобочек.
0
4
1 месяц назад
0
Ок. Есть событие - Боевая единица в радиусе от другой боевой единицы. Срабатывает, когда юнит подходит к голему. Настраиваешь условия и все.
0
9
1 месяц назад
0
MrSaW, я же говорю, у тебя один юнит начал убегать от другого. Он не вошел в рейндж, а может даже и не вышел.

Другое дело, что это можно использовать проверки того, что юнит вошел в бой. И запускать циклический таймер твоей проверки. Это может быть хорошим решением.

Но только вот хз, этот триггер скорее всего и реализован как таймер с возможностью подписаться на это событие, не будет ли это сменой шила на мыло. Да и потом , создавать на каждую боевую единицу отдельно триггер, сомнительноо...но окей.
0
4
1 месяц назад
0
Чтобы более-менее сделать нормальные триггеры нужно знать контекст задачи, чтобы понимать какие решения или костыли можно предлагать, а какие нет
0
23
1 месяц назад
0
Кто-нибудь подскажите как нормально вставлять изображения
Вот:
Загруженные файлы
0
4
1 месяц назад
0
Спасибо
0
9
1 месяц назад
0
контекст задачи
Возможно мы друг друга не поняли, я выше писал, что решения не ищу конкретной задачи, тема же не Q/A. Я думал, мы рассуждаем о теоритической постановке, рассуждая из частного в общее и снова в частное. В том смысле, что часная задача пораждает общее решение, которые обязательно должно покрывать как можно больше частных задачь.

В контексте этого я и написал на своем примере, что имеющийся список автокастов вызывает сложности даже для простейщей задачи.
0
18
1 месяц назад
Отредактирован EugeAl
0
Идея хорошая, но не обязательно создавать переменные, можно выставить user data юнита кастера на 1 или 0 и проверять её при запуске основного триггера.
Кроме того, у таких абилок разные специфики автокаста. К примеру, жажда крови будет кастоваться только в бою; Аналогично с духовным пламенем и фрост армором; лечение будет кастоваться всегда, но только если есть раненые; некромантия будет работать на трупы рядом. Итд, итп.
0
12
1 месяц назад
0
Вообще тема интересная, по сути вместо автокастовой абилки теперь переключаемая. Видел где-то в наработках пример реализации суммона юнитов (вроде кук делал), там при пкм на скиле меняется тип призываемого существа а при лкм призывает выбранное существо. При этом убрана вовсе анимация "автокаста" скила на панели приказов.

Правда мышкой тянутся чтоб переключить скил такое себе на практике.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.