翻译
--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)
以下是代码的中文翻译和注释:
--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]