Error con estos 2 comandos.
#1

Espero me puedan ayudar no son errores "complicados", al momento de dar admin a un jugador con el siguiente comando en el chat sale si le das admin 6 por ejemplo 2 veces sale como director y después programar cuando es programar dicho rango, entonces hay un error raro ahí...el comando es lo siguiente;

Код:
CMD:darstaff(playerid, params[])
{
    if(PermisoAbsoluto(playerid))
    {
        new string[120];
	    if(sscanf(params, "ui", params[0], params[1])) return SendSyntaxMessage(playerid, "/darstaff [ID] [Rango]");
		if(InformacionJugador_[params[0]][pAdministrador] >= params[1])
		{
		    format(string, sizeof(string), "Administración: %s le bajó el nivel administrativo a %s(Rango: %s).", GetPlayerNameEx(playerid), GetPlayerNameEx(params[0]), RangoStaff_(params[0]));
		    SendStaffMessage(string), InformacionJugador_[params[0]][pAdministrador] = params[1];
		}
		else if(InformacionJugador_[params[0]][pAdministrador] <= params[1])
		{
		    format(string, sizeof(string), "Administración: %s le asignó nivel administrativo a %s(Rango: %s).", GetPlayerNameEx(playerid), GetPlayerNameEx(params[0]), RangoStaff_(params[0]));
		    SendStaffMessage(string), InformacionJugador_[params[0]][pAdministrador] = params[1];
	    }
		new Query[80];
		mysql_format(MySQL, Query, sizeof Query, "UPDATE cuentas SET Admin = '%d' WHERE Usuario = '%e'", InformacionJugador_[params[0]][pAdministrador], GetPlayerNameEx(params[0]));
		mysql_tquery(MySQL, Query);
	}
	return 1;
}
Esta es la variable que dice el nombre del rango que tiene el jugador.

Код:
stock RangoStaff_(playerid)
{
	new Rango[18];
	if(InformacionJugador_[playerid][pAdministrador])
	{
		switch(InformacionJugador_[playerid][pAdministrador])
		{
			case 1: Rango = "Helper";
			case 2: Rango = "Moderador";
			case 3: Rango = "Moderador Global";
			case 4: Rango = "Administrador";
			case 5:	Rango = "Director";
			case 6:	Rango = "Programador";
		}
	}
	return Rango;
}
Y el otro pero no menos importante es que si vas a comprar un vehículo y ponés el comando dice que tienes los slot sin Premium ocupados cuando las variables del jugador de vehículos está en -1, así tengo esto ahí...

Код:
            if(InformacionJugador_[playerid][pPremium] == 0)
            {
				for(new l = 0; l != 4; l++)
				{
				    if(InformacionJugador_[playerid][pLlavesCoches][l] == 0){EspacioLibre = 1; break;}
				}
				if(EspacioLibre == 0){SendErrorMessage(playerid, "Ya tienes todas las llaves ocupadas siendo usuario Normal."); return 1;}
            }
            if(InformacionJugador_[playerid][pPremium] == 1)
            {
				for(new l = 0; l != 8; l++)
				{
				    if(InformacionJugador_[playerid][pLlavesCoches][l] == 0){EspacioLibre = 1; break;}
				}
				if(EspacioLibre == 0){SendErrorMessage(playerid, "Ya tienes todas las llaves ocupadas siendo usuario Premium."); return 1;}
            }
Espero me puedan ayudar.
Reply
#2

Reply
#3

No entiendo...
Reply
#4

Explicate por favor, apenas se entiende que quieres decir ..
Reply
#5

Creo que te entendн....

pawn Код:
CMD:darstaff(playerid, params[])
{
    if(PermisoAbsoluto(playerid))
    {
        new string[120];
        if(sscanf(params, "ui", params[0], params[1])) return SendSyntaxMessage(playerid, "/darstaff [ID] [Rango]");
        if(InformacionJugador_[params[0]][pAdministrador] >= params[1])
        {
            InformacionJugador_[params[0]][pAdministrador] = params[1];
            format(string, sizeof(string), "Administraciуn: %s le bajу el nivel administrativo a %s(Rango: %s).", GetPlayerNameEx(playerid), GetPlayerNameEx(params[0]), RangoStaff_(params[0]));
            SendStaffMessage(string), InformacionJugador_[params[0]][pAdministrador] = params[1];
        }
        else if(InformacionJugador_[params[0]][pAdministrador] <= params[1])
        {
            InformacionJugador_[params[0]][pAdministrador] = params[1];
            format(string, sizeof(string), "Administraciуn: %s le asignу nivel administrativo a %s(Rango: %s).", GetPlayerNameEx(playerid), GetPlayerNameEx(params[0]), RangoStaff_(params[0]));
            SendStaffMessage(string), InformacionJugador_[params[0]][pAdministrador] = params[1];
        }
        new Query[80];
        mysql_format(MySQL, Query, sizeof Query, "UPDATE cuentas SET Admin = '%d' WHERE Usuario = '%e'", InformacionJugador_[params[0]][pAdministrador], GetPlayerNameEx(params[0]));
        mysql_tquery(MySQL, Query);
    }
    return 1;
}

if(InformacionJugador_[playerid][pPremium] == 0)
            {
                for(new l = 0; l != 4; l++)
                {
                    if(InformacionJugador_[playerid][pLlavesCoches][l] == -1){EspacioLibre = 1; break;}
                }
                if(EspacioLibre == 0){SendErrorMessage(playerid, "Ya tienes todas las llaves ocupadas siendo usuario Normal."); return 1;}
            }
            if(InformacionJugador_[playerid][pPremium] == 1)
            {
                for(new l = 0; l != 8; l++)
                {
                    if(InformacionJugador_[playerid][pLlavesCoches][l] == -1){EspacioLibre = 1; break;}
                }
                if(EspacioLibre == 0){SendErrorMessage(playerid, "Ya tienes todas las llaves ocupadas siendo usuario Premium."); return 1;}
            }
El error en el comando es que no seteabas la variable de admin antes del mensaje.
Y en la funciуn tenнas puesto "== 0" cuando tendrнa que ser segъn tъ "== -1".

Prueba asн.
Reply
#6

Quote:
Originally Posted by Tirael
Посмотреть сообщение
Creo que te entendн....

pawn Код:
CMD:darstaff(playerid, params[])
{
    if(PermisoAbsoluto(playerid))
    {
        new string[120];
        if(sscanf(params, "ui", params[0], params[1])) return SendSyntaxMessage(playerid, "/darstaff [ID] [Rango]");
        if(InformacionJugador_[params[0]][pAdministrador] >= params[1])
        {
            InformacionJugador_[params[0]][pAdministrador] = params[1];
            format(string, sizeof(string), "Administraciуn: %s le bajу el nivel administrativo a %s(Rango: %s).", GetPlayerNameEx(playerid), GetPlayerNameEx(params[0]), RangoStaff_(params[0]));
            SendStaffMessage(string), InformacionJugador_[params[0]][pAdministrador] = params[1];
        }
        else if(InformacionJugador_[params[0]][pAdministrador] <= params[1])
        {
            InformacionJugador_[params[0]][pAdministrador] = params[1];
            format(string, sizeof(string), "Administraciуn: %s le asignу nivel administrativo a %s(Rango: %s).", GetPlayerNameEx(playerid), GetPlayerNameEx(params[0]), RangoStaff_(params[0]));
            SendStaffMessage(string), InformacionJugador_[params[0]][pAdministrador] = params[1];
        }
        new Query[80];
        mysql_format(MySQL, Query, sizeof Query, "UPDATE cuentas SET Admin = '%d' WHERE Usuario = '%e'", InformacionJugador_[params[0]][pAdministrador], GetPlayerNameEx(params[0]));
        mysql_tquery(MySQL, Query);
    }
    return 1;
}

if(InformacionJugador_[playerid][pPremium] == 0)
            {
                for(new l = 0; l != 4; l++)
                {
                    if(InformacionJugador_[playerid][pLlavesCoches][l] == -1){EspacioLibre = 1; break;}
                }
                if(EspacioLibre == 0){SendErrorMessage(playerid, "Ya tienes todas las llaves ocupadas siendo usuario Normal."); return 1;}
            }
            if(InformacionJugador_[playerid][pPremium] == 1)
            {
                for(new l = 0; l != 8; l++)
                {
                    if(InformacionJugador_[playerid][pLlavesCoches][l] == -1){EspacioLibre = 1; break;}
                }
                if(EspacioLibre == 0){SendErrorMessage(playerid, "Ya tienes todas las llaves ocupadas siendo usuario Premium."); return 1;}
            }
El error en el comando es que no seteabas la variable de admin antes del mensaje.
Y en la funciуn tenнas puesto "== 0" cuando tendrнa que ser segъn tъ "== -1".

Prueba asн.
Gracias, +REP si es que puedo por que creo que ya te he dado antes.
Reply
#7

Quote:
Originally Posted by Fagrinht
Посмотреть сообщение
Gracias, +REP si es que puedo por que creo que ya te he dado antes.
De nada.
Reply
#8

Quote:
Originally Posted by Tirael
Посмотреть сообщение
De nada.
No entiendo algo, pongo el comando para comprar el vehículo y dice que no existe entonces puse unos print y cuando pasa el bucle que había dejado en el post

Код:
				for(new l = -1; l != 4; l++)
				{
				    if(InformacionJugador_[playerid][pLlavesCoches][l] == 0){EspacioLibre = 1; break;}
				}
				if(EspacioLibre == 0){SendErrorMessage(playerid, "Ya tienes todas las llaves ocupadas siendo usuario Normal."); return 1;}
            }
            if(InformacionJugador_[playerid][pPremium] == 1)
            {
				for(new l = -1; l != 8; l++)
				{
				    if(InformacionJugador_[playerid][pLlavesCoches][l] == 0){EspacioLibre = 1; break;}
				}
				if(EspacioLibre == 0){SendErrorMessage(playerid, "Ya tienes todas las llaves ocupadas siendo usuario Premium."); return 1;}
            }
para de fucnionar el comando no pasa de ahí, entonces ahí está un error...por qué?
Reply
#9

Cambia:

pawn Код:
for(new l = -1; l != 4; l++)
por:


pawn Код:
for(new l = 0; l != 4; l++)
Y


pawn Код:
for(new l = -1; l != 8; l++)
por:


pawn Код:
for(new l = 0; l != 8; l++)
Si no se soluciona deja el comando completo.

Intenta explicarte mejor por que cuesta entenderte.
Reply
#10

Quote:
Originally Posted by Tirael
Посмотреть сообщение
Cambia:

pawn Код:
for(new l = -1; l != 4; l++)
por:


pawn Код:
for(new l = 0; l != 4; l++)
Y


pawn Код:
for(new l = -1; l != 8; l++)
por:


pawn Код:
for(new l = 0; l != 8; l++)
Si no se soluciona deja el comando completo.

Intenta explicarte mejor por que cuesta entenderte.
Así como acabas de decir al momento de usar el comando dice que tengo todas las llaves de usuario normal ocupada, mira el comando completo y entenderás, no lo quería poner por lo largo.

Код:
CMD:comprar(playerid, params[])
{
	print("1");
	if(strfind(params[0], "vehiculo", true) != -1)
	{
	print("2");
        if(IsPlayerInAnyVehicle(playerid))
        {
        print("3");
            new EspacioLibre, VehiculoID = GetPlayerVehicleID(playerid);
	        if(InformacionVehiculo_[VehiculoID][vEstado] == 0) return SendErrorMessage(playerid, "Este vehículo no está a la venta.");
            if(GetPlayerCash(playerid) < InformacionVehiculo_[playerid][vPrecio]) return SendErrorMessage(playerid, "No tienes el dinero necesario para comprar este vehículo.");
            if(InformacionJugador_[playerid][pPremium] == 0)
            {
            print("4");
                for(new l = 0; l != 4; l++)
				{
				    if(InformacionJugador_[playerid][pLlavesCoches][l] == 0){EspacioLibre = 1; break;}
				}
				if(EspacioLibre == 0){SendErrorMessage(playerid, "Ya tienes todas las llaves ocupadas siendo usuario Normal."); return 1;}
            }
            if(InformacionJugador_[playerid][pPremium] == 1)
            {
				for(new l = 0; l != 8; l++)
				{
				    if(InformacionJugador_[playerid][pLlavesCoches][l] == 0){EspacioLibre = 1; break;}
				}
				if(EspacioLibre == 0){SendErrorMessage(playerid, "Ya tienes todas las llaves ocupadas siendo usuario Premium."); return 1;}
            }
            print("5");
			if(InformacionVehiculo_[VehiculoID][vTipo] == 1 && InformacionJugador_[playerid][pPremium] == 0) return SendClientMessage(playerid, COLOR_GRIS_3, "* Info: No tienes membresía Premium para comprar este vehículo.");
            ++TotalVehiculos;
            InformacionVehiculo_[VehiculoID][vCantidad]--;
			InformacionVehiculo_[TotalVehiculos][vModelo] = InformacionVehiculo_[VehiculoID][vModelo];
			InformacionVehiculo_[TotalVehiculos][vColor][0] = 1;
			InformacionVehiculo_[TotalVehiculos][vColor][1] = 1;
			InformacionVehiculo_[TotalVehiculos][vMotor] = 0;
			InformacionVehiculo_[TotalVehiculos][vAveriado] = 0;
			InformacionVehiculo_[TotalVehiculos][vBateria][0] = 100;
			InformacionVehiculo_[TotalVehiculos][vBateria][1] = 0;
			InformacionVehiculo_[TotalVehiculos][vFreno] = 0;
			InformacionVehiculo_[TotalVehiculos][vPrecio] = InformacionVehiculo_[VehiculoID][vPrecio];
			InformacionVehiculo_[TotalVehiculos][vInterior] = GetPlayerInterior(playerid);
			InformacionVehiculo_[TotalVehiculos][vVirtualWorld] = GetPlayerVirtualWorld(playerid);
			InformacionVehiculo_[TotalVehiculos][vSpawn][0] = InformacionVehiculo_[VehiculoID][vSpawn][0];
			InformacionVehiculo_[TotalVehiculos][vSpawn][1] = InformacionVehiculo_[VehiculoID][vSpawn][1];
			InformacionVehiculo_[TotalVehiculos][vSpawn][2] = InformacionVehiculo_[VehiculoID][vSpawn][2];
			InformacionVehiculo_[TotalVehiculos][vSAngle] = InformacionVehiculo_[VehiculoID][vSAngle];
			InformacionVehiculo_[TotalVehiculos][vSpawn][0] = -1;
			InformacionVehiculo_[TotalVehiculos][vSpawn][1] = -1;
			InformacionVehiculo_[TotalVehiculos][vSpawn][2] = -1;
			InformacionVehiculo_[TotalVehiculos][vSAngle] = -1;
			InformacionVehiculo_[TotalVehiculos][vEstado] = 0;
			InformacionVehiculo_[TotalVehiculos][vKilometros] = 0;
			InformacionVehiculo_[TotalVehiculos][vTipo] = InformacionVehiculo_[VehiculoID][vTipo];
			InformacionVehiculo_[TotalVehiculos][vCantidad] = -1;
			InformacionVehiculo_[TotalVehiculos][vSQLID] = TotalVehiculos;
		    for(new l; l != 8; l++)
			{
				if(InformacionJugador_[playerid][pLlavesCoches][l] == 0)
				{
					InformacionJugador_[playerid][pLlavesCoches][l] = InformacionVehiculo_[TotalVehiculos][vSQLID];
					break;
				}
			}
			ObtenerMatricula(TotalVehiculos);
            format(InformacionVehiculo_[TotalVehiculos][vPropietario], 25, "%s", GetPlayerNameEx(playerid));
			new Query[200];
			mysql_format(MySQL, Query, sizeof Query, "INSERT INTO vehiculos (vSQLID, vPosX, vPosY, vPosZ, vMatricula, vPropietario) VALUES ('%d', '%f', '%f', '%f', '%e', '%e')", InformacionVehiculo_[TotalVehiculos][vSQLID], InformacionVehiculo_[TotalVehiculos][vSpawn][0],
			InformacionVehiculo_[TotalVehiculos][vSpawn][1], InformacionVehiculo_[TotalVehiculos][vSpawn][2], InformacionVehiculo_[TotalVehiculos][vMatricula], InformacionVehiculo_[TotalVehiculos][vPropietario]);
			mysql_tquery(MySQL, Query);
			new CrearVehiculo;
			CrearVehiculo = CreateVehicle(InformacionVehiculo_[TotalVehiculos][vModelo], InformacionVehiculo_[TotalVehiculos][vSpawn][0], InformacionVehiculo_[TotalVehiculos][vSpawn][1], InformacionVehiculo_[TotalVehiculos][vSpawn][2], InformacionVehiculo_[TotalVehiculos][vSAngle],
			InformacionVehiculo_[TotalVehiculos][vColor][0], InformacionVehiculo_[TotalVehiculos][vColor][1], 600000);
            LinkVehicleToInterior(CrearVehiculo, InformacionVehiculo_[TotalVehiculos][vInterior]), SetVehicleVirtualWorld(CrearVehiculo, InformacionVehiculo_[TotalVehiculos][vVirtualWorld]);
	        SetVehicleNumberPlate(CrearVehiculo, InformacionVehiculo_[TotalVehiculos][vMatricula]);
			GetVehicleParamsEx(CrearVehiculo, engine, lights, alarm, doors, bonnet, boot, objective);
			SetVehicleParamsEx(CrearVehiculo, VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, alarm, doors, bonnet, boot, objective), SetVehicleHealthEx(CrearVehiculo, 1000);
			PutPlayerInVehicle(playerid, CrearVehiculo, 0), QuitarDineroPlayer_(playerid, InformacionVehiculo_[TotalVehiculos][vPrecio]);
			new string[100];
			SendClientMessage(playerid, COLOR_BLANCO, "-------------------------------------------------------------------------------------------------------------------");
            SendClientMessage(playerid, COLOR_GRIS_2, "* ¡Felicidades!"#CBLANCO" compraste un vehículo, para obtener más información usa el comando "#CAMARILLO"/ayuda.");
			if(InformacionVehiculo_[TotalVehiculos][vTipo] == 0)
			{
				format(string, sizeof(string), "* El vehículo tiene la patente "#CAZUL"%s"#CBLANCO" y tiene un encendido "#CROJO_2"*Malo*.", InformacionVehiculo_[TotalVehiculos][vMatricula]);
				SendClientMessage(playerid, COLOR_BLANCO, string);
				InformacionVehiculo_[TotalVehiculos][vTipo] = 0;
            }
			if(InformacionVehiculo_[TotalVehiculos][vTipo] == 1)
			{
				format(string, sizeof(string), "* El vehículo tiene la patente "#CAZUL"%s"#CBLANCO" y tiene un encendido "#CVERDE_CLARO"Excelente.", InformacionVehiculo_[TotalVehiculos][vMatricula]);
				SendClientMessage(playerid, COLOR_BLANCO, string);
				InformacionVehiculo_[TotalVehiculos][vTipo] = 3;
            }
            SendClientMessage(playerid, COLOR_BLANCO, "* El vehículo viene por defecto con una "#CCELESTE"Batería Cyclon 6V"#CBLANCO" de calidad "#CROJO"*Baja*.");
			SendClientMessage(playerid, COLOR_ROJO_2, "* Importante: ¡No dejes tu vehículo mal estacionado o podrá ser llevado al deposito!");
			SendClientMessage(playerid, COLOR_BLANCO, "-------------------------------------------------------------------------------------------------------------------");
            ActualizarVehiculo(TotalVehiculos), ActualizarTextoAuto(VehiculoID), ActualizarJugador(playerid);
	    }
    }
	return 1;
}
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)