Menssagem Admin

    Compartilhe
    avatar
    Thales12
    Administrador
    Administrador

    Mensagens : 140
    Level : 8
    Data de inscrição : 01/11/2011
    Idade : 23
    Localização : Rio de Janeiro

    default Menssagem Admin

    Mensagem por Thales12 em Sex Fev 17, 2012 5:40 pm

    Escrito por Lucas Roberto na antiga mmorpgbr

    Esta simples irá adicionar um sistema de mensagens de administração, basicamente, eu tinha ampliado o Origins e acrescentou uma forma do cliente de enviar a mensagem. Por padrão, você bate-papo no admin, digitando `antes de sua mensagem. Você pode usar Ctrl + F para alterar facilmente este porque o personagem é como se nunca usado. -, -

    Cliente:

    Encontre esta:
    Código:
    ' Broadcast message
            If left$(ChatText, 1) = "'" Then
                ChatText = Mid$(ChatText, 2, Len(ChatText) - 1)

                If Len(ChatText) > 0 Then
                    Call BroadcastMsg(ChatText)
                End If

                MyText = vbNullString
                frmMain.txtMyChat.text = vbNullString
                Exit Sub
            End If

    Abaixo acrescentar o seguinte:
    Código:
     ' Admin message
            If left$(ChatText, 1) = "`" Then
                If GetPlayerAccess(MyIndex) > 0 Then
                    ChatText = Trim$(GetPlayerName(MyIndex) & ": " & Mid$(ChatText, 2, Len(ChatText) - 1))
       
                    If Len(ChatText) > 0 Then
                        Call AdminMsg(ChatText)
                    End If
       
                    MyText = vbNullString
                    frmMain.txtMyChat.text = vbNullString
                    Exit Sub
                End If
            End If

    Procure por:
    Código:
    CBroadcastMsg

    Abaixo coloque:
    Código:
    CAdminMsg

    Substituir Private Sub AdminMsg ou cole este abaixo Public Sub BroadcastMsg:
    Código:
    Public Sub AdminMsg(ByVal text As String)
        Dim Buffer As clsBuffer
        Set Buffer = New clsBuffer
       
        Buffer.WriteLong CAdminMsg
        Buffer.WriteString text
       
        SendData Buffer.ToArray()
        Set Buffer = Nothing
    End Sub

    Encontre está:
    Código:
    HandleDataSub(SGlobalMsg) = GetAddress(AddressOf HandleGlobalMsg)

    Abaixo coloque:
    Código:
    HandleDataSub(SAdminMsg) = GetAddress(AddressOf HandleAdminMsg)


    Abaixo Private Sub HandleMapMsg adicionar este ou substituir Private Sub HandleAdminMsg com esta:
    Código:
    Private Sub HandleAdminMsg(ByVal Index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)
        Dim Buffer As clsBuffer
        Dim Msg As String
        Set Buffer = New clsBuffer
        Buffer.WriteBytes Data()
        Msg = Buffer.ReadString
        Index = Buffer.ReadLong
        Call AddText(Msg, BrightCyan)
    End Sub

    Server:

    Encontrar Public Sub InitMessages () e adicione isso no fundo antes de End Sub:

    Código:
    HandleDataSub(CAdminMsg) = GetAddress(AddressOf HandleAdminMsg)

    Encontrar Private Sub HandlePlayerMsg e adicione este abaixo:
    Código:
    Sub HandleAdminMsg(ByVal Index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)
        Dim Buffer As clsBuffer
       
        ' Prevent hacking
        If GetPlayerAccess(Index) < 1 Then Exit Sub
       
        Set Buffer = New clsBuffer
        Buffer.WriteBytes Data()
        Call AdminMsg(Buffer.ReadString)
        Set Buffer = Nothing
    End Sub

    Encontrar Public Sub AdminMsg e substituí-lo com esta:
    Código:
    Public Sub AdminMsg(ByVal Msg As String)
        Dim Buffer As clsBuffer
        Dim I As Long
        Set Buffer = New clsBuffer
       
        Msg = Trim$("[Admin] " & Msg)

        Buffer.WriteLong SAdminMsg
        Buffer.WriteString Msg

        For I = 1 To MAX_PLAYERS
            If IsPlaying(I) And GetPlayerAccess(I) > 0 Then
                SendDataTo I, Buffer.ToArray
            End If
        Next
       
        Set Buffer = Nothing
    End Sub

    Em Público ServerPackets Enum encontrar:
    Código:
    SGlobalMsg

    Abaixo acrescentar o seguinte:
    Código:
    SAdminMsg

    Em Público ClientPackets Enum encontrar:
    Código:
    CBroadcastMsg

    Abaixo acrescentar o seguinte:
    Código:
    CAdminMsg

    Creditos~
    Helladen
    Lucas Roberto - Traduzir

      Data/hora atual: Dom Set 23, 2018 9:17 am