搜索
开启左侧

翻译

[复制链接]
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)。
- 只有特定职业(如救护车、警察、机械师和出租车司机)的玩家可以使用此功能。
- 输入的值会被验证,如果无效则会显示错误通知。
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|首页 ( 冀ICP备2021005225号-1 ) |网站地图

GMT+8, 2025-2-9 01:06 , Processed in 0.101563 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

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

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