10-04-2009, 11:23 PM
[SERVERSIDE]
change the SendVital sub to this
This sends the vitals to everyone, and also says who they are for.
[CLIENTSIDE]
change sub HandlePlayerHp to
change sub HandlePlayerMp to
change sub HandlePlayerSp to
Now to actually draw out the bars for everyone
.
in sub BltPlayer, right before end sub put
If you happen to also be using sp, you could put this.
And you are done
.
change the SendVital sub to this
Code:
Public Sub SendVital(ByVal Index As Long, ByVal Vital As Vitals)
Dim Packet As String
Select Case Vital
Case HP
Packet = SPlayerHp & SEP_CHAR & Index & SEP_CHAR & GetPlayerMaxVital(Index, Vitals.HP) & SEP_CHAR & GetPlayerVital(Index, Vitals.HP) & END_CHAR
Case MP
Packet = SPlayerMp & SEP_CHAR & Index & SEP_CHAR & GetPlayerMaxVital(Index, Vitals.MP) & SEP_CHAR & GetPlayerVital(Index, Vitals.MP) & END_CHAR
Case SP
Packet = SPlayerSp & SEP_CHAR & Index & SEP_CHAR & GetPlayerMaxVital(Index, Vitals.SP) & SEP_CHAR & GetPlayerVital(Index, Vitals.SP) & END_CHAR
End Select
Call SendDataToMap(GetPlayerMap(Index), Index, Packet)
End Sub
[CLIENTSIDE]
change sub HandlePlayerHp to
Code:
Private Sub HandlePlayerHp(ByRef Parse() As String)
Dim Index As Long
Index = CLng(Parse(1))
Player(Index).MaxHP = CLng(Parse(2))
Call SetPlayerVital(Index, Vitals.HP, CLng(Parse(3)))
If Index = MyIndex Then
If GetPlayerMaxVital(Index, Vitals.HP) > 0 Then
frmMirage.lblHP.Caption = Int(GetPlayerVital(Index, Vitals.HP) / GetPlayerMaxVital(Index, Vitals.HP) * 100) & "%"
End If
End If
End Sub
change sub HandlePlayerMp to
Code:
Private Sub HandlePlayerMp(ByRef Parse() As String)
Dim Index As Long
Index = CLng(Parse(1))
Player(Index).MaxMP = CLng(Parse(2))
Call SetPlayerVital(Index, Vitals.MP, CLng(Parse(3)))
If Index = MyIndex Then
If GetPlayerMaxVital(Index, Vitals.MP) > 0 Then
frmMirage.lblMP.Caption = Int(GetPlayerVital(Index, Vitals.MP) / GetPlayerMaxVital(Index, Vitals.MP) * 100) & "%"
End If
End If
End Sub
change sub HandlePlayerSp to
Code:
Private Sub HandlePlayerSp(ByRef Parse() As String)
Dim Index As Long
Index = CLng(Parse(1))
Player(Index).MaxSP = CLng(Parse(2))
Call SetPlayerVital(Index, Vitals.SP, CLng(Parse(3)))
If Index = MyIndex Then
If GetPlayerMaxVital(Index, Vitals.SP) > 0 Then
frmMirage.lblSP.Caption = Int(GetPlayerVital(Index, Vitals.SP) / GetPlayerMaxVital(Index, Vitals.SP) * 100) & "%"
End If
End If
End Sub
Now to actually draw out the bars for everyone

in sub BltPlayer, right before end sub put
Code:
If Player(Index).Vital(HP) = 0 Then Exit Sub
Call DDS_BackBuffer.SetFillColor(RGB(255, 0, 0))
Call DDS_BackBuffer.DrawBox(X, Y + 32, X + 32, Y + 36)
Call DDS_BackBuffer.SetFillColor(RGB(0, 255, 0))
Call DDS_BackBuffer.DrawBox(X, Y + 32, X + ((Player(Index).Vital(HP) / 100) / (Player(Index).MaxHP / 100) * 32), Y + 36)
Call DDS_BackBuffer.SetFillColor(RGB(255, 0, 0))
Call DDS_BackBuffer.DrawBox(X, Y + 35, X + 32, Y + 39)
Call DDS_BackBuffer.SetFillColor(RGB(0, 0, 255))
Call DDS_BackBuffer.DrawBox(X, Y + 35, X + ((Player(MyIndex).Vital(MP) / 100) / (Player(MyIndex).MaxMP / 100) * 32), Y + 39)
If you happen to also be using sp, you could put this.
Code:
Call DDS_BackBuffer.SetFillColor(RGB(255, 0, 0))
Call DDS_BackBuffer.DrawBox(X, Y + 38, X + 32, Y +42)
Call DDS_BackBuffer.SetFillColor(RGB(255, 255, 0))
Call DDS_BackBuffer.DrawBox(X, Y + 38, X + ((Player(MyIndex).Vital(MP) / 100) / (Player(MyIndex).MaxMP / 100) * 32), Y + 42)
And you are done
