Derma 查看服务器上的所有玩家

Derma see all players on the server

我是 lua 和 gmod 的新手,完全没有编码,我创建了一个 SENT,当您按下实体时,您会打开 derma 并可以选择您想要的,但问题就在这里,这一切当有人使用实体时,服务器上的玩家会看到真皮。我真的卡在这里了

shared.lua

ENT.Type = "anim"
ENT.Base = "base_gmodentity"

ENT.PrintName = "Гроб Пидораса"
ENT.Spawnable = true
ENT.Category = "Кладбище"

int.lua

AddCSLuaFile("shared.lua")

include("shared.lua")

util.AddNetworkString("sendtomogila")



function ENT:Initialize()
    self:SetModel("models/props_c17/gravestone_coffinpiece001a.mdl")
    self:PhysicsInit( SOLID_VPHYSICS )
    self:SetMoveType( MOVETYPE_VPHYSICS)
    self:SetSolid(SOLID_VPHYSICS)
    local phys = self:GetPhysicsObject()
    if (phys:IsValid()) then phys:Wake() end

end


function ENT:Use(ply)
    self:SetUseType(3)
    if ply:IsPlayer() then 
        net.Start("sendtomogila")
    net.WriteEntity(ply)
    net.Broadcast()
    end
end

cl_init.lua

include("shared.lua")

surface.CreateFont("bigHud", {
    font = "Open Sans Bold",
    size = 250,
    weight = 800,
    antialias = true
} )

surface.CreateFont("bigHud1", {
    font = "Open Sans Bold",
    size = 30,
    weight = 800,
    outline = true
} )


function ENT:Draw()
    self:DrawModel()

    cam.Start3D2D(self:GetPos() + Vector(0,0,50), Angle(0, RenderAngles().y - 90,90), 0.1)
        draw.SimpleTextOutlined("Могила Пидора", "bigHud", 0, 0, Color(255,255,255), TEXT_ALIGN_CENTER, 0, 2, Color(0,0,0))
    cam.End3D2D()
end

net.Receive("sendtomogila", function(len, ply)

local gav = net.ReadEntity()

if (!Frame) then
    print(gav)


    local Frame = vgui.Create( "DFrame" )   --Создаёт окно.
    Frame:SetTitle( "ЭТО ОКНО ВИДЯТ ТОЛЬКО МУЖИКИ" )    --Устанавливает название окна.
    Frame:SetPos( 100,100 ) --Устанавливает позицию окна.
    Frame:SetSize( ScrW() * 300/1920, ScrH() * 200/1080 )
    Frame:Center()
    Frame:SetSizable(true)  --/Если True, окно можно будет растянуть.
    Frame:SetVisible( true )    --Если True, окно сразу включается при запуске функции, при false будет ждать команду на запуск.
    Frame:SetDraggable( true ) --//Если True, окно можно перетаскивать.
    Frame:ShowCloseButton( true ) --//Если True, у окна есть кнопка закрытия (не советую убирать на время тестов).
    Frame:MakePopup(true) --//Если True, экран блокируется и появляется курсор.

    local Text = vgui.Create("DLabel")
    Text:SetParent( Frame ) --Устанавливает родительский элемент(то, на чём распологается кнопка).
    Text:SetPos(20, 50)
    Text:SetColor(Color(255,255,255,255)) --Устанавливает цвет текста
    Text:SetFont("default") --Устанавливает шрифт текста. (можно использовать только те шрифты, которые доступны в игре)
    Text:SetText("ТЫ ПИДОР?") --Устанавливает текст
    Text:SizeToContents() --Автоматически подогнать размер (если размер будет меньше текста, он оборвётся многоточием)

    local Knopka1 = vgui.Create( "DButton", Frame ) --//Создаёт кнопку.
    local Knopka2 = vgui.Create( "DButton", Frame )
    Knopka1:SetText( "НЕТ" )    --//Устанавливает текст на кнопке.
    Knopka1:SetPos( 160, 130 )--Устанавливает позицию кнопка.
    Knopka1:SetSize( ScrW() * 100/1920, ScrH() * 30/1080 )  --//Устанавливает размер кнопки.
    Knopka1.DoClick = function ()   --//Функция, выполняющую кнопка.
    Knopka2:SetEnabled(false)
    RunConsoleCommand( "kill" )-- //То, что делает кнопка. В данном случае включает анимацию (насмешка/жест).
    Knopka1:SetText( "ПИДОРА ОТВЕТ" )-- //То, что делает кнопка. В данном случае меняет текст на себе.
    end --//Конец функции кнопки.

    Knopka2:SetText( "ДА" ) --//Устанавливает текст на кнопке.
    Knopka2:SetPos( 40, 130 )--Устанавливает позицию кнопка.
    Knopka2:SetSize( ScrW() * 100/1920, ScrH() * 30/1080 )  --//Устанавливает размер кнопки.
    Knopka2.DoClick = function ()   --//Функция, выполняющую кнопка.
    Knopka1:SetEnabled(false)
    RunConsoleCommand( "kill" )-- //То, что делает кнопка. В данном случае включает анимацию (насмешка/жест).
    Knopka2:SetText( "ХУЙ В ЖОПУ НА" )-- //То, что делает кнопка. В данном случае меняет текст на себе.
    end --//Конец функции кнопки.

    elseif (Frame) then print("hi") end





end)

我尝试使用 if ply == ply then draw all derma,但没有帮助;p

net.Broadcast() - 将当前构建的网络消息发送给所有连接的玩家。

您需要 net.Send( Player ply ) - 将当前消息发送给指定的玩家,或发送给 table 中列出的所有玩家。