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

📄 worldguild.h

📁 奇迹世界 部分源代码奇迹世界 部分源代码奇迹世界 部分源代码
💻 H
字号:
#pragma once
//=============================================================================================================================
/// WorldGuild class
/**
	@author	Kim Min Wook < taiyo@webzen.co.kr >
	@since	2005. 12. 27
	@remark
		- 辨靛 沥焊甫 劝侩窍绰 格利狼 霸烙 辨靛侩 努贰胶
	@note
		- 
	@history 
		-  2006. 01. 16 Modified by Sung Hyun Chang < whatthehell@webzen.co.kr > (岿靛 辑滚侩栏肺 荐沥)
*/
//=============================================================================================================================

#include <struct.h>
#include <SolarHashTable.h>
#include "WorldGuildCommon.h"


class User;
class WorldGuildMember;
struct PACKET_FOR_GUILD;
struct PACKET_FOR_GUILD_MEMBER;

typedef util::SolarHashTable<WorldGuildMember *>				GUILDMEMBER_HASH;
typedef util::SolarHashTable<WorldGuildMember *>::iterator		GUILDMEMBER_HASH_ITR;

typedef util::SolarHashTable<User *>							GUILDONLINEMEMBER_HASH;
typedef util::SolarHashTable<User *>::iterator					GUILDONLINEMEMBER_HASH_ITR;


class WorldGuild
{
	__DECL_GUILDPOOL(WorldGuild)
	enum { _MAX_GUILDMEMBER_NUM = 50, };
public:
	WorldGuild(void);
	virtual ~WorldGuild(void);

	VOID Create( const BASE_GUILD_INFO & IN rInfo, const GUILD_MEMBER_INFO * pMemberInfo, BYTE MemberCount );
	VOID Destroy();
	VOID Withdraw( CHARGUID CharGuid );
	VOID Join( const GUILD_MEMBER_INFO & IN rMemberInfo );

	VOID SelectInfo( PACKET_FOR_GUILD & OUT rGuildInfo );

	inline GUILDGUID GetGuildGuid()			{ return m_Info.m_GuildGuid; }
	inline CHARGUID GetMasterCharGuid()		{ return m_Info.m_MasterCharGuid; }
	inline DWORD GetMemberNum()				{ return m_MemberHash.GetDataNum(); }
	inline BOOL IsFullMember()				{ return TRUE; }
	inline const TCHAR * GetGuildName()		{ return m_Info.m_tszGuildName; }
	GUILDMEMBER_HASH_ITR	GetMemberIterHead() { return m_MemberHash.begin(); }
	GUILDMEMBER_HASH_ITR	GetMemberIterEnd() { return m_MemberHash.end(); }
	inline WorldGuildMember * FindMember( CHARGUID GuildGuid )				{ return m_MemberHash.GetData(GuildGuid); }

	VOID GetMemberPacketInfo( BYTE &byCount, PACKET_FOR_GUILD_MEMBER *pMember );
	VOID SendAll( BYTE* pSendMsg, WORD wSize );

	inline VOID RemoveOnlineMember( CHARGUID GuildGuid )				{ m_OnlineMemberHash.Remove(GuildGuid); }
	inline VOID AddOnlineMember( User *pUser, CHARGUID GuildGuid )		{ m_OnlineMemberHash.Add(pUser, GuildGuid); }

protected:
	inline VOID RemoveMember( GUILDGUID GuildGuid )							{ m_MemberHash.Remove(GuildGuid); }
	inline VOID AddMember( WorldGuildMember * pGuild, GUILDGUID GuildGuid )	{ m_MemberHash.Add(pGuild, GuildGuid); }


private:
	BASE_GUILD_INFO		m_Info;
	GUILDMEMBER_HASH	m_MemberHash;
	GUILDONLINEMEMBER_HASH	m_OnlineMemberHash;	// 柯扼牢牢 糕滚 沥焊 历厘侩
};

⌨️ 快捷键说明

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