Показать сообщение отдельно
Старый 28.05.2007, 03:03   #35
WaReZ_MEN
Модератор
 
Регистрация: 20.06.2006
Сообщений: 363
Написано 24 полезных сообщений
(для 44 пользователей)
Re: Как узнать размер меша?

    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
(Offline)
 
Ответить с цитированием