Здравствуйте, нужен совет как сделать правильно и оптимизировано респаун мобов в заданной их точке.
Какой был вариант у меня:
Создавать переменную точек, устанавливать значение каждого моба по массивам.
Но теперь проблема, мне нужно отслеживать убийство каждого моба дабы возрождать его в указанной ему точке.
Если у меня лес из 50 мобов, то оптимизация тут отдыхает.. Хочу поинтересоваться как сделать правильно.

подобных систем 100500 же
да и делается изи
атачим к юниту его точку респавна (для тех у кого боязнь джасса можно юзать кастом вэлью)
когда юнит умирает то извлекаем приатаченную точку и запускаем вейт
по окончанию вейта создаём юнита в точке и атачим к нему эту точку
на гуи это 2 триггера
если хочется оптимально то стоит перейти на джасс и не насиловать себе мозги этими окошками
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
18
8gabriel8:
Можно и без JASS, значение (Diyng unit) для триггера не будет меняться.
нет нельзя, GetDyingUnit() не уникален для каждого потока, это как глобалка, но в триггере, туда записывается последний умерший юнит
18
8gabriel8:
UrsaBoss, попробуй сам.
если нужно что то сделать в потоке через некоторое время, то тут без локалок не обойтись.
А GetDyingUnit() будет всегда возвращать последнего умершего юнита, поэтому с ним муи никак не получится
А вот так будет работать
function Trig_trg_Actions takes nothing returns nothing
    local unit u = GetDyingUnit()
    call PolledWait( 6.00 )
    call ReviveHero( u, GetUnitX(u), GetUnitY(u), true )
    set u = null
endfunction

//===========================================================================
function InitTrig_trg takes nothing returns nothing
    set gg_trg_trg = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_trg, EVENT_PLAYER_UNIT_DEATH )
    call TriggerAddAction( gg_trg_trg, function Trig_trg_Actions )
endfunction
Даже можно дать "Перерождение" без кд, так будет проще
26
UrsaBoss, раз сам ты всё равно ленишься посмотреть, специально для тебя сделал.
Загруженные файлы
26
Обнаружил в сделанной системе косяк. Один раз воскрешается крип, а потом не хочет. Сейчас посмотрю в чём дело.
18
8gabriel8:
UrsaBoss, да поставил там разных, посмотри уже!
блин, действительно
странно, очень странно. Когда я ещё только только учился делать гуи триггеры, то эта фича не прокатывала
26
Ступил, новых юнитов в группу не добавляю, а старых не удаляю, вот и не работает после одного раза)
18
8gabriel8 лучше сделать на основе "Перерождение", так будет оптимальнее
21
Ивент
  • Юнет умир
Действие
  • Запустить таймер
  • Сохранить данные по юниту за хендлом таймера
Таймер истек
  • выгрузить данные
  • создать юнитов
26
UrsaBoss, а они в своей стартовой позиции будут перерождаться?
Но вообще ты прав, юниты при смерти от атаки по области не перерождаются. Подозреваю, что меняется их тип юнита, потому либо "Перерождение", либо сохранение ещё всех типов юнитов.

qzGoon, вот исправленная карта, где юниты респавнятся от атаки с руки, от способностей, при массовых смертях, но не респавнятся при атаке по области. Если у тебя нет а-ля мортир на карте, то тебе подойдёт эта система, если есть, то либо делай через Перерождение и мгновенное перемещение к стартовой позиции юнита, либо делай ещё один массив с типами юнитов.
UrsaBoss, а знаешь как отлавливать Перерождение?
Когда я ещё только только учился делать гуи триггеры, то эта фича не прокатывала.
Как-то смотрел карту одну, там герой должен был воскрешаться таким триггером, но не воскрешался. Среди прочих глюков сообщаю это автору, а он отвечает, что всё нормально, попробуй чуть обновлённую версию. Там тот же триггер. Всё работает) Ну как так?
Загруженные файлы
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.