Strcmp nгo funcionando... -
syslogg - 03.08.2014
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 i = 0; i < MAX_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_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" );
}
}
Re: Strcmp nгo funcionando... -
ViniBorn - 03.08.2014
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
Re: Strcmp nгo funcionando... -
syslogg - 03.08.2014
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)
Re: Strcmp nгo funcionando... -
ViniBorn - 03.08.2014
Mostra seu debug. Na primeira volta do loop ele para?
Re: Strcmp nгo funcionando... -
syslogg - 03.08.2014
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)
Re: Strcmp nгo funcionando... -
ViniBorn - 03.08.2014
Tenta adicionar na condiзгo GangInfo[i][gTag][0] != ' ')
Re: Strcmp nгo funcionando... -
syslogg - 03.08.2014
Poxa, obrigado mesmo deu certo *-*.
PHP код:
new bool:TagE = false;
for(new i = 0; i < MAX_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], novo, true, sizeof(novo)) == 0) {
TagE = true;
printf("%s : %s",novo, GangInfo[i][gTag]);
break;
}
}
}
Passei horas junto com meu primo tentando resolver esse bagulho...
Obrigado!