если снаряды будут находится в пути более 20 сек(при таймере 0,04 сек) то лучше триггеры иначе на таймеры проверку вешать
даже не 20 а 14 то есть если таймер вызывается более 350 раз
можно при касте сделать проверку если расстояние между точкой запуска и точкой куда направлен снаряд больше чем (350*расстояние на которое двигает таймер) то делать триггер иначе проверку на таймер
*вешать проверку на таймер
и да есть прога заносящая все данные с ро в бд
и если ты о землях бога говориш то там несложно сделать бд
если скинеш мне её открытою без тригеров только с юнитами то я сделаю бд
урон отлавливать надо динамическим созданием тригера
я говорю что для определения юнита нужно использовать общее событие юнит атакует да и смысла нету урон отлавливать
а чего сложного в том чтобы привязать?
и почему это много 2 масива типа интежер
*локальных масива
даже 100 юнитов можно в одиночку за пол часа сделать
и да можно использовать общее событие юнит атакован
атаку каждого юнита заносиш в бд , юниту с нулевой атакой даёш способность доп дамаг на основе предмета когти(+1), количество уровней способности должно быть равно количеству типов юнитов в твоей карте и например на 2 уровне способность даёт столько дамага сколько наносит пехотинец на 3 сколько мясник и тригерно меняеш уровень способности в зависимости от того кого атакуеш
тогда делай через радиус от тригер юнит с поиском вражеского юнита снаряда
других способов я не вижу да и нагрузка будет значительно меньше чем от перебора в таймере
function ret takes unit m,unit u returns nothing
local location lm=GetUnitLoc(m)
local location lu=GetUnitLoc(u)
local real dx=GetLocationX(lm) - GetLocationX(lu)
local real dy=GetLocationY(lm) - GetLocationY(lu)
local real r=SquareRoot(dx*dx+dy*dy)
if r>=1000 then
call IssuePointOrderLoc( u, "move", lm )
endif
call RemoveLocation(lm)
call RemoveLocation(lu)
endfunction
чего это криво? а вобще насколько я знаю надо вешать на хэндл таймера
и если возле снаряда появляется юнит не снаряд врага то врывать снаряд и дестроить таймер
и ненадо делать отдельный тригер просто таймерами
тогда хэндл юнита находящегося на расстояние (расстояние детонации) от GetTriggerUnit() с равкодом снаряда
а да ещё проверь чтобы снаряды не принадлежали владельцу GetTriggerUnit() и его союзникам
vjass входит в jngp
неработает карта скачай jngp
в обычном глобальные обьявляй через кнопочку переменные
если через jngp работаеш то сохрани карту и запусти не через проверку карты
перед проверкой карты надо сохранять иначе вджаз не компилируется
проверь через варкрафт а не через проверку карты и если несработает то пиши потомушто у меня твоя карта работает
» WarCraft 3 / Как передать структуру в действие триггера?
даже не 20 а 14 то есть если таймер вызывается более 350 раз
можно при касте сделать проверку если расстояние между точкой запуска и точкой куда направлен снаряд больше чем (350*расстояние на которое двигает таймер) то делать триггер иначе проверку на таймер
*вешать проверку на таймер
» WarCraft 3 / Способность к чужому урону
» WarCraft 3 / Как передать структуру в действие триггера?
хотя учитывая что у тебя и так таймеры есть то лучше наверное не использовать динамические триггеры
» WarCraft 3 / Способность к чужому урону
и если ты о землях бога говориш то там несложно сделать бд
если скинеш мне её открытою без тригеров только с юнитами то я сделаю бд
урон отлавливать надо динамическим созданием тригера
я говорю что для определения юнита нужно использовать общее событие юнит атакует да и смысла нету урон отлавливать
» WarCraft 3 / Способность к чужому урону
и почему это много 2 масива типа интежер
*локальных масива
даже 100 юнитов можно в одиночку за пол часа сделать
и да можно использовать общее событие юнит атакован
» WarCraft 3 / Способность к чужому урону
» WarCraft 3 / Возможно ли получить инфу о деструктебле?
» WarCraft 3 / Удаляю нестандартную способность - Ошибка
» WarCraft 3 / как найти самого близкого юнита
и зачем здание создавать
короче держи
интересно sergant1000 читает ответы на этот вопрос или он забил?
» WarCraft 3 / Проблема с инвизом
» WarCraft 3 / Как передать структуру в действие триггера?
» WarCraft 3 / Как передать структуру в действие триггера?
других способов я не вижу да и нагрузка будет значительно меньше чем от перебора в таймере
» WarCraft 3 / Как передать структуру в действие триггера?
» WarCraft 3 / Как передать структуру в действие триггера?
если так как ты хочешь то только перебор все снарядов находящихся в радиусе который указан в событие от тригерюнит
» WarCraft 3 / Как передать структуру в действие триггера?
» WarCraft 3 / Не могу найти ошибку
local location lm=GetUnitLoc(m)
local location lu=GetUnitLoc(u)
local real dx=GetLocationX(lm) - GetLocationX(lu)
local real dy=GetLocationY(lm) - GetLocationY(lu)
local real r=SquareRoot(dx*dx+dy*dy)
if r>=1000 then
call IssuePointOrderLoc( u, "move", lm )
endif
call RemoveLocation(lm)
call RemoveLocation(lu)
endfunction
u-юнит
» WarCraft 3 / Как передать структуру в действие триггера?
если не найдёш не 1 из 100500 примеров пиши в личку сделаю для тебя пример
» WarCraft 3 / Как передать структуру в действие триггера?
и если возле снаряда появляется юнит не снаряд врага то врывать снаряд и дестроить таймер
и ненадо делать отдельный тригер просто таймерами
» WarCraft 3 / Как передать структуру в действие триггера?
а да ещё проверь чтобы снаряды не принадлежали владельцу GetTriggerUnit() и его союзникам
» WarCraft 3 / Глобальные переменные
неработает карта скачай jngp
в обычном глобальные обьявляй через кнопочку переменные
если через jngp работаеш то сохрани карту и запусти не через проверку карты
» WarCraft 3 / Глобальные переменные
проверь через варкрафт а не через проверку карты и если несработает то пиши потомушто у меня твоя карта работает
» WarCraft 3 / Глобальные переменные
код он исправил
или событие левое использовал
» WarCraft 3 / Как передать структуру в действие триггера?
» WarCraft 3 / Глобальные переменные
ты запускаеш карту через проверку карты или через варик?
» WarCraft 3 / Проблема с инвизом