Lucas Roberto Administrador
Mensagens : 711
| Assunto: Colocando DEV/Gm Tag Qui 10 Nov 2011, 18:32 | |
| Olá galera , eu queria saber antes como fazia que colocas-se nome em cima do jogador! E Vie no forum do Eclipse como que se faz : Ok, então este tutorial vai deixá-lo adicionar [GM] antes de seu Moderador / Mappers nomes ingame e no bate-papo, e [DEV] Antes de Devs / Admins nomes ingame e no chat. A coisa é, na verdade, isso não adicionar a tag para o seu personagem que só aparece como ele faz. Desta forma, não estragar arquivos jogador quando você faz alguém um Admin ou chutá-los da Admin. Ele também se auto-atualiza suas mudanças de acesso. Se você quiser mudar as tags para outra coisa basta substituir [GM] e [DEV] com outra coisa. Aqui está uma prévia do que ele faz. [Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]Atenção:Esse sistema pega tabem em eclipse 2.0 pra cimaComo você pode ver, meu nome é ainda Ertzel mas tem o [DEV] tag antes dela. Então, quando os jogadores querem enviar uma mensagem pessoal que não precisa incluir a tag. Todas as partes bate-papo são de origem, e as peças do jogo estão cliente então primeiro vamos começar com o chat ... - Servidor - Em modPlayer ir ao fundo e adicionar - Código:
-
Public Function GetPlayerTag(ByVal index As Long) As String Select Case GetPlayerAccess(index) Case ADMIN_MONITOR, ADMIN_MAPPER GetPlayerTag = "[GM] " Case ADMIN_DEVELOPER, ADMIN_CREATOR GetPlayerTag = "[Dev] " Case Else GetPlayerTag = " " End Select End Function
Va em modHandleData e substitua a seguinde sub: - Código:
-
Private Sub HandleEmoteMsg(ByVal Index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long) Por Esse Sub: - Código:
-
Private Sub HandleEmoteMsg(ByVal index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long) Dim Msg As String Dim I As Long Dim Buffer As clsBuffer Set Buffer = New clsBuffer Buffer.WriteBytes Data() Msg = Buffer.ReadString
' Prevent hacking For I = 1 To Len(Msg)
If AscW(Mid$(Msg, I, 1)) < 32 Or AscW(Mid$(Msg, I, 1)) > 126 Then Exit Sub End If
Next Call AddLog("Map #" & GetPlayerMap(index) & ": " & GetPlayerName(index) & " " & Msg, PLAYER_LOG) Call MapMsg(GetPlayerMap(index), GetPlayerTag(index) & GetPlayerName(index) & " " & Right$(Msg, Len(Msg) - 1), EmoteColor) Set Buffer = Nothing End Sub
Em modServeTCP subistitua a sub: - Código:
-
Sub SayMsg_Map(ByVal MapNum As Long, ByVal Index As Long, ByVal message As String, ByVal saycolour As Long) Por: - Código:
-
Sub SayMsg_Map(ByVal MapNum As Long, ByVal index As Long, ByVal message As String, ByVal saycolour As Long) Dim Buffer As clsBuffer Set Buffer = New clsBuffer Buffer.WriteLong SSayMsg Buffer.WriteString GetPlayerName(index) Buffer.WriteLong GetPlayerAccess(index) Buffer.WriteLong GetPlayerPK(index) Buffer.WriteString message Buffer.WriteString "[Map] " & GetPlayerTag(index) Buffer.WriteLong saycolour SendDataToMap MapNum, Buffer.ToArray() Set Buffer = Nothing End Sub Substitua tabem abaixo dessa sub a sub: - Código:
-
Sub SayMsg_Global(ByVal Index As Long, ByVal message As String, ByVal saycolour As Long) Por: - Código:
-
Sub SayMsg_Global(ByVal index As Long, ByVal message As String, ByVal saycolour As Long) Dim Buffer As clsBuffer Set Buffer = New clsBuffer Buffer.WriteLong SSayMsg Buffer.WriteString GetPlayerName(index) Buffer.WriteLong GetPlayerAccess(index) Buffer.WriteLong GetPlayerPK(index) Buffer.WriteString message Buffer.WriteString "[Global]" & GetPlayerTag(index) Buffer.WriteLong saycolour SendDataToAll Buffer.ToArray() Set Buffer = Nothing End Sub Parte do Client: ~~~Client~~~ Em modText substitua a sub - Código:
-
Public Sub DrawPlayerName(ByVal Index As Long)
Ate : ' Draw name Call DrawText(TexthDC, TextX, TextY, Name, color) Por esta sub: - Código:
-
Public Sub DrawPlayerName(ByVal Index As Long) Dim TextX As Long Dim TextY As Long Dim color As Long Dim sTag As String
' Check access level If GetPlayerPK(Index) = NO Then
Select Case GetPlayerAccess(Index) Case 0 color = RGB(255, 96, 0) sTag = vbNullString Case 1 color = QBColor(DarkGrey) sTag = "[GM] " Case 2 color = QBColor(Cyan) sTag = "[GM] " Case 3 color = QBColor(BrightGreen) sTag = "[DEV] " Case 4 color = QBColor(Yellow) sTag = "[DEV] " 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$(sTag & GetPlayerName(Index)))) TextY = ConvertMapY(GetPlayerY(Index) * PIC_Y) + Player(Index).YOffset - 16 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) + 16 End If
Call DrawText(TexthDC, TextX, TextY, sTag & GetPlayerName(Index), color) End Sub Pronto sistema feito! Creditos: touchofdeathforums.com - Por Disponibilizar o tuto Lordsams - Por Traduzir | |
|