SA-MP Forums Archive
[Ajuda] Cordenadas - 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] Cordenadas (/showthread.php?tid=369094)



Cordenadas - Mr.Hardy - 15.08.2012

- Olб galera. Hoje venho perguntar como eu posso obter cordenadas a partir de uma cordenadas fixa. Segue a imagem a baixo.




- Como posso obter as cordenadas das bolinhas pretas pequenas б partir da cordenada 0.0, 0.0, 0.0 por exemplo?
Quais conjuntos de funзхes?



Re: Cordenadas - paulor - 15.08.2012

Nгo entendi...


Respuesta: Cordenadas - Digao - 15.08.2012

Nгo entendi nada o_O


Re: Cordenadas - Mr.Hardy - 15.08.2012

Acho que jб tenho a soluзгo ! Й tipo assim:

Eu to na cordenada 0.0, 0.0, 0.0

E eu quero saber a cordenada do meu lado. Porque estou criando um sistema de race checkpoint e eu quero organizar os veiculos automaticamente б partir de uma cordenada entenderam?


Re: Cordenadas - .FuneraL. - 15.08.2012

Faзa varios Saves, й o modo mais facil para ter coordenada


Re: Cordenadas - Mr.Hardy - 15.08.2012

Quote:
Originally Posted by .FuneraL.
Посмотреть сообщение
Faзa varios Saves, й o modo mais facil para ter coordenada
kk. Eu tinha analizados alguns releases de race e vi esse sistema. Mais nгo entendi a lуgica e preferi perguntar para os Brasileiros pois aqueles releases eram muito complicados de entender e acolplar.

@edit

Vou tentar usar isto.

pawn Код:
stock GetXYInFrontOfPlayer(playerid,Float:Distance,&Float:X,&Float:Y)
{
new Float:POS[3];
GetPlayerPos(playerid,POS[0],POS[1],POS[2]);
if(!IsPlayerInAnyVehicle(playerid)) GetPlayerFacingAngle(playerid,POS[2]);
else GetVehicleZAngle(GetPlayerVehicleID(playerid),POS[2]);
X += floatmul(Distance,floatsin(-(floatabs(POS[2])),degrees));
Y += floatmul(Distance,floatcos(-(floatabs(POS[2])),degrees));
return 1;
}  


stock GetXYInRearOfPlayer(playerid,Float:Distance,&Float:X,&Float:Y)
{
new Float:POS[3];
GetPlayerPos(playerid,POS[0],POS[1],POS[2]);
if(!IsPlayerInAnyVehicle(playerid)) GetPlayerFacingAngle(playerid,POS[2]);
else GetVehicleZAngle(GetPlayerVehicleID(playerid),POS[2]);
X -= floatmul(Distance,floatsin(-(floatabs(POS[2])),degrees));
Y -= floatmul(Distance,floatcos(-(floatabs(POS[2])),degrees));
return 1;
}  

stock GetXYInLeftOfPlayer(playerid,Float:Distance,Float:offset,&Float:X,&Float:Y)
{
new Float:POS[3];
GetPlayerPos(playerid,POS[0],POS[1],POS[2]);
if(!IsPlayerInAnyVehicle(playerid)) GetPlayerFacingAngle(playerid,POS[2]);
else GetVehicleZAngle(GetPlayerVehicleID(playerid),POS[2]);
POS[2] -= offset;
X += floatmul(Distance,floatsin(-(floatabs(POS[2])),degrees));
Y += floatmul(Distance,floatcos(-(floatabs(POS[2])),degrees));
return 1;
}  

stock GetXYInRightOfPlayer(playerid,Float:Distance,Float:offset,&Float:X,&Float:Y)
{
new Float:POS[3];
GetPlayerPos(playerid,POS[0],POS[1],POS[2]);
if(!IsPlayerInAnyVehicle(playerid)) GetPlayerFacingAngle(playerid,POS[2]);
else GetVehicleZAngle(GetPlayerVehicleID(playerid),POS[2]);
POS[2] -= offset;
X -= floatmul(Distance,floatsin(-(floatabs(POS[2])),degrees));
Y -= floatmul(Distance,floatcos(-(floatabs(POS[2])),degrees));
return 1;
}
Crйditos: BJIADOKC