1214570993 发表于 2024-9-23 21:03:45

翻译


--ESX = nil
ESX = exports["es_extended"]:getSharedObject()

Citizen.CreateThread(function()
    --while ESX == nil do
      --ESX = exports["es_extended"]:getSharedObject()
      --Citizen.Wait(0)
    --end

    while ESX.GetPlayerData().job == nil do
      Citizen.Wait(10)
    end

    ESX.PlayerData = ESX.GetPlayerData()
end)



Citizen.CreateThread(function()
    while true do
      Citizen.Wait(0)
      if IsControlJustReleased(0, 56) then --F7 mechanic
          ESX.PlayerData = ESX.GetPlayerData()
            if ESX.PlayerData.job.name == 'ambulance' or ESX.PlayerData.job.name == 'police' or ESX.PlayerData.job.name == 'mechanic' or ESX.PlayerData.job.name == 'taxi' then ---添加職業 依格式可無限添加
                ESX.UI.Menu.Open("dialog", GetCurrentResourceName(), "coming_NBID", {
                  title = "接单系统: <游戏ID>"
                }, function(data, menu)
                  local NBID = tonumber(data.value)
                  if NBID == nil then
                     ESX.ShowNotification('~r~请输入数字')
                  else
                        menu.close()
                        ESX.UI.Menu.Open("dialog", GetCurrentResourceName(), "coming_NBID2", {
                         title = "接单系统:<公里数>"
                        }, function(data2, menu2)
                         local NBID2 = tonumber(data2.value)
                            if NBID2 == nil then
                           ESX.ShowNotification('~r~请输入数字')
                            else
                           TriggerServerEvent("Nico_JobRelease:mes", NBID, NBID2)
                           menu2.close()
                            end
                        end, function(data2, menu)
                         menu2.close()
                        end)                  
                  end
                end, function(data, menu)
               menu.close()
                end)                  
            else   
            ESX.ShowNotification("~r~你不是公职人员")
            end            
      end
    end
end)



ChatGPT 发表于 2024-9-23 21:03:59

以下是代码的中文翻译和注释:

--ESX = nil
ESX = exports["es_extended"]:getSharedObject() -- 获取共享对象

Citizen.CreateThread(function()
    --while ESX == nil do
      --ESX = exports:getSharedObject() -- 如果ESX为空,则获取共享对象
      --Citizen.Wait(0) -- 等待0毫秒
    --end

    while ESX.GetPlayerData().job == nil do -- 等待直到玩家的工作数据不为空
      Citizen.Wait(10) -- 每10毫秒检查一次
    end

    ESX.PlayerData = ESX.GetPlayerData() -- 获取玩家数据
end)

Citizen.CreateThread(function()
    while true do
      Citizen.Wait(0) -- 每帧循环
      if IsControlJustReleased(0, 56) then -- 当按下F7键
            ESX.PlayerData = ESX.GetPlayerData() -- 更新玩家数据
            if ESX.PlayerData.job.name == 'ambulance' or ESX.PlayerData.job.name == 'police' or ESX.PlayerData.job.name == 'mechanic' or ESX.PlayerData.job.name == 'taxi' then -- 检查玩家是否为特定职业
                ESX.UI.Menu.Open("dialog", GetCurrentResourceName(), "coming_NBID", {
                  title = "接单系统: " -- 菜单标题
                }, function(data, menu)
                  local NBID = tonumber(data.value) -- 获取输入的值并转换为数字
                  if NBID == nil then
                        ESX.ShowNotification('~r~请输入数字') -- 如果输入无效,显示通知
                  else
                        menu.close() -- 关闭当前菜单
                        ESX.UI.Menu.Open("dialog", GetCurrentResourceName(), "coming_NBID2", {
                            title = "接单系统:" -- 第二个菜单标题
                        }, function(data2, menu2)
                            local NBID2 = tonumber(data2.value) -- 获取第二个输入的值并转换为数字
                            if NBID2 == nil then
                              ESX.ShowNotification('~r~请输入数字') -- 如果输入无效,显示通知
                            else
                              TriggerServerEvent("Nico_JobRelease:mes", NBID, NBID2) -- 触发服务器事件
                              menu2.close() -- 关闭第二个菜单
                            end
                        end, function(data2, menu)
                            menu2.close() -- 关闭菜单
                        end)                  
                  end
                end, function(data, menu)
                  menu.close() -- 关闭菜单
                end)                  
            else   
                ESX.ShowNotification("~r~你不是公职人员") -- 如果不是公职人员,显示通知
            end            
      end
    end
end)

### 代码说明:
- 该代码主要用于在FiveM中实现一个接单系统。
- 通过按下F7键,玩家可以打开一个输入菜单,输入订单ID(NBID)和第二个订单ID(NBID2)。
- 只有特定职业(如救护车、警察、机械师和出租车司机)的玩家可以使用此功能。
- 输入的值会被验证,如果无效则会显示错误通知。
页: [1]
查看完整版本: 翻译