function Trig_GTrain_Actions takes nothing returns nothing local integer i=0 local integer r=0 local unit u=GetTriggerUnit() local unit array t local unit a=GetTrainedUnit() local unit e local group array g set num=num+1 set t[num]=a set g[num]=CreateGroup() call UnitAddAbility(t[num],'A000') loop exitwhen i==4 set e=CreateUnit(GetOwningPlayer(GetTriggerUnit()),GetUnitTypeId(t[num]),GetWidgetX(u),GetWidgetY(u),bj_UNIT_FACING) call GroupAddUnit(g[num],e) call RemoveGuardPosition(e) call UnitAddAbility(e,'A001') set i=i+1 endloop call SaveUnitHandle(hash,0,1,t[num]) call SaveGroupHandle(hash,0,2,g[num]) call SaveInteger(hash,0,3,num) set u=null loop exitwhen r==num set t[r]=null set g[r]=null set r=r+1 endloop endfunction
//=========================================================================== function InitTrig_GTrain takes nothing returns nothing set gg_trg_GTrain = CreateTrigger( ) call TriggerRegisterAnyUnitEventBJ( gg_trg_GTrain, EVENT_PLAYER_UNIT_TRAIN_FINISH ) call TriggerAddAction( gg_trg_GTrain, function Trig_GTrain_Actions ) endfunction
GMove - Движение созданых групп.
Code
function Trig_GMove_Actions takes nothing returns nothing local real x local real y local string o=OrderId2String(GetIssuedOrderId()) local integer num=LoadInteger(hash,0,3) local unit t=LoadUnitHandle(hash,0,1) local group g=LoadGroupHandle(hash,0,2) if IsUnitType(GetOrderedUnit(), UNIT_TYPE_STRUCTURE) == false and GetOrderedUnit() ==t then set x=GetOrderPointX() set y=GetOrderPointY() call GroupImmediateOrder(g,o) call GroupPointOrder(g,o,x,y) call GroupTargetOrder(g,o,GetOrderTargetUnit()) call GroupTargetOrder(g,o,GetOrderTargetDestructable()) call GroupTargetOrder(g,o,GetOrderTargetItem()) endif endfunction
Теперь следующие. Юниты создаються. Лидер определяеться и групаа двигаться куда нужно. При созздании второй группы. Лидер определяеться и групаа двигаться куда нужно. НО!!!ПЕРВАЯ ГРУППА не двигаеться.