Можете подсказать, какой у орков стринг приказа вылезти из постройки, как при клике на его иконку во время стройки. Гугл не помог, "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) //<= выкл паузу
и одновременно выдать текстовое оповещение игроку: "вы это здание не можете строить"
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
4
26
5 лет назад
4
call IssueImmediateOrderById(GetTriggerUnit(), 851976)
GetTriggerUnit() не припомню на кого назначать, либо на здание, либо на строителя.
0
3
5 лет назад
0
8gabriel8, Хм. Не срабатывает. Вот код:
    private function Actions takes nothing returns nothing  //GLITCHED: removes the building with the worker inside
        call IssueImmediateOrderById(GetConstructingStructure(), 851976)
        call IssueImmediateOrderById(GetTriggerUnit(), 851976)
        call DisplayTextToPlayer(GetOwningPlayer(GetTriggerUnit()), 0, 0, ("|c00FFFF00" + "Алтарь уже собран!" + "|r")) //LOC
        call TriggerSleepAction(.2)
        call RemoveUnit(GetConstructingStructure())
Попробовал оба приказа, попробовал подождать перед удалением постройки, не помогает. Сообщение отображается нормально.
0
27
5 лет назад
0
ApaxHoqpuJL, а проверь дебаг на юните. выводи имя юнита. что за событие используешь?
код
function Trig_D_Actions takes nothing returns nothing
    call TriggerSleepAction(0) // <= надо делать задержку
    call IssueImmediateOrderById(GetTriggerUnit(), 851976)
endfunction

//===========================================================================
function InitTrig_D takes nothing returns nothing
    set gg_trg_D = CreateTrigger(  )
    call TriggerRegisterPlayerUnitEventSimple( gg_trg_D, Player(0), EVENT_PLAYER_UNIT_CONSTRUCT_START )
    call TriggerAddAction( gg_trg_D, function Trig_D_Actions )
endfunction
0
3
5 лет назад
Отредактирован ApaxHoqpuJL
0
Событие: "EVENT_PLAYER_UNIT_CONSTRUCT_START"
Дебаг показывает что GetTriggerUnit() и GetConstructingStructure() оба возвращают строящееся здание.
Не могу найти в списке функций GetConstructingUnit или что нибудь такое.
4
27
5 лет назад
Отредактирован MpW
4
вот карта нужно делать задержку таймером или вэйтом, походу здание еще не успевает создаться. Поэтому невозможно дать приказ, ускорить строительство через триг и прочее в этом момент. не первый случай. пробовал убрать вэйт, тк не хочет отменять
Загруженные файлы
0
3
5 лет назад
Отредактирован ApaxHoqpuJL
0
Steal nerves, Хм, забавно. Все получилось, спасибо большое.
1
27
5 лет назад
Отредактирован MpW
1
Не могу найти в списке функций 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
3
5 лет назад
Отредактирован ApaxHoqpuJL
0
Steal nerves,
ApaxHoqpuJL, как не можешь. там в гуи есть такие только без Get. эта переменная на jass.
Это же все таки GetTriggerUnit(), как оказалось.
Новый способ работает даже лучше, спасибо еще раз!
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.