Portal SAMP
[Ajuda] Checkpoint veiculo - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Checkpoint veiculo (/showthread.php?tid=306)



Checkpoint veiculo - SkolPlay - 11/11/2020

Bom, eu estou fazendo uma profissão, na qual eu tenho a intenção do checkpoint aparecer atrás do veiculo para o player colocar um objeto no veiculo. Alguém poderia me dizer como que faz??

Ex: https://imgur.com/a/jgO8O7I


RE: Checkpoint veiculo - xbruno1000x - 12/11/2020

Use:
new Pos[3];
GetVehiclePos(vehicleid, Pos[0], Pos[1], Pos[2]);
SetPlayerCheckpoint(playerid, Pos[0], Pos[1], Pos[2]);
Você pode colocar a posição na traseira do veiculo por tentativa e erro.
Ex:
SetPlayerCheckpoint(playerid, Pos[0]+5, Pos[1], Pos[2]);

Provavelmente existe forma mais inteligente de se fazer isso, mas já está tarde e não quero pensar demais kkkkkkkkkkkkkk


RE: Checkpoint veiculo - ForT - 12/11/2020

Alguns veículos podem
Código PHP:
GetVehicleTrunkPosition(vehicleid, &Float:x, &Float:y, &Float:z)
{
    new
        
Float:vehsize,
        
Float:vehangle,
        
Float:n;
    
    
GetVehiclePos(vehicleidxyz);
    
GetVehicleZAngle(vehicleidvehangle);
    
    
GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_SIZEnvehsizen);
    
    
-= ((vehsize 1.6) * floatsin(-vehangledegrees));
    
-= ((vehsize 1.6) * floatcos(-vehangledegrees));

Modo de usar:
Código PHP:
CMD:trunk(playerid)
{
    new 
Float:xFloat:yFloat:z;
    
    
GetVehicleTrunkPosition(GetPlayerVehicleID(playerid), xyz);
    
    
SetPlayerCheckpoint(playeridxyz1.2);

    return 
1;




RE: Checkpoint veiculo - SkolPlay - 12/11/2020

(12/11/2020 13:53)ForT Escreveu: Alguns veículos podem
Código PHP:
GetVehicleTrunkPosition(vehicleid, &Float:x, &Float:y, &Float:z)
{
    new
        
Float:vehsize,
        
Float:vehangle,
        
Float:n;
    
    
GetVehiclePos(vehicleidxyz);
    
GetVehicleZAngle(vehicleidvehangle);
    
    
GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_SIZEnvehsizen);
    
    
-= ((vehsize 1.6) * floatsin(-vehangledegrees));
    
-= ((vehsize 1.6) * floatcos(-vehangledegrees));

Modo de usar:
Código PHP:
CMD:trunk(playerid)
{
    new 
Float:xFloat:yFloat:z;
    
    
GetVehicleTrunkPosition(GetPlayerVehicleID(playerid), xyz);
    
    
SetPlayerCheckpoint(playeridxyz1.2);

    return 
1;


Testei aqui e funcionou muito bem. +REP


RE: Checkpoint veiculo - Luquinhas Oliveira - 16/08/2021

(12/11/2020 13:53)ForT Escreveu: Alguns veículos podem
Código PHP:
GetVehicleTrunkPosition(vehicleid, &Float:x, &Float:y, &Float:z)
{
    new
        
Float:vehsize,
        
Float:vehangle,
        
Float:n;
    
    
GetVehiclePos(vehicleidxyz);
    
GetVehicleZAngle(vehicleidvehangle);
    
    
GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_SIZEnvehsizen);
    
    
-= ((vehsize 1.6) * floatsin(-vehangledegrees));
    
-= ((vehsize 1.6) * floatcos(-vehangledegrees));

Modo de usar:
Código PHP:
CMD:trunk(playerid)
{
    new 
Float:xFloat:yFloat:z;
    
    
GetVehicleTrunkPosition(GetPlayerVehicleID(playerid), xyz);
    
    
SetPlayerCheckpoint(playeridxyz1.2);

    return 
1;


Mano o GetVehicleTrunkPosition(vehicleid, &Float:x, &Float:y, &Float:z) da primeira parte do cod e o que?, uma public stock?

Agr eu preciso de ajuda me chama discord por favor? Lucas Oliveira#0380


RE: Checkpoint veiculo - xbruno1000x - 16/08/2021

(16/08/2021 14:56)Luquinhas Oliveira Escreveu:
(12/11/2020 13:53)ForT Escreveu: Alguns veículos podem
Código PHP:
GetVehicleTrunkPosition(vehicleid, &Float:x, &Float:y, &Float:z)
{
    new
        
Float:vehsize,
        
Float:vehangle,
        
Float:n;
    
    
GetVehiclePos(vehicleidxyz);
    
GetVehicleZAngle(vehicleidvehangle);
    
    
GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_SIZEnvehsizen);
    
    
-= ((vehsize 1.6) * floatsin(-vehangledegrees));
    
-= ((vehsize 1.6) * floatcos(-vehangledegrees));

Modo de usar:
Código PHP:
CMD:trunk(playerid)
{
    new 
Float:xFloat:yFloat:z;
    
    
GetVehicleTrunkPosition(GetPlayerVehicleID(playerid), xyz);
    
    
SetPlayerCheckpoint(playeridxyz1.2);

    return 
1;


Mano o GetVehicleTrunkPosition(vehicleid, &Float:x, &Float:y, &Float:z) da primeira parte do cod e o que?, uma public stock?

Agr eu preciso de ajuda me chama discord por favor? Lucas Oliveira#0380

é uma stock, public precisa de uma forward e do prefixo public antes do nome.


RE: Checkpoint veiculo - Luquinhas Oliveira - 24/08/2021

(16/08/2021 14:56)Luquinhas Oliveira Escreveu:
(12/11/2020 13:53)ForT Escreveu: Alguns veículos podem
Código PHP:
GetVehicleTrunkPosition(vehicleid, &Float:x, &Float:y, &Float:z)
{
    new
        
Float:vehsize,
        
Float:vehangle,
        
Float:n;
    
    
GetVehiclePos(vehicleidxyz);
    
GetVehicleZAngle(vehicleidvehangle);
    
    
GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_SIZEnvehsizen);
    
    
-= ((vehsize 1.6) * floatsin(-vehangledegrees));
    
-= ((vehsize 1.6) * floatcos(-vehangledegrees));

Modo de usar:
Código PHP:
CMD:trunk(playerid)
{
    new 
Float:xFloat:yFloat:z;
    
    
GetVehicleTrunkPosition(GetPlayerVehicleID(playerid), xyz);
    
    
SetPlayerCheckpoint(playeridxyz1.2);

    return 
1;


Mano o GetVehicleTrunkPosition(vehicleid, &Float:x, &Float:y, &Float:z) da primeira parte do cod e o que?, uma public stock?

Agr eu preciso de ajuda me chama discord por favor? Lucas Oliveira#0380
Sim eu ja coloquei mas eu nao quero colocar em comando quero colocar quando o jogador termina de pegar o saco do lixo eu tentei isso e nao foi , marcou num sitio distante no mapa:

if(pDados[playerid][Genero] == 1)
                {
                  SetTimerEx("PegandoLixo", 2000, false, "i", playerid);
                  TogglePlayerControllable(playerid,0);
                  LixeiroTrabalhando[playerid] = 2;
                  DisablePlayerCheckpoint(playerid);
                  new Float:x, Float:y, Float:z;
                  GetVehicleTrunkPosition(GetPlayerVehicleID(playerid), x, y, z);
                  SetPlayerCheckpoint(playerid, x, y, z, 1.2);
                }


RE: Checkpoint veiculo - xbruno1000x - 25/08/2021

Como você vai usar GetPlayerVehicleID(playerid) se o player não está em um veículo?

GetPlayerVehicleID
Em português seria mais ou menos -> Pegar ID do Veículo do Player

Sendo assim, não faz sentido usar essa função. Pra fazer o que você deseja, deve armazenar o ID do veículo na OnPlayerExitVehicle.


RE: Checkpoint veiculo - Luquinhas Oliveira - 26/08/2021

(24/08/2021 23:13)Luquinhas Oliveira Escreveu:
(16/08/2021 14:56)Luquinhas Oliveira Escreveu:
(12/11/2020 13:53)ForT Escreveu: Alguns veículos podem
Código PHP:
GetVehicleTrunkPosition(vehicleid, &Float:x, &Float:y, &Float:z)
{
    new
        
Float:vehsize,
        
Float:vehangle,
        
Float:n;
    
    
GetVehiclePos(vehicleidxyz);
    
GetVehicleZAngle(vehicleidvehangle);
    
    
GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_SIZEnvehsizen);
    
    
-= ((vehsize 1.6) * floatsin(-vehangledegrees));
    
-= ((vehsize 1.6) * floatcos(-vehangledegrees));

Modo de usar:
Código PHP:
CMD:trunk(playerid)
{
    new 
Float:xFloat:yFloat:z;
    
    
GetVehicleTrunkPosition(GetPlayerVehicleID(playerid), xyz);
    
    
SetPlayerCheckpoint(playeridxyz1.2);

    return 
1;


Mano o GetVehicleTrunkPosition(vehicleid, &Float:x, &Float:y, &Float:z) da primeira parte do cod e o que?, uma public stock?

Agr eu preciso de ajuda me chama discord por favor? Lucas Oliveira#0380
Sim eu ja coloquei mas eu nao quero colocar em comando quero colocar quando o jogador termina de pegar o saco do lixo eu tentei isso e nao foi , marcou num sitio distante no mapa:

if(pDados[playerid][Genero] == 1)
                {
                  SetTimerEx("PegandoLixo", 2000, false, "i", playerid);
                  TogglePlayerControllable(playerid,0);
                  LixeiroTrabalhando[playerid] = 2;
                  DisablePlayerCheckpoint(playerid);
                  new Float:x, Float:y, Float:z;
                  GetVehicleTrunkPosition(GetPlayerVehicleID(playerid), x, y, z);
                  SetPlayerCheckpoint(playerid, x, y, z, 1.2);
                }

e como eu poderia armazenar isso? que eu queria salvar o ultimo veiculo que o jogador esteve, pq se for pelo veiculo mais proximo pode causar varios bugs, entao se puder me falar como armazeno o ultimo veiculo que o jogador estava pra substituir por essa funcao de GetPlayerVehicleId


RE: Checkpoint veiculo - xbruno1000x - 26/08/2021

(26/08/2021 15:22)Luquinhas Oliveira Escreveu:
(24/08/2021 23:13)Luquinhas Oliveira Escreveu:
(16/08/2021 14:56)Luquinhas Oliveira Escreveu:
(12/11/2020 13:53)ForT Escreveu: Alguns veículos podem
Código PHP:
GetVehicleTrunkPosition(vehicleid, &Float:x, &Float:y, &Float:z)
{
    new
        
Float:vehsize,
        
Float:vehangle,
        
Float:n;
    
    
GetVehiclePos(vehicleidxyz);
    
GetVehicleZAngle(vehicleidvehangle);
    
    
GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_SIZEnvehsizen);
    
    
-= ((vehsize 1.6) * floatsin(-vehangledegrees));
    
-= ((vehsize 1.6) * floatcos(-vehangledegrees));

Modo de usar:
Código PHP:
CMD:trunk(playerid)
{
    new 
Float:xFloat:yFloat:z;
    
    
GetVehicleTrunkPosition(GetPlayerVehicleID(playerid), xyz);
    
    
SetPlayerCheckpoint(playeridxyz1.2);

    return 
1;


Mano o GetVehicleTrunkPosition(vehicleid, &Float:x, &Float:y, &Float:z) da primeira parte do cod e o que?, uma public stock?

Agr eu preciso de ajuda me chama discord por favor? Lucas Oliveira#0380
Sim eu ja coloquei mas eu nao quero colocar em comando quero colocar quando o jogador termina de pegar o saco do lixo eu tentei isso e nao foi , marcou num sitio distante no mapa:

if(pDados[playerid][Genero] == 1)
                {
                  SetTimerEx("PegandoLixo", 2000, false, "i", playerid);
                  TogglePlayerControllable(playerid,0);
                  LixeiroTrabalhando[playerid] = 2;
                  DisablePlayerCheckpoint(playerid);
                  new Float:x, Float:y, Float:z;
                  GetVehicleTrunkPosition(GetPlayerVehicleID(playerid), x, y, z);
                  SetPlayerCheckpoint(playerid, x, y, z, 1.2);
                }

e como eu poderia armazenar isso? que eu queria salvar o ultimo veiculo que o jogador esteve, pq se for pelo veiculo mais proximo pode causar varios bugs, entao se puder me falar como armazeno o ultimo veiculo que o jogador estava pra substituir por essa funcao de GetPlayerVehicleId

Como eu disse, na OnPlayerExitVehicle. Basta criar uma variável com o playerid e armazenar nela o valor de vehicleid.