Main/resources/[jobs]/[weapons]/force-sling/client/events.lua
2025-06-07 08:51:21 +02:00

44 lines
1 KiB
Lua

local function cleanupEntities()
local function safeDelete(entity)
if DoesEntityExist(entity) then
if IsEntityAttachedToAnyPed(entity) then
DetachEntity(entity, true, true)
end
DeleteObject(entity)
SetEntityAsNoLongerNeeded(entity)
return true
end
return false
end
if Sling.object then
safeDelete(Sling.object)
Sling.object = nil
end
for weaponName, attachment in pairs(Sling.cachedAttachments) do
if attachment then
safeDelete(attachment.obj)
safeDelete(attachment.placeholder)
Sling.cachedAttachments[weaponName] = nil
end
end
Sling.currentAttachedAmount = 0
collectgarbage("collect")
end
AddEventHandler("onResourceStop", function(resource)
if resource ~= GetCurrentResourceName() then
return
end
Debug("info", "Resource stopping: " .. resource)
cleanupEntities()
Debug("info", "Resource stopped: " .. resource)
end)
AddEventHandler('playerDropped', function()
cleanupEntities()
Debug("info", "Player dropped")
end)