New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix backwards bunnyhopping #984
Conversation
I also noticed this file uses a JUMPING variable which is shared across each Move hook and this assumes that each StartMove and FinishMove is called sequentially for each player. Is this a safe assumption? |
It is. |
All right. Looks good then. |
Backwards bunny-hopping was purposefully made to work the way it does in Half-Life 2, allowing you to reach silly speeds backwards. |
How about a convar? I'm not sure if the flags are right. I don't use convars very often. |
You'll need a networked ConVar. Use FCVAR_REPLICATED. |
Thanks. I was thinking FCVAR_NOTIFY handled that, but looks like it just does the chat print. I'll make that more clear on the wiki |
How about no. Adding an option to toggle everything is not a good idea. You can always remove it manually for your server if you don't like it. |
There are sbox_weapons, sbox_godmode, sbox_playershurtplayers which are good. You shouldn't expect server owners to have to mod their lua for everything, especially when it is something that can't be modded without editing a file which is in the sandbox gamemode (which can be overwritten by updates). Please reconsider. It is sorely needed. |
A feature that lets people almost instantly reach max velocity is a little bit ridiculous, especially when you force people to have at least some understanding of Lua to remove it. |
@robotboy655 Please reopen. |
OK FINE |
❤️ |
Why the fuck is bunny hopping a feature you want enabled by default? The only existing gamemode that would benefit from this is the one from years ago that let you play HL2 maps in multiplayer. Sandbox wouldn't benefit and DarkRP server owners would hate it, as is the case for most, if not all sandbox derived gamemodes. People who want this feature should get it by installing a third party addon, not by installing the game and leaving it as it is. |
@FPtje Because it's default HL2 behaviour. We already have the HL2 jump boost in Sandbox, and I think that adding another HL2 velocity system is fully in question. If you don't want it in DarkRP, then override the convar, just like you did with sv_allowcslua. |
So this should be in Gmod because it was a thing in another source game? Is this a thing in css and tf2 too? If it isn't why arbitrarily cling to hl2 and not tf2/css? Why don't we scour the web for bugs in hl2, reimplement them in Gmod, enable them by default and make a convar to disable them? Your reasoning would justify this, because all bugs in hl2 are trivially default hl2 behaviour. This is ridiculous. |
DarkRP uses it's own player class so it won't be affected. Many players enjoy the accelerated bunnyhop which is fine for purely sandbox servers, but some servers want to have more of a hl2dm environment and the accelerated bunnyhop ruins that. Those servers can decide to turn it off. |
Then disable the convar by default, that can go on debate. But the convar should absolutely be implemented |
Only because it uses player_default as a base. |
And this applies to player_sandbox which darkrp doesn't use. |
How about we scour the web for the same bugs as before, implement them in
gmod, make convars for them and have them disabled by default? Does "a
convar that is disabled by default" justify the purposeful introduction of
a bug?
I mean this cannot be classified as anything other than a bug. The few
people who want this, as grb said, should install it as a third party
addon.
The ham question is why it must necessarily be a gmod sandbox "feature"
rather than a third party addon feature.
In Gmod this is a toggleable bug, in a third party mod it would be an
actual feature, because the third party addon would be designed
specifically for it.
|
I think you misunderstand, the bug was already on by default before. My initial commit removed the bug entirely, but I decided to change it to a convar since it would ruin the fun of many who liked to hop around in sandbox. |
If it's a "bug" then why has it not been fixed in HL2? If we're not catering to HL2 physics, then why is jumpboost implemented? I think a convar to toggle Source engine behaviour -- especially one as pertinent as this -- is fully acceptable and provides absolutely no harm |
Worth noting here that it's Orange Box Source engine behaviour specifically. It has been fixed in later versions.
Of course it's a bug. Valve didn't add it on purpose. Valve fixed it in later versions, just like they also fixed HL1-style bhopping in Source. |
Snip wrong button |
You should just be using StartMove and FinishMove hooks if your code isn't part of a gamemode. You'll probably need to create that ConVar clientside, too. |
It's overwriting the player_sandbox move methods. Are you sure? I reverted the convar additions. I can bring them back if needed. |
Modifying a gamemode's methods (this includes player classes) is, as you said yourself, a hack. It's easy enough to just use two separate hooks to reproduce the same behvaiour. |
K I'll do that. I haven't had any problems with the convar or prediction so I think that is working fine. |
Have you tested without being on a listen server? If you create a ConVar on a dedicated server, it won't exist on any clients unless created there too. |
I'll double check then. Would it be safe just to put the CreateConVar outside the if SERVER block? I wasn't sure if it behaved similarly to concommand.Add, where you can't use it for both the server and the client. |
This is an engine issue, leave it as such. Writing tweaks and fixes programmatically should definitely be at the discretion of the user and/or server owners. If Garry thought this bug important he could simply update the game engine ( it's been done before right? ). Releasing this as a 'Backward BHOP fix' under workshop should suffice for most users. A significant portion of the GMod community, outside of sandbox, don't exactly know how to do this. Custom gamemodes use different player derivations anyway, and can completely bypass standard stuff. Even just putting a player velocity limit would cut the effect of this 'bug' off at the knees. Why is this still being debated? |
@awilliamson Late x 1. The fate has already been decided dude |
@LennyPenny Exactly! As a person who flies around backwards for fun in Sandbox, I feel it is iconic! |
👎 |
@awilliamson @Xandaros Everyone else has agreed that they can install a hl2 bunnyhop mod if they wish. I personally still think it should have a convar, but it's up to the devs. |
@robotboy655 Care to comment on why almost a year later you decide to merge without re-engaging the community in negotiations? What spurred this sudden merge? |
@awilliamson He merges a bunch at a time |
What community negotiations? |
@robotboy655 I guess he meant continue the debate over having a convar/which should be the default behaviour. |
@robotboy655 Just generally whether people still consider this an issue, or even want this fix. It has been almost a year - I think it might have been responsible to re-open community dialogue. After all that's what this platform is all about. |
If people did not want this, it would not be here as a PR. |
I would debate on the "ease;" the code above seems really hacky for overwriting it. Maybe just call a hook there to return a check whether to invert speedAddition? |
Why do you want an option to enable what's technically a bug? |
This game is based on HL2:DM -- why change its physics behaviour? |
Because this is Garry's Mod, and not HL2DM? |
Then why was this present from 2004 to 2016 in Garry's Mod? I understand on it being considered a bug, but it's just been around so long that it's more like a feature/engine behaviour now. Doesn't seem too game breaking either. It's fine to remove it by default, but it'd be nice to at the very least have a hook or convar so the fix to add it back doesn't have so redundant and reliant on the current code state |
I could've sworn garry or someone was fighting against people wanting this
|
We've been through this. Bugs that exist for a long time are still bugs. They don't become features. See the reasoning of last year for an elaboration on all these points. |
The man responsible for this patch is a monster. |
Since move:GetForwardSpeed() returns 0 when the player isn't pushing any keys, but move:GetVelocity() returns the actual speed.