Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if SERVER then return end
- local CFG = {
- Background = function(ply)
- return Color(0,0,0,150)
- end,
- Text = function(ply)
- return Color(200,200,200)
- end,
- TextEnter = function(ply) -- меняет цвет текста, когда наводится курсор
- return Color(255,255,255)
- end,
- Row = function(ply)
- return Color(0,0,150,150)
- end
- }
- AddCSLuaFile()
- function ContextOpen()
- LocalPlayer():ConCommand ("open_context_menu")
- end
- hook.Add ("OnContextMenuOpen", "Context", ContextOpen)
- function closecontext ()
- --
- end
- hook.Add ("OnContextMenuClose", "Context", closecontext)
- function draw_textbox(strTitle, strBtn, strDefaultText, fnEnter)
- local Window = vgui.Create ("DFrame")
- Window:SetTitle(strTitle)
- Window:ShowCloseButton(true)
- Window:MakePopup()
- Window:SetSize (250+string.len(strTitle), 100)
- Window:Center()
- Window:SetKeyboardInputEnabled(true)
- Window:SetMouseInputEnabled(true)
- Window.Paint = function()
- draw.RoundedBox ( 0, 0, 0, Window:GetWide(), Window:GetTall(), Color(0,0,0,255) )
- draw.RoundedBox ( 0, 1, 1, Window:GetWide()-2, Window:GetTall()-2, Color(0, 76, 60,100) )
- end
- local TextEntr = vgui.Create( "DTextEntry", Window)
- TextEntr:SetPos (75+string.len(strTitle)/2, 25)
- TextEntr:SetSize (110, 20)
- TextEntr:SetMultiline (false)
- TextEntr:SetAllowNonAsciiCharacters( true )
- TextEntr:SetText(strDefaultText || "")
- TextEntr:SetEnterAllowed (true)
- local Btn = vgui.Create ("DButton", Window)
- Btn:SetText(strBtn)
- Btn:SetSize (110, 20)
- Btn:SetPos (75+string.len(strTitle)/2, 50)
- Btn.DoClick = function ()
- fnEnter( TextEntr:GetValue() )
- Window:Remove()
- end
- end
- function OpenContextMenu(ply, argm, cmd)
- local context = vgui.Create("DMenuCustom")
- context.PLY = ply
- context.CLR = CFG.Background
- context.Row = CFG.Row
- context.Text = CFG.Text
- context.TextEnter = CFG.TextEnter
- context:AddSpacer()
- ------------------------------------------------------------------------------------------
- context:AddOption( "Поддержка", function()
- RunConsoleCommand("support")
- end):SetImage("icon16/award_star_add.png")
- context:AddOption( "ЗАСТРЯЛ!", function()
- RunConsoleCommand("say", "!stuck")
- end):SetImage("icon16/brick_error.png")
- context:AddSpacer()
- context:AddOption("Службы", function()
- RunConsoleCommand ("say", "/services")
- end):SetImage("icon16/newspaper.png")
- if ply:Team() == TEAM_GARBAGEMAN then
- context:AddOption( "Мусорный Пакет", function()
- RunConsoleCommand("say", "/buytrashbag")
- end):SetImage("icon16/package.png")
- end
- context:AddOption( "Банда", function()
- RunConsoleCommand("say", "!gang")
- end):SetImage("icon16/flag_red.png")
- context:AddOption( "Управление Битмайнерами", function()
- RunConsoleCommand("say", "!remotebitminers")
- end):SetImage("materials/s_phone.png")
- context:AddOption( "Прглашения в БАНДУ", function()
- RunConsoleCommand("say", "!ganginvites")
- end):SetImage("icon16/flag_red.png")
- context:AddSpacer()
- context:AddOption( "Ввести ПРОМОКОД", function()
- RunConsoleCommand("say", "/promo")
- end):SetImage("icon16/css.png")
- context:AddSpacer()
- --[[SubMenu("Выписать чек", "icon16/script_edit.png", function(self)
- for k, v in pairs(player.GetAll()) do
- if v == LocalPlayer() then continue end
- self:AddOption(v:Name(), Request("Выписка чека", "Сколько денег должен получить человек?", function(s)
- RunConsoleCommand("darkrp", "cheque", v:UserID(), s)
- end)):SetColor(v:getJobTable().color)
- end
- end)]]--
- context:AddOption( "Приглашения на работу", function()
- RunConsoleCommand("say", "/jobs")
- end):SetImage("icon16/coins.png")
- if ply:Team() == TEAM_KILLER then
- context:AddOption( "Меню заказов киллера", function()
- RunConsoleCommand("say", "!hits")
- end):SetImage("icon16/database_table.png")
- end
- context:AddOption( "Заказать убийство", function()
- RunConsoleCommand("say", "!placehit")
- end):SetImage("icon16/script_go.png")
- --[[*
- * Начало общих кнопок
- ]]
- context:AddOption( "Поддержка", function()
- RunConsoleCommand("support")
- end):SetImage("icon16/award_star_add.png")
- -------------[[ IS CP/MAYOR ]]----------
- --[[Spacer(isCP)
- SubMenu("Повесить розыск", "icon16/flag_red.png", function(self)
- for k, v in pairs(player.GetAll()) do
- if v == LocalPlayer() then continue end
- if not v:isWanted() then
- self:AddOption(v:Name(), Request("Повесить розыск", "Для чего вы ищите его?", function(s)
- RunConsoleCommand("darkrp", "wanted", v:UserID(), s)
- end)):SetColor(v:getJobTable().color)
- end
- end
- end, isCP)
- SubMenu("Снять розыск", "icon16/flag_green.png", function(self)
- for k, v in pairs(player.GetAll()) do
- if v:isWanted() then
- self:AddOption(v:Name(), function()
- RunConsoleCommand("darkrp", "unwanted", v:UserID(), s)
- end):SetColor(v:getJobTable().color)
- end
- end
- end, isCP)
- SubMenu("Запросить ордер", "icon16/door_in.png", function(self)
- for k, v in pairs(player.GetAll()) do
- if v == LocalPlayer() then continue end
- self:AddOption(v:Name(), function(s)
- RunConsoleCommand("darkrp", "warrant", v:UserID(), s)
- end):SetColor(v:getJobTable().color)
- end
- end, isCP)
- Option("Выдать лицензию", "icon16/page_add.png", function(self)
- RunConsoleCommand("darkrp", "givelicense")
- end, function()
- local ply = LocalPlayer()
- local noMayorExists = fn.Compose{fn.Null, fn.Curry(fn.Filter, 2)(ply.isMayor), player.GetAll}
- local noChiefExists = fn.Compose{fn.Null, fn.Curry(fn.Filter, 2)(ply.isChief), player.GetAll}
- local canGiveLicense = fn.FOr{ply.isMayor, fn.FAnd{ply.isChief, noMayorExists}, fn.FAnd{ply.isCP, noChiefExists, noMayorExists}}
- -- Mayors can hand out licenses
- -- Chiefs can if there is no mayor
- -- CP's can if there are no chiefs nor mayors
- return canGiveLicense(ply)
- end)
- ---
- ---Начало кнопок для мэра
- ---
- Spacer(function() return LocalPlayer():isMayor() end)
- Option("Объявить ком. час", "icon16/stop.png", function()
- RunConsoleCommand("darkrp", "lockdown")
- end, function() return LocalPlayer():isMayor() and not GetGlobalBool("DarkRP_LockDown") end)
- Option("Отменить ком. час", "icon16/stop.png", function()
- RunConsoleCommand("darkrp", "unlockdown")
- end, function() return LocalPlayer():isMayor() and GetGlobalBool("DarkRP_LockDown") end)
- Option("Дать задание", "icon16/application.png",
- Request("Дать задание", "Что нужно делать?", function(s)
- RunConsoleCommand("darkrp", "agenda", s)
- end),
- function()
- for k, v in pairs(DarkRPAgendas) do
- if type(v.Manager) == "table" then
- if table.HasValue(v.Manager, LocalPlayer():Team()) then return true end
- elseif v.Manager == LocalPlayer():Team() then
- return true
- end
- end
- end)
- context:AddSpacer()
- SubMenu("Показать SteamID", "icon16/tag_green.png", function(self)
- for k, v in pairs(player.GetAll()) do
- self:AddOption(v:Name() .. " - " .. v:SteamID(), function()
- SetClipboardText(time)
- LocalPlayer():ChatPrint("SteamID скопирован в буфер обмена")
- end):SetColor(v:getJobTable().color)
- end
- end)
- SubMenu("Телепортироваться к", "icon16/arrow_up.png", function(self)
- for k, v in pairs(player.GetAll()) do
- if v == LocalPlayer() then continue end
- self:AddOption(v:Nick(), function()
- RunConsoleCommand("ulx", "goto", v:Nick())
- end):SetColor(v:getJobTable().color)
- end
- end, function() return ULib.ucl.query(LocalPlayer(), "ulx goto") end)
- SubMenu("Вернуть", "icon16/arrow_up.png", function(self)
- for k, v in pairs(player.GetAll()) do
- if v == LocalPlayer() then continue end
- self:AddOption(v:Nick(), function()
- RunConsoleCommand("ulx", "return", v:Nick())
- end):SetColor(v:getJobTable().color)
- end
- end, function() return ULib.ucl.query(LocalPlayer(), "ulx return") end)
- SubMenu("Телепортировать к себе ", "icon16/arrow_up.png", function(self)
- for k, v in pairs(player.GetAll()) do
- if v == LocalPlayer() then continue end
- self:AddOption(v:Nick(), function()
- RunConsoleCommand("ulx", "bring", v:Nick())
- end):SetColor(v:getJobTable().color)
- end
- end, function() return ULib.ucl.query(LocalPlayer(), "ulx bring") end)
- SubMenu("ULX Cmds", "icon16/application_xp_terminal.png", function(self)
- self:AddOption("Невидимость", function()
- RunConsoleCommand("ulx", "cloak")
- end):SetIcon("icon16/status_offline.png")
- self:AddOption("Видимость", function()
- RunConsoleCommand("ulx", "uncloak")
- end):SetIcon("icon16/status_offline.png")
- self:AddOption("Бессмертие", function()
- RunConsoleCommand("ulx", "god")
- end):SetIcon("icon16/shield.png")
- self:AddOption("Смертие", function()
- RunConsoleCommand("ulx", "ungod")
- end):SetIcon("icon16/shield.png")
- end, function() return LocalPlayer():IsAdmin() end)
- ]]--
- --[[
- context:AddOption("Ноуклип", "icon16/arrow_out.png", function()
- RunConsoleCommand("ulx", "noclip")
- end, function() return ULib.ucl.query(LocalPlayer(), "ulx noclip") end)
- context:AddOption("АДМИН МЕНЮ КИЛЛЕРА", "icon16/arrow_out.png", function()
- RunConsoleCommand("say", "!hitsconfig")
- end, function() return ULib.ucl.query(LocalPlayer(), "ulx noclip") end)
- context:AddOption("!Reviveme", "icon16/shield.png", function()
- RunConsoleCommand("say", "!reviveme")
- end, function() return ULib.ucl.query(LocalPlayer(), "ulx noclip") end)
- ]]--
- context:AddOption( "Ноуклип", function()
- RunConsoleCommand("ulx", "noclip")
- end, function() return ULib.ucl.query(LocalPlayer(), "ulx noclip") end):SetImage("icon16/arrow_out.png")
- context:AddOption( "АДМИН МЕНЮ КИЛЛЕРА", function()
- RunConsoleCommand("ulx", "!hitsconfig")
- end, function() return ULib.ucl.query(LocalPlayer(), "ulx noclip") end):SetImage("icon16/arrow_out.png")
- context:AddOption( "!Reviveme", function()
- RunConsoleCommand("ulx", "!reviveme")
- end, function() return ULib.ucl.query(LocalPlayer(), "ulx noclip") end):SetImage("icon16/arrow_out.png")
- if ULib.ucl.query(LocalPlayer(), "ulx noclip") then
- local demotemenu, edited = context:AddSubMenu("Телепорт к")
- edited:SetImage ("icon16/arrow_out.png")
- for _,v in pairs (player.GetAll()) do
- if v != LocalPlayer() then
- demotemenu:AddOption (v:Name(), function()
- RunConsoleCommand ("say", "/goto "..v:Name())
- end)
- end
- end
- end
- if ULib.ucl.query(LocalPlayer(), "ulx noclip") then
- local demotemenu, edited = context:AddSubMenu("Телепорт сюда")
- edited:SetImage ("icon16/arrow_out.png")
- for _,v in pairs (player.GetAll()) do
- if v != LocalPlayer() then
- demotemenu:AddOption (v:Name(), function()
- RunConsoleCommand ("say", "/bring "..v:Name())
- end)
- end
- end
- end
- if ULib.ucl.query(LocalPlayer(), "ulx noclip") then
- local demotemenu, edited = context:AddSubMenu("Телепорт обратно")
- edited:SetImage ("icon16/arrow_out.png")
- for _,v in pairs (player.GetAll()) do
- if v != LocalPlayer() then
- demotemenu:AddOption (v:Name(), function()
- RunConsoleCommand ("say", "/return "..v:Name())
- end)
- end
- end
- end
- if ply:IsAdmin() then
- local ulxmenu, edited2 = context:AddSubMenu("ULX Cmds")
- edited2:SetImage("icon16/application_xp_terminal.png")
- ulxmenu:AddOption("Невидимость", function()
- RunConsoleCommand("ulx", "cloak")
- end):SetImage("icon16/status_offline.png")
- ulxmenu:AddOption("Видимость", function()
- RunConsoleCommand("ulx", "uncloak")
- end):SetImage("icon16/status_offline.png")
- ulxmenu:AddOption("Бессмертие", function()
- RunConsoleCommand("ulx", "god")
- end):SetImage("icon16/shield.png")
- ulxmenu:AddOption("Бессмертие", function()
- RunConsoleCommand("ulx", "god")
- end):SetImage("icon16/shield.png")
- ulxmenu:AddOption("Смертие", function()
- RunConsoleCommand("ulx", "ungod")
- end):SetImage("icon16/shield.png")
- end
- ------------------------------------------------------------------------------------------
- context:AddSpacer()
- local demotemenu, edited = context:AddSubMenu("Уволить игрока")
- edited:SetImage ("icon16/error_delete.png")
- for _,v in pairs (player.GetAll()) do
- if v != LocalPlayer() then
- demotemenu:AddOption (v:Name(), function ()
- draw_textbox("Введите причину увольнения", "Уволить", "", function(a) RunConsoleCommand ("say", "/demote "..v:Name().." "..tostring(a)) end)
- end):SetImage("icon16/user_delete.png")
- end
- end
- context:AddOption ("Передать деньги тому на кого вы смотрите", function ()
- draw_textbox("Введите кол-во", "Передать", "", function(a) RunConsoleCommand ("say", "/give "..tostring(a)) end)
- end):SetImage ("icon16/money.png")
- context:AddOption( "Выбросить деньги", function()
- draw_textbox("Введите кол-во", "Выбросить", "", function(a) RunConsoleCommand ("say", "/dropmoney "..tostring(a)) end)
- end ):SetImage("icon16/money.png")
- local demotemenu, edited = context:AddSubMenu("Выписать чек")
- edited:SetImage ("icon16/error_delete.png")
- for _,v in pairs (player.GetAll()) do
- if v != LocalPlayer() then
- demotemenu:AddOption (v:Name(), function ()
- draw_textbox("Введите причину увольнения", "Уволить", "", function(a) RunConsoleCommand ("say", "/demote "..v:Name().." "..tostring(a)) end)
- end):SetImage("icon16/user_delete.png")
- end
- end
- context:AddOption( "Выбросить оружие", function() RunConsoleCommand ("say", "/dropweapon") end ):SetImage("icon16/attach.png")
- --[[context:AddOption( "Законы города", function()
- loz = vgui.Create ("DFrame")
- loz:SetTitle ("Законы города!")
- loz:ShowCloseButton(true)
- loz:MakePopup(true)
- loz:SetDraggable(true)
- -- loz:SetSize (500,250)
- loz:SetSize (500,#DarkRP.getLaws()*40)
- -- loz:Center()
- loz:SetPos (ScrW()/10-130, ScrH()-loz:GetTall()-120)
- -- box:SetColor (255,255,255)
- loz:SetKeyboardInputEnabled(true)
- loz:SetMouseInputEnabled(true)
- loz.Paint = function()
- draw.RoundedBox ( 8, 0, 0, loz:GetWide(), loz:GetTall(), Color( 255, 255, 255, 155 ) )
- end
- end ):SetImage("icon16/page_white_text.png")]]--
- --context:AddSpacer()
- --[[ context:AddOption ("Продать все двери", function() RunConsoleCommand ("say", "/unownalldoors") end):SetImage("icon16/door.png")
- context:Open()
- context:CenterHorizontal()
- context.y = ScrH() + 100
- context:MoveTo(context.x, ScrH() - context:GetTall() - 8, .0, 0) ]]--
- end
- concommand.Add("open_context_menu", OpenContextMenu)
Advertisement
Add Comment
Please, Sign In to add comment