Есть панелька, есть кнопка, нужно сделать так, чтобы игрок, который нажал на эту кнопку получал определённую профессию (Не через консольную команду с аргументами say / job.command!)
Грубо говоря, чтобы сервер выдавал игроку профессию
1 лайк
-- Создаем клиентскую панель с кнопкой
hook.Add("OnPlayerChat", "OpenCustomJobMenu", function(ply, text)
if ply == LocalPlayer() and text == "!jobmenu" then
local frame = vgui.Create("DFrame")
frame:SetSize(300, 150)
frame:Center()
frame:SetTitle("Выбор профессии")
frame:MakePopup()
local button = vgui.Create("DButton", frame)
button:SetText("Стать полицейским")
button:SetPos(50, 50)
button:SetSize(200, 50)
button.DoClick = function()
net.Start("SetPlayerJob")
net.SendToServer()
end
return true
end
end)
concommand.Add("open_job_menu", function()
local frame = vgui.Create("DFrame")
frame:SetSize(300, 150)
frame:Center()
frame:SetTitle("Выбор профессии")
frame:MakePopup()
local button = vgui.Create("DButton", frame)
button:SetText("Стать полицейским")
button:SetPos(50, 50)
button:SetSize(200, 50)
button.DoClick = function()
net.Start("SetPlayerJob")
net.SendToServer()
end
end)
if SERVER then
util.AddNetworkString("SetPlayerJob")
net.Receive("SetPlayerJob", function(len, ply)
local jobIndex = TEAM_POLICE -- Индекс профессии, TEAM_POLICE должен быть определен в вашем скрипте профессий
ply:setDarkRPVar("job", team.GetName(jobIndex))
ply:changeTeam(jobIndex, true)
end)
end