How to execute GTA V native functions inside FiveM CitizenFX runtime:
class NativeContext {
uint64_t* m_pReturn;
uint32_t m_nArgCount;
uint64_t* m_pArgs;
public:
template<typename T> void Push(T val) { *(T*)(m_pArgs + m_nArgCount++) = val; }
template<typename T> T GetResult() { return *(T*)m_pReturn; }
};
// Calling ENTITY::GET_ENTITY_COORDS
Vector3 GetEntityCoords(Entity entity) {
NativeContext ctx;
ctx.Push(entity);
ctx.Push(true); // alive flag
InvokeNative(0x3FEF770D40960D5A, &ctx);
return ctx.GetResult<Vector3>();
}