DragonNest/GameCommon/DnTransformMonsterBlow.cpp
Cussrro 47f7895977 Revert "修复编码问题"
This reverts commit 9e69c01767.
2024-12-21 10:04:04 +08:00

78 lines
1.7 KiB
C++

#include "StdAfx.h"
#include "DnTransformMonsterBlow.h"
#include "DnMonsterActor.h"
CDnTransformMonsterBlow::CDnTransformMonsterBlow( DnActorHandle hActor, const char* szValue ) : CDnBlow( hActor )
{
m_StateBlow.emBlowIndex = STATE_BLOW::BLOW_277;
m_nTransformActorID = 0;
m_nOriginalActorID = 0;
SetValue( szValue );
std::string str = szValue;
std::vector<std::string> tokens;
TokenizeA( str, tokens, ";" );
if( tokens.size() > 0 )
m_nTransformActorID = atoi( tokens[0].c_str() );
#if defined(_GAMESERVER)
m_bOrderUseSkill = false;
m_nTransformSkillID = 0;
if( tokens.size() > 1 )
m_nTransformSkillID = atoi( tokens[1].c_str() );
#endif
}
CDnTransformMonsterBlow::~CDnTransformMonsterBlow(void)
{
}
void CDnTransformMonsterBlow::OnBegin( LOCAL_TIME LocalTime, float fDelta )
{
#ifdef PRE_ADD_TRANSFORM_MONSTER_ACTOR
if(m_hActor && m_hActor->IsMonsterActor() )
{
CDnMonsterActor *pMonster = static_cast<CDnMonsterActor*>(m_hActor.GetPointer());
m_nOriginalActorID = pMonster->GetActorTableID();
pMonster->SwapActor( m_nTransformActorID );
#if defined(_GAMESERVER)
m_bOrderUseSkill = true;
#endif
}
#endif
}
void CDnTransformMonsterBlow::Process( LOCAL_TIME LocalTime, float fDelta )
{
#ifdef PRE_ADD_TRANSFORM_MONSTER_ACTOR
#if defined(_GAMESERVER)
if( m_bOrderUseSkill == true )
{
if( m_nTransformSkillID > 0 )
{
if( m_hActor )
m_hActor->UseSkill( m_nTransformSkillID, false );
}
m_bOrderUseSkill = false;
}
#endif
#endif
}
void CDnTransformMonsterBlow::OnEnd( LOCAL_TIME LocalTime, float fDelta )
{
// 몬스터는 AI및 기타 여러가지 상황이 있기때문에
// 변신되는 상황을 AI 에서 관리하도록 합니다.
// 종료될때 돌아오지 않도록 설정합니다.
// 이 부분은 앞으로 변경될 수 있습니다.
}