Решается довольно просто (относительно) - полностью отрекаешься от специфики стандартного баффа и начинаешь имитировать всю его работу любыми подручными средствами (т.е. речь идёт про ауры-пустышки, предметными абилками-регенами, и т.п.).
В момент каста выдаёшь юниту ауру (например от "торнадо"), в ней настраиваешь действие "только на себя", в баффе делаешь название с цвето-тэгом, так что б он был зелёным, а не красным. Это даёт возможность выдавать конкретному юниту некий отдельный несбиваемый и ничем не-перебиваемый бафф-эффект, который отжельно отображается в его статусе.
Далее выдаёшь юниту предметную абилку на реген ХП (от кольца регена). Спустя N секунд¹ - удаляешь обе абилки (реген и ауру²) и бафф с юнита. Готово.
¹ - можно таймером, можно несколькими, либо одним с параллельным счётом, можно топорно - через вэйт ² - если других эффектов кроме регена ХП не нужно, то можно за основу взять не пустую ауру, а "ауру смерти", которая и будет давать нужный реген.
Еще момент, если у абилки несколько уровней - тут надо правильно реген реализовывать, т.к. предметные абилки на реген ХП/МП имеют баг с параметрами на уровнях выше первого (думаю слышал сам уже). А если сделаешь через многоуровневую "ауру смерти" и выставишь нужный уровень при применеии, то первые секунды будет работать эффект первого уровня, но потом он обновится.
Вопрос по поводу цвето-тэга: вот я применил текстом цвето-тег к названию баффа (|cffffffffАстрал|r), но в результате цвет просто стал белым. Что можно сделать в такой ситуации и как правильно было бы сделать?
Я ставил там базовый ID приказа и как drain, и как channel. То, что бафф не отображается, я уже увидел. Disable other abilities втыкал для проверки (основные тесты были без него). А отследить, что юнит всё ещё поддерживает приказ не вышло даже при переделке способности с основой на "Похищении жизни" (т.е. даже при вызове обычного (базового) похищения жизни текущий приказ возвращается как ноль).
Спасибо, помогло найти ошибку, хотя она была вообще другого рода)) (В таймере, в котором я проводил сравнение, я вызывал локальную переменную caster, но она в теле самой функции в конце занулялась, т.е. в таймер ничего не передавалось)
Я ставил там базовый ID приказа и как drain, и как channel. То, что бафф не отображается, я уже увидел. Disable other abilities втыкал для проверки (основные тесты были без него). А отследить, что юнит всё ещё поддерживает приказ не вышло даже при переделке способности с основой на "Похищении жизни" (т.е. даже при вызове обычного (базового) похищения жизни текущий приказ возвращается как ноль).
Если это вопрос про Реф - то там подобные функции наполовину недоделаны и косячные. Могут работать не так как ты думаешь и распространяться не на все такие данные, как ты думаешь. Ведь близы для мододелов нормально ничего не сделают, только для киберкотлет баланс могут менять.
Тоже думал, что может не работать, но всё же надеялся... Как добавили функции уже ~6 лет назад, так ничего и не исправили(
» WarCraft 3 / Как убрать возможность развеять твою нестандартную способность?
» WarCraft 3 / [lua] Garbage
» WarCraft 3 / Как проверить, что юнит кастует?
» WarCraft 3 / Как проверить, что юнит кастует?
» WarCraft 3 / Проблема с BlzGetAbilityBooleanLevelField
» WarCraft 3 / Типы целей в Warcraft 3