[Ajuda] Como obter as coordenadas X/Y neste caso?
#1

Entгo estou com o cуdigo que por sua vez funciona tudo certinho, porem so consigo obter as coordenadas na frente e atras do veiculo de acordo com que eu altero a variavel distancia!


Como faзo pra obter a coordenada na lateral do veiculo? Tipo onde eu coloquei os pontos vermelhos?
Pode ser sу de um, o resto eu faзo, ao ao menos a formula eu me viro!
Desde jб grato!
Codigo usado pra obter a posiзгo na frente e atras do veiculo:

PHP код:
CMD:teste(playerid)
{
    new    
Float:P[4];
    new 
Float:distancia 3.0;//Numero positivo = frente, negativo = tras
    
GetVehiclePos(GetPlayerVehicleID(playerid), P[0], P[1], P[2]);
    
GetVehicleZAngle(GetPlayerVehicleID(playerid), P[3]);
    
P[0] = P[0] + distancia floatsin(-P[3], degrees);
    
P[1] = P[1] + distancia floatcos(-P[3], degrees);
    
SetPlayerCheckpoint(playeridP[0], P[1], P[2], 1.0);//Apenas para testes
    
return 1;

Reply
#2

Quote:
Originally Posted by AdrianoStk
Посмотреть сообщение
Entгo estou com o cуdigo que por sua vez funciona tudo certinho, porem so consigo obter as coordenadas na frente e atras do veiculo de acordo com que eu altero a variavel distancia!


Como faзo pra obter a coordenada na lateral do veiculo? Tipo onde eu coloquei os pontos vermelhos?
Pode ser sу de um, o resto eu faзo, ao ao menos a formula eu me viro!
Desde jб grato!
Codigo usado pra obter a posiзгo na frente e atras do veiculo:

PHP код:
CMD:teste(playerid)
{
    new    
Float:P[4];
    new 
Float:distancia 3.0;//Numero positivo = frente, negativo = tras
    
GetVehiclePos(GetPlayerVehicleID(playerid), P[0], P[1], P[2]);
    
GetVehicleZAngle(GetPlayerVehicleID(playerid), P[3]);
    
P[0] = P[0] + distancia floatsin(-P[3], degrees);
    
P[1] = P[1] + distancia floatcos(-P[3], degrees);
    
SetPlayerCheckpoint(playeridP[0], P[1], P[2], 1.0);//Apenas para testes
    
return 1;

filterscript de attachar objeto no veiculo: https://sampforum.blast.hk/showthread.php?tid=272552

caso queria que o player esteja naquela posiзгo vc faz assim: por exemplo o comando /abrir portamalas, o player tem que estar na parte de tras do veiculo, ai vocк cria um carro nas coordenas X = 0, Y = 0, ai vc vai para parte de tras do carro e salva a posiзгo, por exemplo vocк salva e fica X = 2.6987 e Y = 4.521, ai no comando vc pega as coordenadas do carro, subtrai 2.6987 do eixo de X e 4.521 do eixo de Y, ai verifica se o player estб naquela posiзгo, (se ficou confuso faзo em forma de cуdigo para vocк entender).
Reply
#3

Quote:
Originally Posted by GSantana
Посмотреть сообщение
filterscript de attachar objeto no veiculo: https://sampforum.blast.hk/showthread.php?tid=272552

caso queria que o player esteja naquela posiзгo vc faz assim: por exemplo o comando /abrir portamalas, o player tem que estar na parte de tras do veiculo, ai vocк cria um carro nas coordenas X = 0, Y = 0, ai vc vai para parte de tras do carro e salva a posiзгo, por exemplo vocк salva e fica X = 2.6987 e Y = 4.521, ai no comando vc pega as coordenadas do carro, subtrai 2.6987 do eixo de X e 4.521 do eixo de Y, ai verifica se o player estб naquela posiзгo, (se ficou confuso faзo em forma de cуdigo para vocк entender).
Nгo funciona desse jeito porque tem o fator da rotaзгo do veнculo.
Ele jб tem a fуrmula pra frente e para traseira do veнculo, ele quer as rodas.
Reply
#4

Quote:
Originally Posted by Ermanhaut
Посмотреть сообщение
Nгo funciona desse jeito porque tem o fator da rotaзгo do veнculo.
Ele jб tem a fуrmula pra frente e para traseira do veнculo, ele quer as rodas.
Realmente pensando agora, desconsiderei a fator da rotaзгo, vou tentar pensar em algo aqui
Reply
#5

testei aqui e deu "certo", dependendo da rotaзгo cria mais um pouquinho para frente/trбs
PHP код:
CMD:teste1(playerid)
{
    new    
Float:P[4];
    new 
Float:distancia 3.0;//Numero positivo = frente, negativo = tras
    
GetVehiclePos(GetPlayerVehicleID(playerid), P[0], P[1], P[2]);
    
GetVehicleZAngle(GetPlayerVehicleID(playerid), P[3]);
    
P[0] = P[0] + distancia floatsin(-P[3], degrees);
    
P[1] = P[1] + distancia floatcos(-P[3], degrees);
    
SetPlayerCheckpoint(playeridP[0]-1.4285P[1]+1.6768P[2], 1.0);//Apenas para testes
    
return 1;

Reply
#6

Quote:
Originally Posted by GSantana
Посмотреть сообщение
testei aqui e deu "certo", dependendo da rotaзгo cria mais um pouquinho para frente/trбs
PHP код:
CMD:teste1(playerid)
{
    new    
Float:P[4];
    new 
Float:distancia 3.0;//Numero positivo = frente, negativo = tras
    
GetVehiclePos(GetPlayerVehicleID(playerid), P[0], P[1], P[2]);
    
GetVehicleZAngle(GetPlayerVehicleID(playerid), P[3]);
    
P[0] = P[0] + distancia floatsin(-P[3], degrees);
    
P[1] = P[1] + distancia floatcos(-P[3], degrees);
    
SetPlayerCheckpoint(playeridP[0]-1.4285P[1]+1.6768P[2], 1.0);//Apenas para testes
    
return 1;

Entгo, da certo e nгo da, dependendo a rotaзгo que o veiculo esta, funciona perfeito, porem se eu rotacionar ele em outra rotaзгo, comeзa a dar unas coordenadas nada haver!

Nгo precisa ser justamente das rodas, pode ser da porta tambйm, o importante й dar certo depois eu me viro!

Mas muito obrigado pela sua ajuda!
Se vocк ou alguйm poder ajudar agradeзo muito! (Sou Burro pra Matematica!)
Reply
#7

olha pelo o que eu vi aqui se o вngulo й positivo da certo se й negativo fica bugado, entгo ou vocк usa if ou attacha um objeto nas rodas e pega as coordenadas dele, ou espera atй amanhг que crio a equaзгo para fazer isso (hj to exausto)
Reply
#8

Cara, fui pesquisar e achei exatamente o que vocк ta procurando.

https://sampforum.blast.hk/showthread.php?tid=445707

Uma dica para o futuro: Pesquise sempre em inglкs.
Reply
#9

Aqui: https://sampforum.blast.hk/showthread.php?tid=620512
Reply
#10

Quote:
Originally Posted by Marlboro18
Посмотреть сообщение
Isso й melhor ainda!
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)