📄 execute_knockback.cpp
字号:
#include "stdafx.h"
#include "Ability.h"
#include "StatusManager.h"
DEFINE_EXECUTE_FUNC( KnockBack )
{
SKILL_RESULT_POSITION *pPositionMsg = (SKILL_RESULT_POSITION*)pMsg;
// 绢呼府萍 颇扼固磐 汲沥
float fKnockBackLength = (float)m_pBaseAbilityInfo->m_iParam[1] / 10;
// 傍拜磊客 鸥百狼 困摹蔼
WzVector vAttackerPos, vTargetPos;
m_pAttacker->GetPos( &vAttackerPos );
pTarget->GetPos( &vTargetPos );
// 剐府扁 贸府甫 秦霖促.
WzVector vNormalVectorP2M;
VectorNormalize( &vNormalVectorP2M, &(vTargetPos - vAttackerPos) );
vNormalVectorP2M = vNormalVectorP2M * fKnockBackLength;
BOOL bDownAfterThrust = FALSE;
if( pTarget->GetStatusManager()->FindStatus( eCHAR_STATE_DOWN ) ) bDownAfterThrust = TRUE;
if( !pTarget->ExecuteThrust( TRUE, &vNormalVectorP2M, pPositionMsg->m_wvDestPos, fKnockBackLength, bDownAfterThrust ) )
{
return FALSE;
}
// 剐府扁 惑怕甫 吧绢霖促.(剐扁扁 蜡瘤矫埃篮 1.5檬肺 茄促.)
m_eStateID = eCHAR_STATE_THRUST;
m_pBaseAbilityInfo->m_iParam[2] = 1500;
pTarget->GetStatusManager()->AllocAbility( m_pAttacker, this );
// 函荐甸阑 盔惑怕肺 檬扁拳茄促.
m_eStateID = eCHAR_STATE_INVALID;
m_pBaseAbilityInfo->m_iParam[2] = 0;
// 菩哦备炼眉甫 盲款促.
pPositionMsg->m_wAbilityIndex = byOrder;
pPositionMsg->m_wvCurPos = vTargetPos;
wMsgSize = pPositionMsg->GetSize();
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -