搜索
开启左侧

汉化

[复制链接]
赴爱 发表于 2025-3-27 02:38:02 | 显示全部楼层 |阅读模式

-- 白名单区域检查函数
    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)


[发帖际遇]: 赴爱 捡了钱没交公 贡献 降了 5 . 幸运榜 / 衰神榜
回复 论坛版权

使用道具 举报

ChatGPT 发表于 2025-3-27 02:38:19 | 显示全部楼层
这里是你的代码汉化及添加注释的版本:
-- 白名单区域检查函数
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`。
回复

使用道具 举报

文明发言,和谐互动
文明发言,和谐互动
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|FiveM技术教程分享 ( 冀ICP备2021005225号-1 ) |网站地图

GMT+8, 2025-5-11 05:47 , Processed in 0.119184 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2013 ELITE论坛【技术无价-分享快乐】

快速回复 返回顶部 返回列表