get_user_origin (mode 0) doesn't return any angle, only player's position...
http://www.amxmodx.org/funcwiki.php?...igin&go=search
Code:
If mode is passed, the origin changes:
0 - current position (Default)
1 - Position from eyes (weapon aiming)
2 - End position from player position
3 - End position from eyes (hit point for weapon)
4 - Position from last bullet hit (only CS)
PHP Code:
static cell AMX_NATIVE_CALL get_user_origin(AMX *amx, cell *params) /* 3 param */
{
int index = params[1];
if (index < 1 || index > gpGlobals->maxClients)
{
LogError(amx, AMX_ERR_NATIVE, "Invalid player id %d", index);
return 0;
}
CPlayer* pPlayer = GET_PLAYER_POINTER_I(index);
if (pPlayer->ingame)
{
int mode = params[3];
cell *cpOrigin = get_amxaddr(amx, params[2]);
if (mode == 4)
{
cpOrigin[0] = (long int)pPlayer->lastHit.x;
cpOrigin[1] = (long int)pPlayer->lastHit.y;
cpOrigin[2] = (long int)pPlayer->lastHit.z;
return 1;
}
edict_t* edict = pPlayer->pEdict;
Vector pos = edict->v.origin;
if (mode && mode != 2)
pos = pos + edict->v.view_ofs;
if (mode > 1)
{
Vector vec;
Vector v_angle = edict->v.v_angle;
float v_vec[3];
v_vec[0] = v_angle.x;
v_vec[1] = v_angle.y;
v_vec[2] = v_angle.z;
ANGLEVECTORS(v_vec, vec, NULL, NULL);
TraceResult trEnd;
Vector v_dest = pos + vec * 9999;
float f_pos[3];
f_pos[0] = pos.x;
f_pos[1] = pos.y;
f_pos[2] = pos.z;
float f_dest[3];
f_dest[0] = v_dest.x;
f_dest[1] = v_dest.y;
f_dest[2] = v_dest.z;
TRACE_LINE(f_pos, f_dest, 0, edict, &trEnd);
pos = (trEnd.flFraction < 1.0) ? trEnd.vecEndPos : Vector(0, 0, 0);
}
cpOrigin[0] = (long int)pos.x;
cpOrigin[1] = (long int)pos.y;
cpOrigin[2] = (long int)pos.z;
return 1;
}
return 0;
}
May be you could check pev_v_angle
__________________