Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

EO / GM tag system by Ertzel problems.


dthnote801
 Share

Recommended Posts

Using this code.

in DrawPlayerName  sub
```
Public Sub DrawPlayerName(ByVal Index As Long)
    Dim TextX As Long
    Dim TextY As Long
    Dim Color As Long
    Dim Tag As String
    Dim TagWidth As Long
    Dim TagColor As Long

    ' Check access level
    If GetPlayerPK(Index) = NO Then

        Select Case GetPlayerAccess(Index)

            Case 0
                Color = RGB(255, 96, 0)
                Tag = vbNullString
            Case 1
                Color = QBColor(DarkGrey)
                Tag = "[GM] "
                TagColor = QBColor(Red)
            Case 2
                Color = QBColor(Cyan)
                Tag = "[GM] "
                TagColor = QBColor(Red)
            Case 3
                Color = QBColor(BrightGreen)
                Tag = "[DEV] "
                TagColor = QBColor(Blue)
            Case 4
                Color = QBColor(Yellow)
                Tag = "[DEV] "
                TagColor = QBColor(Blue)
        End Select

    Else
        Color = QBColor(BrightRed)
    End If

    If GetPlayerSprite(Index) > 1 Or GetPlayerSprite(Index) > NumCharacters Then
        TextX = ConvertMapX(GetPlayerX(Index) * PIC_X) + Player(Index).XOffset + (PIC_X \ 2) - getWidth(TexthDC, (Trim$(GetPlayerName(Index))))
        TextY = ConvertMapY(GetPlayerY(Index) * PIC_Y) + Player(Index).YOffset - 16
    Else
        ' Determine location for text
        TextX = ConvertMapX(GetPlayerX(Index) * PIC_X) + Player(Index).XOffset + (PIC_X \ 2) - getWidth(TexthDC, (Trim$(GetPlayerName(Index))))
        TextY = ConvertMapY(GetPlayerY(Index) * PIC_Y) + Player(Index).YOffset - (DDSD_Character(GetPlayerSprite(Index)).lHeight) + 16
    End If

    If GetPlayerAccess(Index) > ADMIN_MONITOR Then
        TagWidth = getWidth(TexthDC, Tag)
        TextX = TextX + TagWidth

        Call DrawText(TexthDC, TextX - TagWidth * 2, TextY, Tag, TagColor)
    End If

    ' Draw name
    Call DrawText(TexthDC, TextX, TextY, GetPlayerName(Index), Color)
End Sub
```
I'm getting this error:  The tag and name is floating way too high on the screen.

Any help and suggestions would be appreciated.
Link to comment
Share on other sites

```
If GetPlayerSprite(Index) > 1 Or GetPlayerSprite(Index) > NumCharacters Then
        TextX = ConvertMapX(GetPlayerX(Index) * PIC_X) + Player(Index).XOffset + (PIC_X \ 2) - getWidth(TexthDC, (Trim$(GetPlayerName(Index))))
        TextY = ConvertMapY(GetPlayerY(Index) * PIC_Y) + Player(Index).YOffset - 16
    Else
        ' Determine location for text
        TextX = ConvertMapX(GetPlayerX(Index) * PIC_X) + Player(Index).XOffset + (PIC_X \ 2) - getWidth(TexthDC, (Trim$(GetPlayerName(Index))))
        TextY = ConvertMapY(GetPlayerY(Index) * PIC_Y) + Player(Index).YOffset - (DDSD_Character(GetPlayerSprite(Index)).lHeight) + 16
    End If

```
To
```
If GetPlayerSprite(Index) > 1 Or GetPlayerSprite(Index) > NumCharacters Then
        TextX = ConvertMapX(GetPlayerX(Index) * PIC_X) + Player(Index).XOffset + (PIC_X \ 2) - getWidth(TexthDC, (Trim$(GetPlayerName(Index))))
        TextY = ConvertMapY(GetPlayerY(Index) * PIC_Y) + Player(Index).YOffset - 4
    Else
        ' Determine location for text
        TextX = ConvertMapX(GetPlayerX(Index) * PIC_X) + Player(Index).XOffset + (PIC_X \ 2) - getWidth(TexthDC, (Trim$(GetPlayerName(Index))))
        TextY = ConvertMapY(GetPlayerY(Index) * PIC_Y) + Player(Index).YOffset - (DDSD_Character(GetPlayerSprite(Index)).lHeight) + 4

```
I'm just guessing here however it's the only thing which seems to actually do something other than reference. Why not create a back up and go test?
Link to comment
Share on other sites

  • 7 months later...
Played around with it and got it working.

Here it is:
```
If GetPlayerSprite(Index) < 1 Or GetPlayerSprite(Index) > NumCharacters Then
        TextX = ConvertMapX(GetPlayerX(Index) * PIC_X) + Player(Index).XOffset + (PIC_X \ 2) - getWidth(TexthDC, (Trim$(sTag & GetPlayerName(Index))))
        TextY = ConvertMapY(GetPlayerY(Index) * PIC_Y) + Player(Index).YOffset - 240
    Else
        TextX = ConvertMapX(GetPlayerX(Index) * PIC_X) + Player(Index).XOffset + (PIC_X \ 2) - getWidth(TexthDC, (Trim$(sTag & GetPlayerName(Index))))
        TextY = ConvertMapY(GetPlayerY(Index) * PIC_Y) + Player(Index).YOffset - (DDSD_Character(GetPlayerSprite(Index)).lHeight) + 160
    End If

    Call DrawText(TexthDC, TextX, TextY, sTag & GetPlayerName(Index), color)
End Sub
```
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...