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

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 )
{
}