Добавлен 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 для группы,ждля мгновенных действий где не надо хранить группу и где не вызывают я события триггеров ющающие эту группу,то можно юзать одну глобальную группу, быстрее ваших локальных чудес. . .
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
У меня система сталкивания и замедления для каждого объекта в карте, если бы я думал с "о байтодрочерстве не стоит думать в 2021", то я так и дальше бы имел 20 фпс при 90 единовременных снарядах в мапе.
Отредактирован LainMikoroso
Ну не знаю, мне доставляет абузить глобалки, делает код супер компактным. Главное чтобы новый поток начинался только тогда, когда я вызываю таймер, либо когда тик таймера заканчивался
все прекрасно читается, не знаю о чем ты.
Тоже самое в рефордже сейчас благодаря анонимкам я делаю потом внутри потока на периодике внутрипериодика, вся на ультра малых периодах. И каким бы не был громоздким код - я ничего не теряю в производительности ну никак.
Всё что отбирает у вас производительность это юниты, декорации и доады
Я это написал в одном сообщении 3 раза, потому что реально, ну не факт перебора тут важен. И я это знаю уже 10 лет, и Назар это доказал, хоть какими-то бенчмарками, а то бы мне так никто бы и не верил
Если делать простое движение юнитов, то да, влияет больше модель, чем лишние 2-3 тика в цикле движения. Но когда ты добавляешь сталкивание этих снарядов(с проверкой), когда у каждого снаряда разная скорость, и прочее, то тут уже на производительность влияет количество, т.к. количество операций увеличивается в несколько раз(в геометрической прогрессии)
Из-за табуляции, не заметил 0.032 таймера
Отредактирован Vlod