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

📄 team.h

📁 魔域的源代码
💻 H
字号:
// Team.h: interface for the CTeam class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_TEAM_H__096C275F_D6F9_40F1_8B39_471D69EBA7CC__INCLUDED_)
#define AFX_TEAM_H__096C275F_D6F9_40F1_8B39_471D69EBA7CC__INCLUDED_

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

#include "define.h"
#include <windows.h>
#include "Myheap.h"

#include <vector>
#include <algorithm>
using namespace std;

#define		_MAX_TEAMAMOUNT			5

typedef struct
{
	char			szName[_MAX_NAMESIZE];
	OBJID			id;
	DWORD			dwLookFace;
	unsigned short	usMaxHp;
	unsigned short	usHp;
}TeamMemberInfo;

class CNetMsg;
class IRole;
class CTeam  
{
public:
	CTeam();
	virtual ~CTeam();

public: // constuction
	static CTeam*	CreateNew	();
	void	Release				()								{ delete this; }
	BOOL	Create				(CAgent* pAgent);
protected:
	void	Destroy				();

public: // const
	bool	IsValid				()								{ return GetMemberAmount() > 0; }
	OBJID	GetLeaderID			();

public: // application
	bool	AddMember			(int nAmount, const TeamMemberInfo* setInfo);
	BOOL	DelMember			(OBJID idMember);
	void	Dismiss				(OBJID idLeader)				{ Init(); }
	BOOL	Apply				(OBJID idUser);

protected:
	BOOL	AddMember			(OBJID idMember);
	void	Open				();
	void	Close				();
	BOOL	IsClosed			();

	TeamMemberInfo*	GetMemberByIndex	(int nIndex);
	int		GetMemberAmount		();

	BOOL	IsTeamMember		(OBJID idMember);
	BOOL	IsTeamWithNewbie	(OBJID idKiller, IRole* pTarget);


protected:
	void	AddMemberOnly		(TeamMemberInfo* pMember);
	void	DelMemberOnly		(OBJID idMember);
	void	Init				();

protected:
	typedef	vector<TeamMemberInfo>		USERIDSET;
	USERIDSET					m_setMember;
	CAgent*						m_pOwner;

private:
	BOOL						m_fClosed;

protected: // ctrl
	MYHEAP_DECLARATION(s_heap)
};

#endif // !defined(AFX_TEAM_H__096C275F_D6F9_40F1_8B39_471D69EBA7CC__INCLUDED_)

⌨️ 快捷键说明

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