[Ajuda] Senha sу poder conter inteiros
#1

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;
        }
	}
Reply
#2

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;
Reply
#3

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)
Reply
#4

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

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... 
Reply
#6

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);
Reply
#7

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
Reply
#8

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?
Reply
#9

Код:
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 '!' ?
Reply
#10

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);

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)