Можно ли как-то сохранять в хеш таблицу приказ отданный юниту, а потом приказать выполнить его?

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

Да.. либо по ID либо через строку
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
19
4 года назад
0
Похожие вопросы:

ответ
Едва ли. Хотя...
Есть хорошее условие wait for condition, благодаря которому всё можно будет впечатать в 1 триггер без особых сложностей.
Например приказать топать в область 1
подождать пока область 1 содержт юнит
приказать что-то ещё.
ответ
Оба файла удаляются, потому что ты импортируешь их в карту через программу и не добавляешь данные о файлах в файл импорта(war3map.imp). При сохранении карты в редакторе архив пересобирается, и в него добавляются сторонние файлы, которые сохранены в том самом файле импорта. Поэтому используй стандартный менеджер импорта в редакторе.
ответ
pro100master, но ведь это собьет и его текущие приказы?

Upd.:Я понял в чем проблема.
Я хочу чтоб можно было использовать способности юнита, при этом чтоб были недоступны атака/перемещение итд., а ведь это тоже его способности...
Короче я загнал себя в угол.
Пожалуй пойду по пути создания торговца-здания.
Но если у кого есть решение моей дилемы - буду рад!
ответ
UnitRemoveItem

0
32
4 года назад
Отредактирован Берги
0
Да.. либо по ID либо через строку
Принятый ответ
0
12
4 года назад
0
Bergi_Bear:
Да.. либо по ID либо через строку
А как это сделать? Можно пример кода? Допустим есть действе идти туда-то. Спустя 2 секунды повторить этот приказ. В какую переменную сохранять этот приказ и как потом заставить его выполнить потом?
0
32
4 года назад
0
Ну чтобы идти куда-то надо использовать IssuePointOrder(unit,x,y,"move") и вызывать эту функцию по таймеру каждые n секунд, если текущий приказ отличается от "move", то снова вызывать, и ждать через IsUnitInRangeXY когда юнит дойдёт до цели, полезная штука чтобы юнит дошёл куда либо если его например оглушили или сдвинули или воскресили после смерти.
Могу показать только на луа, там без хештаблиц и пару строк кода всего
0
12
4 года назад
0
Bergi_Bear:
Ну чтобы идти куда-то надо использовать IssuePointOrder(unit,x,y,"move") и вызывать эту функцию по таймеру каждые n секунд, если текущий приказ отличается от "move", то снова вызывать, и ждать через IsUnitInRangeXY когда юнит дойдёт до цели, полезная штука чтобы юнит дошёл куда либо если его например оглушили или сдвинули или воскресили после смерти.
Могу показать только на луа, там без хештаблиц и пару строк кода всего
Я делаю на джасс. У меня ТД и юнит сперва движеться, потом может остановиться и применить способность или сражаться с кем-то. И мне нужно сохранить отданный приказ, что бы он пошёл снова, даже при у чёте, что его например телепортируют. А двигаются юниты через области. Так что движение через точку на карти не канает.
0
32
4 года назад
0
ну теорию я дал..
						if GetUnitCurrentOrder(target)~=String2OrderIdBJ("move") then
								IssuePointOrder(target,"move", rx,ry)
						end
И вот это крутишь на периодическом триггере, например каждый 5 сек
где rx,ry - конечная точка куда надо дайти
можно чаще... юнит после каста будет продолжать движение постояв от 0 до n секунд, где N частота таймера, ещё юнит не будет стопориться если просто отдавать часто атаку
0
28
4 года назад
Отредактирован PT153
0
Можно ли как-то сохранять в хеш таблицу приказ отданный юниту, а потом приказать выполнить его?
Сохранить-то можно, только придётся не только сохранять приказ, но и сохранять координаты, куда он был отправлен.
Самый простой вариант отслеживать конец каста (событие stops casting) и отдавать приказ move в сохранённые координаты. Если сохраняется только приказ движения, то сам приказ можно и не сохранять, только его координаты.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.