CapsAdmin

Untitled

Nov 7th, 2011
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.89 KB | None | 0 0
  1. do -- panel
  2.     local META = {}
  3.  
  4.     META.Url = "http://hayashigs.com:27016/flagicon/%s.gif"
  5.    
  6.     function META:Init()
  7.     self:DockPadding(5,5,5,5)
  8.    
  9.     local html = vgui.Create("HTML", self)
  10.     html:SetSize(16, 11)
  11.     html:SetPos(5,5)
  12.     html:OpenURL(string.format(self.Url, "JA"))
  13.     self.html = html
  14.    
  15.     local name = vgui.Create("DLabel", self)
  16.     name:SetText("YomoFox")
  17.     name:SizeToContents()
  18.     self.name = name
  19.     end
  20.    
  21.     function META:SetInfo(country, name)
  22.     self.html:OpenURL(string.format(self.Url, country or "JA"))
  23.     self.name:SetText(name)
  24.     self.name:SizeToContents()
  25.    
  26.     self.name:SetPos(16+5+5, (self:GetTall() * 0.5) - (self.name:GetTall() * 0.6))
  27.     self:SetWide(self.html:GetWide() + self.name:GetWide() + 20)
  28.     self:SetTall(22)
  29.     end
  30.    
  31.     function META:Paint()
  32.     surface.SetDrawColor(70, 70, 70)
  33.         surface.DrawRect(0, 0, self:GetWide(), self:GetTall())
  34.    
  35.     surface.SetDrawColor(50, 50, 50)
  36.     surface.DrawRect(2, 2, self:GetWide()-4, self:GetTall()-4)
  37.     end
  38.    
  39.     vgui.Register("nametag_panel", META, "DPanel")
  40. end
  41.  
  42. if nametag_panels then
  43.     for ply, pnl in pairs(nametag_panels) do
  44.     if pnl:IsValid() then
  45.         pnl:Remove()
  46.     end
  47.     end
  48. end
  49.  
  50. nametag_panels = {}
  51.  
  52. local function CreatePanel(ply)
  53.     local nametag = vgui.Create("nametag_panel")
  54.     nametag:SetInfo(ply:GetNWString("Country", ""), ply:Nick())
  55.    
  56.     return nametag
  57. end
  58.  
  59. hook.Add("PreDrawHUD", "nametag_panel_draw", function()
  60.     for key, ply in pairs(player.GetAll()) do
  61.     nametag_panels[ply] = nametag_panels[ply] or CreatePanel(ply)
  62.    
  63.     local pos = (ply:EyePos() + ply:GetUp()  * 5):ToScreen()
  64.     nametag_panels[ply]:SetPos(pos.x, pos.y)
  65.    
  66.     if pos.x > ScrW() or pos.x < 0 or pos.y > ScrH() or pos.y < 0 or ply:EyePos():Distance(LocalPlayer():EyePos()) > 500 then
  67.         nametag_panels[ply]:AlphaTo(0, 0.5, 0)
  68.     else
  69.         nametag_panels[ply]:AlphaTo(255, 0.5, 0)
  70.     end
  71.     end
  72. end)
  73.  
  74.  
Advertisement
Add Comment
Please, Sign In to add comment