AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Plugins (https://forums.alliedmods.net/forumdisplay.php?f=108)
-   -   [TF2] Classic Movement (Bunnyhop, Wallstrafing, ...) (v1.0.1, 2017-06-09) (https://forums.alliedmods.net/showthread.php?t=294473)

mphe 02-27-2017 20:19

[TF2] Classic Movement (Bunnyhop, Wallstrafing, ...) (v1.0.1, 2017-06-09)
 
1 Attachment(s)
Classic Movement

This plugin brings back movement as it was in Quake or Half Life 1 based games.
It feels and behaves almost exactly like the original.


Features:
  • Wallstrafing
  • (Proper) Strafe jumps
  • Bunnyhopping
  • Jumping while being fully crouched
  • Double ducking
  • Ground Strafing
  • Whatever movement results by combining any of these above

This thread only contains a short overview. The full documentation is on GitHub.
If you plan to use it, I highly recommend reading the full documentation.


Installation:
Place classicmovement.smx into your "addons/sourcemod/plugins" folder.


Cvars:
Spoiler


User commands:

Spoiler


Tweaking:
See here


Interpolation:

This plugin uses interpolation to simulate higher tickrates. This is important because you need at least 100 fps for proper bunnyhopping, but TF2 servers are locked at a tickrate of 66.66666, which makes you mostly lose speed rather than gaining speed. This is also what makes existing bunnyhop plugins feel "not right".
Down in the video section you can find a comparison video of bunnyhopping with and without interpolation.

You can control the simulated tickrate by specifying a frametime using the cm_frametime cvar.
The frametime is calculated like this:
https://camo.githubusercontent.com/2...6b726174657d7d

For example, for tickrate 100:
https://camo.githubusercontent.com/8...253230302e3031

Note that it doesn't feel 100% like a real server at this tickrate. Sometimes you have to tweak the frametime a bit to get closer to the original. For example, a frametime of 0.009 feels more like tickrate 100 than the actual frametime of 0.01.
To deactivate this functionality (why would you?) set cm_frametime to 0.
Frametimes higher than 0.015 (66.66666) don't make sense because that's the same frametime the server runs at. Doing this anyway or setting a negative frametime will disable interpolation.

See here for a more in-depth explanation and usage instructions.


Further notes:
  • See here
  • I only tested the plugin with TF2, it might work with other games, too
    • CSS/CSGO:
      • Double Ducking - Works in both games
      • Wallstrafing - Doesn't work in both games
      • Bunnyhopping - Somewhat works in CSS, doesn't work in CSGO
Bugs/Issues:
  • Jump Pads sometimes don't set speed for some reason

Videos:
The following videos demonstrate the features of this plugin in comparison to the original Half-Life
Changelog:
Code:

1.0.1 (2017-06-09)
* Fix FOV being reset after zooming (sniper)

1.0.0 (2017-02-28)
* Initial release


Patro56 03-04-2017 05:48

Re: [TF2] Classic Movement (Bunnyhop, Wallstrafing, ...) (v1.0, 2017-02-28)
 
So much care put into this plugin forces me to show much love towards the creator. Tested it out and the bhop experience alone became much better. The annoying "jitter" which occured when landing/jumping is finally gone or at least its occurence has been massively reduced, feels (almost) like on a 100 tick CSGO server. At some point I shall try this plugin out on other source games I own and report my results. This is some great stuff right there. Much appreciated.

EDIT
Double Ducking - Works in both games
Wallstrafing - Doesn't work in both games
Bunnyhopping - Somewhat works in CSS, doesn't work in CSGO

mphe 03-05-2017 14:47

Re: [TF2] Classic Movement (Bunnyhop, Wallstrafing, ...) (v1.0, 2017-02-28)
 
Thanks for your reply, glad that you like it.

Quote:

Originally Posted by Patro56 (Post 2500637)
The annoying "jitter" which occured when landing/jumping is finally gone or at least its occurence has been massively reduced

Yep, that's a side effect of the way the plugin works. To prevent the engine from capping your speed, the player's maxspeed is increased. That means, whenever you hit the ground, the engine won't clamp your speed but simply applies friction to slow you down. This way the plugin doesn't need to interfere (e.g. by hard resetting your speed) and lets the engine do its job. -> No jittering.
This only works as long as the speed is below 520, though. There's another hard cap that clamps your speed at 520 as soon as you touch the ground. To bypass this, the plugin will apply friction and hard reset your speed to the calculated value, which might cause jitter.

Quote:

Originally Posted by Patro56 (Post 2500637)
Double Ducking - Works in both games
Wallstrafing - Doesn't work in both games
Bunnyhopping - Somewhat works in CSS, doesn't work in CSGO

A quick google search revealed that CSS/GO apparently requires another way of setting the player's maxspeed. This would explain why it won't work.
I have CSS so I will look into it soon-ish, when I have time.

Edit:
Looked into it and it seems CSS/GO's movement system interferes with mine. Can't be fixed in a reasonable amount of time, so no support for those.

torridgristle 11-19-2020 13:09

Re: [TF2] Classic Movement (Bunnyhop, Wallstrafing, ...) (v1.0.1, 2017-06-09)
 
The bhopping in this works much better than I expected, this is fantastic.

gdfsgdfg 03-21-2022 09:02

Re: [TF2] Classic Movement (Bunnyhop, Wallstrafing, ...) (v1.0.1, 2017-06-09)
 
Should have had an option to disable wallstrafing oh well.

mphe 10-03-2022 07:04

Re: [TF2] Classic Movement (Bunnyhop, Wallstrafing, ...) (v1.0.1, 2017-06-09)
 
Quote:

Originally Posted by gdfsgdfg (Post 2774852)
Should have had an option to disable wallstrafing oh well.

It's not possible to disable wallstrafing. It's a side effect of how the movement code works, just like airstrafing etc.


All times are GMT -4. The time now is 11:18.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.