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

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
24
Выкинуть вейты в мусорку и использовать таймеры.
3
prog:
Выкинуть вейты в мусорку и использовать таймеры.
В таком случае триггер продолжит работу, несмотря на другие запущенные триггеры и всё такое? Я о таймерах до этого момента не особо слышал, пока без понятия - как это и чем их едят
27
разве варкрафт многопоточный? нет имеет один поток, просто поочередно выполняет. инфа
Загруженные файлы
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 и т.д.)
Загруженные файлы
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.