#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 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(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 ¿¡¼­ °ü¸®Çϵµ·Ï ÇÕ´Ï´Ù. // Á¾·áµÉ¶§ µ¹¾Æ¿ÀÁö ¾Êµµ·Ï ¼³Á¤ÇÕ´Ï´Ù. // ÀÌ ºÎºÐÀº ¾ÕÀ¸·Î º¯°æµÉ ¼ö ÀÖ½À´Ï´Ù. }