📄 periodicdamageeffect.cpp
字号:
#include "stdafx.h"
#include "PeriodicDamageEffect.h"
#include "SkillInfoParser.h"
VOID PeriodicDamageEffect::Execute()
{
if( !m_pField ) return;
Character *pTargetArray[MAX_TARGET_NUM];
memset( pTargetArray, 0, sizeof(Character*)*MAX_TARGET_NUM );
BYTE byNumberOfTargets = 0;
BYTE byHitTargetCount = 0;
DAMAGETYPE wDamage = m_wDamage;
// 弥措 付府荐 力茄
SkillScriptInfo *pBaseSkillInfo = (SkillScriptInfo *)SkillInfoParser::Instance()->GetSkillInfo( m_SkillCode );
int iCountLimit = MAX_TARGET_NUM;
if( pBaseSkillInfo && pBaseSkillInfo->m_byMaxTargetNo )
{
iCountLimit = pBaseSkillInfo->m_byMaxTargetNo;
}
// 林函俊 鸥百捞 乐绰瘤 茫绰促.
byNumberOfTargets = m_pField->FindTargetsByPosition( pTargetArray, m_dwSectorIndex, m_vCurPos, m_fRadius, iCountLimit );
MSG_CG_SKILL_PERIODIC_DAMAGE_BRD BrdMsg;
BrdMsg.m_dwAttackerKey = m_pOwner->GetObjectKey();
BrdMsg.m_SkillCode = m_SkillCode;
for( int i = 0; i < byNumberOfTargets; ++i )
{
if( !pTargetArray[i] ) continue;
// 磷菌阑 版快 力寇
if( pTargetArray[i]->IsDead() ) continue;
// 酒焙篮 力寇
if( m_pOwner->IsFriend( pTargetArray[i] ) ) continue;
// 单固瘤 贸府
pTargetArray[i]->Damaged( m_pOwner, m_eDamageType, wDamage );
// 菩哦俊 单固瘤 沥焊 悸泼
BrdMsg.m_DamageInfo[byHitTargetCount].m_dwTargetKey = pTargetArray[i]->GetObjectKey();
BrdMsg.m_DamageInfo[byHitTargetCount].m_wDamage = wDamage;
BrdMsg.m_DamageInfo[byHitTargetCount].m_dwTargetHP = pTargetArray[i]->GetHP();
++byHitTargetCount;
}
BrdMsg.m_byNumberOfTargets = byHitTargetCount;
// 林函俊 舅妨霖促.
if( byHitTargetCount )
m_pField->SendPacketAround( m_dwSectorIndex, &BrdMsg, BrdMsg.GetSize() );
BaseEffect::Execute();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -