⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 skillmanager_client.h

📁 墨香最新私服
💻 H
字号:
// SkillManager.h: interface for the CSkillManager class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_SKILLMANAGER_H__77A8371D_54A8_40CF_AEBC_7D8C21051312__INCLUDED_)
#define AFX_SKILLMANAGER_H__77A8371D_54A8_40CF_AEBC_7D8C21051312__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "SkillInfo.h"
#include "SkillObject_Client.h"
#include "SkillAreaManager.h"

class CHero;
class CActionTarget;

#define SKILLMGR USINGTON(CSkillManager)

class CSkillManager  
{
	CYHHashTable<CSkillInfo>	m_SkillInfoTable;
	CYHHashTable<CSkillInfo>	m_DummySkillInfoTable;
	CYHHashTable<CSkillObject>	m_SkillObjectTable;

	CSkillAreaManager m_SkillAreaMgr;

	// 矫傈 楷免
	void SkillStartEffect(CObject* pObject,CSkillInfo* pSkillInfo);
	BOOL HeroSkillStartEffect(CHero* pHero,CActionTarget* pTarget,CSkillInfo* pSkillInfo);
	
	// SkillObject 殿废 棺 秦力
	CSkillObject* CreateSkillObject(MSG_SKILLOBJECT_ADD* pSkillObjectAddInfo);
	CSkillObject* CreateTempSkillObject(CSkillInfo* pSkillInfo,CHero* pHero,CActionTarget* pTarget);
	void ChangeTempObjToRealObj(MSG_SKILLOBJECT_ADD* pSkillObjectAddInfo);

	void DoCreateSkillObject(CSkillObject* pSObj, SKILLOBJECT_INFO* pSOInfo,CTargetList* pTList);

	void ReleaseSkillObject(CSkillObject* pObject);
	
public:
	CSkillManager();
	 ~CSkillManager();
//	MAKESINGLETON(CSkillManager);

	void Init();
	void Release();

	void LoadSkillInfoList();

	CSkillObject* GetSkillObject(DWORD SkillObjectID);
	CSkillInfo*	GetSkillInfo(WORD SkillInfoIdx);
	CSkillInfo*	GetDummySkillInfo(WORD SkillInfoIdx);

	WORD GetSkillTooltipInfo(WORD SkillInfoIdx);
	WORD GetComboSkillIdx(CHero* pHero);
	WORD GetMugongSkillIdx(CHero* pHero);
	CSkillArea* GetSkillArea(CObject* pObject, CActionTarget* pTarget, CSkillInfo* pSkillInfo);
	CSkillArea* GetSkillArea(DIRINDEX dir,WORD SkillAreaIndex);
	void ReleaseSkillArea(CSkillArea* pSkillArea);
	
	void GetMultiTargetList(CSkillInfo* pSkillInfo,CHero* pHero,CActionTarget* pTarget);

	// 胶懦阑 荤侩
	BOOL ExcuteSkillSYN(CHero* pHero,CActionTarget* pTarget,BOOL bMugong);
	BOOL ExcuteSkillSYN(CHero* pHero,CActionTarget* pTarget,CSkillInfo* pSkillInfo);
	BOOL ExcuteTacticSkillSYN(CHero* pHero,TACTIC_TOTALINFO* pTInfo,BYTE OperNum);

	BOOL RealExcuteSkillSYN(CHero* pHero,CActionTarget* pTarget,CSkillInfo* pSkillInfo);

		
	// 促澜 霓焊 胶懦阑 瘤沥
	void SetNextComboSkill(CHero* pHero,CActionTarget* pTarget,BOOL bMugong);

	// 捞亥飘 勤甸 窃荐甸
	BOOL OnSkillCommand(CHero* pHero,CActionTarget* pTarget,BOOL bMugong);
	void OnComboTurningPoint(CHero* pHero);
	void OnExcuteSkillNACKed(SKILLOBJECT_INFO* pInfo);
	
	// 胶懦坷宏璃飘狼 鸥百 府胶飘甸阑 函版茄促.
	void UpdateSkillObjectTargetList(CObject* pObject);
	
	void RemoveTarget(CObject* pObject,BYTE bTargetKind);


	void OnReceiveSkillObjectAdd(MSG_SKILLOBJECT_ADD* pmsg);
	void OnReceiveSkillObjectRemove(MSG_DWORD* pmsg);
	void OnReceiveSkillStartNack();
	void OnReceiveSkillSingleResult(MSG_SKILL_SINGLE_RESULT* pmsg);
	void OnReceiveSkillObjectTargetListAdd(DWORD SkillObjectID,DWORD AddedObjectID,BYTE bTargetKind);
	void OnReceiveSkillObjectTargetListRemove(DWORD SkillObjectID,DWORD RemovedObjectID);
	void OnReceiveSkillStartEffect(DWORD SkillOperator,DWORD SkillIdx);
	void OnReceiveSkillObjectOperate(MSG_SKILL_OPERATE* pmsg);

	void NetworkMsgParse(BYTE Protocol,void* pMsg);
};
EXTERNGLOBALTON(CSkillManager);
#endif // !defined(AFX_SKILLMANAGER_H__77A8371D_54A8_40CF_AEBC_7D8C21051312__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -