Как триггерно отменить строительство/улучшение здания или тренировку юнита?
Принятый ответ
Эврика! Забудьте всё, что я до этого сказал.
Я распишу подробно, чтобы будущие поколения также могли использовать.
Чтобы отдать юниту приказ, которого нет перечисленным в 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