Advertisement
Guest User

Untitled

a guest
Nov 13th, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.80 KB | None | 0 0
  1. CreateClientConVar("cl_bur_sprintmod_enablehud", 1, true, false)
  2. CreateClientConVar("cl_bur_sprintmod_fade", 1, true, false)
  3.  
  4. --[[
  5. CONFIG
  6. ]]
  7.  
  8. local ListTeam = { -- Liste des jobs qui perdrons plus vite leurs stamina
  9. TEAM_CITIZEN = true,
  10. TEAM_POLICE = true
  11. }
  12. local JobMulti = 0.2 -- Combien en + ( 1 c'est deux fois plus vite)
  13. --[[
  14. ENDCONFIG
  15. ]]
  16.  
  17. net.Receive("StaminaSpawn", function(len)
  18. local ply = LocalPlayer()
  19. local MaxStamina = net.ReadFloat()
  20. local RegenMul = net.ReadFloat()
  21. local DecayMul = net.ReadFloat()
  22. ply.BurgerStamina = MaxStamina
  23. ply.BurgerMaxStamina = MaxStamina
  24. ply.BurgerDecayMul = DecayMul
  25. ply.BurgerRegenMul = RegenMul
  26. end)
  27.  
  28. local JumpLatch = 0
  29.  
  30. function GetClientMove(cmd)
  31. local ply = LocalPlayer()
  32. local NewButtons = cmd:GetButtons()
  33. local Change = FrameTime() * 5
  34.  
  35. if not first then
  36. ply.BurgerStamina = 100
  37. ply.BurgerMaxStamina = 100
  38. ply.BurgerDecayMul = 1
  39. ply.BurgerRegenMul = 1
  40. ply.NextRegen = 0
  41. ply.WaterTick = 0
  42. first = true
  43. end
  44.  
  45. if cmd:KeyDown(IN_SPEED) and (cmd:KeyDown(IN_FORWARD) or cmd:KeyDown(IN_BACK) or cmd:KeyDown(IN_MOVELEFT) or cmd:KeyDown(IN_MOVERIGHT)) and (ply:GetVelocity():Length() > 100) and (ply:OnGround() or ply:WaterLevel() ~= 0) and not ply:InVehicle() then
  46. if ply.BurgerStamina <= 0 then
  47. NewButtons = NewButtons - IN_SPEED
  48. else
  49. if ListTeam[team.GetName(team.GetName(LocalPlayer():Team()))] then
  50. ply.BurgerStamina = math.Clamp(ply.BurgerStamina - Change * (ply.BurgerDecayMul + JobMulti), 0, ply.BurgerMaxStamina)
  51. ply.NextRegen = CurTime() + 1.25
  52. else
  53. ply.BurgerStamina = math.Clamp(ply.BurgerStamina - Change * ply.BurgerDecayMul, 0, ply.BurgerMaxStamina)
  54. ply.NextRegen = CurTime() + 1.25
  55. end
  56. end
  57. end
  58.  
  59. --Jumping code provided by bobbleheadbob
  60. if cmd:KeyDown(IN_JUMP) and ply:OnGround() and not ply:InVehicle() then
  61. if ply.BurgerStamina <= 5 then
  62. NewButtons = NewButtons - IN_JUMP
  63. else
  64. if not JumpLatch then
  65. if cmd:KeyDown(IN_SPEED) and (cmd:KeyDown(IN_FORWARD) or cmd:KeyDown(IN_BACK) or cmd:KeyDown(IN_MOVELEFT) or cmd:KeyDown(IN_MOVERIGHT)) then
  66. ply.BurgerStamina = math.Clamp(ply.BurgerStamina - 25 * ply.BurgerDecayMul, 0, ply.BurgerMaxStamina)
  67. else
  68. ply.BurgerStamina = math.Clamp(ply.BurgerStamina - 5 * ply.BurgerDecayMul, 0, ply.BurgerMaxStamina)
  69. end
  70. end
  71.  
  72. ply.NextRegen = CurTime() + 1.25
  73. end
  74.  
  75. JumpLatch = true
  76. elseif not cmd:KeyDown(IN_JUMP) then
  77. JumpLatch = false
  78. end
  79.  
  80. if ply:WaterLevel() == 3 then
  81. ply.NextRegen = CurTime() + 1.25
  82.  
  83. if ply.BurgerStamina ~= 0 then
  84. ply.BurgerStamina = math.Clamp(ply.BurgerStamina - Change * 0.25 * ply.BurgerDecayMul, 0, ply.BurgerMaxStamina)
  85. else
  86. if ply.WaterTick <= CurTime() then
  87. net.Start("StaminaDrowning")
  88. net.WriteFloat(1)
  89. net.SendToServer()
  90. ply.WaterTick = CurTime() + 1
  91. end
  92. end
  93. end
  94.  
  95. if ply.NextRegen then
  96. if ply.NextRegen < CurTime() then
  97. if (cmd:KeyDown(IN_FORWARD) or cmd:KeyDown(IN_BACK) or cmd:KeyDown(IN_MOVELEFT) or cmd:KeyDown(IN_MOVERIGHT)) then
  98. ply.BurgerStamina = math.Clamp(ply.BurgerStamina + (Change * 0.1 * ply.BurgerRegenMul), 0, ply.BurgerMaxStamina)
  99. else
  100. ply.BurgerStamina = math.Clamp(ply.BurgerStamina + (Change * 0.5 * ply.BurgerRegenMul), 0, ply.BurgerMaxStamina)
  101. end
  102. end
  103. end
  104.  
  105. cmd:SetButtons(NewButtons)
  106. end
  107.  
  108. hook.Add("CreateMove", "Burger Sprint", GetClientMove)
  109. local Mat = Material("vgui/hsv-brightness")
  110.  
  111. surface.CreateFont("SprintFont", {
  112. font = "roboto condensed",
  113. size = 24,
  114. weight = 0,
  115. blursize = 0,
  116. scanlines = 0,
  117. antialias = true,
  118. underline = false,
  119. italic = false,
  120. strikeout = false,
  121. symbol = false,
  122. rotary = false,
  123. shadow = true,
  124. additive = false,
  125. outline = false
  126. })
  127.  
  128. local Alpha = 0
  129.  
  130. function DrawBurStamina()
  131. local ply = LocalPlayer()
  132. if ply.HasOblivionHUD then return end
  133. if GetConVarNumber("cl_bur_sprintmod_enablehud") == 0 then return end
  134. local Stamina = ply.BurgerStamina
  135. local MaxStamina = ply.BurgerMaxStamina
  136.  
  137. if GetConVarNumber("cl_bur_sprintmod_fade") then
  138. if Stamina == MaxStamina then
  139. Alpha = math.max(0, Alpha - 100 * FrameTime())
  140. else
  141. Alpha = math.min(100, Alpha + 100 * FrameTime())
  142. end
  143. else
  144. Alpha = 100
  145. end
  146.  
  147. local BasePercent = Alpha / 100
  148.  
  149. if MaxStamina then
  150. local BaseFade = 255
  151. local BarWidth = 25
  152. local BarHeight = 25
  153. local OPercent = 5 / MaxStamina
  154. local Percent = Stamina / MaxStamina
  155. local SizeScale = 1
  156. local XPos = ScrW() / 2
  157. local YPos = ScrH() - BarHeight * 2
  158. local XSize = BarWidth * 10
  159. local YSize = BarHeight
  160. surface.SetMaterial(Mat)
  161. surface.SetDrawColor(0, 0, 0, (BaseFade / 2) * BasePercent)
  162. surface.DrawTexturedRectRotated(XPos, YPos, XSize, YSize, 0)
  163. surface.SetMaterial(Mat)
  164. surface.SetDrawColor(0, 255, 0, BaseFade * BasePercent)
  165. surface.DrawTexturedRectRotated(XPos, YPos, XSize * 0.9 * Percent, YSize * 0.5, 0)
  166. draw.DrawText("STAMINA", "SprintFont", XPos, YPos - BarHeight / 2, Color(255, 255, 255, 255 * Percent * BasePercent), TEXT_ALIGN_CENTER)
  167. end
  168. end
  169.  
  170. hook.Add("HUDPaint", "Draw Burger Stamina", DrawBurStamina)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement