DragonNest/GameCommon/DnProbabilityChecker.cpp

44 lines
973 B
C++
Raw Permalink Normal View History

#include "StdAfx.h"
#include "DnProbabilityChecker.h"
#include "DnActor.h"
#ifndef USE_BOOST_MEMPOOL
#ifdef _DEBUG
#define new new(_NORMAL_BLOCK,__FILE__,__LINE__)
#endif
#endif
CDnProbabilityChecker::CDnProbabilityChecker( DnActorHandle hActor, float fProbability ) : IDnSkillUsableChecker( hActor ),
m_fProbability( fProbability )
{
_ASSERT( 0.0f <= m_fProbability && m_fProbability <= 1.0f );
m_fProbability = fProbability * 10000.0f;
m_iType = PROB_CHECKER;
}
CDnProbabilityChecker::~CDnProbabilityChecker(void)
{
}
bool CDnProbabilityChecker::CanUse( void )
{
bool bResult = false;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ȯ<><C8AE><EFBFBD><EFBFBD> üũ<C3BC>Ѵ<EFBFBD>.
#ifdef _GAMESERVER
bResult = (_rand(m_hHasActor->GetRoom()) % 10000 <= (int)m_fProbability);
#else
bResult = true;
#endif
return bResult;
}
IDnSkillUsableChecker* CDnProbabilityChecker::Clone()
{
CDnProbabilityChecker* pNewChecker = new CDnProbabilityChecker(m_hHasActor, m_fProbability);
return pNewChecker;
}