GLua报错pivohelperv2.lua:127 ')'附近意外符号问题求助
GLua 脚本
unexpected symbol near ')'错误修复 报错定位:
lua/pivohelperv2.lua第127行
报错场景:Garry's Mod VGUI Derma 界面开发
错误原因
- 直接诱因:代码末尾存在无效的多余闭合符
end),没有对应的函数/括号声明需要该符号闭合,解析器读到孤立的)直接抛出语法错误 - 潜在逻辑问题:
- 片段缺失外层
PivoDerma函数的声明开头,结构不完整 - 第一行创建DButton时传入的父级参数
dPanelDa仅在按钮点击回调内部定义,外部作用域访问为nil,就算语法修正也会运行时报错 - 代码缩进混乱,回调函数的闭合层级不清晰,后续维护极易出问题
- 片段缺失外层
修复后完整代码
-- 外层面板函数声明(原片段缺失该开头) function PivoDerma() -- 补全外层父面板定义(原代码DButton依赖的父级dPanelDa未在外层定义,这里按逻辑补全,可按需替换成你自己的父面板) local dPanelMain = vgui.Create("DFrame") dPanelMain:SetSize(900, 600) dPanelMain:Center() dPanelMain:SetTitle("ПивоХелп") dPanelMain:ShowCloseButton(true) dPanelMain:MakePopup() dPanelMain.Paint = function(self, w, h) draw.RoundedBox(5, 0, 0, w, h, Color(90, 90, 90, 200)) end local dPanelButton1 = vgui.Create("DButton", dPanelMain) --Кнопка для лотки dPanelButton1:SetSize(250, 50) dPanelButton1:SetPos(625, 370) dPanelButton1:SetText("") dPanelButton1.Paint = function(self, w, h) draw.RoundedBox(30, 0, 0, w, h, Color(90, 90, 90, 200)) draw.SimpleText("Админский ПивоХелп", "help", w / 2, h / 2, Color(224, 184, 128), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER) end dPanelButton1.DoClick = function() local dPanelDa = vgui.Create("DFrame") dPanelDa:SetSize(500, 300) dPanelDa:SetPos(ScrW() / 2 - 250, ScrH() / 2 - 150) -- 原坐标偏移值不对,这里改成标准居中写法 dPanelDa:SetTitle(" Админский ПивоХелп ") dPanelDa:ShowCloseButton(true) dPanelDa:MakePopup() dPanelDa.Paint = function(self, w, h) draw.RoundedBox(5, 0, 0, w, h, Color(90, 90, 90, 200)) draw.RoundedBox(5, 2, 2, w, 25, Color(224, 184, 128)) end end end -- 延迟1秒加载面板 timer.Simple(1, function() PivoDerma() end) -- потнич
注意事项
- 代码中用到的
help字体需要提前用surface.CreateFont注册,否则文字会显示为默认字体或者乱码 - 如果你已经有现成的外层父面板,把示例里的
dPanelMain替换成你自己的父面板变量即可,注意变量作用域不要跨块访问 - 原代码中管理面板的坐标计算有误,
ScrW()/2 - 450在1920宽度屏幕下会把面板放到屏幕最左侧,修复版改成了标准居中写法,可按需调整位置
内容的提问来源于stack exchange,提问作者Buba
相关产品推荐
相关产品推荐

