[Ajuda] Problema com dialog
#1

tenho um cуdigo onde uma dialog simplesmente nгo aparece, eu fiz um debug e descobri aonde estб o erro, porйm nгo consegui encontrar erro algum aonde era pra ter um suposto erro...

pawn Код:
RespondeMenuNikoHQHelis(playerid, response, listitem)
{
    if(!response)
        return ResponstaMenuPrincipal(playerid, 1, 4);

    if(Player[playerid][pMember] != 0)
    {
        new hqId = RetornaOrgHQID(Player[playerid][pMember]);
        if(hqId == -1)
            return SendClientMessage(playerid, -1, "{ff0000}[ERRO]: Esta HQ nгo aceita ediзгo");
           
        new string[1200];
        if(NikoHQInfo[hqId][nhqHeliAtivo][0])
            format(string,sizeof(string),"{00ff00}Vaga 01:\t %s (%d)",vehName[NikoHQInfo[hqId][nhqHeliModId][0]-400], NikoHQInfo[hqId][nhqHeliModId][0]);
        else
            format(string,sizeof(string),"{ff0000}Vaga 01:\t Livre");
               // o problema esta daqui em diante, parece q tudo daqui pra baixo eh simplesmente ignorado
        for(new i = 1; i < 7; i++)
            if(NikoHQInfo[hqId][nhqHeliAtivo][i])
                format(string,sizeof(string),"%s\n{00ff00}Vaga %02d:\t %s (%d)",string,i+1, vehName[NikoHQInfo[hqId][nhqHeliModId][i]-400], NikoHQInfo[hqId][nhqHeliModId][i]);
            else
                format(string,sizeof(string),"%s\n{ff0000}Vaga %02d:\t Livre (comprar heli)",string, i+1);
        for(new i = 7; i < MAX_ORG_HELIS; i++)
            if(NikoHQInfo[hqId][nhqHeliAtivo][i])
                format(string,sizeof(string),"%s\n{00ff00}Vaga %02d:\t %s (%d) (%d dia(s))",string,i+1, vehName[NikoHQInfo[hqId][nhqHeliModId][i]-400], NikoHQInfo[hqId][nhqHeliModId][i], floatround(floatdiv((NikoHQInfo[hqId][nhqHeliVida][i] - gettime()),(24*3600))));
            else
                format(string,sizeof(string),"%s\n{ff0000}Vaga %02d:\t Livre (comprar heli)",string, i+1);

        switch(listitem)
        {
            case 0: return ShowPlayerDialog(playerid, DIALOG_HQ_HELIS_LOC, DIALOG_STYLE_LIST,"Selecione o Veнculo para Localizar",string,"Selecionar","Voltar");
            case 1: return ShowPlayerDialog(playerid, DIALOG_HQ_HELIS_COMP, DIALOG_STYLE_LIST,"Selecione a Vaga/Veнculo para Comprar/Trocar",string,"Selecionar","Voltar");
            case 2: return ShowPlayerDialog(playerid, DIALOG_HQ_HELIS_PERM, DIALOG_STYLE_LIST,"Selecione o Veнculo para Alterar Permissхes de Uso",string,"Selecionar","Voltar");
        }
    }
    return 1;
}
Reply
#2

Olha os ids caso nгo tiver erros nos ids olhe o cуdigo.
Reply
#3

Faz um debug pra saber o seguinte valor:
pawn Код:
NikoHQInfo[hqId][nhqHeliModId]
Й possнvel que na hora de obter o nome do veнculo (vehName), esteja sendo fornecido um ID invбlido
Reply
#4

fiz o debug no NikoHQInfo[hqId][nhqHeliModId] e estб tudo correto

dei uma olhada no cуdigo umas mil vezes e nгo encontrei o erro :/



o engraзado eh q fiz o msm esquema para motos e nгo bugou, olhem:

pawn Код:
RespondeMenuNikoHQMotos(playerid, response, listitem) //DIALOG_HQ_MOTOS_OPT
{
    if(!response)
        return ResponstaMenuPrincipal(playerid, 1, 4);

    if(Player[playerid][pMember] != 0)
    {
        new hqId = RetornaOrgHQID(Player[playerid][pMember]);
        if(hqId == -1)
            return SendClientMessage(playerid, -1, "{ff0000}[ERRO]: Esta HQ nгo aceita ediзгo");

        new string[1200];
        if(NikoHQInfo[hqId][nhqMotoAtivo][0])
            format(string,sizeof(string),"{00ff00}Vaga 01:\t %s (%d)",vehName[NikoHQInfo[hqId][nhqMotoModId][0]-400], NikoHQInfo[hqId][nhqMotoModId][0]);
        else
            format(string,sizeof(string),"{ff0000}Vaga 01:\t Livre");

        for(new i = 1; i < 7; i++)
            if(NikoHQInfo[hqId][nhqMotoAtivo][i])
                format(string,sizeof(string),"%s\n{00ff00}Vaga %02d:\t %s (%d)",string,i+1, vehName[NikoHQInfo[hqId][nhqMotoModId][i]-400], NikoHQInfo[hqId][nhqMotoModId][i]);
            else
                format(string,sizeof(string),"%s\n{ff0000}Vaga %02d:\t Livre (comprar moto)",string, i+1);
        for(new i = 7; i < MAX_ORG_MOTOS; i++)
            if(NikoHQInfo[hqId][nhqMotoAtivo][i])
                format(string,sizeof(string),"%s\n{00ff00}Vaga %02d:\t %s (%d) (%d dia(s))",string,i+1, vehName[NikoHQInfo[hqId][nhqMotoModId][i]-400], NikoHQInfo[hqId][nhqMotoModId][i], floatround(floatdiv((NikoHQInfo[hqId][nhqMotoVida][i] - gettime()),(24*3600))));
            else
                format(string,sizeof(string),"%s\n{ff0000}Vaga %02d:\t Livre (comprar moto)",string, i+1);

        switch(listitem)
        {
            case 0: return ShowPlayerDialog(playerid, DIALOG_HQ_MOTOS_LOC, DIALOG_STYLE_LIST,"Selecione o Veнculo para Localizar",string,"Selecionar","Voltar");
            case 1: return ShowPlayerDialog(playerid, DIALOG_HQ_MOTOS_COMP, DIALOG_STYLE_LIST,"Selecione a Vaga/Veнculo para Comprar/Trocar",string,"Selecionar","Voltar");
            case 2: return ShowPlayerDialog(playerid, DIALOG_HQ_MOTOS_PERM, DIALOG_STYLE_LIST,"Selecione o Veнculo para Alterar Permissхes de Uso",string,"Selecionar","Voltar");
        }
    }
    return 1;
}

e tbm fiz um pra carros, e tbm nao deu bug:

pawn Код:
RespondeMenuNikoHQCarros(playerid, response, listitem) //DIALOG_HQ_CARROS_OPT
{
    if(!response)
        return ResponstaMenuPrincipal(playerid, 1, 4);

    if(Player[playerid][pMember] != 0)
    {
        new hqId = RetornaOrgHQID(Player[playerid][pMember]);
        if(hqId == -1)
            return SendClientMessage(playerid, -1, "{ff0000}[ERRO]: Esta HQ nгo aceita ediзгo");

        new string[1200];
        if(NikoHQInfo[hqId][nhqCarroAtivo][0])
            format(string,sizeof(string),"{00ff00}Vaga 01:\t %s (%d)",vehName[NikoHQInfo[hqId][nhqCarroModId][0]-400], NikoHQInfo[hqId][nhqCarroModId][0]);
        else
            format(string,sizeof(string),"{ff0000}Vaga 01:\t Livre");

        for(new i = 1; i < 7; i++)
            if(NikoHQInfo[hqId][nhqCarroAtivo][i])
                format(string,sizeof(string),"%s\n{00ff00}Vaga %02d:\t %s (%d)",string,i+1, vehName[NikoHQInfo[hqId][nhqCarroModId][i]-400], NikoHQInfo[hqId][nhqCarroModId][i]);
            else
                format(string,sizeof(string),"%s\n{ff0000}Vaga %02d:\t Livre (comprar carro)",string, i+1);
        for(new i = 7; i < MAX_ORG_CARROS; i++)
            if(NikoHQInfo[hqId][nhqCarroAtivo][i])
                format(string,sizeof(string),"%s\n{00ff00}Vaga %02d:\t %s (%d) (%d dia(s))",string,i+1, vehName[NikoHQInfo[hqId][nhqCarroModId][i]-400], NikoHQInfo[hqId][nhqCarroModId][i], floatround(floatdiv((NikoHQInfo[hqId][nhqCarroVida][i] - gettime()),(24*3600))));
            else
                format(string,sizeof(string),"%s\n{ff0000}Vaga %02d:\t Livre (comprar carro)",string, i+1);

        switch(listitem)
        {
            case 0: return ShowPlayerDialog(playerid, DIALOG_HQ_CARROS_RTUN, DIALOG_STYLE_LIST,"Selecione o Veнculo para Remover o Tunning",string,"Selecionar","Voltar");
            case 1: return ShowPlayerDialog(playerid, DIALOG_HQ_CARROS_LOC, DIALOG_STYLE_LIST,"Selecione o Veнculo para Localizar",string,"Selecionar","Voltar");
            case 2: return ShowPlayerDialog(playerid, DIALOG_HQ_CARROS_COMP, DIALOG_STYLE_LIST,"Selecione a Vaga/Veнculo para Comprar/Trocar",string,"Selecionar","Voltar");
            case 3: return ShowPlayerDialog(playerid, DIALOG_HQ_CARROS_PERM, DIALOG_STYLE_LIST,"Selecione o Veнculo para Alterar Permissхes de Uso",string,"Selecionar","Voltar");
        }
    }
    return 1;
}
serб q tem algo nesses dois cуdigo q estгo diferentes do cуdigo dos heli q eu nao percebi e acabou passando batido?
Reply
#5

Compila Mostra os erros
Reply
#6

Quote:
Originally Posted by DarkBr
Посмотреть сообщение
Compila Mostra os erros
nгo tem erro meu amigo, o bug eh in-game, as dialogs q eram pra supostamente aparecer simplesmente nгo aparecem..


editei o post de cima e adicionei algumas informaзхes, se puder ajudar eu seria muito grato
Reply
#7

Quote:
Originally Posted by Chainksain
Посмотреть сообщение
nгo tem erro meu amigo, o bug eh in-game, as dialogs q eram pra supostamente aparecer simplesmente nгo aparecem..


editei o post de cima e adicionei algumas informaзхes, se puder ajudar eu seria muito grato
Veja se nгo й o tamanho da string, se for utileze strcat
Reply
#8

Pode estar crashando aki NikoHQInfo[hqId][nhqHeliModId][i]-400.
a tentou rodar com crashdetect + flag debug?
Reply
#9

Quote:
Originally Posted by HoodScript
Посмотреть сообщение
Veja se nгo й o tamanho da string, se for utileze strcat
Se fosse isso creio eu q bugaria nas motos e carros tbm pois o cуdigo й igual como pode ver no meu ultimo comentбrio


Quote:
Originally Posted by Dayvison_
Посмотреть сообщение
Pode estar crashando aki NikoHQInfo[hqId][nhqHeliModId][i]-400.
a tentou rodar com crashdetect + flag debug?
ja tentei debugar desta forma sim e o crashdetect nao acusa nada

mas me diga porque vc acha que poderia estar crashando ai? talvez possa ser a resposta que procuro pra resolver esse problema
Reply
#10

Qual valor o debug retornou?
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)