mirror of
https://github.com/s1lentq/ReGameDLL_CS.git
synced 2025-01-27 14:08:00 +03:00
Merge remote-tracking branch 'remotes/origin/master' into experimental_penalty_jump
This commit is contained in:
commit
4126635239
@ -113,6 +113,8 @@ This means that plugins that do binary code analysis (Orpheu for example) probab
|
|||||||
| mp_dying_time | 3.0 | 0.0 | - | Time for switch to free observing after death.<br/>`0` - disable spectating around death.<br/>`>0.00001` - time delay to start spectate.<br/>`NOTE`: The countdown starts when the player’s death animation is finished. |
|
| mp_dying_time | 3.0 | 0.0 | - | Time for switch to free observing after death.<br/>`0` - disable spectating around death.<br/>`>0.00001` - time delay to start spectate.<br/>`NOTE`: The countdown starts when the player’s death animation is finished. |
|
||||||
| mp_deathmsg_flags | abc | 0 | - | Sets a flags for extra information in the player's death message.<br/>`0` disabled<br/>`a` position where the victim died<br/>`b` index of the assistant who helped the attacker kill the victim<br/>`c` rarity classification bits, e.g., `blinkill`, `noscope`, `penetrated`, etc. |
|
| mp_deathmsg_flags | abc | 0 | - | Sets a flags for extra information in the player's death message.<br/>`0` disabled<br/>`a` position where the victim died<br/>`b` index of the assistant who helped the attacker kill the victim<br/>`c` rarity classification bits, e.g., `blinkill`, `noscope`, `penetrated`, etc. |
|
||||||
| mp_assist_damage_threshold | 40 | 0 | 100 | Sets the percentage of damage needed to score an assist. |
|
| mp_assist_damage_threshold | 40 | 0 | 100 | Sets the percentage of damage needed to score an assist. |
|
||||||
|
| mp_freezetime_duck | 1 | 0 | 1 | Allow players to duck during freezetime.<br/> `0` disabled<br/>`1` enabled |
|
||||||
|
| mp_freezetime_jump | 1 | 0 | 1 | Allow players to jump during freezetime.<br/> `0` disabled<br/>`1` enabled |
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
## How to install zBot for CS 1.6?
|
## How to install zBot for CS 1.6?
|
||||||
|
14
dist/game.cfg
vendored
14
dist/game.cfg
vendored
@ -553,3 +553,17 @@ mp_deathmsg_flags "abc"
|
|||||||
//
|
//
|
||||||
// Default value: "40"
|
// Default value: "40"
|
||||||
mp_assist_damage_threshold "40"
|
mp_assist_damage_threshold "40"
|
||||||
|
|
||||||
|
// Allow players to duck during freezetime
|
||||||
|
// 0 - disabled
|
||||||
|
// 1 - enabled (default behaviour)
|
||||||
|
//
|
||||||
|
// Default value: "1"
|
||||||
|
mp_freezetime_duck "1"
|
||||||
|
|
||||||
|
// Allow players to jump during freezetime
|
||||||
|
// 0 - disabled
|
||||||
|
// 1 - enabled (default behaviour)
|
||||||
|
//
|
||||||
|
// Default value: "1"
|
||||||
|
mp_freezetime_jump "1"
|
@ -334,6 +334,7 @@ GAMEHOOK_REGISTRY(CBasePlayerWeapon_SendWeaponAnim);
|
|||||||
GAMEHOOK_REGISTRY(CSGameRules_SendDeathMessage);
|
GAMEHOOK_REGISTRY(CSGameRules_SendDeathMessage);
|
||||||
|
|
||||||
GAMEHOOK_REGISTRY(CBasePlayer_PlayerDeathThink);
|
GAMEHOOK_REGISTRY(CBasePlayer_PlayerDeathThink);
|
||||||
|
GAMEHOOK_REGISTRY(CBasePlayer_Observer_Think);
|
||||||
|
|
||||||
int CReGameApi::GetMajorVersion() {
|
int CReGameApi::GetMajorVersion() {
|
||||||
return REGAMEDLL_API_VERSION_MAJOR;
|
return REGAMEDLL_API_VERSION_MAJOR;
|
||||||
|
@ -741,6 +741,10 @@ typedef IHookChainRegistryClassImpl<void, CBasePlayerWeapon, int, int> CReGameHo
|
|||||||
typedef IHookChainClassImpl<void, CBasePlayer> CReGameHook_CBasePlayer_PlayerDeathThink;
|
typedef IHookChainClassImpl<void, CBasePlayer> CReGameHook_CBasePlayer_PlayerDeathThink;
|
||||||
typedef IHookChainRegistryClassImpl<void, CBasePlayer> CReGameHookRegistry_CBasePlayer_PlayerDeathThink;
|
typedef IHookChainRegistryClassImpl<void, CBasePlayer> CReGameHookRegistry_CBasePlayer_PlayerDeathThink;
|
||||||
|
|
||||||
|
// CBasePlayer::Observer_Think hook
|
||||||
|
typedef IHookChainClassImpl<void, CBasePlayer> CReGameHook_CBasePlayer_Observer_Think;
|
||||||
|
typedef IHookChainRegistryClassImpl<void, CBasePlayer> CReGameHookRegistry_CBasePlayer_Observer_Think;
|
||||||
|
|
||||||
class CReGameHookchains: public IReGameHookchains {
|
class CReGameHookchains: public IReGameHookchains {
|
||||||
public:
|
public:
|
||||||
// CBasePlayer virtual
|
// CBasePlayer virtual
|
||||||
@ -900,6 +904,7 @@ public:
|
|||||||
CReGameHookRegistry_CSGameRules_SendDeathMessage m_CSGameRules_SendDeathMessage;
|
CReGameHookRegistry_CSGameRules_SendDeathMessage m_CSGameRules_SendDeathMessage;
|
||||||
|
|
||||||
CReGameHookRegistry_CBasePlayer_PlayerDeathThink m_CBasePlayer_PlayerDeathThink;
|
CReGameHookRegistry_CBasePlayer_PlayerDeathThink m_CBasePlayer_PlayerDeathThink;
|
||||||
|
CReGameHookRegistry_CBasePlayer_Observer_Think m_CBasePlayer_Observer_Think;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual IReGameHookRegistry_CBasePlayer_Spawn *CBasePlayer_Spawn();
|
virtual IReGameHookRegistry_CBasePlayer_Spawn *CBasePlayer_Spawn();
|
||||||
@ -1058,6 +1063,7 @@ public:
|
|||||||
virtual IReGameHookRegistry_CSGameRules_SendDeathMessage *CSGameRules_SendDeathMessage();
|
virtual IReGameHookRegistry_CSGameRules_SendDeathMessage *CSGameRules_SendDeathMessage();
|
||||||
|
|
||||||
virtual IReGameHookRegistry_CBasePlayer_PlayerDeathThink *CBasePlayer_PlayerDeathThink();
|
virtual IReGameHookRegistry_CBasePlayer_PlayerDeathThink *CBasePlayer_PlayerDeathThink();
|
||||||
|
virtual IReGameHookRegistry_CBasePlayer_Observer_Think *CBasePlayer_Observer_Think();
|
||||||
};
|
};
|
||||||
|
|
||||||
extern CReGameHookchains g_ReGameHookchains;
|
extern CReGameHookchains g_ReGameHookchains;
|
||||||
|
@ -30,15 +30,15 @@
|
|||||||
|
|
||||||
void CCSEntity::FireBullets(int iShots, Vector &vecSrc, Vector &vecDirShooting, Vector &vecSpread, float flDistance, int iBulletType, int iTracerFreq, int iDamage, entvars_t *pevAttacker)
|
void CCSEntity::FireBullets(int iShots, Vector &vecSrc, Vector &vecDirShooting, Vector &vecSpread, float flDistance, int iBulletType, int iTracerFreq, int iDamage, entvars_t *pevAttacker)
|
||||||
{
|
{
|
||||||
m_pContainingEntity->FireBullets(iShots, vecSrc, vecDirShooting, vecSpread, flDistance, iBulletType, iTracerFreq, iDamage, pevAttacker);
|
BaseEntity()->FireBullets(iShots, vecSrc, vecDirShooting, vecSpread, flDistance, iBulletType, iTracerFreq, iDamage, pevAttacker);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CCSEntity::FireBuckshots(ULONG cShots, Vector &vecSrc, Vector &vecDirShooting, Vector &vecSpread, float flDistance, int iTracerFreq, int iDamage, entvars_t *pevAttacker)
|
void CCSEntity::FireBuckshots(ULONG cShots, Vector &vecSrc, Vector &vecDirShooting, Vector &vecSpread, float flDistance, int iTracerFreq, int iDamage, entvars_t *pevAttacker)
|
||||||
{
|
{
|
||||||
m_pContainingEntity->FireBuckshots(cShots, vecSrc, vecDirShooting, vecSpread, flDistance, iTracerFreq, iDamage, pevAttacker);
|
BaseEntity()->FireBuckshots(cShots, vecSrc, vecDirShooting, vecSpread, flDistance, iTracerFreq, iDamage, pevAttacker);
|
||||||
}
|
}
|
||||||
|
|
||||||
Vector CCSEntity::FireBullets3(Vector &vecSrc, Vector &vecDirShooting, float vecSpread, float flDistance, int iPenetration, int iBulletType, int iDamage, float flRangeModifier, entvars_t *pevAttacker, bool bPistol, int shared_rand)
|
Vector CCSEntity::FireBullets3(Vector &vecSrc, Vector &vecDirShooting, float vecSpread, float flDistance, int iPenetration, int iBulletType, int iDamage, float flRangeModifier, entvars_t *pevAttacker, bool bPistol, int shared_rand)
|
||||||
{
|
{
|
||||||
return m_pContainingEntity->FireBullets3(vecSrc, vecDirShooting, vecSpread, flDistance, iPenetration, iBulletType, iDamage, flRangeModifier, pevAttacker, bPistol, shared_rand);
|
return BaseEntity()->FireBullets3(vecSrc, vecDirShooting, vecSpread, flDistance, iPenetration, iBulletType, iDamage, flRangeModifier, pevAttacker, bPistol, shared_rand);
|
||||||
}
|
}
|
||||||
|
@ -249,11 +249,13 @@ EXT_FUNC CBaseEntity *CCSPlayer::GiveNamedItemEx(const char *pszName)
|
|||||||
|
|
||||||
if (FStrEq(pszName, "weapon_c4")) {
|
if (FStrEq(pszName, "weapon_c4")) {
|
||||||
pPlayer->m_bHasC4 = true;
|
pPlayer->m_bHasC4 = true;
|
||||||
pPlayer->SetBombIcon();
|
|
||||||
|
|
||||||
if (pPlayer->m_iTeam == TERRORIST) {
|
if (pPlayer->m_iTeam == TERRORIST) {
|
||||||
pPlayer->pev->body = 1;
|
pPlayer->pev->body = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pPlayer->SetBombIcon();
|
||||||
|
|
||||||
} else if (FStrEq(pszName, "weapon_shield")) {
|
} else if (FStrEq(pszName, "weapon_shield")) {
|
||||||
pPlayer->DropPrimary();
|
pPlayer->DropPrimary();
|
||||||
pPlayer->DropPlayerItem("weapon_elite");
|
pPlayer->DropPlayerItem("weapon_elite");
|
||||||
@ -266,7 +268,7 @@ EXT_FUNC CBaseEntity *CCSPlayer::GiveNamedItemEx(const char *pszName)
|
|||||||
|
|
||||||
EXT_FUNC bool CCSPlayer::IsConnected() const
|
EXT_FUNC bool CCSPlayer::IsConnected() const
|
||||||
{
|
{
|
||||||
return m_pContainingEntity->has_disconnected == false;
|
return BaseEntity()->has_disconnected == false;
|
||||||
}
|
}
|
||||||
|
|
||||||
EXT_FUNC void CCSPlayer::SetAnimation(PLAYER_ANIM playerAnim)
|
EXT_FUNC void CCSPlayer::SetAnimation(PLAYER_ANIM playerAnim)
|
||||||
|
@ -451,17 +451,13 @@ BOOL CBaseMonster::TakeDamage(entvars_t *pevInflictor, entvars_t *pevAttacker, f
|
|||||||
|
|
||||||
if (pev->health <= 0.0f)
|
if (pev->health <= 0.0f)
|
||||||
{
|
{
|
||||||
g_pevLastInflictor = pevInflictor;
|
|
||||||
|
|
||||||
if (bitsDamageType & DMG_ALWAYSGIB)
|
if (bitsDamageType & DMG_ALWAYSGIB)
|
||||||
Killed(pevAttacker, GIB_ALWAYS);
|
KilledInflicted(pevInflictor, pevAttacker, GIB_ALWAYS);
|
||||||
|
|
||||||
else if (bitsDamageType & DMG_NEVERGIB)
|
else if (bitsDamageType & DMG_NEVERGIB)
|
||||||
Killed(pevAttacker, GIB_NEVER);
|
KilledInflicted(pevInflictor, pevAttacker, GIB_NEVER);
|
||||||
else
|
else
|
||||||
Killed(pevAttacker, GIB_NORMAL);
|
KilledInflicted(pevInflictor, pevAttacker, GIB_NORMAL);
|
||||||
|
|
||||||
g_pevLastInflictor = nullptr;
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
if ((pev->flags & FL_MONSTER) && !FNullEnt(pevAttacker))
|
if ((pev->flags & FL_MONSTER) && !FNullEnt(pevAttacker))
|
||||||
|
@ -697,7 +697,11 @@ BOOL CBaseEntity::TakeDamage(entvars_t *pevInflictor, entvars_t *pevAttacker, fl
|
|||||||
pev->health -= flDamage;
|
pev->health -= flDamage;
|
||||||
if (pev->health <= 0)
|
if (pev->health <= 0)
|
||||||
{
|
{
|
||||||
|
#ifdef REGAMEDLL_FIXES
|
||||||
|
KilledInflicted(pevInflictor, pevAttacker, GIB_NORMAL);
|
||||||
|
#else
|
||||||
Killed(pevAttacker, GIB_NORMAL);
|
Killed(pevAttacker, GIB_NORMAL);
|
||||||
|
#endif
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -866,6 +870,17 @@ BOOL CBaseEntity::IsInWorld()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// speed
|
// speed
|
||||||
|
#ifdef REGAMEDLL_FIXES
|
||||||
|
float maxvel = g_psv_maxvelocity->value;
|
||||||
|
if (pev->velocity.x > maxvel || pev->velocity.y > maxvel || pev->velocity.z > maxvel)
|
||||||
|
{
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
if (pev->velocity.x < -maxvel || pev->velocity.y < -maxvel || pev->velocity.z < -maxvel)
|
||||||
|
{
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
#else
|
||||||
if (pev->velocity.x >= 2000.0 || pev->velocity.y >= 2000.0 || pev->velocity.z >= 2000.0)
|
if (pev->velocity.x >= 2000.0 || pev->velocity.y >= 2000.0 || pev->velocity.z >= 2000.0)
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@ -874,6 +889,7 @@ BOOL CBaseEntity::IsInWorld()
|
|||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@ -246,6 +246,9 @@ public:
|
|||||||
void ResetDmgPenetrationLevel();
|
void ResetDmgPenetrationLevel();
|
||||||
int GetDmgPenetrationLevel() const;
|
int GetDmgPenetrationLevel() const;
|
||||||
|
|
||||||
|
void KilledInflicted(entvars_t *pevInflictor, entvars_t *pevAttacker, int iGib);
|
||||||
|
entvars_t *GetLastInflictor();
|
||||||
|
|
||||||
#ifdef REGAMEDLL_API
|
#ifdef REGAMEDLL_API
|
||||||
CCSEntity *m_pEntity;
|
CCSEntity *m_pEntity;
|
||||||
CCSEntity *CSEntity() const;
|
CCSEntity *CSEntity() const;
|
||||||
|
@ -673,10 +673,12 @@ void EXT_FUNC ClientPutInServer(edict_t *pEntity)
|
|||||||
CBaseEntity *pTarget = nullptr;
|
CBaseEntity *pTarget = nullptr;
|
||||||
pPlayer->m_pIntroCamera = UTIL_FindEntityByClassname(nullptr, "trigger_camera");
|
pPlayer->m_pIntroCamera = UTIL_FindEntityByClassname(nullptr, "trigger_camera");
|
||||||
|
|
||||||
|
#ifndef REGAMEDLL_FIXES
|
||||||
if (g_pGameRules && g_pGameRules->IsMultiplayer())
|
if (g_pGameRules && g_pGameRules->IsMultiplayer())
|
||||||
{
|
{
|
||||||
CSGameRules()->m_bMapHasCameras = (pPlayer->m_pIntroCamera != nullptr);
|
CSGameRules()->m_bMapHasCameras = (pPlayer->m_pIntroCamera != nullptr);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (pPlayer->m_pIntroCamera)
|
if (pPlayer->m_pIntroCamera)
|
||||||
{
|
{
|
||||||
@ -694,7 +696,12 @@ void EXT_FUNC ClientPutInServer(edict_t *pEntity)
|
|||||||
pPlayer->pev->angles = CamAngles;
|
pPlayer->pev->angles = CamAngles;
|
||||||
pPlayer->pev->v_angle = pPlayer->pev->angles;
|
pPlayer->pev->v_angle = pPlayer->pev->angles;
|
||||||
|
|
||||||
pPlayer->m_fIntroCamTime = gpGlobals->time + 6;
|
pPlayer->m_fIntroCamTime =
|
||||||
|
#ifdef REGAMEDLL_FIXES
|
||||||
|
(CSGameRules()->m_bMapHasCameras <= 1) ? 0.0 : // no need to refresh cameras if map has only one
|
||||||
|
#endif
|
||||||
|
gpGlobals->time + 6;
|
||||||
|
|
||||||
pPlayer->pev->view_ofs = g_vecZero;
|
pPlayer->pev->view_ofs = g_vecZero;
|
||||||
}
|
}
|
||||||
#ifndef REGAMEDLL_FIXES
|
#ifndef REGAMEDLL_FIXES
|
||||||
|
@ -9,6 +9,7 @@ cvar_t *g_psv_friction = nullptr;
|
|||||||
cvar_t *g_psv_stopspeed = nullptr;
|
cvar_t *g_psv_stopspeed = nullptr;
|
||||||
cvar_t *g_psv_stepsize = nullptr;
|
cvar_t *g_psv_stepsize = nullptr;
|
||||||
cvar_t *g_psv_clienttrace = nullptr;
|
cvar_t *g_psv_clienttrace = nullptr;
|
||||||
|
cvar_t *g_psv_maxvelocity = nullptr;
|
||||||
|
|
||||||
cvar_t displaysoundlist = { "displaysoundlist", "0", 0, 0.0f, nullptr };
|
cvar_t displaysoundlist = { "displaysoundlist", "0", 0, 0.0f, nullptr };
|
||||||
cvar_t timelimit = { "mp_timelimit", "0", FCVAR_SERVER, 0.0f, nullptr };
|
cvar_t timelimit = { "mp_timelimit", "0", FCVAR_SERVER, 0.0f, nullptr };
|
||||||
@ -168,6 +169,8 @@ cvar_t plant_c4_anywhere = { "mp_plant_c4_anywhere", "0", 0, 0.0
|
|||||||
cvar_t give_c4_frags = { "mp_give_c4_frags", "3", 0, 3.0f, nullptr };
|
cvar_t give_c4_frags = { "mp_give_c4_frags", "3", 0, 3.0f, nullptr };
|
||||||
cvar_t deathmsg_flags = { "mp_deathmsg_flags", "abc", 0, 0.0f, nullptr };
|
cvar_t deathmsg_flags = { "mp_deathmsg_flags", "abc", 0, 0.0f, nullptr };
|
||||||
cvar_t assist_damage_threshold = { "mp_assist_damage_threshold", "40", 0, 40.0f, nullptr };
|
cvar_t assist_damage_threshold = { "mp_assist_damage_threshold", "40", 0, 40.0f, nullptr };
|
||||||
|
cvar_t freezetime_duck = { "mp_freezetime_duck", "1", 0, 1.0f, nullptr };
|
||||||
|
cvar_t freezetime_jump = { "mp_freezetime_jump", "1", 0, 1.0f, nullptr };
|
||||||
|
|
||||||
cvar_t hostages_rescued_ratio = { "mp_hostages_rescued_ratio", "1.0", 0, 1.0f, nullptr };
|
cvar_t hostages_rescued_ratio = { "mp_hostages_rescued_ratio", "1.0", 0, 1.0f, nullptr };
|
||||||
|
|
||||||
@ -238,6 +241,7 @@ void EXT_FUNC GameDLLInit()
|
|||||||
g_psv_stopspeed = CVAR_GET_POINTER("sv_stopspeed");
|
g_psv_stopspeed = CVAR_GET_POINTER("sv_stopspeed");
|
||||||
g_psv_stepsize = CVAR_GET_POINTER("sv_stepsize");
|
g_psv_stepsize = CVAR_GET_POINTER("sv_stepsize");
|
||||||
g_psv_clienttrace = CVAR_GET_POINTER("sv_clienttrace");
|
g_psv_clienttrace = CVAR_GET_POINTER("sv_clienttrace");
|
||||||
|
g_psv_maxvelocity = CVAR_GET_POINTER("sv_maxvelocity");
|
||||||
|
|
||||||
CVAR_REGISTER(&displaysoundlist);
|
CVAR_REGISTER(&displaysoundlist);
|
||||||
CVAR_REGISTER(&timelimit);
|
CVAR_REGISTER(&timelimit);
|
||||||
@ -432,6 +436,9 @@ void EXT_FUNC GameDLLInit()
|
|||||||
CVAR_REGISTER(&deathmsg_flags);
|
CVAR_REGISTER(&deathmsg_flags);
|
||||||
CVAR_REGISTER(&assist_damage_threshold);
|
CVAR_REGISTER(&assist_damage_threshold);
|
||||||
|
|
||||||
|
CVAR_REGISTER(&freezetime_duck);
|
||||||
|
CVAR_REGISTER(&freezetime_jump);
|
||||||
|
|
||||||
// print version
|
// print version
|
||||||
CONSOLE_ECHO("ReGameDLL version: " APP_VERSION "\n");
|
CONSOLE_ECHO("ReGameDLL version: " APP_VERSION "\n");
|
||||||
|
|
||||||
|
@ -43,12 +43,13 @@
|
|||||||
extern cvar_t *g_pskill;
|
extern cvar_t *g_pskill;
|
||||||
extern cvar_t *g_psv_gravity;
|
extern cvar_t *g_psv_gravity;
|
||||||
extern cvar_t *g_psv_aim;
|
extern cvar_t *g_psv_aim;
|
||||||
|
extern cvar_t *g_footsteps;
|
||||||
extern cvar_t *g_psv_accelerate;
|
extern cvar_t *g_psv_accelerate;
|
||||||
extern cvar_t *g_psv_friction;
|
extern cvar_t *g_psv_friction;
|
||||||
extern cvar_t *g_psv_stopspeed;
|
extern cvar_t *g_psv_stopspeed;
|
||||||
extern cvar_t *g_psv_stepsize;
|
extern cvar_t *g_psv_stepsize;
|
||||||
extern cvar_t *g_psv_clienttrace;
|
extern cvar_t *g_psv_clienttrace;
|
||||||
extern cvar_t *g_footsteps;
|
extern cvar_t *g_psv_maxvelocity;
|
||||||
|
|
||||||
extern cvar_t displaysoundlist;
|
extern cvar_t displaysoundlist;
|
||||||
extern cvar_t timelimit;
|
extern cvar_t timelimit;
|
||||||
@ -199,6 +200,8 @@ extern cvar_t player_movement_legacy;
|
|||||||
extern cvar_t player_movement_penalty_jump;
|
extern cvar_t player_movement_penalty_jump;
|
||||||
extern cvar_t deathmsg_flags;
|
extern cvar_t deathmsg_flags;
|
||||||
extern cvar_t assist_damage_threshold;
|
extern cvar_t assist_damage_threshold;
|
||||||
|
extern cvar_t freezetime_duck;
|
||||||
|
extern cvar_t freezetime_jump;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -779,7 +779,7 @@ public:
|
|||||||
bool m_bMapHasEscapeZone;
|
bool m_bMapHasEscapeZone;
|
||||||
|
|
||||||
BOOL m_bMapHasVIPSafetyZone; // TRUE = has VIP safety zone, FALSE = does not have VIP safetyzone
|
BOOL m_bMapHasVIPSafetyZone; // TRUE = has VIP safety zone, FALSE = does not have VIP safetyzone
|
||||||
BOOL m_bMapHasCameras;
|
int m_bMapHasCameras;
|
||||||
int m_iC4Timer;
|
int m_iC4Timer;
|
||||||
int m_iC4Guy; // The current Terrorist who has the C4.
|
int m_iC4Guy; // The current Terrorist who has the C4.
|
||||||
int m_iLoserBonus; // the amount of money the losing team gets. This scales up as they lose more rounds in a row
|
int m_iLoserBonus; // the amount of money the losing team gets. This scales up as they lose more rounds in a row
|
||||||
|
@ -772,6 +772,13 @@ void CGrenade::BounceSound()
|
|||||||
|
|
||||||
void CGrenade::TumbleThink()
|
void CGrenade::TumbleThink()
|
||||||
{
|
{
|
||||||
|
#ifdef REGAMEDLL_FIXES
|
||||||
|
if (pev->velocity.IsLengthGreaterThan(g_psv_maxvelocity->value))
|
||||||
|
{
|
||||||
|
pev->velocity = pev->velocity.Normalize() * g_psv_maxvelocity->value;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (!IsInWorld())
|
if (!IsInWorld())
|
||||||
{
|
{
|
||||||
UTIL_Remove(this);
|
UTIL_Remove(this);
|
||||||
@ -809,6 +816,13 @@ void CGrenade::TumbleThink()
|
|||||||
|
|
||||||
void CGrenade::SG_TumbleThink()
|
void CGrenade::SG_TumbleThink()
|
||||||
{
|
{
|
||||||
|
#ifdef REGAMEDLL_FIXES
|
||||||
|
if (pev->velocity.IsLengthGreaterThan(g_psv_maxvelocity->value))
|
||||||
|
{
|
||||||
|
pev->velocity = pev->velocity.Normalize() * g_psv_maxvelocity->value;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (!IsInWorld())
|
if (!IsInWorld())
|
||||||
{
|
{
|
||||||
UTIL_Remove(this);
|
UTIL_Remove(this);
|
||||||
@ -1322,6 +1336,13 @@ void AnnounceFlashInterval(float interval, float offset)
|
|||||||
|
|
||||||
void CGrenade::C4Think()
|
void CGrenade::C4Think()
|
||||||
{
|
{
|
||||||
|
#ifdef REGAMEDLL_FIXES
|
||||||
|
if (pev->velocity.IsLengthGreaterThan(g_psv_maxvelocity->value))
|
||||||
|
{
|
||||||
|
pev->velocity = pev->velocity.Normalize() * g_psv_maxvelocity->value;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (!IsInWorld())
|
if (!IsInWorld())
|
||||||
{
|
{
|
||||||
#ifdef REGAMEDLL_FIXES
|
#ifdef REGAMEDLL_FIXES
|
||||||
|
@ -4,12 +4,11 @@ LINK_ENTITY_TO_CLASS(gib, CGib, CCSGib)
|
|||||||
|
|
||||||
void CGib::LimitVelocity()
|
void CGib::LimitVelocity()
|
||||||
{
|
{
|
||||||
float length = pev->velocity.Length();
|
float topspeed = g_psv_maxvelocity->value * 0.75f;
|
||||||
float topspeed = CVAR_GET_FLOAT("sv_maxvelocity") * 0.75f;
|
|
||||||
|
|
||||||
// ceiling at topspeed. The gib velocity equation is not bounded properly. Rather than tune it
|
// ceiling at topspeed. The gib velocity equation is not bounded properly. Rather than tune it
|
||||||
// in 3 separate places again, I'll just limit it here.
|
// in 3 separate places again, I'll just limit it here.
|
||||||
if (length > topspeed)
|
if (pev->velocity.IsLengthGreaterThan(topspeed))
|
||||||
{
|
{
|
||||||
// DONE: This should really be sv_maxvelocity * 0.75 or something
|
// DONE: This should really be sv_maxvelocity * 0.75 or something
|
||||||
pev->velocity = pev->velocity.Normalize() * topspeed;
|
pev->velocity = pev->velocity.Normalize() * topspeed;
|
||||||
|
@ -382,7 +382,7 @@ CHalfLifeMultiplay::CHalfLifeMultiplay()
|
|||||||
m_iNumTerrorist = 0;
|
m_iNumTerrorist = 0;
|
||||||
m_iNumSpawnableCT = 0;
|
m_iNumSpawnableCT = 0;
|
||||||
m_iNumSpawnableTerrorist = 0;
|
m_iNumSpawnableTerrorist = 0;
|
||||||
m_bMapHasCameras = FALSE;
|
m_bMapHasCameras = -1;
|
||||||
|
|
||||||
m_iLoserBonus = m_rgRewardAccountRules[RR_LOSER_BONUS_DEFAULT];
|
m_iLoserBonus = m_rgRewardAccountRules[RR_LOSER_BONUS_DEFAULT];
|
||||||
m_iNumConsecutiveCTLoses = 0;
|
m_iNumConsecutiveCTLoses = 0;
|
||||||
@ -3086,17 +3086,11 @@ void CHalfLifeMultiplay::CheckLevelInitialized()
|
|||||||
{
|
{
|
||||||
// Count the number of spawn points for each team
|
// Count the number of spawn points for each team
|
||||||
// This determines the maximum number of players allowed on each
|
// This determines the maximum number of players allowed on each
|
||||||
CBaseEntity *pEnt = nullptr;
|
m_iSpawnPointCount_Terrorist = UTIL_CountEntities("info_player_deathmatch");
|
||||||
|
m_iSpawnPointCount_CT = UTIL_CountEntities("info_player_start");
|
||||||
m_iSpawnPointCount_Terrorist = 0;
|
#ifdef REGAMEDLL_FIXES
|
||||||
m_iSpawnPointCount_CT = 0;
|
m_bMapHasCameras = UTIL_CountEntities("trigger_camera");
|
||||||
|
#endif
|
||||||
while ((pEnt = UTIL_FindEntityByClassname(pEnt, "info_player_deathmatch")))
|
|
||||||
m_iSpawnPointCount_Terrorist++;
|
|
||||||
|
|
||||||
while ((pEnt = UTIL_FindEntityByClassname(pEnt, "info_player_start")))
|
|
||||||
m_iSpawnPointCount_CT++;
|
|
||||||
|
|
||||||
m_bLevelInitialized = true;
|
m_bLevelInitialized = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -541,7 +541,9 @@ void EXT_FUNC CBasePlayer::__API_HOOK(Observer_SetMode)(int iMode)
|
|||||||
m_bWasFollowing = false;
|
m_bWasFollowing = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CBasePlayer::Observer_Think()
|
LINK_HOOK_CLASS_VOID_CHAIN2(CBasePlayer, Observer_Think)
|
||||||
|
|
||||||
|
void EXT_FUNC CBasePlayer::__API_HOOK(Observer_Think)()
|
||||||
{
|
{
|
||||||
Observer_HandleButtons();
|
Observer_HandleButtons();
|
||||||
Observer_CheckTarget();
|
Observer_CheckTarget();
|
||||||
|
@ -82,7 +82,9 @@ const char *CDeadHEV::m_szPoses[] =
|
|||||||
"deadtable"
|
"deadtable"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifndef REGAMEDLL_API
|
||||||
entvars_t *g_pevLastInflictor;
|
entvars_t *g_pevLastInflictor;
|
||||||
|
#endif
|
||||||
|
|
||||||
LINK_ENTITY_TO_CLASS(player, CBasePlayer, CCSPlayer)
|
LINK_ENTITY_TO_CLASS(player, CBasePlayer, CCSPlayer)
|
||||||
|
|
||||||
@ -1693,7 +1695,6 @@ void EXT_FUNC CBasePlayer::__API_HOOK(GiveDefaultItems)()
|
|||||||
|
|
||||||
void CBasePlayer::RemoveAllItems(BOOL removeSuit)
|
void CBasePlayer::RemoveAllItems(BOOL removeSuit)
|
||||||
{
|
{
|
||||||
bool bKillProgBar = false;
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
#ifdef REGAMEDLL_FIXES
|
#ifdef REGAMEDLL_FIXES
|
||||||
@ -1713,20 +1714,12 @@ void CBasePlayer::RemoveAllItems(BOOL removeSuit)
|
|||||||
{
|
{
|
||||||
m_bHasC4 = false;
|
m_bHasC4 = false;
|
||||||
pev->body = 0;
|
pev->body = 0;
|
||||||
|
SetBombIcon(FALSE);
|
||||||
MESSAGE_BEGIN(MSG_ONE, gmsgStatusIcon, nullptr, pev);
|
SetProgressBarTime(0);
|
||||||
WRITE_BYTE(STATUSICON_HIDE);
|
|
||||||
WRITE_STRING("c4");
|
|
||||||
MESSAGE_END();
|
|
||||||
|
|
||||||
bKillProgBar = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
RemoveShield();
|
RemoveShield();
|
||||||
|
|
||||||
if (bKillProgBar)
|
|
||||||
SetProgressBarTime(0);
|
|
||||||
|
|
||||||
if (m_pActiveItem)
|
if (m_pActiveItem)
|
||||||
{
|
{
|
||||||
ResetAutoaim();
|
ResetAutoaim();
|
||||||
@ -2130,7 +2123,7 @@ void EXT_FUNC CBasePlayer::__API_HOOK(Killed)(entvars_t *pevAttacker, int iGib)
|
|||||||
if (IsBot() && IsBlind()) // dystopm: shouldn't be !IsBot() ?
|
if (IsBot() && IsBlind()) // dystopm: shouldn't be !IsBot() ?
|
||||||
wasBlind = true;
|
wasBlind = true;
|
||||||
|
|
||||||
TheCareerTasks->HandleEnemyKill(wasBlind, GetKillerWeaponName(g_pevLastInflictor, pevAttacker), m_bHeadshotKilled, killerHasShield, pAttacker, this); // last 2 param swapped to match function definition
|
TheCareerTasks->HandleEnemyKill(wasBlind, GetKillerWeaponName(GetLastInflictor(), pevAttacker), m_bHeadshotKilled, killerHasShield, pAttacker, this); // last 2 param swapped to match function definition
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -2161,7 +2154,7 @@ void EXT_FUNC CBasePlayer::__API_HOOK(Killed)(entvars_t *pevAttacker, int iGib)
|
|||||||
{
|
{
|
||||||
if (TheCareerTasks)
|
if (TheCareerTasks)
|
||||||
{
|
{
|
||||||
TheCareerTasks->HandleEnemyKill(wasBlind, GetKillerWeaponName(g_pevLastInflictor, pevAttacker), m_bHeadshotKilled, killerHasShield, this, pPlayer);
|
TheCareerTasks->HandleEnemyKill(wasBlind, GetKillerWeaponName(GetLastInflictor(), pevAttacker), m_bHeadshotKilled, killerHasShield, this, pPlayer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2171,7 +2164,7 @@ void EXT_FUNC CBasePlayer::__API_HOOK(Killed)(entvars_t *pevAttacker, int iGib)
|
|||||||
|
|
||||||
if (!m_bKilledByBomb)
|
if (!m_bKilledByBomb)
|
||||||
{
|
{
|
||||||
g_pGameRules->PlayerKilled(this, pevAttacker, g_pevLastInflictor);
|
g_pGameRules->PlayerKilled(this, pevAttacker, GetLastInflictor());
|
||||||
}
|
}
|
||||||
|
|
||||||
MESSAGE_BEGIN(MSG_ONE, gmsgNVGToggle, nullptr, pev);
|
MESSAGE_BEGIN(MSG_ONE, gmsgNVGToggle, nullptr, pev);
|
||||||
@ -3673,7 +3666,11 @@ void EXT_FUNC CBasePlayer::__API_HOOK(JoiningThink)()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_pIntroCamera && gpGlobals->time >= m_fIntroCamTime)
|
if (m_pIntroCamera && gpGlobals->time >= m_fIntroCamTime
|
||||||
|
#ifdef REGAMEDLL_FIXES
|
||||||
|
&& m_fIntroCamTime > 0.0 // update only if cameras are available
|
||||||
|
#endif
|
||||||
|
)
|
||||||
{
|
{
|
||||||
// find the next another camera
|
// find the next another camera
|
||||||
m_pIntroCamera = UTIL_FindEntityByClassname(m_pIntroCamera, "trigger_camera");
|
m_pIntroCamera = UTIL_FindEntityByClassname(m_pIntroCamera, "trigger_camera");
|
||||||
@ -10359,8 +10356,8 @@ bool EXT_FUNC CBasePlayer::__API_HOOK(MakeBomber)()
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_bHasC4 = true;
|
m_bHasC4 = true;
|
||||||
SetBombIcon();
|
|
||||||
pev->body = 1;
|
pev->body = 1;
|
||||||
|
SetBombIcon();
|
||||||
|
|
||||||
m_flDisplayHistory |= DHF_BOMB_RETRIEVED;
|
m_flDisplayHistory |= DHF_BOMB_RETRIEVED;
|
||||||
HintMessage("#Hint_you_have_the_bomb", FALSE, TRUE);
|
HintMessage("#Hint_you_have_the_bomb", FALSE, TRUE);
|
||||||
|
@ -447,6 +447,7 @@ public:
|
|||||||
void CheckTimeBasedDamage_OrigFunc();
|
void CheckTimeBasedDamage_OrigFunc();
|
||||||
edict_t *EntSelectSpawnPoint_OrigFunc();
|
edict_t *EntSelectSpawnPoint_OrigFunc();
|
||||||
void PlayerDeathThink_OrigFunc();
|
void PlayerDeathThink_OrigFunc();
|
||||||
|
void Observer_Think_OrigFunc();
|
||||||
|
|
||||||
CCSPlayer *CSPlayer() const;
|
CCSPlayer *CSPlayer() const;
|
||||||
#endif // REGAMEDLL_API
|
#endif // REGAMEDLL_API
|
||||||
@ -975,7 +976,9 @@ inline CBasePlayer *UTIL_PlayerByIndexSafe(int playerIndex)
|
|||||||
return pPlayer;
|
return pPlayer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef REGAMEDLL_API
|
||||||
extern entvars_t *g_pevLastInflictor;
|
extern entvars_t *g_pevLastInflictor;
|
||||||
|
#endif
|
||||||
extern CBaseEntity *g_pLastSpawn;
|
extern CBaseEntity *g_pLastSpawn;
|
||||||
extern CBaseEntity *g_pLastCTSpawn;
|
extern CBaseEntity *g_pLastCTSpawn;
|
||||||
extern CBaseEntity *g_pLastTerroristSpawn;
|
extern CBaseEntity *g_pLastTerroristSpawn;
|
||||||
|
@ -1758,6 +1758,17 @@ int UTIL_GetNumPlayers()
|
|||||||
return nNumPlayers;
|
return nNumPlayers;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int UTIL_CountEntities(const char *szName)
|
||||||
|
{
|
||||||
|
int count = 0;
|
||||||
|
CBaseEntity *pEnt = nullptr;
|
||||||
|
|
||||||
|
while ((pEnt = UTIL_FindEntityByClassname(pEnt, szName)))
|
||||||
|
count++;
|
||||||
|
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
bool UTIL_IsSpawnPointOccupied(CBaseEntity *pSpot)
|
bool UTIL_IsSpawnPointOccupied(CBaseEntity *pSpot)
|
||||||
{
|
{
|
||||||
if (!pSpot)
|
if (!pSpot)
|
||||||
|
@ -297,6 +297,7 @@ bool UTIL_AreBotsAllowed();
|
|||||||
bool UTIL_IsBeta();
|
bool UTIL_IsBeta();
|
||||||
bool UTIL_AreHostagesImprov();
|
bool UTIL_AreHostagesImprov();
|
||||||
int UTIL_GetNumPlayers();
|
int UTIL_GetNumPlayers();
|
||||||
|
int UTIL_CountEntities(const char *szName);
|
||||||
bool UTIL_IsSpawnPointOccupied(CBaseEntity *pSpot);
|
bool UTIL_IsSpawnPointOccupied(CBaseEntity *pSpot);
|
||||||
void MAKE_STRING_CLASS(const char *str, entvars_t *pev);
|
void MAKE_STRING_CLASS(const char *str, entvars_t *pev);
|
||||||
void NORETURN Sys_Error(const char *error, ...);
|
void NORETURN Sys_Error(const char *error, ...);
|
||||||
|
@ -1920,8 +1920,8 @@ void CWeaponBox::Touch(CBaseEntity *pOther)
|
|||||||
MESSAGE_END();
|
MESSAGE_END();
|
||||||
|
|
||||||
pPlayer->m_bHasC4 = true;
|
pPlayer->m_bHasC4 = true;
|
||||||
pPlayer->SetBombIcon(FALSE);
|
|
||||||
pPlayer->pev->body = 1;
|
pPlayer->pev->body = 1;
|
||||||
|
pPlayer->SetBombIcon(FALSE);
|
||||||
|
|
||||||
CBaseEntity *pEntity = nullptr;
|
CBaseEntity *pEntity = nullptr;
|
||||||
while ((pEntity = UTIL_FindEntityByClassname(pEntity, "player")))
|
while ((pEntity = UTIL_FindEntityByClassname(pEntity, "player")))
|
||||||
|
@ -1917,8 +1917,8 @@ void EXT_FUNC __API_HOOK(PM_Duck)()
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef REGAMEDLL_ADD
|
#ifdef REGAMEDLL_ADD
|
||||||
// Prevent ducking if the iuser3 variable is contain PLAYER_PREVENT_DUCK
|
if ((pmove->iuser3 & PLAYER_PREVENT_DUCK) == PLAYER_PREVENT_DUCK // Prevent ducking if the iuser3 variable is contain PLAYER_PREVENT_DUCK
|
||||||
if ((pmove->iuser3 & PLAYER_PREVENT_DUCK) == PLAYER_PREVENT_DUCK)
|
|| freezetime_duck.value == 0.0f && CSGameRules()->IsFreezePeriod()) // Prevent ducking during freezetime if the freezetime_duck cvar is 0
|
||||||
{
|
{
|
||||||
// Try to unduck
|
// Try to unduck
|
||||||
if (pmove->flags & FL_DUCKING)
|
if (pmove->flags & FL_DUCKING)
|
||||||
@ -2473,8 +2473,8 @@ void EXT_FUNC __API_HOOK(PM_Jump)()
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef REGAMEDLL_ADD
|
#ifdef REGAMEDLL_ADD
|
||||||
// Prevent jumping if the iuser3 variable is contain PLAYER_PREVENT_JUMP
|
if ((pmove->iuser3 & PLAYER_PREVENT_JUMP) == PLAYER_PREVENT_JUMP // Prevent jumping if the iuser3 variable is contain PLAYER_PREVENT_JUMP
|
||||||
if ((pmove->iuser3 & PLAYER_PREVENT_JUMP) == PLAYER_PREVENT_JUMP)
|
|| freezetime_jump.value == 0.0f && CSGameRules()->IsFreezePeriod()) // Prevent jumping during freezetime if the freezetime_jump cvar is 0
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -43,15 +43,18 @@ public:
|
|||||||
virtual void FireBuckshots(ULONG cShots, Vector &vecSrc, Vector &vecDirShooting, Vector &vecSpread, float flDistance, int iTracerFreq, int iDamage, entvars_t *pevAttacker);
|
virtual void FireBuckshots(ULONG cShots, Vector &vecSrc, Vector &vecDirShooting, Vector &vecSpread, float flDistance, int iTracerFreq, int iDamage, entvars_t *pevAttacker);
|
||||||
virtual Vector FireBullets3(Vector &vecSrc, Vector &vecDirShooting, float vecSpread, float flDistance, int iPenetration, int iBulletType, int iDamage, float flRangeModifier, entvars_t *pevAttacker, bool bPistol, int shared_rand);
|
virtual Vector FireBullets3(Vector &vecSrc, Vector &vecDirShooting, float vecSpread, float flDistance, int iPenetration, int iBulletType, int iDamage, float flRangeModifier, entvars_t *pevAttacker, bool bPistol, int shared_rand);
|
||||||
|
|
||||||
|
CBaseEntity *BaseEntity() const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
CBaseEntity *m_pContainingEntity;
|
CBaseEntity *m_pContainingEntity;
|
||||||
unsigned char m_ucDmgPenetrationLevel; // penetration level of the damage caused by the inflictor
|
unsigned char m_ucDmgPenetrationLevel; // penetration level of the damage caused by the inflictor
|
||||||
|
entvars_t *m_pevLastInflictor;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
#if defined(_MSC_VER)
|
#if defined(_MSC_VER)
|
||||||
#pragma region reserve_data_Region
|
#pragma region reserve_data_Region
|
||||||
#endif
|
#endif
|
||||||
char CCSEntity_Reserve[0x3FFF];
|
char CCSEntity_Reserve[0x3FF7];
|
||||||
|
|
||||||
virtual void func_reserve1() {};
|
virtual void func_reserve1() {};
|
||||||
virtual void func_reserve2() {};
|
virtual void func_reserve2() {};
|
||||||
@ -88,29 +91,61 @@ private:
|
|||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Inlines
|
||||||
|
inline CBaseEntity *CCSEntity::BaseEntity() const
|
||||||
|
{
|
||||||
|
return this->m_pContainingEntity;
|
||||||
|
}
|
||||||
|
|
||||||
inline void CBaseEntity::SetDmgPenetrationLevel(int iPenetrationLevel)
|
inline void CBaseEntity::SetDmgPenetrationLevel(int iPenetrationLevel)
|
||||||
{
|
{
|
||||||
#ifdef REGAMEDLL_API
|
#ifdef REGAMEDLL_API
|
||||||
m_pEntity->m_ucDmgPenetrationLevel = iPenetrationLevel;
|
CSEntity()->m_ucDmgPenetrationLevel = iPenetrationLevel;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void CBaseEntity::ResetDmgPenetrationLevel()
|
inline void CBaseEntity::ResetDmgPenetrationLevel()
|
||||||
{
|
{
|
||||||
#ifdef REGAMEDLL_API
|
#ifdef REGAMEDLL_API
|
||||||
m_pEntity->m_ucDmgPenetrationLevel = 0;
|
CSEntity()->m_ucDmgPenetrationLevel = 0;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
inline int CBaseEntity::GetDmgPenetrationLevel() const
|
inline int CBaseEntity::GetDmgPenetrationLevel() const
|
||||||
{
|
{
|
||||||
#ifdef REGAMEDLL_API
|
#ifdef REGAMEDLL_API
|
||||||
return m_pEntity->m_ucDmgPenetrationLevel;
|
return CSEntity()->m_ucDmgPenetrationLevel;
|
||||||
#else
|
#else
|
||||||
return 0;
|
return 0;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline void CBaseEntity::KilledInflicted(entvars_t* pevInflictor, entvars_t *pevAttacker, int iGib)
|
||||||
|
{
|
||||||
|
#ifdef REGAMEDLL_API
|
||||||
|
CSEntity()->m_pevLastInflictor = pevInflictor;
|
||||||
|
#else
|
||||||
|
g_pevLastInflictor = pevInflictor;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
Killed(pevAttacker, iGib);
|
||||||
|
|
||||||
|
#ifdef REGAMEDLL_API
|
||||||
|
CSEntity()->m_pevLastInflictor = nullptr;
|
||||||
|
#else
|
||||||
|
g_pevLastInflictor = nullptr;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
inline entvars_t* CBaseEntity::GetLastInflictor()
|
||||||
|
{
|
||||||
|
#ifdef REGAMEDLL_API
|
||||||
|
return CSEntity()->m_pevLastInflictor;
|
||||||
|
#else
|
||||||
|
return g_pevLastInflictor;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
class CCSDelay: public CCSEntity
|
class CCSDelay: public CCSEntity
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -588,10 +588,6 @@ typedef IHookChainRegistry<BOOL, int, int> IReGameHookRegistry_CSGameRules_TeamS
|
|||||||
typedef IHookChain<void, CBasePlayer *, CBasePlayerItem *> IReGameHook_CSGameRules_PlayerGotWeapon;
|
typedef IHookChain<void, CBasePlayer *, CBasePlayerItem *> IReGameHook_CSGameRules_PlayerGotWeapon;
|
||||||
typedef IHookChainRegistry<void, CBasePlayer *, CBasePlayerItem *> IReGameHookRegistry_CSGameRules_PlayerGotWeapon;
|
typedef IHookChainRegistry<void, CBasePlayer *, CBasePlayerItem *> IReGameHookRegistry_CSGameRules_PlayerGotWeapon;
|
||||||
|
|
||||||
// CHalfLifeMultiplay::SendDeathMessage hook
|
|
||||||
typedef IHookChain<void, class CBaseEntity *, class CBasePlayer *, class CBasePlayer *, struct entvars_s *, const char *, int, int> IReGameHook_CSGameRules_SendDeathMessage;
|
|
||||||
typedef IHookChainRegistry<void, class CBaseEntity *, class CBasePlayer *, class CBasePlayer *, struct entvars_s *, const char *, int, int> IReGameHookRegistry_CSGameRules_SendDeathMessage;
|
|
||||||
|
|
||||||
// CBotManager::OnEvent hook
|
// CBotManager::OnEvent hook
|
||||||
typedef IHookChain<void, GameEventType, CBaseEntity *, CBaseEntity *> IReGameHook_CBotManager_OnEvent;
|
typedef IHookChain<void, GameEventType, CBaseEntity *, CBaseEntity *> IReGameHook_CBotManager_OnEvent;
|
||||||
typedef IHookChainRegistry<void, GameEventType, CBaseEntity*, CBaseEntity*> IReGameHookRegistry_CBotManager_OnEvent;
|
typedef IHookChainRegistry<void, GameEventType, CBaseEntity*, CBaseEntity*> IReGameHookRegistry_CBotManager_OnEvent;
|
||||||
@ -616,10 +612,18 @@ typedef IHookChainRegistryClass<void, CBasePlayerWeapon, float, float, float, fl
|
|||||||
typedef IHookChainClass<void, CBasePlayerWeapon, int, int> IReGameHook_CBasePlayerWeapon_SendWeaponAnim;
|
typedef IHookChainClass<void, CBasePlayerWeapon, int, int> IReGameHook_CBasePlayerWeapon_SendWeaponAnim;
|
||||||
typedef IHookChainRegistryClass<void, CBasePlayerWeapon, int, int> IReGameHookRegistry_CBasePlayerWeapon_SendWeaponAnim;
|
typedef IHookChainRegistryClass<void, CBasePlayerWeapon, int, int> IReGameHookRegistry_CBasePlayerWeapon_SendWeaponAnim;
|
||||||
|
|
||||||
|
// CHalfLifeMultiplay::SendDeathMessage hook
|
||||||
|
typedef IHookChain<void, class CBaseEntity *, class CBasePlayer *, class CBasePlayer *, struct entvars_s *, const char *, int, int> IReGameHook_CSGameRules_SendDeathMessage;
|
||||||
|
typedef IHookChainRegistry<void, class CBaseEntity *, class CBasePlayer *, class CBasePlayer *, struct entvars_s *, const char *, int, int> IReGameHookRegistry_CSGameRules_SendDeathMessage;
|
||||||
|
|
||||||
// CBasePlayer::PlayerDeathThink hook
|
// CBasePlayer::PlayerDeathThink hook
|
||||||
typedef IHookChainClass<void, class CBasePlayer> IReGameHook_CBasePlayer_PlayerDeathThink;
|
typedef IHookChainClass<void, class CBasePlayer> IReGameHook_CBasePlayer_PlayerDeathThink;
|
||||||
typedef IHookChainRegistryClass<void, class CBasePlayer> IReGameHookRegistry_CBasePlayer_PlayerDeathThink;
|
typedef IHookChainRegistryClass<void, class CBasePlayer> IReGameHookRegistry_CBasePlayer_PlayerDeathThink;
|
||||||
|
|
||||||
|
// CBasePlayer::Observer_Think hook
|
||||||
|
typedef IHookChainClass<void, class CBasePlayer> IReGameHook_CBasePlayer_Observer_Think;
|
||||||
|
typedef IHookChainRegistryClass<void, class CBasePlayer> IReGameHookRegistry_CBasePlayer_Observer_Think;
|
||||||
|
|
||||||
class IReGameHookchains {
|
class IReGameHookchains {
|
||||||
public:
|
public:
|
||||||
virtual ~IReGameHookchains() {}
|
virtual ~IReGameHookchains() {}
|
||||||
@ -780,6 +784,7 @@ public:
|
|||||||
virtual IReGameHookRegistry_CSGameRules_SendDeathMessage *CSGameRules_SendDeathMessage() = 0;
|
virtual IReGameHookRegistry_CSGameRules_SendDeathMessage *CSGameRules_SendDeathMessage() = 0;
|
||||||
|
|
||||||
virtual IReGameHookRegistry_CBasePlayer_PlayerDeathThink *CBasePlayer_PlayerDeathThink() = 0;
|
virtual IReGameHookRegistry_CBasePlayer_PlayerDeathThink *CBasePlayer_PlayerDeathThink() = 0;
|
||||||
|
virtual IReGameHookRegistry_CBasePlayer_Observer_Think *CBasePlayer_Observer_Think() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ReGameFuncs_t {
|
struct ReGameFuncs_t {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user