From 331a50cd68ffb63b683421314dcbd7587e847767 Mon Sep 17 00:00:00 2001 From: Space V <40030799+ahcenezdh@users.noreply.github.com> Date: Sat, 24 Aug 2024 01:37:30 +0200 Subject: [PATCH] feat(natives/object): add documentation for DELETE_OBJECT (#1163) * feat(natives/object): add documentation for DELETE_OBJECT * Add documentation for DELETE_OBJECT * Add examples (Lua, JS, C#) * A note about some entites who can't be deleted Co-Authored-By: Dillon Skaggs * Fix code examples --------- Co-authored-by: Dillon Skaggs --- OBJECT/DeleteObject.md | 88 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 71 insertions(+), 17 deletions(-) diff --git a/OBJECT/DeleteObject.md b/OBJECT/DeleteObject.md index 725632f58..f9a59a3ac 100644 --- a/OBJECT/DeleteObject.md +++ b/OBJECT/DeleteObject.md @@ -1,17 +1,71 @@ ---- -ns: OBJECT ---- -## DELETE_OBJECT - -```c -// 0x539E0AE3E6634B9F 0xD6EF9DA7 -void DELETE_OBJECT(Object* object); -``` - -``` -Deletes the specified object, then sets the handle pointed to by the pointer to NULL. -``` - -## Parameters -* **object**: - +--- +ns: OBJECT +--- +## DELETE_OBJECT + +```c +// 0x539E0AE3E6634B9F 0xD6EF9DA7 +void DELETE_OBJECT(Object* object); +``` + +Deletes the specified object. + +**Note**: If for some reason the entity won't delete, you might want to check if the object is a mission entity. + +``` +NativeDB Introduced: v323 +``` + +## Parameters +* **object**: The object you want to delete. + +## Examples +```lua +local playerPed = PlayerPedId() +local playerCoords = GetEntityCoords(playerPed) +local objectHash = GetHashKey("v_ret_gc_chair03") + +local object = GetClosestObjectOfType(playerCoords, 10.0, objectHash, true, false, false) +if object == 0 then return end + +-- If the object is a mission entity, we have to set it to false. Otherwise, it won't be possible to delete the object. +if IsEntityAMissionEntity(object) then + SetEntityAsMissionEntity(object, false, true) +end + +DeleteObject(object) +``` + +```js +const playerPed = PlayerPedId(); +const playerCoords = GetEntityCoords(playerPed, false); +const objectHash = GetHashKey("v_ret_gc_chair03"); + +const object = GetClosestObjectOfType(playerCoords[0], playerCoords[1], playerCoords[2], 10.0, objectHash, true, false, false); +if (object === 0) return; + +// If the object is a mission entity, we have to set it to false. Otherwise, it won't be possible to delete the object. +if (IsEntityAMissionEntity(object)) { + SetEntityAsMissionEntity(object, false, true); +} + +DeleteObject(object); +``` + +```csharp +using static CitizenFX.Core.Native.API; + +int playerPed = PlayerPedId(); +Vector3 playerCoords = GetEntityCoords(playerPed, false); +uint objectHash = Game.GenerateHashASCII("v_ret_gc_chair03"); + +int prop = GetClosestObjectOfType(playerCoords.X, playerCoords.Y, playerCoords.Z, 10.0f, objectHash, true, false, false); +if (prop == 0) return; +// If the object is a mission entity, we have to set it to false. Otherwise, it won't be possible to delete the object. +if (IsEntityAMissionEntity(prop)) +{ + SetEntityAsMissionEntity(prop, false, true); +} + +DeleteObject(ref prop); +``` \ No newline at end of file