|
public respawncarros(vehicleid){ for(new v = 0; v < MAX_VEHICLES; v++){ for(new i = 0;i < MAX_PLAYERS; i++){ if(!IsTrailerAttachedToVehicle(GetPlayerVehicleID( i))){ if(!IsPlayerInVehicle(i,v)){ SetVehicleToRespawn(v); } } } } return 1; } |
|
Bom, eu estava fazendo um comando para respawnar todos os veнculos nгo usados no servidor, inclusive os trailers, mas ai que entra o problema, eu nгo sei como checar os trailers em uso no servidor, alguйm poderia me ajudar?
Eu fiz da seguinde forma, e nгo deu certo: |
CMD:resetarcarros(playerid) //no lugar de ser um public, coloquei em um comando.
{
for(new i; i < MAX_VEHICLES; i++)
if(!IsVehicleInUse(i))
SetVehicleToRespawn(i);
SendClientMessage(playerid, -1, "Todos os carros sem uso foram resetados"); //Mensagem que irб aparecer assim que utilizar o cmd
return true;
}
|
A Funзгo "IsVehicleInUse" nгo й nativamente do SAMP, entгo desenvolveram ela.
PHP код:
|
// Verificando se o veiculo esta ocupado.
VehiculoOcupado(vehicleid)
{
// Loop para pegar os ids dos players online.
for(new a; a <= GetPlayerPoolSize(); ++a)
{
// verificando se o player esta conectado e se esta em um veiculo.
if(IsPlayerConnected(a) && IsPlayerInAnyVehicle(a)){
// verificando se o id do trailer que esta no veiculo do playerid й igual a vehicleid.
if(GetVehicleTrailer(GetPlayerVehicleID(a) == vehicleid)) return true;
// verificando se o id do veiculo em que ele esta й igual a vehicleid.
if(GetPlayerVehicleID(a) == vehicleid) return true;
}
}
// caso nenhum player esteja no veiculo id.
return false;
}
// Utilizando
for(new a; a < MAX_VEHICLES; ++a)
{
// Se o veiculo ou trailer for invalido.
if(a == INVALID_VEHICLE_ID) continue;
// Se o veiculo ou trailer nгo estiver ocupado.
if(!VeiculoOcupado(a)) SetVehicleToRespawn(a);
}