📄 user.h
字号:
#pragma once
#include <NetworkObject.h>
#include <string>
// 模备 包府 困秦 include
#include <map>
using namespace std;
struct STRUCT_FRIEND_INFO;
struct STRUCT_BLOCK_INFO;
class User;
typedef map< DWORD, STRUCT_FRIEND_INFO* > FRIEND_INFO_MAP;
typedef FRIEND_INFO_MAP::iterator FRIEND_INFO_MAP_ITER;
typedef std::pair< DWORD, STRUCT_FRIEND_INFO* > FRIEND_INFO_MAP_PAIR;
typedef map< DWORD, STRUCT_BLOCK_INFO* > BLOCK_INFO_MAP;
typedef BLOCK_INFO_MAP::iterator BLOCK_INFO_MAP_ITER;
typedef std::pair< DWORD, STRUCT_BLOCK_INFO* > BLOCK_INFO_MAP_PAIR;
typedef map< DWORD, User* > FRIEND_ONLINE_MAP;
typedef FRIEND_ONLINE_MAP::iterator FRIEND_ONLINE_MAP_ITER;
typedef std::pair< DWORD, User* > FRIEND_ONLINE_MAP_PAIR;
enum eUSER_TYPE { INVALID_USER, TEMP_USER, ACTIVE_USER };
class Zone;
class User : public NetworkObject
{
friend class UserManager;
enum { WAITING_TICK = 1000 * 100 };
enum { FRIEND_STAT_LOGIN = 0, FRIEND_STAT_LOGOUT = 1 };
public:
User();
virtual ~User();
virtual VOID Init();
virtual VOID Release();
virtual VOID Update();
virtual VOID OnRedirect() {}
VOID Logout();
VOID OnEnterZone( Zone *pZone );
VOID OnLeaveZone( Zone *pZone );
VOID OnEnterSector( Zone *pZone );
VOID OnLeaveSector( Zone *pZone );
VOID ProcessLogout();
inline VOID SetNetworkIndex( DWORD index ) { m_dwNetworkIndex = index; }
inline DWORD GetNetworkIndex() { return m_dwNetworkIndex; }
inline VOID SetGUID( DWORD dwGUID ) { m_dwGUID = dwGUID; }
inline DWORD GetGUID() { return m_dwGUID; }
inline VOID SetCharGuid( DWORD CharGuid ) { m_CharGuid = CharGuid; }
inline DWORD GetCharGuid() { return m_CharGuid; }
inline VOID SetCharName( std::string charName ) { m_strCharName = charName; }
inline std::string& GetCharName() { return m_strCharName; }
inline VOID SetUserType( eUSER_TYPE type ) { m_userType = type; }
inline eUSER_TYPE GetUserType() { return m_userType; }
inline VOID StartTimeCheck() { m_dwTimeoutTick = GetTickCount() + WAITING_TICK; }
inline BOOL IsTimeout()
{
return FALSE;
// return GetTickCount() > m_dwTimeoutTick;
}
inline VOID SetAuthIP( char *pszIP ) { strncpy( m_szAuthIP, pszIP, IP_MAX_LEN ); }
inline char* GetAuthIP() { return m_szAuthIP; }
inline VOID SetAuthID( DWORD dwAuthID ) { m_dwAuthID = dwAuthID; }
inline DWORD GetAuthID() { return m_dwAuthID; }
inline VOID SetChannelID( DWORD channelID ) { m_dwChannelID = channelID; }
inline DWORD GetChannelID() { return m_dwChannelID; }
inline VOID SetZoneKey( DWORD dwZoneKey ) { m_dwZoneKey = dwZoneKey; }
inline DWORD GetZoneKey() { return m_dwZoneKey; }
inline VOID SetStatus( eZONETYPE status ) { m_status = status; }
inline eZONETYPE GetStatus() { return m_status; }
inline VOID SetWhisper(BOOL bWhisper=TRUE) { m_bWhisper = bWhisper; } // 庇富 罐阑 巴牢瘤 技飘. 扁夯 蔼篮 TRUE(倾侩)
inline BOOL CanWhisper() { return m_bWhisper; } // 庇富 罐绰 惑怕牢瘤(TRUE), 酒囱瘤(FALSE)
void OnLogString(char *pszLog); // 惑加
inline VOID SetFieldCode(DWORD dwFieldCode) { m_dwFieldCode = dwFieldCode; }
inline DWORD GetFieldCode() { return m_dwFieldCode; }
inline VOID SetSectorIndex(DWORD dwSectorIndex) { m_dwSectorIndex = dwSectorIndex; }
inline DWORD GetSectorIndex() { return m_dwSectorIndex; }
// 模备 沥焊 包府
int CheckFriendList();
STRUCT_FRIEND_INFO* GetFirstFriend();
STRUCT_FRIEND_INFO* GetNextFriend();
BOOL AddFriendInfo( STRUCT_FRIEND_INFO* pFriend );
STRUCT_FRIEND_INFO* FindFriend( DWORD dwCharGuid );
STRUCT_FRIEND_INFO* FindFriend( TCHAR* ptszFriendName );
VOID RemoveFriend( DWORD dwGuid );
inline BOOL GetFriendChatBlock() { return m_bFriendChatBlock; }
inline VOID SetFriendChatBlock(BOOL bBlock) { m_bFriendChatBlock = bBlock; }
VOID AddOnlineFriend( User *pUser );
VOID RemoveOnlineFriend( User *pUser );
User* FindOnlineFriend( DWORD CharGuid );
VOID AlarmFriendStatChange( int nFlag, User *pUser );
// 瞒窜 沥焊 包府
inline BOOL CheckBlockList() { return m_bBlockList; }
inline VOID SetBlockList( BOOL bBlock = TRUE ) { m_bBlockList = bBlock; }
STRUCT_BLOCK_INFO* GetFirstBlock();
STRUCT_BLOCK_INFO* GetNextBlock();
BOOL AddBlockInfo( STRUCT_BLOCK_INFO* pBlock );
STRUCT_BLOCK_INFO* FindBlock( DWORD dwGuid );
STRUCT_BLOCK_INFO* FindBlock( TCHAR* ptszBlockName );
VOID RemoveBlock( DWORD dwGuid );
VOID RemoveBlock( TCHAR* ptszBlockedName );
// 辨靛 沥焊 包府
inline BOOL CheckGuildList() { return m_bGuildList; }
inline VOID SetGuildList( BOOL bGuildList = TRUE ) { m_bGuildList = bGuildList; }
inline VOID SetGuildGuid( GUILDGUID GuildGuid ) { m_GuildGuid = GuildGuid; }
inline GUILDGUID GetGuildGuid() { return m_GuildGuid; }
protected:
virtual VOID OnAccept( DWORD dwNetworkIndex );
virtual VOID OnDisconnect();
virtual VOID OnRecv( BYTE *pMsg, WORD wSize );
private:
BOOL m_bLogoutProcessed;
eUSER_TYPE m_userType;
DWORD m_dwNetworkIndex;
DWORD m_dwGUID;
DWORD m_CharGuid;
std::string m_strCharName;
DWORD m_dwTimeoutTick;
char m_szAuthIP[IP_MAX_LEN];
DWORD m_dwChannelID;
DWORD m_dwZoneKey;
eZONETYPE m_status;
DWORD m_dwAuthID;
//庇富 脑/阐 惑怕
BOOL m_bWhisper; // TRUE搁 庇富 脑, FALSE搁 庇富 阐
DWORD m_dwFieldCode; // 泅犁 加秦 乐绰 鞘靛 内靛
DWORD m_dwSectorIndex; // 泅犁 加秦 乐绰 冀磐 牢郸胶
// 模备 沥焊 包府
FRIEND_INFO_MAP m_mapFriend; // 模备 包府侩 甘
FRIEND_INFO_MAP_ITER m_iterNowFriend; // GetFirst...(), GetNext...() 俊辑 荤侩.
BOOL m_bFriendList; // 模备 府胶飘 罐疽菌唱?(TRUE: 罐疽澜, FALSE: 救 罐疽澜)
BOOL m_bFriendChatBlock; // 模备 盲泼 瞒窜 咯何(0: 倾侩 1: 芭何)
FRIEND_ONLINE_MAP m_mapOnlineFriend; // 柯扼牢 模备 包府侩 甘
// 瞒窜 沥焊 包府
BLOCK_INFO_MAP m_mapBlock; // 瞒窜 包府侩 甘
BLOCK_INFO_MAP_ITER m_iterNowBlock; // GetFirst...(), GetNext...() 俊辑 荤侩.
BOOL m_bBlockList; // 瞒窜 府胶飘 罐疽菌唱?(TRUE: 罐疽澜, FALSE: 救 罐疽澜)
// 辨靛 包访
BOOL m_bGuildList; // 辨靛 府胶飘 罐疽菌唱?(TRUE:罐疽澜, FALSE: 救 罐疽澜)
GUILDGUID m_GuildGuid; // 家加 辨靛 guid
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -