Suporte ao desenvolvimento de jogos!


    Sistema de Resets [Ajuda]

    Compartilhe

    dragonslayers
    Novato
    Novato

    Mensagens : 9
    Créditos : 0

    Sistema de Resets [Ajuda]

    Mensagem por dragonslayers em Sex Jun 30, 2017 9:01 pm

    Boa noite!
    Galera coloquei o sistema de resets requerendo um determinado item para quando o player atingir o level 100 poder resetar.
    Até aí tudo bem, quando o player chega no lvl100 com o item pedido ele reseta normalmente, o problema é quando o player chega no lvl100 sem o item aí msm que ele consiga o item para resetar dps ele não sai do level100.
    Esse é o código
    If Player(Index).Resets < 10 Then ' Máx de Resets
    If GetPlayerLevel(Index) >= 100 Then ' level nessessario para resetar
        Call TakeInvItem(Index, 30, 10) ' Item usado para resetar quando chegar no level100
            Call PlayerMsg(Index, "Parabéns " & GetPlayerName(Index) & ", você resetou com sucesso, necessário do mesmo item para o próximo reset!", 15)
            Call SendAnimation(1, GetPlayerMap(Index), GetPlayerX(Index), GetPlayerY(Index)) ' Mude o número 1 para o número da animção que aparecera ao resetar
            Call SetPlayerLevel(Index, 1) 'Volta para o level 1
            Call SetPlayerExp(Index, 1) ' Traz a experiencia do player para 1
            Call SetPlayerResets(Index, GetPlayerResets(Index) + 1)
            Call SendPlayerData(Index)  ' Salva o player
            Call SendEXP(Index)  ' Salva a experiencia do player
            Exit Sub
    End If
    End If
    End Sub

    Espero que alguém consiga em ajudar, estou no aguardo!
    avatar
    Profane ~
    Administrador
    Administrador

    Mensagens : 700
    Créditos : 118

    Re: Sistema de Resets [Ajuda]

    Mensagem por Profane ~ em Sab Jul 01, 2017 5:52 am

    @dragonslayers escreveu:Boa noite!
    Galera coloquei o sistema de resets requerendo um determinado item para quando o player atingir o level 100 poder resetar.
    Até aí tudo bem, quando o player chega no lvl100 com o item pedido ele reseta normalmente, o problema é quando o player chega no lvl100 sem o item aí msm que ele consiga o item para resetar dps ele não sai do level100.
    Esse é o código
    If Player(Index).Resets < 10 Then ' Máx de Resets
    If GetPlayerLevel(Index) >= 100 Then ' level nessessario para resetar
        Call TakeInvItem(Index, 30, 10) ' Item usado para resetar quando chegar no level100
            Call PlayerMsg(Index, "Parabéns " & GetPlayerName(Index) & ", você resetou com sucesso, necessário do mesmo item para o próximo reset!", 15)
            Call SendAnimation(1, GetPlayerMap(Index), GetPlayerX(Index), GetPlayerY(Index)) ' Mude o número 1 para o número da animção que aparecera ao resetar
            Call SetPlayerLevel(Index, 1) 'Volta para o level 1
            Call SetPlayerExp(Index, 1) ' Traz a experiencia do player para 1
            Call SetPlayerResets(Index, GetPlayerResets(Index) + 1)
            Call SendPlayerData(Index)  ' Salva o player
            Call SendEXP(Index)  ' Salva a experiencia do player
            Exit Sub
    End If
    End If
    End Sub

    Espero que alguém consiga em ajudar, estou no aguardo!

    nham nham ~
    Oin Dragonslayers ,

            Call SetPlayerExp(Index, 1) ' Traz a experiencia do player para 1
            Call SendPlayerData(Index)  ' Salva o player
            Call SendEXP(Index)  ' Salva a experiencia do player



    Os comentários das linhas estão errados em ;c Nhonc!

    Seguinte, Primeiramente seria interessante você contar aonde colocou esses codigos, deve ter notado enquanto "desenvolvia" essa edição que existem infinitos lugares onde poderiam ser postos ''>.<'' assim fica dificil de ajudar.

    Mas naturalmente supondo que você colocou isso na Sub a qual processa o Level UP!, então vamos lá.

    Ah uma trava no que inibe o ganho de Exp e o Check de Level Up quando se chega no Nível Máximo, pelo menos é o que me recordo, logo, é interessante que você coloque isso antes do Ganho de exp! 

    Digamos~

    Na Sub GivePlayerExp

    Você poderia por, por exemplo: Call CanPlayerReset(Index) ?

    E Abaixo da Sub GivePlayerExp adicionar:


    Código:
    Public Sub CanPlayerReset(ByVal Index As Long)

        'Prevenção - Out of Range
        If Index <= 0 Or Index > MAX_PLAYERS Then Exit Sub

        'Limite de Resets
        If Player(Index).Resets >= 10 Then Exit Sub 'Exitar se for

        If GetPlayerLevel(Index) = MAX_LEVELS Then 'Verificar se o Jogador está no nível Máximo
            If HasItem(Index, 30) Then 'Verifica se o Jogador tem na Bolsa o Item 30
                'Então Enviar Reset
               
               
                '#########################'
                ' Metodo Reset Porco Nhonc!
                '#########################'
               
                Call SetPlayerLevel(Index, 1)  'Coloca o Level do Player como 1
                Call SetPlayerExp(Index, 0)    'Limpa a Experiência de Base
                Call TakeInvItem(Index, 30, 1)  'Remove o Item da Bolsa
                Call SetPlayerResets(Index, GetPlayerResets(Index) + 1) 'Adiciona +1 no Valor Atual de Reset
                Call SendAnimation(1, GetPlayerMap(Index), GetPlayerX(Index), GetPlayerY(Index), TARGET_TYPE_PLAYER, Index) 'Envia Animação, Presa ao Jogador.
                Call PlayerMsg(Index, "Ulululu Resetou em! oin!", Cyan) 'Informa o Jogador a Respeito da Rotina ocorrida.
                Call SavePlayer(Index)          'Salva o Jogador
               
                Call SendPlayerData(Index)      'Envia os Novos DADOS para o Jogador!
            End If
        End If


    End Sub

    Espero que ajude, e alumie.


    _________________
    "If you don't belong here, just build a place where you do."

    dragonslayers
    Novato
    Novato

    Mensagens : 9
    Créditos : 0

    Re: Sistema de Resets [Ajuda]

    Mensagem por dragonslayers em Dom Jul 02, 2017 2:39 am

    Mestre, muito obrigado pela ajuda!

    Conteúdo patrocinado

    Re: Sistema de Resets [Ajuda]

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Qui Jun 21, 2018 4:23 pm