Sistema de Rank Funcional - Página 2 Hitskin_logo Hitskin.com

Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o temaVoltar para a ficha do tema

Aldeia RPG
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Sistema de Rank Funcional

+9
Hooly
falcon459
Felix Blayder
mdomiciano
rangeleo
RD12
AlexsandroChaos
jiraya
Valentine
13 participantes

Página 2 de 2 Anterior  1, 2

Ir para baixo

Sistema de Rank Funcional - Página 2 Empty Re: Sistema de Rank Funcional

Mensagem por Hooly Dom Set 21, 2014 2:29 pm

alguem pode dar uma força aqui? eu fiz a parte do cliente mais no final quando vou compilar me é dado um erro:

Compile Error:
Method or data member not found.

no server eu não tive problema nenhum mais no client dá esse erro ai.

me é mostrada a seguinte linha

frmMain.lstRank.Clear (no final de modhandledata)

é destacado o .IstRank

da uma força ai! Neutral
Hooly
Hooly
Novato
Novato

Mensagens : 8
Créditos : 0

Ir para o topo Ir para baixo

Sistema de Rank Funcional - Página 2 Empty Re: Sistema de Rank Funcional

Mensagem por thales12 Ter Set 23, 2014 9:10 pm

Vc Criou a LstRank e a declarou ?

_________________
Meu fã ? Meu Amigo ? Entao Use !

Sistema de Rank Funcional - Página 2 Thalesfan
Sistema de Rank Funcional - Página 2 Mv0yg8

Minha Sign:

Sistema de Rank Funcional - Página 2 Zkqt5e
thales12
thales12
Membro de Honra
Membro de Honra

Mensagens : 322
Créditos : 108

Ficha do personagem
Nível: 1
Experiência:
Sistema de Rank Funcional - Página 2 Left_bar_bleue0/0Sistema de Rank Funcional - Página 2 Empty_bar_bleue  (0/0)
Vida:
Sistema de Rank Funcional - Página 2 Left_bar_bleue30/30Sistema de Rank Funcional - Página 2 Empty_bar_bleue  (30/30)

http://www.rdmgames.tk

Ir para o topo Ir para baixo

Sistema de Rank Funcional - Página 2 Empty Re: Sistema de Rank Funcional

Mensagem por Monotoshi Ter Set 23, 2014 10:23 pm

Aproveitando para passar aqui,Esse sistema há um BUG vamos dizer assim(Ou Uma falha),quando começar a jogar várias pessoas e atualizar o rank constantemente,o rank irá repetir nomes & desorganizar os levels.

Aguardo resposta valentine.

Monotoshi
Novato
Novato

Mensagens : 5
Créditos : 0

Ir para o topo Ir para baixo

Sistema de Rank Funcional - Página 2 Empty Re: Sistema de Rank Funcional

Mensagem por Hooly Qui Set 25, 2014 9:20 am

thales12 escreveu:Vc Criou a LstRank e a declarou ?
bom thales, eu criei a IstRank exatamente como mostra o tutorial, no entanto não faço ideia do que seja ''declarar'' =/ ficarei grato se puder explicar
Hooly
Hooly
Novato
Novato

Mensagens : 8
Créditos : 0

Ir para o topo Ir para baixo

Sistema de Rank Funcional - Página 2 Empty Re: Sistema de Rank Funcional

Mensagem por bangaran Qui Jul 16, 2020 11:21 pm

Valentine escreveu:Olá amigos, creio que todos sabem como funciona um sistema de rank, algo imprescindível para um verdadeiro MMORPG. Sei que existem alguns sistemas de rank por ai e talvez muitos de vocês já o tenha, porém esta é uma forma simples e completa de faze-lo, sistema totalmente testado e aprovado.

Abra o Cliente
1 - Na frmMain, crie uma Picturebox chamada picRank
Sistema de Rank Funcional - Página 2 57744486
2 - Dentro da picRank crie uma ListBox chamada lstRank
Sistema de Rank Funcional - Página 2 60970805
3 - Crie um botão chamado cmdRefresh
Sistema de Rank Funcional - Página 2 54104775
Obs.: Deverá ficar assim:
Sistema de Rank Funcional - Página 2 Imgahp
4 - Marque a Opção False em Visible na picRank
Sistema de Rank Funcional - Página 2 69569137
5 - Neste mesmo botão cmdRefresh, dê um duplo clique e substitua:
Código:
Private Sub cmdRefresh_Click()

End Sub
6 - Por:
Código:
Private Sub cmdRefresh_Click()
    ' If debug mode, handle error then exit out
    If Options.Debug = 1 Then On Error GoTo errorhandler
    
    SendRequestRank
    
    ' Error handler
    Exit Sub
errorhandler:
    HandleError "cmdRefresh_Click", "frmMain", Err.Number, Err.Description, Err.Source, Err.HelpContext
    Err.Clear
    Exit Sub
End Sub
7 - Em modConstants, procure por:
Código:
Public Const MAX_PARTY_MEMBERS As Long = 4
8 - Embaixo adicione:
Código:
Public Const MAX_RANK As Long = 10
9 - No final do modClientTCP, adicione:
Código:
Public Sub SendRequestRank()
Dim Buffer As clsBuffer

    ' If debug mode, handle error then exit out
    If Options.Debug = 1 Then On Error GoTo errorhandler
    
    Set Buffer = New clsBuffer
    Buffer.WriteLong CRequestRank
    SendData Buffer.ToArray()
    Set Buffer = Nothing
    
    ' Error handler
    Exit Sub
errorhandler:
    HandleError "SendRequestRank", "modClientTCP", Err.Number, Err.Description, Err.Source, Err.HelpContext
    Err.Clear
    Exit Sub
End Sub
10 - Em modEnumerations, procure por:
Código:
' Make sure CMSG_COUNT is below everything else
11 - Em cima desta linha e embaixo de:
Código:
CPartyLeave
12 - Adicione:
Código:
CRequestRank
Obs.: Deverá ficar assim:
Sistema de Rank Funcional - Página 2 27115231
13 - Ainda em modEnumerations, procure por:
Código:
' Make sure SMSG_COUNT is below everything else
14 - Em cima desta linha e embaixo de:
Código:
SPartyVitals
15 - Adicione:
Código:
SRankUpdate
16 - Em modHandleData, procure por:
Código:
HandleDataSub(SPartyVitals) = GetAddress(AddressOf HandlePartyVitals)
17 - Embaixo adicione:
Código:
HandleDataSub(SRankUpdate) = GetAddress(AddressOf HandleRankUpdate)
18 - No final de modHandleData, adicione:
Código:
Private Sub HandleRankUpdate(ByVal Index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)
Dim Buffer As clsBuffer, i As Byte

    ' If debug mode, handle error then exit out
    If Options.Debug = 1 Then On Error GoTo errorhandler
    
    Set Buffer = New clsBuffer
    Buffer.WriteBytes Data()
    
    frmMain.lstRank.Clear
    
    For i = 1 To MAX_RANK
        frmMain.lstRank.AddItem i & ":Nível: " & Buffer.ReadLong & ", Nome: " & Trim$(Buffer.ReadString)
    Next i
    
    Set Buffer = Nothing
    
    ' Error handler
    Exit Sub
errorhandler:
    HandleError "HandleRankUpdate", "modHandleData", Err.Number, Err.Description, Err.Source, Err.HelpContext
    Err.Clear
    Exit Sub
End Sub
19 - No modInput, procure por:
Código:
                    ' Whos Online
                Case "/who"
                    SendWhosOnline
20 - Embaixo adicione:
Código:
                    ' Request Rank
                Case "/rank"
                    SendRequestRank
                    frmMain.picRank.Visible = Not frmMain.picRank.Visible
21 - Em modGeneral, procure por:
Código:
frmMain.picParty.Visible = False
22 - Embaixo adicione:
Código:
frmMain.picRank.Visible = False

Abra o Servidor
1 - Em modConstants, procure por:
Código:
Public Const MAX_PARTY_MEMBERS As Long = 4
2 - Embaixo adicione:
Código:
Public Const MAX_RANK As Long = 10
3 - Em modEnumerations, procure por:
Código:
' Make sure SMSG_COUNT is below everything else
4 - Em cima desta linha e embaixo de:
Código:
SPartyVitals
5 - Adicione:
Código:
SRankUpdate
6 - Ainda em modEnumerations, procure por:
Código:
' Make sure CMSG_COUNT is below everything else
7 - Em cima desta linha e embaixo de:
Código:
CPartyLeave
8 - Adicione:
Código:
CRequestRank
9 - No modHandleData, procure por:
Código:
HandleDataSub(CPartyLeave) = GetAddress(AddressOf HandlePartyLeave)
10 - Embaixo Adicione:
Código:
HandleDataSub(CRequestRank) = GetAddress(AddressOf HandleRequestRank)
11 - No final de modHandleData, adicione:
Código:
Sub HandleRequestRank(ByVal index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)
    SendRankUpdate index
End Sub
12 - No final de modServerTCP, adicione:
Código:
Sub SendRankUpdate(ByVal index As Long)
    Dim i As Byte
    Dim Buffer As clsBuffer
    Set Buffer = New clsBuffer
    Buffer.WriteLong SRankUpdate
    For i = 1 To MAX_RANK
        Buffer.WriteLong Rank(i).Level
        Buffer.WriteString Trim$(Rank(i).Name)
    Next i
    SendDataTo index, Buffer.ToArray()
    Set Buffer = Nothing
End Sub
13 - No modPlayer, procure por
Código:
Sub CheckPlayerLevelUp(ByVal index As Long)
14 - Embaixo de :
Código:
Dim level_count As Long
15 - Adicione:
Código:
Dim RankPos As Byte
16 - Embaixo de:
Código:
SendPlayerData index
17 - Adicione:
Código:
        ' check rank
        RankPos = CheckRank(index)
        If RankPos > 0 Then
            ChangeRank index, RankPos
        End If
18 - No final de modPlayer, adicione:
Código:
Private Function CheckRank(ByVal index As Long) As Byte
Dim i As Byte
    For i = 1 To MAX_RANK
        If GetPlayerLevel(index) > Rank(i).Level Then
            CheckRank = i
            Exit Function
        End If
    Next i
End Function

Private Sub ChangeRank(ByVal index As Long, RankPos As Byte)
Dim i As Long, ClearPos As Byte

    ' if not change position in rank
    If GetPlayerName(index) = Trim$(Rank(RankPos).Name) Then
        Rank(RankPos).Level = GetPlayerLevel(index)
        SaveRank
        Exit Sub
    End If

    ' search player in rank
    For i = 1 To MAX_RANK
        If GetPlayerName(index) = Trim$(Rank(i).Name) Then
            Rank(i).Name = vbNullString
            Rank(i).Level = 0
            ClearPos = i
            Exit For
        End If
    Next i

    ' down clear position
    If ClearPos > 0 Then
        For i = ClearPos To MAX_RANK
            If i = MAX_RANK Then
                Rank(i).Name = vbNullString
                Rank(i).Level = 0
            Else
                Rank(i).Name = Rank(i + 1).Name
                Rank(i).Level = Rank(i + 1).Level
            End If
        Next i
    End If
    
    ' open space in rank to player
    For i = MAX_RANK To RankPos Step -1
        If i > RankPos Then
            Rank(i).Name = Rank(i - 1).Name
            Rank(i).Level = Rank(i - 1).Level
        End If
    Next i
    
    ' put player in rank
    Rank(RankPos).Name = GetPlayerName(index)
    Rank(RankPos).Level = GetPlayerLevel(index)
    
    SaveRank
End Sub
19 - No final de modDatabase, adicione:
Código:
Public Sub SaveRank()
Dim filename As String, i As Byte

    filename = App.Path & "\data\rank.ini"
    
    For i = 1 To MAX_RANK
        PutVar filename, "RANK", "Name" & i, Trim$(Rank(i).Name)
        PutVar filename, "RANK", "Level" & i, Val(Rank(i).Level)
    Next i
End Sub

Public Sub LoadRank()
Dim filename As String, i As Byte

    filename = App.Path & "\data\rank.ini"
    
    If FileExist(filename, True) Then
        For i = 1 To MAX_RANK
            Rank(i).Name = GetVar(filename, "RANK", "Name" & i)
            Rank(i).Level = Val(GetVar(filename, "RANK", "Level" & i))
        Next i
    Else
        SaveRank
    End If
End Sub
20 - Em modTypes, procure por:
Código:
Public Party(1 To MAX_PARTYS) As PartyRec
21 - Embaixo adicione:
Código:
Public Rank(1 To MAX_RANK) As RankRec
22 - Embaixo de:
Código:
Private Type OptionsRec
    Game_Name As String
    MOTD As String
    Port As Long
    Website As String
End Type
23 - Adicione:
Código:
Private Type RankRec
    Name As String * ACCOUNT_LENGTH
    Level As Long
End Type
24 - Em modPlayer, procure por:
Código:
    ' Send Resource cache
    For i = 0 To ResourceCache(GetPlayerMap(index)).Resource_Count
        SendResourceCacheTo index, i
    Next
25 - Embaixo adicione:
Código:
    ' Check Rank
    For i = 1 To MAX_RANK
        If Trim$(Rank(i).Name) = GetPlayerName(index) Then
            Exit For
        End If
        If GetPlayerLevel(index) > Rank(i).Level Then
            Rank(i).Name = GetPlayerName(index)
            Rank(i).Level = GetPlayerLevel(index)
            SaveRank
            Exit For
        End If
    Next i
26 - Em modGeneral, procure por:
Código:
    Call SetStatus("Loading animations...")
    Call LoadAnimations
27 - Embaixo Adicione:
Código:
    Call SetStatus("Loading rank...")
    Call LoadRank

Créditos:
Valentine

Disculpen este tema no pueden volverlo a subir con sus respectivas fotos????

bangaran
Novato
Novato

Mensagens : 5
Créditos : 0

Ir para o topo Ir para baixo

Sistema de Rank Funcional - Página 2 Empty Re: Sistema de Rank Funcional

Mensagem por GallighanMaker Qua Jul 22, 2020 9:12 am

Faz 8 anos do post do val, dúvido que ele tenha as imagens amigo. tópico muito antigo

_________________
Sistema de Rank Funcional - Página 2 8dVK0ku
using C# and import Python developer || Expert in Unity Engine IDE. || Sistema de Rank Funcional - Página 2 769_heart 2D pixel games.
GallighanMaker
GallighanMaker
Colaborador
Colaborador

Medalhas : Sistema de Rank Funcional - Página 2 ZgLkiRU
Mensagens : 985
Créditos : 102

Ficha do personagem
Nível: 1
Experiência:
Sistema de Rank Funcional - Página 2 Left_bar_bleue0/0Sistema de Rank Funcional - Página 2 Empty_bar_bleue  (0/0)
Vida:
Sistema de Rank Funcional - Página 2 Left_bar_bleue30/30Sistema de Rank Funcional - Página 2 Empty_bar_bleue  (30/30)

https://kingsland-online.com/

Ir para o topo Ir para baixo

Sistema de Rank Funcional - Página 2 Empty Re: Sistema de Rank Funcional

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Página 2 de 2 Anterior  1, 2

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos