Im new to lua and gmod, and coding at all, i create a SENT, that when you press at entity you open the derma and can choose what you want, but problem is here, that all players on the server see the derma when somebody use entity. I really get stucked here
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)
I tried to use if ply == ply then draw all derma, but it didnt help ;p
net.Broadcast()
- Sends the currently built net message to all connected players.you needed
net.Send( Player ply )
- Sends the current message to the specified player, or to all players listed in the table.