94 lines
No EOL
2.8 KiB
C++
94 lines
No EOL
2.8 KiB
C++
#include "StdAfx.h"
|
|
#include "DnApplySEWhenActionSetBlowEnabledProcessor.h"
|
|
#include "DnClericMentalChargeBlow.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new new(_NORMAL_BLOCK,__FILE__,__LINE__)
|
|
#endif
|
|
|
|
|
|
CDnApplySEWhenActionSetBlowEnabledProcessor::CDnApplySEWhenActionSetBlowEnabledProcessor( DnActorHandle hActor ) : IDnSkillProcessor( hActor )
|
|
{
|
|
m_iType = APPLY_SE_WHEN_ACTIONSET_ENABLED;
|
|
}
|
|
|
|
CDnApplySEWhenActionSetBlowEnabledProcessor::~CDnApplySEWhenActionSetBlowEnabledProcessor(void)
|
|
{
|
|
|
|
}
|
|
|
|
|
|
void CDnApplySEWhenActionSetBlowEnabledProcessor::OnBegin( LOCAL_TIME LocalTime, float fDelta, DnSkillHandle hParentSkill )
|
|
{
|
|
//// 부모 상태효과 중에 ChangeActionSet 상태효과를 제외하고 추가함.
|
|
//// 스킬 쪽에서는 발동될 때 이 상태효과들을 추가하지 않도록 되어있다.
|
|
//int iNumSE = m_hParentSkill->GetStateEffectCount();
|
|
//for( int i = 0; i < iNumSE; ++i )
|
|
//{
|
|
// const CDnSkill::StateEffectStruct* pStateEffect = m_hParentSkill->GetStateEffectFromIndex( i );
|
|
// if( STATE_BLOW::BLOW_129 != pStateEffect->nID ) // change action set 상태효과를 제외하고 적용할 상태효과를 따로 받아둔다.
|
|
// {
|
|
// m_vlStateEffect
|
|
// }
|
|
//}
|
|
}
|
|
|
|
#ifdef _GAMESERVER
|
|
void CDnApplySEWhenActionSetBlowEnabledProcessor::AddStateEffect( const CDnSkill::StateEffectStruct* pStateEffect )
|
|
{
|
|
// 스킬 생성될 때 부터 스킬 객체쪽에서 자신에게 주어진 상태효과들을 change action set 상태효과만 제외하고
|
|
// 전부 이쪽으로 넣어준 다음에 제거하는 것으로..
|
|
m_vlpStateEffect.push_back( (CDnSkill::StateEffectStruct*)pStateEffect );
|
|
}
|
|
|
|
void CDnApplySEWhenActionSetBlowEnabledProcessor::OnChangeActionBegin( void )
|
|
{
|
|
for( int i = 0; i < (int)m_vlpStateEffect.size(); ++i )
|
|
{
|
|
const CDnSkill::StateEffectStruct* pStateEffect = m_vlpStateEffect.at( i );
|
|
int iID = m_hHasActor->CmdAddStateEffect( m_hParentSkill->GetInfo(), (STATE_BLOW::emBLOW_INDEX)pStateEffect->nID,
|
|
/*pStateEffect->nDurationTime*/-1, pStateEffect->szValue.c_str() );
|
|
|
|
if( -1 != iID )
|
|
m_vlAppliedStateEffectID.push_back( iID );
|
|
}
|
|
|
|
// #33312 강제로 부모 스킬의 속성 부여
|
|
if( m_hParentSkill )
|
|
{
|
|
CDnState::ElementEnum eElement = m_hParentSkill->GetElement();
|
|
m_hHasActor->PushForceHitElement( eElement );
|
|
}
|
|
}
|
|
|
|
void CDnApplySEWhenActionSetBlowEnabledProcessor::OnChangeActionSetBlowEnd( void )
|
|
{
|
|
// 추가했던 상태효과들 제거.
|
|
for( int i = 0; i < (int)m_vlAppliedStateEffectID.size(); ++i )
|
|
{
|
|
m_hHasActor->CmdRemoveStateEffectFromID( m_vlAppliedStateEffectID.at(i) );
|
|
}
|
|
|
|
m_vlAppliedStateEffectID.clear();
|
|
|
|
// #33312 강제로 부모 스킬의 속성 부였했던것 풀어줌.
|
|
if( m_hParentSkill )
|
|
{
|
|
CDnState::ElementEnum eElement = m_hParentSkill->GetElement();
|
|
m_hHasActor->PopForceHitElement();
|
|
}
|
|
}
|
|
#endif
|
|
|
|
|
|
void CDnApplySEWhenActionSetBlowEnabledProcessor::Process( LOCAL_TIME LocalTime, float fDelta )
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
void CDnApplySEWhenActionSetBlowEnabledProcessor::OnEnd( LOCAL_TIME LocalTime, float fDelta )
|
|
{
|
|
|
|
} |