ValveSoftware / halflife

Half-Life 1 engine based games
Other
3.74k stars 631 forks source link

[TFC] _special needs removed. #1004

Closed hlstriker closed 11 years ago

hlstriker commented 11 years ago

The _special command needs to be removed to prevent perfectly automated features such as bunny hopping, chop hopping, quick pipe detting, etc.


If you ever want someone to maintain all aspects of TFC for free please feel free to contact me!

ghost commented 11 years ago

it doesn't 'need' to be removed since it doesn't cause any trouble on the server and / or the compatibility of the game with Linux or Mac clients so this request is out of the scope of the updates

LevShisterov commented 11 years ago

This command also exists in HL as a remnant from TFC. Don't remove it in HL because it is widely used in HLDM. (Write this here just in case...)

AnAkkk commented 11 years ago

It was already removed in CS 1.6 and CZ. I guess alfred forgot to remove it in the other games, or it's needed for some reason.

alfred-valve commented 11 years ago

Can you give more details on how it is a problem in TFC please.

hlstriker commented 11 years ago

@alfred-valve This command allows players to make scripts that give unfair advantages.

Bunny hopping: It lets players hold their jump key down and it will continue jumping. This allows for a perfect jump right after landing which lets the player gain momentum quicker than a non _special player. The fact the player doesn't have to repeatedly press their jump key to jump also allows them to focus more on another skill, such as aiming.

Quick pipe detting: This allows a demoman to toss their pipe, hold their det button, and as soon as the pipe is ready to det it will. This is unfair to a user that doesn't use a _special script because they have to sit there and spam their det pipe key non-stop, even then the player without a script won't have their pipe det as fast.

Basically _special allows you to create scripts in a way where you only need to hold a key down to loop the command, instead of pressing, releasing, pressing, etc. Technically you could create a script to jump non-stop by pressing spacebar once, then stop jumping when you press it again.

alfred-valve commented 11 years ago

Could you provide an example script/alias I can use to reproduce this problem (so I can see how it works and work out how to prevent it).

hlstriker commented 11 years ago

@alfred-valve Here is an auto-bhop script I wrote for you that also displays text each time +jump and -jump is called, just so you can see how fast it loops.

I think +attack2 uses special for something (although I don't see why), because if you choose a class such as engineer or spy you will notice their menu opens.

alias +hop  "alias _special hop_init; hop_init" # Set _special to hop_init. Then call hop_init.
alias -hop  "alias _special; -jump"         # Set _special to nothing. Make sure we unset all +commands we used too.

alias hop_init  "hop_loop; wait; special"       # Call hop_loop, make sure we wait once, then call special.
alias hop_loop  "hop_pjump"             # First iteration of the hop_loop will instantly call hop_pjump.

alias hop_pjump "+jump; say Plus; alias hop_loop hop_mjump" # Start jump, set the hop_loop to now call hop_mjump.
alias hop_mjump "-jump; say Minus; alias hop_loop hop_pjump"    # Stop jump, set the hop_loop to now call hop_pjump.

bind space +hop

Replace +jump and -jump with the command you want to use.

alfred-valve commented 11 years ago

Okay, now I understand the issue. TFC (and other games) use _special as part of the game, the bug here is that we allow _special to be aliased, I will fix that.

LevShisterov commented 11 years ago

Don't change this in HLDM. It is widely used for bunnyhopping for years.

ghost commented 11 years ago

why not to change it? _special was used for BH in cs as well, but now it's banned

LevShisterov commented 11 years ago

Because most of top skilled players in HLDM use it. This is a thing you should know if you wish to play hard. And this thing is not a secret. When player heard about he needs a config, he heard about bunnyhop script first. And yes, a lot of servers in HLDM have bunnyhop uncapped.

ghost commented 11 years ago

scripts don't make you "top skilled" and if you can't do BH without scripts, you're obviously not that good

LevShisterov commented 11 years ago

I am playing that game for almost 7 years, have servers for 5 years, helped others to install servers, participated in tournaments and leagues, talked to world top players in HLDM and AG. You can be sure, I know what I am talking about. Some years of when started playing I am too declined configs and bunnyhopping. But yes, you have to do bunnyhop to play good in HLDM. This game is interesting because it have long learning curve. You have to know and raise a lot of skills. Do not shorten that way. Yes, some players don't use bunnyhop script. But they removes arrester from the mouse wheel to use it for bunnyhop. I suppose both ways have a way to live.

crustypig commented 11 years ago

it would be wise to keep _special in hldm, it is widely used within the community and its not just the top players which benefit from it, its the middle skilled players who are still learning the game. the top players could all bunnyhop without the use of the script, as they learnt before the discovery of _special scripts but they have become lazy and rely on it. its the middle skilled players, who don't have years of experience of timing jumps perfectly who will suffer and probably leave, and those players make up a core part of the community.

hlstriker commented 11 years ago

the top players could all bunnyhop without the use of the script, as they learnt before the discovery of _special scripts but they have become lazy and rely on it.

@crustypig That is why it's a perfect reason to remove it. You don't want those middle skilled players suffering the same fate do you?

ghost commented 11 years ago

I don't understand it. In Counter-Strike we have special bh maps, kz maps, a very big community, but _special was removed anyway In HLDM we have "super pro lazy players" and it must not be removed

crustypig commented 11 years ago

at this point in the games history, the top players becoming lazy is not really a problem.. what's more important is that _special scripts helps those currently learning the game, as they don't have another skill barrier to cross to come close to the top players.

remove it, and you will lose players in an already dying community, i dont think it would be wise

edit: referring to the hldm community here, i cant speak for tfc as im not a tfc player

crustypig commented 11 years ago

also: counter-strike is almost non-comparable in regard to the importance bunnyhop has on gameplay. it is not considered lame to use a _special bhop script in hldm, because the ability to time jumps is only such a small part of its effective use, but it is the part which takes years to master. take this away and you make the skill ladder much higher to climb, and this imbalance would only decrease the number of players still learning this game

tehORiON commented 11 years ago

I consider it "cheating" using _special for bhop. "Bind mwheeldown +jump" and you have an incredibly easy way of bhopping. You can even use other scripts that does not make use of _special to make it easier to bhop with the spacebar or w/e you use. The only threat it will have to hldm is making the gameplay fair for everyone. Using a _special bhop script shouldn't be a requirement to have a fair chance in the game.

It should have been removed a long time ago, however it is only now that we can get in touch with valve like this.

crustypig commented 11 years ago

the leagues currently running in half-life (ehll, dml, rhll, ujilsmod) all accept _special scripts and don't regard them as cheats. when they first cropped up it was discussed whether or not to allow them in league play and the community spoke, and they were allowed.

taking them away this late in the game will do damage

ghost commented 11 years ago

why not letting the server decide whether aliasing _special should be allowed or not ? it would solve the HL1DM vs other games issue

tehORiON commented 11 years ago

@adnmynjh _special or scripts in general are clientside, not server side.

ghost commented 11 years ago

so what? an sv_pure like server variable where clients connected to the server would check its value and if it's non zero their client won't allow aliasing _special. it's nothing complicated

kriswema commented 11 years ago

@alfred-valve Since both versions, with and without _special, have been requested, why not add a sv_special variable that is disabled by default? That way these HLDM/AG/TFC/CS server admins can enable it if needed. Would there be something wrong with that? :) P.S. I just realized @adnmynjh suggested that aswell. m(

AnAkkk commented 11 years ago

Or just implement pogo jumping client side, like in Quake, so there is no need of a script. Anyway if you're going to block _special people will then do it with external macros.

crustypig commented 11 years ago

ah I would like to say that i don't believe this issue is "fixed" as a lot of players are complaining about this feature being removed. Today many players and friends have spoken to me and are upset, many have said they will drop the game, as they have been playing with this feature for 6+years in some cases, it would be sad to see them leave.

I hope you can consider to at least make a server variable which allows _special to be aliased

Mhono commented 11 years ago

BRING BACK THE BHOP!!!

Snatch32 commented 11 years ago

Bring back "_speciel" in HLDM plz. Maybe for TFC it's OK, but for HLDM it's killing the game for many players... Bunnyhop is a huge part of gameplay in many side-mods. Even in normal HLDM many servers have bhop enabled even tho it was removed a decade ego. You see, there's lots of HLDM-players(+ hldm-based competative mods like "Adrenaline Gamer-mod" and such) feel pain, anger, etc. because of this. It's already not that big community. Don't kill it please.

AnAkkk commented 11 years ago

It would be better to implement pogo jumping and have it in the game options than having to use scripts I guess. Maybe someone should make a bug for that.

kriswema commented 11 years ago

It would be better to implement pogo jumping and have it in the game options .. (@AnAkIn1)

Just to clarify, is "pogo jumping" holding the jump button down and it keeps jumping?

AnAkkk commented 11 years ago

@kriswema : Yes.

ghost commented 11 years ago

Just to clarify, is "pogo jumping" holding the jump button down and it keeps jumping?

as far as I know pogo jumping is partial in quakes (you have to release it between each jump but you can keep it pressed for each jump to have proper timing to avoid friction)

alfred-valve commented 11 years ago

@RtFly , this is a bug reporting database, provide useful information around the issue, please don't use derogatory terms.

spikedboy commented 11 years ago

@alfred-valve As an HL player I'd like you to reconsider this fix. The Adrenaline Gamer Half-Life mod really requires the ability to bunny hop, it is a core aspect of the competitive gameplay. Now we have to bunny hop manually, and it is really stressing and unconfortable. Or replace the game files or use a external program for it and maybe risk a VAC ban. I got to be honest about this and there is people who support the fix and think we should bhop manually. I'd really like you to reconsider this issue and perhaps, if not revert, give us a workaround? The EHLL is gonna suffer from this: http://www.ehll.co.uk/index.html It is still alive and kicking as of today. I will drop the league before going bald from doing the bunny hop manually. You have the power to keep my hair in good health man.

ghost commented 11 years ago

it looks like the people complaining are from this "Adrenaline Gamer" mod. the mod developer can just add an inbuilt bunnyhop function and voilà...?

LevShisterov commented 11 years ago

He is unavailable for years.

spikedboy commented 11 years ago

@adnmynjh no man, the development for the mod is long dead

ghost commented 11 years ago

_special loop based scripts are not only used to exploit auto bunnyhopping(which is an exploit and not allowed even in quake, by the way) but can be used for many other much more malicious scripts and this is probably the reason why it's blocked now;

however, I think allowing the server deciding whether allowing clients to alias _special or not can be a wise compromise, just like in QuakeWorld where scripts are allowed/forbidden by the server. I also think in the Source engine there is such a server variable to allow the wait command or not

spikedboy commented 11 years ago

@adnmynjh if such thing is possible it would be nice, yes. I understand the _special could be abused in TFC, but in HLDM and mods like AG (there is more mods like this) the absence of the _special is a big deal breaker now for a lot of people.

hlstriker commented 11 years ago

It's not that hard to bunnyhop without a script. Stop complaining and relying on scripts to play well.

MaximilianKohler commented 11 years ago

The majority of people in cs 1.6 who play bunnyhop maps/servers like kz and hide n seek, use mousewheel to bunny hop.

quelgun commented 11 years ago

Bring back the Bunny Hop in HLDM pls or AnAkIn1 +1 It would be better to implement Bunny Hop and have it in HLDM options.

tara391 commented 11 years ago

I agree, and I think another 1000 people, too.

BETEP88 commented 11 years ago

i agree too. bring back _special in HLDM please. don't kill our beloved game.

alfred-valve commented 11 years ago

1154 is tracking adding this back to hldm

SpiderWaffle commented 10 years ago

There is a lot of ignorance around bunny hopping and scripting and relationship between the two; and differences between a script with_special, a script without _special, using a mouse wheel, using a external program, and using turbo hardware functionality. It is a very complicated subject in fact and is highly misunderstood and under-regocized by developers.

I made a 45 minute youtube video explaining everything. https://www.youtube.com/watch?v=2cJikUWkrGY&list=UUNsT8bNe5yMk7U2w6O1npgw

The crux of the problem now is that this has always been true: Executing jump the frame you hit the ground is an important aspect of competitive play and is widely accepted and considered favorably for better gameplay and is ABSOLUTELY ESSENTIAL for preserving speed when bhopping. 1 frame on the ground is a massive gimp, and most users use 250 or 333 fps, thus timing this manual with regular consistency isn't plausible or done by any good/effective bhoppers. They all use one of the before mentioned methods to essentially spam jump, or even what was very common in tfc was actually a bhop.dll file which was considered a hack but spread and re-spawned through-out the community like Ebola, the attrition between anti-hackers and hackers was huge, and hackers still prevailed massively through-out the community, and was one of the largest reason I was discouraged from playing competitively after 10+ years of playing at a world class level.

This all stemmed from the fact that valve never gave a reliable means to jump the frame you're on the ground like the quake engine had, that Valve modded to create goldsource. And being ABSOLUTELY ESSENTIAL, users will of course whatever means possible to achieve this, or else the competitive game play falls to shit.

_special was general standard method among TFC and HLDM/AG players, though it really was still patched together ratty convoluted fix and large entry hurdle for new players to find and implement and can only jump perfectly on flat ground, else you have 50% chance to spend a frame on the ground; quake style or tirbes style pogo jump coming standard and available out of the box to all would really would have been best.

The disconnect between the community particularly the competitive and/or semi-competitive community and Valve has always been a glaring Achilles heal of the Valve corporation, and really the standout reason I don't support new valve games the way the TFC community was kicked to curb to appease the CS one, and essentially ignored even during it's later hay days, no bugs fixed, just tele-porters added which the community rejected as bad for gameplay.

HARDSTYLEBG commented 10 years ago

Just bring back _special back or make sv_special 1/0 command...

treetoon commented 10 years ago

I didn't realize SW had covered some of the things I just posted on another thread but I'll post it here anyways. Hopefully it will add some useful insight to this discussion.


"The problem is Half-Life's jump system, in Quake you can buffer jumps by holding space, it'll cause a jump to execute on the first frame when you land on the ground. HL will maintain the speed if the jump happens on the exact ground landing frame, this means _Special is actually not frame perfect and will occasionally suffer a loss in speed, unlike Yalter's recent bunnymod TAS version which include a tas_autojump feature that works on all FPS's.

People have tried several methods to bypass the problem since simply using a spacebar is to inconsistent. Because there were no good solutions (unlike Quake) this forced players to some options that include, third party programs that spam jump, built in script spamming (.CFG), hardware spamming such as turbo controllers or mouse wheels. Currently, all you can use is MWHEELS, this means there's a huge loss of units on every jump, but you can essentially use it as a shotgun spam script nevertheless. It also forces a new hand position on your mouse.

The removal of _Special did not solve anything, but worsened the gameplay and generally made the game boring.

Currently, you can get a specific non-steam version of HL and connect to steam servers, using _Special anyways. You also need to disable mouse wheels in HL which would be a pretty asinine move (as if the removal of _Special wasn't already).

The best solution here is to add a jump buffer, the second is using an autojump command to achieve frame perfection alike jump buffering. The third is bringing back _Special, which usage in the first place is to provide a fix for HL's broken jump system, but works incredibly well nevertheless.

I also want to mention version 1.1.0.8 back in 2001, as many of you may know as a catastrophe for Half-Life, ruining everyone's life's influenced by Counter-Strike. It added a 170% bhop cap. HLDM did get a fixed mod by the name of AG (Adrenaline Gamer) so that people pre-2001 could have fun post-2001. TFC never did get a fixed mod unfortunately, so people there just have to live with it.

If we look at the big picture and how ID software responded to bunnyhopping in comparison to Valve we can see a clear distinction, ID removed bhopping but put it back, as the community liked it and saw the potential of how much fun and skill based it is.

The problem is that jumping+strafing=bunnyhoping should of been a feature in Half-Life, TFC.. etc just like in Doom and Quake, but wasn't. That doesn't mean it can't be fixed, even some 16 years later.

In the end Bunnyhopping create intutive and fun gameplay, just like rocket jumping which have been accepted as a feature by valve moving all the way to Team Fortress 2. The point is, I'm a movement guy, and that's what I love about games. It's the reason I rocket and sticky jump in TF2, or bunnyhop in Quake and also why I love Half-Life.

(Keep in mind I started to like Half-Life for it's intuitive regular gameplay and storyline, not for bhops)"