Вот задаюсь таким вопросом потоков при исполнении триггера. У меня есть заклинание, оно поочерёдно создаёт дамми юнитов с жизнью с 5.5 сек.(создаются они не мгновенно, а в промежутках по 0.5 сек.), за это время они наносят аое урон с эффектом падающей звезды. Однако если во время исполнения этого заклинания скастовать любое другое триггерное заклинание, то дамми юниты перестанут спавниться и это заклинание сработает лишь наполовину. Но я глядел что у других людей этой проблемы нет. Глядел это на примере способности "прыжок" в нескольких картах. Там юниты спокойно прыгают толпами (а учитывая что это изменение x,y,z координат, то без триггеров не обойтись). За сиим вопрос - как исполнять много триггеров разом, чтобы они не перекрывали исполнение друг друга?

AllChosen, ты пока что не понимаешь, что делаешь.
ты должен вместо цикла с вэйтом использовать "периодичный" таймер и сдвигать координаты, но пока что советуют посмотреть примеры xgm.guru/p/wc3/spellmaker-stomp-spell-creation
есть таймер одноразовый и периодичный, это все один и то же таймер, просто запускает разные режимы. через TimerStart. Вы таймер уже создали так смотрю, теперь нужно ловить запуски таймеров
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
27
там есть разные ситуации. либо лимит операции, либо вечное зацикливание, либо в потоке не записан/не переносится значение варкрафтовской переменной. там значение варкрафтовской переменной-константы на потоки завязаны
30
там есть разные ситуации
Там скорее всего глобалки с вэйтами и чистое гуи с тыщей утечек
27
NazarPunk, скорее всего так. меня другое интересует. а я давно уже пробовал с вэйтами тест, где разные в разных потоках GetTriggerUnit() имеет разных юнитов. И короче GetTriggerUnit() и пр константы вара это никак не обычная глобалка, которая хранит лишь одно значение
3
Steal nerves:
NazarPunk, скорее всего так. меня другое интересует. а я давно уже пробовал с вэйтами тест, где разные в разных потоках GetTriggerUnit() имеет разных юнитов. И короче GetTriggerUnit() и пр константы вара это никак не обычная глобалка, которая хранит лишь одно значение
Безусловно, проблем в моих триггерах много. Однако во всём приходится разбираться потихоньку, ибо без практики никак) Но вот таймеры меня заинтересовали. По ссылочкам из вашего документа я увидел лишь эту цитату "Создать поток можно запуском одноразового таймера с минимальной задержкой", но, признаться, не особо её понял. А код у меня такой вот, достаточно простенький, что ж поделать)
Загруженные файлы
27
AllChosen, у тебя триггер то и простой. Но не понятный, должен работать, у тебя же нет задержек (ни вэйтов, ни таймеров). Что не работает?
Что у тебя за условие с "CharsList", не проще ли номера сравнивать чем id?
if number==1 then

elseif number ==2 then

endif
еще мб юнит не может кастовать, тк ты даймика DummyUnit создаешь слишком далеко от точки каста (он у тебя создается практически в центре карты 0,0)?
3
Steal nerves:
AllChosen, у тебя триггер то и простой. Но не понятный, должен работать, у тебя же нет задержек (ни вэйтов, ни таймеров). Что не работает?
Что у тебя за условие с "CharsList", не проще ли номера сравнивать чем id?
if number==1 then

elseif number ==2 then

endif
еще мб юнит не может кастовать, тк ты даймика создаешь слишком далеко от точки каста?
Извиняюсь, я немного неправильно скинул код. Та способность, которую я перекинул, подразумевает wait в конце каждой итерации цикла, чтобы эффекты появлялись плавно. В этом вся проблема, поскольку этот триггер перекрывается другими. Не могли бы вы мне объяснить - как конкретно в этой ситуации может помочь таймер? А лист там нужен для рандомизации спавна даммиков. Т.е, грубо говоря, в листе записываются значения координат +- (т.е. x будет положительным, а y - отрицательным) и т.д. для того, чтобы определить - на какой части должен заспавниться даммик. (К примеру x = 110 (число создаётся рандомно) / y = -90 и т.д.)
Загруженные файлы
27
AllChosen, ты пока что не понимаешь, что делаешь.
ты должен вместо цикла с вэйтом использовать "периодичный" таймер и сдвигать координаты, но пока что советуют посмотреть примеры xgm.guru/p/wc3/spellmaker-stomp-spell-creation
есть таймер одноразовый и периодичный, это все один и то же таймер, просто запускает разные режимы. через TimerStart. Вы таймер уже создали так смотрю, теперь нужно ловить запуски таймеров
Принятый ответ
3
Steal nerves:
AllChosen, ты пока что не понимаешь, что делаешь.
ты должен вместо цикла с вэйтом использовать "периодичный" таймер и сдвигать координаты, но пока что советуют посмотреть примеры xgm.guru/p/wc3/spellmaker-stomp-spell-creation
есть таймер одноразовый и периодичный, это все один и то же таймер, просто запускает разные режимы. через TimerStart
Спасибо вам) Теперь хоть буду понимать в чем стоит дальше разбираться)
27
AllChosen, ищи статьи про таймеры и карты с примерами. пример движение снарядов
30
ищи статьи про таймеры и карты с примерами. пример движение снарядов
Проблема статей в том, что их никто не читает.
Здесь например похожий случай реализован.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.