📄 ability.h
字号:
#ifndef _ABILITY_H_
#define _ABILITY_H_
//----------------------------------------------------------------------------------------------------
// Excecute 窃荐狼 器杆阑 瘤盔茄促.
//----------------------------------------------------------------------------------------------------
#define DECLARE_EXECUTE_FUNC( func ) \
private : \
BOOL Execute_##func( BYTE byOrder, Character *pTarget, BYTE *pMsg, WORD &wMsgSize ); \
#define DEFINE_EXECUTE_FUNC( func ) \
BOOL Ability ::Execute_##func( BYTE byOrder, Character *pTarget, BYTE *pMsg, WORD &wMsgSize ) \
class Character;
class SkillScriptInfo;
class SummonedNPCs;
class Skill;
struct SkillInfo;
class Ability
{
public:
Ability() {}
~Ability() {}
VOID Init( Skill *pSkill, BASE_ABILITYINFO *pBaseInfo );
VOID Init( Character *pAttacker, SLOTCODE SkillCode, SkillInfo *pSkillInfo, BYTE bySkillStatType, BASE_ABILITYINFO *pBaseInfo );
BOOL CanExecute( Character *pAttacker, Character *pTarget, DWORD dwMainTargetKey, WzVector wvMainTargetPos );
BOOL Execute( BYTE byOrder, Character *pTarget, BYTE *pMsg, WORD &wMsgSize );
BOOL ExecuteEffect( BYTE byOrder, BYTE *pMsg, WORD &wMsgSize );
inline SLOTCODE GetSkillCode() { return m_SkillCode; }
inline BASE_ABILITYINFO* GetBaseAbilityInfo() { return m_pBaseAbilityInfo; }
inline eABILITY GetAbilityID() { return (eABILITY)m_pBaseAbilityInfo->m_wAbilityID; }
inline eATTR_TYPE GetAttrID() { return m_eAttrID; }
inline eCHAR_STATE_TYPE GetStateID() { return m_eStateID; }
inline int GetSkillAttackPower() { return m_iSkillAttackPower; }
inline float GetSkillPercentDamage() { return m_fSkillPercentDamage; }
inline VOID SetSkillAttackPower( int iAttackPower ) { m_iSkillAttackPower = iAttackPower; }
inline VOID SetSkillPercentDamage( float fPercentDamage ) { m_fSkillPercentDamage = fPercentDamage; }
BOOL IsDownAbility();
BOOL IsTempApply() { return m_bTempApply; }
private:
DECLARE_EXECUTE_FUNC( Damage ); // 单固瘤
DECLARE_EXECUTE_FUNC( PeriodicDamage ); // 林扁 单固瘤
DECLARE_EXECUTE_FUNC( KnockBack ); // 踌归
DECLARE_EXECUTE_FUNC( Status ); // 惑怕
DECLARE_EXECUTE_FUNC( ExhaustAttr ); // HP, MP 家柳
DECLARE_EXECUTE_FUNC( Aggro ); // 绢弊肺 包访
DECLARE_EXECUTE_FUNC( FightingEnergy ); // 捧扁 包访
DECLARE_EXECUTE_FUNC( Teleport ); // 炮饭器飘
DECLARE_EXECUTE_FUNC( Resurrection ); // 何劝
DECLARE_EXECUTE_FUNC( Summon ); // 家券
DECLARE_EXECUTE_FUNC( BuffRangeDamage ); // 老沥康开, 某腐磐 林函狼 矫埃寸 单固瘤
DECLARE_EXECUTE_FUNC( BonusDamage ); // 眠啊 单固瘤 包访(惑怕喊, ...)
private:
BOOL CheckAbilityRange( Character *pAttacker, Character* pTarget, DWORD dwMainTargetKey, BYTE byAbilityRangeType );
VOID CreateSummoned( Character *pSummoner, SummonedNPCs *pOwnerSummonNPCs, DWORD dwCode,
DWORD dwNumberOfNPCs, DWORD *pSummonedObjKey );
VOID CreateSummonNPC( Character *pSummoner, SummonedNPCs *pOwnerSummonNPCs, DWORD dwCode, DWORD dwNumberOfNPCs );
SLOTCODE m_SkillCode;
BYTE m_bySkillStatType; // 胶懦槛访档 鸥涝
BASE_ABILITYINFO *m_pBaseAbilityInfo;
eATTR_TYPE m_eAttrID; // Buff 包访
eCHAR_STATE_TYPE m_eStateID;
Character *m_pAttacker;
DWORD m_dwMainTargetKey;
WzVector m_wvMainTargetPos;
BYTE *m_pSkillEffect;
BOOL m_bTempApply;
int m_iSkillAttackPower; // 胶懦 傍拜仿
float m_fSkillPercentDamage; // 胶懦 %眠啊 单固瘤
};
#endif // _ABILITY_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -