Можете подсказать, какой у орков стринг приказа вылезти из постройки, как при клике на его иконку во время стройки. Гугл не помог, "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) //<= выкл паузу
и одновременно выдать текстовое оповещение игроку: "вы это здание не можете строить"
Принятый ответ
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.