Можете подсказать, какой у орков стринг приказа вылезти из постройки, как при клике на его иконку во время стройки. Гугл не помог, "stop" не сработал.
Заранее спасибо.

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

Не могу найти в списке функций GetConstructingUnit или что нибудь такое.
ApaxHoqpuJL, как не можешь. там в гуи есть такие только без Get. эта переменная на jass.

ApaxHoqpuJL, еще можно запретить строить на начальном этапе - проверить приказ стройки. проверяешь какое здание строит. id приказ => id здание.
во время события приказа в точку можно отдать приказ стоп, однако, "stop" не может сбить приказ в точку (даже стоп не помогает, не знаю почему. юнит просто бежит выполнять приказ в точку. замечал два раза такое).
Он просто не сбивает. Решение находил такое: я отдавал приказ двигаться в тек позицию юнита, и юнит останавливался и не бежал туда. Единственное, что замечано - что статические повороты делает, хотя не так существенно.
call IssuePointOrder(GetTriggerUnit(), "move", GetUnitX(GetTriggerUnit()), GetUnitY(GetTriggerUnit()) )
позже нашел другой способ у СССР-а - пауза. не делает развороты не нужные
сall PauseUnit(GetTriggerUnit(), true) //<= вкл паузу
call IssueImmediateOrder(GetTriggerUnit(), "stop")
сall PauseUnit(GetTriggerUnit(), false) //<= выкл паузу
и одновременно выдать текстовое оповещение игроку: "вы это здание не можете строить"
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
27
5 лет назад
0
PT153, я посмотрел интересно.
кстати, смотри. я тестил. вот с "move" в позицию юнита золото не возвращает за несколько здании. а вот выше способ с паузой - все норм возвращает.
0
28
5 лет назад
Отредактирован PT153
0
ApaxHoqpuJL, я сделал тесты, и вот пара выводов.
  1. Способ с приказом move лучше не использовать, почему, я описал выше.
  2. Способ через паузу. Если поставить приказы в очередь, среди которых будет постройка на неверной местности, ресурсы за башню вернутся, а сам воин всё равно побежит строить. Итог - бесплатное строение.
  3. И способ, который использую я (самый надёжный): удаление строения во время начала постройки.
0
27
5 лет назад
0
PT153, вот пример
Загруженные файлы
0
28
5 лет назад
Отредактирован PT153
0
а вот выше способ с паузой - все норм возвращает.
Он у меня вообще не работает.
UPD: смотрю пример, видимо где-то что у меня в карте мешает.
0
27
5 лет назад
Отредактирован MpW
0
PT153, это не потому что у вас раб принадлежит к расе нежити. строительство там автоматом идет.
тфу нежить тут не при чем. тоже самое будет
0
28
5 лет назад
Отредактирован PT153
0
тфу нежить тут не при чем. тоже самое будет
Да-да, я вот думаю, что же в той карте, что я кинул ранее, ломает.

Итак, я разобрался, что же там ломало.
Вот верные итоги.
  1. Способ с приказом move лучше не использовать, почему, я описал выше.
  2. Способ через паузу работает, если верно приписать условия в триггере. Лучше указать в условии проверку id приказа на равенство равкодов тех зданий, что юнит может строить. Можно сделать и по-другому: исключить все остальные приказы в точку. Это возможные способности у юнита в точку, приказы "smart", "patrol", "move" и приказ 851973 (этот приказ отдаётся при стане и паузе).
  3. И способ, который использую я (самый надёжный): удаление строения во время начала постройки.

Ломал именно приказ 851973, потому что у меня были проверки только на "smart", "patrol" и "move". Я до конца думал, что приказ 851973 немедленный, то есть не отдаётся в точку, то есть триггер не должен срабатывать. Но на самом деле приказ 851973 либо ловится всеми событиями приказа, либо при паузе отдаётся в точку.
Когда я делал эту версию карты (полтора года назад), я даже не знал об этом приказе.
0
27
4 года назад
Отредактирован MpW
0
PT153, лучше еще на время выключать триггер, а то вместе с текущий приказом - приказ стана 851973 срабатывает в дебагах. Я вообще не понимал, почему это срабатывает, если условие = равкод здания, следовательно, условие триггера должно вернуть false. Но оно работает, и я не обращал внимание, пока до меня не дошло
выкл триггер
вкл паузу
приказ "stop" //в паузе отдает приказ 851973
выкл паузу
вкл триггер
0
28
4 года назад
0
Steal nerves, сама пауза отдаёт приказ стана.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.