Skip to content
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

Half-life Bunnyjumps and special #1154

Open
AllesRatten opened this issue May 19, 2013 · 70 comments
Open

Half-life Bunnyjumps and special #1154

AllesRatten opened this issue May 19, 2013 · 70 comments

Comments

@AllesRatten
Copy link

Hello,

the "special" command and its pair "_special" alias made possible to create looping scripts with the otherwise very restricting scripting language of hl.
Without it there is no way for running scripts looped, without blocking the client's movements.

For example, on many servers (and in the Adrenaline Gamer Mod [promod for Half-life]), the bunnyjump-prevention is turned off, allowing players to do full bunny jumps if they jump on the exact same time when they hit the ground.

To achieve this, players have to perfectly time every jump while doing other hard moves, like aiming, and swiching weapons in fast speed.

Perfeclty timing the jumps with high fps is nearly impossible, so players either have to use a repeated jumping scprit, like :

alias "+bunnyhop" "+jump; wait; -jump; wait; +jump; wait;-jump; wait; +jump; wait; -jump; wait; +jump; wait; -jump; wait; +jump; wait; -jump; wait; +jump"
alias "-bunnyhop" "-jump"

But this scipt causes the feeling of lagg, because the wait commands in it. the more it is there the worst.

Or they can use the special _special to write this repeating scrpt:

alias hop "+jump; wait; -jump; wait; special"
alias +bunny "alias _special hop; hop"
alias -bunny "alias _special"

We need any sort of help there.
I would like to ask you to either put back the special and _special commands in the game, or provide another possibility of writing scripts with infinite loops in it.

Alles_Ratten

@HaraldQuake
Copy link

I think it would be the best to add an sv_bhop option.. so you can either have no bunnyhop or real nice and smooth bhop. It should get integrated into the game so you won't need any script. In keyboard options you should have one key for normal jumps, one key for bunnyhop and maybe one key for longjump, too.. the bunnyhop key would do the same like a bunnyhop-script.

@crustypig
Copy link

it is important for the half-life community that this issue is catered for, my suggestions would be to either add an svar to let the server decide whether to allow _special aliases, or to add a pogo jump bind inside the game's keyboard options, so that all players have access to this if they wish to use it

@quelgun
Copy link

quelgun commented May 20, 2013

Bring back _special in HLDM pls
or
It would be better to implement Bunny Hop and have it in HLDM options.

and..
may be delete bunnyjump-prevention from HLDM or make as server option.

@tara391
Copy link

tara391 commented May 20, 2013

hldm and ag losing good players due to the fact that it was removed.

@BETEP88
Copy link

BETEP88 commented May 20, 2013

yes, is trrue.
bring back _special in HLDM please.
don't kill our beloved game.

@dervogel
Copy link

Any automatization, which prevents the human from making mistakes , takes away depth from a game. _Special combined with +jumps allows players to have perfect timing for bunnyhopping , giving players who uses a looped version of a script a huge advantage over players who do those manually. _Special is even worse in that regard because it allows you to perform moves which otherwise are not possible to do, for example using bunny in tunnels with a height of less than 64 units. Or just replace +jump with +duck which causes bugged animations on playermodels.

Bunnyjumping is still possible even without _special.

Its just more difficult to do and thats the reason everyone complains about the removal of _special. It takes practise the same way you have to practise to aim in a fps game, which is good because practise is the diffrence between a good and an even better player. Getting rid of diffrences in skill, in either movement or aiming, just makes the game a more dumbed down version. You want and you need mechanics which requiere skill in order for players to distinguish themself from eachother.

If this problem "needs" to be fixed , which imo it does not , please add pogo jumping instead of re-enabling _special.

@AnAkkk
Copy link

AnAkkk commented May 20, 2013

_special shouldn't be brought back, there should be an option for pogo jumping in HLDM settings.

@LevShisterov
Copy link

Adding an option just in HLDM will not solve that for other mods that need it.

@LevShisterov
Copy link

@dervogel
If you suggesting to remove _special, you mean to make it harder to use bunnyhop. If you say that "harder = better", then you should disallow use of decent jump (alias with waits = automation) and disallow use of roller, because this is also an automation. So you are remain with just a bind +jump on a space. Let we see how you will bunnyhop with this?
The main question of this topic is about easiness of ability to use main technique in this game. Bunnyhop is an almost infinite depth technique that shouldn't be done more deeper because this is unneeded.
A lot of players already used _special way to access that technique so that is already a part of gameplay and you, @alfred-valve, removed it based on you own decision with suggestions and support from participants not playing HLDM professionally (yes, some of them play professional, but not all of them). So we are asking you to reconsider this. That's nothing to be said more over this, only to gather statistic about usage percentage, but don't take into account voices of people not playing HLDM.

@AnAkkk
Copy link

AnAkkk commented May 20, 2013

@LevShisterov : 2 solutions:

  1. If the jumping code is in the engine, then add it to the engine and disable it in mods where you don't want it.
  2. If the jumping code is in the client.dll of the mod, then get the mod developers to add it. If there are no more developers:
    I guess it's just one line of code that disables pogo jumping (it just stops you from jumping again after one jump), you could probably hack the client.dll of the mod to disables that.

@LevShisterov
Copy link

@anakin1, thanks.
It is in a mod (HL or AG, not matter). And it is good to have two binds: +jump and +bunny, so you can behave differently in various situations.

@AnAkkk
Copy link

AnAkkk commented May 20, 2013

Well if you don't want to keep jumping, just don't keep holding jump, I still think it could be an acceptable solution.

EDIT:
Found it in HL SDK, there is a part of code that disables pogo jumping that needs to be removed.
player.cpp, in CBasePlayer::Jump()

    // If this isn't the first frame pressing the jump button, break out.
    if ( !FBitSet( m_afButtonPressed, IN_JUMP ) )
        return;         // don't pogo stick

EDIT 2:
There are actually another place:
pm_shared.c, in PM_Jump()

    if ( pmove->oldbuttons & IN_JUMP )
        return;     // don't pogo stick

@Snatch32
Copy link

Some people already done with this game after this last update. More than 10 years of gaming and now something happans that makes it like "You played it all this time like this, right? Now forget about it, cuz we are developers and we say so!". Not only HLDM but many mods are suffering now. As I said before this thing is just killing the game. Many comment's above already said most of the situation. I hope you'll do something with it.

@Snatch32
Copy link

And yeah, firstly it was removed becouse some guys from TFC said it needed to be removed. Ok-ok, don't know about TFC, but why remove it from HLDM(that effects many side mods too) whan no-one asked to?

@ghost
Copy link

ghost commented May 20, 2013

it was removed from CS 1.6 and HL a long time ago. Why it should exist in TFC or HLDM?
CS 1.6 has bhop_ and kz_ maps, people are using scroll to do bhop, some servers provide an AMXX plugin, that emulates bhop. No one asks to add "_special". Why HLDM players are so unique?

@quelgun
Copy link

quelgun commented May 20, 2013

@Maxkorz, for example, because CS have slow gameplay (tactics), and HLDM and mods have very very fast gameplay.

@AnAkkk
Copy link

AnAkkk commented May 20, 2013

Here's a patched ag.dll that enables pogo stick jumping on Adrenaline Gamer:
http://rghost.net/46133586
It needs to be put on the server.
EDIT:
And the client.dll needs to be patched too to prevent prediction problems.
http://rghost.net/46137092

@grindcore
Copy link

Please bring back special command. Most of all players vote for bringing back autobhop. Please don't kill our beloved game!

@ghost
Copy link

ghost commented May 20, 2013

@anakin1 you have to patch the client.dll as well in pm_shared code or else it won't be predicted and provide nasty lag effect / no predict effect

@AnAkkk
Copy link

AnAkkk commented May 20, 2013

@adnmynjh : Correct. Here's the patched client.dll:
http://rghost.net/46137092

@crustypig
Copy link

half-life is really not comparable with counter-strike, or many other games in regard to bunnyhopping. in adrenaline gamer (the promod for half-life) bunnyhopping is the standard method to get from point-a to point-b, and the use of a looped bunnyhop script has been used in the community for the past decade. agreed, some players don't use it or don't like it, but the leagues which run in half-life all agree that players can use it.

new players who have started to learn the game in the past decade are aware of this bunnyhop script as it is shared and considered standard in configs - a majority of players use it.

players have become upset because it has been removed after 10 years of it being used, and of course they have a right to be upset, the game mechanics which have remained the same for a long time have been altered.

there is the argument over other scripts which can be made with the _special function, and some of these are considered lame, for example this duck-bounce script:

alias "+bounce" "alias _special @bounce;@bounce"
alias "-bounce" "alias _special"
alias "@bounce" "special;wait;+duck;wait;-duck"

bind "key" "+bounce"

I think the best option is to keep _special removed from aliasing, but create a "+bunny" bind which is effectively a pogo-jump (having the same function a _special bunnyhop script has).

alias "+bunny" "alias _special @bunny;@bunny"
alias "-bunny" "alias _special"
alias "@bunny" "special;wait;+jump;wait;-jump"

bind "key" "+bunny"

this way you remove the "lame" scripts, and also keep the half-life and adrenaline gamer communities happy (that is, if the "+bunny" command will work in adrenaline gamer mod too (im assuming it will as it uses the same platform)).

@xrCrowbar
Copy link

If you don't want to destroy the pro-scene of Half-Life, put _special alias back into HLDM. There must be a way to block it only in TFC.

@grach2
Copy link

grach2 commented May 22, 2013

strange decision to remove _spetsial. because of a dozen people crying in the TFC, suffer hundreds of players from hldm and adrenaline Gamer mod

with every new update I got more and more disappointed

shows that the person in charge of the renovation to the half life really have not played it and do not know all the details of its gameplay

@TPOCTb
Copy link

TPOCTb commented May 22, 2013

maybe you should just do a jump like it is in a quake, without any aliases etc... (just have enough time to push a jump button again before you reach the ground)

It's the best and the simpliest you can do

@ghost
Copy link

ghost commented May 23, 2013

maybe you should just do a jump like it is in a quake, without any aliases etc...

this is a problem since mods where players used _special based scripts won't be fixed as they have their own movements mechanics (including jumping mechanics), of course it would be possible fix this internally in the engine with a new command but it involves quite some changes

@TPOCTb
Copy link

TPOCTb commented May 23, 2013

i don't think its more difficult, than previous updates since february

@catinhat
Copy link

catinhat commented Jun 7, 2013

Sorry but thats really annoying, you discourage old gamers from using steam. I appreciate that steam is spread to linux. But every new update - new problems to solve. It's not only in hl, I heard more issues from cs players also. Nonsteam equals no fps lags, legless bunnyhopping plus no 100mb consuption running steam. I push people to use steam but there is no advantage now, Hl is old game so don't try to mess it up please.

@NightMare-
Copy link

Anyone can download this modified client.dll and use auto bhop to exploit their movement. How can we ensure leagues will be fair and how can we prevent players from modifying it? I feel bad for honest players that want to compete but can't because leagues are allowing players to use such exploits on steam servers and admins can't prevent them.

http://rghost.net/46137092

@BlackShadow
Copy link

@mikela-valve Please bring back _special...

@AnAkkk
Copy link

AnAkkk commented May 22, 2019

Bunny hopping is a skill, introducing back exploits in the game to achieve it wouldn't really be a good idea.

@BlackShadow
Copy link

BlackShadow commented May 22, 2019

Hi AnAkkk

GoldSrc has a speed cap feature. Even though people able to bhop, their speed will be capped when they reach 400-450 units. However there's servers with uncapped bhop. Mostly pros are using them. Bringing special back wouldn't be an issue at all.

Cheers

@AnAkkk
Copy link

AnAkkk commented May 22, 2019 via email

@BlackShadow
Copy link

I mean people still can bhop with Mouse Scroll Wheel even without _special so holding down Space and doing with Mouse Wheel is pretty much same. Or people still can do with keyboard macros. Or even with .ahk scripts. So it makes pretty much useless deleting _special.

@MKMatriX
Copy link

Well actually to have bhop in steam version I srted to some dll's from lev's version. Also usually many servers have uncapped bhop speed. Also that _special function isn't that much exploit. It's just non blocking input. Which can be achieved by so many ways... Bhop is important part of half-life multiplayer. I know that in realistic cs, or even in tf bhop isn't that fitting in style.

And cause the game is so old it would be nice if you allow even more scripting. I mean do you really waiting for much new players? I spend so many years playing this game. It is still better for me than cs:go. And to make more fun I will use scripts and mods.

@BlackShadow
Copy link

BlackShadow commented May 22, 2019

To be honest you can still pretty much get _special back with 2013 Pre-Steam Pipe Update of Half-Life engine. And im pretty sure whole pro community is aware of this. So yeah what we want is bring _special back in current version so we don't have to downgrade our game and use the old version.

@AnAkkk
Copy link

AnAkkk commented May 22, 2019

_special is not only for bunnyhop and it was removed because it can give an unfair advantage for a number of things. The proper way to do this is to add a server side setting.

If people are able to use older versions of the game and still play on latest servers then that is an exploit which needs to be fixed.

@BlackShadow
Copy link

BlackShadow commented May 22, 2019

Like what? I've literally never seen _special give unfair advantage since 2002. Like i said non-pro servers has bunnyhop cap which is good solution for regular players. And also downgrading a game is not really an exploit.

@MKMatriX
Copy link

Silent walk, bhop, double crunch. Isn't this that unfair? I mean new player can't kill me even once. I wasted years on this game. And even without bhop, new players think that I am cheater. So why don't you make game a bit more fun for so old funs?

And I know about RCE of this year, but I still will patch my game with old dll's. Unfair is that there is no ingame tutorial about bhop, or silent walk, but we still have google).

Also there is no easy way to allow bhop, or _special for servers.

@SamVanheer
Copy link

I looked into this a bit. Using the script provided in the first post as an example:

alias hop "+jump; wait; -jump; wait; special"
alias +bunny "alias _special hop; hop"
alias -bunny "alias _special"

When executing +bunny, in the space of one command execution this will happen:

+bunny is executed
_special is aliased to hop
hop is executed
+jump is executed
wait one frame
-jump is executed
wait one frame
special is executed
special inserts the _special command at the end of the client command buffer

After all other commands have been executed _special is executed, which executes hop, which does the whole thing again.

The difference between regular alias commands and _special is that _special is appended at the end of the buffer instead of immediately executing, which would cause an infinite loop that prevents any other commands from executing.

The really interesting part is this:

//-----------------------------------------------------------------------------
// Purpose: Activate's the player special ability
// called when the player hits their "special" key
//-----------------------------------------------------------------------------
void TeamFortressViewport::InputPlayerSpecial( void )
{
if (!m_iInitialized)
return;
#ifdef _TFC
if ( g_iPlayerClass == PC_ENGINEER || g_iPlayerClass == PC_SPY )
{
ShowCommandMenu( gViewPort->m_StandardMenu );
if ( m_pCurrentCommandMenu )
{
m_pCurrentCommandMenu->KeyInput( '7' );
}
}
else
#endif
{
// if it's any other class, just send the command down to the server
EngineClientCmd( "_special" );
}
}

This is where the special command is handled.

According to the comment _special is supposed to be sent to the server, but EngineClientCmd executes the command on the client. This means that _special only works this way because it is mistakenly being executed on the client instead of the server.

The server handles both special and _special commands in order to execute class-specific commands, so the special behavior of _special is actually a bug.

In my opinion _special presents an unfair advantage over players that don't know or choose not to use it, and it evidently wasn't intended to work this way. Otherwise a special purpose command to append commands to the end of the buffer would have existed in the engine.

@AllesRatten
Copy link
Author

I think most people just want any sort of autobhop, it doesnt have to be with _special. It could be implemented as an option in the menue, or just as an commandline.

In fact as mentioned by several people before, continuous bhop is essential for half-lifes multiplayer gameplay. For the promod "adrenaline gamer" we solved this with an upgrade that includes an autobhop, however in half life it's still a mess. Please don't destroy the steamversion of half-life any further and just bring _special or a replacement back.

It's such a sad story when a good game gets slaughtered :(

@HaraldQuake
Copy link

I agree it would be very nice to have a autojump-checkbox in multiplayer options.. and a no speedcap-option in server options. In general I don't understand why we don't have all features that we currently have in OpenAG. It's no secret that pretty much the whole competetive Half-Life 1 community is playing Adrenaline Gamer (or OpenAG to be exact) just because it has more maps and more features (for example locations-files for maps, voting-menue, matchmode, bunnyhop, optional crosshair-settings, forcemodels...) etc. etc.
It would be nice to have all these quality of life improvements also in normal Half-Life 1 Multiplayer..

@BlackShadow
Copy link

BlackShadow commented Jul 28, 2019

@mikela-valve I apologize if im bothering you about this too much, but please update us about _special. People want this "feature" back and we didn't gotten any respond so far. Removing _special really effected the HLDM Pro community. I'm pretty sure the people who requested removing _special doesn't even play Half-Life anymore and left the pro community their own good. Because of this, pro community has to downgrade their Half-Life version to pre-Steam pipe and can't get the newest updates.

@i486
Copy link

i486 commented Jul 29, 2019

I always thought removing _special from CS 1.6 was kind of amusing. Because whoever decided to remove it might as well have disabled binding +jump to mwheelup/down because they are essentially the same thing except using scroll repeatedly just hurts your finger.

I know that a lot of steam players just switched to non-steam or resort to using some 3rd party AutoIT bunnyhop script/DLLs after Valve disabled _special.

Bringing back _special would make many of those players to consider playing back on Steam version.

This game is 20 years old. Almost no one considers using _special bunnyhop/scripts as "cheat" these days. Every jump servers allows it in my country at least. Some of these servers even use a plugin to automatically enable it on players. Even the pub/vanilla/matchmaking servers allows it.

#BringBackSpecial :)

@fe7ch
Copy link

fe7ch commented Jul 29, 2019

Almost no one considers using _special bunnyhop/scripts as "cheat" these days

Only if you play on pubs.

@BlackShadow
Copy link

I wouldn't consider bringing _special back in CS. It completely breaks CS's purpose. But however Half-Life is a special case. It was like a feature for Half-Life. What Alfred did back in the day was completely care-free. He just like listened one guy and removed it from the game. Now how fair is that?

@BlackShadow
Copy link

Still bumping this after one year and still thinking it's was a really bad move deleting _special.

@HaraldQuake
Copy link

Still bumping this after one year and still thinking it's was a really bad move deleting _special.

agreed.

@peon501
Copy link

peon501 commented Oct 11, 2020

All scripts related to bhop should be removed.
It is unintended stuff. If you want to use it, use it on pre-patch.

@Maxi605
Copy link

Maxi605 commented Oct 13, 2020

All scripts related to bhop should be removed.
It is unintended stuff. If you want to use it, use it on pre-patch.

I know it's unintended but it became such a big part of the game, i don't agree with the option of remove it completely, a choice for server owner to allow it would be really nice tho.

@BlackShadow
Copy link

BlackShadow commented Oct 15, 2020

All scripts related to bhop should be removed.
It is unintended stuff. If you want to use it, use it on pre-patch.

Bunnyhopping became a core mechanic for this game. You cannot just delete it. It's big part of Half-Life. For the whole pro community. There's a bunnyhop prevention, it caps player's speed when they reach 350-400 units.. Bunnyhop cap is fair for casual servers, they remove capping in pro servers anyway. However deleting _special puts Pro Half-Life players in a whole another situation. I doubt you're even aware what you're talking about.

@peon501
Copy link

peon501 commented Oct 15, 2020

Loops/infinite cycles and recursion should be removed from any client-side gameplay controls scripting language of any game.
The "pro" community should not use these scripts and in mp.
It doesn't make any sense to keep it.
Talking about bunnyhop, you can gather the pro community and make a mod and play on the mod server for that, and don't send commands via scripts with recursion to the server-side that is spammy and on the original game.
These scripts just make an unequal playing field and unnecessary scripting.

@BlackShadow
Copy link

BlackShadow commented Oct 16, 2020

Loops/infinite cycles and recursion should be removed from any client-side gameplay controls scripting language of any game.
The "pro" community should not use these scripts and in mp.
It doesn't make any sense to keep it.
Talking about bunnyhop, you can gather the pro community and make a mod and play on the mod server for that, and don't send commands via scripts with recursion to the server-side that is spammy and on the original game.
These scripts just make an unequal playing field and unnecessary scripting.

I'm still sticking the thought that you're unable understand to what i'm trying to point. "Pro" community makes the game what it is today. Casual players come and go, it's the pros stick around. Besides even if you delete _special you still can bhop. There's lot's of ways to bhop without _special. Deleting the _special just makes people use alternative ways to bhop. So it's better to leave it instead removing it. Also there's a mod for pros to play, not all people play it but there's one but it's not a solution for this. Most of the people stick to OG Half-Life. Also there's no equality/balance in Half-Life, you should remember that.

@peon501
Copy link

peon501 commented Oct 16, 2020

So it's fine for most people to be without _special. "Most of the people stick to OG Half-Life."

@HaraldQuake
Copy link

People should not be forced to play a mod just to enjoy useful and established features like bhopping, compfortable matchmaking and server options. It divides the playerbase. These features should be in original HL aswell even without any mods. It's stupid that players basicly have to play on an outdated version or use external programs like autohotkey just to compete vs other experienced players. The game should have _special or add cl_autohop just like openAG has. In my opinion cl_autohop is the easiest way to enjoy advanced movement since it doesn't require any scripting and there could also be a server option to restrict this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests