49 lines
1.1 KiB
C++
49 lines
1.1 KiB
C++
#include "StdAfx.h"
|
|
#include "DnPlayerActionChecker.h"
|
|
#include "DnPlayerActor.h"
|
|
#include "DNUserSession.h"
|
|
#include "DnGameTask.h"
|
|
|
|
CDnPlayerActionChecker::CDnPlayerActionChecker( CDnPlayerActor *pPlayer )
|
|
: IDnPlayerChecker( pPlayer )
|
|
{
|
|
m_nInvalidCount = 0;
|
|
m_LastCheckTime = 0;
|
|
}
|
|
|
|
CDnPlayerActionChecker::~CDnPlayerActionChecker()
|
|
{
|
|
}
|
|
|
|
bool CDnPlayerActionChecker::IsInvalidPlayer()
|
|
{
|
|
return ( m_nInvalidCount >= 10 ) ? true : false;
|
|
}
|
|
|
|
void CDnPlayerActionChecker::Process( LOCAL_TIME LocalTime, float fDelta )
|
|
{
|
|
if( m_nInvalidCount <= 0 ) return;
|
|
if( timeGetTime() - m_LastCheckTime > 5000 )
|
|
{
|
|
m_nInvalidCount = 0;
|
|
}
|
|
}
|
|
|
|
void CDnPlayerActionChecker::OnInvalidAction()
|
|
{
|
|
m_nInvalidCount++;
|
|
m_LastCheckTime = timeGetTime();
|
|
|
|
if( m_pActor && m_pActor->GetUserSession() )
|
|
{
|
|
if( m_nInvalidCount >= 10 )
|
|
{
|
|
g_Log.Log(LogType::_HACK, m_pActor->GetUserSession(),
|
|
L"HackChecker(Action(Invalid Action)) : CharName=%s, InvalidCount=%d, Action=%S, State=%d ",
|
|
m_pActor->GetUserSession()->GetCharacterName(),
|
|
m_nInvalidCount,
|
|
m_pActor->GetCurrentAction(),
|
|
m_pActor->GetState() );
|
|
}
|
|
}
|
|
}
|