mirror of
				https://github.com/chev2/gmod-addons.git
				synced 2025-10-30 06:31:35 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			17 lines
		
	
	
	
		
			1,015 B
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			17 lines
		
	
	
	
		
			1,015 B
		
	
	
	
		
			Lua
		
	
	
	
	
	
| local vm_velocity_enabled = CreateClientConVar("vm_velocity_enabled", "1", true, false, "Whether or not viewmodel velocity is enabled."):GetBool()
 | |
| cvars.AddChangeCallback("vm_velocity_enabled", function(_, _, newval) vm_velocity_enabled = tobool(newval) end)
 | |
| 
 | |
| local vm_velocity_max = CreateClientConVar("vm_velocity_max", "700", true, false, "Maximum velocity to be applied."):GetFloat()
 | |
| cvars.AddChangeCallback("vm_velocity_max", function(_, _, newval) vm_velocity_max = newval end)
 | |
| 
 | |
| local old_vel = Vector(0, 0, 0) --placeholder value
 | |
| 
 | |
| hook.Add("CalcViewModelView", "vm_velocity", function(_, _, _, _, newPos, newAng)
 | |
|     if vm_velocity_enabled then
 | |
|         vel = LocalPlayer():GetVelocity()
 | |
|         vel_capped = Vector(0, 0, math.Clamp(vel.z, -vm_velocity_max, vm_velocity_max)) --limit max value so viewmodels don't go too far off-screen
 | |
|         lerped_vel = LerpVector(FrameTime() * 40, old_vel, vel_capped) --lerp
 | |
|         old_vel = lerped_vel
 | |
|         return newPos - (lerped_vel * 0.006), newAng
 | |
|     end
 | |
| end)
 | 
