I am making an “anticheat” for my server and using code from a resource already existing “atg-anticar”
I just made a little adjustment so it despawns not only the blacklisted cars but also the ones that doesn’t match the vehicle plate syntax of the server.
Here is the code that works from atg-anticar:
Citizen.CreateThread(
function()
while true do
Citizen.Wait(10000)
for veh in vehicles() do
if vehblacklist[GetEntityModel(veh)] == true then
local ped = GetPedInVehicleSeat(veh, -1)
if ped ~= 0 then
if IsPedAPlayer(ped) then
ClearPedTasksImmediately(ped)
while not NetworkHasControlOfEntity(veh) do
NetworkRequestControlOfEntity(veh)
Citizen.Wait(1)
end
SetEntityAsMissionEntity(veh, true, true)
DeleteVehicle(veh)
DeleteEntity(veh)
end
else
while not NetworkHasControlOfEntity(veh) do
NetworkRequestControlOfEntity(veh)
Citizen.Wait(1)
end
SetEntityAsMissionEntity(veh, true, true)
DeleteVehicle(veh)
DeleteEntity(veh)
end
end
Citizen.Wait(10)
end
end
end
)
And here is the modified one that for some reason only runs once and then doesn’t run again
Citizen.CreateThread(
function()
while true do
Citizen.Wait(10000)
for veh in vehicles() do
if vehblacklist[GetEntityModel(veh)] == true then
local ped = GetPedInVehicleSeat(veh, -1)
if ped ~= 0 then
if IsPedAPlayer(ped) then
ClearPedTasksImmediately(ped)
while not NetworkHasControlOfEntity(veh) do
NetworkRequestControlOfEntity(veh)
Citizen.Wait(1)
end
SetEntityAsMissionEntity(veh, true, true)
DeleteVehicle(veh)
DeleteEntity(veh)
end
else
while not NetworkHasControlOfEntity(veh) do
NetworkRequestControlOfEntity(veh)
Citizen.Wait(1)
end
SetEntityAsMissionEntity(veh, true, true)
DeleteVehicle(veh)
DeleteEntity(veh)
end
elseif string.find(tostring(GetVehicleNumberPlateText(veh)), " ") ~= 4 then
local ped = GetPedInVehicleSeat(veh, -1)
if ped ~= 0 then
if IsPedAPlayer(ped) then
ClearPedTasksImmediately(ped)
while not NetworkHasControlOfEntity(veh) do
NetworkRequestControlOfEntity(veh)
Citizen.Wait(1)
end
SetEntityAsMissionEntity(veh, true, true)
DeleteVehicle(veh)
DeleteEntity(veh)
end
else
while not NetworkHasControlOfEntity(veh) do
NetworkRequestControlOfEntity(veh)
Citizen.Wait(1)
end
SetEntityAsMissionEntity(veh, true, true)
DeleteVehicle(veh)
DeleteEntity(veh)
end
end
Citizen.Wait(10)
end
end
end
)