Fallo en comando ZCMD
#1

Bueno, he estado modificando mi GM de 0 y llevo ya un par de dias con un bug en el comando /cambiarfacc (equivaldria al /hacerlider pero en vez de hacer al otro jugador lider de X faccion, solo lo mete como miembro)

El comando es el siguiente:

Код:
CMD:cambiarfacc(playerid, params[])
{
    if(Informacion[playerid][Admin] <= 4) return SendClientMessage(playerid, Rojo, " No estбs autorizado ");
	if(!sscanf(params, "ud", params[0], params[1]))
	{
	    if(params[1] < 6 || params[1] > 0)
	    {
			new string[128];
			new Fac[60];
			new para1;
			params[0] = para1;
			if(params[1] == 1) { Informacion[para1][Rango] = 1; Fac = "Estados Unidos - EEUU";}
			else if(params[1] == 2) { Informacion[para1][Rango] = 1; Fac = "Union de Republicas Socialistas Sovieticas - URSS";}
			else if(params[1] == 3) { Informacion[para1][Rango] = 1; Fac = "Imperio Chino - IICC";}
			else if(params[1] == 4) { Informacion[para1][Rango] = 1;  Fac = "Union CoreoJaponesa - UCJ";}
			else if(params[1] == 5) { Informacion[para1][Rango] = 1; Fac = "Union Europea - EU";}
			Informacion[params[0]][Faccion] = params[1];
	 		format(string, sizeof(string), "Atencion: Le has hecho Miembro a %s de la Faccion: %d", params[0], params[1]);
			SendClientMessage(playerid, Blanco, string);
			ActualCuenta(playerid);
		}
	} else SendClientMessage(playerid, Blanco, "Uso: /cambiarfacc [ID] [Faccion(1-5)].");
	return 1;
}
El comando no me da error ni warnings cuando compilo, sin embargo, al entrar al server si pongo solo /cambiarfacc me sale lo que tendria que salir (Uso: /cambiarfacc [ID] [Faccion(1-5)]) pero si escribo /cambiarfacc 0 у /cambiarfacc 0 2 me sale el mensaje Atencion: Le has hecho miembro a Fulano de la faccion: 32. Y ponga la faccion que ponga siempre dice que lo he hecho miembro de la faccion 32, incluso diciendole una faccion mayor a las que tengo permitidas.

Si alguno no entiende que me lo diga e intentarй explicarlo mejor. el resto por favor ayudarme, no tengo ni zorra idea de como solucionarlo, ya he probado de todo, escribiendolo en OnPlayerCommandReceived (copiando el /hacerlider de Ciudad Metropolis), simplificandolo sin los condicionantes que ponen el rango y todo eso...
Reply
#2

Ya pasу un dнa.

Al menos decid los que entiendan de ZCMD si el comando esta bien, porque pensando que esta mal me estoy rompiendo el coco. Asi, si estuviera bien, sabria que es por otra cosa y solo tendria que cambiar el gm entero xD
Reply
#3

Probalo, deberia funcionar bien.
pawn Код:
CMD:cambiarfacc(playerid, params[])
{
    if(Informacion[playerid][Admin] <= 4) return SendClientMessage(playerid, Rojo, " No estбs autorizado ");
    if(!sscanf(params, "ud",params[0],params[1]))
    {
        //if(params[1] < 6 || params[1] > 0)
        if(params[1] < 6 && params[1] > 0)
        {
            new string[128];
            new Fac[60];
            //new para1;
            //params[0] = para1; // y esto que es???

            if     (params[1] == 1) {   Informacion[params[0]][Rango] = 1; Fac = "Estados Unidos - EEUU";}
            else if(params[1] == 2) {   Informacion[params[0]][Rango] = 1; Fac = "Union de Republicas Socialistas Sovieticas - URSS";}
            else if(params[1] == 3) {   Informacion[params[0]][Rango] = 1; Fac = "Imperio Chino - IICC";}
            else if(params[1] == 4) {   Informacion[params[0]][Rango] = 1; Fac = "Union CoreoJaponesa - UCJ";}
            else if(params[1] == 5) {   Informacion[params[0]][Rango] = 1; Fac = "Union Europea - EU";}
            Informacion[params[0]][Faccion] = params[1];
           
            //format(string, sizeof(string), "Atencion: Le has hecho Miembro a %s de la Faccion: %d", params[0], params[1]);
            new nombre_[MAX_PLAYER_NAME];
            GetPlayerName(params[0],nombre_,sizeof(nombre_));
            format(string, sizeof(string), "Atencion: Le has hecho Miembro a %s de la Faccion: %d", nombre_, params[1]);
            SendClientMessage(playerid, Blanco, string);
            ActualCuenta(playerid);
        } else {

            SendClientMessage(playerid, Blanco, "La faccion debe estar entre 1 y 5");
        }
    } else SendClientMessage(playerid, Blanco, "Uso: /cambiarfacc [ID] [Faccion(1-5)].");
    return 1;
}
Reply
#4

No entiendo porque no funciona, me sale siempre lo de la faccion debe estar entre 1 y 5
Reply
#5

tenйs que usar el comando de esta forma /cambiarfacc 0 3 donde 0 es el id del jugador y 3 el id de la faccion, lo que comentй en el cуdigo es lo que vos tenias mal.
Reply
#6

xD por lo visto el fallo no estaba en el comando sino en el GM. Por algun sistema estaba bugeado. Todo a la m**** y a empezar de nuevo. Gracias igualmente por ayudarme, de paso he mejorado un poco mi capacidad de entender ZCMD y Sscanf

Saludos
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)