Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function ENT:PhysicsSimulate(phys, delta)
- if not self.Enabled then return end
- local ang = phys:GetAngles()
- local avel = phys:GetAngleVelocity()
- local vel = phys:GetVelocity()
- local vecf = Vector(0, 0, 0)
- local angf = Vector(0, 0, 0)
- for i = 1, 4 do
- local tr = util.TraceLine({
- start = self:GetCornerPos(i),
- endpos = self:GetCornerPos(i) - Vector(0, 0, self:GetCornerPos(i):Distance(Vector(0, 0, -9999))),
- filter = self
- })
- if tr.Fraction < 1 and tr.Fraction > 0 then
- local lin, ang = phys:CalculateForceOffset(
- vector_up * 320,
- self:GetCornerPos(i)
- )
- vecf = vecf + lin
- angf = angf + ang
- end
- end
- local angy = 0
- local user = self:GetDriver()
- if user:IsValid() then
- local speed = user:KeyDown(IN_SPEED) and 2 or 1
- if user:KeyDown(IN_MOVELEFT) then angf = angf + Vector(0, 0, 170) * speed end
- if user:KeyDown(IN_MOVERIGHT) then angf = angf + Vector(0, 0, -170) * speed end
- if user:KeyDown(IN_JUMP) then vecf = vecf + vector_up * 120 end
- if user:KeyDown(IN_DUCK) then vecf = vecf - vector_up * 120 end
- if user:KeyDown(IN_FORWARD) then
- vecf = vecf + self:GetForward() * 200 * speed
- end
- if user:KeyDown(IN_BACK) then
- vecf = vecf - self:GetForward() * 200 * speed
- end
- end
- angf = angf - avel * delta * 70
- vecf = vecf - vel * delta * 200
- return angf, vecf, SIM_GLOBAL_ACCELERATION
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement