fix: POS_FIGHTING state
This commit is contained in:
@@ -361,6 +361,10 @@ void CHARACTER::Initialize()
|
||||
m_bIsLoadedAffect = false;
|
||||
cannot_dead = false;
|
||||
|
||||
#ifdef FIX_BATTLE_INACTIVITY_TIMEOUT
|
||||
m_dwLastCombatTime = 0;
|
||||
#endif
|
||||
|
||||
#ifdef __PET_SYSTEM__
|
||||
m_petSystem = 0;
|
||||
m_bIsPet = false;
|
||||
@@ -4060,6 +4064,20 @@ void CHARACTER::UpdateStateMachine(DWORD dwPulse)
|
||||
if (IsDead())
|
||||
return;
|
||||
|
||||
#ifdef FIX_BATTLE_INACTIVITY_TIMEOUT
|
||||
if (IsPC() && IsPosition(POS_FIGHTING))
|
||||
{
|
||||
const DWORD now = get_dword_time();
|
||||
|
||||
// If we never set a combat time yet, set it now so timer can start.
|
||||
if (m_dwLastCombatTime == 0)
|
||||
m_dwLastCombatTime = now;
|
||||
|
||||
if (now - m_dwLastCombatTime >= 10000)
|
||||
SetVictim(NULL); // triggers battle_end() -> POS_STANDING
|
||||
}
|
||||
#endif
|
||||
|
||||
Update();
|
||||
m_dwNextStatePulse = dwPulse + m_dwStateDuration;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user