SSGamers - 13 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

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

SSGamers - 13 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

SSGamers - 13 Anos online por você.

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Chegou o novo tema 6.5.5 - SSGamers - Servidores online de qualidade - Aproveite e entre para nossa comunidade, inscreva-se já! - Ouça nossa web radio - Veja nossas novidades - Participe dos nossos setores de jogos online - Parcerias aberta fale já com um administrador.

    [Tutorial] Resolvendo erros encontrados pelo crashdetect

    Weslley_Script
    Weslley_Script
    SS - Fundador
    SS - Fundador


    Steam Steam : WeslleySSGames
    Zello : WeslleySSGames
    Mensagens : 11643
    Moedas : 1032951
    Data de inscrição : 06/10/2011
    Idade : 29
    Localização : Brasil

    [Tutorial] Resolvendo erros encontrados pelo crashdetect Empty [Tutorial] Resolvendo erros encontrados pelo crashdetect

    Mensagem por Weslley_Script Seg 15 maio 2023 - 12:04

    Olб, estou criando este tуpico com a intenзгo de ajudar pessoas que tem algumas 'duvidas' sobre o plugin crashdetect.

    Este plugin, tem a funзгo de achar problemas em seu script, de diversas maneiras.
    Mas, muitas das vezes ele ocorre de dizer no log o que vocк praticamente entende nada.

    Um exemplo:
    pawn Код:

    Código:
    [21/09/2013 17:56:11] [debug] Run time error 4: "Array index out of bounds"
    [21/09/2013 17:56:11] [debug]  Accessing element at negative index -1
    [21/09/2013 17:56:11] [debug] AMX backtrace:
    [21/09/2013 17:56:11] [debug] #0 00386c3c in ?? (0x00000041) from GM.amx
    [21/09/2013 17:56:11] [debug] #1 0044f35c in ?? (0x00000041, 0x00000001) from GM.amx
    [21/09/2013 17:56:11] [debug] #2 00363448 in public OnDialogResponse (0x00000041, 0x000002c1, 0x00000001, 0xffffffff, 0x00c3ae2c) from GM.amx


    Deu б entender que o problema estб em uma dialog. Mas como irei saber qual dialog estб com o tal problema?

    Hum, uma boa pergunta.
    Entгo, andei pesquisando aqui e descobri uma coisa que funciona. Testei e atй arrumei problemas, e agora irei dar a dica.
    Este site, й um conversor.


    Pergunta: Por que um conversor?
    Resposta: Para achar as informaзхes descritas pelo crashdetect (OnDialogResponse (0x00000041, 0x000002c1, 0x00000001, 0xffffffff, 0x00c3ae2c)).

    Primeiramente, vocк deve saber como й o funcionamento da tal callback.
    Como muitos sabem (mais experientes) a OnDialogResponse trabalha na ordem
    (playerid, dialogid, response, listitem, inputtext[])

    Entгo, os erros estгo relacionados nesta ordem [Tutorial] Resolvendo erros encontrados pelo crashdetect Wink
    Entгo, iremos abrir o site e clicar na bolinha Hexadecimal.
    Com ela marcada, iremos colar os valores abaixo (um de cada vez):

    0x00000041
    0x000002c1
    0x00000001
    0xffffffff
    0x00c3ae2c

    Agora, os resultados mostrados em Decimais:
    65
    705
    1
    *
    *

    Agora vocк deve estar se perguntando.. Por que teve os 'asteriscos'
    Simplesmente, por que jб achei a minha dialog, e no caso esta dialog 705 й uma DIALOG_STYLE_MSGBOX. (No meu gamemode), que no caso nгo possue listitem nem inputtext

    Opa! Jб vimos que entгo tem um debug em
    OnDialogResponse(playerid 65, dialogid 705, response 1, listiteminputtext[])

    Um script exemplo.
    pawn Код:

    Código:
    #include a_samp
    #include zcmd
    public OnFilterScriptInit()
    {
        return 1;
    }
    new Exemplo1[5];
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
        if(dialogid == 7777) {
            if(!response) return 1;
            Exemplo1[listitem] = 1;
            printf("Exemplo 1 - listitem : %i", listitem);
            return 1;
        }
        return 0;
    }



    CMD:exemplo1(playerid) return ShowPlayerDialog(playerid, 7777, DIALOG_STYLE_LIST, "Exemplo", "1\n2\n3\n4\n5\n6\n7", "Ok", "Fechar");

    Como no script acima, iremos chamar a dialog 7777, e 'Exemplo' tem 5 cells. Veja agora o log feito usando 1 listitem por vez.
    pawn Код:

    Código:
    [25/09/2013 19:02:40]   Filterscript 'exemplo.amx' loaded.
    [25/09/2013 19:02:51] Exemplo 1 - listitem : 0
    [25/09/2013 19:02:53] Exemplo 1 - listitem : 1
    [25/09/2013 19:02:54] Exemplo 1 - listitem : 2
    [25/09/2013 19:02:56] Exemplo 1 - listitem : 3
    [25/09/2013 19:02:58] Exemplo 1 - listitem : 4
    [25/09/2013 19:03:00] [debug] Run time error 4: "Array index out of bounds"
    [25/09/2013 19:03:00] [debug]  Accessing element at index 5 past array upper bound 4
    [25/09/2013 19:03:00] [debug] AMX backtrace:
    [25/09/2013 19:03:00] [debug] #0 00000578 in public OnDialogResponse (0x00000004, 0x00001e61, 0x00000001, 0x00000005, 0x0000041c) from exemplo.amx
    [25/09/2013 19:03:02] [debug] Run time error 4: "Array index out of bounds"
    [25/09/2013 19:03:02] [debug]  Accessing element at index 6 past array upper bound 4
    [25/09/2013 19:03:02] [debug] AMX backtrace:
    [25/09/2013 19:03:02] [debug] #0 00000578 in public OnDialogResponse (0x00000004, 0x00001e61, 0x00000001, 0x00000006, 0x0000041c) from exemplo.amx


    Viram os erros?
    Traduzindo apenas os erros.
    pawn Код:

    Código:
    erro 1: OnDialogResponse(4, 7777, 1, 5, inputtext[])
    erro 2: OnDialogResponse(4, 7777, 1, 6, inputtext[])


    Espero que tenham entendido o pequeno tutorial.

    Provavelmente, isto nгo pode ser totalmente funcional.
    Porйm assim deste modo funcionou corretamente.
    Arquivos necessários
    plugin crash detect
    Creditos: Locky_



    [Tutorial] Resolvendo erros encontrados pelo crashdetect D07Xwqb
    [Tutorial] Resolvendo erros encontrados pelo crashdetect Yjab9HN

      Data/hora atual: Seg 25 Nov 2024 - 21:20