vgui 是一个空值 Gmod

一直在尝试在 Gmod 中制作一个包括 derma 面板的模组。但当我试图使用该 derma 时,错误出现了。

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( "生物力量" )
    Frame:SetVisible( true )
    Frame:SetDraggable( false )
    Frame:ShowCloseButton( true )
    Frame:MakePopup()

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

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

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

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

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

当我尝试用次要攻击打开 derma 面板时,出现了这个错误:

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

既然你在共享中调用它,它将在服务器和客户端上运行。如果出现蓝色错误,那是因为vgui表在服务器上不存在,并在服务器实例中出现错误,但在客户端上运行完全正常。

您可以将其放在if客户端语句中,一切都会没问题。

2019-10-27 13:44:51