SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese

Reply
 
Thread Tools Display Modes
Old 18/10/2019, 01:18 AM   #1
SmokeKiLL
Huge Clucker
 
Join Date: Aug 2017
Posts: 310
Reputation: 2
Default String não mostra corretamente

Bom... Vou tentar explicar de uma forma que fique fácil para entender.

Estou com um bug na variável varNaRemete e varNaDestina. Quando elas estão 1, devem mostrar "Voce" e isso as vezes não acontece, fica aparecendo 1.

E quando eu reseto a Array (Não sei se fala assim) 0 da variável chipRSMS as variáveis varNaRemete e varNaDestina ficam marcando 0 ou 1.

Eu deleto assim:

pawn Code:
new mensagem = GetPVarInt(playerid, "mensagem_selected");

InfoChip[playerid][mensagem][chipRSMS] = 0;
InfoChip[playerid][mensagem][chipDSMS] = 0;

Uma observação: SEMPRE que a variável varNaRemete ou varNaDestina for 1, uma vai ser o contrário da outra, as duas NUNCA vão ser 1. Apenas uma observação.

pawn Code:
new varNaRemete[MAX_PLAYERS][30][30];
new varNaDestina[MAX_PLAYERS][30][30];

for(new i; i < 30; i++)
{
    if(InfoChip[playerid][i][chipRSMS] != 0)
    {
        for(new sLista1; sLista1 < 30; sLista1++)
        {
            for(new sLista2; sLista2 < 30; sLista2++)
            {
                if(InfoChip[playerid][i][chipRSMS] != 1) {

                    if(InfoChip[playerid][sLista1][chipRSMS] == InfoChip[playerid][sLista2][chipNuContact])
                    {
                        format(varNaRemete[playerid][sLista1], 30, InfoChip[playerid][sLista2][chipNaContact]);
                        varNaDestina[playerid][i] = "Voce";
                        break;
                    }
                    else {
                        valstr(varNaRemete[playerid][sLista1], InfoChip[playerid][sLista2][chipRSMS]);
                        varNaDestina[playerid][i] = "Voce";
                        break;
                    }
                }
                else {

                    if(InfoChip[playerid][sLista1][chipDSMS] == InfoChip[playerid][sLista2][chipNuContact])
                    {
                        format(varNaDestina[playerid][sLista1], 30, InfoChip[playerid][sLista2][chipNaContact]);
                        varNaRemete[playerid][i] = "Voce";
                        break;
                    }
                    else {
                        valstr(varNaDestina[playerid][sLista1], InfoChip[playerid][sLista2][chipDSMS]);
                        varNaRemete[playerid][i] = "Voce";
                        break;
                    }
                }
            }
        }

        format(string, sizeof(string), "%s\t%s", varNaRemete[playerid][i], varNaDestina[playerid][i]);
        strcat(MEGAString, string);
    }
}

Eu conto com a ajuda de vocês para tentar resolver este bug, por que sinceramente eu já tentei de tudo !

Se não entenderem, eu tento explicar de outra forma. Mas é basicamente isso, as variáveis varNaRemete e varNaDestina não marca "Voce" quando é para marcar.
SmokeKiLL is offline   Reply With Quote
Old 19/10/2019, 04:01 PM   #2
SmokeKiLL
Huge Clucker
 
Join Date: Aug 2017
Posts: 310
Reputation: 2
Default Re: String não mostra corretamente

Tem alguém ai?
SmokeKiLL is offline   Reply With Quote
Old 19/10/2019, 04:13 PM   #3
Felipealves
Huge Clucker
 
Felipealves's Avatar
 
Join Date: Mar 2016
Location: Paraná
Posts: 399
Reputation: 18
Default Re: String não mostra corretamente

format(varNaRemete[playerid][i], 30, "Você");
__________________

CRIMINAL LIFE RPG
Felipealves is online now   Reply With Quote
Old 19/10/2019, 06:46 PM   #4
SmokeKiLL
Huge Clucker
 
Join Date: Aug 2017
Posts: 310
Reputation: 2
Default Re: String não mostra corretamente

Continua a mesma coisa ;-;

Eu já fiz debug nas variáveis chipRSMS e chipDSMS e nenhuma está marcando 0, então realmente o problema está nas variáveis varNaRemete e varNaDestina.
SmokeKiLL is offline   Reply With Quote
Old 19/10/2019, 07:01 PM   #5
Felipealves
Huge Clucker
 
Felipealves's Avatar
 
Join Date: Mar 2016
Location: Paraná
Posts: 399
Reputation: 18
Default Re: String não mostra corretamente

Troque o [i] por [sLista1]
__________________

CRIMINAL LIFE RPG
Felipealves is online now   Reply With Quote
Old 19/10/2019, 07:41 PM   #6
SmokeKiLL
Huge Clucker
 
Join Date: Aug 2017
Posts: 310
Reputation: 2
Default Re: String não mostra corretamente

Olha... Não está funcionando 100% não ;-;
SmokeKiLL is offline   Reply With Quote
Old 19/10/2019, 08:19 PM   #7
NWDMadara
Gangsta
 
NWDMadara's Avatar
 
Join Date: Mar 2018
Posts: 501
Reputation: 16
Default Re: String não mostra corretamente

for(new i; i < 30; i++) {

Esse primeiro loop é realmente necessário?

30*30*30=27000

ai meu coração
NWDMadara is offline   Reply With Quote
Old 20/10/2019, 02:29 AM   #8
SmokeKiLL
Huge Clucker
 
Join Date: Aug 2017
Posts: 310
Reputation: 2
Default Re: String não mostra corretamente

Aqui está o código completo, eu já não sei mais o que fazer para arrumar essa bexiga !

pawn Code:
// # Sistema de Celular #
static IndexOLX[MAX_PLAYERS][20];

static IndexCelular[MAX_PLAYERS][30];
new varNaRemete[MAX_PLAYERS][30][30];
new varNaDestina[MAX_PLAYERS][30][30];

enum pCell
{
    chipNaContact[24],
    chipNuContact,

    chipRSMS,
    chipDSMS,
    chipMSMS[128],
    chipStatusSMS,

    chipRegData[30],
    chipRegContato,
    chipRegStatus
};

new InfoChip[MAX_PLAYERS][30][pCell];

function Cell_DialogSMS(playerid)
{
    for(new i; i < 30; i++) {
        IndexCelular[playerid][i] = -1;
    }

    new string[128],
        statusSMS[20];

    MEGAString[0] = EOS;

    strcat(MEGAString, "Enviada por\tPara\tMensagem\tStatus\n");
    strcat(MEGAString, "Escrever Mensagem\n");

    for(new i; i < 30; i++)
    {
        if(InfoChip[playerid][i][chipRSMS] != 0)
        {
            if(InfoChip[playerid][i][chipStatusSMS] == 0) statusSMS = "{FF6347}Falhou";
            if(InfoChip[playerid][i][chipStatusSMS] == 1) statusSMS = "{00D900}Enviada";
            if(InfoChip[playerid][i][chipStatusSMS] == 2) statusSMS = "{33CCFF}Recebida";

            for(new sLista1; sLista1 < 30; sLista1++)
            {
                for(new sLista2; sLista2 < 30; sLista2++)
                {
                    if(InfoChip[playerid][i][chipRSMS] != 1) {

                        if(InfoChip[playerid][sLista1][chipRSMS] == InfoChip[playerid][sLista2][chipNuContact])
                        {
                            format(varNaRemete[playerid][sLista1], 30, InfoChip[playerid][sLista2][chipNaContact]);
                            format(varNaDestina[playerid][sLista1], 30, "Voce");
                            break;
                        }
                        else {
                            valstr(varNaRemete[playerid][sLista1], InfoChip[playerid][sLista2][chipRSMS]);
                            format(varNaDestina[playerid][sLista1], 30, "Voce");
                            break;
                        }
                    }
                    else {

                        if(InfoChip[playerid][sLista1][chipDSMS] == InfoChip[playerid][sLista2][chipNuContact])
                        {
                            format(varNaDestina[playerid][sLista1], 30, InfoChip[playerid][sLista2][chipNaContact]);
                            format(varNaRemete[playerid][sLista1], 30, "Voce");
                            break;
                        }
                        else {
                            valstr(varNaDestina[playerid][sLista1], InfoChip[playerid][sLista2][chipDSMS]);
                            format(varNaRemete[playerid][sLista1], 30, "Voce");
                            break;
                        }
                    }
                }
            }

            if(strlen(InfoChip[playerid][i][chipMSMS]) >= 20) {

                format(string, sizeof(string), "%s\t%s\t%.20s [...]\t%s\n", varNaRemete[playerid][i], varNaDestina[playerid][i], InfoChip[playerid][i][chipMSMS], statusSMS);
                strcat(MEGAString, string);
            }
            else {

                format(string, sizeof(string), "%s\t%s\t%s\t%s\n", varNaRemete[playerid][i], varNaDestina[playerid][i], InfoChip[playerid][i][chipMSMS], statusSMS);
                strcat(MEGAString, string);
            }

            for(new x; x < 30; x++)
            {
                if(IndexCelular[playerid][x] == -1)
                {
                    IndexCelular[playerid][x] = i;
                    break;
                }
            }
        }
    }
    Dialog_Show(playerid, D_Celular_SMS, DIALOG_STYLE_TABLIST_HEADERS, "Mensagens", MEGAString, "Selecionar", "Voltar");
    return 1;
}
SmokeKiLL is offline   Reply With Quote
Old 20/10/2019, 06:15 AM   #9
SmokeKiLL
Huge Clucker
 
Join Date: Aug 2017
Posts: 310
Reputation: 2
Default Re: String não mostra corretamente

Sim, foi eu que fiz o código (Tirando a parte do IndexCelular). Tem um problema mano...

E se a variável chipRSMS ou chipDSMS for igual a 1? Elas precisam aparecer "Voce".

E se a variável chipRSMS ou chipDSMS não for igual a variável chipNuContact? Precisa aparecer o valor que está nelas, MAS NÃO SE FOR 1, se for 1 deve aparecer "Voce"

É nessa parte que sempre buga...

@edit Sim, essas variáveis varNaRemete e varNaDestina são apenas para armazenar o nome "Voce" e caso o valor que esteja na variável chipRSMS ou chipDSMS sejam diferente de 1, e não seja igual a variável chipNuContact, vai armazenar ele também.
SmokeKiLL is offline   Reply With Quote
Old 22/10/2019, 09:02 PM   #10
SmokeKiLL
Huge Clucker
 
Join Date: Aug 2017
Posts: 310
Reputation: 2
Default Re: String não mostra corretamente

Desculpe a demora em responder. Estava dando alguns erros, consegui resolver alguns, mas ficou esses aqui:

Code:
(17413) : error 033: array must be indexed (variable "statusSMS")
(17424) : error 048: array dimensions do not match
(17425) : error 048: array dimensions do not match
(17431) : error 048: array dimensions do not match
(17432) : error 048: array dimensions do not match
(17445) : error 048: array dimensions do not match
(17446) : error 048: array dimensions do not match
(17452) : error 048: array dimensions do not match
(17453) : error 048: array dimensions do not match
Eu marquei as linhas que estão com erro, Se puder dar uma olhada no código também, vai que fiz alguma merda tentando resolver os erros kkk

pawn Code:
function Cell_DialogSMS(playerid)
{
    for(new i; i < 30; i++) {
        IndexCelular[playerid][i] = -1;
    }

    new string[128],
    statusSMS[20],
    Count;

    MEGAString[0] = EOS;

    strcat(MEGAString, "Enviada por\tPara\tMensagem\tStatus\n");
    strcat(MEGAString, "Escrever Mensagem\n");


    for(new i; i < 30; i++) {

        switch(InfoChip[playerid][i][statusSMS]) { // Linha 17413
            case 0:  statusSMS = "{FF6347}Falhou";
            case 1:  statusSMS = "{FF6347}Enviada";
            case 2:  statusSMS = "{FF6347}Recebida";
        }

        if(InfoChip[playerid][i][chipRSMS] != 0 && InfoChip[playerid][i][chipRSMS] !=1) {

            for(new list; list < 30; list++) {
                // Se o numero do contato for igual do remetente
                if(InfoChip[playerid][i][chipRSMS] == InfoChip[playerid][list][chipNuContact]) {
                    format(varNaRemete, sizeof(varNaRemete), InfoChip[playerid][list][chipNaContact]); // Linha 17424
                    format(varNaDestina, sizeof(varNaDestina), "Você"); // Linha 17425
                    Count = 0;
                    break;
                }
                Count++;
                if(Count == 30) {
                    format(varNaRemete, sizeof(varNaRemete), InfoChip[playerid][list][chipRSMS]); // Linha 17431
                    format(varNaDestina, sizeof(varNaDestina), "Você"); // Linha 17432
                    Count = 0;
                    break;
                }

            }
        }

        else if(InfoChip[playerid][i][chipDSMS] != 0 && InfoChip[playerid][i][chipDSMS] !=1) {

            for(new list; list < 30; list++) {
                // Se o numero do contato for igual do Destinatario
                if(InfoChip[playerid][i][chipDSMS] == InfoChip[playerid][list][chipNuContact]) {
                    format(varNaDestina, sizeof(varNaDestina), InfoChip[playerid][list][chipNaContact]); // Linha 17445
                    format(varNaRemete, sizeof(varNaRemete), "Você"); // Linha 17446
                    Count = 0;
                }
                Count++;
                // Se não for igual do Destinatario
                if(Count == 30) {
                    format(varNaDestina, sizeof(varNaDestina), InfoChip[playerid][list][chipDSMS]); // Linha 17452
                    format(varNaRemete, sizeof(varNaRemete), "Você"); // Linha 17453
                    Count = 0;
                    break;
                }
            }

        }

        if(strlen(InfoChip[playerid][i][chipMSMS]) >= 20) {
            format(string, sizeof(string), "%s\t%s\t%.20s [...]\t%s\n", varNaRemete[playerid][i], varNaDestina[playerid][i], InfoChip[playerid][i][chipMSMS], statusSMS);
            strcat(MEGAString, string);
        }
        else {
            format(string, sizeof(string), "%s\t%s\t%s\t%s\n", varNaRemete[playerid][i], varNaDestina[playerid][i], InfoChip[playerid][i][chipMSMS], statusSMS);
            strcat(MEGAString, string);
        }

        if(strlen(InfoChip[playerid][i][chipMSMS]) >= 20) {

            format(string, sizeof(string), "%s\t%s\t%.20s [...]\t%s\n", varNaRemete[playerid][i], varNaDestina[playerid][i], InfoChip[playerid][i][chipMSMS], statusSMS);
            strcat(MEGAString, string);
        }
        else {

            format(string, sizeof(string), "%s\t%s\t%s\t%s\n", varNaRemete[playerid][i], varNaDestina[playerid][i], InfoChip[playerid][i][chipMSMS], statusSMS);
            strcat(MEGAString, string);
        }

        for(new x; x < 30; x++) {

            if(IndexCelular[playerid][x] == -1) {
                IndexCelular[playerid][x] = i;
                break;
            }
        }
    }
    Dialog_Show(playerid, D_Celular_SMS, DIALOG_STYLE_TABLIST_HEADERS, "Mensagens", MEGAString, "Selecionar", "Voltar");
    return 1;
}
SmokeKiLL is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Ajuda] Loop não carrega string corretamente elTioFrame Português/Portuguese 1 22/07/2019 07:57 AM
[Ajuda] Casas não deletam corretamente Biscoito Português/Portuguese 2 15/07/2019 11:37 PM
[Ajuda] /estacionar não funcionando corretamente FernandoDutra Português/Portuguese 2 23/10/2016 02:25 PM
[Ajuda] PlayerPlaySound não trabalhando corretamente iTakelot Português/Portuguese 6 17/08/2015 01:55 AM
[Ajuda] Valor não aparece corretamente. %i, %f, %d ou %s AndersonAq Português/Portuguese 2 25/11/2013 06:43 PM


All times are GMT. The time now is 05:41 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.