Advertisement
Guest User

Untitled

a guest
Apr 19th, 2015
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.38 KB | None | 0 0
  1. function ENT:PhysicsSimulate(phys, delta)
  2. if not self.Enabled then return end
  3.  
  4. local ang = phys:GetAngles()
  5. local avel = phys:GetAngleVelocity()
  6. local vel = phys:GetVelocity()
  7.  
  8. local vecf = Vector(0, 0, 0)
  9. local angf = Vector(0, 0, 0)
  10.  
  11. for i = 1, 4 do
  12. local tr = util.TraceLine({
  13. start = self:GetCornerPos(i),
  14. endpos = self:GetCornerPos(i) - Vector(0, 0, self:GetCornerPos(i):Distance(Vector(0, 0, -9999))),
  15. filter = self
  16. })
  17.  
  18. if tr.Fraction < 1 and tr.Fraction > 0 then
  19. local lin, ang = phys:CalculateForceOffset(
  20. vector_up * 320,
  21. self:GetCornerPos(i)
  22. )
  23.  
  24. vecf = vecf + lin
  25. angf = angf + ang
  26. end
  27. end
  28.  
  29. local angy = 0
  30. local user = self:GetDriver()
  31. if user:IsValid() then
  32. local speed = user:KeyDown(IN_SPEED) and 2 or 1
  33.  
  34. if user:KeyDown(IN_MOVELEFT) then angf = angf + Vector(0, 0, 170) * speed end
  35. if user:KeyDown(IN_MOVERIGHT) then angf = angf + Vector(0, 0, -170) * speed end
  36.  
  37. if user:KeyDown(IN_JUMP) then vecf = vecf + vector_up * 120 end
  38. if user:KeyDown(IN_DUCK) then vecf = vecf - vector_up * 120 end
  39.  
  40. if user:KeyDown(IN_FORWARD) then
  41. vecf = vecf + self:GetForward() * 200 * speed
  42. end
  43.  
  44. if user:KeyDown(IN_BACK) then
  45. vecf = vecf - self:GetForward() * 200 * speed
  46. end
  47. end
  48.  
  49. angf = angf - avel * delta * 70
  50. vecf = vecf - vel * delta * 200
  51.  
  52. return angf, vecf, SIM_GLOBAL_ACCELERATION
  53. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement