Добавлен LainMikoroso
unit EnemyInGroup (unit u, float x, float y, float range) {
group enemies = CreateGroup()
unit u_e
GroupEnumUnitsInRange(enemies, x, y, range, Condition(function SimpleCond))
loop
u_e = FirstOfGroup(enemies)
if IsUnitEnemy(u_e, GetOwningPlayer(u)) then
return u_e
exitwhen true
else
GroupRemoveUnit(enemies, u_e)
endif
exitwhen u_e == null
endloop
//return u_e
DestroyGroup(enemies)
enemies = null
u_e = null
}
Пишет missing return, хотя он есть, чо делать?
Принятый ответ
Мне и нужно, чтобы возвращало первого попавшего
Окей, я тогда чутка переделаю свою версию.
code
globals
player TransPlayer
unit LastEnemyUnit
endglobals
function filter takes nothing returns boolean
if IsUnitEnemy(GetFilterUnit(), TransPlayer) then
set LastEnemyUnit = GetFilterUnit()
endif
return false
endfunction
function EnemyInRange takes unit u, real x, real y, real range returns unit
set TransPlayer = GetOwningPlayer(u)
set LastEnemyUnit = null
call GroupEnumUnitsInRange(bj_lastCreatedGroup, x, y, range, Filter(function filter))
return LastEnemyUnit
endfunction
Плохо, что ретурн позволяет появлятся утечкам.
Только если это локальная переменная, тип которой наследник handle. Если локальная другого типа, или это аргумент функции, или это глобальная, то утечек не будет.
Это, кстати, обещают исправить в будущих патчах.
Это, кстати, обещают исправить в будущих патчах.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован Raised
Отредактирован Raised
PT153:
LainMikoroso:
Отредактирован Raised
Отредактирован N1ghtSiren
Отредактирован PT153
Там это и параметр, и локальная, параметр не заметил. Аргументы да, не утекают.
Плохо, что ретурн позволяет появлятся утечкам.
Это, кстати, обещают исправить в будущих патчах.