{"hash":"0x2A29CA9A6319E6AB","ns":"MISC","name":"GET_GROUND_Z_AND_NORMAL_FOR_3D_COORD","slug":"GET_GROUND_Z_AND_NORMAL_FOR_3D_COORD","official":true,"named":true,"luaName":"GetGroundZAndNormalFor_3dCoord","game":"rdr3","apiset":"client","returnType":"BOOL","params":[{"name":"x","type":"float"},{"name":"y","type":"float"},{"name":"z","type":"float"},{"name":"groundZ","type":"float*"},{"name":"normal","type":"Vector3*"}],"summary":"","descriptions":[],"examples":[],"aliases":[],"enums":[],"related":[],"build":"1207","gtaHash":"0x8BDC7BFC57A81E76","gtaJhash":"0x64D91CED","sources":["alloc8or"],"doc":1,"url":"https://natives.borderlinerp.com/natives/MISC/GET_GROUND_Z_AND_NORMAL_FOR_3D_COORD","markdownUrl":"https://natives.borderlinerp.com/natives/MISC/GET_GROUND_Z_AND_NORMAL_FOR_3D_COORD.md","snippets":{"lua":"local retval, groundZ, normal = GetGroundZAndNormalFor_3dCoord(x, y, z)","luaInvoke":"local retval, groundZ, normal = Citizen.InvokeNative(0x2A29CA9A6319E6AB, x, y, z, Citizen.PointerValueFloat(), Citizen.PointerValueVector(), Citizen.ReturnResultAnyway())","js":"const [retval, groundZ, normal] = GetGroundZAndNormalFor_3dCoord(x, y, z);","jsInvoke":"const [retval, groundZ, normal] = Citizen.invokeNative('0x2A29CA9A6319E6AB', x + 0.0000001, y + 0.0000001, z + 0.0000001, Citizen.pointerValueFloat(), Citizen.pointerValueVector(), Citizen.returnResultAnyway());","csharp":"var groundZ = new OutputArgument();\nvar normal = new OutputArgument();\nbool retval = Function.Call<bool>((Hash)0x2A29CA9A6319E6AB, x, y, z, groundZ, normal);\n// groundZ.GetResult<float>()\n// normal.GetResult<Vector3>()","notes":["Float parameters: Lua integers (`10`, or whole numbers decoded from NUI/JSON) are sent as ints and read as garbage. Write `10.0` or `value + 0.0`. The generated JS wrappers add `0.0000001` to non-zero floats for the same reason.","Pointer (out) arguments are not passed in Lua/JS: their values are returned after the result, in order."]}}