Всем известно, что выбор юнитов таким способом - кашка:
Code
group g = CreateGroup() unit e GroupEnumUnitsInRange(g, x, y, 100500., null) loop e = FirstOfGroup(g) exitwhen e == null // GroupRemoveUnit(g, e) endloop DestroyGroup(g) g = null
local group Group = CreateGroup() ... call GroupEnumUnitsInRange(Group,X,Y,120,null) loop set Picked = FirstOfGroup(Group) exitwhen Secret_Pirouette_Filter(Caster,Picked) == true or Picked == null call GroupRemoveUnit(Group,Picked) endloop ... call DestroyGroup(Group) set Group = null
Правильно:
Code
// c_temp и t_temp - глобальные переменные // gr_temp - Глобальная, всегда пустая группа, создання для переборов юнитов
// JASS function foo takes nothing returns boolean if t_temp == null and SecretPirouetteFilter (c_temp, GetFilterUnit()) then set t_temp = GetFilterUnit() endif return false endfunction ... set c_temp = Caster set t_temp = null call GroupEnumUnitsInRange (gr_temp, x, y, 120., Condition(function Foo))
Добавлено (09 Январь 2012, 19:33:56) --------------------------------------------- Только желательно сделать фильтр глобальным, чтоб каждый раз не вызывать функцию Filter.