mirror of
https://github.com/s1lentq/ReGameDLL_CS.git
synced 2024-12-27 07:05:38 +03:00
Implement CBasePlayer::HasTimePassedSinceDeath()
for m_fDeadTime
(#648)
* Implement CBasePlayer::HasTimePassedSinceDied() for m_fDeadTime
This commit is contained in:
parent
59c297d26d
commit
1ac96b8180
@ -288,12 +288,12 @@ void CBasePlayer::Observer_CheckTarget()
|
|||||||
else if (target->pev->effects & EF_NODRAW)
|
else if (target->pev->effects & EF_NODRAW)
|
||||||
{
|
{
|
||||||
#ifdef REGAMEDLL_FIXES
|
#ifdef REGAMEDLL_FIXES
|
||||||
bool bStillDying = (target->pev->deadflag == DEAD_DYING || (target->pev->deadflag == DEAD_DEAD && (gpGlobals->time <= target->m_fDeadTime + 2.0f)));
|
bool bStillDying = (target->pev->deadflag == DEAD_DYING || (target->pev->deadflag == DEAD_DEAD && !target->HasTimePassedSinceDeath(2.0f)));
|
||||||
if (!bStillDying || (target->m_afPhysicsFlags & PFLAG_OBSERVER)) // keep observing to victim until dying, even if it is invisible
|
if (!bStillDying || (target->m_afPhysicsFlags & PFLAG_OBSERVER)) // keep observing to victim until dying, even if it is invisible
|
||||||
#endif
|
#endif
|
||||||
Observer_FindNextPlayer(false);
|
Observer_FindNextPlayer(false);
|
||||||
}
|
}
|
||||||
else if (target->pev->deadflag == DEAD_DEAD && gpGlobals->time > target->m_fDeadTime + 2.0f)
|
else if (target->pev->deadflag == DEAD_DEAD && target->HasTimePassedSinceDeath(2.0f))
|
||||||
{
|
{
|
||||||
// 2 secs after death change target
|
// 2 secs after death change target
|
||||||
Observer_FindNextPlayer(false);
|
Observer_FindNextPlayer(false);
|
||||||
|
@ -3762,7 +3762,7 @@ void CBasePlayer::PlayerDeathThink()
|
|||||||
{
|
{
|
||||||
// if the player has been dead for one second longer than allowed by forcerespawn,
|
// if the player has been dead for one second longer than allowed by forcerespawn,
|
||||||
// forcerespawn isn't on. Send the player off to an intermission camera until they choose to respawn.
|
// forcerespawn isn't on. Send the player off to an intermission camera until they choose to respawn.
|
||||||
if (g_pGameRules->IsMultiplayer() && gpGlobals->time > m_fDeadTime + 3 && !(m_afPhysicsFlags & PFLAG_OBSERVER))
|
if (g_pGameRules->IsMultiplayer() && HasTimePassedSinceDeath(3.0f) && !(m_afPhysicsFlags & PFLAG_OBSERVER))
|
||||||
{
|
{
|
||||||
// Send message to everybody to spawn a corpse.
|
// Send message to everybody to spawn a corpse.
|
||||||
SpawnClientSideCorpse();
|
SpawnClientSideCorpse();
|
||||||
|
@ -578,6 +578,7 @@ public:
|
|||||||
bool IsHittingShield(Vector &vecDirection, TraceResult *ptr);
|
bool IsHittingShield(Vector &vecDirection, TraceResult *ptr);
|
||||||
bool SelectSpawnSpot(const char *pEntClassName, CBaseEntity* &pSpot);
|
bool SelectSpawnSpot(const char *pEntClassName, CBaseEntity* &pSpot);
|
||||||
bool IsReloading() const;
|
bool IsReloading() const;
|
||||||
|
bool HasTimePassedSinceDeath(float duration) const;
|
||||||
bool IsBlind() const { return (m_blindUntilTime > gpGlobals->time); }
|
bool IsBlind() const { return (m_blindUntilTime > gpGlobals->time); }
|
||||||
bool IsAutoFollowAllowed() const { return (gpGlobals->time > m_allowAutoFollowTime); }
|
bool IsAutoFollowAllowed() const { return (gpGlobals->time > m_allowAutoFollowTime); }
|
||||||
void InhibitAutoFollow(float duration) { m_allowAutoFollowTime = gpGlobals->time + duration; }
|
void InhibitAutoFollow(float duration) { m_allowAutoFollowTime = gpGlobals->time + duration; }
|
||||||
@ -928,6 +929,11 @@ inline bool CBasePlayer::IsReloading() const
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline bool CBasePlayer::HasTimePassedSinceDeath(float duration) const
|
||||||
|
{
|
||||||
|
return gpGlobals->time > (m_fDeadTime + duration);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef REGAMEDLL_API
|
#ifdef REGAMEDLL_API
|
||||||
inline CCSPlayer *CBasePlayer::CSPlayer() const {
|
inline CCSPlayer *CBasePlayer::CSPlayer() const {
|
||||||
return reinterpret_cast<CCSPlayer *>(this->m_pEntity);
|
return reinterpret_cast<CCSPlayer *>(this->m_pEntity);
|
||||||
|
Loading…
Reference in New Issue
Block a user