;Так скажем, захват зданий
If u(t,i,style_)=uns_base
If uf(t,i,protected_)>0
If u(t,i,assaulted_)
h=Rnd(1,3)
If h=1
fas=0
eas=0
maxasss=0
For ot=0 To maxteam
curasss=0
For oi=1 To ttu(ot)
If u(ot,oi,assault_) And u(ot,oi,intoENT_)=0
If EntityDistance(u(ot,oi,ent_),ent)<40
If dip(ot,t)
fas=fas+1
Else
eas=eas+1
curasss=curasss+1
If curasss>maxasss Then maxasss=curasss:u(t,i,assault_team_)=ot
EndIf
EndIf
EndIf
Next
Next
If eas<fas-1 Or eas=0
u(t,i,assaulted_)=0
EndIf
EndIf
pgrvalue=uf(t,i,cur_protect_)*200.0/uf(t,i,protect_)
spx=uf(t,i,spx_)-100
spy=uf(t,i,spy_)-60
SetColor tm_color(t,1),tm_color(t,2),tm_color(t,3)
SetBlend FI_ALPHABLEND
For k=0 To pgrvalue-1
DrawImageEx(gfx_assswirl,spx+k,spy,(k+MilliSecs()*0.03) Mod 12)
Next
SetColor tm_color(u(t,i,assault_team_),1),tm_color(u(t,i,assault_team_),2),tm_color(u(t,i,assault_team_),3)
For k=pgrvalue To 199
DrawImageEx(gfx_assswirl,spx+k,spy,(k+MilliSecs()*0.03) Mod 12)
Next
SetColor 255,255,255
SetBlend FI_LIGHTBLEND
DrawImageEx gfx_assbar,spx,spy
SetBlend FI_ALPHABLEND
uf(t,i,cur_protect_)=uf(t,i,cur_protect_)-1
If uf(t,i,cur_protect_)<0
u(t,i,assaulted_)=0
uf(t,i,cur_protect_)=1
TransmitUnit(t,i,u(t,i,assault_team_))
EndIf
Else
uf(t,i,cur_protect_)=uf(t,i,cur_protect_)+5
If uf(t,i,cur_protect_)>uf(t,i,protect_) Then uf(t,i,cur_protect_)=uf(t,i,protect_)
h=Rnd(1,30)
If h=1
fas=0
eas=0
maxasss=0
For ot=0 To maxteam
curasss=0
For oi=1 To ttu(ot)
If u(ot,oi,assault_) And u(t,i,into_)=0
If EntityDistance(u(ot,oi,ent_),ent)<40
If dip(ot,t)
fas=fas+1
Else
eas=eas+1
curasss=curasss+1
If curasss>maxasss Then maxasss=curasss:u(t,i,assault_team_)=ot
EndIf
EndIf
EndIf
Next
Next
If eas>fas+2
u(t,i,assaulted_)=1
EndIf
EndIf
EndIf
EndIf
EndIf
;Так скажем обработка гарнизона, когда юнит сидит внутри
If u(t,i,into_)
PositionEntity ent,EntityX(u(t,i,intoENT_),1),EntityY(u(t,i,intoENT_),1),EntityZ(u(t,i,intoENT_),1)
EndIf
If u(t,i,maxinto_)>0 And t=myteam
If u(t,i,nav_time_)>1
packing=0
idut_into=0
For ot=0 To maxteam
For oi=1 To ttu(ot)
If u(ot,oi,intoENT_)=ent Then idut_into=idut_into+1
Next
Next
If idut_into<u(t,i,maxinto_)
For k=1 To ttu(myteam)
If k<>i And u(myteam,k,sel_) And ((u(t,i,intotype_)=2 And u(myteam,k,style_)<>uns_base) Or u(myteam,k,style_)=uns_solider) Then packing=1
Next
If packing
current_cur=cur_pack
If md2
sx_#=0
sz_#=0
cnt=0
For k=1 To ttu(myteam)
If k<>i And u(myteam,k,sel_)
If (u(t,i,intotype_)=2 And u(myteam,k,style_)<>uns_base) Or u(myteam,k,style_)=uns_solider And cnt<(u(t,i,maxinto_)-u(t,i,uinto_))
u(myteam,k,intoENT_)=ent
u(myteam,k,intoI_)=i
u(myteam,k,intoT_)=t
u(myteam,k,intoID_)=u(t,i,id_)
sx_#=sx_#+EntityX(u(myteam,k,ent_),1)
sz_#=sz_#+EntityZ(u(myteam,k,ent_),1)
cnt=cnt+1
EndIf
EndIf
Next
If cnt>0
sx_#=sx_#/Float(cnt)
sz_#=sz_#/Float(cnt)
MoveUnitTo(t,i,sx_,sz_)
If u(t,i,landing_)=0 Then u(t,i,eng_enabled_)=0
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf