MMORPG Brasil
Ola, visitante! Agradecemos sua visita, para ter acesso a todo nosso conteúdo recomendamos que faça um cadastro no fórum, com ele você pode participar de tópicos e ter acesso a todas áreas da comunidade!

Participe do fórum, é rápido e fácil

MMORPG Brasil
Ola, visitante! Agradecemos sua visita, para ter acesso a todo nosso conteúdo recomendamos que faça um cadastro no fórum, com ele você pode participar de tópicos e ter acesso a todas áreas da comunidade!
MMORPG Brasil
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Sistema de Rank Ninja

+9
Snake
guifs
biglow
maraquanos-marakgarin
maqn39
Monotoshi
Blizzard
alenaldo
Thales12
13 participantes

Ir para baixo

rank - Sistema de Rank Ninja Empty Sistema de Rank Ninja

Mensagem por Thales12 Sáb 26 Jan 2013, 15:15

OBS: isso e um sistema de rank ninja tipo, Estudante, gennin, etc..
OBS2: mais vc pode por para outras coisas, so alterar o nome..

Vamos começar..

Abra o Server~Side:

na addchar procure por:

Código:
For n = 1 To Stats.Stat_Count - 1
            Player(Index).Stat(n) = Class(ClassNum).Stat(n)
        Next n

e em baixo add:

Código:
Player(index).Rank = 1

OBS: isso e para caso queira q ja começe com o rank, se nao quizer nao ponha isso.

no final da modDataBase adicione:

Código:
Function GetPlayerRank(ByVal index As Long) As Long

    If index > MAX_PLAYERS Then Exit Function
  GetPlayerRank = Player(index).Rank
End Function

Sub SetPlayerRank(ByVal index As Long, ByVal Rank As Long)
    Player(index).Rank = Rank
End Sub

em baixo de:

Código:
HandleDataSub(CPartyLeave) = GetAddress(AddressOf HandlePartyLeave)

add:

Código:
HandleDataSub(CSetRank) = GetAddress(AddressOf HandleSetRank)

no final add:

Código:
Sub HandleSetRank(ByVal index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)
    Dim u As String
    Dim n As Long
    Dim i As Long
    Dim Buffer As clsBuffer
    Set Buffer = New clsBuffer
    Buffer.WriteBytes Data()

    ' Prevent hacking
    If GetPlayerAccess(index) < ADMIN_CREATOR Then
        Exit Sub
    End If

    n = FindPlayer(Buffer.ReadString)
    i = Buffer.ReadLong
    Set Buffer = Nothing

If IsPlaying(n) = False Then Exit Sub

Player(n).Rank = i
SendPlayerData n
SavePlayer n

Select Case i
    Case 1
        u = "Estudante"
    Case 2
        u = "Gennin"
    Case 3
        u = "Chunnin"
    Case 4
        u = "Jounnin"
    Case 5
        u = "Anbu"
    Case 6
        u = "Sennin"
    Case 7
        u = "Desertor"
    Case 8
        u = "Hokage"
    Case 9
        u = "Kazekage"
    Case 10
        u = "Mizukage"
    Case 11
        u = "Raikage"
    Case 12
        u = "Tsuchikage"

Case Else

    Exit Sub

End Select
   
GlobalMsg  " Parabéns, o jogador: " & GetPlayerName(n) & " Se tornou " & u & "!", Blue

End Sub

procure por:

Código:
Buffer.WriteLong GetPlayerAccess(index)

em baixo add:

Código:
Buffer.WriteByte Player(index).Rank

na Private Type PlayerRec adicione:

Código:
Rank As Byte

procure por:

Código:
CPartyLeave

em baixo add:

Código:
CSetRank

agora vamos ao Client~Side:

no final da modText add:

Código:
Public Sub DrawPlayerRank(ByVal Index As Long)
If Player(Index).Rank < 0 Then Exit Sub

Dim TextX As Long
Dim TextY As Long
Dim color As Long
Dim Name As String

Select Case Player(Index).Rank
    Case 1
        Name = "Estudante"
        color = QBColor(Blue)
    Case 2
        Name = "Gennin"
        color = QBColor(BrightGreen)
    Case 3
        Name = "Chunnin"
        color = QBColor(BrightBlue)
    Case 4
        Name = "Jounnin"
        color = QBColor(Blue)
    Case 5
        Name = "ANBU"
        color = QBColor(DarkGrey)
    Case 6
        Name = "Sennin"
        color = QBColor(Pink)
    Case 7
        Name = "Nukenin"
        color = QBColor(Red)
    Case 8
        Name = "Hokage"
        color = QBColor(BrightRed)
    Case 9
        Name = "Kazekage"
        color = QBColor(Yellow)
    Case 10
        Name = "Mizukage"
        color = QBColor(Cyan)
    Case 11
        Name = "Raikage"
        color = QBColor(Yellow)
    Case 12
        Name = "Tshuchikage"
        color = QBColor(Yellow)

        Exit Sub
End Select
   
    ' calc pos
    TextX = ConvertMapX(GetPlayerX(Index) * PIC_X) + Player(Index).XOffset + (PIC_X \ 2) - getWidth(TexthDC, (Trim$(Name)))
    If GetPlayerSprite(Index) < 1 Or GetPlayerSprite(Index) > NumCharacters Then
        TextY = ConvertMapY(GetPlayerY(Index) * PIC_Y) + Player(Index).YOffset - 18
    Else
        ' Determine location for text
        TextY = ConvertMapY(GetPlayerY(Index) * PIC_Y) + Player(Index).YOffset - (DDSD_Character(GetPlayerSprite(Index)).lHeight / 4) + 9
    End If

    ' Draw name
    Call DrawText(TexthDC, TextX, TextY, Name, color)
   
End Sub

na Type PlayerRec adicione:

Código:
Rank As Byte

na modClientTcp adicione:

Código:
Public Sub SendSetRank(ByVal Name As String, ByVal Access As Byte)
Dim Buffer As clsBuffer

    Set Buffer = New clsBuffer
    Buffer.WriteLong CSetRank
    Buffer.WriteString Name
    Buffer.WriteLong Access
    SendData Buffer.ToArray()
    Set Buffer = Nothing

End Sub

no final da modDataBase adicione:

Código:
Sub SetPlayerRank(ByVal Index As Long, ByVal Rank As Long)
    ' If debug mode, handle error then exit out
    If Options.Debug = 1 Then On Error GoTo errorhandler

    If Index > MAX_PLAYERS Then Exit Sub
    Player(Index).Rank = Rank
   
    ' Error handler
    Exit Sub
errorhandler:
    HandleError "SetPlayerRank", "modDatabase", Err.Number, Err.Description, Err.Source, Err.HelpContext
    Err.Clear
    Exit Sub
End Sub

Function GetPlayerRank(ByVal Index As Long) As Long
    ' If debug mode, handle error then exit out
    If Options.Debug = 1 Then On Error GoTo errorhandler

    If Index > MAX_PLAYERS Then Exit Function
    GetPlayerRank = Player(Index).Rank
   
    ' Error handler
    Exit Function
errorhandler:
    HandleError "GetPlayerRank", "modDatabase", Err.Number, Err.Description, Err.Source, Err.HelpContext
    Err.Clear
    Exit Function
End Function

procure por:

Código:
Call DrawPlayerName(i)

em baixo add:

Código:
DrawPlayerRank i

procure por:

Código:
CPartyLeave

em baixo add:

Código:
CSetRank

em baixo de:

Código:
Call SetPlayerAccess(i, Buffer.ReadLong)

add:

Código:
Player(i).Rank = Buffer.ReadByte

em cima de:

Case "/info" adicione:

Código:
Case "/rank"
                    If GetPlayerAccess(MyIndex) < ADMIN_CREATOR Then GoTo Continue

                    If UBound(Command) < 1 Then
                        AddText "Usage: /rank (nome) (num)", AlertColor
                        GoTo Continue
                    End If

                    If IsNumeric(Command(1)) Or Not IsNumeric(Command(2)) Then
                        AddText "Usage: /rank (nome) (num)", AlertColor
                        GoTo Continue
                    End If
                   
                    SendSetRank Command(1), CLng(Command(2))

OBS: se quizer pode usar isso para Org tbm.. so modificar o codigo ! Smile
OBS2: agora vai aparecer [Gennin] ou outro titulo ao lado do seu nome ! Smile
OBS3: vc pode configurar de outras maneiras, ta ai o sistema, utilezem-o como bem entenderem.,
OBS4: para setar novo rank é exemplo: /Rank thales 3

Créditos: Thales12 pelo sistema, tutorial e postar.
Thales12
Thales12
Membro Veterano
Membro Veterano

Mensagens : 1011

http://www.rdmgames.tk

Ir para o topo Ir para baixo

rank - Sistema de Rank Ninja Empty Re: Sistema de Rank Ninja

Mensagem por alenaldo Sáb 26 Jan 2013, 15:23

Maneiro +1 cred
alenaldo
alenaldo
Membro
Membro

Mensagens : 128

http://naruto-new-empire.webnode.com

Ir para o topo Ir para baixo

rank - Sistema de Rank Ninja Empty Re: Sistema de Rank Ninja

Mensagem por Blizzard Sáb 26 Jan 2013, 15:53

Muito bom man, +1 crédito.

Tenho uma dúvida,como eu estou estudando programação e tals,gostaria de saber se pra por em cima seria a mesma coisa só alterando a posição no código?
Blizzard
Blizzard
Membro Vitalicio
Membro Vitalicio

Mensagens : 603

Ir para o topo Ir para baixo

rank - Sistema de Rank Ninja Empty Re: Sistema de Rank Ninja

Mensagem por Monotoshi Sáb 26 Jan 2013, 16:03

Blizzard escreveu:
Muito bom man, +1 crédito.

Tenho uma dúvida,como eu estou estudando programação e tals,gostaria de saber se pra por em cima seria a mesma coisa só alterando a posição no código?
Blizzard não iria mudar a posição do rank.sabe o codigo de level do lado do nome eu acho que com umas alterações você conseguiria posicionar o codigo do lado do nome^^
avatar
Monotoshi
Membro Vitalicio
Membro Vitalicio

Mensagens : 591

Ir para o topo Ir para baixo

rank - Sistema de Rank Ninja Empty Re: Sistema de Rank Ninja

Mensagem por Thales12 Sáb 26 Jan 2013, 16:07

Blizzard escreveu:
Muito bom man, +1 crédito.

Tenho uma dúvida,como eu estou estudando programação e tals,gostaria de saber se pra por em cima seria a mesma coisa só alterando a posição no código?

tem como mudar a posição sim ..

so vc editar as cordenadas no drawplayerrank. Very Happy
Thales12
Thales12
Membro Veterano
Membro Veterano

Mensagens : 1011

http://www.rdmgames.tk

Ir para o topo Ir para baixo

rank - Sistema de Rank Ninja Empty Re: Sistema de Rank Ninja

Mensagem por maqn39 Sáb 26 Jan 2013, 16:19

pronto comentei :/

bom o tuto vai ajudar muita gente (eu não...)
+1 cred
maqn39
maqn39
Membro Vitalicio
Membro Vitalicio

Mensagens : 705

Ir para o topo Ir para baixo

rank - Sistema de Rank Ninja Empty Re: Sistema de Rank Ninja

Mensagem por maraquanos-marakgarin Qua 30 Jan 2013, 17:09

opa que legal esse sistema Very Happy
maraquanos-marakgarin
maraquanos-marakgarin
Novato
Novato

Mensagens : 18

Ir para o topo Ir para baixo

rank - Sistema de Rank Ninja Empty Re: Sistema de Rank Ninja

Mensagem por biglow Sáb 02 Fev 2013, 07:07

Ai eu não entendi uma coisa .. Como o player vai subindo de rank ? Me explica isso ai pf .. Agradeço desde ja Very Happy
avatar
biglow
Novato
Novato

Mensagens : 6

Ir para o topo Ir para baixo

rank - Sistema de Rank Ninja Empty Re: Sistema de Rank Ninja

Mensagem por guifs Sáb 02 Fev 2013, 07:20

mt bom , +1 cred pelo tuto
guifs
guifs
Membro Vitalicio
Membro Vitalicio

Mensagens : 561

Ir para o topo Ir para baixo

rank - Sistema de Rank Ninja Empty Re: Sistema de Rank Ninja

Mensagem por Snake Sáb 02 Fev 2013, 16:00

Quando eu tento entra no jogo aparece esse erro:

rank - Sistema de Rank Ninja Semttuloxvx

Eu já apaguei todas as contas e tentei entrar mais n deu certo !
Snake
Snake
Membro
Membro

Mensagens : 108

Ir para o topo Ir para baixo

rank - Sistema de Rank Ninja Empty Re: Sistema de Rank Ninja

Mensagem por TShinoT Seg 04 Fev 2013, 08:09

Ae tipo... Eu fiz tudo certo e tal , mais tipo, não fika mostrando o rank ninja dele em cima nem do lado... Só aparece que viro o rank , eu quero que fike do lado do nome .. tem como??
TShinoT
TShinoT
Novato
Novato

Mensagens : 7

Ir para o topo Ir para baixo

rank - Sistema de Rank Ninja Empty Re: Sistema de Rank Ninja

Mensagem por Snake Qui 07 Fev 2013, 09:17

Ops deu certo aqui Thales ^^ Ei TShinoT vc deve ter esquecido de colocar esta parte:

Client~Side ModText no final adicione isto:

Código:
Public Sub DrawPlayerRank(ByVal Index As Long)
If Player(Index).Rank < 0 Then Exit Sub

Dim TextX As Long
Dim TextY As Long
Dim color As Long
Dim Name As String

Select Case Player(Index).Rank
    Case 1
        Name = "Estudante"
        color = QBColor(Blue)
    Case 2
        Name = "Gennin"
        color = QBColor(BrightGreen)
    Case 3
        Name = "Chunnin"
        color = QBColor(BrightBlue)
    Case 4
        Name = "Jounnin"
        color = QBColor(Blue)
    Case 5
        Name = "ANBU"
        color = QBColor(DarkGrey)
    Case 6
        Name = "Sennin"
        color = QBColor(Pink)
    Case 7
        Name = "Nukenin"
        color = QBColor(Red)
    Case 8
        Name = "Hokage"
        color = QBColor(BrightRed)
    Case 9
        Name = "Kazekage"
        color = QBColor(Yellow)
    Case 10
        Name = "Mizukage"
        color = QBColor(Cyan)
    Case 11
        Name = "Raikage"
        color = QBColor(Yellow)
    Case 12
        Name = "Tshuchikage"
        color = QBColor(Yellow)

        Exit Sub
End Select
   
    ' calc pos
    TextX = ConvertMapX(GetPlayerX(Index) * PIC_X) + Player(Index).XOffset + (PIC_X \ 2) - getWidth(TexthDC, (Trim$(Name)))
    If GetPlayerSprite(Index) < 1 Or GetPlayerSprite(Index) > NumCharacters Then
        TextY = ConvertMapY(GetPlayerY(Index) * PIC_Y) + Player(Index).YOffset - 18
    Else
        ' Determine location for text
        TextY = ConvertMapY(GetPlayerY(Index) * PIC_Y) + Player(Index).YOffset - (DDSD_Character(GetPlayerSprite(Index)).lHeight / 4) + 9
    End If

    ' Draw name
    Call DrawText(TexthDC, TextX, TextY, Name, color)
   
End Sub

Esta parte é a que desenha o nome na tela em cima da cabeça do jogador !!
Snake
Snake
Membro
Membro

Mensagens : 108

Ir para o topo Ir para baixo

rank - Sistema de Rank Ninja Empty Re: Sistema de Rank Ninja

Mensagem por juniobr Qui 07 Fev 2013, 09:22

legal man esse sistema
juniobr
juniobr
Banido
Banido

Mensagens : 93

Ir para o topo Ir para baixo

rank - Sistema de Rank Ninja Empty Re: Sistema de Rank Ninja

Mensagem por brenoguigui1 Dom 03 Mar 2013, 16:57

Muito bom o tuto vou testar...
brenoguigui1
brenoguigui1
Novato
Novato

Mensagens : 17

https://www.facebook.com/brenoguimaraes97

Ir para o topo Ir para baixo

rank - Sistema de Rank Ninja Empty Re: Sistema de Rank Ninja

Mensagem por Nicolasn2013 Qua 11 Set 2013, 10:53

Alguem poderia me dizer como colocar o rank em cima do nome nesse tutorial, quem puder ajudar agradeço
Nicolasn2013
Nicolasn2013
Membro
Membro

Mensagens : 101

Ir para o topo Ir para baixo

rank - Sistema de Rank Ninja Empty Re: Sistema de Rank Ninja

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

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