Доброго времени суток!
Подскажите, пожалуйста, можно ли создать событие, которое запускает триггер тогда, когда юнит входит/выходит из воды?
Если нет, то проверить расположение юнита в воде можно с помощью PATHING_TYPE_FLOATABILITY, но тогда каким событием запустить эту проверку?
Подскажите, пожалуйста, можно ли создать событие, которое запускает триггер тогда, когда юнит входит/выходит из воды?
Если нет, то проверить расположение юнита в воде можно с помощью PATHING_TYPE_FLOATABILITY, но тогда каким событием запустить эту проверку?
Принятый ответ
Почему то на таймере всё забагалось и прилетало по несколько ивентов, сделал на периодическом триггере и всё стало нормально.
Код
globals
region region123
trigger trg = CreateTrigger()
real maxX
real minX
real maxY
real minY
real pointX
real pointY
endglobals
function Run takes nothing returns nothing
if pointY < minY then
call TriggerRegisterEnterRegion( gg_trg_enter, region123, null )
call TriggerRegisterLeaveRegion( gg_trg_leave, region123, null )
call DisableTrigger( trg )
endif
if pointX > maxX then
set pointY = pointY-32.00
set pointX = minX
endif
if IsTerrainPathable(pointX, pointY, PATHING_TYPE_FLOATABILITY) == false then
call RegionAddCell( region123, pointX, pointY )
endif
set pointX = pointX+32.00
endfunction
function Trig_trg_Actions takes nothing returns nothing
set region123 = CreateRegion()
set maxX = GetRectMaxX(bj_mapInitialPlayableArea)
set minX = GetRectMinX(bj_mapInitialPlayableArea)
set maxY = GetRectMaxY(bj_mapInitialPlayableArea)
set minY = GetRectMinY(bj_mapInitialPlayableArea)
set pointX = minX
set pointY = maxY
call TriggerRegisterTimerEvent( trg, 0., true )
call TriggerAddCondition( trg, Condition(function Run) )
endfunction
//===========================================================================
function InitTrig_trg takes nothing returns nothing
call Trig_trg_Actions()
endfunction
Вот карта с примером (карту сохранить не сможешь, т.к тебе нужен будет JNGP, это просто чтобы ты посмотрел сам алгоритм)
И учти что чем больше карта, тем больше времени нужно алгоритму что построить регион
И учти что чем больше карта, тем больше времени нужно алгоритму что построить регион
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован ImbaState
Отредактирован Hodor
Отредактирован Hodor
Отредактирован Пушистый
Отредактирован Hodor
зачем такую нагрузку лишнюю, есть же прекрасные ивенты на вход/выход. И тем более у него видимо карты с разными ландшафтами.
Я тут подсчитал, мой алгоритм сьел 4 фпс на карте 64x64 за пол секунды, поставил его в инициализацию, так вообще незаметно стало.
Щас пока что настраиваю
ыыы, затупил, варкрафт тупо завершает поток из за loop, ща на таймере переделаю
ну там включить и выключить пассивку у него
Я алгоритм собрал, но вот че то не пойму почему при входе в воду прилетает 10-20 ивентов, вроде шаг стоит на 30.00.
Тем более таймер очень медленный, примерно за 2-3 собирает регион. Мне кажется шаг в 30.00 слишком большой и нужно его уменьшить, но чем больше уменьшаю тем медленнее таймер собирает регион.
Там у таймера если что периодичность 0.000
Попробую сделать периодический триггер или разбить потоки с помощью Execute и loop, (т.к loop гораздо быстрее таймера, но в одном потоке нереально сделать сборку региона)