TheDenVxUA

Untitled

Nov 2nd, 2019
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 16.33 KB | None | 0 0
  1. if SERVER then return end
  2.  
  3. local CFG = {
  4.     Background = function(ply)
  5.         return Color(0,0,0,150)
  6.     end,
  7.     Text = function(ply)
  8.         return Color(200,200,200)
  9.     end,
  10.     TextEnter = function(ply) -- меняет цвет текста, когда наводится курсор
  11.         return Color(255,255,255)
  12.     end,
  13.     Row = function(ply)
  14.         return Color(0,0,150,150)
  15.     end
  16. }
  17.  
  18. AddCSLuaFile()
  19.  
  20. function ContextOpen()
  21.         LocalPlayer():ConCommand ("open_context_menu")
  22. end
  23. hook.Add ("OnContextMenuOpen", "Context", ContextOpen)
  24.  
  25. function closecontext ()
  26.     --
  27. end
  28. hook.Add ("OnContextMenuClose", "Context", closecontext)
  29.  
  30. function draw_textbox(strTitle, strBtn, strDefaultText, fnEnter)
  31.         local Window = vgui.Create ("DFrame")
  32.         Window:SetTitle(strTitle)
  33.         Window:ShowCloseButton(true)
  34.         Window:MakePopup()
  35.         Window:SetSize (250+string.len(strTitle), 100)
  36.         Window:Center()
  37.         Window:SetKeyboardInputEnabled(true)
  38.         Window:SetMouseInputEnabled(true)
  39.         Window.Paint = function()
  40.                 draw.RoundedBox ( 0, 0, 0, Window:GetWide(), Window:GetTall(), Color(0,0,0,255) )
  41.                 draw.RoundedBox ( 0, 1, 1, Window:GetWide()-2, Window:GetTall()-2, Color(0, 76, 60,100) )
  42.         end
  43.  
  44.         local TextEntr = vgui.Create( "DTextEntry", Window)
  45.         TextEntr:SetPos (75+string.len(strTitle)/2, 25)
  46.         TextEntr:SetSize (110, 20)
  47.         TextEntr:SetMultiline (false)
  48.         TextEntr:SetAllowNonAsciiCharacters( true )
  49.         TextEntr:SetText(strDefaultText || "")
  50.         TextEntr:SetEnterAllowed (true)
  51.  
  52.         local Btn = vgui.Create ("DButton", Window)
  53.         Btn:SetText(strBtn)
  54.         Btn:SetSize (110, 20)
  55.         Btn:SetPos (75+string.len(strTitle)/2, 50)
  56.         Btn.DoClick = function ()
  57.                 fnEnter( TextEntr:GetValue() )
  58.                 Window:Remove()
  59.         end
  60. end
  61.  
  62. function OpenContextMenu(ply, argm, cmd)
  63.         local context = vgui.Create("DMenuCustom")
  64.         context.PLY = ply
  65.         context.CLR = CFG.Background
  66.         context.Row = CFG.Row
  67.         context.Text = CFG.Text
  68.         context.TextEnter = CFG.TextEnter
  69.         context:AddSpacer()
  70.        
  71. ------------------------------------------------------------------------------------------
  72.                          
  73.         context:AddOption( "Поддержка", function()
  74.         RunConsoleCommand("support")
  75.         end):SetImage("icon16/award_star_add.png")
  76.        
  77.         context:AddOption( "ЗАСТРЯЛ!", function()
  78.         RunConsoleCommand("say", "!stuck")
  79.         end):SetImage("icon16/brick_error.png")
  80.                
  81. context:AddSpacer()
  82.  
  83.         context:AddOption("Службы", function()
  84.         RunConsoleCommand ("say", "/services")
  85.         end):SetImage("icon16/newspaper.png")
  86.  
  87.  
  88.     if ply:Team() == TEAM_GARBAGEMAN then
  89.         context:AddOption( "Мусорный Пакет", function()
  90.         RunConsoleCommand("say", "/buytrashbag")
  91.         end):SetImage("icon16/package.png")
  92.     end
  93.  
  94.         context:AddOption( "Банда", function()
  95.         RunConsoleCommand("say", "!gang")
  96.         end):SetImage("icon16/flag_red.png")
  97.          
  98.         context:AddOption( "Управление Битмайнерами", function()
  99.         RunConsoleCommand("say", "!remotebitminers")
  100.         end):SetImage("materials/s_phone.png")
  101.                  
  102.         context:AddOption( "Прглашения в БАНДУ", function()
  103.         RunConsoleCommand("say", "!ganginvites")
  104.         end):SetImage("icon16/flag_red.png")
  105.  
  106. context:AddSpacer()
  107.                          
  108.         context:AddOption( "Ввести ПРОМОКОД", function()
  109.         RunConsoleCommand("say", "/promo")
  110.         end):SetImage("icon16/css.png")
  111.        
  112. context:AddSpacer()
  113.  
  114. --[[SubMenu("Выписать чек", "icon16/script_edit.png", function(self)
  115.     for k, v in pairs(player.GetAll()) do
  116.         if v == LocalPlayer() then continue end
  117.  
  118.         self:AddOption(v:Name(), Request("Выписка чека", "Сколько денег должен получить человек?", function(s)
  119.             RunConsoleCommand("darkrp", "cheque", v:UserID(), s)
  120.         end)):SetColor(v:getJobTable().color)
  121.     end
  122. end)]]--
  123.  
  124.                          
  125.         context:AddOption( "Приглашения на работу", function()
  126.         RunConsoleCommand("say", "/jobs")
  127.         end):SetImage("icon16/coins.png")
  128.  
  129.     if ply:Team() == TEAM_KILLER then
  130.         context:AddOption( "Меню заказов киллера", function()
  131.         RunConsoleCommand("say", "!hits")
  132.         end):SetImage("icon16/database_table.png")
  133.     end
  134.                          
  135.         context:AddOption( "Заказать убийство", function()
  136.         RunConsoleCommand("say", "!placehit")
  137.         end):SetImage("icon16/script_go.png")
  138. --[[*
  139.  * Начало общих кнопок
  140.  ]]
  141.        
  142.  
  143.  
  144.         context:AddOption( "Поддержка", function()
  145.         RunConsoleCommand("support")
  146.         end):SetImage("icon16/award_star_add.png")
  147.  
  148. -------------[[ IS CP/MAYOR ]]----------
  149. --[[Spacer(isCP)
  150.  
  151. SubMenu("Повесить розыск", "icon16/flag_red.png", function(self)
  152.     for k, v in pairs(player.GetAll()) do
  153.         if v == LocalPlayer() then continue end
  154.  
  155.         if not v:isWanted() then
  156.             self:AddOption(v:Name(), Request("Повесить розыск", "Для чего вы ищите его?", function(s)
  157.                 RunConsoleCommand("darkrp", "wanted", v:UserID(), s)
  158.             end)):SetColor(v:getJobTable().color)
  159.         end
  160.     end
  161. end, isCP)
  162.  
  163.  
  164. SubMenu("Снять розыск", "icon16/flag_green.png", function(self)
  165.     for k, v in pairs(player.GetAll()) do
  166.         if v:isWanted() then
  167.             self:AddOption(v:Name(), function()
  168.                 RunConsoleCommand("darkrp", "unwanted", v:UserID(), s)
  169.             end):SetColor(v:getJobTable().color)
  170.         end
  171.     end
  172. end, isCP)
  173.  
  174. SubMenu("Запросить ордер", "icon16/door_in.png", function(self)
  175.     for k, v in pairs(player.GetAll()) do
  176.         if v == LocalPlayer() then continue end
  177.  
  178.         self:AddOption(v:Name(), function(s)
  179.             RunConsoleCommand("darkrp", "warrant", v:UserID(), s)
  180.         end):SetColor(v:getJobTable().color)
  181.     end
  182. end, isCP)
  183.  
  184. Option("Выдать лицензию", "icon16/page_add.png", function(self)
  185.     RunConsoleCommand("darkrp", "givelicense")
  186. end, function()
  187.     local ply = LocalPlayer()
  188.     local noMayorExists = fn.Compose{fn.Null, fn.Curry(fn.Filter, 2)(ply.isMayor), player.GetAll}
  189.     local noChiefExists = fn.Compose{fn.Null, fn.Curry(fn.Filter, 2)(ply.isChief), player.GetAll}
  190.     local canGiveLicense = fn.FOr{ply.isMayor, fn.FAnd{ply.isChief, noMayorExists}, fn.FAnd{ply.isCP, noChiefExists, noMayorExists}}
  191.  
  192.     -- Mayors can hand out licenses
  193.     -- Chiefs can if there is no mayor
  194.     -- CP's can if there are no chiefs nor mayors
  195.     return canGiveLicense(ply)
  196. end)
  197.  
  198.  
  199. ---
  200. ---Начало кнопок для мэра
  201. ---
  202. Spacer(function() return LocalPlayer():isMayor() end)
  203.  
  204. Option("Объявить ком. час", "icon16/stop.png", function()
  205.     RunConsoleCommand("darkrp", "lockdown")
  206. end, function() return LocalPlayer():isMayor() and not GetGlobalBool("DarkRP_LockDown") end)
  207.  
  208. Option("Отменить ком. час", "icon16/stop.png", function()
  209.     RunConsoleCommand("darkrp", "unlockdown")
  210. end, function() return LocalPlayer():isMayor() and GetGlobalBool("DarkRP_LockDown") end)
  211.  
  212. Option("Дать задание", "icon16/application.png",
  213.     Request("Дать задание", "Что нужно делать?", function(s)
  214.         RunConsoleCommand("darkrp", "agenda", s)
  215.     end),
  216. function()
  217.     for k, v in pairs(DarkRPAgendas) do
  218.         if type(v.Manager) == "table" then
  219.             if table.HasValue(v.Manager, LocalPlayer():Team()) then return true end
  220.         elseif v.Manager == LocalPlayer():Team() then
  221.             return true
  222.         end
  223.     end
  224. end)
  225.  
  226. context:AddSpacer()
  227.  
  228.  
  229.  
  230.  
  231. SubMenu("Показать SteamID", "icon16/tag_green.png", function(self)
  232.  
  233.     for k, v in pairs(player.GetAll()) do
  234.  
  235.         self:AddOption(v:Name() .. " - " .. v:SteamID(), function()
  236.  
  237.             SetClipboardText(time)
  238.  
  239.             LocalPlayer():ChatPrint("SteamID скопирован в буфер обмена")
  240.  
  241.         end):SetColor(v:getJobTable().color)
  242.  
  243.     end
  244.  
  245. end)
  246.  
  247.  
  248. SubMenu("Телепортироваться к", "icon16/arrow_up.png", function(self)
  249.     for k, v in pairs(player.GetAll()) do
  250.         if v == LocalPlayer() then continue end
  251.  
  252.         self:AddOption(v:Nick(), function()
  253.             RunConsoleCommand("ulx", "goto", v:Nick())
  254.         end):SetColor(v:getJobTable().color)
  255.     end
  256. end, function() return ULib.ucl.query(LocalPlayer(), "ulx goto") end)
  257.  
  258. SubMenu("Вернуть", "icon16/arrow_up.png", function(self)
  259.     for k, v in pairs(player.GetAll()) do
  260.         if v == LocalPlayer() then continue end
  261.  
  262.         self:AddOption(v:Nick(), function()
  263.             RunConsoleCommand("ulx", "return", v:Nick())
  264.         end):SetColor(v:getJobTable().color)
  265.     end
  266. end, function() return ULib.ucl.query(LocalPlayer(), "ulx return") end)
  267.  
  268. SubMenu("Телепортировать к себе ", "icon16/arrow_up.png", function(self)
  269.     for k, v in pairs(player.GetAll()) do
  270.         if v == LocalPlayer() then continue end
  271.  
  272.         self:AddOption(v:Nick(), function()
  273.             RunConsoleCommand("ulx", "bring", v:Nick())
  274.         end):SetColor(v:getJobTable().color)
  275.     end
  276. end, function() return ULib.ucl.query(LocalPlayer(), "ulx bring") end)
  277. SubMenu("ULX Cmds", "icon16/application_xp_terminal.png", function(self)
  278.  
  279.     self:AddOption("Невидимость", function()
  280.         RunConsoleCommand("ulx", "cloak")
  281.     end):SetIcon("icon16/status_offline.png")
  282.  
  283.     self:AddOption("Видимость", function()
  284.         RunConsoleCommand("ulx", "uncloak")
  285.     end):SetIcon("icon16/status_offline.png")
  286.  
  287.     self:AddOption("Бессмертие", function()
  288.         RunConsoleCommand("ulx", "god")
  289.     end):SetIcon("icon16/shield.png")
  290.  
  291.     self:AddOption("Смертие", function()
  292.         RunConsoleCommand("ulx", "ungod")
  293.     end):SetIcon("icon16/shield.png")
  294. end, function() return LocalPlayer():IsAdmin() end)
  295. ]]--
  296. --[[
  297. context:AddOption("Ноуклип", "icon16/arrow_out.png", function()
  298.     RunConsoleCommand("ulx", "noclip")
  299. end, function() return ULib.ucl.query(LocalPlayer(), "ulx noclip") end)
  300.  
  301. context:AddOption("АДМИН МЕНЮ КИЛЛЕРА", "icon16/arrow_out.png", function()
  302.     RunConsoleCommand("say", "!hitsconfig")
  303. end, function() return ULib.ucl.query(LocalPlayer(), "ulx noclip") end)
  304.  
  305. context:AddOption("!Reviveme", "icon16/shield.png", function()
  306.     RunConsoleCommand("say", "!reviveme")
  307. end, function() return ULib.ucl.query(LocalPlayer(), "ulx noclip") end)
  308. ]]--
  309.         context:AddOption( "Ноуклип", function()
  310.         RunConsoleCommand("ulx", "noclip")
  311.         end, function() return ULib.ucl.query(LocalPlayer(), "ulx noclip") end):SetImage("icon16/arrow_out.png")
  312.        
  313.         context:AddOption( "АДМИН МЕНЮ КИЛЛЕРА", function()
  314.         RunConsoleCommand("ulx", "!hitsconfig")
  315.         end, function() return ULib.ucl.query(LocalPlayer(), "ulx noclip") end):SetImage("icon16/arrow_out.png")
  316.        
  317.         context:AddOption( "!Reviveme", function()
  318.         RunConsoleCommand("ulx", "!reviveme")
  319.         end, function() return ULib.ucl.query(LocalPlayer(), "ulx noclip") end):SetImage("icon16/arrow_out.png")
  320.                
  321. if ULib.ucl.query(LocalPlayer(), "ulx noclip") then
  322.     local demotemenu, edited = context:AddSubMenu("Телепорт к")
  323.     edited:SetImage ("icon16/arrow_out.png")
  324.     for _,v in pairs (player.GetAll()) do
  325.         if v != LocalPlayer() then
  326.             demotemenu:AddOption (v:Name(), function()
  327.                 RunConsoleCommand ("say", "/goto "..v:Name())
  328.             end)
  329.         end
  330.         end
  331. end
  332.                
  333. if ULib.ucl.query(LocalPlayer(), "ulx noclip") then
  334.     local demotemenu, edited = context:AddSubMenu("Телепорт сюда")
  335.     edited:SetImage ("icon16/arrow_out.png")
  336.     for _,v in pairs (player.GetAll()) do
  337.         if v != LocalPlayer() then
  338.             demotemenu:AddOption (v:Name(), function()
  339.                 RunConsoleCommand ("say", "/bring "..v:Name())
  340.             end)
  341.         end
  342.         end
  343. end
  344.                
  345. if ULib.ucl.query(LocalPlayer(), "ulx noclip") then
  346.     local demotemenu, edited = context:AddSubMenu("Телепорт обратно")
  347.     edited:SetImage ("icon16/arrow_out.png")
  348.     for _,v in pairs (player.GetAll()) do
  349.         if v != LocalPlayer() then
  350.             demotemenu:AddOption (v:Name(), function()
  351.                 RunConsoleCommand ("say", "/return "..v:Name())
  352.             end)
  353.         end
  354.         end
  355. end
  356.  
  357. if ply:IsAdmin() then
  358. local ulxmenu, edited2 = context:AddSubMenu("ULX Cmds")
  359. edited2:SetImage("icon16/application_xp_terminal.png")
  360.  
  361. ulxmenu:AddOption("Невидимость", function()
  362. RunConsoleCommand("ulx", "cloak")
  363. end):SetImage("icon16/status_offline.png")
  364.  
  365. ulxmenu:AddOption("Видимость", function()
  366. RunConsoleCommand("ulx", "uncloak")
  367. end):SetImage("icon16/status_offline.png")
  368.  
  369. ulxmenu:AddOption("Бессмертие", function()
  370. RunConsoleCommand("ulx", "god")
  371. end):SetImage("icon16/shield.png")
  372.  
  373. ulxmenu:AddOption("Бессмертие", function()
  374. RunConsoleCommand("ulx", "god")
  375. end):SetImage("icon16/shield.png")
  376.  
  377. ulxmenu:AddOption("Смертие", function()
  378. RunConsoleCommand("ulx", "ungod")
  379. end):SetImage("icon16/shield.png")
  380.  
  381. end
  382. ------------------------------------------------------------------------------------------
  383. context:AddSpacer()
  384.  
  385.                 local demotemenu, edited = context:AddSubMenu("Уволить игрока")
  386.                 edited:SetImage ("icon16/error_delete.png")
  387.                 for _,v in pairs (player.GetAll()) do
  388.                         if v != LocalPlayer() then
  389.                                 demotemenu:AddOption (v:Name(), function ()
  390.                                         draw_textbox("Введите причину увольнения", "Уволить", "", function(a) RunConsoleCommand ("say", "/demote "..v:Name().." "..tostring(a)) end)
  391.                                 end):SetImage("icon16/user_delete.png")
  392.                         end
  393.                 end
  394.                
  395.                 context:AddOption ("Передать деньги тому на кого вы смотрите", function ()
  396.                         draw_textbox("Введите кол-во", "Передать", "", function(a) RunConsoleCommand ("say", "/give "..tostring(a)) end)  
  397.                 end):SetImage ("icon16/money.png")
  398.  
  399.         context:AddOption( "Выбросить деньги", function()
  400.                 draw_textbox("Введите кол-во", "Выбросить", "", function(a) RunConsoleCommand ("say", "/dropmoney "..tostring(a)) end)
  401.          end ):SetImage("icon16/money.png")
  402.    
  403.                     local demotemenu, edited = context:AddSubMenu("Выписать чек")
  404.                 edited:SetImage ("icon16/error_delete.png")
  405.                 for _,v in pairs (player.GetAll()) do
  406.                         if v != LocalPlayer() then
  407.                                 demotemenu:AddOption (v:Name(), function ()
  408.                                         draw_textbox("Введите причину увольнения", "Уволить", "", function(a) RunConsoleCommand ("say", "/demote "..v:Name().." "..tostring(a)) end)
  409.                                 end):SetImage("icon16/user_delete.png")
  410.                         end
  411.                 end
  412.    
  413.         context:AddOption( "Выбросить оружие", function() RunConsoleCommand ("say", "/dropweapon") end ):SetImage("icon16/attach.png")
  414.  
  415.         --[[context:AddOption( "Законы города", function()
  416.             loz = vgui.Create ("DFrame")
  417.             loz:SetTitle ("Законы города!")
  418.             loz:ShowCloseButton(true)
  419.             loz:MakePopup(true)
  420.             loz:SetDraggable(true)
  421.             -- loz:SetSize (500,250)
  422.             loz:SetSize (500,#DarkRP.getLaws()*40)
  423.             -- loz:Center()
  424.             loz:SetPos (ScrW()/10-130, ScrH()-loz:GetTall()-120)
  425.             -- box:SetColor (255,255,255)
  426.             loz:SetKeyboardInputEnabled(true)
  427.             loz:SetMouseInputEnabled(true)
  428.                     loz.Paint = function()
  429.                     draw.RoundedBox ( 8, 0, 0, loz:GetWide(), loz:GetTall(), Color( 255, 255, 255, 155 ) )
  430.             end
  431.         end ):SetImage("icon16/page_white_text.png")]]--
  432.  
  433.         --context:AddSpacer()
  434.        
  435.         --[[ context:AddOption ("Продать все двери", function() RunConsoleCommand ("say", "/unownalldoors") end):SetImage("icon16/door.png")
  436.         context:Open()
  437.         context:CenterHorizontal()
  438.         context.y = ScrH() + 100
  439.         context:MoveTo(context.x, ScrH() - context:GetTall() - 8, .0, 0) ]]--
  440.  
  441.  
  442.        
  443. end
  444. concommand.Add("open_context_menu", OpenContextMenu)
Advertisement
Add Comment
Please, Sign In to add comment