Files
wnmj/Servers/全局定义/Struct.h

1239 lines
29 KiB
C
Raw Normal View History

2026-02-13 14:34:15 +08:00
#ifndef STRUCT_HEAD_FILE
#define STRUCT_HEAD_FILE
#include "datastream.h"
#pragma pack(1)
//////////////////////////////////////////////////////////////////////////////////
//<2F><>Ϸ<EFBFBD>б<EFBFBD>
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
struct tagGameType
{
WORD wJoinID; //<2F>ҽ<EFBFBD><D2BD><EFBFBD><EFBFBD><EFBFBD>
WORD wSortID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wTypeID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TCHAR szTypeName[LEN_TYPE]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
struct tagGameKind
{
WORD wTypeID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wJoinID; //<2F>ҽ<EFBFBD><D2BD><EFBFBD><EFBFBD><EFBFBD>
WORD wSortID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wKindID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wGameID; //ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwOnLineCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwFullCount; //<2F><>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>
TCHAR szKindName[LEN_KIND]; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
TCHAR szProcessName[LEN_PROCESS]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
//<2F><>Ϸ<EFBFBD>ڵ<EFBFBD>
struct tagGameNode
{
WORD wKindID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wJoinID; //<2F>ҽ<EFBFBD><D2BD><EFBFBD><EFBFBD><EFBFBD>
WORD wSortID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wNodeID; //<2F>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
TCHAR szNodeName[LEN_NODE]; //<2F>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct tagGamePage
{
WORD wPageID; //ҳ<><D2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wKindID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wNodeID; //<2F>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
WORD wSortID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wOperateType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TCHAR szDisplayName[LEN_PAGE]; //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
};
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
struct tagGameServer
{
WORD wKindID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wNodeID; //<2F>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
WORD wSortID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wServerID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//WORD wServerKind; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wServerType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wServerPort; //<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
SCORE lCellScore; //<2F><>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD>
SCORE lEnterScore; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwServerRule; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwOnLineCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwAndroidCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwFullCount; //<2F><>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>
TCHAR szServerAddr[32]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TCHAR szServerName[LEN_SERVER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct tagSignupMatchInfo
{
WORD wServerID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ
DWORD dwMatchID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ
DWORD dwMatchNO; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
struct tagGameMatch
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
WORD wServerID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ
DWORD dwMatchID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ
DWORD dwMatchNO; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE cbMatchType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TCHAR szMatchName[32]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
BYTE cbMemberOrder; //<2F><>Ա<EFBFBD>ȼ<EFBFBD>
BYTE cbMatchFeeType; //<2F>۷<EFBFBD><DBB7><EFBFBD><EFBFBD><EFBFBD>
SCORE lMatchFee; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SCORE lMatchEnterScore; //׼<><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
WORD wStartUserCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wMatchPlayCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wRewardCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwQuality; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
DWORD dwCycle; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
DWORD dwInviteCode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
DWORD dwChannelID; //<2F><><EFBFBD><EFBFBD>ID;
//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
SYSTEMTIME MatchStartTime; //<2F><>ʼʱ<CABC><CAB1>
SYSTEMTIME MatchEndTime; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
SYSTEMTIME SignupStartTime; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ;
SYSTEMTIME SignupEndTime; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ;
};
//<2F><>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>
struct tagAVServerOption
{
WORD wAVServerPort; //<2F><>Ƶ<EFBFBD>˿<EFBFBD>
DWORD dwAVServerAddr; //<2F><>Ƶ<EFBFBD><C6B5>ַ
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
struct tagOnLineInfoKind
{
WORD wKindID; //<2F><><EFBFBD>ͱ<EFBFBD>ʶ
DWORD dwOnLineCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
struct tagOnLineInfoServer
{
WORD wServerID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ
DWORD dwOnLineCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
//////////////////////////////////////////////////////////////////////////////////
//<2F>û<EFBFBD><C3BB><EFBFBD>Ϣ
//<2F><><EFBFBD><EFBFBD>״̬
struct tagTableStatus
{
BYTE cbTableLock; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
BYTE cbPlayStatus; //<2F><>Ϸ<EFBFBD><CFB7>־
};
//<2F>û<EFBFBD>״̬
struct tagUserStatus
{
WORD wTableID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wChairID; //<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
BYTE cbUserStatus; //<2F>û<EFBFBD>״̬
};
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
struct tagUserAttrib
{
BYTE cbCompanion; //<2F>û<EFBFBD><C3BB><EFBFBD>ϵ
};
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
struct tagUserScore
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
SCORE lScore; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
SCORE lGrade; //<2F>û<EFBFBD><C3BB>ɼ<EFBFBD>
SCORE lInsure; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
//<2F><>Ӯ<EFBFBD><D3AE>Ϣ
DWORD dwWinCount; //ʤ<><CAA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwLostCount; //ʧ<><CAA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwDrawCount; //<2F>;<EFBFBD><CDBE><EFBFBD><EFBFBD><EFBFBD>
DWORD dwFleeCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//ȫ<><C8AB><EFBFBD><EFBFBD>Ϣ
DWORD dwUserMedal; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
DWORD dwExperience; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
LONG lLoveLiness; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
};
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
struct tagMobileUserScore
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
SCORE lScore; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
//<2F><>Ӯ<EFBFBD><D3AE>Ϣ
DWORD dwWinCount; //ʤ<><CAA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwLostCount; //ʧ<><CAA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwDrawCount; //<2F>;<EFBFBD><CDBE><EFBFBD><EFBFBD><EFBFBD>
DWORD dwFleeCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//ȫ<><C8AB><EFBFBD><EFBFBD>Ϣ
DWORD dwExperience; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
};
//<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
struct tagUsePropertyInfo
{
WORD wPropertyCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
WORD dwValidNum; //<2F><>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>
DWORD dwEffectTime; //<2F><>Чʱ<D0A7><CAB1>
};
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
struct tagUserProperty
{
WORD wPropertyUseMark; //<2F><><EFBFBD>߱<EFBFBD>ʾ
tagUsePropertyInfo PropertyInfo[MAX_PT_MARK]; //ʹ<><CAB9><EFBFBD><EFBFBD>Ϣ
};
//<2F><><EFBFBD>߰<EFBFBD><DFB0><EFBFBD>
struct tagPropertyPackage
{
WORD wTrumpetCount; //С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wTyphonCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
//ʱ<><CAB1><EFBFBD><EFBFBD>Ϣ
struct tagTimeInfo
{
DWORD dwEnterTableTimer; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
DWORD dwLeaveTableTimer; //<2F><EFBFBD><EBBFAA><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
DWORD dwStartGameTimer; //<2F><>ʼ<EFBFBD><CABC>Ϸʱ<CFB7><CAB1>
DWORD dwEndGameTimer; //<2F><EFBFBD><EBBFAA>Ϸʱ<CFB7><CAB1>
};
//<2F>û<EFBFBD><C3BB><EFBFBD>Ϣ
struct tagUserInfo
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwUserID; //<2F>û<EFBFBD> I D
DWORD dwGameID; //<2F><>Ϸ I D
DWORD dwGroupID; //<2F><><EFBFBD><EFBFBD> I D
TCHAR szNickName[LEN_NICKNAME]; //<2F>û<EFBFBD><C3BB>dz<EFBFBD>
TCHAR szGroupName[LEN_GROUP_NAME]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TCHAR szUnderWrite[LEN_UNDER_WRITE]; //<2F><><EFBFBD><EFBFBD>ǩ<EFBFBD><C7A9>
TCHAR szHeadHttp[LEN_USER_NOTE]; //<2F><>¼IP
//ͷ<><CDB7><EFBFBD><EFBFBD>Ϣ
WORD wFaceID; //ͷ<><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwCustomID; //<2F>Զ<EFBFBD><D4B6><EFBFBD>ʶ
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
BYTE cbGender; //<2F>û<EFBFBD><C3BB>Ա<EFBFBD>
BYTE cbMemberOrder; //<2F><>Ա<EFBFBD>ȼ<EFBFBD>
BYTE cbMasterOrder; //<2F><><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>
//<2F>û<EFBFBD>״̬
WORD wTableID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wChairID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE cbUserStatus; //<2F>û<EFBFBD>״̬
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
SCORE lScore; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
SCORE lGrade; //<2F>û<EFBFBD><C3BB>ɼ<EFBFBD>
SCORE lInsure; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
//<2F><>Ϸ<EFBFBD><CFB7>Ϣ
BYTE cbScoreMultiple; //<2F><><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>
DWORD dwWinCount; //ʤ<><CAA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwLostCount; //ʧ<><CAA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwDrawCount; //<2F>;<EFBFBD><CDBE><EFBFBD><EFBFBD><EFBFBD>
DWORD dwFleeCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwUserMedal; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
DWORD dwExperience; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
LONG lLoveLiness; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
//ʱ<><CAB1><EFBFBD><EFBFBD>Ϣ
tagTimeInfo TimerInfo; //ʱ<><CAB1><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><C3BB><EFBFBD>Ϣ
struct tagUserInfoHead
{
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
DWORD dwGameID; //<2F><>Ϸ I D
DWORD dwUserID; //<2F>û<EFBFBD> I D
DWORD dwLogonIp; //<2F><>¼IP
//ͷ<><CDB7><EFBFBD><EFBFBD>Ϣ
WORD wFaceID; //ͷ<><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwCustomID; //<2F>Զ<EFBFBD><D4B6><EFBFBD>ʶ
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
BYTE cbGender; //<2F>û<EFBFBD><C3BB>Ա<EFBFBD>
BYTE cbMemberOrder; //<2F><>Ա<EFBFBD>ȼ<EFBFBD>
BYTE cbMasterOrder; //<2F><><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>
//<2F>û<EFBFBD>״̬
WORD wTableID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wChairID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE cbUserStatus; //<2F>û<EFBFBD>״̬
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
SCORE lScore; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
SCORE lGrade; //<2F>û<EFBFBD><C3BB>ɼ<EFBFBD>
SCORE lInsure; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
//<2F><>Ϸ<EFBFBD><CFB7>Ϣ
DWORD dwWinCount; //ʤ<><CAA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwLostCount; //ʧ<><CAA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwDrawCount; //<2F>;<EFBFBD><CDBE><EFBFBD><EFBFBD><EFBFBD>
DWORD dwFleeCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwUserMedal; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
DWORD dwExperience; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
LONG lLoveLiness; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
};
//ͷ<><CDB7><EFBFBD><EFBFBD>Ϣ
struct tagCustomFaceInfo
{
DWORD dwDataSize; //<2F><><EFBFBD>ݴ<EFBFBD>С
DWORD dwCustomFace[FACE_CX*FACE_CY]; //ͼƬ<CDBC><C6AC>Ϣ
};
//<2F>û<EFBFBD><C3BB><EFBFBD>Ϣ
struct tagUserRemoteInfo
{
//<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><C8BC><EFBFBD>Ϣ
BYTE cbGender; //<2F>û<EFBFBD><C3BB>Ա<EFBFBD>
BYTE cbMemberOrder; //<2F><>Ա<EFBFBD>ȼ<EFBFBD>
BYTE cbMasterOrder; //<2F><><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>
//λ<><CEBB><EFBFBD><EFBFBD>Ϣ
WORD wKindID; //<2F><><EFBFBD>ͱ<EFBFBD>ʶ
WORD wServerID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ
TCHAR szGameServer[LEN_SERVER]; //<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
};
//////////////////////////////////////////////////////////////////////////////////
//<2F><EFBFBD><E3B3A1><EFBFBD><EFBFBD>
struct tagGamePlaza
{
WORD wPlazaID; //<2F><EFBFBD><E3B3A1>ʶ
TCHAR szServerAddr[32]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
TCHAR szServerName[32]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct tagLevelItem
{
LONG lLevelScore; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TCHAR szLevelName[16]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
//<2F><>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>
struct tagMemberItem
{
BYTE cbMemberOrder; //<2F>ȼ<EFBFBD><C8BC><EFBFBD>ʶ
TCHAR szMemberName[16]; //<2F>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct tagMasterItem
{
BYTE cbMasterOrder; //<2F>ȼ<EFBFBD><C8BC><EFBFBD>ʶ
TCHAR szMasterName[16]; //<2F>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD>
};
//<2F>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD>
struct tagColumnItem
{
BYTE cbColumnWidth; //<2F>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD>
BYTE cbDataDescribe; //<2F>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD>
TCHAR szColumnName[16]; //<2F>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD>
};
//<2F><>ַ<EFBFBD><D6B7>Ϣ
struct tagAddressInfo
{
TCHAR szAddress[32]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
struct tagDataBaseParameter
{
WORD wDataBasePort; //<2F><><EFBFBD>ݿ<EFBFBD><DDBF>˿<EFBFBD>
TCHAR szDataBaseAddr[32]; //<2F><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD>ַ
TCHAR szDataBaseUser[32]; //<2F><><EFBFBD>ݿ<EFBFBD><DDBF>û<EFBFBD>
TCHAR szDataBasePass[32]; //<2F><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>
TCHAR szDataBaseName[32]; //<2F><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct tagServerOptionInfo
{
//<2F>ҽ<EFBFBD><D2BD><EFBFBD><EFBFBD><EFBFBD>
WORD wKindID; //<2F>ҽ<EFBFBD><D2BD><EFBFBD><EFBFBD><EFBFBD>
WORD wNodeID; //<2F>ҽӽڵ<D3BD>
WORD wSortID; //<2F><><EFBFBD>б<EFBFBD>ʶ
//˰<><CBB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wRevenueRatio; //˰<>ձ<EFBFBD><D5B1><EFBFBD>
SCORE lServiceScore; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SCORE lRestrictScore; //<2F><><EFBFBD>ƻ<EFBFBD><C6BB><EFBFBD>
SCORE lMinTableScore; //<2F><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>
SCORE lMinEnterScore; //<2F><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>
SCORE lMaxEnterScore; //<2F><><EFBFBD>߻<EFBFBD><DFBB><EFBFBD>
//<2F><>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>
BYTE cbMinEnterMember; //<2F><><EFBFBD>ͻ<EFBFBD>Ա
BYTE cbMaxEnterMember; //<2F><><EFBFBD>߻<EFBFBD>Ա
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwServerRule; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TCHAR szServerName[LEN_SERVER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
//<2F>û<EFBFBD><C3BB><EFBFBD>Ϣ
struct tagMobileUserInfoHead
{
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
DWORD dwGameID; //<2F><>Ϸ I D
DWORD dwUserID; //<2F>û<EFBFBD> I D
//ͷ<><CDB7><EFBFBD><EFBFBD>Ϣ
WORD wFaceID; //ͷ<><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwCustomID; //<2F>Զ<EFBFBD><D4B6><EFBFBD>ʶ
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
BYTE cbGender; //<2F>û<EFBFBD><C3BB>Ա<EFBFBD>
BYTE cbMemberOrder; //<2F><>Ա<EFBFBD>ȼ<EFBFBD>
//<2F>û<EFBFBD>״̬
WORD wTableID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wChairID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE cbUserStatus; //<2F>û<EFBFBD>״̬
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
SCORE lScore; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
//<2F><>Ϸ<EFBFBD><CFB7>Ϣ
DWORD dwWinCount; //ʤ<><CAA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwLostCount; //ʧ<><CAA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwDrawCount; //<2F>;<EFBFBD><CDBE><EFBFBD><EFBFBD><EFBFBD>
DWORD dwFleeCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwExperience; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>Щ<EFBFBD><D0A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
struct tagQueryInMatch
{
BYTE cbListNum; //dwServerIDLists<74><73>ID<49>ĸ<EFBFBD><C4B8><EFBFBD>;
DWORD dwUserID; //<2F>û<EFBFBD>ID;
BYTE cbServerIDStatus[32]; //<2F>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD>е<EFBFBD>״̬;
DWORD dwServerIDLists[32]; //<2F><><EFBFBD><EFBFBD>Щ<EFBFBD><D0A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
};
//////////////////////////////////////////////////////////////////////////////////
//<2F>û<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ӯ
struct tagPrivateRandRecordChild
{
DWORD dwKindID;
DWORD dwVersion;
int iRecordID;
int iRecordChildID;
std::vector<int> kScore;
SYSTEMTIME kPlayTime;
DataStream kRecordGame;
std::string kUserDefine;
tagPrivateRandRecordChild()
{
dwKindID = 0;
dwVersion = 0;
iRecordID = 0;
iRecordChildID = 0;
kScore.clear();
kRecordGame.clear();
kUserDefine.clear();
}
tagPrivateRandRecordChild(const tagPrivateRandRecordChild& refInfo)
{
dwKindID = refInfo.dwKindID;
dwVersion = refInfo.dwVersion;
iRecordID = refInfo.iRecordID;
iRecordChildID = refInfo.iRecordChildID;
kScore.assign(refInfo.kScore.begin(), refInfo.kScore.end());
kPlayTime = refInfo.kPlayTime;
kRecordGame.assign(refInfo.kRecordGame.begin(), refInfo.kRecordGame.end());
kUserDefine = refInfo.kUserDefine;
}
tagPrivateRandRecordChild& operator=(const tagPrivateRandRecordChild& refInfo)
{
if ( this == &refInfo )
{
return *this;
}
dwKindID = refInfo.dwKindID;
dwVersion = refInfo.dwVersion;
iRecordID = refInfo.iRecordID;
iRecordChildID = refInfo.iRecordChildID;
kScore.assign(refInfo.kScore.begin(), refInfo.kScore.end());
kPlayTime = refInfo.kPlayTime;
kRecordGame.assign(refInfo.kRecordGame.begin(), refInfo.kRecordGame.end());
kUserDefine = refInfo.kUserDefine;
return *this;
}
void StreamValue(DataStream& kData, bool bSend)
{
Stream_VALUE(dwKindID);
Stream_VALUE(dwVersion);
Stream_VALUE(iRecordID);
Stream_VALUE(iRecordChildID);
StructVecotr(int, kScore);
Stream_VALUE_SYSTEMTIME(kPlayTime);
Stream_VALUE(kRecordGame);
Stream_VALUE(kUserDefine);
}
};
//<2F>û<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӯ
struct tagPrivateRandTotalRecord
{
tagPrivateRandTotalRecord()
{
dwKindID = 0;
dwVersion = 0;
iRoomNum = 0;
iRecordID = 0;
cbGameCount = 0;
kScore.clear();
kUserID.clear();
kNickName.clear();
kHeadHttp.clear();
kUserDefine.clear();
}
DWORD dwKindID; // <20><>ϷID;
DWORD dwVersion; // <20><EFBFBD><E6B1BE>;
int iRoomNum; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
int iRecordID; // <20><>¼ID;
BYTE cbGameCount; // <20><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
std::vector<int> kScore; // <20><><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>;
std::vector<int> kUserID; // <20><><EFBFBD><EFBFBD>ID;
std::vector<std::string> kNickName; // <20><><EFBFBD><EFBFBD><EFBFBD>dz<EFBFBD>;
std::vector<std::string> kHeadHttp; // ΢<><CEA2>ͷ<EFBFBD><CDB7>;
SYSTEMTIME kPlayTime; // <20><>Ϸʱ<CFB7><CAB1>;
std::string kUserDefine; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ;
std::vector<tagPrivateRandRecordChild> kRecordChild;
tagPrivateRandTotalRecord(const tagPrivateRandTotalRecord& refInfo)
{
dwKindID = refInfo.dwKindID;
dwVersion = refInfo.dwVersion;
iRoomNum = refInfo.iRoomNum;
iRecordID = refInfo.iRecordID;
cbGameCount = refInfo.cbGameCount;
kScore.assign(refInfo.kScore.begin(), refInfo.kScore.end());
kUserID.assign(refInfo.kUserID.begin(), refInfo.kUserID.end());
kNickName.assign(refInfo.kNickName.begin(), refInfo.kNickName.end());
kHeadHttp.assign(refInfo.kHeadHttp.begin(), refInfo.kHeadHttp.end());
kPlayTime = refInfo.kPlayTime;
kUserDefine = refInfo.kUserDefine;
kRecordChild.assign(refInfo.kRecordChild.begin(), refInfo.kRecordChild.end());
}
tagPrivateRandTotalRecord& operator=(const tagPrivateRandTotalRecord& refInfo)
{
if ( this == &refInfo )
{
return *this;
}
dwKindID = refInfo.dwKindID;
dwVersion = refInfo.dwVersion;
iRoomNum = refInfo.iRoomNum;
iRecordID = refInfo.iRecordID;
cbGameCount = refInfo.cbGameCount;
kScore.assign(refInfo.kScore.begin(), refInfo.kScore.end());
kUserID.assign(refInfo.kUserID.begin(), refInfo.kUserID.end());
kNickName.assign(refInfo.kNickName.begin(), refInfo.kNickName.end());
kHeadHttp.assign(refInfo.kHeadHttp.begin(), refInfo.kHeadHttp.end());
kPlayTime = refInfo.kPlayTime;
kUserDefine = refInfo.kUserDefine;
kRecordChild.assign(refInfo.kRecordChild.begin(), refInfo.kRecordChild.end());
return *this;
}
void StreamValue(DataStream& kData, bool bSend)
{
Stream_VALUE(dwKindID);
Stream_VALUE(dwVersion);
Stream_VALUE(iRoomNum);
Stream_VALUE(iRecordID);
Stream_VALUE(cbGameCount);
StructVecotr(int, kScore);
StructVecotr(int, kUserID);
Stream_VALUE(kNickName);
Stream_VALUE(kHeadHttp);
Stream_VALUE_SYSTEMTIME(kPlayTime);
Stream_VALUE(kUserDefine);
StructVecotrMember(tagPrivateRandRecordChild,kRecordChild);
}
};
struct tagPrivateRandTotalRecordList
{
DWORD dwUserID;
std::vector<tagPrivateRandTotalRecord> kList;
tagPrivateRandTotalRecordList()
{
dwUserID = 0;
kList.clear();
}
tagPrivateRandTotalRecordList(const tagPrivateRandTotalRecordList& refInfo)
{
dwUserID = refInfo.dwUserID;
kList.assign(refInfo.kList.begin(), refInfo.kList.end());
}
tagPrivateRandTotalRecordList& operator=(const tagPrivateRandTotalRecordList& refInfo)
{
if ( this == &refInfo)
{
return *this;
}
dwUserID = refInfo.dwUserID;
kList.assign(refInfo.kList.begin(), refInfo.kList.end());
return *this;
}
void StreamValue(DataStream& kData, bool bSend)
{
Stream_VALUE(dwUserID);
StructVecotrMember(tagPrivateRandTotalRecord,kList);
}
};
// <20><>Ϸ¼<CFB7><C2BC>;
struct tagGameRecordPlayer
{
DWORD dwUserID; //<2F>û<EFBFBD>ID;
DWORD dwGameID; //<2F><>Ϸ<EFBFBD><CFB7>ʶ;
WORD wChairID; //<2F><>Ϸ<EFBFBD><CFB7>ʶ;
BYTE cbSex; //<2F>Ա<EFBFBD>;
SCORE lScore; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>;
std::string strHead; //ͷ<><CDB7>url;
std::string strNickName; //<2F>dz<EFBFBD>;
std::vector<BYTE> cbCardData; //<2F><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>;
tagGameRecordPlayer()
{
dwUserID = 0;
dwGameID = 0;
wChairID = 0;
cbSex = 0;
lScore = 0;
strHead.clear();
strNickName.clear();
cbCardData.clear();
}
tagGameRecordPlayer(const tagGameRecordPlayer& refInfo)
{
dwUserID = refInfo.dwUserID;
dwGameID = refInfo.dwGameID;
wChairID = refInfo.wChairID;
cbSex = refInfo.cbSex;
lScore = refInfo.lScore;
strHead = refInfo.strHead;
strNickName = refInfo.strNickName;
cbCardData.assign( refInfo.cbCardData.begin(), refInfo.cbCardData.end() );
}
tagGameRecordPlayer& operator=(const tagGameRecordPlayer& refInfo)
{
if ( this == &refInfo )
{
return *this;
}
dwUserID = refInfo.dwUserID;
dwGameID = refInfo.dwGameID;
wChairID = refInfo.wChairID;
cbSex = refInfo.cbSex;
lScore = refInfo.lScore;
strHead = refInfo.strHead;
strNickName = refInfo.strNickName;
cbCardData.assign(refInfo.cbCardData.begin(), refInfo.cbCardData.end());
return *this;
}
void StreamValue(DataStream& kData, bool bSend)
{
Stream_VALUE(dwUserID);
Stream_VALUE(dwGameID);
Stream_VALUE(wChairID);
Stream_VALUE(cbSex);
Stream_VALUE(lScore);
Stream_VALUE(strHead);
Stream_VALUE(strNickName);
Stream_VALUE(cbCardData);
}
};
struct tagGameRecordOperateResult
{
WORD wSubCmdID; //<2F><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>;
DataStream subMessageData; //<2F><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>;
tagGameRecordOperateResult()
{
wSubCmdID = 0;
subMessageData.clear();
}
tagGameRecordOperateResult(const tagGameRecordOperateResult& refInfo)
{
wSubCmdID = refInfo.wSubCmdID;
subMessageData.assign(refInfo.subMessageData.begin(), refInfo.subMessageData.end());
}
tagGameRecordOperateResult& operator=(const tagGameRecordOperateResult& refInfo)
{
if ( this == &refInfo )
{
return *this;
}
wSubCmdID = refInfo.wSubCmdID;
subMessageData.assign(refInfo.subMessageData.begin(), refInfo.subMessageData.end());
return *this;
}
void StreamValue(DataStream& kData, bool bSend)
{
Stream_VALUE(wSubCmdID);
Stream_VALUE(subMessageData);
}
};
//˽<>˳<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 dwUnionCode;
DWORD dwPlayTotal; //<2F>ܾ<EFBFBD><DCBE><EFBFBD>
DWORD dwPlayCost; // <20><><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>
BYTE cbRoomType;
// <20><><EFBFBD><EFBFBD><E1BFAA><EFBFBD><EFBFBD><EFBFBD>ֳ<EFBFBD>;
BYTE cbUnionGoldOpen; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֳ<EFBFBD>
SCORE lScoreMultiple; //<2F><><EFBFBD><EFBFBD>
SCORE lGameGold; //Ӷ<><D3B6>
BYTE cbBaseScore; //<2F>׷<EFBFBD>
std::vector<int> kWinLoseScore;
CMD_GF_Private_Room_Info()
{
bPlayCoutIdex = 0;
bGameTypeIdex = 0;
bGameRuleIdex = 0;
bStartGame = 0;
dwPlayCout = 0;
dwRoomNum = 0;
dwCreateUserID = 0;
dwPlayTotal = 0;
dwPlayCost = 0;
cbRoomType = 0;
cbUnionGoldOpen = 0;
lScoreMultiple = 0;
lGameGold = 0;
cbBaseScore = 0;
kWinLoseScore.clear();
}
CMD_GF_Private_Room_Info(const CMD_GF_Private_Room_Info& refInfo)
{
bPlayCoutIdex = refInfo.bPlayCoutIdex;
bGameTypeIdex = refInfo.bGameTypeIdex;
bGameRuleIdex = refInfo.bGameRuleIdex;
bStartGame = refInfo.bStartGame;
dwPlayCout = refInfo.dwPlayCout;
dwRoomNum = refInfo.dwRoomNum;
dwCreateUserID = refInfo.dwCreateUserID;
dwPlayTotal = refInfo.dwPlayTotal;
dwPlayCost = refInfo.dwPlayCost;
cbRoomType = refInfo.cbRoomType;
cbUnionGoldOpen = refInfo.cbUnionGoldOpen;
lScoreMultiple = refInfo.lScoreMultiple;
lGameGold = refInfo.lGameGold;
cbBaseScore = refInfo.cbBaseScore;
kWinLoseScore.assign(refInfo.kWinLoseScore.begin(), refInfo.kWinLoseScore.end());
}
CMD_GF_Private_Room_Info& operator=(const CMD_GF_Private_Room_Info& refInfo)
{
if ( this == &refInfo)
{
return *this;
}
bPlayCoutIdex = refInfo.bPlayCoutIdex;
bGameTypeIdex = refInfo.bGameTypeIdex;
bGameRuleIdex = refInfo.bGameRuleIdex;
bStartGame = refInfo.bStartGame;
dwPlayCout = refInfo.dwPlayCout;
dwRoomNum = refInfo.dwRoomNum;
dwCreateUserID = refInfo.dwCreateUserID;
dwPlayTotal = refInfo.dwPlayTotal;
dwPlayCost = refInfo.dwPlayCost;
cbRoomType = refInfo.cbRoomType;
cbUnionGoldOpen = refInfo.cbUnionGoldOpen;
lScoreMultiple = refInfo.lScoreMultiple;
lGameGold = refInfo.lGameGold;
cbBaseScore = refInfo.cbBaseScore;
kWinLoseScore.assign(refInfo.kWinLoseScore.begin(), refInfo.kWinLoseScore.end());
return *this;
}
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(dwPlayCost);
Stream_VALUE(cbRoomType);
Stream_VALUE(cbUnionGoldOpen);
Stream_VALUE(lScoreMultiple);
Stream_VALUE(lGameGold);
Stream_VALUE(cbBaseScore);
StructVecotr(int, kWinLoseScore);
}
};
//<2F><><EFBFBD>ֳ<EFBFBD><D6B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
struct CMD_GF_Private_Score_Info
{
BYTE cbPlayerCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
std::vector<SCORE> kScoreInfoArray; //<2F><><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD>
CMD_GF_Private_Score_Info()
{
cbPlayerCount = 0;
kScoreInfoArray.clear();
}
CMD_GF_Private_Score_Info(const CMD_GF_Private_Score_Info& refInfo)
{
cbPlayerCount = refInfo.cbPlayerCount;
kScoreInfoArray.assign(refInfo.kScoreInfoArray.begin(), refInfo.kScoreInfoArray.end());
}
CMD_GF_Private_Score_Info& operator=(const CMD_GF_Private_Score_Info& refInfo)
{
if (this == &refInfo)
{
return *this;
}
cbPlayerCount = refInfo.cbPlayerCount;
kScoreInfoArray.assign(refInfo.kScoreInfoArray.begin(), refInfo.kScoreInfoArray.end());
return *this;
}
void StreamValue(DataStream& kData, bool bSend)
{
Stream_VALUE(cbPlayerCount);
StructVecotr(SCORE, kScoreInfoArray);
}
};
struct tagGameRecord
{
WORD wBankerUser; //ׯ<><D7AF><EFBFBD>û<EFBFBD>;
WORD wEastUser; //<2F>״ζ<D7B4><CEB6><EFBFBD>;
CMD_GF_Private_Room_Info roomInfo; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ;
std::vector<tagGameRecordPlayer> playersVec; //ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD>ҵĻ<D2B5><C4BB><EFBFBD><EFBFBD><EFBFBD>Ϣ;
std::vector<tagGameRecordOperateResult> actionVec; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>;
tagGameRecord()
{
wBankerUser = 0;
wEastUser = 0;
playersVec.clear();
actionVec.clear();
}
tagGameRecord(const tagGameRecord& refGameRecord)
{
wBankerUser = refGameRecord.wBankerUser;
wEastUser = refGameRecord.wEastUser;
roomInfo = refGameRecord.roomInfo;
playersVec.assign(refGameRecord.playersVec.begin(), refGameRecord.playersVec.end());
actionVec.assign(refGameRecord.actionVec.begin(), refGameRecord.actionVec.end());
}
bool StreamValue(DataStream& kData, bool bSend)
{
try
{
Stream_VALUE(wBankerUser);
Stream_VALUE(wEastUser);
roomInfo.StreamValue(kData, bSend);
StructVecotrMember(tagGameRecordPlayer, playersVec);
StructVecotrMember(tagGameRecordOperateResult, actionVec);
return true;
}
catch (...)
{
return false;
}
}
};
//<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>;
struct tagUnionItem
{
DWORD dwUserID; //<2F>᳤ID;
DWORD dwUnionCode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
BYTE cbUnionGoldOpen; //1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>ģʽ,0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
BYTE cbUnionOpen; //<2F>Ƿ<EFBFBD><C7B7>п<EFBFBD><D0BF><EFBFBD>Ȩ<EFBFBD><C8A8> 0 <20><> 1 <20><>;
SCORE lPeople; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
SCORE lUnionCard; //<2F><><EFBFBD>᷿<EFBFBD><E1B7BF>;
TCHAR szUnionName[32]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
void StreamValue(DataStream& kData, bool bSend)
{
if (bSend)
{
kData.pushValue(this, sizeof(tagUnionItem));
}
else
{
kData.popValue(this, sizeof(tagUnionItem));
}
}
};
struct tagUnionItemList
{
std::vector<tagUnionItem> kList;
tagUnionItemList()
{
kList.clear();
}
tagUnionItemList(const tagUnionItemList& refInfo)
{
kList.assign(refInfo.kList.begin(), refInfo.kList.end());
}
tagUnionItemList& operator=(const tagUnionItemList& refInfo)
{
if (this == &refInfo)
{
return *this;
}
kList.assign(refInfo.kList.begin(), refInfo.kList.end());
return *this;
}
void StreamValue(DataStream& kData, bool bSend)
{
StructVecotrMember(tagUnionItem, kList);
}
};
struct tagUnionGameItem
{
DWORD dwUnionCode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
WORD wKindID; //<2F><>ϷID;
void StreamValue(DataStream& kData, bool bSend)
{
if (bSend)
{
kData.pushValue(this, sizeof(tagUnionGameItem));
}
else
{
kData.popValue(this, sizeof(tagUnionGameItem));
}
}
};
struct tagUnionGameList
{
std::vector<tagUnionGameItem> kList;
tagUnionGameList()
{
kList.clear();
}
tagUnionGameList(const tagUnionGameList& refInfo)
{
kList.assign(refInfo.kList.begin(), refInfo.kList.end());
}
tagUnionGameList& operator=(const tagUnionGameList& refInfo)
{
if (this == &refInfo)
{
return *this;
}
kList.assign(refInfo.kList.begin(), refInfo.kList.end());
return *this;
}
void StreamValue(DataStream& kData, bool bSend)
{
StructVecotrMember(tagUnionGameItem, kList);
}
};
struct tagUnionAndGameList
{
std::vector<tagUnionItem> kUnionList;
//std::vector<tagUnionGameItem> kGameList;
tagUnionAndGameList()
{
kUnionList.clear();
//kGameList.clear();
}
tagUnionAndGameList(const tagUnionAndGameList& refInfo)
{
kUnionList.assign(refInfo.kUnionList.begin(), refInfo.kUnionList.end());
//kGameList.assign(refInfo.kGameList.begin(), refInfo.kGameList.end());
}
tagUnionAndGameList& operator=(const tagUnionAndGameList& refInfo)
{
if (this == &refInfo)
{
return *this;
}
kUnionList.assign(refInfo.kUnionList.begin(), refInfo.kUnionList.end());
//kGameList.assign(refInfo.kGameList.begin(), refInfo.kGameList.end());
return *this;
}
void StreamValue(DataStream& kData, bool bSend)
{
StructVecotrMember(tagUnionItem, kUnionList);
//StructVecotrMember(tagUnionGameItem, kGameList);
}
};
//<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>;
struct tagRoomItem
{
WORD wKindID; //<2F><>ϷID;
DWORD dwUnionCode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
BYTE cbUnionGoldOpen; //1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>ģʽ,0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
BYTE cbGameOK; //<2F><><EFBFBD><EFBFBD>״̬ 1 <20><>ʼ 2 <20><>Ϸ<EFBFBD><CFB7> 8<><38><EFBFBD><EFBFBD>
DWORD dwRoomID; //<2F><><EFBFBD><EFBFBD>ID;
DWORD dwGameRule; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
BYTE cbPlayCout; //<2F><><EFBFBD><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
BYTE cbPlayCoutIdex; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
BYTE cbBaseScore; //<2F>׷<EFBFBD>;
DWORD dwUserIDs[5];
SYSTEMTIME InsertTime; //<2F><>ʼʱ<CABC><CAB1>
char szUnionName[32]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
void StreamValue(DataStream& kData, bool bSend)
{
if (bSend)
{
kData.pushValue(this, sizeof(tagRoomItem));
}
else
{
kData.popValue(this, sizeof(tagRoomItem));
}
}
};
struct tagRoomItemList
{
BYTE cbPlayRoomCount;
std::vector<tagRoomItem> kList;
tagRoomItemList()
{
cbPlayRoomCount = 0;
kList.clear();
}
tagRoomItemList(const tagRoomItemList& refInfo)
{
cbPlayRoomCount = refInfo.cbPlayRoomCount;
kList.assign(refInfo.kList.begin(), refInfo.kList.end());
}
tagRoomItemList& operator=(const tagRoomItemList& refInfo)
{
if (this == &refInfo)
{
return *this;
}
cbPlayRoomCount = refInfo.cbPlayRoomCount;
kList.assign(refInfo.kList.begin(), refInfo.kList.end());
return *this;
}
void StreamValue(DataStream& kData, bool bSend)
{
Stream_VALUE(cbPlayRoomCount);
StructVecotrMember(tagRoomItem, kList);
}
};
//<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>;
struct tagAutoRoomItem
{
DWORD dwIndex;
WORD wKindID; //<2F><>ϷID;
WORD wServerID;
DWORD dwUnionCode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
BYTE cbUnionGoldOpen; //1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>ģʽ,0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
DWORD dwGameRule; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
BYTE cbPlayCoutIdex; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
BYTE cbPlayCout; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
BYTE cbBaseScore; //<2F>׷<EFBFBD>;
char szUnionName[32]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
char szCreateTime[32]; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>;
void StreamValue(DataStream& kData, bool bSend)
{
if (bSend)
{
kData.pushValue(this, sizeof(tagAutoRoomItem));
}
else
{
kData.popValue(this, sizeof(tagAutoRoomItem));
}
}
};
struct tagAutoRoomItemList
{
std::vector<tagAutoRoomItem> kList;
tagAutoRoomItemList()
{
kList.clear();
}
tagAutoRoomItemList(const tagAutoRoomItemList& refInfo)
{
kList.assign(refInfo.kList.begin(), refInfo.kList.end());
}
tagAutoRoomItemList& operator=(const tagAutoRoomItemList& refInfo)
{
if (this == &refInfo)
{
return *this;
}
kList.assign(refInfo.kList.begin(), refInfo.kList.end());
return *this;
}
void StreamValue(DataStream& kData, bool bSend)
{
StructVecotrMember(tagAutoRoomItem, kList);
}
};
// <20><><EFBFBD><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD>׼<EFBFBD><D7BC><EFBFBD><EFBFBD>ʼ״̬;
struct tagAutoUserStatus
{
bool bStartGame; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬;
};
#pragma pack()
#endif