Portal SAMP
[Ajuda] DIALOG NAO ABRE - 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] DIALOG NAO ABRE (/showthread.php?tid=4870)



DIALOG NAO ABRE - MagnatuS - 04/09/2024

OLÁ ESTOU COM PROBLEMA COM DIALOG VOU DEIXA CODIGO EM BAIXO .

Código PHP:
case DIALOG_CONFSERVER_1:
        {
            if(response)
            {
                new id AdminsList[playerid][listitem];
                PlayerSel[playerid] = id;
                new Float:nota;
                new dialogss[9000], titulo[3000]; 

                format(dialogsssizeof(dialogss), "{4290FE}Nome: {00FF00}%s\n"AdminInfo[id][admin_nome]);
            
    strcat(dialogssdialogss);
                format(dialogsssizeof(dialogss), "{4290FE}Função: {00FF00}%s\n"AdminInfo[id][admin_funcao]);
            
    strcat(dialogssdialogss);
                format(dialogsssizeof(dialogss), "{4290FE}Admin nível: {00FF00}%s(%d)\n"AccountRank(AdminInfo[id][admin_level]), AdminInfo[id][admin_level]);
            
    strcat(dialogssdialogss);
                format(dialogsssizeof(dialogss), "{4290FE}Admin há: {00FF00}%s\n"Convert(gettime()-AdminInfo[id][admin_data]));
            
    strcat(dialogssdialogss);
                format(dialogsssizeof(dialogss), "{4290FE}Promovido por: {00FF00}%s\n"AdminInfo[id][admin_setadopor]);
            
    strcat(dialogssdialogss);
                format(dialogsssizeof(dialogss), "{4290FE}Tempo desde sua ultima promoção: {00FF00}%s\n\n"AdminInfo[id][admin_ultimapromo] == ? ("Nunca foi promovido") : (Convert(gettime()-AdminInfo[id][admin_ultimapromo])));
            
    strcat(dialogssdialogss);
                nota floatmul(floatdiv(Float:AdminInfo[id][admin_notatotal], floatadd(Float:AdminInfo[id][admin_notatotal], Float:AdminInfo[id][admin_atttotal])), 10.0);
                if(nota >= 7)
                {
                    format(dialogsssizeof(dialogss), "{4290FE}Nota total: {00FF00}%.1f\n"nota);
            
        strcat(dialogssdialogss);
                }
                else
                {
                    format(dialogsssizeof(dialogss), "{4290FE}Nota total: {00FF00}%.1f\n"nota);
            
        strcat(dialogssdialogss);
                }
                format(dialogsssizeof(dialogss), "{4290FE}Atendimentos totais: {FFFF00}%d\n\n"AdminInfo[id][admin_atttotal]);
            
    strcat(dialogssdialogss);
                nota floatmul(floatdiv(Float:AdminInfo[id][admin_notassp], floatadd(Float:AdminInfo[id][admin_notassp], Float:AdminInfo[id][admin_attsp])), 10.0);
                if(nota >= 7)
                {
                    format(dialogsssizeof(dialogss), "{4290FE}Nota semana passada: {00FF00}%.1f\n"nota);
            
        strcat(dialogssdialogss);
                }
                else
                {
                    format(dialogsssizeof(dialogss), "{4290FE}Nota semana passada: {00FF00}%.1f\n"nota);
            
        strcat(dialogssdialogss);
                }
                format(dialogsssizeof(dialogss), "{4290FE}Atendimentos semana passada: {FFFF00}%d\n\n"AdminInfo[id][admin_attsp]);
            
    strcat(dialogssdialogss);
                nota floatmul(floatdiv(Float:AdminInfo[id][admin_notas], floatadd(Float:AdminInfo[id][admin_notas], Float:AdminInfo[id][admin_att])), 10.0);
                if(nota >= 7)
                {
                    format(dialogsssizeof(dialogss), "{4290FE}Nota parcial na semana: {00FF00}%.1f\n"nota);
            
        strcat(dialogssdialogss);
                }
                else
                {
                    format(dialogsssizeof(dialogss), "{4290FE}Nota parcial na semana: {00FF00}%.1f\n"nota);
            
        strcat(dialogssdialogss);
                }
                format(dialogsssizeof(dialogss), "{4290FE}Atendimentos parcial na semana: {FFFF00}%d\n\n"AdminInfo[id][admin_att]);
            
    strcat(dialogssdialogss);

                format(dialogsssizeof(dialogss), "{4290FE}Tempo jogando: {00FF00}%s\n",  Convert(AdminInfo[id][admin_tempojogo]));
            
    strcat(dialogssdialogss);
                format(dialogsssizeof(dialogss), "{4290FE}Tempo ausente: {00FF00}%s\n\n",  Convert(AdminInfo[id][admin_tempoafk]));
            
    strcat(dialogssdialogss);
                if(CheckPermFull(playerid) && AdminInfo[id][admin_level] < PlayerInfo[playerid][pAdmin])
                {
                    format(dialogsssizeof(dialogss), "{4290FE}Senha administrativa: {00FF00}%s",  Convert(AdminInfo[id][admin_tempoafk]));
            
        strcat(dialogssdialogss);
                }
                format(titulosizeof(titulo), "» {1E90FF}Servidor »{FFFFFF} %s"AdminInfo[id][admin_nome]);
                ShowPlayerDialog(playeridDIALOG_CONFSERVER_2DIALOG_STYLE_MSGBOXtitulodialogss"Limpar vaga""Voltar");
            }
            else ReturnCommand(configserver);
        

ERRO QUE ESTA APARECENDO NA MINHA GAMEMODE 

Código PHP:
[17:15:03] [debugRun time error 3"Stack/heap collision (insufficient stack size)"
[17:15:03] [debug]  Stack pointer (STKis 0x15FA90heap pointer (HEAis 0x164780
[17:15:03] [debugAMX backtrace:
[
17:15:03] [debug#0 00000000 in public OnDialogResponse () 



RE: DIALOG NAO ABRE - MarcosBrazz - 04/09/2024

Código PHP:
new dialogss[9000], titulo[3000]; 

Quantidade de células muito alta, o máximo de uma dialog é 4096, diminua e/ou divida em 2 dialogs se necessário.


RE: DIALOG NAO ABRE - MagnatuS - 04/09/2024

(04/09/2024 17:58)MarcosBrazz Escreveu:
Código PHP:
new dialogss[9000], titulo[3000]; 

Quantidade de células muito alta, o máximo de uma dialog é 4096, diminua e/ou divida em 2 dialogs se necessário.

continua com mesmo erro 

Código PHP:
[19:30:30] [debugRun time error 8"Heap underflow"
[19:30:30] [debug]  Heap pointer (HEAis 0x171574heap bottom (HLWis 0x1716E0
[19:30:30] [debugAMX backtrace:
[
19:30:30] [debug#0 0000b624 in public OnDialogResponse (playerid=0, dialogid=6, response=1, listitem=0, inputtext[]=@001716e0 "MagnatuS") at C:\Users\loris\Desktop\SERVER RP\gamemodes\bare.pwn:566 

agr ta parecendo esse erro


RE: DIALOG NAO ABRE - White_Blue - 04/09/2024

Citar:
Código PHP:
strcat(dialogssdialogss); 

Não faz sentido você concatenar a string que acabou de formatar com a mesma string. Você está sobrescrevendo a string sempre que a formata.

Além disso, não é necessário que a string tenha esse tamanho, na maioria dos casos, 200 ou 300 células são mais do que suficientes. Não há necessidade de exagerar.


RE: DIALOG NAO ABRE - MagnatuS - 05/09/2024

Já resolveu o erro muito obrigado pela atenção.