Portal SAMP
[Ajuda] Warning in-game - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Warning in-game (/showthread.php?tid=2584)



Warning in-game - Treze_. - 21/07/2022

bom, os Warning só acontecem quando um player tenta entrar dentro de uma casa e nem sempre também aparece.

Código de quando player entra dentro da casa:


Código:
CMD:entrar(playerid)
{
    new doccasa[65];
    for(new i = 1;i < MAX_CASA; i++)
    {
        if(IsPlayerInRangeOfPoint(playerid,2, casas[i][x], casas[i][y], casas[i][z]))
        {
            format(doccasa, 64,"Casas/%d.ini", i);
            SetPlayerVirtualWorld(playerid, casas [i] [wordid]);
            SetPlayerPos(playerid, DOF2_GetFloat(doccasa,"Xinterior"), DOF2_GetFloat(doccasa,"Yinterior"), DOF2_GetFloat(doccasa,"Zinterior"));
            SetPlayerInterior(playerid,DOF2_GetInt(doccasa,"interior"));
            return 1;
        }
    }
    return 1;
}


Não sei se Adianta muito mas o "nome" do warning seria o seguinte:
"Warning(s007): Exception 0xC0000005 at 0x593C6F"

Retomando ,os warning acontece dentro do jogo.


RE: Warning in-game - Mathews - 21/07/2022

Como ele nem sempre aparece, quando entrar na casa e acontecer isso, pega o id interior da casa e id mundo por gentileza.
Esse interior da casa é original do gta ou modificado?


RE: Warning in-game - Treze_. - 21/07/2022

(21/07/2022 06:49)Mathews Escreveu: Como ele nem sempre aparece, quando entrar na casa e acontecer isso, pega o id interior da casa e id mundo por gentileza.
Esse interior da casa é original do gta ou modificado?

Os interiores são próprio do gta.

Notei meio que um "padrão" pra ele acarretar esses warnings, o player precisa entrar em todas as casas criadas e quando por fim ele entra na ultima, todas as casas que ele começa a entrar da esses avisos

tentei usar o crashdetect mas não mostra nd :/


RE: Warning in-game - Mathews - 21/07/2022

Não sei se vou falar besteiras, mas vale a pena tentar.

Eu encontrei isso no fórum uifserver, o qual o jogador precisou fazer isso:
Warning(s007): Exception 0xC0000005 at 0x593C6F
"Eu consertei . Não há necessidade de reinstalar nada: v é apenas uma correção muito pequena
2 semanas atrás, diminuí o som do rádio do carro para 0%. Agora, quando ativei o som do rádio nas configurações, foi corrigido."
Em outro local falaram que poderia ser por questão do interior.

Infelizmente sem código completo para testes, não consigo fazer muita coisa.

Você pode comentar o //SetPlayerInterior(playerid,DOF2_GetInt(doccasa,"interior")) ou comentar linha por linha;

Outra coisa, seu gta está limpo de mods, e outras coisas, só acontece com você ou com outras pessoas?
No caso se você criar 2 casas e entrar nas duas já vai começar?


RE: Warning in-game - Treze_. - 21/07/2022

(21/07/2022 20:53)Mathews Escreveu: Não sei se vou falar besteiras, mas vale a pena tentar.

Eu encontrei isso no fórum uifserver, o qual o jogador precisou fazer isso:
Warning(s007): Exception 0xC0000005 at 0x593C6F
"Eu consertei . Não há necessidade de reinstalar nada: v é apenas uma correção muito pequena
2 semanas atrás, diminuí o som do rádio do carro para 0%. Agora, quando ativei o som do rádio nas configurações, foi corrigido."
Em outro local falaram que poderia ser por questão do interior.

Infelizmente sem código completo para testes, não consigo fazer muita coisa.

Você pode comentar o //SetPlayerInterior(playerid,DOF2_GetInt(doccasa,"interior")) ou comentar linha por linha;

Outra coisa, seu gta está limpo de mods, e outras coisas, só acontece com você ou com outras pessoas?
No caso se você criar 2 casas e entrar nas duas já vai começar?


Hm, creio que esses warning seja por causa do código mal otimizado e não havendo rádio do gta mas não custa tentar néh


Cada casa possui um tipo, e cada tipo possui um interior diferente, estou salvando os interiores na hora que é criado a casa

Código:
if(casas[i] [tipo] == 1)
            {
                casas[i] [valor] = 80000;
                DOF2_SetInt(doccasa,"valor",casas[i] [valor]);
                DOF2_SetInt(doccasa,"interior",15);
                DOF2_SetFloat(doccasa,"Xinterior",385.803986);
                DOF2_SetFloat(doccasa,"Yinterior",1471.769897);
                DOF2_SetFloat(doccasa,"Zinterior",1080.209961);
            }
            if(casas[i] [tipo] == 2)
            {
                casas[i] [valor] = 120000;
                DOF2_SetInt(doccasa,"valor",casas[i] [valor]);
                DOF2_SetInt(doccasa,"interior",15);
                DOF2_SetFloat(doccasa,"Xinterior",328.493988);
                DOF2_SetFloat(doccasa,"Yinterior",1480.589966);
                DOF2_SetFloat(doccasa,"Zinterior",1084.449951);
            }
            if(casas[i] [tipo] == 4)
            {
                casas[i] [valor] = 160000;
                DOF2_SetInt(doccasa,"valor",casas[i] [valor]);
                DOF2_SetInt(doccasa,"interior",2);
                DOF2_SetFloat(doccasa,"Xinterior",225.756989);
                DOF2_SetFloat(doccasa,"Yinterior",1240.000000);
                DOF2_SetFloat(doccasa,"Zinterior",1082.149902);
            }
            if(casas[i] [tipo] == 8)
            {
                casas[i] [valor] = 280000;
                DOF2_SetInt(doccasa,"valor",casas[i] [valor]);
                DOF2_SetInt(doccasa,"interior",3);
                DOF2_SetFloat(doccasa,"Xinterior",235.508994);
                DOF2_SetFloat(doccasa,"Yinterior",1189.169897);
                DOF2_SetFloat(doccasa,"Zinterior",1080.339966);
            }
            if(casas[i] [tipo] == 10)
            {
                casas[i] [valor] = 320000;
                DOF2_SetInt(doccasa,"valor",casas[i] [valor]);
                DOF2_SetInt(doccasa,"interior",7);
                DOF2_SetFloat(doccasa,"Xinterior",225.630997);
                DOF2_SetFloat(doccasa,"Yinterior",1022.479980);
                DOF2_SetFloat(doccasa,"Zinterior",1084.069946);
            }
código que seta os interiores no momento que a casa é criada

Acontece com outras pessoa também. Exemplo: eu crio 5 casa, a primeira casa é tipo 1,a segunda tipo 2,a terceira tipo 4 e assim sucessivamente até o tipo 10.Logo após que as casas tão criada, se o player entra em todas as casas, no momento que ela entrar na casa tipo 10,dai os warning acontece e segue aparecendo os avisos em todos os tipo de casa que o player começa a entrar


RE: Warning in-game - Mathews - 21/07/2022

Coloca debug no comando "/entrar" e vamos olhar como está acontecendo as variações.
Código:
CMD:entrar(playerid)
{
    new doccasa[65];
    for(new i = 1;i < MAX_CASA; i++)
    {
        printf("0_[DEBUG]/entrar: %d", i);
        if(IsPlayerInRangeOfPoint(playerid,2, casas[i][x], casas[i][y], casas[i][z]))
        {
            printf("1_[DEBUG]/entrar: i: %d | posX:%f | posY:%f | posZ:%f | word:%d | int:%d | exitPosX:%f | exitPosY:%f | exitPosZ:%f", i, casas[i][x], casas[i][y], casas[i][z], casas [i] [wordid], DOF2_GetInt(doccasa,"interior"), DOF2_GetFloat(doccasa,"Xinterior"), DOF2_GetFloat(doccasa,"Yinterior"), DOF2_GetFloat(doccasa,"Zinterior"));
            format(doccasa, 64,"Casas/%d.ini", i);
            printf("2_[DEBUG]/entrar: i: %d | posX:%f | posY:%f | posZ:%f | word:%d | int:%d | exitPosX:%f | exitPosY:%f | exitPosZ:%f", i, casas[i][x], casas[i][y], casas[i][z], casas [i] [wordid], DOF2_GetInt(doccasa,"interior"), DOF2_GetFloat(doccasa,"Xinterior"), DOF2_GetFloat(doccasa,"Yinterior"), DOF2_GetFloat(doccasa,"Zinterior"));
            SetPlayerVirtualWorld(playerid, casas [i] [wordid]);
            printf("3_[DEBUG]/entrar: i: %d | posX:%f | posY:%f | posZ:%f | word:%d | int:%d | exitPosX:%f | exitPosY:%f | exitPosZ:%f", i, casas[i][x], casas[i][y], casas[i][z], casas [i] [wordid], DOF2_GetInt(doccasa,"interior"), DOF2_GetFloat(doccasa,"Xinterior"), DOF2_GetFloat(doccasa,"Yinterior"), DOF2_GetFloat(doccasa,"Zinterior"));
            SetPlayerPos(playerid, DOF2_GetFloat(doccasa,"Xinterior"), DOF2_GetFloat(doccasa,"Yinterior"), DOF2_GetFloat(doccasa,"Zinterior"));
            printf("4_[DEBUG]/entrar: i: %d | posX:%f | posY:%f | posZ:%f | word:%d | int:%d | exitPosX:%f | exitPosY:%f | exitPosZ:%f", i, casas[i][x], casas[i][y], casas[i][z], casas [i] [wordid], DOF2_GetInt(doccasa,"interior"), DOF2_GetFloat(doccasa,"Xinterior"), DOF2_GetFloat(doccasa,"Yinterior"), DOF2_GetFloat(doccasa,"Zinterior"));
            SetPlayerInterior(playerid,DOF2_GetInt(doccasa,"interior"));
            printf("5_[DEBUG]/entrar: i: %d | posX:%f | posY:%f | posZ:%f | word:%d | int:%d | exitPosX:%f | exitPosY:%f | exitPosZ:%f", i, casas[i][x], casas[i][y], casas[i][z], casas [i] [wordid], DOF2_GetInt(doccasa,"interior"), DOF2_GetFloat(doccasa,"Xinterior"), DOF2_GetFloat(doccasa,"Yinterior"), DOF2_GetFloat(doccasa,"Zinterior"));
            return 1;
        }
    }
    return 1;
}



RE: Warning in-game - LouzinDS - 23/07/2022

Difícil de identificar. Este endereça aponta para muitas coisas. Ele processa as animações baseado em qual superfíce o PED está e também lida com áudio, é chamado após a função que da armas... Talvez o que aconteceu aqui é que algum evento de script é invocado nestes momentos.

oque voce deve fazer e baixar o crashdetect: https://github.com/Zeex/samp-plugin-crashdetect/releases


apos isso voce deve compilar a gamemode em modo debug, como faço isso? se voce estiver usando o vscode ou sublime text, somente adicione o parametro "-d3" como argumento
exemplo de build-debug no vscode:
Código:
{
        "label": "Compile-Debug",
        "type": "shell",
        "command": "${workspaceRoot}/pawno/pawncc.exe",
        "args": ["${file}", "--%", "-Dgamemodes", "-;+", "-(+", "-d3", "-O1"],
        "group": {
          "kind": "build",
          "isDefault": true
        },
        "isBackground": false,
        "presentation": {
          "reveal": "silent",
          "panel": "dedicated"
        },
        "problemMatcher": "$pawncc"
      }
exemplo no sublime text:
Código:
{
    "encoding": "Windows 1252",
    "target":      ["Packages", "User", "exec.py"],
    "cmd": ["caminho", "${file_name}", "-(+", "-;+"],
    "variants": [
        {
            "cmd": ["caminhodagm//pawn//pawncc.exe", "${file_name}", "-(+", "-;+", "-l"],
            "name": "Lista"
        },
        {
            "cmd": ["Path", "${file_name}", "-(+", "-;+", "-d3"],
            "name": "Debug"
        },
        {
            "cmd": ["Path", "${file_name}", "-(+", "-;+", "-a"],
            "name": "ASM"
        },
        {
            "cmd": ["caminho", "${file_name}", "-(+", "-;+", "-r"],
            "name": "Reference"
        },
        {
            "cmd": ["Path", "${file_name}", "-(+", "-;+", "-d3", "-r"],
            "name": "Debug+Reference"
        }
    ]
}
apos isso compile, e adicione o crashdetec ao server.cfg,
depois ligue o seu servidor e mande o server_log aqui
OBS:apague o server_log.txt antigo antes de ligar a gamemode