#include "StdAfx.h" #include "DnCallMySummonedMonsterProcessor.h" #include "DnPlayerActor.h" #include "DnMonsterActor.h" #include "DnBlow.h" CDnCallMySummonedMonsterProcessor::CDnCallMySummonedMonsterProcessor( DnActorHandle hActor, int iSummonedMonsterIDToCall ) : IDnSkillProcessor( hActor ), m_iSummonedMonsterIDToCall( 0 ), m_bCalled( false ) { m_iType = CALL_MY_SUMMONED_MONSTER; } CDnCallMySummonedMonsterProcessor::~CDnCallMySummonedMonsterProcessor(void) { } void CDnCallMySummonedMonsterProcessor::OnBegin( LOCAL_TIME LocalTime, float fDelta, DnSkillHandle hParentSkill ) { // ³»°¡ ¼ÒȯÇÑ ¸ó½ºÅ͵é Áß¿¡ ÇØ´ç ¸ó½ºÅÍ ID °¡ ÀÖ´ÂÁö È®ÀÎÇØ¼­ ³» ¿·À¸·Î ¿öÇÁ ½ÃŲ´Ù. if( !m_hHasActor || !m_hHasActor->IsPlayerActor() ) return; const list& listSummonMonster = m_hHasActor->GetSummonedMonsterList(); const map >& mapSummonMonsterByGroup = m_hHasActor->GetGroupingSummonedMonsterList(); if( false == listSummonMonster.empty() ) { list::const_iterator iter = listSummonMonster.begin(); for( iter; iter != listSummonMonster.end(); ++iter ) { DnMonsterActorHandle hMonster = (*iter); int iMonsterClassID = hMonster->GetMonsterClassID(); if( iMonsterClassID == m_iSummonedMonsterIDToCall ) { hMonster->CmdWarp( *m_hHasActor->GetPosition(), EtVec3toVec2( *m_hHasActor->GetLookDir() ) ); } } } if( false == mapSummonMonsterByGroup.empty() ) { map >::const_iterator iterMap = mapSummonMonsterByGroup.begin(); for( iterMap; iterMap != mapSummonMonsterByGroup.end(); ++iterMap ) { const list& listSummonMonster = iterMap->second; list::const_iterator iter = listSummonMonster.begin(); for( iter; iter != listSummonMonster.end(); ++iter ) { DnMonsterActorHandle hMonster = (*iter); int iMonsterClassID = hMonster->GetMonsterClassID(); if( iMonsterClassID == m_iSummonedMonsterIDToCall ) { hMonster->CmdWarp( *m_hHasActor->GetPosition(), EtVec3toVec2( *m_hHasActor->GetLookDir() ) ); } } } } m_bCalled = true; } void CDnCallMySummonedMonsterProcessor::Process( LOCAL_TIME LocalTime, float fDelta ) { } void CDnCallMySummonedMonsterProcessor::OnEnd( LOCAL_TIME LocalTime, float fDelta ) { }