vgui - это нулевое значение Gmod

Я пытался сделать мод для gmod, который включает в себя панель 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( "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)"

person vikitan    schedule 27.10.2019    source источник


Ответы (1)


Поскольку вы вызываете его в общем доступе, он запускается как на сервере, так и на клиенте. Если ошибка синего цвета, это связано с тем, что таблица vgui не существует на сервере и вызывает ошибку в экземпляре сервера, но на стороне клиента она работает нормально.

Вы можете поместить это в оператор if CLIENT, и все будет в порядке.

person www.memers.club    schedule 27.10.2019
comment
Кстати: Напоминаем: вопросы и ответы здесь не ограничиваются небольшим количеством символов. Поэтому, пожалуйста, не используйте аббревиатуры, которые являются нормальными для ситуаций, когда разрешенное количество символов весьма ограничено. Другими словами, пожалуйста, используйте нормальный английский язык. - person Makyen♦; 27.10.2019