Skip to content

Commit b9cccc6

Browse files
authored
New CVars: sv_autobunnyhopping and sv_enablebunnyhopping (#686)
* Add bunnyhopping * Add missing cvar register. Added cvars to readme and cfg * API added * Changed define
1 parent c6187f3 commit b9cccc6

File tree

7 files changed

+51
-3
lines changed

7 files changed

+51
-3
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,8 @@ This means that plugins that do binary code analysis (Orpheu for example) probab
100100
| mp_fadetoblack | 0 | 0 | 2 | Observer's screen will fade to black on kill event or permanent.<br/> `0` No fade.<br/>`1` Fade to black and won't be able to watch anybody.<br/>`2` fade to black only on kill moment. |
101101
| mp_falldamage | 1 | 0 | 1 | Damage from falling.<br/>`0` disabled <br/>`1` enabled |
102102
| sv_allchat | 1 | 0 | 1 | Players can receive all other players text chat, team restrictions apply<br/>`0` disabled <br/>`1` enabled |
103+
| sv_autobunnyhopping | 0 | 0 | 1 | Players automatically re-jump while holding jump button.<br/>`0` disabled <br/>`1` enabled |
104+
| sv_enablebunnyhopping | 0 | 0 | 1 | Allow player speed to exceed maximum running speed.<br/>`0` disabled <br/>`1` enabled |
103105
</details>
104106

105107
## How to install zBot for CS 1.6?

dist/game.cfg

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -462,3 +462,17 @@ mp_free_armor 0
462462
//
463463
// Default value: "0"
464464
sv_allchat 0
465+
466+
// Players automatically re-jump while holding jump button.
467+
// 0 - disabled (default behaviour)
468+
// 1 - enabled
469+
//
470+
// Default value: "0"
471+
sv_autobunnyhopping 0
472+
473+
// Allow player speed to exceed maximum running speed
474+
// 0 - disabled (default behaviour)
475+
// 1 - enabled
476+
//
477+
// Default value: "0"
478+
sv_enablebunnyhopping 0

regamedll/dlls/API/CSPlayer.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -539,6 +539,8 @@ void CCSPlayer::Reset()
539539
m_iWeaponInfiniteIds = 0;
540540
m_bCanShootOverride = false;
541541
m_bGameForcingRespawn = false;
542+
m_bAutoBunnyHopping = false;
543+
m_bMegaBunnyJumping = false;
542544
}
543545

544546
void CCSPlayer::OnSpawn()

regamedll/dlls/game.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,8 @@ cvar_t t_default_weapons_secondary = { "mp_t_default_weapons_secondary", "
159159
cvar_t t_default_weapons_primary = { "mp_t_default_weapons_primary", "", 0, 0.0f, nullptr };
160160
cvar_t free_armor = { "mp_free_armor", "0", 0, 0.0f, nullptr };
161161
cvar_t allchat = { "sv_allchat", "0", 0, 0.0f, nullptr };
162+
cvar_t sv_autobunnyhopping = { "sv_autobunnyhopping", "0", 0, 0.0f, nullptr };
163+
cvar_t sv_enablebunnyhopping = { "sv_enablebunnyhopping", "0", 0, 0.0f, nullptr };
162164

163165
void GameDLL_Version_f()
164166
{
@@ -387,6 +389,8 @@ void EXT_FUNC GameDLLInit()
387389
CVAR_REGISTER(&t_default_weapons_primary);
388390
CVAR_REGISTER(&free_armor);
389391
CVAR_REGISTER(&allchat);
392+
CVAR_REGISTER(&sv_autobunnyhopping);
393+
CVAR_REGISTER(&sv_enablebunnyhopping);
390394

391395
// print version
392396
CONSOLE_ECHO("ReGameDLL version: " APP_VERSION "\n");

regamedll/dlls/game.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,8 @@ extern cvar_t t_default_weapons_secondary;
185185
extern cvar_t t_default_weapons_primary;
186186
extern cvar_t free_armor;
187187
extern cvar_t allchat;
188+
extern cvar_t sv_autobunnyhopping;
189+
extern cvar_t sv_enablebunnyhopping;
188190

189191
#endif
190192

regamedll/pm_shared/pm_shared.cpp

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2418,8 +2418,19 @@ void PM_Jump()
24182418
return;
24192419
}
24202420

2421+
#ifdef REGAMEDLL_API
2422+
const CCSPlayer* player = UTIL_PlayerByIndex(pmove->player_index + 1)->CSPlayer();
2423+
#endif
2424+
24212425
// don't pogo stick
2422-
if (pmove->oldbuttons & IN_JUMP)
2426+
if (pmove->oldbuttons & IN_JUMP
2427+
#ifdef REGAMEDLL_ADD
2428+
&& sv_autobunnyhopping.value <= 0.0
2429+
#ifdef REGAMEDLL_API
2430+
&& !player->m_bAutoBunnyHopping
2431+
#endif
2432+
#endif
2433+
)
24232434
{
24242435
return;
24252436
}
@@ -2434,7 +2445,16 @@ void PM_Jump()
24342445
// In the air now.
24352446
pmove->onground = -1;
24362447

2437-
PM_PreventMegaBunnyJumping();
2448+
#ifdef REGAMEDLL_ADD
2449+
if (sv_enablebunnyhopping.value <= 0.0
2450+
#ifdef REGAMEDLL_API
2451+
&& !player->m_bMegaBunnyJumping
2452+
#endif
2453+
)
2454+
#endif
2455+
{
2456+
PM_PreventMegaBunnyJumping();
2457+
}
24382458

24392459
real_t fvel = Length(pmove->velocity);
24402460
float fvol = 1.0f;

regamedll/public/regamedll/API/CSPlayer.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,9 @@ class CCSPlayer: public CCSMonster {
4646
m_iWeaponInfiniteAmmo(0),
4747
m_iWeaponInfiniteIds(0),
4848
m_bCanShootOverride(false),
49-
m_bGameForcingRespawn(false)
49+
m_bGameForcingRespawn(false),
50+
m_bAutoBunnyHopping(false),
51+
m_bMegaBunnyJumping(false)
5052
{
5153
m_szModel[0] = '\0';
5254
}
@@ -125,6 +127,8 @@ class CCSPlayer: public CCSMonster {
125127
int m_iWeaponInfiniteIds;
126128
bool m_bCanShootOverride;
127129
bool m_bGameForcingRespawn;
130+
bool m_bAutoBunnyHopping;
131+
bool m_bMegaBunnyJumping;
128132
};
129133

130134
// Inlines

0 commit comments

Comments
 (0)