Вот мой очередной недокод. Это создание двух волн в разных областях, и приказ им атаковать рандомного юнита из группы Heroes.
Про GetRectCenter не говорите, я просто только сейчас заметил.
Code
function Wawe_Order takes nothing returns nothing
IssueTargetOrder( GetEnumUnit(), "attack", GroupPickRandomUnit(udg_Heroes))
endfunction
function Trig_V1_Actions takes nothing returns nothing
local group g = CreateGroup()
local group g2 = CreateGroup()
call BJDebugMsg( "Первая волна - " + ( udg_UnitName[1] + ( ". Особености: " + udg_UnitSpells[1] ) ) )
call TimerDialogDisplay(udg_TimWin[1], false)
call DestroyTimerDialog( udg_TimWin[1] )
set g = CreateNUnitsAtLoc( udg_UnitsNum, udg_WhichUnit[1],
Player(PLAYER_NEUTRAL_AGGRESSIVE), GetRectCenter(gg_rct_CreepsUp), bj_UNIT_FACING )
call GroupAddGroup( g, udg_UnitsUp[1] )
call ForGroup( udg_UnitsUp[1], function Wawe_Order )
set g2 = CreateNUnitsAtLoc( udg_UnitsNum, udg_WhichUnit[1],
Player(PLAYER_NEUTRAL_AGGRESSIVE), GetRectCenter(gg_rct_CreepsDown), bj_UNIT_FACING )
call GroupAddGroup( g2, udg_UnitsDown[1] )
call ForGroup( udg_UnitsDown[1], function Wawe_Order )
call EnableTrigger( gg_trg_V1Dead )
endfunction
function InitTrig_V1 takes nothing returns nothing
set gg_trg_V1 = CreateTrigger( )
call TriggerRegisterTimerExpireEventBJ( gg_trg_V1, udg_Tim[1] )
call TriggerAddAction( gg_trg_V1, function Trig_V1_Actions )
endfunction