Очень уж запала в душу простая система из Доты, где есть три вида рассеивания (сильный диспел снимет все, что можно, средний снимает обычные и слабые баффы, слабый снимет только слабые соответственно). И вот я задумался над реализацией. Первое, о чем я подумал - иметь массив с равкодами баффов, и знать с какого индекса идут средние и сильные баффы. Но вот на счет самого диспелла... Представялю это как обход циклом этого массива и выполнение UnitRemoveAbility для каждого id. На как-то это тупо. Есть ли у кого идеи на этот счет?

Принятый ответ

Можно сделать так: каждый баф, в зависимости от него "качества", определяем заглавной буквой L (слабый), M (средний), H (сильный).
Потом в триггере проверяем разницу с слабым бафом и передём абсолютное значение.
В итоге, если полученное т.о. значение >= 0 and < 16777216 - это слабый баф; если значение >= 16777216 and < 67108864 - это средний баф
ну и т.д.
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
23
5 лет назад
0
вроде есть типы бафов хотя не помню уже мб поишеш из него сделать.
0
26
5 лет назад
0
Не совсем понял зачем цикл, просто три Если/То/Иначе. Первое Если диспелл слабый/средний/сильный, То снять слабые баффы. Второе Если средний/сильный, То снять средние баффы. Третье Если сильный, То все баффы.
0
7
5 лет назад
0
pro100master, я понимаю, что есть некоторая разница в приоритете стандартных баффов. Печать преисподней так вообще многое отличает. Но это не то, не думаю, что там можно ставить приоритет.
8gabriel8, стоп, так есть какое-то разделение все же? Допустим, в моей карте будет много нестандартных баффов, в том числе и на основе Ауры замедления. Я смогу настроить приоритеты им?
0
26
5 лет назад
0
Надо указывать каждый бафф отдельно.
0
7
5 лет назад
0
8gabriel8, правда не понимаю. Это в настройках баффа можно ставить в РО?
1
10
5 лет назад
1
Можно сделать так: каждый баф, в зависимости от него "качества", определяем заглавной буквой L (слабый), M (средний), H (сильный).
Потом в триггере проверяем разницу с слабым бафом и передём абсолютное значение.
В итоге, если полученное т.о. значение >= 0 and < 16777216 - это слабый баф; если значение >= 16777216 and < 67108864 - это средний баф
ну и т.д.
Загруженные файлы
Принятый ответ
0
7
5 лет назад
0
LordDracula, о, это намного эффективнее цикла, спасибо. Так стандартно менять типы рассеивания баффов нельзя?
0
10
5 лет назад
0
PornoMishka:
LordDracula, о, это намного эффективнее цикла, спасибо. Так стандартно менять типы рассеивания баффов нельзя?
вроде нет
0
7
5 лет назад
0
Хорошо, этот вариант в любом случае решает заявленную проблему.
0
26
5 лет назад
0
Но насколько понял, будут использованы не только новые, но и стандартные баффы, их в условии нужно будет указывать отдельно.
Вообще предлагал такой триггер:
Событие: юнит Приводит способность в действие
Условие: ничего
Действия: сначала выбор юнитов, которые оказались в радиусе действия диспела по области
Если (Ability being cast) равно слабый диспел ИЛИ средний диспел, То много действий для всех слабых баффов Боевая единица - Remove specific buff, Иначе пусто
Если (Ability being cast) равно средний диспел, То много действий для средних баффов, Иначе пусто
Если (Ability being cast) равно сильный диспел, То удалить все баффы с юнита, Иначе пусто
0
32
5 лет назад
0
Ну в доте там не сильно просто, а как получится. Если брать легиона и сларка - их диспел описан триггерно, массив заполненный баффами тех способностей, что можно рассеивать, их фрог по собственному хотению добавляет \ удаляет. Прочие диспелы - это стандартный пурж, или еул - там все одинакого.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.