287 lines
6.5 KiB
C
287 lines
6.5 KiB
C
|
|
#ifndef GLOBAL_USER_MANAGER_HEAD_FILE
|
|||
|
|
#define GLOBAL_USER_MANAGER_HEAD_FILE
|
|||
|
|
|
|||
|
|
#pragma once
|
|||
|
|
|
|||
|
|
#include "Stdafx.h"
|
|||
|
|
#include "AfxTempl.h"
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
//<2F><>˵<EFBFBD><CBB5>
|
|||
|
|
class CGlobalUserItem;
|
|||
|
|
class CGlobalPlazaItem;
|
|||
|
|
class CGlobalServerItem;
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>鶨<EFBFBD><E9B6A8>
|
|||
|
|
typedef CWHArray<CGlobalUserItem *> CGlobalUserItemArray;
|
|||
|
|
typedef CWHArray<CGlobalPlazaItem *> CGlobalPlazaItemArray;
|
|||
|
|
typedef CWHArray<CGlobalServerItem *> CGlobalServerItemArray;
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
typedef CMap<DWORD,DWORD,CGlobalUserItem *,CGlobalUserItem *> CMapUserID;
|
|||
|
|
typedef CMap<DWORD,DWORD,CGlobalUserItem *,CGlobalUserItem *> CMapGameID;
|
|||
|
|
typedef CMap<WORD,WORD,CGlobalPlazaItem *,CGlobalPlazaItem *> CMapPlazaID;
|
|||
|
|
typedef CMap<WORD,WORD,CGlobalServerItem *,CGlobalServerItem *> CMapServerID;
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
//<2F>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F>û<EFBFBD><C3BB><EFBFBD>Ϣ
|
|||
|
|
struct tagGlobalUserInfo
|
|||
|
|
{
|
|||
|
|
//<2F>û<EFBFBD><C3BB><EFBFBD>Ϣ
|
|||
|
|
DWORD dwUserID; //<2F>û<EFBFBD><C3BB><EFBFBD>ʶ
|
|||
|
|
DWORD dwGameID; //<2F><>Ϸ<EFBFBD><CFB7>ʶ
|
|||
|
|
TCHAR szNickName[LEN_NICKNAME]; //<2F>û<EFBFBD><C3BB>dz<EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
BYTE cbGender; //<2F>û<EFBFBD><C3BB>Ա<EFBFBD>
|
|||
|
|
BYTE cbMemberOrder; //<2F><>Ա<EFBFBD>ȼ<EFBFBD>
|
|||
|
|
BYTE cbMasterOrder; //<2F><><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
class CGlobalUserItem
|
|||
|
|
{
|
|||
|
|
//<2F><>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD>
|
|||
|
|
friend class CGlobalInfoManager;
|
|||
|
|
|
|||
|
|
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
DWORD m_dwUserID; //<2F>û<EFBFBD><C3BB><EFBFBD>ʶ
|
|||
|
|
DWORD m_dwGameID; //<2F><>Ϸ<EFBFBD><CFB7>ʶ
|
|||
|
|
TCHAR m_szNickName[LEN_NICKNAME]; //<2F>û<EFBFBD><C3BB>dz<EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
public:
|
|||
|
|
BYTE m_cbGender; //<2F>û<EFBFBD><C3BB>Ա<EFBFBD>
|
|||
|
|
BYTE m_cbMemberOrder; //<2F><>Ա<EFBFBD>ȼ<EFBFBD>
|
|||
|
|
BYTE m_cbMasterOrder; //<2F><><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
public:
|
|||
|
|
CGlobalServerItemArray m_GlobalServerItemArray; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
CGlobalUserItem * m_pNextUserItemPtr; //<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
//<2F><><EFBFBD>캯<EFBFBD><ECBAAF>
|
|||
|
|
CGlobalUserItem();
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual ~CGlobalUserItem();
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ܺ<EFBFBD><DCBA><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F>û<EFBFBD><C3BB><EFBFBD>ʶ
|
|||
|
|
DWORD GetUserID() { return m_dwUserID; }
|
|||
|
|
//<2F><>Ϸ<EFBFBD><CFB7>ʶ
|
|||
|
|
DWORD GetGameID() { return m_dwGameID; }
|
|||
|
|
//<2F>û<EFBFBD><C3BB>dz<EFBFBD>
|
|||
|
|
LPCTSTR GetNickName() { return m_szNickName; }
|
|||
|
|
|
|||
|
|
//<2F>û<EFBFBD><C3BB><EFBFBD>Ϣ
|
|||
|
|
public:
|
|||
|
|
//<2F>û<EFBFBD><C3BB>Ա<EFBFBD>
|
|||
|
|
BYTE GetGender() { return m_cbGender; }
|
|||
|
|
//<2F><>Ա<EFBFBD>ȼ<EFBFBD>
|
|||
|
|
BYTE GetMemberOrder() { return m_cbMemberOrder; }
|
|||
|
|
//<2F><>Ա<EFBFBD>ȼ<EFBFBD>
|
|||
|
|
BYTE GetMasterOrder() { return m_cbMasterOrder; }
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
public:
|
|||
|
|
//ö<>ٷ<EFBFBD><D9B7><EFBFBD>
|
|||
|
|
CGlobalServerItem * EnumServerItem(WORD wIndex);
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
//<2F>㳡<EFBFBD><E3B3A1><EFBFBD><EFBFBD>
|
|||
|
|
class CGlobalPlazaItem
|
|||
|
|
{
|
|||
|
|
//<2F><>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD>
|
|||
|
|
friend class CGlobalInfoManager;
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
WORD m_wIndex; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
tagGamePlaza m_GamePlaza; //<2F><>Ϸ<EFBFBD>㳡
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
CMapUserID m_MapUserID; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
CGlobalPlazaItem * m_pNextPlazaItemPtr; //<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
//<2F><><EFBFBD>캯<EFBFBD><ECBAAF>
|
|||
|
|
CGlobalPlazaItem();
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual ~CGlobalPlazaItem();
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
class CGlobalServerItem
|
|||
|
|
{
|
|||
|
|
//<2F><>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD>
|
|||
|
|
friend class CGlobalInfoManager;
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
WORD m_wIndex; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
tagGameServer m_GameServer; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
|
|||
|
|
tagGameMatch m_GameMatch; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
CMapUserID m_MapUserID; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
CGlobalServerItem * m_pNextServerItemPtr; //<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
//<2F><><EFBFBD>캯<EFBFBD><ECBAAF>
|
|||
|
|
CGlobalServerItem();
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual ~CGlobalServerItem();
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ܺ<EFBFBD><DCBA><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
WORD GetIndex() { return m_wIndex; }
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|||
|
|
WORD GetKindID() { return m_GameServer.wKindID; }
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|||
|
|
WORD GetServerID() { return m_GameServer.wServerID; }
|
|||
|
|
//<2F>û<EFBFBD><C3BB><EFBFBD>Ŀ
|
|||
|
|
DWORD GetUserItemCount() { return (DWORD)m_MapUserID.GetCount(); }
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
bool IsMatchServer() { return (m_GameMatch.wServerID==m_GameServer.wServerID) && m_GameMatch.dwMatchID!=0; }
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//Ѱ<><D1B0><EFBFBD>û<EFBFBD>
|
|||
|
|
CGlobalUserItem * SearchUserItem(DWORD dwUserID);
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
//ȫ<><C8AB><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
class CGlobalInfoManager
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
CMapUserID m_MapUserID; //<2F>û<EFBFBD><C3BB><EFBFBD>ʶ
|
|||
|
|
CMapPlazaID m_MapPlazaID; //<2F>㳡<EFBFBD><E3B3A1>ʶ
|
|||
|
|
CMapServerID m_MapServerID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
CMapGameID m_MapGameID; //<2F><>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD>
|
|||
|
|
CMapStringToPtr m_MapNickName; //<2F>dz<EFBFBD><C7B3><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
CGlobalUserItem * m_pGlobalUserItem; //<2F>û<EFBFBD><C3BB>洢
|
|||
|
|
CGlobalPlazaItem * m_pGlobalPlazaItem; //<2F>㳡<EFBFBD>洢
|
|||
|
|
CGlobalServerItem * m_pGlobalServerItem; //<2F><><EFBFBD><EFBFBD><EFBFBD>洢
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD>캯<EFBFBD><ECBAAF>
|
|||
|
|
CGlobalInfoManager();
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual ~CGlobalInfoManager();
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
VOID ResetData();
|
|||
|
|
//<2F>û<EFBFBD><C3BB><EFBFBD>Ŀ
|
|||
|
|
DWORD GetUserItemCount() { return (DWORD)m_MapUserID.GetCount(); }
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
|
|||
|
|
DWORD GetPlazaItemCount() { return (DWORD)m_MapPlazaID.GetCount(); }
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
|
|||
|
|
DWORD GetServerItemCount() { return (DWORD)m_MapServerID.GetCount(); }
|
|||
|
|
|
|||
|
|
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//ɾ<><C9BE><EFBFBD>û<EFBFBD>
|
|||
|
|
bool DeleteUserItem(DWORD dwUserID, WORD wServerID);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>
|
|||
|
|
bool ActiveUserItem(tagGlobalUserInfo & GlobalUserInfo, WORD wServerID);
|
|||
|
|
|
|||
|
|
//<2F>㳡<EFBFBD><E3B3A1><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//ɾ<><C9BE><EFBFBD>㳡
|
|||
|
|
bool DeletePlazaItem(WORD wPlazaID);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>㳡
|
|||
|
|
bool ActivePlazaItem(WORD wBindIndex, tagGamePlaza & GamePlaza);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
bool DeleteServerItem(WORD wServerID);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EEB7BF>
|
|||
|
|
bool ActiveServerItem(WORD wBindIndex, tagGameServer & GameServer);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//Ѱ<>ҹ㳡
|
|||
|
|
CGlobalPlazaItem * SearchPlazaItem(WORD wPlazaID);
|
|||
|
|
//Ѱ<>ҷ<EFBFBD><D2B7><EFBFBD>
|
|||
|
|
CGlobalServerItem * SearchServerItem(WORD wServerID);
|
|||
|
|
|
|||
|
|
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//Ѱ<><D1B0><EFBFBD>û<EFBFBD>
|
|||
|
|
CGlobalUserItem * SearchUserItemByUserID(DWORD dwUserID);
|
|||
|
|
//Ѱ<><D1B0><EFBFBD>û<EFBFBD>
|
|||
|
|
CGlobalUserItem * SearchUserItemByGameID(DWORD dwGameID);
|
|||
|
|
//Ѱ<><D1B0><EFBFBD>û<EFBFBD>
|
|||
|
|
CGlobalUserItem * SearchUserItemByNickName(LPCTSTR pszNickName);
|
|||
|
|
|
|||
|
|
//ö<>ٺ<EFBFBD><D9BA><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//ö<><C3B6><EFBFBD>û<EFBFBD>
|
|||
|
|
CGlobalUserItem * EnumUserItem(POSITION & Position);
|
|||
|
|
//ö<>ٹ㳡
|
|||
|
|
CGlobalPlazaItem * EnumPlazaItem(POSITION & Position);
|
|||
|
|
//ö<>ٷ<EFBFBD><D9B7><EFBFBD>
|
|||
|
|
CGlobalServerItem * EnumServerItem(POSITION & Position);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
private:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>
|
|||
|
|
CGlobalUserItem * CreateGlobalUserItem();
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>㳡
|
|||
|
|
CGlobalPlazaItem * CreateGlobalPlazaItem();
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
CGlobalServerItem * CreateGlobalServerItem();
|
|||
|
|
|
|||
|
|
//<2F>ͷź<CDB7><C5BA><EFBFBD>
|
|||
|
|
private:
|
|||
|
|
//<2F>ͷ<EFBFBD><CDB7>û<EFBFBD>
|
|||
|
|
bool FreeGlobalUserItem(CGlobalUserItem * pGlobalUserItem);
|
|||
|
|
//<2F>ͷŹ㳡
|
|||
|
|
bool FreeGlobalPlazaItem(CGlobalPlazaItem * pGlobalPlazaItem);
|
|||
|
|
//<2F>ͷŷ<CDB7><C5B7><EFBFBD>
|
|||
|
|
bool FreeGlobalServerItem(CGlobalServerItem * pGlobalServerItem);
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
#endif
|