06-11-2008, 10:18 PM
Here's my BltTargetting sub.
Code:
Public Sub BltTargetting()
Dim X As Long
Dim Y As Long
Dim rec As DXVBLib.RECT
If Not OverPlay Then
If Current_Target = 0 Or Current_TargetType = TARGET_TYPE_NONE Then Exit Sub
End If
If Current_TargetType = TARGET_TYPE_PLAYER And HasTarget Then
If Current_Target MyIndex Then
If GetPlayerMap(Current_Target) GetPlayerMap(MyIndex) Then Exit Sub
End If
End If
With rec
.Top = PIC_Y
If Not HasTarget Then .Top = 0
.Bottom = .Top + PIC_Y
.Left = 40 * TargetLeft
.Right = .Left + 40
End With
If HasTarget Then
If Current_TargetType = TARGET_TYPE_PLAYER Then
X = ((Norm.X_Loc(GetPlayerX(Current_Target)) + Player(Current_Target).XOffset) - 4)
Y = ((Norm.Y_Loc(GetPlayerY(Current_Target)) + Player(Current_Target).YOffset) + 8)
ElseIf Current_TargetType = TARGET_TYPE_NPC Then
X = ((Norm.X_Loc(MapNpc(Current_Target).X) + MapNpc(Current_Target).XOffset) - 4)
Y = ((Norm.Y_Loc(MapNpc(Current_Target).Y) + MapNpc(Current_Target).YOffset) + 8)
End If
Else
X = (CurX * PIC_X) - 4
Y = (CurY * PIC_Y) + 8
End If
If X < 0 Then
X = 0
With rec
.Left = .Left + (X * -1)
End With
End If
Call DD_BackBuffer.BltFast(X, Y, DD_Target, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
End Sub