Files
wnmj/Servers/消息定义/CMD_GameServer.h

1284 lines
33 KiB
C
Raw Normal View History

2026-02-13 14:34:15 +08:00
#ifndef CMD_GAME_SERVER_HEAD_FILE
#define CMD_GAME_SERVER_HEAD_FILE
//ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD>
#include "..\..\ȫ<>ֶ<EFBFBD><D6B6><EFBFBD>\Platform.h"
#pragma pack(1)
//////////////////////////////////////////////////////////////////////////////////
//<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
#define MDM_GR_LOGON 1 //<2F><>¼<EFBFBD><C2BC>Ϣ
//<2F><>¼ģʽ
#define SUB_GR_LOGON_USERID 1 //I D <20><>¼
#define SUB_GR_LOGON_MOBILE 2 //<2F>ֻ<EFBFBD><D6BB><EFBFBD>¼
#define SUB_GR_LOGON_ACCOUNTS 3 //<2F>ʻ<EFBFBD><CABB><EFBFBD>¼
//<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
#define SUB_GR_LOGON_SUCCESS 100 //<2F><>¼<EFBFBD>ɹ<EFBFBD>
#define SUB_GR_LOGON_FAILURE 101 //<2F><>¼ʧ<C2BC><CAA7>
#define SUB_GR_LOGON_FINISH 102 //<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
#define SUB_GR_UPDATE_NOTIFY 200 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
//////////////////////////////////////////////////////////////////////////////////
//I D <20><>¼
struct CMD_GR_LogonUserID
{
//<2F><EFBFBD><E6B1BE>Ϣ
DWORD dwPlazaVersion; //<2F><EFBFBD>
DWORD dwFrameVersion; //<2F><><EFBFBD>ܰ汾
DWORD dwProcessVersion; //<2F><><EFBFBD>̰汾
//<2F><>¼<EFBFBD><C2BC>Ϣ
DWORD dwUserID; //<2F>û<EFBFBD> I D
TCHAR szPassword[LEN_MD5]; //<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
TCHAR szMachineID[LEN_MACHINE_ID]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wKindID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
//<2F>ֻ<EFBFBD><D6BB><EFBFBD>¼
struct CMD_GR_LogonMobile
{
//<2F><EFBFBD><E6B1BE>Ϣ
WORD wGameID; //<2F><>Ϸ<EFBFBD><CFB7>ʶ
DWORD dwProcessVersion; //<2F><><EFBFBD>̰汾
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE cbDeviceType; //<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
WORD wBehaviorFlags; //<2F><>Ϊ<EFBFBD><CEAA>ʶ
WORD wPageTableCount; //<2F><>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD>
//<2F><>¼<EFBFBD><C2BC>Ϣ
DWORD dwUserID; //<2F>û<EFBFBD> I D
TCHAR szPassword[LEN_MD5]; //<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
TCHAR szMachineID[LEN_MACHINE_ID]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ
};
//<2F>ʺŵ<CABA>¼
struct CMD_GR_LogonAccounts
{
//<2F><EFBFBD><E6B1BE>Ϣ
DWORD dwPlazaVersion; //<2F><EFBFBD>
DWORD dwFrameVersion; //<2F><><EFBFBD>ܰ汾
DWORD dwProcessVersion; //<2F><><EFBFBD>̰汾
//<2F><>¼<EFBFBD><C2BC>Ϣ
TCHAR szPassword[LEN_MD5]; //<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
TCHAR szAccounts[LEN_ACCOUNTS]; //<2F><>¼<EFBFBD>ʺ<EFBFBD>
TCHAR szMachineID[LEN_MACHINE_ID]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
//<2F><>¼<EFBFBD>ɹ<EFBFBD>
struct CMD_GR_LogonSuccess
{
DWORD dwUserRight; //<2F>û<EFBFBD>Ȩ<EFBFBD><C8A8>
DWORD dwMasterRight; //<2F><><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8>
};
//<2F><>¼ʧ<C2BC><CAA7>
struct CMD_GR_LogonFailure
{
LONG lErrorCode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TCHAR szDescribeString[128]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
struct CMD_GR_UpdateNotify
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
BYTE cbMustUpdatePlaza; //ǿ<><C7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE cbMustUpdateClient; //ǿ<><C7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE cbAdviceUpdateClient; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><>ǰ<EFBFBD>
DWORD dwCurrentPlazaVersion; //<2F><>ǰ<EFBFBD>
DWORD dwCurrentFrameVersion; //<2F><>ǰ<EFBFBD>
DWORD dwCurrentClientVersion; //<2F><>ǰ<EFBFBD>
};
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define MDM_GR_CONFIG 2 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
#define SUB_GR_CONFIG_COLUMN 100 //<2F>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GR_CONFIG_SERVER 101 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GR_CONFIG_PROPERTY 102 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GR_CONFIG_FINISH 103 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GR_CONFIG_USER_RIGHT 104 //<2F><><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8>
//////////////////////////////////////////////////////////////////////////////////
//<2F>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_ConfigColumn
{
BYTE cbColumnCount; //<2F>б<EFBFBD><D0B1><EFBFBD>Ŀ
tagColumnItem ColumnItem[MAX_COLUMN]; //<2F>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_ConfigServer
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wTableCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
WORD wChairCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wServerType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwServerRule; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_ConfigProperty
{
BYTE cbPropertyCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
tagPropertyInfo PropertyInfo[MAX_PROPERTY]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
//<2F><><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8>
struct CMD_GR_ConfigUserRight
{
DWORD dwUserRight; //<2F><><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8>
};
//////////////////////////////////////////////////////////////////////////////////
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
#define MDM_GR_USER 3 //<2F>û<EFBFBD><C3BB><EFBFBD>Ϣ
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GR_USER_RULE 1 //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GR_USER_LOOKON 2 //<2F>Թ<EFBFBD><D4B9><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GR_USER_SITDOWN 3 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GR_USER_STANDUP 4 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GR_USER_INVITE 5 //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GR_USER_INVITE_REQ 6 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GR_USER_REPULSE_SIT 7 //<2F>ܾ<EFBFBD><DCBE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GR_USER_KICK_USER 8 //<2F>߳<EFBFBD><DFB3>û<EFBFBD>
#define SUB_GR_USER_INFO_REQ 9 //<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>Ϣ
#define SUB_GR_USER_CHAIR_REQ 10 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
#define SUB_GR_USER_CHAIR_INFO_REQ 11 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>Ϣ
//<2F>û<EFBFBD>״̬
#define SUB_GR_USER_ENTER 100 //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GR_USER_SCORE 101 //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GR_USER_STATUS 102 //<2F>û<EFBFBD>״̬
#define SUB_GR_REQUEST_FAILURE 103 //<2F><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
#define SUB_GR_USER_LOCATION 104 //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>Ϣ;
#define SUB_GR_USER_SCOREMULTIPLE 105 //<2F><><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>ͬ<EFBFBD><CDAC>;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GR_USER_CHAT 201 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
#define SUB_GR_USER_EXPRESSION 202 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
#define SUB_GR_WISPER_CHAT 203 //˽<><CBBD><EFBFBD><EFBFBD>Ϣ
#define SUB_GR_WISPER_EXPRESSION 204 //˽<>ı<EFBFBD><C4B1><EFBFBD>
#define SUB_GR_COLLOQUY_CHAT 205 //<2F><EFBFBD><E1BBB0>Ϣ
#define SUB_GR_COLLOQUY_EXPRESSION 206 //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GR_PROPERTY_BUY 300 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GR_PROPERTY_SUCCESS 301 //<2F><><EFBFBD>߳ɹ<DFB3>
#define SUB_GR_PROPERTY_FAILURE 302 //<2F><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
#define SUB_GR_PROPERTY_MESSAGE 303 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
#define SUB_GR_PROPERTY_EFFECT 304 //<2F><><EFBFBD><EFBFBD>ЧӦ
#define SUB_GR_PROPERTY_TRUMPET 305 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
//////////////////////////////////////////////////////////////////////////////////
//<2F>Թ<EFBFBD><D4B9><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_UserLookon
{
WORD wTableID; //<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
WORD wChairID; //<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_UserSitDown
{
WORD wTableID; //<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
WORD wChairID; //<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
TCHAR szPassword[LEN_PASSWORD]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_UserStandUp
{
WORD wTableID; //<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
WORD wChairID; //<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
BYTE cbForceLeave; //ǿ<><C7BF><EFBFBD>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>
struct CMD_GR_UserInvite
{
WORD wTableID; //<2F><><EFBFBD>Ӻ<EFBFBD><D3BA><EFBFBD>
DWORD dwUserID; //<2F>û<EFBFBD> I D
};
//<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_UserInviteReq
{
WORD wTableID; //<2F><><EFBFBD>Ӻ<EFBFBD><D3BA><EFBFBD>
DWORD dwUserID; //<2F>û<EFBFBD> I D
};
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_UserScore
{
DWORD dwUserID; //<2F>û<EFBFBD><C3BB><EFBFBD>ʶ
tagUserScore UserScore; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
};
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_MobileUserScore
{
DWORD dwUserID; //<2F>û<EFBFBD><C3BB><EFBFBD>ʶ
tagMobileUserScore UserScore; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
};
//<2F>û<EFBFBD>״̬
struct CMD_GR_UserStatus
{
DWORD dwUserID; //<2F>û<EFBFBD><C3BB><EFBFBD>ʶ
tagUserStatus UserStatus; //<2F>û<EFBFBD>״̬
};
//<2F><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
struct CMD_GR_RequestFailure
{
LONG lErrorCode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TCHAR szDescribeString[256]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
};
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_C_UserChat
{
WORD wChatLength; //<2F><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
DWORD dwChatColor; //<2F><>Ϣ<EFBFBD><CFA2>ɫ
DWORD dwTargetUserID; //Ŀ<><C4BF><EFBFBD>û<EFBFBD>
TCHAR szChatString[LEN_USER_CHAT]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
};
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_S_UserChat
{
WORD wChatLength; //<2F><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
DWORD dwChatColor; //<2F><>Ϣ<EFBFBD><CFA2>ɫ
DWORD dwSendUserID; //<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>
DWORD dwTargetUserID; //Ŀ<><C4BF><EFBFBD>û<EFBFBD>
TCHAR szChatString[LEN_USER_CHAT]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
};
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_C_UserExpression
{
WORD wItemIndex; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwTargetUserID; //Ŀ<><C4BF><EFBFBD>û<EFBFBD>
};
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_S_UserExpression
{
WORD wItemIndex; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwSendUserID; //<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>
DWORD dwTargetUserID; //Ŀ<><C4BF><EFBFBD>û<EFBFBD>
};
//<2F>û<EFBFBD>˽<EFBFBD><CBBD>
struct CMD_GR_C_WisperChat
{
WORD wChatLength; //<2F><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
DWORD dwChatColor; //<2F><>Ϣ<EFBFBD><CFA2>ɫ
DWORD dwTargetUserID; //Ŀ<><C4BF><EFBFBD>û<EFBFBD>
TCHAR szChatString[LEN_USER_CHAT]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
};
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_C_TableTalk
{
BYTE cbChairID; //<2F><>λ
DataStream kDataStream; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void StreamValue(DataStream& kData, bool bSend)
{
Stream_VALUE(cbChairID);
Stream_VALUE(kDataStream);
}
};
//<2F>û<EFBFBD>˽<EFBFBD><CBBD>
struct CMD_GR_S_WisperChat
{
WORD wChatLength; //<2F><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
DWORD dwChatColor; //<2F><>Ϣ<EFBFBD><CFA2>ɫ
DWORD dwSendUserID; //<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>
DWORD dwTargetUserID; //Ŀ<><C4BF><EFBFBD>û<EFBFBD>
TCHAR szChatString[LEN_USER_CHAT]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
};
//˽<>ı<EFBFBD><C4B1><EFBFBD>
struct CMD_GR_C_WisperExpression
{
WORD wItemIndex; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwTargetUserID; //Ŀ<><C4BF><EFBFBD>û<EFBFBD>
};
//˽<>ı<EFBFBD><C4B1><EFBFBD>
struct CMD_GR_S_WisperExpression
{
WORD wItemIndex; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwSendUserID; //<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>
DWORD dwTargetUserID; //Ŀ<><C4BF><EFBFBD>û<EFBFBD>
};
//<2F>û<EFBFBD><C3BB>
struct CMD_GR_ColloquyChat
{
WORD wChatLength; //<2F><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
DWORD dwChatColor; //<2F><>Ϣ<EFBFBD><CFA2>ɫ
DWORD dwSendUserID; //<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>
DWORD dwConversationID; //<2F><EFBFBD><E1BBB0>ʶ
DWORD dwTargetUserID[16]; //Ŀ<><C4BF><EFBFBD>û<EFBFBD>
TCHAR szChatString[LEN_USER_CHAT]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
};
//<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>
struct CMD_GR_C_InviteUser
{
WORD wTableID; //<2F><><EFBFBD>Ӻ<EFBFBD><D3BA><EFBFBD>
DWORD dwSendUserID; //<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>
struct CMD_GR_S_InviteUser
{
DWORD dwTargetUserID; //Ŀ<><C4BF><EFBFBD>û<EFBFBD>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_C_PropertyBuy
{
BYTE cbRequestArea; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ
BYTE cbConsumeScore; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wItemCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
WORD wPropertyIndex; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwTargetUserID; //ʹ<>ö<EFBFBD><C3B6><EFBFBD>
};
//<2F><><EFBFBD>߳ɹ<DFB3>
struct CMD_GR_S_PropertySuccess
{
BYTE cbRequestArea; //ʹ<>û<EFBFBD><C3BB><EFBFBD>
WORD wItemCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
WORD wPropertyIndex; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwSourceUserID; //Ŀ<><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwTargetUserID; //ʹ<>ö<EFBFBD><C3B6><EFBFBD>
};
//<2F><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
struct CMD_GR_PropertyFailure
{
WORD wRequestArea; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LONG lErrorCode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TCHAR szDescribeString[256]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
struct CMD_GR_S_PropertyMessage
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
WORD wPropertyIndex; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wPropertyCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
DWORD dwSourceUserID; //Ŀ<><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwTargerUserID; //ʹ<>ö<EFBFBD><C3B6><EFBFBD>
};
//<2F><><EFBFBD><EFBFBD>ЧӦ
struct CMD_GR_S_PropertyEffect
{
DWORD wUserID; //<2F><> <20><>I D
BYTE cbMemberOrder; //<2F><>Ա<EFBFBD>ȼ<EFBFBD>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_C_SendTrumpet
{
BYTE cbRequestArea; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ
WORD wPropertyIndex; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD TrumpetColor; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
TCHAR szTrumpetContent[TRUMPET_MAX_CHAR]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_S_SendTrumpet
{
WORD wPropertyIndex; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwSendUserID; //<2F>û<EFBFBD> I D
DWORD TrumpetColor; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
TCHAR szSendNickName[32]; //<2F><><EFBFBD><EFBFBD><EFBFBD>dz<EFBFBD>
TCHAR szTrumpetContent[TRUMPET_MAX_CHAR]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
//<2F>û<EFBFBD><C3BB>ܾ<EFBFBD><DCBE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_UserRepulseSit
{
WORD wTableID; //<2F><><EFBFBD>Ӻ<EFBFBD><D3BA><EFBFBD>
WORD wChairID; //<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
DWORD dwUserID; //<2F>û<EFBFBD> I D
DWORD dwRepulseUserID; //<2F>û<EFBFBD> I D
};
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
#define UR_LIMIT_SAME_IP 0x01 //<2F><><EFBFBD>Ƶ<EFBFBD>ַ
#define UR_LIMIT_WIN_RATE 0x02 //<2F><><EFBFBD><EFBFBD>ʤ<EFBFBD><CAA4>
#define UR_LIMIT_FLEE_RATE 0x04 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define UR_LIMIT_GAME_SCORE 0x08 //<2F><><EFBFBD>ƻ<EFBFBD><C6BB><EFBFBD>
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_UserRule
{
BYTE cbRuleMask; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wMinWinRate; //<2F><><EFBFBD><EFBFBD>ʤ<EFBFBD><CAA4>
WORD wMaxFleeRate; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LONG lMaxGameScore; //<2F><><EFBFBD>߷<EFBFBD><DFB7><EFBFBD>
LONG lMinGameScore; //<2F><><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>Ϣ
struct CMD_GR_UserInfoReq
{
DWORD dwUserIDReq; //<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>
WORD wTablePos; //<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>Ϣ
struct CMD_GR_ChairUserInfoReq
{
WORD wTableID; //<2F><><EFBFBD>Ӻ<EFBFBD><D3BA><EFBFBD>
WORD wChairID; //<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
};
//////////////////////////////////////////////////////////////////////////////////
//״̬<D7B4><CCAC><EFBFBD><EFBFBD>
#define MDM_GR_STATUS 4 //״̬<D7B4><CCAC>Ϣ
#define SUB_GR_TABLE_INFO 100 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
#define SUB_GR_TABLE_STATUS 101 //<2F><><EFBFBD><EFBFBD>״̬
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
struct CMD_GR_TableInfo
{
WORD wTableCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
tagTableStatus TableStatusArray[512]; //<2F><><EFBFBD><EFBFBD>״̬
};
//<2F><><EFBFBD><EFBFBD>״̬
struct CMD_GR_TableStatus
{
WORD wTableID; //<2F><><EFBFBD>Ӻ<EFBFBD><D3BA><EFBFBD>
tagTableStatus TableStatus; //<2F><><EFBFBD><EFBFBD>״̬
};
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define MDM_GR_INSURE 5 //<2F>û<EFBFBD><C3BB><EFBFBD>Ϣ
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GR_QUERY_INSURE_INFO 1 //<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>
#define SUB_GR_SAVE_SCORE_REQUEST 2 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GR_TAKE_SCORE_REQUEST 3 //ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GR_TRANSFER_SCORE_REQUEST 4 //ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GR_QUERY_USER_INFO_REQUEST 5 //<2F><>ѯ<EFBFBD>û<EFBFBD>
#define SUB_GR_USER_INSURE_INFO 100 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GR_USER_INSURE_SUCCESS 101 //<2F><><EFBFBD>гɹ<D0B3>
#define SUB_GR_USER_INSURE_FAILURE 102 //<2F><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
#define SUB_GR_USER_TRANSFER_USER_INFO 103 //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
//////////////////////////////////////////////////////////////////////////////////
//<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>
struct CMD_GR_C_QueryInsureInfoRequest
{
BYTE cbActivityGame; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_C_SaveScoreRequest
{
BYTE cbActivityGame; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
SCORE lSaveScore; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
};
//ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_C_TakeScoreRequest
{
BYTE cbActivityGame; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
SCORE lTakeScore; //ȡ<><C8A1><EFBFBD><EFBFBD>Ŀ
TCHAR szInsurePass[LEN_PASSWORD]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
//ת<>˽<EFBFBD><CBBD><EFBFBD>
struct CMD_GP_C_TransferScoreRequest
{
BYTE cbActivityGame; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
BYTE cbByNickName; //<2F>dz<EFBFBD><C7B3><EFBFBD><EFBFBD><EFBFBD>
SCORE lTransferScore; //ת<>˽<EFBFBD><CBBD><EFBFBD>
TCHAR szNickName[LEN_NICKNAME]; //Ŀ<><C4BF><EFBFBD>û<EFBFBD>
TCHAR szInsurePass[LEN_PASSWORD]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
//<2F><>ѯ<EFBFBD>û<EFBFBD>
struct CMD_GR_C_QueryUserInfoRequest
{
BYTE cbActivityGame; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
BYTE cbByNickName; //<2F>dz<EFBFBD><C7B3><EFBFBD><EFBFBD><EFBFBD>
TCHAR szNickName[LEN_NICKNAME]; //Ŀ<><C4BF><EFBFBD>û<EFBFBD>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_S_UserInsureInfo
{
BYTE cbActivityGame; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
WORD wRevenueTake; //˰<>ձ<EFBFBD><D5B1><EFBFBD>
WORD wRevenueTransfer; //˰<>ձ<EFBFBD><D5B1><EFBFBD>
WORD wServerID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ
SCORE lUserScore; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
SCORE lUserInsure; //<2F><><EFBFBD>н<EFBFBD><D0BD><EFBFBD>
SCORE lTransferPrerequisite; //ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
//<2F><><EFBFBD>гɹ<D0B3>
struct CMD_GR_S_UserInsureSuccess
{
BYTE cbActivityGame; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
SCORE lUserScore; //<2F><><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD>
SCORE lUserInsure; //<2F><><EFBFBD>н<EFBFBD><D0BD><EFBFBD>
TCHAR szDescribeString[128]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
};
//<2F><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
struct CMD_GR_S_UserInsureFailure
{
BYTE cbActivityGame; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
LONG lErrorCode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TCHAR szDescribeString[128]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
};
//<2F>û<EFBFBD><C3BB><EFBFBD>Ϣ
struct CMD_GR_S_UserTransferUserInfo
{
BYTE cbActivityGame; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
DWORD dwTargetGameID; //Ŀ<><C4BF><EFBFBD>û<EFBFBD>
TCHAR szNickName[LEN_NICKNAME]; //Ŀ<><C4BF><EFBFBD>û<EFBFBD>
};
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define MDM_GR_MANAGE 6 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GR_SEND_WARNING 1 //<2F><><EFBFBD>;<EFBFBD><CDBE><EFBFBD>
#define SUB_GR_SEND_MESSAGE 2 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
#define SUB_GR_LOOK_USER_IP 3 //<2F><EFBFBD><E9BFB4>ַ
#define SUB_GR_KILL_USER 4 //<2F>߳<EFBFBD><DFB3>û<EFBFBD>
#define SUB_GR_LIMIT_ACCOUNS 5 //<2F><><EFBFBD><EFBFBD><EFBFBD>ʻ<EFBFBD>
#define SUB_GR_SET_USER_RIGHT 6 //Ȩ<><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GR_QUERY_OPTION 7 //<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>
#define SUB_GR_OPTION_SERVER 8 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GR_OPTION_CURRENT 9 //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
#define SUB_GR_LIMIT_USER_CHAT 10 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GR_KICK_ALL_USER 11 //<2F>߳<EFBFBD><DFB3>û<EFBFBD>
#define SUB_GR_DISMISSGAME 12 //<2F><>ɢ<EFBFBD><C9A2>Ϸ
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD>;<EFBFBD><CDBE><EFBFBD>
struct CMD_GR_SendWarning
{
WORD wChatLength; //<2F><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
DWORD dwTargetUserID; //Ŀ<><C4BF><EFBFBD>û<EFBFBD>
TCHAR szWarningMessage[LEN_USER_CHAT]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
};
//ϵͳ<CFB5><CDB3>Ϣ
struct CMD_GR_SendMessage
{
BYTE cbGame; //<2F><>Ϸ<EFBFBD><CFB7>Ϣ
BYTE cbRoom; //<2F><>Ϸ<EFBFBD><CFB7>Ϣ
BYTE cbAllRoom; //<2F><>Ϸ<EFBFBD><CFB7>Ϣ
WORD wChatLength; //<2F><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
TCHAR szSystemMessage[LEN_USER_CHAT]; //ϵͳ<CFB5><CDB3>Ϣ
};
//<2F><EFBFBD><E9BFB4>ַ
struct CMD_GR_LookUserIP
{
DWORD dwTargetUserID; //Ŀ<><C4BF><EFBFBD>û<EFBFBD>
};
//<2F>߳<EFBFBD><DFB3>û<EFBFBD>
struct CMD_GR_KickUser
{
DWORD dwTargetUserID; //Ŀ<><C4BF><EFBFBD>û<EFBFBD>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD>ʻ<EFBFBD>
struct CMD_GR_LimitAccounts
{
DWORD dwTargetUserID; //Ŀ<><C4BF><EFBFBD>û<EFBFBD>
};
//Ȩ<><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_SetUserRight
{
//Ŀ<><C4BF><EFBFBD>û<EFBFBD>
DWORD dwTargetUserID; //Ŀ<><C4BF><EFBFBD>û<EFBFBD>
//<2F>󶨱<EFBFBD><F3B6A8B1><EFBFBD>
BYTE cbGameRight; //<2F>ʺ<EFBFBD>Ȩ<EFBFBD><C8A8>
BYTE cbAccountsRight; //<2F>ʺ<EFBFBD>Ȩ<EFBFBD><C8A8>
//Ȩ<>ޱ仯
BYTE cbLimitRoomChat; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE cbLimitGameChat; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
BYTE cbLimitPlayGame; //<2F><>ϷȨ<CFB7><C8A8>
BYTE cbLimitSendWisper; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
BYTE cbLimitLookonGame; //<2F>Թ<EFBFBD>Ȩ<EFBFBD><C8A8>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_OptionCurrent
{
DWORD dwRuleMask; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tagServerOptionInfo ServerOptionInfo; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_ServerOption
{
tagServerOptionInfo ServerOptionInfo; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
//<2F>߳<EFBFBD><DFB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>
struct CMD_GR_KickAllUser
{
TCHAR szKickMessage[LEN_USER_CHAT]; //<2F>߳<EFBFBD><DFB3><EFBFBD>ʾ
};
//<2F><>ɢ<EFBFBD><C9A2>Ϸ
struct CMD_GR_DismissGame
{
WORD wDismissTableNum; //<2F><>ɢ<EFBFBD><C9A2><EFBFBD><EFBFBD>
};
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD>ñ<EFBFBD>־
#define OSF_ROOM_CHAT 1 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define OSF_GAME_CHAT 2 //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
#define OSF_ROOM_WISPER 3 //<2F><><EFBFBD><EFBFBD>˽<EFBFBD><CBBD>
#define OSF_ENTER_TABLE 4 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ
#define OSF_ENTER_SERVER 5 //<2F><><EFBFBD>뷿<EFBFBD><EBB7BF>
#define OSF_SEND_BUGLE 12 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_OptionServer
{
BYTE cbOptionFlags; //<2F><><EFBFBD>ñ<EFBFBD>־
BYTE cbOptionValue; //<2F><><EFBFBD>ñ<EFBFBD>־
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_LimitUserChat
{
DWORD dwTargetUserID; //Ŀ<><C4BF><EFBFBD>û<EFBFBD>
BYTE cbLimitFlags; //<2F><><EFBFBD>Ʊ<EFBFBD>־
BYTE cbLimitValue; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define MDM_GR_MATCH 9 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GR_MATCH_FEE 400 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GR_MATCH_NUM 401 //<2F>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GR_LEAVE_MATCH 402 //<2F>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GR_MATCH_INFO 403 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
#define SUB_GR_MATCH_WAIT_TIP 404 //<2F>ȴ<EFBFBD><C8B4><EFBFBD>ʾ
#define SUB_GR_MATCH_RESULT 405 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GR_MATCH_STATUS 406 //<2F><><EFBFBD><EFBFBD>״̬
#define SUB_GR_MATCH_GOLDUPDATE 409 //<2F><><EFBFBD>Ҹ<EFBFBD><D2B8><EFBFBD>
#define SUB_GR_MATCH_ELIMINATE 410 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̭
#define SUB_GR_MATCH_JOIN_RESULT 411 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GR_MATCH_CONTINUE 412 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
#define SUB_GR_MATCH_PLAYERFINISH 413 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ;
////////////////<2F>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD><EFBFBD>ʱ <20><EFBFBD><EBBDAB>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>CMD_GAME.H<><48>ͬʱ<CDAC>Ķ<EFBFBD>////////////////////////////
//#define SUB_GR_MATCH_INFO_ER_SPARROWS 410 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ(2<><32><EFBFBD>齫)
struct CMD_GR_C_Match_Fee
{
DWORD dwInviteCode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
DWORD dwChannelID; //<2F><><EFBFBD><EFBFBD>ID;
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_Match_Fee
{
SCORE lMatchFee; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TCHAR szNotifyContent[128]; //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_Match_JoinResult
{
WORD wSucess;
WORD wServerID;
WORD wLength;
TCHAR szString[256];
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_Match_Num
{
DWORD dwWaitting; //<2F>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD>
DWORD dwTotal; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
struct CMD_GR_Match_Rank_Info
{
SCORE lScore; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>;
TCHAR szNickName[LEN_NICKNAME]; //<2F>û<EFBFBD><C3BB>dz<EFBFBD>;
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
struct CMD_GR_Match_Info
{
WORD wTotalCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
WORD wGameCount; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
WORD wRank; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>;
WORD wRankSize; //<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>size;
CMD_GR_Match_Rank_Info rankInfo[20]; //<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>;
};
//<2F><>ʾ<EFBFBD><CABE>Ϣ
struct CMD_GR_Match_Wait_Tip
{
BYTE cbScoreMultiple; //<2F><><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>;
SCORE lScore; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
WORD wRank; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
WORD wCurTableRank; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wUserCount; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
WORD wCurGameCount; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
WORD wGameCount; //<2F>ܹ<EFBFBD><DCB9><EFBFBD><EFBFBD><EFBFBD>
WORD wPlayingTable; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
TCHAR szMatchName[LEN_SERVER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_MatchResult
{
SCORE lGold; //<2F><><EFBFBD>ҽ<EFBFBD><D2BD><EFBFBD>
DWORD dwIngot; //Ԫ<><D4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwExperience; //<2F><><EFBFBD><EFBFBD><E9BDB1>
SCORE lInsureScore; //<2F><><EFBFBD><EFBFBD>;
TCHAR szDescribe[256]; //<2F>ý<EFBFBD><C3BD><EFBFBD><EFBFBD><EFBFBD>
};
#define MAX_MATCH_DESC 4 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD>Ҹ<EFBFBD><D2B8><EFBFBD>
struct CMD_GR_MatchGoldUpdate
{
SCORE lCurrGold; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
SCORE lCurrIngot; //<2F><>ǰԪ<C7B0><D4AA>
DWORD dwCurrExprience; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
SCORE lInsureSocre; //<2F><><EFBFBD><EFBFBD>;
};
struct CMD_GR_Match_PlayerFinish
{
WORD wRank; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>;
SCORE lScore; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD>;
SCORE lMaxScore; //<2F><><EFBFBD>߻<EFBFBD><DFBB><EFBFBD>;
};
//////////////////////////////////////////////////////////////////////////////////
//˽<>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD>
#define MDM_GR_PRIVATE 10 //˽<>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GR_PRIVATE_INFO 401 //˽<>˳<EFBFBD><CBB3><EFBFBD>Ϣ
#define SUB_GR_CREATE_PRIVATE 402 //<2F><><EFBFBD><EFBFBD>˽<EFBFBD>˳<EFBFBD>
#define SUB_GR_CREATE_PRIVATE_SUCESS 403 //<2F><><EFBFBD><EFBFBD>˽<EFBFBD>˳<EFBFBD><CBB3>ɹ<EFBFBD>
#define SUB_GR_JOIN_PRIVATE 404 //<2F><><EFBFBD><EFBFBD>˽<EFBFBD>˳<EFBFBD>
#define SUB_GF_PRIVATE_ROOM_INFO 405 //˽<>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
#define SUB_GR_PRIVATE_DISMISS 406 //˽<>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɢ
#define SUB_GF_GM_PRIVATE_END 407 //˽<>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><CFB7>ͳ<EFBFBD><CDB3><EFBFBD><EFBFBD>Ϣ)
#define SUB_GR_RIVATE_AGAIN 408 //<2F><><EFBFBD><EFBFBD>˽<EFBFBD>˳<EFBFBD>
#define SUB_GR_PRIVATE_DISMISS_RESULT 409 //˽<>˳<EFBFBD><CBB3><EFBFBD>ɢ<EFBFBD><C9A2><EFBFBD><EFBFBD>
#define SUB_GR_PRIVATE_HAS_CREATED 410 //˽<>˳<EFBFBD><CBB3>Ѵ<EFBFBD><D1B4><EFBFBD>
#define SUB_GR_CREATE_AUTO_ROOM 411 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
#define SUB_GR_CREATE_AUTO_RESULTE 412 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
#define SUB_GR_DEL_AUTO_ROOM_INFO 413 //ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
#define SUB_GR_AUTO_USER_STATUS 414 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬;
#define SUB_GR_AUTO_USER_READY 415 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׼<EFBFBD><D7BC>״̬;
#define SUB_GF_PRIVATE_SCORE_INFO 416 //˽<>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD>Կ<EFBFBD>ʼ׼<CABC><D7BC><EFBFBD><EFBFBD>Ϣ;
struct CMD_GR_Private_Ready
{
bool bStart; // <20>Dz<EFBFBD><C7B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ;
bool bReady; // <20>Ƿ<EFBFBD>ͬ<EFBFBD>ʼ;
};
enum ReadyInfoType
{
RIT_NULL = 0, //
RIT_READY,
RIT_REFUSED,
};
// <20><><EFBFBD>Կ<EFBFBD>ʼ׼<CABC><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬;
struct CMD_GR_Private_ReadyInfo
{
WORD wChairID;
BYTE cbReady[MAX_CHAIR]; // Ĭ<><C4AC>0<EFBFBD>ȴ<EFBFBD>ѡ<EFBFBD><D1A1><31><CDAC> 2<>ܾ<EFBFBD>
CMD_GR_Private_ReadyInfo()
{
wChairID = INVALID_CHAIR;
ZeroMemory(cbReady, sizeof(BYTE)*MAX_CHAIR);
}
void reset()
{
wChairID = INVALID_CHAIR;
ZeroMemory(cbReady, sizeof(BYTE)*MAX_CHAIR);
}
};
//˽<>˳<EFBFBD><CBB3><EFBFBD>Ϣ
struct CMD_GR_Private_Info
{
WORD wKindID;
SCORE lCostGold;
BYTE bPlayCout[4]; //<2F><><EFBFBD>Ҿ<EFBFBD><D2BE><EFBFBD>
SCORE lPlayCost[4]; //<2F><><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_Create_Private
{
DWORD dwUnionCode; //<2F><><EFBFBD><EFBFBD>ID
BYTE cbUnionGoldOpen; // 1 <20><><EFBFBD>ֳ<EFBFBD>, 0<><30>ͨ;
BYTE cbGameType; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
BYTE bPlayCoutIdex; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
BYTE bGameTypeIdex; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
DWORD bGameRuleIdex; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
BYTE cbEnterRoomScoreType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
SCORE lInitEnterRoomScore; //<2F><><EFBFBD>뷿<EFBFBD><EBB7BF>ʱ<EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>;
BYTE cbBaseScore; //<2F>׷<EFBFBD>;
void StreamValue(DataStream& kData, bool bSend)
{
Stream_VALUE(dwUnionCode);
Stream_VALUE(cbUnionGoldOpen);
Stream_VALUE(cbGameType);
Stream_VALUE(bPlayCoutIdex);
Stream_VALUE(bGameTypeIdex);
Stream_VALUE(bGameRuleIdex);
Stream_VALUE(cbEnterRoomScoreType);
Stream_VALUE(lInitEnterRoomScore);
Stream_VALUE(cbBaseScore);
}
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_AutoRoomInfo
{
WORD wKindID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
DWORD dwUserID; //<2F>᳤ID;
BYTE cbGameType; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD><>˳<EFBFBD>)
BYTE bPlayCoutIdex; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>(0:8,1:16)
BYTE bGameTypeIdex; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
DWORD bGameRuleIdex; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
BYTE cbEnterRoomScoreType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
SCORE lInitEnterRoomScore; //<2F><><EFBFBD>뷿<EFBFBD><EBB7BF>ʱ<EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>;
BYTE cbBaseScore; //<2F>׷<EFBFBD>;
};
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
struct CMD_GP_DelAutoRoomInfo
{
DWORD dwIndex; //<2F>û<EFBFBD> I D
WORD wServerID;
};
//<2F><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
struct CMD_GR_AutoResulte
{
SCORE lErrorCode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TCHAR szDescribeString[128]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_AutoCreatePrivate
{
DWORD dwIndex; //ID;
DWORD dwUnionCode; //<2F><><EFBFBD><EFBFBD>ID
BYTE cbUnionGoldOpen; // 1 <20><><EFBFBD>ֳ<EFBFBD>, 0<><30>ͨ;
BYTE cbGameType; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
BYTE bPlayCoutIdex; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
BYTE bPlayCout; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
BYTE bGameTypeIdex; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
DWORD bGameRuleIdex; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
BYTE cbEnterRoomScoreType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
SCORE lInitEnterRoomScore; //<2F><><EFBFBD>뷿<EFBFBD><EBB7BF>ʱ<EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>;
BYTE cbBaseScore; //<2F>׷<EFBFBD>;
void StreamValue(DataStream& kData, bool bSend)
{
Stream_VALUE(dwIndex);
Stream_VALUE(dwUnionCode);
Stream_VALUE(cbUnionGoldOpen);
Stream_VALUE(cbGameType);
Stream_VALUE(bPlayCoutIdex);
Stream_VALUE(bGameTypeIdex);
Stream_VALUE(bGameRuleIdex);
Stream_VALUE(cbEnterRoomScoreType);
Stream_VALUE(lInitEnterRoomScore);
Stream_VALUE(cbBaseScore);
}
};
struct CMD_GR_UnionRoomList
{
WORD wServerID;
std::vector<CMD_GR_AutoCreatePrivate> kList;
CMD_GR_UnionRoomList()
{
wServerID = 0;
kList.clear();
}
CMD_GR_UnionRoomList(const CMD_GR_UnionRoomList& refInfo)
{
wServerID = refInfo.wServerID;
kList.assign(refInfo.kList.begin(), refInfo.kList.end());
}
CMD_GR_UnionRoomList& operator=(const CMD_GR_UnionRoomList& refInfo)
{
if (this == &refInfo)
{
return *this;
}
wServerID = refInfo.wServerID;
kList.assign(refInfo.kList.begin(), refInfo.kList.end());
return *this;
}
void StreamValue(DataStream& kData, bool bSend)
{
Stream_VALUE(wServerID);
StructVecotrMember(CMD_GR_AutoCreatePrivate, kList);
}
};
//<2F><><EFBFBD>¿<EFBFBD>ʼ
struct CMD_GR_Again_Private
{
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GF_Create_Private_Sucess
{
SCORE lCurSocre; //<2F><>ǰʣ<C7B0><CAA3>
DWORD dwRoomNum; //<2F><><EFBFBD><EFBFBD>ID
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GR_Join_Private
{
DWORD dwRoomNum; //<2F><><EFBFBD><EFBFBD>ID
};
////˽<>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
//struct CMD_GF_Private_Room_Info
//{
// BYTE bPlayCoutIdex; //<2F><><EFBFBD>Ҿ<EFBFBD><D2BE><EFBFBD>
// BYTE bGameTypeIdex; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
// DWORD bGameRuleIdex; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
//
// BYTE bStartGame;
// DWORD dwPlayCout; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
// DWORD dwRoomNum;
// DWORD dwCreateUserID;
// DWORD dwPlayTotal; //<2F>ܾ<EFBFBD><DCBE><EFBFBD>
//
// BYTE cbRoomType;
//
// std::vector<int> kWinLoseScore;
//
// void StreamValue(datastream& kData,bool bSend)
// {
// Stream_VALUE(bPlayCoutIdex);
// Stream_VALUE(bGameTypeIdex);
// Stream_VALUE(bGameRuleIdex);
// Stream_VALUE(bStartGame);
// Stream_VALUE(dwPlayCout);
// Stream_VALUE(dwRoomNum);
// Stream_VALUE(dwCreateUserID);
// Stream_VALUE(dwPlayTotal);
// Stream_VALUE(kWinLoseScore);
// Stream_VALUE(cbRoomType);
// }
//};
//<2F><>ɢ<EFBFBD><C9A2><EFBFBD><EFBFBD>
struct CMD_GR_Dismiss_Private
{
BYTE bDismiss; //<2F><>ɢ
};
//˽<>˳<EFBFBD><CBB3><EFBFBD>ɢ<EFBFBD><C9A2>Ϣ
struct CMD_GF_Private_Dismiss_Info
{
CMD_GF_Private_Dismiss_Info()
{
ZeroMemory(this,sizeof(CMD_GF_Private_Dismiss_Info));
}
DWORD dwDissUserCout;
DWORD dwDissChairID[MAX_CHAIR];
DWORD dwNotAgreeUserCout;
DWORD dwNotAgreeChairID[MAX_CHAIR];
};
//˽<>˳<EFBFBD><CBB3><EFBFBD>ɢ<EFBFBD><C9A2><EFBFBD><EFBFBD>
struct CMD_GF_Private_Dismiss_Result
{
bool bSuccess;
};
#define MAX_PRIVATE_ACTION 8
//˽<>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
struct CMD_GF_Private_End_Info
{
bool bNextJiang; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD>ʼ<EFBFBD><CABC>һ<EFBFBD><D2BB>
std::vector<SCORE> lPlayerMaxScore;
std::vector<SCORE> lPlayerWinLose;
std::vector<BYTE> lPlayerAction;
void StreamValue(DataStream& kData, bool bSend)
{
Stream_VALUE(bNextJiang);
Stream_VALUE(lPlayerMaxScore);
Stream_VALUE(lPlayerWinLose);
Stream_VALUE(lPlayerAction);
}
};
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define MDM_GF_FRAME 100 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GF_GAME_OPTION 1 //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
#define SUB_GF_USER_READY 2 //<2F>û<EFBFBD>׼<EFBFBD><D7BC>
#define SUB_GF_LOOKON_CONFIG 3 //<2F>Թ<EFBFBD><D4B9><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GF_USER_LOCATION 4 //<2F>û<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>Ϣ;
#define SUB_GF_PING_TIME 5 //PINGʱ<47><CAB1><EFBFBD><EFBFBD>;
#define SUB_GF_CHANGE_TABLE 6 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
#define SUB_GF_USER_START_READY 7 //<2F>û<EFBFBD><C3BB><EFBFBD>ʼ<EFBFBD><CABC>Ϸ;
#define SUB_GF_USER_NO_READY 8 //<2F>û<EFBFBD><C3BB>ܾ<EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GF_USER_CHAT 10 //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GF_USER_EXPRESSION 11 //<2F><EFBFBD><E1BBB0><EFBFBD><EFBFBD>
#define SUB_GR_TABLE_TALK 12 //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
//<2F><>Ϸ<EFBFBD><CFB7>Ϣ
#define SUB_GF_GAME_STATUS 100 //<2F><>Ϸ״̬
#define SUB_GF_GAME_SCENE 101 //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
#define SUB_GF_LOOKON_STATUS 102 //<2F>Թ<EFBFBD>״̬
#define SUB_GF_WAIT_DISTRIBUTE 103 //<2F>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD>
//ϵͳ<CFB5><CDB3>Ϣ
#define SUB_GF_SYSTEM_MESSAGE 200 //ϵͳ<CFB5><CDB3>Ϣ
#define SUB_GF_ACTION_MESSAGE 201 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
//////////////////////////////////////////////////////////////////////////////////
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
struct CMD_GF_GameOption
{
BYTE cbAllowLookon; //<2F>Թ۱<D4B9>־
DWORD dwFrameVersion; //<2F><><EFBFBD>ܰ汾
DWORD dwClientVersion; //<2F><>Ϸ<EFBFBD>
};
//<2F>Թ<EFBFBD><D4B9><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GF_LookonConfig
{
DWORD dwUserID; //<2F>û<EFBFBD><C3BB><EFBFBD>ʶ
BYTE cbAllowLookon; //<2F><><EFBFBD><EFBFBD><EFBFBD>Թ<EFBFBD>
};
//<2F>Թ<EFBFBD>״̬
struct CMD_GF_LookonStatus
{
BYTE cbAllowLookon; //<2F><><EFBFBD><EFBFBD><EFBFBD>Թ<EFBFBD>
};
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
struct CMD_GF_GameStatus
{
BYTE cbGameStatus; //<2F><>Ϸ״̬
BYTE cbAllowLookon; //<2F>Թ۱<D4B9>־
};
//<2F><>ʾ<EFBFBD><CABE>ʼ<EFBFBD><CABC>ť
struct CMD_GF_ShowStartGame
{
bool bShowStartGame;
};
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GF_C_UserChat
{
WORD wChatLength; //<2F><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
DWORD dwChatColor; //<2F><>Ϣ<EFBFBD><CFA2>ɫ
DWORD dwTargetUserID; //Ŀ<><C4BF><EFBFBD>û<EFBFBD>
TCHAR szChatString[LEN_USER_CHAT]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
};
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GF_S_UserChat
{
WORD wChatLength; //<2F><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
DWORD dwChatColor; //<2F><>Ϣ<EFBFBD><CFA2>ɫ
DWORD dwSendUserID; //<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>
DWORD dwTargetUserID; //Ŀ<><C4BF><EFBFBD>û<EFBFBD>
TCHAR szChatString[LEN_USER_CHAT]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
};
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GF_C_UserExpression
{
bool isExpression; //<2F>Ƿ<EFBFBD><C7B7>DZ<EFBFBD><C7B1><EFBFBD> true <20><><EFBFBD><EFBFBD> false <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wItemIndex; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwTargetUserID; //Ŀ<><C4BF><EFBFBD>û<EFBFBD>
};
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
struct CMD_GF_S_UserExpression
{
bool isExpression; //<2F>Ƿ<EFBFBD><C7B7>DZ<EFBFBD><C7B1><EFBFBD> true <20><><EFBFBD><EFBFBD> false <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wItemIndex; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwSendUserID; //<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>
DWORD dwTargetUserID; //Ŀ<><C4BF><EFBFBD>û<EFBFBD>
};
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>Ϣ;
struct CMD_GF_C_UserLocation
{
SCORE lAccuracy; //<2F><><EFBFBD><EFBFBD>;
SCORE lLatitude; //<2F><><EFBFBD><EFBFBD>;
SCORE lLongitude; //γ<><CEB3>;
TCHAR szAddress[LEN_DWELLING_PLACE]; //<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>;
};
struct CMD_GF_S_UserLocation
{
DWORD dwTargetUserID; //Ŀ<><C4BF><EFBFBD>û<EFBFBD>;
SCORE lAccuracy; //<2F><><EFBFBD><EFBFBD>;
SCORE lLatitude; //<2F><><EFBFBD><EFBFBD>;
SCORE lLongitude; //γ<><CEB3>;
TCHAR szAddress[LEN_DWELLING_PLACE]; //<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>;
};
//<2F><><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>;
struct CMD_GF_S_ScoreMultiple
{
DWORD dwUserID; //Ŀ<><C4BF><EFBFBD>û<EFBFBD>;
BYTE cbScoreMultiple; //<2F><><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>;
};
//PINGʱ<47><CAB1><EFBFBD><EFBFBD><EFBFBD>ṹ;
struct CMD_GF_C_PingTime
{
DWORD dwPingCount; //ping<6E><67><EFBFBD><EFBFBD>;
};
struct CMD_GF_S_PingTime
{
DWORD dwPingCount; //ping<6E><67><EFBFBD><EFBFBD>;
};
//////////////////////////////////////////////////////////////////////////////////
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
#define MDM_GF_GAME 200 //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
//////////////////////////////////////////////////////////////////////////////////
//Я<><D0AF><EFBFBD><EFBFBD>Ϣ
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
#define DTP_GR_TABLE_PASSWORD 1 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
#define DTP_GR_NICK_NAME 10 //<2F>û<EFBFBD><C3BB>dz<EFBFBD>
#define DTP_GR_GROUP_NAME 11 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DTP_GR_UNDER_WRITE 12 //<2F><><EFBFBD><EFBFBD>ǩ<EFBFBD><C7A9>
#define DTP_GR_HEAD_HTTP 13 //ͷ<><CDB7>HTTP
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
#define DTP_GR_USER_NOTE 20 //<2F>û<EFBFBD><C3BB><EFBFBD>ע
#define DTP_GR_CUSTOM_FACE 21 //<2F>Զ<EFBFBD>ͷ<EFBFBD><CDB7>
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define REQUEST_FAILURE_NORMAL 0 //<2F><><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD>
#define REQUEST_FAILURE_NOGOLD 1 //<2F><><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD>
#define REQUEST_FAILURE_NOSCORE 2 //<2F><><EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD>
#define REQUEST_FAILURE_PASSWORD 3 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//////////////////////////////////////////////////////////////////////////////////
#pragma pack()
#endif