Como obter as coordenadas X/Y neste caso? -
AdrianoStk - 25.11.2018
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(playerid, P[0], P[1], P[2], 1.0);//Apenas para testes
return 1;
}
Re: Como obter as coordenadas X/Y neste caso? -
GSantana - 26.11.2018
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(playerid, P[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).
Re: Como obter as coordenadas X/Y neste caso? -
Ermanhaut - 26.11.2018
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.
Re: Como obter as coordenadas X/Y neste caso? -
GSantana - 26.11.2018
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
Re: Como obter as coordenadas X/Y neste caso? -
GSantana - 26.11.2018
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(playerid, P[0]-1.4285, P[1]+1.6768, P[2], 1.0);//Apenas para testes
return 1;
}
Re: Como obter as coordenadas X/Y neste caso? -
AdrianoStk - 26.11.2018
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(playerid, P[0]-1.4285, P[1]+1.6768, P[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!)
Re: Como obter as coordenadas X/Y neste caso? -
GSantana - 26.11.2018
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)
Re: Como obter as coordenadas X/Y neste caso? -
Ermanhaut - 26.11.2018
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.
Re: Como obter as coordenadas X/Y neste caso? -
Marlboro18 - 26.11.2018
Aqui:
https://sampforum.blast.hk/showthread.php?tid=620512
Re: Como obter as coordenadas X/Y neste caso? -
Ermanhaut - 26.11.2018
Quote:
Originally Posted by Marlboro18
|
Isso й melhor ainda!