You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FiveM中high_phone脚本mail.lua解析错误求助

FiveM high_phone脚本解析错误排查与修复

错误描述

解析@high_phone/server/mail.lua时出现语法错误,第792行提示需要')'以闭合第778行的'(',错误位置靠近end语句。

问题代码片段

MySQL.Async.fetchScalar("SELECT `id` FROM phone_mail WHERE `owner` = @owner AND `subject` =     @subject ORDER BY `id` DESC LIMIT 1", {}, function(_ARG_0_)
    ({}).id = _ARG_0_
    ;({}).subject = _UPVALUE1_
    if "table" ~= type(_UPVALUE2_) or _UPVALUE2_ then
    end
    ;({}).recipients, ({})[1] = {}, _UPVALUE2_
    ;({}).address = _UPVALUE3_.address
    ;({}).name = _UPVALUE3_.name
    ;({}).sender, ({}).photo = {}, _UPVALUE3_.photo
    ;({}).content = _UPVALUE4_
    ;({}).time = _UPVALUE5_
    ;({}).attachments = _UPVALUE6_
    TriggerClientEvent("high_phone:receivedMail", _UPVALUE0_.source, {})
  end
end)

问题排查

  1. 括号不匹配:代码末尾存在两个end,但MySQL.Async.fetchScalar仅需要一个end闭合回调函数,多余的end导致Lua解析器判定第778行的(未被正确闭合。
  2. 无效空表操作:多次使用({}).xxx = ...的写法,每次({})都会创建新空表,赋值后直接丢弃,最终传给TriggerClientEvent的仍是空表{},既属于逻辑错误,也干扰了语法结构识别。

修复后的代码

MySQL.Async.fetchScalar("SELECT `id` FROM phone_mail WHERE `owner` = @owner AND `subject` = @subject ORDER BY `id` DESC LIMIT 1", {}, function(_ARG_0_)
    local mailData = {}
    mailData.id = _ARG_0_
    mailData.subject = _UPVALUE1_
    
    -- 修正收件人逻辑:若_UPVALUE2_非表或为空,初始化空收件人表
    if type(_UPVALUE2_) ~= "table" or not _UPVALUE2_ then
        mailData.recipients = {}
    else
        mailData.recipients = _UPVALUE2_
    end
    
    mailData.address = _UPVALUE3_.address
    mailData.name = _UPVALUE3_.name
    mailData.sender = { photo = _UPVALUE3_.photo }
    mailData.content = _UPVALUE4_
    mailData.time = _UPVALUE5_
    mailData.attachments = _UPVALUE6_
    
    TriggerClientEvent("high_phone:receivedMail", _UPVALUE0_.source, mailData)
end)

关键修复点

  • 移除多余的第二个end,解决括号不匹配的语法错误。
  • 创建统一的mailData表存储邮件数据,替代无效的空表赋值操作,确保数据能正确传递给客户端事件。
  • 修正if条件逻辑,修复原逻辑判断的漏洞。

内容的提问来源于stack exchange,提问作者Dominik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 05:40:27