Ir para conteúdo
  • Cadastre-se
  • 0
Entre para seguir isso  
WStock

[Resolvido] Checagem de letras em npc

Pergunta

Estou criando um npc e nele preciso colocar uma função para que ele verifique oque esta sendo digitado em um input , 

esse input preciso que seja digitado somente Números e não aceite letras ou caracteres e um outro que só aceite letras e não números 

Como fazer quem ao alguém digitar no caso letras nesse campo ele receba um aviso de que não é possível letras somente números ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

8 respostass a esta questão

Recommended Posts

  • 0
4 horas atrás, WStock disse:

Estou criando um npc e nele preciso colocar uma função para que ele verifique oque esta sendo digitado em um input , 

esse input preciso que seja digitado somente Números e não aceite letras ou caracteres e um outro que só aceite letras e não números 

Como fazer quem ao alguém digitar no caso letras nesse campo ele receba um aviso de que não é possível letras somente números ?

Bom, pensei em duas formas. Uma com uma comparação de strings.

*compare("<string>","<substring>")

This command returns 1 or 0 when the substring is in the main string (1)
or not (0). This command is not case sensitive.

Examples:

//dothis; will be executed ('Bloody Murderer' contains 'Blood').
	if (compare("Bloody Murderer","Blood"))
		dothis;
//dothat; will not be executed ('Blood butterfly' does not contain 'Bloody').
	if (compare("Blood Butterfly","Bloody"))
		dothat;

Exemplo:

-	script	InputNumb	-1,{

setarray $@Alpha$[0],"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z";
input .@Digit$;
.@Check = 0
	for(.@a = 0; .@a < getarraysize($@Alpha$); .@a++){
		if(compare(.@Digit$,$@Alpha$[.@a])) {
			.@Check = .@Check++;
		}
	}
		if(.@Check == 0) {
			mes "Muito bem, somente números!";
			close;
		}
			mes "Não são permitidas letras aqui.";
			close;
}

 

E a outra levei em consideração que uma variável que contenha caracteres necessita de uma variável adequada (com o cifrão para indicar que é uma variável de string "$"). Caso não tiver retornará 0.

Exemplo:

-	script	InputNumb	-1,{

input .@Digit;
	if(.@Digit == 0) { 
		mes "Há dados que não são permitidos.";
		close;
	}
		mes "Muito bem, somente números!";
		close;
}

 

Não testei nenhum dos dois. O único comando que lembro para fazer uma comparação de var é isdigit, mas não sei como utiliza-lo em um script, somente em source.

 

Att,

Editado por Evanio
  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
4 horas atrás, Evanio disse:

Bom, pensei em duas formas. Uma com uma comparação de strings.


*compare("<string>","<substring>")

This command returns 1 or 0 when the substring is in the main string (1)
or not (0). This command is not case sensitive.

Examples:

//dothis; will be executed ('Bloody Murderer' contains 'Blood').
	if (compare("Bloody Murderer","Blood"))
		dothis;
//dothat; will not be executed ('Blood butterfly' does not contain 'Bloody').
	if (compare("Blood Butterfly","Bloody"))
		dothat;

Exemplo:


-	script	InputNumb	-1,{

setarray $@Alpha$[0],"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z";
input .@Digit$;
.@Check = 0
	for(.@a = 0; .@a < getarraysize($@Alpha$); .@a++){
		if(compare(.@Digit$,$@Alpha$[.@a])) {
			.@Check = .@Check++;
		}
	}
		if(.@Check == 0) {
			mes "Muito bem, somente números!";
			close;
		}
			mes "Não são permitidas letras aqui.";
			close;
}

 

E a outra levei em consideração que uma variável que contenha caracteres necessita de uma variável adequada (com o cifrão para indicar que é uma variável de string "$"). Caso não tiver retornará 0.

Exemplo:

Seria mesmo esse o caminho que estava pensando porem como ajustar isso o 1º  da um erro no " for " o  em mais agradeço pela ajuda é bem esse caminho que preciso .

Editado por WStock

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
7 minutos atrás, WStock disse:

Seria mesmo esse o caminho que estava pensando porem como ajustar isso o 1º  da um erro no " for " o  em mais agradeço pela ajuda é bem esse caminho que preciso .

Não entendi a sua dúvida, poderia explicar melhor?

@Evanio, fiz algumas adaptações no seu exemplo (com todo o respeito, claro!) e cheguei a este aqui. Outra dúvida que me surgiu foi com relação ao ç, caracteres acentuados etc. Não sei qual o tipo de texto que vai ser digitado e não sei se seria necessário acrescentar esses caracteres ao vetor de letras.

-	script	InputNumb	-1,{

	setarray .@letters$[0],"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z";
	.@size = getarraysize(.@letters$);
	input .@input$;
	for(.@a = 0; .@a < .@size; .@a++){
		if (compare(.@input$,.@letters$[.@a])) {
			.@found = 1;
			break;
		}
	}
	if (.@found == 0) {
		mes "Muito bem, somente números!";
		close;
	}
	mes "Não são permitidas letras aqui.";
	close;
}

Att,
_Okuz_.

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
prontera,150,150,4	script	SOU-NOOB	4_F_ALCHE,{
	input (.@input$);
	.@regular_expression = (.@input$ ~= "([a-z])$");
	if (.@regular_expression) {
		mes "Ok o que digitou passou pela expressão regular";
	} else {
		mes "Você não pode digitar numeros ou qualquer caractere expecial.";
		mes "Só serão permitidas letras de A a Z não acentuadas e nada de número.";
	}
	close;
}

 

  • Amei 2

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0

Eita @Spell Master!

Achei que pra usar regex nos scripts era necessário utilizar o PCRE.

Que doidera bixo, você mudou minha vida kra!!!

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
10 horas atrás, Spell Master disse:

prontera,150,150,4	script	SOU-NOOB	4_F_ALCHE,{
	input (.@input$);
	.@regular_expression = (.@input$ ~= "([a-z])$");
	if (.@regular_expression) {
		mes "Ok o que digitou passou pela expressão regular";
	} else {
		mes "Você não pode digitar numeros ou qualquer caractere expecial.";
		mes "Só serão permitidas letras de A a Z não acentuadas e nada de número.";
	}
	close;
}

 

Também achei que não podia. 

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0

Agradeço a todos pela ajuda , acho que ja vai dar pra ajustar npc como eu quero . Muito Obrigado Spell vou usar dessa forma ai aos demais muito obrigado também reput a todos  

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
Aviso Automático
Tópico Fechado! Razão: Dúvida e/ou problema resolvido.

Se você não concorda com esta ação, vá até o Tribunal de Pequenas Causas.

Equipe Cronus Emulator.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  

Seja bem vindo ao Cronus-Emulator.
É sempre um prazer te-lo conosco.
Você pode visualizar nossas áreas de suporte para encontrar suas soluções sem a necessidade de se registrar!
Registrando em nossa comunidade, você poderá conhecer mais sobre nosso projeto, criar tópicos, responder tópicos existentes, baixar milhares de recursos em nosso sistema de downloads, participar de nossa comunidade, customizar seu perfil e muito mais... Se você já possui uma conta, faça seu login - ou crie uma conta. Também temos integração com Google+ e Facebook.

×