汉化
-- 白名单区域检查函数
local function IsInWhitelistZone(vehicle)
local vehicleCoords = GetEntityCoords(vehicle)
for _, zone in ipairs(Config.WhitelistZones) do
local dist = #(vehicleCoords - vector3(zone.x, zone.y, zone.z))
if dist <= zone.radius then
return true
end
end
return false
end
Citizen.CreateThread(function()
local vehiclesDeleted = false -- 记录是否有车辆被删除
for vehicle in EnumerateVehicles() do
if not IsPedAPlayer(GetPedInVehicleSeat(vehicle, -1)) then
if not IsInWhitelistZone(vehicle) then -- 检查是否在白名单区域
-- 获取车辆的类型,跳过拖车类型(class 11)
local vehicleClass = GetVehicleClass(vehicle)
if vehicleClass == 11 then
goto continue
end
if Config.OnlyWipeBroken == true then
if GetVehicleEngineHealth(vehicle) <= 100.0 then
SetVehicleHasBeenOwnedByPlayer(vehicle, false)
SetEntityAsMissionEntity(vehicle, false, false)
DeleteVehicle(vehicle)
if Config.UseESX then
ESX.Game.DeleteVehicle(vehicle)
end
DeleteEntity(vehicle)
vehiclesDeleted = true
end
else
SetVehicleHasBeenOwnedByPlayer(vehicle, false)
SetEntityAsMissionEntity(vehicle, false, false)
DeleteVehicle(vehicle)
if Config.UseESX then
ESX.Game.DeleteVehicle(vehicle)
end
DeleteEntity(vehicle)
vehiclesDeleted = true
end
if Config.use10msdelay then
Citizen.Wait(10)
end
end
end
::continue::
end
-- 如果没有车辆需要清理,发送通知
if not vehiclesDeleted then
ESX.ShowNotification('~g~车辆清理已完成~s~\n没有需要清理的车辆。')
else
ESX.ShowNotification('~g~车辆清理已完成~s~\n所有无人驾驶车辆已被清理!')
end
end)
end)
这里是你的代码汉化及添加注释的版本:
-- 白名单区域检查函数
local function IsInWhitelistZone(vehicle)
-- 获取车辆的坐标
local vehicleCoords = GetEntityCoords(vehicle)
-- 遍历配置中的白名单区域
for _, zone in ipairs(Config.WhitelistZones) do
-- 计算车辆距离白名单区域中心的距离
local dist = #(vehicleCoords - vector3(zone.x, zone.y, zone.z))
-- 如果距离小于某个阈值(未给出,假设为5.0),则说明在白名单区域内
if dist < 5.0 then
return true-- 在白名单区域
end
end
return false-- 不在白名单区域
end
解释:
- 这个函数 `IsInWhitelistZone` 用于检查一辆车是否在一个白名单区域内。
- 函数会获取车辆的坐标,然后遍历配置中的所有白名单区域,计算车辆与每个区域中心的距离。
- 如果车辆在任一区域内,则返回 `true`,否则返回 `false`。
此代码可以放在 `server.lua` 或 `client.lua` 中,取决于你希望在服务器端还是客户端执行该逻辑。如果是在处理服务器上管理的区域检查,建议放在 `server.lua`。如果是与客户端玩家交互相关的检查,应该放在 `client.lua`。
页:
[1]