Как проводить через триггеры различные манипуляции с юнитами, которых еще нет на карте? Я только начинаю осваивать редактор варика3, и не могу понять даже как присвоить переменной значение юнита. Просит выбрать боевую единицу на карте (при том, что юнит еще не нанят и "сидит" в бараках). Мне нужно каждого юнита, с которым я собираюсь работать в триггерах призвать в угол карты, куда не сможет добраться игрок и скрыть их туманом войны?? А если у меня их 100? Это же сильно нагрузит карту. Вопрос глупый, но я в самом деле не понимаю

imnew, ну здесь можно зарегистрировать событие на на определённого юнита, а на игрока.

То есть завершает исследование не конкретный юнит, а любой юнит конкретного игрока.
`
ОЖИДАНИЕ РЕКЛАМЫ...
23
Похожие вопросы:

ответ
prog помог в личке в Дискорде, вот решение
Решение
do
  local f = InitGlobals -- записываем InitGlobals в переменную
  function InitGlobals() -- заменяем оригинальную InitGlobals своей
       f() -- вызываем оригинальную InitGlobals из переменной
       InitMyTrigger()
  end

end

function InitMyTrigger()
   
 local SpellTrigger = CreateTrigger()
    for i = 0, bj_MAX_PLAYER_SLOTS - 1 do
        local player = Player(i)
        TriggerRegisterPlayerUnitEvent(SpellTrigger, player, EVENT_PLAYER_UNIT_SPELL_CAST)
    end
    TriggerAddAction(SpellTrigger, function()
        local eventId          = GetHandleId(GetTriggerEventId())
        local caster           = GetTriggerUnit()
        local casterX, casterY = GetUnitX(caster), GetUnitY(caster)
        local spellId          = GetSpellAbilityId()
--        local spellX, spellY   = GetSpellTargetX(), GetSpellTargetY()
        if spellId == FourCC('A000') then -- Призыв
            print("призыв")
            local newu = CreateUnit(GetOwningPlayer(caster), FourCC('h000'), casterX, casterY, GetUnitFacing(caster))
        end
    end)
end
ответ
RobertStevenson, вейты вообще зло, а отсчёт можно сделать таймером. Точнее и без неожиданных багов.
Ждать пока - это вейт в цикле, работает это просто отвратно, сам с этим сталкивался. Лучше заменить на событие смерти колдуна.

Я всё же думаю, что дело не в вейтах. Выводи имя героя Hero[A]. Лучше выводить так: ("герой - ") + (Имя юнита (Hero[A])) + " " + (Число в строку (А)).
Если нет имени - героя просто нет в этой переменной.
ответ
Вставь этот русификатор, он и в джнгп работает норм
ответ
Уже дошел методом тыка, нужно было использовать triggering unit. Мда.

Этот комментарий удален
1
А вообще, зависит от конкретного случая.
Особо мне рассказать нечего, так как только начал работать с триггерами. Задумка была в том, чтоб игрок через посох (предмет аля игрушечной башни/ратуши) ставил здание определенной фракции. В этой постройке прокает лишь 1 юнит из пула всех боевых единиц фракции к которой относится здание. У самого же юнита на выбор имеется 2 способности. Выбирая одну - вторая блокируется (хотел сделать через улучшение). Т.е условно нужно было сделать событие, в котором берется юнит заканчивающий исследование способности, проверка на то, какую способность выбрал игрок из 2, и действие блокирующее оставшееся исследование. Аналогично я не могу выбрать здание, так как оно еще не построено и его нет на карте.
18
Аналогично я не могу выбрать здание, так как оно еще не построено и его нет на карте.
Загруженные файлы
21
imnew, ну здесь можно зарегистрировать событие на на определённого юнита, а на игрока.

То есть завершает исследование не конкретный юнит, а любой юнит конкретного игрока.
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.