Добавлен LainMikoroso
globals
conditionfunc condFAST = null
endglobals
function DamageFunc takes nothing returns boolean
set uENUM = GetFilterUnit()
if not IsUnitType(uENUM, UNIT_TYPE_STRUCTURE) and IsUnitEnemy(uENUM, GetOwningPlayer(uCAST)) and IsAlive(uENUM) then
call DamageUnit(uCAST, uENUM, LReal("Damage"), ATTACK_TYPE_NORMAL, DAMAGE_TYPE_UNIVERSAL)
endif
return false
endfunction
set condFAST = Condition(function DamageFunc)
call GroupEnumUnitsInRange(gFAST, x,y, 100, condFAST)
call DestroyCondition(condFAST)
или
call GroupEnumUnitsInRange(gFAST, x,y, 100, null)
loop
set uENUM = FirstOfGroup(gFAST)
exitwhen SysUnit == null
if not IsUnitType(uENUM, UNIT_TYPE_STRUCTURE) and IsUnitEnemy(uENUM, GetOwningPlayer(uCAST)) and IsAlive(uENUM) then
call DamageUnit(uCAST, uENUM, 10, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_UNIVERSAL)
endif
call GroupRemoveUnit(uENUM,gFAST)
endloopПринятый ответ
Ну болекспры побыстрее, но разницы на глаз вы не увидите. Я вот хз че вы там велосипеды изоьритаете, нет классической способ - groupenumunitsinrange, с фильтром,куда глобалками передаём аргументыесли нужно, ну и for group для группы,ждля мгновенных действий где не надо хранить группу и где не вызывают я события триггеров ющающие эту группу,то можно юзать одну глобальную группу, быстрее ваших локальных чудес. . .
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.

WC3




Ред. LainMikoroso
Ну не знаю, мне доставляет абузить глобалки, делает код супер компактным. Главное чтобы новый поток начинался только тогда, когда я вызываю таймер, либо когда тик таймера заканчивался
все прекрасно читается, не знаю о чем ты.
Тоже самое в рефордже сейчас благодаря анонимкам я делаю потом внутри потока на периодике внутрипериодика, вся на ультра малых периодах. И каким бы не был громоздким код - я ничего не теряю в производительности ну никак.
Всё что отбирает у вас производительность это юниты, декорации и доады
Я это написал в одном сообщении 3 раза, потому что реально, ну не факт перебора тут важен. И я это знаю уже 10 лет, и Назар это доказал, хоть какими-то бенчмарками, а то бы мне так никто бы и не верил
Если делать простое движение юнитов, то да, влияет больше модель, чем лишние 2-3 тика в цикле движения. Но когда ты добавляешь сталкивание этих снарядов(с проверкой), когда у каждого снаряда разная скорость, и прочее, то тут уже на производительность влияет количество, т.к. количество операций увеличивается в несколько раз(в геометрической прогрессии)
Из-за табуляции, не заметил 0.032 таймера
Ред. Vlod
Ну я так и думал в принципе, про глобалку на группу, я так и делаю