SA-MP Forums Archive
Respawn de carros - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: Respawn de carros (/showthread.php?tid=643071)



Respawn de carros - Diego54 - 12.10.2017

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:

Quote:

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;
}




Re: Respawn de carros - Gguiz - 12.10.2017

Quote:
Originally Posted by Diego54
Посмотреть сообщение
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:
Tente por isso:

PHP код:
CMD:resetarcarros(playerid)  //no lugar de ser um public, coloquei em um comando.
{
    for(new 
iMAX_VEHICLESi++)
    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;

Obs: nгo compilei, caso der algum erro mande aqui.


Re: Respawn de carros - Gguiz - 12.10.2017

Quote:
Originally Posted by Cycle
Посмотреть сообщение
A Funзгo "IsVehicleInUse" nгo й nativamente do SAMP, entгo desenvolveram ela.
PHP код:
stock IsVehicleInUse(vehicleid)
{
    for(new 
i!= MAX_PLAYERSi++)
    {
        if(
GetPlayerVehicleID(i) == vehicleid)
        {
            return 
i;
        }
    }
    return 
INVALID_PLAYER_ID;

Obrigado pela observaзгo.

@Edit O tуpico foi editado, coloquei o comando em zcmd.


Re: Respawn de carros - Whoo - 12.10.2017

Sempre que utilizar Loop deve-se verificar se o id й vбlido isso muito das vezes causa crash.

PHP код:
// Verificando se o veiculo esta ocupado. 
VehiculoOcupado(vehicleid
{
    
// Loop para pegar os ids dos players online.
    
for(new 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;

PHP код:
// Utilizando
for(new aMAX_VEHICLES; ++a)
{    
    
// Se o veiculo ou trailer for invalido.
    
if(== INVALID_VEHICLE_ID) continue; 
    
// Se o veiculo ou trailer nгo estiver ocupado.
    
if(!VeiculoOcupado(a)) SetVehicleToRespawn(a);