Suporte ao desenvolvimento de jogos!


    Erro no Vital do player

    Compartilhe
    avatar
    Motodark
    Ocasional
    Ocasional

    Mensagens : 168
    Créditos : 4

    Erro no Vital do player

    Mensagem por Motodark em Seg Jan 16, 2017 9:06 pm

    o server cai por conta desse erro que ocorre, faz tempo que mexi em eo e estou sem base por onde comloeçar, acredito não ter colocado scripts relacionado a vital

    gui408
    Ocasional
    Ocasional

    Mensagens : 216
    Créditos : 10

    Re: Erro no Vital do player

    Mensagem por gui408 em Seg Jan 16, 2017 11:29 pm

    Marca a linha pra saber o erro.
    avatar
    Motodark
    Ocasional
    Ocasional

    Mensagens : 168
    Créditos : 4

    case

    Mensagem por Motodark em Ter Jan 17, 2017 7:45 pm

    GetPlayerVital = Player(Index).vital(vital)
    avatar
    lucas100vzs
    Novato
    Novato

    Mensagens : 19
    Créditos : 5

    Re: Erro no Vital do player

    Mensagem por lucas100vzs em Seg Jan 30, 2017 7:28 pm

    Olá amigo!
    Não me recordo ao certo em quais dos vários testes fiz no qual saiu este erro, no entanto, vamos tentar consertá-lo?

    Vamos lá....

    Abra o server de seu projeto, e em "ModPlayer", substitua sua "function":

    Código:
    Function GetPlayerVital(ByVal Index As Long, ByVal Vital As Vitals) As Long

    Por esta:

    Código:
    Function GetPlayerVital(ByVal Index As Long, ByVal Vital As Vitals) As Long
       
        'Previne futuros erros
        If Index <= 0 Or Index > MAX_PLAYERS Or Index > Player_HighIndex Then Exit Function
        If IsPlaying(Index) = False Then Exit Function
        If Vital <= 0 Or Vital > Vitals.Vital_Count - 1 Then Exit Function
       
        GetPlayerVital = Player(Index).Vital(Vital)
       
    End Function

    Muito bem, isso resolve uma boa parte dos erros.
    No entanto, tenha em mente uma coisa:

    1- Muitas coisas que você adiciona, principalmente em alguma "rec" pode obrigar você a deletar os dados já existentes para que não haja erro de leitura dos valores ou strings.
    Exemplo: Na maioria dos casos onde você mexa no tipo "PlayerRec" para excluir algo do tipo dos jogadores, você terá que refazer um jogador novo. Adicionar algo novo não se faz necessário.

    Caso 1:
    Se minha "PlayerRec" for assim:
    Código:
    Private Type PlayerRec
        ' Account
        Login As String * ACCOUNT_LENGTH
        Password As String * NAME_LENGTH
       
        ' General
        Name As String * ACCOUNT_LENGTH
        Sex As Byte
        Class As Long
        Sprite As Long
        Level As Byte
        exp As Long
        Access As Byte
        PK As Byte

    End Type

    E eu adicionar no final uma nova variável para ficar assim:
    Código:
    Private Type PlayerRec
        ' Account
        Login As String * ACCOUNT_LENGTH
        Password As String * NAME_LENGTH
       
        ' General
        Name As String * ACCOUNT_LENGTH
        Sex As Byte
        Class As Long
        Sprite As Long
        Level As Byte
        exp As Long
        Access As Byte
        PK As Byte

        Aleatorio as Long

    End Type

    Não necessitará que eu modifique as contas já existentes, pois o sistema irá ler tudo normalmente.
    OBS: ele vai ler o "Aleatorio" que você definiu como 0 , então você deverá indicar um valor. É como se você criasse um espaço no seu guarda roupa com um nome, ele existe lá, mas não tem nada dentro, a não ser que você coloque.

    Caso 2


    Agora é aquela situação em que você tem sua "PlayerRec" e você quer mudar algo. Lembre-se, é mudar, e não adicionar.
    Se você tiver sua "PlayerRec" assim por exemplo:

    Código:
    Private Type PlayerRec
        ' Account
        Login As String * ACCOUNT_LENGTH
        Password As String * NAME_LENGTH
       
        ' General
        Name As String * ACCOUNT_LENGTH
        Sex As Byte
        Class As Long
        Sprite As Long
        Level As Byte
        exp As Long
        Access As Byte
        PK As Byte
    End Type

    E mudar o "PK as byte" de maneira brusca:

    Código:
    Private Type PlayerRec
        ' Account
        Login As String * ACCOUNT_LENGTH
        Password As String * NAME_LENGTH
       
        ' General
        Name As String * ACCOUNT_LENGTH
        Sex As Byte
        Class As Long
        Sprite As Long
        Level As Byte
        exp As Long
        Access As Byte
        PK(1 to 20) As String

    End Type

    Isso sim pode acarretar severos erros nas contas já existentes.

    Meu conselho caso dê esses tipos de erros impossíveis, como, por exemplo, você estar mexendo nos mapas, e dar erros incomuns nas magias do nada, você tentar sempre fazer um backup de sua database que indica o erro, e criar uma nova para ver se resolve seu problema.

    Caso a substituição da "Sub" que eu indiquei não resolva, faça um backup de suas contas, e exclua todas para verificar se houve resolução, caso não haja, poste mais, e tentaremos verificar a fundo o erro de sua máquina. 

    Conteúdo patrocinado

    Re: Erro no Vital do player

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Qui Jun 21, 2018 1:25 pm