Добавлен 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 для группы,ждля мгновенных действий где не надо хранить группу и где не вызывают я события триггеров ющающие эту группу,то можно юзать одну глобальную группу, быстрее ваших локальных чудес. . .
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован scopterectus
Второй метод хорош тем, что не нужно переносить локалки в глобалки, но опять же, если действий очень много, то поток может оборваться.
Отредактирован LainMikoroso
А по поводу:"нет разницы", есть большая ошибочка, т.к. на луа, быстрейшим способом является впихивание в условие, т.к. не приходится вытаскивать юнита из группы, а в сравнении с BlzUnitAtGroup не приходится чистить группу после использования
У меня жесткий абьюз глобалок во всех таймерах, выгружаемых с хеша, спонтанный новый поток буквально уничтожит весь код, хэх
Просто все эти "быстрее" реально не быстрее, каждый раз когда вам кто-то говорит, что вот это работает быстрее чем вон то - шлите его на фиг.