[Ajuda] Espaзos em dialog
#1

Pessoal estou com problema em DIALOG_STYLE_INPUT.

Gostaria de saber qual funзгo verifica se jogador colocou o texto ou nгo. Vгo me dizer que й o inputtext do dialog. Isso eu sei!

O problema й que quando eu digito apenas espaзos no meu dialog ele retorna a funзгo como verdadeira e eu queria evitar isso.

pawn Код:
case 2:
                {
                    ShowPlayerDialog(playerid, 1036, DIALOG_STYLE_INPUT, "Tag VIP Personalizada", "Coloque abaixo o texto que vocк quer que apareзa em cima do seu nick.\nColoque de 1 a 20 caracteres.\n", ">>>", "<<<");
                }
pawn Код:
if(dialogid == 1036)
    {
        if(response)
        {
            if(INFO_P[playerid][VIP_P] < 3) return SendClientMessage(playerid,COR_ERRO,": ERRO : Apenas jogadores VIP Premium, Platina, Diamante e Permanente poderгo usar esta opзгo!");
            if(!strlen(inputtext) && strlen(inputtext) == 0) return ShowPlayerDialog(playerid, 1036, DIALOG_STYLE_INPUT, "Tag VIP Personalizada", "Coloque abaixo o texto que vocк quer que apareзa em cima do seu nick.\nColoque de 1 a 20 caracteres.\n", ">>>", "<<<");
            if(strlen(inputtext) < 3 || strlen(inputtext) > 18) return SendClientMessage(playerid, COR_ERRO,": ERRO : Vocк sу pode colocar de 3 a 18 caracteres!"),
            ShowPlayerDialog(playerid, 1036, DIALOG_STYLE_INPUT, "Tag VIP Personalizada", "Coloque abaixo o texto que vocк quer que apareзa em cima do seu nick.\nColoque de 1 a 20 caracteres.\n", ">>>", "<<<");         
            new TagVipSTG[60];
            format(TagVipSTG, sizeof(TagVipSTG), "%s", inputtext);
            tagvip[playerid] = Create3DTextLabel(TagVipSTG, 0xFFFFFFFF, 30.0, 40.0, 50.0, 40.0, 0, 0);
            Attach3DTextLabelToPlayer(tagvip[playerid], playerid, 0.0, 0.0, 0.7);
            format(String,sizeof(String), ": Tag VIP : Vocк colocou uma tag VIP personalizada com o texto {A4FF9A}%s", inputtext);
            SendClientMessage(playerid, 0xFFFFFFFF , String);  
        }
        else
        {
            ShowPlayerDialog(playerid, 1031, DIALOG_STYLE_LIST, "Tag VIP", "Ativar/Desativar tag [VIP]\nCores opcionais tag [VIP]\nTag ViP personalizada\n", ">>>", "X");
        }
        return true;
    }
Reply
#2

PHP код:
if(strfind(strlen" "false) != -1) return  ShowPlayerDialog(playerid1036DIALOG_STYLE_INPUT"Tag VIP Personalizada""Coloque abaixo o texto que vocк quer que apareзa em cima do seu nick.\nColoque de 1 a 20 caracteres.\n"">>>""<<<"); 
@edit
Reply
#3

Quote:
Originally Posted by BarBePie
Посмотреть сообщение
PHP код:
if(strfind(strlen" "false) != -1) return  ShowPlayerDialog(playerid1036DIALOG_STYLE_INPUT"Tag VIP Personalizada""Coloque abaixo o texto que vocк quer que apareзa em cima do seu nick.\nColoque de 1 a 20 caracteres.\n"">>>""<<<"); 
@edit
da este erro

pawn Код:
BURPG.pwn(11143) : error 076: syntax error in the expression, or invalid function call
Reply
#4

Quote:
Originally Posted by PetrickSchoba
Посмотреть сообщение
Pessoal estou com problema em DIALOG_STYLE_INPUT.

Gostaria de saber qual funзгo verifica se jogador colocou o texto ou nгo. Vгo me dizer que й o inputtext do dialog. Isso eu sei!

O problema й que quando eu digito apenas espaзos no meu dialog ele retorna a funзгo como verdadeira e eu queria evitar isso.

pawn Код:
case 2:
                {
                    ShowPlayerDialog(playerid, 1036, DIALOG_STYLE_INPUT, "Tag VIP Personalizada", "Coloque abaixo o texto que vocк quer que apareзa em cima do seu nick.\nColoque de 1 a 20 caracteres.\n", ">>>", "<<<");
                }
pawn Код:
if(dialogid == 1036)
    {
        if(response)
        {
            if(INFO_P[playerid][VIP_P] < 3) return SendClientMessage(playerid,COR_ERRO,": ERRO : Apenas jogadores VIP Premium, Platina, Diamante e Permanente poderгo usar esta opзгo!");
            if(!strlen(inputtext) && strlen(inputtext) == 0) return ShowPlayerDialog(playerid, 1036, DIALOG_STYLE_INPUT, "Tag VIP Personalizada", "Coloque abaixo o texto que vocк quer que apareзa em cima do seu nick.\nColoque de 1 a 20 caracteres.\n", ">>>", "<<<");
            if(strlen(inputtext) < 3 || strlen(inputtext) > 18) return SendClientMessage(playerid, COR_ERRO,": ERRO : Vocк sу pode colocar de 3 a 18 caracteres!"),
            ShowPlayerDialog(playerid, 1036, DIALOG_STYLE_INPUT, "Tag VIP Personalizada", "Coloque abaixo o texto que vocк quer que apareзa em cima do seu nick.\nColoque de 1 a 20 caracteres.\n", ">>>", "<<<");         
            new TagVipSTG[60];
            format(TagVipSTG, sizeof(TagVipSTG), "%s", inputtext);
            tagvip[playerid] = Create3DTextLabel(TagVipSTG, 0xFFFFFFFF, 30.0, 40.0, 50.0, 40.0, 0, 0);
            Attach3DTextLabelToPlayer(tagvip[playerid], playerid, 0.0, 0.0, 0.7);
            format(String,sizeof(String), ": Tag VIP : Vocк colocou uma tag VIP personalizada com o texto {A4FF9A}%s", inputtext);
            SendClientMessage(playerid, 0xFFFFFFFF , String);  
        }
        else
        {
            ShowPlayerDialog(playerid, 1031, DIALOG_STYLE_LIST, "Tag VIP", "Ativar/Desativar tag [VIP]\nCores opcionais tag [VIP]\nTag ViP personalizada\n", ">>>", "X");
        }
        return true;
    }
Use:
PHP код:
if(strlen(inputtext) == 0
{
SendClientMessage(playerid0xFF0000AA"| ERRO | Digite algo.");
ShowPlayerDialog(playerid1036DIALOG_STYLE_INPUT"Tag VIP Personalizada""Coloque abaixo o texto que vocк quer que apareзa em cima do seu nick.\nColoque de 1 a 20 caracteres.\n"">>>""<<<");

Reply
#5

Arrumado @


Arrumado Strlen estava obtendo o tamanho da String e eu precisa que procura-se o caracterer espaзo " ".

Usei. if(strfind(inputtext, " ") != -1)
Reply
#6

Quote:
Originally Posted by PetrickSchoba
Посмотреть сообщение
Arrumado @


Arrumado Strlen estava obtendo o tamanho da String e eu precisa que procura-se o caracterer espaзo " ".

Usei. if(strfind(inputtext, " ") != -1)
ja que й um texto provavelmente a pessoa vai dar um espaзo no meio dele .. entгo strfind iria detectar e nгo vai funcionar, nesse caso vocк vai ter que correr todo o texto e verificar se tem caracteres.

Exemplo:
PHP код:
new Texto[30];
Texto "Oi escrevi um texto qualquer.";
if (
EscreveuUmTexto(Texto))
    
printf("ESCREVEU: %s"Texto);
else
    
printf("NГO ESCREVEU 2: %s"Texto);
Texto[0] = EOS ;
if (
EscreveuUmTexto(Texto))
    
printf("ESCREVEU: %s"Texto);
else
    
printf("NГO ESCREVEU: %s"Texto);
        
EscreveuUmTexto(text[]) {
    for(new 
astrlen(text); ++a) {
    
        if (
strcmp(text[a], " ") != 0) return 1;
    }
    return 
0;

Reply
#7

Quote:
Originally Posted by Whoo
Посмотреть сообщение
ja que й um texto provavelmente a pessoa vai dar um espaзo no meio dele .. entгo strfind iria detectar e nгo vai funcionar, nesse caso vocк vai ter que correr todo o texto e verificar se tem caracteres.

Exemplo:
PHP код:
new Texto[30];
Texto "Oi escrevi um texto qualquer.";
if (
EscreveuUmTexto(Texto))
    
printf("ESCREVEU: %s"Texto);
else
    
printf("NГO ESCREVEU 2: %s"Texto);
Texto[0] = EOS ;
if (
EscreveuUmTexto(Texto))
    
printf("ESCREVEU: %s"Texto);
else
    
printf("NГO ESCREVEU: %s"Texto);
        
EscreveuUmTexto(text[]) {
    for(new 
astrlen(text); ++a) {
    
        if (
strcmp(text[a], " ") != 0) return 1;
    }
    return 
0;

Irei fazer por sscanf mesmo, й mais fбcil e nгo irei quebrar tanto a cabeзa, mas obrigado!
Reply
#8

Quote:
Originally Posted by Whoo
Посмотреть сообщение
ja que й um texto provavelmente a pessoa vai dar um espaзo no meio dele .. entгo strfind iria detectar e nгo vai funcionar, nesse caso vocк vai ter que correr todo o texto e verificar se tem caracteres.

Exemplo:
PHP код:
new Texto[30];
Texto "Oi escrevi um texto qualquer.";
if (
EscreveuUmTexto(Texto))
    
printf("ESCREVEU: %s"Texto);
else
    
printf("NГO ESCREVEU 2: %s"Texto);
Texto[0] = EOS ;
if (
EscreveuUmTexto(Texto))
    
printf("ESCREVEU: %s"Texto);
else
    
printf("NГO ESCREVEU: %s"Texto);
        
EscreveuUmTexto(text[]) {
    for(new 
astrlen(text); ++a) {
    
        if (
strcmp(text[a], " ") != 0) return 1;
    }
    return 
0;

Para resolver isso, alguйm?
Reply
#9

PHP код:
new st[] = "        ";

new 
len strlen(st);
new 
cont;
for(new 
ileni++){
    if(
st[i] == ' ')
        
cont++;
}

printf("len: %d | espaзos: %d"lencont); 
Como foi feito acima basta percorrer a string e contar os espaзos, se o total de espaзos for igual ao tamanho da string contйm somente espaзos. Vocк pode aplicar outras regras, como poder ter sу um espaзo entre palavras.
Reply
#10

Quote:
Originally Posted by MultiKill
Посмотреть сообщение
PHP код:
new st[] = "        ";
new 
len strlen(st);
new 
cont;
for(new 
ileni++){
    if(
st[i] == ' ')
        
cont++;
}
printf("len: %d | espaзos: %d"lencont); 
Como foi feito acima basta percorrer a string e contar os espaзos, se o total de espaзos for igual ao tamanho da string contйm somente espaзos. Vocк pode aplicar outras regras, como poder ter sу um espaзo entre palavras.
Й isso o que eu quero, o foda й que nгo entendi como vou colocar isso ai aqui

pawn Код:
if(INFO_P[playerid][TAG_VIP_P] == 0) return  SendClientMessage(playerid,COR_ERRO,": ERRO : O seu tag VIP nгo esta ativado, ative-o para poder escolher um texto!");
            if(strlen(inputtext) == 0) return ShowPlayerDialog(playerid, 1036, DIALOG_STYLE_INPUT, "Tag VIP Personalizada", "Coloque abaixo o texto que vocк quer que apareзa em cima do seu nick.\nColoque de 3 a 18 caracteres.\n", ">>>", "<<<");
            if(strlen(inputtext) < 3 || strlen(inputtext) > 18) return SendClientMessage(playerid, COR_ERRO, ": ERRO : Coloque de 3 a 18 caracteres!"), ShowPlayerDialog(playerid, 1036, DIALOG_STYLE_INPUT, "Tag VIP Personalizada", "Coloque abaixo o texto que vocк quer que apareзa em cima do seu nick.\nColoque de 3 a 18 caracteres.\n", ">>>", "<<<");
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)