vgui 是一个零值 Gmod

Posted

技术标签:

【中文标题】vgui 是一个零值 Gmod【英文标题】:vgui is a nil value Gmod 【发布时间】:2019-10-27 13:03:21 【问题描述】:

我一直在尝试为 gmod 做一个 mod,其中包括 derma panel。但是当我尝试使用该真皮时,就会出现错误。

AddCSLuaFile( "shared.lua" )
include("shared.lua")

function SWEP:PrimaryAttack()   
    return false
end

function SWEP:SecondaryAttack()
    DermaPanel()
end


function SWEP:Reload()
    return false
end

SelectedPower = "Stasis"

function DermaPanel()
    local Frame = vgui.Create( "DFrame" )
    Frame:SetPos(650,500)
    Frame:SetSize( 585, 150 )
    Frame:SetTitle( "Biotic Powers" )
    Frame:SetVisible( true )
    Frame:SetDraggable( false )
    Frame:ShowCloseButton( true )
    Frame:MakePopup()

    local bpush = vgui.Create( "DButton", Frame )
    bpush:SetText( "Push" )
    bpush:SetSize(100,30)
    bpush:SetPos(25,100)

    local bpull = vgui.Create( "DButton", Frame )
    bpull:SetText( "Pull" )
    bpull:SetSize(100,30)
    bpull:SetPos(135,100)

    local bstasis = vgui.Create( "DButton", Frame )
    bstasis:SetText( "Stasis" )
    bstasis:SetSize(100,30)
    bstasis:SetPos(245,100)

    local blift = vgui.Create( "DButton", Frame )
    blift:SetText( "Lift" )
    blift:SetSize(100,30)
    blift:SetPos(355,100)

    local bbarrier = vgui.Create( "DButton", Frame )
    bbarrier:SetText( "Barrier" )
    bbarrier:SetSize(100,30)
    bbarrier:SetPos(465,100)
end

当我尝试用二次点火打开真皮面板时,出现此错误:

"[ERROR] addons/mass effect biotics/lua/weapons/weapon_biotics.lua:59: attempt to index global 'vgui' (a nil value)"

【问题讨论】:

【参考方案1】:

由于您在共享中调用它,因此它同时在服务器和客户端上运行。如果错误是蓝色的,那是因为 vgui 表在服务器上不存在,并且在服务器实例中出错,但它在客户端运行正常。

你可以把它放在 if CLIENT 语句中,一切都会好的。

【讨论】:

顺便说一句:只是提醒一下:这里的问题和答案不限于少数字符。因此,在允许的字符数非常有限的情况下,请不要使用正常的缩写。也就是说,请使用正常的英语。

以上是关于vgui 是一个零值 Gmod的主要内容,如果未能解决你的问题,请参考以下文章

无法在 gmod 中创建实体

Lua GMOD自定义聊天脚本问题

我正在尝试通过 Logitech GHub 为 GMod 制作一个 lua 脚本,将玩家视图旋转 180 度,但不知道如何进行旋转

这个lua代码是否可以在我的GMOD服务器上下载某些文件

无法让 PlayerSay 在 Gmod lua 插件中工作

资源分享Gmod动态方框透视脚本