client.lua
-- Ladda in config.lua
Config = Config or {}
local blacklist = {}
local lastVehicle = nil
local lastUpdate = 0
-- Lägg till fordon i blacklist
for _, model in ipairs(Config.Blacklist) do
table.insert(blacklist, GetHashKey(model))
end
-- Funktion för att kolla om fordon är blacklisted
local function IsBlacklisted(vehicle)
local model = GetEntityModel(vehicle)
for _, hash in ipairs(blacklist) do
if model == hash then
return true
end
end
return false
end
-- Event för att ta bort fordon
RegisterNetEvent("AutoDeletePro:DeleteVehicle")
AddEventHandler("AutoDeletePro:DeleteVehicle", function(netId)
local entity = NetworkGetEntityFromNetworkId(netId)
if entity and DoesEntityExist(entity) then
DeleteEntity(entity)
end
end)
-- Kontrollera fordon när spelaren går in eller lämnar ett fordon
Citizen.CreateThread(function()
while true do
Citizen.Wait(1000)
local ped = PlayerPedId()
local currentVehicle = GetVehiclePedIsIn(ped, false)
if currentVehicle ~= 0 and currentVehicle ~= lastVehicle then
if not IsBlacklisted(currentVehicle) then
lastVehicle = currentVehicle
TriggerServerEvent("AutoDeletePro:TouchVehicle", NetworkGetNetworkIdFromEntity(currentVehicle), GetEntityModel(currentVehicle))
lastUpdate = GetGameTimer()
else
print("Spelaren är i ett blacklisted fordon.")
end
elseif currentVehicle == 0 and lastVehicle ~= nil then
if DoesEntityExist(lastVehicle) then
TriggerServerEvent("AutoDeletePro:TouchVehicle", NetworkGetNetworkIdFromEntity(lastVehicle), GetEntityModel(lastVehicle))
end
lastVehicle = nil
elseif lastVehicle ~= nil and GetGameTimer() > lastUpdate + Config.TimeForUpdate * 1000 then
TriggerServerEvent("AutoDeletePro:TouchVehicle", NetworkGetNetworkIdFromEntity(lastVehicle), GetEntityModel(lastVehicle))
lastUpdate = GetGameTimer()
end
end
end)
-- Helper function för att få fordon nära spelaren
function GetNearbyVehicles(ped, radius)
local vehicles = {}
local playerPos = GetEntityCoords(ped)
for vehicle in EnumerateVehicles() do
if Vdist(playerPos, GetEntityCoords(vehicle)) < radius then
table.insert(vehicles, vehicle)
end
end
return vehicles
end
-- Funktion för att hämta alla objekt (ersätter GetAllObjects())
function EnumerateObjects()
return coroutine.wrap(function()
local handle, object = FindFirstObject()
local success
repeat
coroutine.yield(object)
success, object = FindNextObject(handle)
until not success
EndFindObject(handle)
end)
end
-- Citizen.CreateThread(function()
-- while true do
-- Wait(30000) -- Kör var 30:e sekund
-- local count = 0
-- for obj in EnumerateObjects() do
-- if DoesEntityExist(obj) and IsEntityAnObject(obj) and not IsEntityAttached(obj) and not IsEntityInWater(obj) then
-- -- Kontrollera storlek för att undvika att ta bort stora objekt
-- local model = GetEntityModel(obj)
-- local minDim, maxDim = GetModelDimensions(model)
-- local size = (maxDim.x - minDim.x) * (maxDim.y - minDim.y) * (maxDim.z - minDim.z)
-- if size < 1.0 then -- Endast små objekt
-- DeleteEntity(obj)
-- count = count + 1
-- end
-- end
-- end
-- if count > 0 then
-- print("[FiveM] Rensade "..count.." fragmenterade objekt från `fragInstGTA`.")
-- end
-- end
-- end)
local propDebugEnabled = false
RegisterCommand("propDebug", function()
propDebugEnabled = not propDebugEnabled
if propDebugEnabled then
print("[DEBUG] Prop debug aktiverad.")
else
print("[DEBUG] Prop debug avstängd.")
end
end, false)
Citizen.CreateThread(function()
local knownObjects = {}
while true do
Wait(5000) -- Körs var 5:e sekund
if propDebugEnabled then
for obj in EnumerateObjects() do
if DoesEntityExist(obj) then
local model = GetEntityModel(obj)
if not knownObjects[obj] then
knownObjects[obj] = true
print("[DEBUG] Skapat objekt på klienten:", model)
end
end
end
end
end
end)
config.lua
Config = {}
Config.TimeToLive = 1500 -- Standardtid för hur länge ett fordon får vara inaktivt
Config.TimeForUpdate = 30 -- Antal sekunder mellan uppdateringar från klient till server
Config.Blacklist = { "police" } -- Lista över fordon som inte ska spåras
Config.Custom = { -- Anpassade tidsgränser för specifika fordon
police2 = 60,
sheriff = 15
}
Gör en server.lua