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.

[Tutorial] Resete Level

5 participantes

Ir para baixo

[Tutorial] Resete Level Empty [Tutorial] Resete Level

Mensagem por Soulty Dom 14 Jul 2013, 11:03

Olá tudo bem pessoal, bom vim trazer esse tutorial mais elaborado para vocês que não tem muito conhecimento de programação assim como alguns membros daqui. Esse tutorial é referente a um problema encontrado em outros, Não é uma correção e sim um Novo tutorial bem mais explicativo e elaborado.

Vamos aos codigos.

Servidor ~ Parte (ModTypes)
Código:
Procure por PlayerRec, em baixo de:
   Friends(1 to max_friends) as String
   
Adicione:
   Resete As Long

Agora Procure por:
   Type PlayerInvRec

Sobre ele Adicione:
   Public Enum PlayerResete
          ResetLevel = 5
          ResetBonus = 1000
          LevelInicial = 1
          ExpInicial = 0
   End Enum

Em seguida Procure por:
   Sub ClearChar

Após:
   Player(Index).Char(CharNum).Dir = 0

Adicione:
   Player(Index).Char(CharNum).Resete = 0

Agora Procure Por:
   Sub ClearPlayer

Após:
        For N = 1 To MAX_FRIENDS
            Player(Index).Char(i).Friends(N) = ""
        Next

Adicione:
   Player(Index).Char(i).Resete = 0

No final do Modulo Adicione:

Function GetPlayerReset(ByVal Index As Long) As Long
    GetPlayerReset = Player(Index).Char(Player(Index).CharNum).Resete
End Function

Sub SetPlayerReset(ByVal Index As Long, ByVal ResetNum As Long)
    Player(Index).Char(Player(Index).CharNum).Resete = ResetNum
End Sub
Servidor ~ Parte (ModDataBase)
Código:
Procure por:
   Sub LoadPlayer

Após:

        For N = 1 To MAX_FRIENDS
            Player(Index).Char(i).Friends(N) = GetVar(FileName, "CHAR" & i, "Friend" & N)
        Next

Adicione:

        Player(Index).Char(i).Resete = Val(GetVar(FileName, "CHAR" & i, "Resetes"))

Procure por:
   Sub SavePlayer

Após:
        ' Friend list
        For N = 1 To MAX_FRIENDS
            Call PutVar(FileName, "CHAR" & i, "Friend" & N, Player(Index).Char(i).Friends(N))
        Next

Adicione:
   Call PutVar(FileName, "CHAR" & i, "Resete", STR(Player(Index).Char(i).Resete))
Servidor ~ Parte (clsCommands)
Código:
No final da classe adicione:

Function GetPlayerReset(ByVal Index As Long) As Long
    GetPlayerReset = Player(Index).Char(Player(Index).CharNum).Resete
End Function

Sub SetPlayerReset(ByVal Index As Long, ByVal ResetNum As Long)
    Player(Index).Char(Player(Index).CharNum).Resete = ResetNum
End Sub
Servidor ~ Parte (Main.txt)
Código:
Agora Vá no Main.txt na pasta do servidor e troque o Sub PlayerLevelUp(index)

Por esse:

Sub PlayerLevelUp(index)
Dim D,ResetLevel,ResetBonus
Dim C,LevelInicial,ExpInicial
    
    ResetLevel = 50
    ResetBonus = 100   
    LevelInicial = 1
    ExpInicial = 0

    C = 0
    Do While GetPlayerExp(index) => GetPlayerNextLevel(index)    
        D = GetPlayerExp(index) - GetPlayerNextLevel(index)
        Call SetPlayerLevel(index, GetPlayerLevel(index) + 1)
        Call SetPlayerPOINTS(index, GetPlayerPOINTS(index) + 1)
        Call SetPlayerExp(index, D)

        'Checa o level de reset antes de dá os atributos
        If GetPlayerLevel(Index) >= ResetLevel Then
           SetPlayerstr Index, 0
           SetPlayerDEF Index, 0
           SetPlayerSPEED Index, 0
           SetPlayerMAGI Index, 0
           SetPlayerLevel Index, LevelInicial
           SetPlayerPOINTS Index, ResetBonus + (10 * GetPlayerReset(Index))
           SetPlayerExp Index, ExpInicial
           SetPlayerReset index, GetPlayerReset(Index) + 1
      Call PlayerMsg(index, "Você acabou de ganhar mais 1 Resete",5)      
   End If  
    Loop
    'Call GlobalMsg(GetPlayerName(index) & " Ganhou Level!", 6)       
    Call BattleMsg(index, "Você tem " & GetPlayerPOINTS(index) & " Pontos de Atributos.", 9, 0)  
End Sub
Lembrando que é possivel usar a função de resete desse codigo. Descrita no Sub PlayerLevelUp Dentro do Visual Basic apenas inserido ela no Sub CheckPlayerLevelUP e Modificando o Valor de Script na Pasta do Servidor.

Creditos: Soulty
obs: Esse codigo foi criado totalmente por min sem nenhum vinculo com outros aqui do forum. se por algum acaso ocorrer familiaridades com os codigos aqui disponibilizado é por mera coincidência.
Soulty
Soulty
Membro Sênior
Membro Sênior

Mensagens : 281

http://www.nextspirit.xpg.com.br

Ir para o topo Ir para baixo

[Tutorial] Resete Level Empty Re: [Tutorial] Resete Level

Mensagem por Ganancia Dom 14 Jul 2013, 12:11

mano to com um problema aqui, tipo eu reseto, exemplo: eu dou uns 10 resets, ai saio do jogo, e vo na pasta das contas, e to com 10 resets, ate ai ta legal.
mas quando eu entro no jogo nova mente e do mais uns 5 resets e saio do jogo e vo na pasta das contas, so to com 5 resets :/
Ganancia
Ganancia
Membro Junior
Membro Junior

Mensagens : 58

Ir para o topo Ir para baixo

[Tutorial] Resete Level Empty Re: [Tutorial] Resete Level

Mensagem por maza Sex 19 Jul 2013, 14:05

Olá amigo eu fiz o processo todo na hora de compilar olha só oq apareceu [Tutorial] Resete Level L81i
maza
maza
Novato
Novato

Mensagens : 48

Ir para o topo Ir para baixo

[Tutorial] Resete Level Empty Re: [Tutorial] Resete Level

Mensagem por -DarkninoxD- Sex 19 Jul 2013, 14:24

Maza eu vi que você colocou a function PlayerNoRankReset Embaixo da linha "Function FindOpenSpellSlot ( ByVal Index As Long) as Long, então você fez uma certa bagunça

Mude essa Function completa q vc mexeu
Código:
Function FindOpenSpeelSlot (ByVal Index As Long) As Long
Function PlayerNoRankReset(ByVal Index As Long) As Long
    Dim i As Integer

    For i = 1 To MAX_RANKS
        If Trim$(ResetRank(i).Nome) = GetPlayerName(Index) Then
           PlayerNoRankReset = i
        End If
        DoEvents
    Next i
End Function
    Dim i As Long

    FindOpenSpellSlot = 0

    For i = 1 To MAX_PLAYER_SPELLS

        If GetPlayerSpell(index, i) = 0 Then
            FindOpenSpellSlot = i
            Exit Function
        End If

    Next

End Function

Mude tudo isso que citei acima para

Código:
Function FindOpenSpellSlot(ByVal index As Long) As Long
    Dim i As Long

    FindOpenSpellSlot = 0

    For i = 1 To MAX_PLAYER_SPELLS

        If GetPlayerSpell(index, i) = 0 Then
            FindOpenSpellSlot = i
            Exit Function
        End If

    Next

End Function

Function PlayerNoRankReset(ByVal Index As Long) As Long
    Dim i As Integer

    For i = 1 To MAX_RANKS
        If Trim$(ResetRank(i).Nome) = GetPlayerName(Index) Then
           PlayerNoRankReset = i
        End If
        DoEvents
    Next i
End Function

 
Tome cuidado quando você ver para colocar algo embaixo de uma "Function" ou "Sub" procure tal linha e embaixo da linha procure "End Sub" ou "End Function"
-DarkninoxD-
-DarkninoxD-
Membro Vitalicio
Membro Vitalicio

Mensagens : 734

http://dragonball-mrb.blogspot.com

Ir para o topo Ir para baixo

[Tutorial] Resete Level Empty Re: [Tutorial] Resete Level

Mensagem por Convidad Sáb 07 Set 2013, 11:04

o que e modulo mesmo
avatar
Convidad
Convidado


Ir para o topo Ir para baixo

[Tutorial] Resete Level Empty Re: [Tutorial] Resete Level

Mensagem por athos000 Qua 08 Jan 2014, 13:12

Parabens,Bom Topico.
athos000
athos000
Membro
Membro

Mensagens : 101

Ir para o topo Ir para baixo

[Tutorial] Resete Level Empty Re: [Tutorial] Resete Level

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