Advertisement
Guest User

asddsad

a guest
Jul 16th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.56 KB | None | 0 0
  1. local PenetColor = Color(255, 255, 255, 255)
  2. local PenetMat = Material("trails/smoke")
  3. local PenetMat2 = Material("effects/yellowflare")
  4.  
  5. local cv_gv = GetConVar("sv_gravity")
  6.  
  7. function EFFECT:Init(data)
  8. self.StartPos = data:GetOrigin()
  9. self.Dir = data:GetNormal()
  10. self.Dir:Normalize()
  11. self.Len = 32
  12. self.EndPos = self.StartPos + self.Dir * self.Len
  13. self.LifeTime = 0.75
  14. self.DieTime = CurTime() + self.LifeTime
  15. self.Thickness = 1
  16. self.Grav = Vector(0, 0, -cv_gv:GetFloat())
  17. self.PartMult = data:GetMagnitude()
  18. self.SparkLife = 0.3
  19. self.WeaponEnt = data:GetEntity()
  20. if not IsValid(self.WeaponEnt) then return end
  21.  
  22. end
  23. end
  24.  
  25. function EFFECT:Think()
  26. if self.DieTime and (CurTime() > self.DieTime) then return false end
  27.  
  28. return true
  29. end
  30.  
  31. function EFFECT:Render()
  32. if self.DieTime then
  33. local fDelta = (self.DieTime - CurTime()) / self.LifeTime
  34. fDelta = math.Clamp(fDelta, 0, 1)
  35. render.SetMaterial(PenetMat)
  36. local color = ColorAlpha(PenetColor, 32 * fDelta)
  37. local precision = 16
  38. local i = 1
  39.  
  40. while i <= precision do
  41. render.DrawBeam(self.StartPos + self.Dir * self.Len * ((i - 1) / precision), self.StartPos + self.Dir * self.Len * (i / precision), self.Thickness * fDelta * (1 - i / precision), 0.5, 0.5, color)
  42. i = i + 1
  43. end
  44.  
  45. render.SetMaterial(PenetMat2)
  46. i = 1
  47.  
  48. while i <= precision do
  49. render.DrawBeam(self.StartPos + self.Dir * self.Len * ((i - 1) / precision), self.StartPos + self.Dir * self.Len * (i / precision), self.Thickness / 3 * 2 * fDelta * (1 - i / precision), 0.5, 0.5, color)
  50. i = i + 1
  51. end
  52. end
  53. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement