grant85
-
Posts
4 -
Joined
-
Last visited
Content Type
Profiles
News Articles
Tutorials
Forums
Downloads
Posts posted by grant85
-
-
I updated my original post to clarify that I am trying to teleport player A directly in front of player B and make player A face player B.
Subtract the viewangles from the origin to get the direction. Multiply the offset in units by the direction to get the change in units. Add the change in units to the origin to get the final destination.
So if this is a mathematical equation:
a - o = d
d * f = c
c + o = s
Where a = viewangles, o = origin, d = direction, f = offset, c = change from origin and s = solution.
That could probably be simplified somehow.
There are functions VectorMA, VectorAdd, VectorSubtract which do this. I don't know the parameters of each off the top of my head, but the last one is always the result. Also there is VectorCopy.
EDIT: VectorMA is "Multiply + Add", meaning you can do the last two parts of that equation in one line of code.Okay, I think I understand the first part, angles - origin = direction, but I'm lost on the rest of it. What is offset, a vector? How do you determine the values to put in the offset? If I wanted to teleport the person 45 units in front of the other, would that be {45.0f, 45.0f, 0}?
As far as the parameters go:
void _VectorAdd( const vec3_t veca, const vec3_t vecb, vec3_t out ) { out[0] = veca[0]+vecb[0]; out[1] = veca[1]+vecb[1]; out[2] = veca[2]+vecb[2]; } void _VectorSubtract( const vec3_t veca, const vec3_t vecb, vec3_t out ) { out[0] = veca[0]-vecb[0]; out[1] = veca[1]-vecb[1]; out[2] = veca[2]-vecb[2]; } void _VectorMA( const vec3_t veca, float scale, const vec3_t vecb, vec3_t vecc) { vecc[0] = veca[0] + scale*vecb[0]; vecc[1] = veca[1] + scale*vecb[1]; vecc[2] = veca[2] + scale*vecb[2]; }
-
I am trying to do this via the game code rather than scripting.
-
I am trying to design a function to teleport player A to directly in front of player B and make him face player B. However, I am not familiar enough with vectors and the vector functions to achieve this. How can I determine an origin x units from where player B is facing? And how can I ensure that the player spawns on the ground, not in the ground or in the air?
Teleport player in front of another player (or other ent) ?
in Coding and Scripts
Posted
That's what I needed and the comments help too. Thanks!