26.12.2014, 17:31
Hola JavAndroid,
No te recomiendo usar OnPlayerExitVehicle por lo siguiente:
Not called if the player falls off a bike or is removed from a vehicle by other means such as using SetPlayerPos.
You must use OnPlayerStateChange and check if their old state is PLAYER_STATE_DRIVER or PLAYER_STATE_PASSENGER.
Ese es el problema con OnPlayerExitVehicle
Yo preferirнa usar un timer que se llame cada 30 minutos y borre los autos que no estбn siendo utilizados, yo lo harнa de la siguiente forma:
Ocupa menos CPU/Memoria ya que solo requiere un temporizador y se llaman esas instrucciones cada 30 minutos para limpiar todo
Saludos
No te recomiendo usar OnPlayerExitVehicle por lo siguiente:
Not called if the player falls off a bike or is removed from a vehicle by other means such as using SetPlayerPos.
You must use OnPlayerStateChange and check if their old state is PLAYER_STATE_DRIVER or PLAYER_STATE_PASSENGER.
Ese es el problema con OnPlayerExitVehicle
Yo preferirнa usar un timer que se llame cada 30 minutos y borre los autos que no estбn siendo utilizados, yo lo harнa de la siguiente forma:
pawn Код:
#include <a_samp>
public OnGameModeInit()//Cuando el modo de juego se inicie
SetTimer("Borrar_Autos", 1800000, true);//Iniciar un temporizador que llamarб a la funciуn Borrar_Autos cada 30 minutos
forward Borrar_Autos();
public Borrar_Autos()//Funciуn borrar autos
{
new bool:vehicleused[MAX_VEHICLES char];//Vamos a crear un arreglo para ver si el vehнculo estб en uso o no
for(new i = 0; i<MAX_PLAYERS; i++)//Lo cambias si tienes foreach, loop para todos los jugadores
{
if(!IsPlayerConnected(i))//Si no esta conectado el jugador con el ID i
continue;//Saltar
if(IsPlayerInAnyVehicle(i))//Si el jugador estб en cualquier auto
vehicleused{GetPlayerVehicleID(i)} = true;//El vehнculo estб ocupado, asignar a la variable vehicleused true, el valor del нndice es el valor del ID de auto en el que esta el jugador
}//Fin del loop
for(new i=0; i<MAX_VEHICLES; i++)//Loop para todos los autos
{
if(!IsValidVehicle(i))//Si el vehнculo es invбlido, saltar (Nota: si da error con estб funciуn aсadir 'native IsValidVehicle(vehicleid);' al principio)
continue;//Saltar
if(!vehicleused{i})//Si no estб en uso el vehнculo,
DestroyVehicle(i);//Borrarlo
}//Fin del loop
}//Fin de la funciуn
Saludos