Ayuda con este comando
#1

Hola, necesito orientaciуn con este comando, pues, ya me tiene rato funcionando mal.

Tengo un sistema de pandillas que hacen guerras y todo lo demбs, no es mio, pero lo uso y tambiйn tengo el nombre del creador en los creditos del servidor. bueno llegando al tema... es que hay un sub comando que se supone sirve para cambiar el lider de la banda. Lo que ocurre es que no funciona a menos que lo deje en inglйs. Mi servidor es en espaсol, totalmente en espaсol, y con lo de funcionar originalmente es setleader (id) pero yo lo cambio por lider (id) y me manda el mensaje de que los parametros no estan bien puestos.

Este es el subcomando:

PHP код:
else if (!strcmp (params"lider"true)
{
if (!
strlen(params[10] ) || !IsNumeric(params[10]))
return 
SendClientMessage(playerid"Error: El uso correcto es /banda lider (id)");

Si cambio lider por setleader y obviamente el 5 por un 9 funciona bien lo demas, pero si lo tengo asi me manda el mensaje de ahi, їQue pasa?

edito: me falto decir que no hay relaciуn con "setleader" en el resto del comando que pueda interferir.
Reply
#2

else if (!strcmp (params, "lider", true, 5 )
{
if (!strlen(params[5] ) || !IsNumeric(params[10]))
return SendClientMessage(playerid, "Error: El uso correcto es /banda lider (id)");
}

Probalo asi, sino subi el 5 a 6
Reply
#3

Quote:
Originally Posted by iimma
Посмотреть сообщение
else if (!strcmp (params, "lider", true, 5 )
{
if (!strlen(params[5] ) || !IsNumeric(params[10]))
return SendClientMessage(playerid, "Error: El uso correcto es /banda lider (id)");
}

Probalo asi, sino subi el 5 a 6
Gracias por responder, no funciono ni con 5 ni con 6
Reply
#4

Y si en vez de poner 10 pones 12?
Reply
#5

pawn Код:
else if (!strcmp(params, "lider", true))
{
if (!strlen(params[10] ) || !IsNumeric(params[10])) return SendClientMessage(playerid, "Error: El uso correcto es /banda lider (id)");
}
Reply
#6

Nose porque le asignan un indice a params, utiliza sscanf si vas a tener varios argumentos. Y utiliza isnull envez de strlen.

Ejemplo:
pawn Код:
#undef isnull
#define isnull(%1) ((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))

new option[128], lookupid;
if(sscanf(params, "s[128]i", option, lookupid)) return SendClientMessage(playerid, -1, "Error: El uso correcto es /banda lider (id)");
if(isnull(option)) return SendClientMessage(playerid, -1, "Error: No ingresastes una opcion!");
if(strcmp(option, "lider", true) == 0)
{
    // La opcion ingresada esta en la variable "option" y el id del jugador esta en la variable "lookupid".
}
else return SendClientMessage(playerid, -1, "Error: Opcion invalida!");
Reply
#7

Quote:
Originally Posted by Malganys
Посмотреть сообщение
pawn Код:
else if (!strcmp(params, "lider", true))
{
if (!strlen(params[10] ) || !IsNumeric(params[10])) return SendClientMessage(playerid, "Error: El uso correcto es /banda lider (id)");
}
їQuй cambiу ahн?

Quote:
Originally Posted by SickAttack
Посмотреть сообщение
Nose porque le asignan un indice a params, utiliza sscanf si vas a tener varios argumentos. Y utiliza isnull envez de strlen.

Ejemplo:
pawn Код:
#undef isnull
#define isnull(%1) ((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))

new option[128], lookupid;
if(sscanf(params, "s[128]i", option, lookupid)) return SendClientMessage(playerid, -1, "Error: El uso correcto es /banda lider (id)");
if(isnull(option)) return SendClientMessage(playerid, -1, "Error: No ingresastes una opcion!");
if(strcmp(option, "lider", true) == 0)
{
    // La opcion ingresada esta en la variable "option" y el id del jugador esta en la variable "lookupid".
}
else return SendClientMessage(playerid, -1, "Error: Opcion invalida!");
Agradezco tu respuesta y valoro el tiempo que gastaste en ella pero no me gustarнa cambiar el cуdigo de como lo hizo su autor, con "setleader" en lugar de "lider" funciona, por eso no creo que deba alterar tanto asн
Reply
#8

Quote:
Originally Posted by Guss
Посмотреть сообщение
Agradezco tu respuesta y valoro el tiempo que gastaste en ella pero no me gustarнa cambiar el cуdigo de como lo hizo su autor, con "setleader" en lugar de "lider" funciona, por eso no creo que deba alterar tanto asн
Lo que pasa es que estas usando una variable de tipo CARACTER como NUMERO en lo que sigue, supongo. Bueno, si quieres, nomas cambia ese comando y dejas lo demas asi como esta.

Al fin, mejor publica todo el comando para ver que es lo que pasa si no lo quieres modificar.
Reply
#9

Usa el sentido comъn, si antes era 9 y ahora le pones 5, pues en esta parte ya no es 10
Код:
if(strlen(params[10] ) || !IsNumeric(params[10]))
Reply
#10

Ya lo arreglй gracias a todos por responder
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)