[Ajuda] Strcmp nгo funcionando...
#1

Olб pessoal... Fiz um comando de ediзгo de TAG para meu Gang War e na hora de verificar o se existe alguma gang com a mesma tag ele nгo funciona...

Segue a paste do codigo

PHP код:
case DIALOG_GANG_EDITTAG: {
                    if(
response){
                            new 
bool:TagE false;
                                for(new 
0MAX_GANGS; ++i){
                                    new 
novo[10];
                                    
format(novo,sizeof(novo),"%s",inputtext);
                                    if(!
strcmp(GangInfo[i][gTag], novo)) TagE true//Nessa parte, ele sempre ta retornando TRUE em todo FOR.
                                
}
                                if(
TagE){
                                        
SCM(playerid,COR_GANG"[GANG] {FFFFFF}Tag existente. Por favor escolha outra.");
                                        
ShowPlayerDialog(playerid,DIALOG_GANG_EDITTAGDIALOG_STYLE_INPUT"Editar tag da gang""Digite uma nova TAG para gang.","Editar","Sair");
                                        return 
1;
                                }
                                new 
tag[3];
                                
strmid(taginputtext0,2);
                    
//GangInfo[PlayerInfo[playerid][pGang]][gName] = tag;
                            
format(GangInfo[PlayerInfo[playerid][pGang]][gName], 3"%s"tag);
                                
SaveGang(PlayerInfo[playerid][pGang]);
                            new 
str[60],list[3000];
 
                                
strcat(list,"{9ACD32}>> {FFFFFF}Nome da gang: {87CEEB}%s\n"); //0
                                
strcat(list,"{9ACD32}>> {FFFFFF}Tag:{87CEEB}%s\n"); //1
                                
strcat(list,"{9ACD32}>> {FFFFFF}Membros\n"); //2
                                
strcat(list,"{9ACD32}>> {FFFFFF}Status\n"); // 3
 
                                
format(list,sizeof(list),list,GangInfo[PlayerInfo[playerid][pGang]][gName],GangInfo[PlayerInfo[playerid][pGang]][gTag]);
                                
ShowPlayerDialog(playerid,DIALOG_GANGDIALOG_STYLE_LISTstr, list, "Selecionar""Sair" );
                        }
                       
                } 
Reply
#2

O nome de algumas gangs jб sгo prй definidos no GM?

Tenta isso
pawn Код:
case DIALOG_GANG_EDITTAG:
{
    if(response)
    {
        new bool:TagE;
        for(new i; i < MAX_GANGS; ++i)
            if(!strcmp(GangInfo[i][gTag], inputtext))
            {
                TagE = true; //Nessa parte, ele sempre ta retornando TRUE em todo FOR.
                break;
            }

        if(TagE)
        {
            SCM(playerid,COR_GANG, "[GANG] {FFFFFF}Tag existente. Por favor escolha outra.");
            ShowPlayerDialog(playerid,DIALOG_GANG_EDITTAG, DIALOG_STYLE_INPUT, "Editar tag da gang", "Digite uma nova TAG para gang.","Editar","Sair");
            return 1;
        }
        new tag[3];
        strmid(tag, inputtext, 0,2);
        //GangInfo[PlayerInfo[playerid][pGang]][gName] = tag;
        format(GangInfo[PlayerInfo[playerid][pGang]][gName], 3, "%s", tag);
        SaveGang(PlayerInfo[playerid][pGang]);
        new str[60],list[3000];

        strcat(list,"{9ACD32}>> {FFFFFF}Nome da gang: {87CEEB}%s\n"); //0
        strcat(list,"{9ACD32}>> {FFFFFF}Tag:{87CEEB}%s\n"); //1
        strcat(list,"{9ACD32}>> {FFFFFF}Membros\n"); //2
        strcat(list,"{9ACD32}>> {FFFFFF}Status\n"); // 3

        format(list,sizeof(list),list,GangInfo[PlayerInfo[playerid][pGang]][gName],GangInfo[PlayerInfo[playerid][pGang]][gTag]);
        ShowPlayerDialog(playerid,DIALOG_GANG, DIALOG_STYLE_LIST, str, list, "Selecionar", "Sair" );
    }
}
Se nгo funcionar, faz um dabug, pra saber quais os nomes que estгo sendo comparados, e em qual volta do loop o erro ocorre
Reply
#3

Acontece o mesmo erro, ele sу na hora para de executar o FOR... ( eu to usando printf pra debugar).

Nгo, cada gang pod ser criada pelo player. (sistema de GANG CRIAR)
Reply
#4

Mostra seu debug. Na primeira volta do loop ele para?
Reply
#5

Por causa do Break sim. Mas assim, quando coloco o editartag ele sempre dar isso e sempre dar diferente. eu usei o
printf("%s : %s",novo, GangInfo[i][gTag]

e o "novo" ta retornando o que eu digite, e o GangInfo[i][gTag] ta retornando vazio (o que й pra retornar, jб que as gangs que estгo criadas estгo com gTag = (null)
Reply
#6

Tenta adicionar na condiзгo GangInfo[i][gTag][0] != ' ')
Reply
#7

Poxa, obrigado mesmo deu certo *-*.

PHP код:
new bool:TagE false;
                for(new 
0MAX_GANGS; ++i){
                    new 
novo[10];
                    
format(novo,sizeof(novo),"%s",inputtext);
                    
//printf("%s",novo);
                    
if(GangInfo[i][gTag][0] != '\0'){
                        if(
strcmp(GangInfo[i][gTag], novotruesizeof(novo)) == 0) {
                            
TagE true;
                            
printf("%s : %s",novoGangInfo[i][gTag]);
                            break;
                        }
                    }
                } 
Passei horas junto com meu primo tentando resolver esse bagulho...
Obrigado!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)