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 中列出的所有玩家。
我是 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 中列出的所有玩家。