
Pick%= CameraPick(Cam,MouseX(),MouseY())
If MouseHit(1)
If CursorStatus=0 Then SelectBuilding(): SelectUnit(): MouseHitMap(PickedX(),PickedZ())
If CursorStatus=1 Then PostBuilding()
EndIf
If KeyHit(1)
If CursorStatus=0 Then Exit
ClearMouseStatus()
CursorStatus=0
EndIf
If KeyHit(6) Then CreateUnit( 1,PickedX(),PickedY()+1,PickedZ())
DrawSelectUnit()
DrawImage MousePointer,MouseX(),MouseY()
Flip
Forever
Function SelectUnit()
For Unit.TUnit = Each TUnit
If Unit<>Null
; EntityPickMode Unit\Model,2
; AnimEntityPickMode(Unit\Model,2) ;перенес в создание юнита
If Pick%= Unit\Model
Unit\Selected=True
Else
Unit\Selected=False
EndIf
EndIf
Next
End Function
Function DrawSelectUnit()
max#=10000000.0
For Unit.TUnit = Each TUnit
If Unit<>Null
If Unit\Selected=True
CameraProject(Cam,EntityX(Unit\Model),EntityY(Unit\Model)+Unit\ModelHeight#+0.5,EntityZ(Unit\Model))
If EntityInView(Unit\Model,Cam)=True
tY=TerrainY(terrain,EntityX(Unit\Model),EntityY(Unit\Model),EntityZ(Unit\Model))
PositionEntity SelectUnitSprite,EntityX(Unit\Model),tY+.1,EntityZ(Unit\Model)
max#=Unit\ModelWidth#
If Max#>Unit\ModelDepth# Then max#=Unit\ModelDepth#
ScaleSprite SelectUnitSprite,max#,max#
ShowEntity SelectUnitSprite
NewInterface.TInterface=First TInterface
StartDraw
SetBlend FI_ALPHABLEND
DrawImageEx Unit\Avatar ,NewInterface\AvatarX,NewInterface\AvatarY
DrawImageEx Unit\Icon ,NewInterface\IconX,NewInterface\IconY
EndDraw
UnitHealth(Unit\MaxHealth,Unit\NowHealth,ProjectedX#(),ProjectedY#(),True)
Return 0
EndIf
EndIf
EndIf
Next
HideEntity SelectUnitSprite
Return 0
End Function
Function UnitHealth(MaxHealth,NowHealth,Unit_X,Unit_Y,Viseble)
If Viseble=True
mxh=((MaxHealth/10)/4)
If NowHealth/10=MaxHealth/10 Or NowHealth/10>= ((mxh*3)) Then Color 0,255,0
If NowHealth/10>= ((mxh*2)) And NowHealth/10<((mxh*3)) Then Color 255,255,0
If NowHealth/10<= ((mxh*2)) Then Color 0,255,0
;Color 255,0,0
Rect Unit_X-(MaxHealth/10)/2,Unit_Y,MaxHealth/10,6,0
Rect Unit_X-(MaxHealth/10)/2,Unit_Y,NowHealth/10,6,1
Color 255,255,255
Return 0
EndIf
Return 0
End Function