19.03.2016, 22:48
(
Последний раз редактировалось Su37Erich; 20.03.2016 в 05:06.
Причина: Aclarando tema
)
Aclaraciуn: Una disculpa por el tнtulo, estaba precisamente buscando algo como la respuesta de Jastak
Bueno el tema que tenнa planteado era el siguiente:
їAlguien sabe si existe una funciуn con la cual pueda obtener las coordenadas X, Y y Z a una distancia de 10 metros la cual pasa por el vector Pos Jugador y el vector Pos Jugador 2?
їUso de la funciуn?
Algo como:
La cual solucionй hoy y la dejo por si a alguien le sirve.
Gracias a Jastak por la funciуn, la estarй revisando y comparбndola con la mнa que de por sн me costo mucho trabajo, aunque tengo dudas en cuanto a la posiciуn Z (de la funciуn de Mauzen ya que aparentemente solo le suma la Z?):
Bueno el tema que tenнa planteado era el siguiente:
їAlguien sabe si existe una funciуn con la cual pueda obtener las coordenadas X, Y y Z a una distancia de 10 metros la cual pasa por el vector Pos Jugador y el vector Pos Jugador 2?
їUso de la funciуn?
Algo como:
Код:
public OnPlayerUpdate(playerid) { static Float:jPosX, Float:jPosY, Float:jPosZ; static Float:jCentroX, Float:jCentroY, Float:jCentroZ; if(idDF[playerid] != -1) { GetPlayerPos(idDF[playerid], jCentroX, jCentroY, jCentroZ); getXYZWithDistance(playerid, jPosX, jPosY, jPosZ, jCentroX, jCentroY, jCentroZ); SetPlayerCameraPos(playerid, jPosX, jPosY, jPosZ);//La camara a 10 metros lejos del jugador SetPlayerCameraLookAt(playerid, jCentroX, jCentroY, jCentroZ); } return 1; }
Gracias a Jastak por la funciуn, la estarй revisando y comparбndola con la mнa que de por sн me costo mucho trabajo, aunque tengo dudas en cuanto a la posiciуn Z (de la funciуn de Mauzen ya que aparentemente solo le suma la Z?):
Код:
stock getXYZWithDistance(playerid, &Float:rX, &Float:rY, &Float:rZ, Float:centroX, Float:centroY, Float:centroZ) { static Float:posX, Float:posY, Float:posZ; static Float:vDirX, Float:vDirY, Float:vDirZ; static Float:t; GetPlayerPos(playerid, posX, posY, posZ); /*Vector director*/ vDirX = posX-centroX; vDirY = posY-centroY; vDirZ = posZ-centroZ; /*---------------*/ t = floatsqroot(((posX-centroX)*(posX-centroX))+((posY-centroY)*(posY-centroY))+((posZ-centroZ)*(posZ-centroZ))); t = 30/t; vDirX *= t; vDirY *= t; vDirZ *= t; rX = posX+vDirX; rY = posY+vDirY; rZ = posZ+vDirZ; }