Detectar el nickname si tiene corchetes
#1

Buenas, tengo un sistema de que si tiene nick en el corchete este le pedirб que se lo cambie por uno sin corchetes, esto lo hago por el sistema de clanes que pone el tag al entrar a un clan.

Lo que quiero es saber si es posible detectar corchetes que tienen desde 3 a 5 cifras dentro del corchete, їcуmo se harнa? un ejemplo [CLAN]Danny y este lo detecte y le pida el cambio de nick, Y si es D[A]nnY que lo permita y no le haga nada, їalguna idea?
Reply
#2

Mira йste script:

https://sampforum.blast.hk/showthread.php?tid=309062

Aсade los carбcteres que no quieras permitir y una vez el usuario se conecte, si pertenece al clan cбmbiale el nombre y aсade el tag. Es menos complicado a mi parecer.
Reply
#3

Quote:
Originally Posted by HidroDF
Посмотреть сообщение
Mira йste script:

https://sampforum.blast.hk/showthread.php?tid=309062

Aсade los carбcteres que no quieras permitir y una vez el usuario se conecte, si pertenece al clan cбmbiale el nombre y aсade el tag. Es menos complicado a mi parecer.
parece que no me entendiste, no es lo que busco :C
Reply
#4

Код:
	new name[24] = "[ASDF]Ejemplo";
	if(name[0] == '[')
	{
		new pos = strfind(name, "]", true);
		if(pos != -1) strdel(name, 0, pos + 1); // aqui podrias dar el kick o quitarle el tag para cambiarle el nombre
	}
	print(name);
Reply
#5

Quote:
Originally Posted by adri1
Посмотреть сообщение
Код:
	new name[24] = "[ASDF]Ejemplo";
	if(name[0] == '[')
	{
		new pos = strfind(name, "]", true);
		if(pos != -1) strdel(name, 0, pos + 1); // aqui podrias dar el kick o quitarle el tag para cambiarle el nombre
	}
	print(name);
No funciona, detecta si tiene corchetes en cualquier parte, yo lo que quiero que detecte los [CLAN] y no los Dan[N]Y por poner un ejemplo.
Reply
#6

PHP код:
new tags_pemitidos[5] = "ASD";
new 
name[24] = "[ASD]pene";
print(
name);
// buscamos la ubicacion de los corchetes
new caract_start;
new 
caract_end;
for(new 
x=0x<24x++)
{
    if(
name[x] == '['caract_start x;
    if(
name[x] == ']'caract_end x;
}
printf("start:%d & end:%d"caract_startcaract_end);
// extraemos el nombre entre lso corchetes
new extract[24];
strmid(extractnamecaract_start 1caract_end);
print(
extract);
// buscamos el tag
if(strfind(extracttags_pemitidostrue) != -1)// tag encontrado
{
    
strdel(namecaract_startcaract_end 1);// tag eliminado
    
format(name,24,"%s",name);// nombre establecido sin tag
    
print(name);

Reply
#7

Код:
#define MIN 3
#define MAX 5
stock DetectNameTag(const name[])
{
	new p1 = strfind(name, "[", true);
	if(p1 != -1)
	{
		new p2 = strfind(name, "]", true);
		if(p2 != -1)
		{
			if(MIN <= ((p2 - p1)- 1) <= MAX) return true;
		}
	}
	return false;
}
Si tiene de 3 a 5 caracteres dentro del tag retornarб true, de lo contrario false
Reply
#8

Quote:
Originally Posted by aoEXE
Посмотреть сообщение
Код:
#define MIN 3
#define MAX 5
stock DetectNameTag(const name[])
{
	new p1 = strfind(name, "[", true);
	if(p1 != -1)
	{
		new p2 = strfind(name, "]", true);
		if(p2 != -1)
		{
			if(MIN <= ((p2 - p1)- 1) <= MAX) return true;
		}
	}
	return false;
}
Si tiene de 3 a 5 caracteres dentro del tag retornarб true, de lo contrario false
Perfecto gracias, es justo lo que quiero :3
Otacon igual valdrнa pero tiene una falla y tiene variables xD
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)