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

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
26
qzGoon:
По подробнее можно?

nvc123 вкратце изложил самую суть. У меня ещё добавлена проверка невидимости точки респавна юнита для игрока, удаление группы при создании юнита и удаление убитых юнитов, чтобы не плодить утечек.
P. S. Нужно открывать карту в редакторе JNGP, обычный не содержит некоторых функций.
Загруженные файлы
21
8gabriel8, не открывается твоя карта. Ты часом не баловался с кастомными нативками или руссификатором триггеров?
26
Raised, проверил, открывается. Новый редактор?
Загруженные файлы
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
Ступил, новых юнитов в группу не добавляю, а старых не удаляю, вот и не работает после одного раза)
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.