📄 usertable.h
字号:
// UserTable.h: interface for the CUserTable class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_USERTABLE_H__5BBB3509_10AF_4E68_9B3A_C07E9F23D2A9__INCLUDED_)
#define AFX_USERTABLE_H__5BBB3509_10AF_4E68_9B3A_C07E9F23D2A9__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
//#include "ServerSystem.h"
//#include <HashTable.h>
BOOL DisconnectUser(DWORD dwConnectionIndex);
BOOL DisconnectUser( DWORD dwConnectionIndex, int flag );
#include "Crypt.h"
struct aGAMEOPTION
{
BYTE bNoFriend;
BYTE bNoWhisper;
aGAMEOPTION():bNoWhisper(0), bNoFriend(0) {}
};
typedef struct tagUSERINFO
{
DWORD dwConnectionIndex;
DWORD dwCharacterID;
DWORD dwUserID;
BYTE UserLevel;
DWORD dwMapServerConnectionIndex;
WORD wUserMapNum;
DWORD dwCharacterIDS[4]; // 蜡历啊 啊柳 某腐锅龋甫 厚背窍扁困窃
BYTE bLoginMapNum[4];
DWORD State;
BOOL bRecvDistOut;
#ifdef _NETWORKTEST
DWORD dwStartTrafficTime;
DWORD dwTrafficForUserSend[MP_MAX];
DWORD dwTrafficForServerSend[MP_MAX];
DWORD dwPacketForUserSend[MP_MAX];
DWORD dwPacketForServerSend[MP_MAX];
void AddPacketForUser(DWORD c, DWORD size)
{
dwTrafficForUserSend[c] += size;
++dwPacketForUserSend[c];
}
void AddPacketForServer(DWORD c, DWORD size)
{
dwTrafficForServerSend[c] += size;
++dwPacketForServerSend[c];
}
#endif
DWORD dwUniqueConnectIdx; // 辑滚俊辑狼 绊蜡 楷搬 锅龋
// dwConnectionIdx客绰 促抚. 拌加 刘啊窃
CCrypt crypto;
BYTE CheckSum;
aGAMEOPTION GameOption;
BOOL CheckCorrectCheckSum(BYTE CS)
{
if(CS != CheckSum)
return FALSE;
++CheckSum;
return TRUE;
}
DWORD dwLastConnectionCheckTime;
BOOL m_ConnectionCheckFailed;
}USERINFO;
class CUserTable : public CYHHashTable<USERINFO>
{
DWORD m_MaxUserCount;
DWORD m_dwUserCount;
DWORD m_addCount;
DWORD m_removeCount;
public:
CUserTable();
virtual ~CUserTable();
void SetPositionUserHead() { CYHHashTable<USERINFO>::SetPositionHead(); }
USERINFO * GetUserData() { return CYHHashTable<USERINFO>::GetData(); }
void Init(DWORD dwBucket);
USERINFO * FindUser(DWORD dwKey);
BOOL AddUser(USERINFO* pObject,DWORD dwKey);
USERINFO * RemoveUser(DWORD dwKey);
void RemoveAllUser();
DWORD GetUserCount(){ return m_dwUserCount; }
DWORD GetUserMaxCount(){return m_MaxUserCount;}
void SetCalcMaxCount(DWORD CurCount);
BOOL SendToUser(DWORD dwKey,DWORD dwUniqueConnectIdx,MSGBASE* pmsg,DWORD size);
BOOL OnDisconnectUser(DWORD dwKey);
DWORD GetAddCount() { return m_addCount; }
DWORD GetRemoveCount() { return m_removeCount; }
};
extern CUserTable * g_pUserTable; // key : connectionidx
#endif // !defined(AFX_USERTABLE_H__5BBB3509_10AF_4E68_9B3A_C07E9F23D2A9__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -