pogh10

Untitled

May 21st, 2015
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.68 KB | None | 0 0
  1. local formula = Levels.Formula
  2.  
  3. net.Receive("UpdateInfo", function(ply, len)
  4. local tar = net.ReadEntity()
  5. tar.Skills = net.ReadTable()
  6. end)
  7.  
  8. net.Receive("SetLevel", function(ply, len)
  9. local tar = net.ReadEntity()
  10. local skill = net.ReadString()
  11. local level = net.ReadUInt(8)
  12.  
  13. tar.Skills[skill].level = level
  14.  
  15. hook.Call("SetLevel", nil, tar, skill, level)
  16. end)
  17.  
  18. net.Receive("SetXP", function(ply, len)
  19. local tar = net.ReadEntity()
  20. local skill = net.ReadString()
  21. local experience = net.ReadUInt(32)
  22.  
  23. tar.Skills[skill].experience = experience
  24.  
  25. hook.Call("SetXP", nil, tar, skill, experience)
  26. end)
  27.  
  28. local levelBackground = Material("vgui/ob_hudelements/backgroundbar.png")
  29. local levelBarBackground = Material("vgui/ob_hudelements/level_progressbar_bg.png")
  30. local levelBar = Material("vgui/ob_hudelements/level_progressbar.png")
  31. local material = Material("vgui/ob_hudelements/progressbar.png")
  32.  
  33. local foreground, bar, background
  34. local texCoords = {}
  35.  
  36. local function SetupCoords()
  37. local texW, texH = 1024, 96
  38.  
  39. texCoords[1] = {x = 0, y = 0, w = 1024, h = 64}
  40. texCoords[2] = {x = 0, y = 64, w = 512, h = 32}
  41. texCoords[3] = {x = 513, y = 64, w = 32, h = 32}
  42.  
  43. for k,v in pairs(texCoords) do
  44. v.w = math.Round((v.w + v.x) / texW, 3)
  45. v.h = math.Round((v.h + v.y) / texH, 3)
  46. v.x = math.Round(v.x / texW, 3)
  47. v.y = math.Round(v.y / texH, 3)
  48. end
  49.  
  50. bar = texCoords[1]
  51. foreground = texCoords[2]
  52. background = texCoords[3]
  53. end
  54. SetupCoords()
  55.  
  56. local drawing = false
  57.  
  58. local skill, experience, maxExperience, time, displayXp
  59. local function DrawLevel()
  60. local alpha = math.min(1000 * ((time - CurTime()) / 5), 255)
  61. if(alpha < 0 or !skill or !level) then
  62. hook.Remove("HUDPaint", "LEVEL_DrawHUD")
  63. drawing = false
  64. end
  65.  
  66. surface.SetDrawColor( Color(255, 255, 255, alpha))
  67.  
  68. displayXp = Lerp( FrameTime(), displayXp, experience)
  69.  
  70. surface.SetMaterial(material)
  71. surface.DrawTexturedRectUV( 0, ScrH() * 0.1, ScrW(), 32, background.x, background.y, background.w, background.h)
  72.  
  73. surface.SetMaterial(material)
  74. surface.DrawTexturedRectUV( ScrW() * 0.5 - 256, ScrH() * 0.1, 512, 32, bar.x, bar.y, bar.w, bar.h)
  75.  
  76. surface.SetMaterial(material)
  77. surface.DrawTexturedRectUV( ScrW() * 0.5 - 235, ScrH() * 0.1 + 8, 470 * (displayXp / maxExperience), 16, foreground.x, foreground.y, foreground.w, foreground.h)
  78.  
  79. surface.SetFont("DarkRPHUD2")
  80. local w1, h1 = surface.GetTextSize(level)
  81.  
  82. surface.SetFont("DarkRPHUD2")
  83. local w2, h2 = surface.GetTextSize(skill)
  84.  
  85. draw.DrawNonParsedText(skill, "DarkRPHUD2", ScrW() * 0.5 - w2 - w1 - 268, ScrH() * 0.106, Color( 180, 180, 180, alpha ), 0)
  86. draw.DrawNonParsedText(level, "DarkRPHUD2", ScrW() * 0.5 - w1 - 268, ScrH() * 0.106, Color( 255, 255, 255, alpha ), 0)
  87. end
  88.  
  89. hook.Add("SetLevel", "LEVEL_Bars", function(ply, name, lvl)
  90. if(ply != LocalPlayer()) then return end
  91.  
  92. time = CurTime() + 5
  93. skill = string.upper(name) .. " "
  94. level = ST_Level
  95.  
  96. local skills = ply.Skills[name]
  97. local currentLevel = ST_Level
  98. displayXp = 0
  99. maxExperience = formula(skills.level + 1) - currentLevel
  100.  
  101. surface.PlaySound("music/hl1_song11.mp3")
  102. end)
  103.  
  104. hook.Add("SetXP", "XP_Bars", function(ply, name, xp)
  105. if(ply != LocalPlayer()) then return end
  106.  
  107. time = CurTime() + 5
  108.  
  109. local skills = ply.Skills[name]
  110.  
  111. local currentLevel = formula(skills.level)
  112. experience = xp - currentLevel
  113. maxExperience = formula(skills.level + 1) - currentLevel
  114.  
  115. skill = string.upper(name) .. " "
  116. level = skills.level
  117.  
  118. if(!drawing) then
  119. if(!displayXp) then
  120. displayXp = experience
  121. end
  122.  
  123. hook.Add("HUDPaint", "LEVEL_DrawHUD", DrawLevel)
  124. drawing = true
  125. end
  126. end)
Add Comment
Please, Sign In to add comment