Problema GetVehiclePoolSize -
Unrea1 - 27.05.2015
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.
Re: Problema -
Unrea1 - 28.05.2015
Actualizo, disculpen, surgiу otro problema.
Re: Problema -
SickAttack - 28.05.2015
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.