SA-MP Forums Archive
[Ajuda] Ao criar um veiculo, deletar o ultimo criado. - 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: [Ajuda] Ao criar um veiculo, deletar o ultimo criado. (/showthread.php?tid=664560)



Ao criar um veiculo, deletar o ultimo criado. - yAndrey - 04.03.2019

Bom, tenho este comando que uso para spawnar os veiculos:

PHP код:
CMD:vs(playeridparams[])
{
    new 
carName[100];
    if(
sscanf(params"s[100]"carName)) return SendClientMessage(playerid0xa9c4e4ff"{1fd80a}[USE]: {e00808}/VS {1fd80a}[NOME DO VEICULO]");
    else if(
ReturnVehicleID(carName) == INVALID_VEHICLE_ID) return SendClientMessage(playerid0xa9c4e4ff"{fc0a0a}[ERRO]: Veiculo nao encontrado, tente novamente!");
}
        new 
Float:pPos[4], vid;
        
GetPlayerPos(playeridpPos[0], pPos[1], pPos[2]);
        
GetPlayerFacingAngle(playeridpPos[3]);
        
vid CreateVehicle(ReturnVehicleID(carName), pPos[0], pPos[1], pPos[2] + 1.00pPos[3], 0160);
        
PutPlayerInVehicle(playeridvid0);
    }
    return 
1;

Queria saber como faзo para quando um player digitar o comando e jб tiver um veiculo, criar o novo veiculo e deletar o antigos.

Obrigado desde jб.


Re: Ao criar um veiculo, deletar o ultimo criado. - Cycle - 04.03.2019

Rapaz, eu estou longe de pawn, mas acredito que isto possa ajudar vocк. Abaixo estб uma base.
Lembrando: Nгo testei nada.

Tente isso como base:
PHP код:
new
    
bool:playerVehicle[MAX_PLAYERS char],
    
vehicleID_[MAX_PLAYERS]
;

COMMAND:vh(playeridparams[])
{
    new 
vehicleID;
    if(!
sscanf(params"d"vehicleID))
    {
        
playerVehicle{playerid} ^= true;
        
DestroyVehicle(vehicleID_[playerid]);
        new 
Float:playerPos[4];
        
GetPlayerPos(playeridplayerPos[0], playerPos[1], playerPos[2]);
        
GetPlayerFacingAngle(playeridplayerPos[3]);
        
vehicleID_[playerid] = CreateVehicle(vehicleIDplayerPos[0], playerPos[1], playerPos[2] + 1.00playerPos[3], 0160);
        
PutPlayerInVehicle(playeridvehicleID_[playerid], 0);
    }
    else
        return 
SendClientMessage(playerid, -1"[ERRO]: Parвmetros incorretos.");
    return 
true;

Ou isso:
PHP код:
COMMAND:vh(playeridparams[])
{
    new 
vehicleID;
    if(!
sscanf(params"d"vehicleID))
    {
        if(
playerVehicle{playerid})
        {
            
DestroyVehicle(vehicleID_[playerid]);
            
playerVehicle{playerid} = false;
        }
        new 
Float:playerPos[4];
        
GetPlayerPos(playeridplayerPos[0], playerPos[1], playerPos[2]);
        
GetPlayerFacingAngle(playeridplayerPos[3]);
        
vehicleID_[playerid] = CreateVehicle(vehicleIDplayerPos[0], playerPos[1], playerPos[2] + 1.00playerPos[3], 0160);
        
PutPlayerInVehicle(playeridvehicleID_[playerid], 0);
        
playerVehicle{playerid} = true;
    }
    else
        return 
SendClientMessage(playerid, -1"[ERRO]: Parвmetros incorretos.");
    return 
true;




Re: Ao criar um veiculo, deletar o ultimo criado. - zHellSync - 04.03.2019

PHP код:
//topo da GM
new pVehCriado[MAX_PLAYERS];
new 
bool:pVeh[MAX_PLAYERS];
//OnPlayerDisconect caso queira que o veiculo seja deletado ao desconectar
DestroyVehicle(pVeh[playerid]);
pVehCriado[playerid] = false;
//comando para criar veiculos
CMD:cv(playeridparams[])
{
    new 
ModeloColor[2], Float:Pos[4];
    if(
sscanf(params"ddd"ModeloColor[0], Color[1]))
        return 
SendClientMessage(playerid0xFF0000AA"| ERRO | Use: /CV [Modelo] [Color1] [Color2]"); //  se nгo colocar os parametros ou digitar sem colocar algum manda uma msg de erro!
    
if(Modelo 400 || Modelo 611)
        return 
SendClientMessage(playerid0xFF0000AA"| ERRO | Veнculo Invalido!");
    
GetPlayerPos(playeridPos[0], Pos[1], Pos[2]); //  Pega a posiзгo do player
    
GetPlayerFacingAngle(playeridPos[3]); //  Pega o angulo do player
    
SendClientMessage(playerid0xFF8040AA"| INFO | Veнculo criado com sucesso!");
    if(
pVehCriado[playerid]) //aqui verifica se o jogador ja criou um veiculo..
    
//caso ja tenha criado ..
        
DestroyVehicle(pVeh[playerid]);
        
pVeh[playerid] = CreateVehicle(ModeloPos[0], Pos[1], Pos[2], Pos[3], Color[0], Color[1], -1); //   Cria o veнculo: -1 = tempo de respawn.
        
SetVehicleVirtualWorld(pVeh[playerid], GetPlayerVirtualWorld(playerid));
        
PutPlayerInVehicle(playeridpVeh[playerid], 0); // Colocar o player dentro do veнculo
    
}
    else
    { 
//caso nгo tenha criado um
        
pVehCriado[playerid] = true;
        
pVeh[playerid] = CreateVehicle(ModeloPos[0], Pos[1], Pos[2], Pos[3], Color[0], Color[1], -1); //   Cria o veнculo: -1 = tempo de respawn.
        
SetVehicleVirtualWorld(pVeh[playerid], GetPlayerVirtualWorld(playerid));
        
PutPlayerInVehicle(playeridpVeh[playerid], 0); // Colocar o player dentro do veнculo
    
}
    return 
1;

Ou se preferir pode ajustar seu comando atual para esse:

PHP код:
//topo da GM
new VehID[MAX_PLAYERS];
new 
bool:VehCriado[MAX_PLAYERS];
CMD:vs(playeridparams[])
{
    new 
carName[100];
    if(
sscanf(params"s[100]"carName)) return SendClientMessage(playerid0xa9c4e4ff"{1fd80a}[USE]: {e00808}/VS {1fd80a}[NOME DO VEICULO]");
    if(
ReturnVehicleID(carName) == INVALID_VEHICLE_ID) return SendClientMessage(playerid0xa9c4e4ff"{fc0a0a}[ERRO]: Veiculo nao encontrado, tente novamente!");
    if(
VehCriado[playerid]) //verificar se ja foi criado, caso seja, apagara. e continuara
    
{
        
DestroyVehicle(VehID[playerid]);
    }
    new 
Float:pPos[4];
    
GetPlayerPos(playeridpPos[0], pPos[1], pPos[2]);
    
GetPlayerFacingAngle(playeridpPos[3]);
    
VehID[playerid] = CreateVehicle(ReturnVehicleID(carName), pPos[0], pPos[1], pPos[2] + 1.00pPos[3], 0160);
    
PutPlayerInVehicle(playeridVehID[playerid], 0);
    return 
1;

Quote:

Se te ajudei clica na estrela abaixo do meu perfil, nгo tenho nenhuma :/