Как триггерно отменить строительство/улучшение здания или тренировку юнита?
Принятый ответ
Эврика! Забудьте всё, что я до этого сказал.
Я распишу подробно, чтобы будущие поколения также могли использовать.
Чтобы отдать юниту приказ, которого нет перечисленным в GUI, сначала нужно узнать его Id с помощью функции:
constant native GetIssuedOrderId takes nothing returns integer
Используйте эту функцию, когда во время тестирования в игре вы отдаете нужный приказ тестовому юниту (в вашем случае прерывание строительства\улучшения). И выведите результат на экран. Например вот так:
call DisplayTextToForce( GetPlayersAll(), I2S(GetIssuedOrderId()) )
В вашем случае функция вернет "851976" — это Id приказа "Отставить" (равносильно нажатию Esc при выбраном юните во время найма\улучшения).
Когда Id известен, используйте следующую функцию для отдачи приказа
// для приказа без цели:
native IssueImmediateOrderById takes unit whichUnit, integer order returns boolean
// для отдачи приказа на юнита\точку используются соответствующие функции
В вашем случае используйте следующее, когда захотите отменить строительство\найм\улучшение.
call IssueImmediateOrderById(<YourUnit>, 851976)
Надеюсь, всё понятно. На всякий пожарный прикрепляю пример.
Загруженные файлы
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Мне нужно чтобы например улучшается здание, нужно отменить улучшение, при чём тут анимации???
Отредактирован Zahanc