赴爱 发表于 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)


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`。
页: [1]
查看完整版本: 汉化