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

📄 dualmanager.h

📁 国内著名网络游戏dragon的服务端完整源码 内附完整数据库结构
💻 H
字号:
// DualManager.h: interface for the CDualManager class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_DUALMANAGER_H__21B717A0_78B5_4ABC_A426_45F53B443D93__INCLUDED_)
#define AFX_DUALMANAGER_H__21B717A0_78B5_4ABC_A426_45F53B443D93__INCLUDED_

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

///////////////////////////////////////////////////////////////////////////////
// 掂倔 单捞鸥俊 包茄 努贰胶
class CDualDataInfo
{
public:
	static CDualDataInfo* CreateDaulDataInfo()
	{
		return new CDualDataInfo;
	}

private:
	CDualDataInfo();

public:
	~CDualDataInfo();

public:
	int GetMaxLevel() const { return m_nMaxLevel; }
	int GetNeedLadder() const { return m_nNeedLadder; }
	int GetNeedFame() const { return m_nNeedFame; }
	int GetConsumeLadder() const { return m_nConsumeLadder; }
	int GetConsumeFame() const { return m_nConsumeFame; }
	
	void SetMaxLevel(int nLevel) { m_nMaxLevel = nLevel; }
	void SetNeedLadder(int nLadder) { m_nNeedLadder = nLadder; }
	void SetNeedFame(int nFame) { m_nNeedFame = nFame; }
	void SetConsumeLadder(int nLadder) { m_nConsumeLadder = nLadder; }
	void SetConsumeFame(int nFame) { m_nConsumeFame = nFame; }

private:
	int   m_nMaxLevel;
	int   m_nNeedLadder;
	int   m_nNeedFame;
	int   m_nConsumeLadder;
	int   m_nConsumeFame;
};
//
///////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////
// 掂倔 努贰胶俊 包茄 努贰胶
class CDualClassInfo
{
public:
	typedef list<WORD>            LIST_MEMBER;
	typedef LIST_MEMBER::iterator ITOR_MEMBER;

public:
	static CDualClassInfo* CreateDualClassInfo()
	{
		return new CDualClassInfo;
	}

private:
	CDualClassInfo();

public:
	~CDualClassInfo();

public:
	void AddNew(WORD idMemeber);
	void Delete(WORD idMemeber);

	void SendPacket(t_packet* pPacket);

	bool IsExist(WORD idMemeber) const;

public:
	LIST_MEMBER& GetDualClassList()
	{
		return m_ltMember;
	}

private:
	LIST_MEMBER m_ltMember;
};
//
///////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////
// 掂倔俊 包茄 努贰胶
class CDualManager : public TSingleton<CDualManager>
{
	typedef vector<CDualClassInfo*> VECTOR_DUAL_CLASS;
	typedef vector<CDualDataInfo*>  VECTOR_DUAL_DATA;

	enum 
	{
		DC_FAIL = 0, 
		DC_LEVLE = 1, 
		DC_LADDER = 2, 
		DC_FAME = 3,
		MAX_DUAL_STEP = 5
	};
	
public:
	CDualManager();
	virtual ~CDualManager();

public:
	void AddDualData(CDualDataInfo* pDualData);
	void AddDualClass(CDualClassInfo* pDualClass);

	bool AddMember(WORD idMember);
	bool DelMember(WORD idMember);

	void SendDualEnable(WORD idMaster, BYTE nPara, BYTE nX, BYTE nY);
	void SendDualChange(WORD idMaster);
	void SendDualDivide(WORD idMaster);
	void RecvDualEnable(WORD idMaster, t_client_dual_enable* pPacket);
	void RecvDualChange(WORD idMaster, t_client_dual_change* pPacket);
	void RecvDualDivide(WORD idMaster, t_client_dual_divide* pPacket);
	void RecvResetAbility(WORD idMaster);
	
public:
	CDualDataInfo* GetDualDataInfo(int nStep)
	{
		if (nStep >= 1 && nStep <= MAX_DUAL_STEP)
		{
			return m_vtDualData[nStep];
		}

		return NULL;
	}

	CDualClassInfo* GetDualClassInfo(int nStep)
	{
		if (nStep >= 1 && nStep <= MAX_DUAL_STEP)
		{
			return m_vtDualClass[nStep];
		}

		return NULL;
	}

	bool IsExist(int nStep) const
	{
		return (nStep >= 1 && nStep <= MAX_DUAL_STEP) ? true:false;
	}

protected:
	void Change(BYTE nStep, CHARLIST* pMaster);
	
private:
	bool IsLevelUp(BYTE nStep, CHARLIST* pMaster);
	
private:
	VECTOR_DUAL_DATA  m_vtDualData;
	VECTOR_DUAL_CLASS m_vtDualClass;
};
//
///////////////////////////////////////////////////////////////////////////////
#endif // !defined(AFX_DUALMANAGER_H__21B717A0_78B5_4ABC_A426_45F53B443D93__INCLUDED_)

⌨️ 快捷键说明

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