37 lines
1.2 KiB
C++
37 lines
1.2 KiB
C++
#pragma once
|
||
|
||
class CSkillSystem : public CEntitySystem<enSkillSystemID>
|
||
{
|
||
public:
|
||
void OnRecvData(INT_PTR nCmd, CDataPacketReader& pack);
|
||
void OnTimeRun(TICKCOUNT currTick);
|
||
void OnEnterGame();
|
||
|
||
/*
|
||
* Comments: 使用技能
|
||
* Param int nSkillId: 技能Id
|
||
* Param EntityHandle targetHandle: 目标句柄
|
||
* Param int nX: 目标位置(或者是鼠标位置)X
|
||
* Param int nY: 目标位置(或者是鼠标位置)Y
|
||
* Param int nDir: 施法者的朝向
|
||
* @Return void:
|
||
* @Remark:
|
||
*/
|
||
void UseSkill(int nSkillId, EntityHandle targetHandle, int nX, int nY, int nDir);
|
||
// 接口协议里头还需要特效id、动作id? 不是跟着技能走的?
|
||
void NearAttack(EntityHandle targetHandle);
|
||
INT_PTR GetSkillCount(){return m_SkillList.count();}
|
||
protected:
|
||
// 请求技能列表
|
||
void RequestSkillList();
|
||
// 占位的技能消息处理
|
||
void DummySkillMsgHandler(CDataPacketReader&){}
|
||
// 接受初始技能列表
|
||
void ProcessRcvInitSkillList(CDataPacketReader& packet);
|
||
|
||
void LearnSkillResult(CDataPacketReader& packet);
|
||
typedef void (CSkillSystem::*SkillMessageHandler)(CDataPacketReader&);
|
||
private:
|
||
CBaseList<ClientSkillData> m_SkillList;
|
||
static const SkillMessageHandler s_aHandler[];
|
||
}; |