以下是代码的翻译:
AddEventHandler('wasabi_ambulance:billPatient', function()
-- 如果玩家的工作是救护车
if ESX.PlayerData.job.name == 'ambulance' then
local player, dist = ESX.Game.GetClosestPlayer() -- 获取最近的玩家和距离
-- 如果没有找到玩家或距离超过4米
if player == -1 or dist > 4.0 then
TriggerEvent('wasabi_ambulance:notify', Strings.no_nearby, Strings.no_nearby_desc, 'error') -- 通知没有附近的玩家
else
local targetId = GetPlayerServerId(player) -- 获取目标玩家的服务器ID
local input = lib.inputDialog('开账单给病人', {'金额'}) -- 弹出输入对话框,提示输入金额
if not input then return end -- 如果没有输入,则返回
local amount = math.floor(tonumber(input)) -- 将输入的金额转换为数字并取整
-- 如果金额小于1
if amount < 1 then
TriggerEvent('wasabi_ambulance:notify', Strings.invalid_entry, Strings.invalid_entry_desc, 'error') -- 通知无效的输入
elseif Config.billingSystem == 'okok' then
local data = {
target = targetId, -- 目标玩家的ID
invoice_value = amount, -- 账单金额
invoice_item = Strings.medical_services, -- 账单项目
society = 'society_ambulance', -- 社会组织
society_name = '医院', -- 社会组织名称
invoice_notes = '' -- 账单备注
}
TriggerServerEvent('okokBilling:CreateInvoice', data) -- 创建账单
else
TriggerServerEvent('esx_billing:sendBill', targetId, 'society_ambulance', 'EMS', amount) -- 发送账单
end
end
end
end)
以上代码是用于在FiveM中处理救护车开账单给病人的事件。根据逻辑,如果执行该事件的玩家是救护车工作人员且附近有其他玩家,就会弹出输入对话框让用户输入金额,然后通过不同的账单系统来创建并发送账单。
这段代码应该放在 `Client.lua` 文件中,因为它涉及到客户端与玩家交互的功能。如果你有其他问题,欢迎继续提问! |