{"hash":"0xED640017ED337E45","ns":"AUDIO","name":"PLAY_AMBIENT_SPEECH_FROM_POSITION_NATIVE","slug":"PLAY_AMBIENT_SPEECH_FROM_POSITION_NATIVE","official":true,"named":true,"luaName":"PlayAmbientSpeechFromPositionNative","game":"rdr3","apiset":"client","returnType":"BOOL","params":[{"name":"x","type":"float"},{"name":"y","type":"float"},{"name":"z","type":"float"},{"name":"params","type":"Any*"}],"summary":"Play a speech from a position.","descriptions":[{"source":"alloc8or","format":"text","body":"Play a speech from a position.\nparams struct for ScriptedSpeechParams see: PLAY_PED_AMBIENT_SPEECH_NATIVE"},{"source":"vorp","format":"text","body":"Old name: _PLAY_AMBIENT_SPEECH_AT_COORDS"}],"examples":[],"aliases":[],"enums":[],"related":[],"build":"1207","gtaHash":"0xED640017ED337E45","gtaJhash":"0xA1A1402E","sources":["alloc8or","vorp"],"doc":2,"url":"https://natives.borderlinerp.com/natives/AUDIO/PLAY_AMBIENT_SPEECH_FROM_POSITION_NATIVE","markdownUrl":"https://natives.borderlinerp.com/natives/AUDIO/PLAY_AMBIENT_SPEECH_FROM_POSITION_NATIVE.md","snippets":{"lua":"local retval, params = PlayAmbientSpeechFromPositionNative(x, y, z, params)","luaInvoke":"local retval, params = Citizen.InvokeNative(0xED640017ED337E45, x, y, z, Citizen.PointerValueIntInitialized(params), Citizen.ReturnResultAnyway())","js":"const [retval, params] = PlayAmbientSpeechFromPositionNative(x, y, z, params);","jsInvoke":"const [retval, params] = Citizen.invokeNative('0xED640017ED337E45', x + 0.0000001, y + 0.0000001, z + 0.0000001, Citizen.pointerValueIntInitialized(params), Citizen.returnResultAnyway());","csharp":"var params = new OutputArgument();\nbool retval = Function.Call<bool>((Hash)0xED640017ED337E45, x, y, z, params);\n// params.GetResult<int>()","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.","The last argument is an in/out pointer: pass its initial value, and the updated value is returned after the result.","`Any*` arguments are often structs. Build them with a DataView buffer and pass it with `:Buffer()` — see the examples and notes below."]}}