SA-MP Forums Archive
[Ajuda] Senha sу poder conter inteiros - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Senha sу poder conter inteiros (/showthread.php?tid=627291)



Senha sу poder conter inteiros - maikons - 26.01.2017

Queria fazer uma senha simbolica pra conta no banco, apenas pra ficar mais da hora, umas senha de 4 digitos, que deve conter apenas numeros inteiros, mas nгo sei como fazer a verificaзгo de numeros inteiros

Exemplo:
Код:
	else if(dialogid == 54) {
		new valor = strval(inputtext);
		if(!response) return 1;
        else {
			if(valor < 1) return SendClientMessage(playerid, COLOR_WHITE, "O valor deve ser maior que 0!");
			if(valor > 9999) return SendClientMessage(playerid, COLOR_WHITE, "O valor deve conter no maximo 4 digitos (exemplo: 9999)!");
			if(valor != inteiro) return SendClientMessage(playerid, COLOR_WHITE, "A senha deve ser um valor de no maximo 4 digitos de apenas numeros inteiros! (exemplo: 9999)");
			senhabanco[playerid] = valor;
        }
	}



Re: Senha sу poder conter inteiros - TheBob - 26.01.2017

Usa essa vagina aqui:
Код:
stock IsNumeric(const str[])
{
    for(new i, len = strlen(str); i < len; i++)
    {
        if(!('0' <= str[i] <= '9')) return false;
    }
    return true;
}
+rep se te ajudei

if(IsNumeric(inputtext)) return true;


Re: Senha sу poder conter inteiros - maikons - 26.01.2017

Quote:
Originally Posted by TheBob
Посмотреть сообщение
Usa essa vagina aqui:
Код:
stock IsNumeric(const str[])
{
    for(new i, len = strlen(str); i < len; i++)
    {
        if(!('0' <= str[i] <= '9')) return false;
    }
    return true;
}
+rep se te ajudei

if(IsNumeric(inputtext)) return true;
Uй nгo seria assim?
Код:
if(!IsNumeric(valor)) return SendClientMessage(playerid, COLOR_WHITE, "A senha deve ser um valor de no maximo 4 digitos de apenas numeros inteiros! (exemplo: 9999)");
Pq ta dando erro:
Код:
error 035: argument type mismatch (argument 1)



Re: Senha sу poder conter inteiros - G4M30V3R - 26.01.2017

Variбvel 'valor' nгo й do tipo string.


Programando e Relaxando - RazorGuigo - 26.01.2017

Utilize sscanf й muito melhor e mais rapido! ^^
PHP код:
new senha;
if(
strlen(inputtext) > || strlen(inputtext) < 1)return SendClientMessage(playeridCOLOR_WHITE"digite apenas 4 digitos!");
if(
sscanf(inputtext"d"senha) return SendClientMessage(playeridCOLOR_WHITE"Somente numeros sгo aceitos!");
...
code... 



Re: Programando e Relaxando - maikons - 27.01.2017

Quote:
Originally Posted by RazorGuigo
Посмотреть сообщение
Utilize sscanf й muito melhor e mais rapido! ^^
PHP код:
new senha;
if(
strlen(inputtext) > || strlen(inputtext) < 1)return SendClientMessage(playeridCOLOR_WHITE"digite apenas 4 digitos!");
if(
sscanf(inputtext"d"senha) return SendClientMessage(playeridCOLOR_WHITE"Somente numeros sгo aceitos!");
...
code... 
Vlw Razor +rep, sу me tira duas duvidas?

1- Pq esse senha?
Код:
sscanf(inputtext, "d", senha
2- Pq toda vez entra nesse return, mesmo a senha sendo a certa?
Код:
if(senhabanco[playerid] != strlen(inputtext)) return GameTextForPlayer(playerid, "~R~INCORRECT PASSWORD", 5000, 1);



O importante й ajudar - RazorGuigo - 27.01.2017

Quote:
Originally Posted by maikons
Посмотреть сообщение
2- Pq toda vez entra nesse return, mesmo a senha sendo a certa?
Код:
if(senhabanco[playerid] != strlen(inputtext)) return GameTextForPlayer(playerid, "~R~INCORRECT PASSWORD", 5000, 1);
sу nгo entendi q porra tu queria nesse code .-., strlen й para saber o tamanho da string

para ver se a senha estб certa use:
PHP код:
if(senhabanco[playerid] == senha



Re: O importante й ajudar - maikons - 27.01.2017

Quote:
Originally Posted by RazorGuigo
Посмотреть сообщение
sу nгo entendi q porra tu queria nesse code .-., strlen й para saber o tamanho da string

para ver se a senha estб certa use:
PHP код:
if(senhabanco[playerid] == senha
Ah, nгo sabia...
Й que eu tinha tentado
Код:
if(senhabanco[playerid] == inputtext)
E tinha dado esse erro:
Код:
error 033: array must be indexed (variable "inputtext")
Ai tentei colkocar daquele jeito

Nгo posso usar aquela variavel de senha, porque esse dialog jб й outro, й o de entrada da senha...
O que eu faзo?


Re: Senha sу poder conter inteiros - TheBob - 27.01.2017

Код:
if(IsNumeric(valor)) return SendClientMessage(playerid, COLOR_WHITE, "A senha deve ser um valor de no maximo 4 digitos de apenas numeros inteiros! (exemplo: 9999)");
uй pq vc colocou '!' ?


Respuesta: Senha sу poder conter inteiros - SammyJ - 27.01.2017

eu acho desnecessбrio usar sscanf para somente um argumento/parвmetro, vocк pode usar o isnull e o IsNumeric

PHP код:
else if(dialogid == 54)
{
    
    if(!
response)
        return 
true;
    if(
isnull(inputtext))
        return 
SendClientMessage(playerid, -1"por favor vocк tem que digitar uma senha");
    if(!
IsNumeric(inputtext))
        return 
SendClientMessage(playerid, -1"Sua senha sу pode conter nъmeros.");
    if(
strval(inputtext) < 1)
        return 
SendClientMessage(playeridCOLOR_WHITE"O valor deve ser maior que 0!");
    if(
strval(inputtext) > 9999)
        return 
SendClientMessage(playeridCOLOR_WHITE"O valor deve conter no maximo 4 digitos (exemplo: 9999)!");
    if(
strlen(inputtext) != 4
        return 
SendClientMessage(playeridCOLOR_WHITE"A senha deve ser um valor de no maximo 4 digitos de apenas numeros inteiros! (exemplo: 9999)");
    
senhabanco[playerid] = strval(inputtext);