Advertisement
AnthonyProductions

Tuto Comment enlever les métier du Tab Mtx

Feb 20th, 2017
305
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 8.93 KB | None | 0 0
  1. FAdmin.PlayerIcon = {}
  2. FAdmin.PlayerIcon.RightClickOptions = {}
  3.  
  4. function FAdmin.PlayerIcon.AddRightClickOption(name, func)
  5.     FAdmin.PlayerIcon.RightClickOptions[name] = func
  6. end
  7.  
  8. -- FAdminPanelList
  9. local PANEL = {}
  10.  
  11. function PANEL:Init()
  12.     self.Padding = 5
  13. end
  14.  
  15. function PANEL:SizeToContents()
  16.     local w, h = self:GetSize()
  17.  
  18.     w = math.Clamp(w, ScrW()*0.9, ScrW()*0.9) -- Fix size of w to have the same size as the scoreboard
  19.     h = math.Min(h, ScrH()*0.95)
  20.     if #self:GetChildren() == 1 then -- It fucks up when there's only one icon in
  21.         h = math.Max(y or 0, 120)
  22.     end
  23.  
  24.     self:SetSize(w, h)
  25.     self:PerformLayout()
  26. end
  27.  
  28. function PANEL:Paint()
  29. end
  30.  
  31. derma.DefineControl("FAdminPanelList", "DPanellist adapted for FAdmin", PANEL, "DPanelList")
  32.  
  33. -- FAdminPlayerCatagoryHeader
  34. local PANEL2 = {}
  35.  
  36. function PANEL2:PerformLayout()
  37.     self:SetFont("Trebuchet24")
  38. end
  39.  
  40. derma.DefineControl("FAdminPlayerCatagoryHeader", "DCatagoryCollapse header adapted for FAdmin", PANEL2, "DCategoryHeader")
  41.  
  42. -- FAdminPlayerCatagory
  43. local PANEL3 = {}
  44.  
  45. function PANEL3:Init()
  46.     if self.Header then
  47.         self.Header:Remove() -- the old header is still there don't ask me why
  48.     end
  49.     self.Header = vgui.Create("FAdminPlayerCatagoryHeader", self)
  50.     self.Header:SetSize(20, 25)
  51.     self:SetPadding(5)
  52.     self.Header:Dock( TOP )
  53.  
  54.     self:SetExpanded(true)
  55.     self:SetMouseInputEnabled(true)
  56.  
  57.     self:SetAnimTime(0.2)
  58.     self.animSlide = Derma_Anim("Anim", self, self.AnimSlide)
  59.  
  60.     self:SetDrawBackground(true)
  61.  
  62. end
  63.  
  64. function PANEL3:Paint()
  65.     if self.CatagoryColor then
  66.         //self.Header:SetBGColor(self.CatagoryColor)
  67.         draw.RoundedBox(4, 0, 0, self:GetWide(), self.Header:GetTall(), self.CatagoryColor)
  68.     end
  69. end
  70.  
  71. derma.DefineControl("FAdminPlayerCatagory", "DCatagoryCollapse adapted for FAdmin", PANEL3, "DCollapsibleCategory")
  72.  
  73. -- FAdmin player row (from the sandbox player row)
  74. PANEL = {}
  75.  
  76. CreateClientConVar("FAdmin_PlayerRowSize", 30, true, false)
  77. function PANEL:Init()
  78.     self.Size = GetConVarNumber("FAdmin_PlayerRowSize")
  79.  
  80.     self.lblName    = vgui.Create("DLabel", self)
  81.     self.lblFrags   = vgui.Create("DLabel", self)
  82.     self.lblTeam    = vgui.Create("DLabel", self)
  83.     self.lblDeaths  = vgui.Create("DLabel", self)
  84.     self.lblPing    = vgui.Create("DLabel", self)
  85.     self.lblWanted  = vgui.Create("DLabel", self)
  86.  
  87.     // If you don't do this it'll block your clicks
  88.     self.lblName:SetMouseInputEnabled(false)
  89.     self.lblTeam:SetMouseInputEnabled(false)
  90.     self.lblFrags:SetMouseInputEnabled(false)
  91.     self.lblDeaths:SetMouseInputEnabled(false)
  92.     self.lblPing:SetMouseInputEnabled(false)
  93.     self.lblWanted:SetMouseInputEnabled(false)
  94.  
  95.     self.lblName:SetColor(Color(255,255,255,200))
  96.     self.lblTeam:SetColor(Color(255,255,255,200))
  97.     self.lblFrags:SetColor(Color(255,255,255,200))
  98.     self.lblDeaths:SetColor(Color(255,255,255,200))
  99.     self.lblPing:SetColor(Color(255,255,255,200))
  100.     self.lblWanted:SetColor(Color(255,255,255,200))
  101.  
  102.     self.imgAvatar = vgui.Create("AvatarImage", self)
  103.  
  104.     self:SetCursor("hand")
  105. end
  106.  
  107. function PANEL:Paint()
  108.     if not IsValid(self.Player) then return end
  109.  
  110.     self.Size = GetConVarNumber("FAdmin_PlayerRowSize")
  111.     self.imgAvatar:SetSize(self.Size - 4, self.Size - 4)
  112.  
  113.     local color = Color(100, 150, 245, 255)
  114.  
  115.  
  116.     if GAMEMODE.Name == "Sandbox" then
  117.         color = Color(100, 150, 245, 255)
  118.         if self.Player:Team() == TEAM_CONNECTING then
  119.             color = Color(200, 120, 50, 255)
  120.         elseif self.Player:IsAdmin() then
  121.             color = Color(30, 200, 50, 255)
  122.         end
  123.  
  124.         if self.Player:GetFriendStatus() == "friend" then
  125.             color = Color(236, 181, 113, 255)
  126.         end
  127.     else
  128.         color = team.GetColor(self.Player:Team())
  129.     end
  130.  
  131.     local hooks = hook.GetTable().FAdmin_PlayerRowColour
  132.     if hooks then
  133.         for k,v in pairs(hooks) do
  134.             color = (v and v(self.Player, color)) or color
  135.             break
  136.         end
  137.     end
  138.  
  139.     draw.RoundedBox(4, 0, 0, self:GetWide(), self.Size, color)
  140.  
  141.     surface.SetTexture(0)
  142.     if self.Player == LocalPlayer() or self.Player:GetFriendStatus() == "friend" then
  143.         surface.SetDrawColor(255, 255, 255, 50 + math.sin(RealTime() * 2) * 50)
  144.     end
  145.     surface.DrawTexturedRect(0, 0, self:GetWide(), self.Size)
  146.     return true
  147. end
  148.  
  149. function PANEL:SetPlayer(ply)
  150.     self.Player = ply
  151.  
  152.     self.imgAvatar:SetPlayer(ply)
  153.  
  154.     self:UpdatePlayerData()
  155. end
  156.  
  157. function PANEL:UpdatePlayerData()
  158.     if not self.Player then return end
  159.     if not self.Player:IsValid() then return end
  160.  
  161.     self.lblName:SetText(DarkRP.deLocalise(self.Player:Nick()))
  162.     self.lblTeam:SetText("TonText")
  163.     self.lblTeam:SizeToContents()
  164.     self.lblFrags:SetText(self.Player:Frags())
  165.     self.lblDeaths:SetText(self.Player:Deaths())
  166.     self.lblPing:SetText(self.Player:Ping())
  167.     self.lblWanted:SetText(self.Player:isWanted() and DarkRP.getPhrase("Wanted_text") or "")
  168. end
  169.  
  170. function PANEL:ApplySchemeSettings()
  171.     self.lblName:SetFont("ScoreboardPlayerNameBig")
  172.     self.lblTeam:SetFont("ScoreboardPlayerNameBig")
  173.     self.lblFrags:SetFont("ScoreboardPlayerName")
  174.     self.lblDeaths:SetFont("ScoreboardPlayerName")
  175.     self.lblPing:SetFont("ScoreboardPlayerName")
  176.     self.lblWanted:SetFont("ScoreboardPlayerNameBig")
  177.  
  178.     self.lblName:SetFGColor(color_white)
  179.     self.lblTeam:SetFGColor(color_white)
  180.     self.lblFrags:SetFGColor(color_white)
  181.     self.lblDeaths:SetFGColor(color_white)
  182.     self.lblPing:SetFGColor(color_white)
  183.     self.lblWanted:SetFGColor(color_white)
  184. end
  185.  
  186. function PANEL:DoClick(x, y)
  187.     if not IsValid(self.Player) then self:Remove() return end
  188.     FAdmin.ScoreBoard.ChangeView("Player", self.Player)
  189. end
  190.  
  191. function PANEL:DoRightClick()
  192.     if table.Count(FAdmin.PlayerIcon.RightClickOptions) < 1 then return end
  193.     local menu = DermaMenu()
  194.  
  195.     menu:SetPos(gui.MouseX(), gui.MouseY())
  196.  
  197.     for Name, func in pairs(FAdmin.PlayerIcon.RightClickOptions) do
  198.         menu:AddOption(Name, function() if IsValid(self.Player) then func(self.Player, self) end end)
  199.     end
  200.  
  201.     menu:Open()
  202. end
  203.  
  204. function PANEL:Think()
  205.     if not self.PlayerUpdate or self.PlayerUpdate < CurTime() then
  206.         self.PlayerUpdate = CurTime() + 0.5
  207.         self:UpdatePlayerData()
  208.     end
  209. end
  210.  
  211. function PANEL:PerformLayout()
  212.     self.imgAvatar:SetPos(2, 2)
  213.     self.imgAvatar:SetSize(32, 32)
  214.  
  215.     self:SetSize(self:GetWide(), self.Size)
  216.  
  217.     self.lblName:SizeToContents()
  218.     self.lblName:SetPos(24, 2)
  219.     self.lblName:MoveRightOf(self.imgAvatar, 8)
  220.  
  221.     local COLUMN_SIZE = 75
  222.  
  223.     self.lblPing:SetPos(self:GetWide() - COLUMN_SIZE * 0.4, 0)
  224.     self.lblDeaths:SetPos(self:GetWide() - COLUMN_SIZE * 1.4, 0)
  225.     self.lblFrags:SetPos(self:GetWide() - COLUMN_SIZE * 2.4, 0)
  226.  
  227.     self.lblTeam:SetPos(self:GetWide() / 2 - (0.5*self.lblTeam:GetWide()))
  228.  
  229.     self.lblWanted:SizeToContents()
  230.     self.lblWanted:SetPos(math.floor(self:GetWide() / 4), 2)
  231. end
  232. vgui.Register("FadminPlayerRow", PANEL, "Button")
  233.  
  234. -- FAdminActionButton
  235. local PANEL6 = {}
  236.  
  237. function PANEL6:Init()
  238.     self:SetDrawBackground(false)
  239.     self:SetDrawBorder(false)
  240.     self:SetStretchToFit(false)
  241.     self:SetSize(120, 40)
  242.  
  243.     self.TextLabel = vgui.Create("DLabel", self)
  244.     self.TextLabel:SetColor(Color(200,200,200,200))
  245.     self.TextLabel:SetFont("ChatFont")
  246.  
  247.     self.m_Image2 = vgui.Create("DImage", self)
  248.  
  249.     self.BorderColor = Color(190,40,0,255)
  250. end
  251.  
  252. function PANEL6:SetText(text)
  253.     self.TextLabel:SetText(text)
  254.     self.TextLabel:SizeToContents()
  255.  
  256.     self:SetWide(self.TextLabel:GetWide() + 44)
  257. end
  258.  
  259. function PANEL6:PerformLayout()
  260.     self.m_Image:SetSize(32,32)
  261.     self.m_Image:SetPos(4,4)
  262.  
  263.     self.m_Image2:SetSize(32, 32)
  264.     self.m_Image2:SetPos(4,4)
  265.  
  266.     self.TextLabel:SetPos(38, 8)
  267. end
  268.  
  269. function PANEL6:SetImage2(Mat, bckp)
  270.     self.m_Image2:SetImage(Mat, bckp)
  271. end
  272.  
  273. function PANEL6:SetBorderColor(Col)
  274.     self.BorderColor = Col or Color(190,40,0,255)
  275. end
  276.  
  277. function PANEL6:Paint()
  278.     local BorderColor = self.BorderColor
  279.     if self.Hovered then
  280.         BorderColor = Color(math.Min(BorderColor.r + 40, 255), math.Min(BorderColor.g + 40, 255), math.Min(BorderColor.b + 40, 255), BorderColor.a)
  281.     end
  282.     if self.Depressed then
  283.         BorderColor = Color(0,0,0,0)
  284.     end
  285.     draw.RoundedBox(4, 0, 0, self:GetWide(), self:GetTall(), BorderColor)
  286.     draw.RoundedBox(4, 2, 2, self:GetWide()-4, self:GetTall()-4, Color(40,40,40,255))
  287. end
  288.  
  289. function PANEL6:OnMousePressed(mouse)
  290.     self.m_Image:SetSize(24,24)
  291.     self.m_Image:SetPos(8,8)
  292.     self.Depressed = true
  293. end
  294.  
  295. function PANEL6:OnMouseReleased(mouse)
  296.     self.m_Image:SetSize(32,32)
  297.     self.m_Image:SetPos(4,4)
  298.     self.Depressed = false
  299.     self:DoClick()
  300. end
  301.  
  302. derma.DefineControl("FAdminActionButton", "Button for doing actions", PANEL6, "DImageButton")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement