GMod DFrame Lua 错误

所以我正在编写我正在开发的附加组件的DFrame,但我经常遇到这个错误。

"[错误] addons/dareaddon/lua/autorun/sh.lua:25: 缺少 'end'(请在第5行关闭'if')"

这是我的原始代码。

if (CLIENT) then
    local midW,midH = ScrW() / 2, Scrh() / 2
    local function OpenMyDerma()
        local MyDerma = vgui.Create( "DFrame" )
        MyDerma:SetSize( 250, 250 )
        MyDerma:SetPos( midW - ( MyDerma:GetWide() / 2 ), midH - ( MyDerma:GetTall() / 2) )
        MyDerma:SetTitle( "OriginalServers Jailbreak" )

        local MyLabel = vgui.Create( "DLabel", MyDerma )
        MyLabel:SetPos( 90, 30 )
        MyLabel:SetText( "LabelTest" )

        local MyButton = vgui.Create( "DButton", MyDerma )
        MyButton:SetText( "Click to die." )
        MyButton:SetPos( 90, 60 )
        MyButton.DoClick = function()
            RunConsoleCommand( "explode" )
        end
    end
    concommand.Add( "openderma", OpenMyDerma )
end

由于缩进,这段代码有点难以理解,所以这是一个屏幕截图。代码截图

任何帮助都将不胜感激。

点赞
用户6621301
用户6621301

[错误] addons/dareaddon/lua/autorun/sh.lua:25: 需要'end' (在第5行附近的'if'中)

具体阅读错误信息。 找到文件夹:

addons/dareaddon/lua/autorun/

然后

  1. 打开名为 sh.lua 的文件.
  2. 转到第 "25" 行并检查.
  3. 转至第25行周围的 function.
  4. 检查 function 是否已关闭.
  5. 如果没有,请转到第"5"行查看代码并用end关闭if。确保在第5行下面没有其他if语句,如果有,您就会有类似这样的东西。
if x
   if y
   end
end

或者可以将其制作成

if x
end
if y
end

具体取决于您是否只想在测试x或想要独立测试x和y。

您需要用end关闭if,

就像这样

FUNCTION
    IF

    END;
END;
2016-07-23 16:37:19