Problema
#1

Hola,
Tengo el siguiente problema, actualicй todos los loops por la nueva funciуn 0.3.7 (GetVehiclePoolSize) y resulta que se bugea todas las idґs de los autos. Por ejemplo:

Код:
CMD:traerveh(playerid, params[])
{
	if(PlayerInfo[playerid][jAdminXLEP] == 0) return SendClientMessage(playerid, COLOR_GRAD, "Necesitas ser administrador para usar este comando.");
    if(sscanf(params, "d", params[0])) return SendClientMessage(playerid, COLOR_GRAD, "Modo de uso: /traerveh [ID]");
    for(new v = 1, j = GetVehiclePoolSize(); v <= j; v++)
    {
		if(params[0] != v) return SendClientMessage(playerid, COLOR_GRAD, "ID de auto invбlido.");
		new Float:plocx,Float:plocy,Float:plocz, plo;
		plo = params[0];
		GetPlayerPos(playerid, plocx, plocy, plocz); SetVehiclePos(plo,plocx,plocy+4, plocz);
		SendClientMessage(playerid,COLOR_VERDE,"Has traido el coche seleccionado.");
	}
    return 1;
}
Coloco /traerveh 1, trae el coche correctamente pero salta el error " ID de auto invбlido ", consecuentemente colo de 2 en adelante y salta error, lo extraсo es que la forma de loop vieja tampoco funciona al actualizar el servidor a 0.3.7.

Йste stock:

Код:
stock GetFreeVehicleSlot()
{
    for(new i = 1; i < MAX_VEHICLES; i++)
    {
        if(!IDCars[i]) return i;
    }
    return -1;
}
Si coloco el loop de forma vieja funciona correctamente, pero si coloco GetVehiclePoolSize salta error. їAlguien me puede explicar quй carajos pasa?, gracias.
Reply
#2

Actualizo, disculpen, surgiу otro problema.
Reply
#3

No es necesario hacer un ciclo, ya que el id del vehнculo ya lo conoces.
pawn Код:
#include <a_samp>

native IsValidVehicle(vehicleid);

CMD:traerveh(playerid, params[])
{
    new vehicleid, pool = GetVehiclePoolSize();
    if(PlayerInfo[playerid][jAdminXLEP] == 0) return SendClientMessage(playerid, COLOR_GRAD, "Necesitas ser administrador para usar este comando.");
    if(sscanf(params, "i", vehicleid)) return SendClientMessage(playerid, COLOR_GRAD, "Modo de uso: /traerveh [ID]");
    if(vehicleid < 1 || vehicleid > pool) return SendClientMessage(playerid, COLOR_GRAD, "El vehiculo con ese id no existe.");
    if(!IsValidVehicle(vehicleid)) return SendClientMessage(playerid, COLOR_GRAD, "El vehiculo con ese id es invalido.");

    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    SetVehiclePos(vehicleid, x, y + 4, z);
    SendClientMessage(playerid, COLOR_VERDE, "Has traido el coche seleccionado.");
    return 1;
}
https://sampwiki.blast.hk/wiki/IsValidVehicle

Y no utilices params[0] (por ejemplo) como un NUMERO, porque es un dato tipo CARACTER.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)