Доброго времени суток! Делаю способность на основе канала (скриншот ниже), которая должна иметь логику способностей "Похищение маны" и пр. В триггерах писал код if GetUnitCurrentOrder(caster) == OrderId("drain") then ... и попутно выводил себе текущий приказ юнита.
Приказ юнита всегда указывался как 0 (chat-gpt сказал, что способность на основе channel не вызывает реальных действий и не сохраняется в текущий приказ юнита)
Можно ли отследить при использовании канала, что приказ всё ещё поддерживается, а не был отменён (например, кастер начал двигаться или получил стан)?

й
Я ставил там базовый ID приказа и как drain, и как channel. То, что бафф не отображается, я уже увидел. Disable other abilities втыкал для проверки (основные тесты были без него). А отследить, что юнит всё ещё поддерживает приказ не вышло даже при переделке способности с основой на "Похищении жизни" (т.е. даже при вызове обычного (базового) похищения жизни текущий приказ возвращается как ноль).
У меня все работает. Для проверки лучше использовать номерной id приказа github.com/nestharus/JASS/blob/master/jass/Systems/OrderIds/scri.... Вот пример, правда на Zinc, но суть будет понятна:
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
23
Похожие вопросы:

ответ
Нашёл систему, где звук передаётся в таймер, который истекает через 0 секунд. В результате один и тот же звук может проигрываться несколько раз без всяких проблем. В инетике пишут мол это такой баг движка.
ответ
глобальный массив не нужен. сохраняй группу в хэш-таблицу на хэндл героя, потом загружай ее когда надо. у каждого героя будет своя группа
вот пример, молот бурь съедает юнита а удар грома ставит всех юнитов обратно
ответ
Можно просто пикать всех юнитов в регионе, или ещё красивее
GetEnumRange('Лечилка')
ответ
наброски
скидывал тебе это, что не помогло?
и проверяй дебагом, работает = не работает.
ответ
Причина: причин было много, а я искал лишь одну
Самыми распространёнными оказались элементарные ошибки в коде, отсутствие параметров, параметры не того типа данных (привет динамическая типизация) или лишние параметры, из за чего происходили "рандомные рассинхроны при обрыве потока"
Огромное спасибо пользователю prog, что откликнулся и смог найти ошибки, а нашёл он их при помощи языкового сервера sumneko lua для VScode

3
Можно перестать слушать ИИ и убедиться, что Канал имеет настраиваемый приказ, который можно проверить в течении всего каста заклинания. Отключи Disable Other Abilities и бафф можешь не ставить, он не работает.
Ответы (3)
1
й
Я ставил там базовый ID приказа и как drain, и как channel. То, что бафф не отображается, я уже увидел. Disable other abilities втыкал для проверки (основные тесты были без него). А отследить, что юнит всё ещё поддерживает приказ не вышло даже при переделке способности с основой на "Похищении жизни" (т.е. даже при вызове обычного (базового) похищения жизни текущий приказ возвращается как ноль).
3
й
Я ставил там базовый ID приказа и как drain, и как channel. То, что бафф не отображается, я уже увидел. Disable other abilities втыкал для проверки (основные тесты были без него). А отследить, что юнит всё ещё поддерживает приказ не вышло даже при переделке способности с основой на "Похищении жизни" (т.е. даже при вызове обычного (базового) похищения жизни текущий приказ возвращается как ноль).
У меня все работает. Для проверки лучше использовать номерной id приказа github.com/nestharus/JASS/blob/master/jass/Systems/OrderIds/scri.... Вот пример, правда на Zinc, но суть будет понятна:
Загруженные файлы
Принятый ответ
1
й
Я ставил там базовый ID приказа и как drain, и как channel. То, что бафф не отображается, я уже увидел. Disable other abilities втыкал для проверки (основные тесты были без него). А отследить, что юнит всё ещё поддерживает приказ не вышло даже при переделке способности с основой на "Похищении жизни" (т.е. даже при вызове обычного (базового) похищения жизни текущий приказ возвращается как ноль).
У меня все работает. Для проверки лучше использовать номерной id приказа github.com/nestharus/JASS/blob/master/jass/Systems/OrderIds/scri.... Вот пример, правда на Zinc, но суть будет понятна:
Спасибо, помогло найти ошибку, хотя она была вообще другого рода)) (В таймере, в котором я проводил сравнение, я вызывал локальную переменную caster, но она в теле самой функции в конце занулялась, т.е. в таймер ничего не передавалось)
Чтобы оставить комментарий, пожалуйста, войдите на сайт.