#ifndef DATA_BASE_PACKET_HEAD_FILE
#define DATA_BASE_PACKET_HEAD_FILE

//////////////////////////////////////////////////////////////////////////////////
//ݰ

//¼
#define	DBR_GP_LOGON_GAMEID			1									//I D ¼
#define	DBR_GP_LOGON_ACCOUNTS		2									//ʺŵ¼
#define DBR_GP_REGISTER_ACCOUNTS	3									//עʺ

//˺ŷ
#define DBR_GP_MODIFY_MACHINE		10									//޸Ļ
#define DBR_GP_MODIFY_LOGON_PASS	11									//޸
#define DBR_GP_MODIFY_INSURE_PASS	12									//޸
#define DBR_GP_MODIFY_UNDER_WRITE	13									//޸ǩ
#define DBR_GP_MODIFY_INDIVIDUAL	14									//޸

//ͷ
#define DBR_GP_MODIFY_SYSTEM_FACE	20									//޸ͷ
#define DBR_GP_MODIFY_CUSTOM_FACE	21									//޸ͷ

//
#define DBR_GP_USER_SAVE_SCORE		30									//Ϸ
#define DBR_GP_USER_TAKE_SCORE		31									//ȡϷ
#define DBR_GP_USER_TRANSFER_SCORE	32									//תϷ

//ѯ
#define DBR_GP_QUERY_INDIVIDUAL		40									//ѯ
#define DBR_GP_QUERY_INSURE_INFO	41									//ѯ
#define DBR_GP_QUERY_USER_INFO	    42									//ѯû
#define DBR_GP_ALMS_INFO            43                                  //ȼý
#define DBR_MB_RECORD_INFO          44                                  //ȼý
#define DBR_MB_EXCHANGE_ROOM_CARD   45                                  //ȼý
#define DBR_MB_ROOM_CARD_INFO		46									//ͷ
#define DBR_MB_INSURE_PASSWORD_INFO 47									//
#define DBR_MB_FRAGMENT_EXCHANGE_RATE	48								//һ
#define DBR_MB_SEEK_NICKNAME		49									//ǳ
#define DBR_MB_SEEK_USER_TREASURE	60									//ҲƸ
#define DBR_MB_TASK_COMPLETED		61									//
#define DBR_MB_LOAD_USER_TASK		62									//
#define DBR_MB_ACCEPT_TASK_AWARD	63									//ȡ
#define DBR_MB_LOAD_TASK_INFO		64									//Ϣ
#define DBR_MB_LOAD_SIGN_IN_RECORD	65									//ǩ¼
#define DBR_MB_LOAD_SYSTEM_MESSAGE	66									//ϵͳϢ
#define DBR_MB_LOAD_LOGON_CONFIG	67									//
#define DBR_MB_GET_PRIVATE_RECORD	68									//¼
#define DBR_MB_RECEIVE_ALMS			69									//ȡȼý
#define DBR_MB_USER_BIND_PROMOTE	70									//ƹ

//ϵͳ
#define DBR_GP_LOAD_GAME_LIST		50									//б
#define DBR_GP_ONLINE_COUNT_INFO	51									//Ϣ

//////////////////////////////////////////////////////////////////////////////////

//ID ¼
struct DBR_GP_LogonGameID {
    //¼Ϣ
    DWORD							dwGameID;							//û I D
    TCHAR							szPassword[LEN_MD5];				//¼
    BYTE							cbNeeValidateMBCard;				//ܱУ

    //Ϣ
    DWORD							dwClientAddr;						//ӵַ
    TCHAR							szMachineID[LEN_MACHINE_ID];		//

    //Ϣ
    LPVOID							pBindParameter;						//󶨲
};

//ʺŵ¼
struct DBR_GP_LogonAccounts {
    //¼Ϣ
    TCHAR							szPassword[LEN_MD5];				//¼
    TCHAR							szAccounts[LEN_ACCOUNTS];			//¼ʺ
    BYTE							cbNeeValidateMBCard;				//ܱУ

    //Ϣ
    DWORD							dwClientAddr;						//ӵַ
    TCHAR							szMachineID[LEN_MACHINE_ID];		//

    //Ϣ
    LPVOID							pBindParameter;						//󶨲
};

//ʺע
struct DBR_GP_RegisterAccounts {
    //עϢ
    WORD							wFaceID;							//ͷʶ
    BYTE							cbGender;							//ûԱ
    TCHAR							szAccounts[LEN_ACCOUNTS];			//¼ʺ
    TCHAR							szNickName[LEN_ACCOUNTS];			//ûǳ
    TCHAR							szSpreader[LEN_ACCOUNTS];			//Ƽʺ
    TCHAR							szPassPortID[LEN_PASS_PORT_ID];		//֤
    TCHAR							szCompellation[LEN_COMPELLATION];	//ʵ

    //
    TCHAR							szLogonPass[LEN_MD5];				//¼
    TCHAR							szInsurePass[LEN_MD5];				//

    //Ϣ
    DWORD							dwClientAddr;						//ӵַ
    TCHAR							szMachineID[LEN_MACHINE_ID];		//

    //Ϣ
    LPVOID							pBindParameter;						//󶨲
};

//޸Ļ
struct DBR_GP_ModifyMachine {
    BYTE							cbBind;								//󶨱־
    DWORD							dwUserID;							//ûʶ
    DWORD							dwClientAddr;						//ӵַ
    TCHAR							szPassword[LEN_PASSWORD];			//û
    TCHAR							szMachineID[LEN_MACHINE_ID];		//
};

//޸
struct DBR_GP_ModifyLogonPass {
    DWORD							dwUserID;							//û I D
    DWORD							dwClientAddr;						//ӵַ
    TCHAR							szDesPassword[LEN_PASSWORD];		//û
    TCHAR							szScrPassword[LEN_PASSWORD];		//û
};

//޸
struct DBR_GP_ModifyInsurePass {
    DWORD							dwUserID;							//û I D
    DWORD							dwClientAddr;						//ӵַ
    TCHAR							szDesPassword[LEN_PASSWORD];		//û
    TCHAR							szScrPassword[LEN_PASSWORD];		//û
};

//޸ǩ
struct DBR_GP_ModifyUnderWrite {
    DWORD							dwUserID;							//û I D
    DWORD							dwClientAddr;						//ӵַ
    TCHAR							szPassword[LEN_PASSWORD];			//û
    TCHAR							szUnderWrite[LEN_UNDER_WRITE];		//ǩ
};

//޸ͷ
struct DBR_GP_ModifySystemFace {
    //ûϢ
    WORD							wFaceID;							//ͷʶ
    DWORD							dwUserID;							//û I D
    TCHAR							szPassword[LEN_MD5];				//¼

    //Ϣ
    DWORD							dwClientAddr;						//ӵַ
    TCHAR							szMachineID[LEN_MACHINE_ID];		//
};

//޸ͷ
struct DBR_GP_ModifyCustomFace {
    //ûϢ
    DWORD							dwUserID;							//û I D
    TCHAR							szPassword[LEN_MD5];				//¼
    DWORD							dwCustomFace[FACE_CX*FACE_CY];		//ͼƬϢ

    //Ϣ
    DWORD							dwClientAddr;						//ӵַ
    TCHAR							szMachineID[LEN_MACHINE_ID];		//
};

//޸
struct DBR_GP_ModifyIndividual {
    //֤
    DWORD							dwUserID;							//û I D
    DWORD							dwClientAddr;						//ӵַ
    TCHAR							szPassword[LEN_PASSWORD];			//û

    //ʺ
    BYTE							cbGender;							//ûԱ
    TCHAR							szNickName[LEN_NICKNAME];			//ûǳ
    TCHAR							szUnderWrite[LEN_UNDER_WRITE];		//ǩ

    //ûϢ
    TCHAR							szUserNote[LEN_USER_NOTE];			//û˵
    TCHAR							szCompellation[LEN_COMPELLATION];	//ʵ

    //绰
    TCHAR							szSeatPhone[LEN_SEAT_PHONE];		//̶绰
    TCHAR							szMobilePhone[LEN_MOBILE_PHONE];	//ƶ绰

    //ϵ
    TCHAR							szQQ[LEN_QQ];						//Q Q 
    TCHAR							szEMail[LEN_EMAIL];					//ʼ
    TCHAR							szDwellingPlace[LEN_DWELLING_PLACE];//ϵַ
};

//ѯ
struct DBR_GP_QueryIndividual {
    DWORD							dwUserID;							//û I D
    DWORD							dwClientAddr;						//ӵַ
    TCHAR							szPassword[LEN_PASSWORD];			//
};

//Ϸ
struct DBR_GP_UserSaveScore {
    DWORD							dwUserID;							//û I D
    SCORE							lSaveScore;							//Ϸ
    DWORD							dwClientAddr;						//ӵַ
    TCHAR							szMachineID[LEN_MACHINE_ID];		//
};

//ȡϷ
struct DBR_GP_UserTakeScore {
    DWORD							dwUserID;							//û I D
    SCORE							lTakeScore;							//ȡϷ
    DWORD							dwClientAddr;						//ӵַ
    TCHAR							szPassword[LEN_PASSWORD];			//
    TCHAR							szMachineID[LEN_MACHINE_ID];		//
};

//תϷ
struct DBR_GP_UserTransferScore {
    DWORD							dwUserID;							//û I D
    DWORD							dwClientAddr;						//ӵַ
    BYTE                            cbByNickName;                       //ǳ
    SCORE							lTransferScore;						//תϷ
    TCHAR							szNickName[LEN_NICKNAME];			//ûǳ
    TCHAR							szPassword[LEN_PASSWORD];			//
    TCHAR							szMachineID[LEN_MACHINE_ID];		//
};

//ѯ
struct DBR_GP_QueryInsureInfo {
    DWORD							dwUserID;							//û I D
    DWORD							dwClientAddr;						//ӵַ
    TCHAR							szPassword[LEN_PASSWORD];			//û
};

//ѯû
struct DBR_GP_QueryInsureUserInfo {
    BYTE                            cbByNickName;                       //ǳ
    TCHAR							szNickName[LEN_NICKNAME];			//Ŀû
};

//ȼý
struct DBR_GP_AlmsInfo {
    DWORD                           dwUserID;                           //ûID
    bool                            bGetAlms;                           //Ƿȡȼý
};
struct DBR_MB_RecordInfo {
    DWORD       dwUserID;
    int         nCurrRecordID;
    TCHAR		szPassword[LEN_PASSWORD];			//û
};
struct DBR_MB_ExchangeRoomCard {
    DWORD dwUserID;
    DWORD dwExchangeGameID;
    char szCardNum[LEN_PASSWORD];
};
//ͷ
struct DBR_MB_RoomCardInfo {
    DWORD		dwUserID;							//ûID
    DWORD		dwGameID;							//ϷID
    DWORD		dwRoomCardCount;					//
    DWORD		dwRedDiamondCount;					//
    TCHAR		szPassword[LEN_PASSWORD];			//û
};
//
struct DBR_MB_InsurePasswdInfo {
    DWORD		dwUserID;							//ûID
    TCHAR		szLogPasswd[LEN_PASSWORD];			//û
    TCHAR		szPassword[LEN_PASSWORD];			//
};
//һ
struct DBR_MB_FragmentExchangRate {
    DWORD		dwUserID;							//ûID
    TCHAR		szLogPasswd[LEN_PASSWORD];			//û
    WORD		wDiamondType;						//һ
};
//ǳ
struct DBR_MB_SeekNickname {
    DWORD		dwGameID;							//ϷID
};
//Ƹ
struct DBR_MB_SeekUserTreasure {
    DWORD		dwUserID;							//ûID
};
//
struct DBR_MB_TaskComplete {
    DWORD		dwUserID;							//ûID
    DWORD		dwTaskID;							//ID
    TCHAR		szPasswd[LEN_PASSWORD];			//û
};
//ǩ¼
struct DBR_MB_SignInRecord {
    DWORD		dwUserID;							//ûID
};
//
struct DBR_MB_LoadUserTask {
    DWORD		dwUserID;							//ûID
    int			dwKindID;							//Ϸ
};
//ȡ
struct DBR_MB_AcceptTaskAward {
    DWORD		dwUserID;							//ûID
    TCHAR		szLogPasswd[LEN_PASSWORD];			//û
    DWORD		dwTaskID;							//ID
};
//¼
struct DBR_MB_PrivateRecord {
    DWORD		dwOrderNumber;							//¼ID
    DWORD		dwPrivateID;
    DWORD		dwRoundCount;
};
//ȡȼý
struct DBR_MB_ReceiveAlms {
    int			nUserID;
    TCHAR		szLogPasswd[LEN_PASSWORD];			//û
};
//ƹ
struct DBR_MB_UserBindPromote {
    DWORD			dwGameID;						//ID
    DWORD			dwPromoteGameID;				//ƹԱID
};
//û
struct DBO_GP_UserTransferUserInfo {
    DWORD							dwGameID;							//û I D
    TCHAR							szNickName[LEN_NICKNAME];			//ʺǳ
};
//ϵͳϢ
struct DBR_GR_SystemMessage {
    BYTE                            cbMessageID;                        //ϢID
    BYTE							cbMessageType;						//Ϣ
    DWORD							dwTimeRate;						    //ʱƵ
    __time64_t                      tConcludeTime;                      //ʱ
    TCHAR							szSystemMessage[LEN_USER_CHAT];		//ϵͳϢ
};
//Ϣ
struct DBR_GP_OnLineCountInfo {
    WORD							wKindCount;							//Ŀ
    DWORD							dwOnLineCountSum;					//
    tagOnLineInfoKind				OnLineCountKind[MAX_KIND];			//
};

//////////////////////////////////////////////////////////////////////////////////
//Ϣ

//¼
#define DBO_GP_LOGON_SUCCESS		100									//¼ɹ
#define DBO_GP_LOGON_FAILURE		101									//¼ʧ
#define DBR_GP_VALIDATE_MBCARD		102									//¼ʧ
#define DBO_GP_WXLOGON              103                                 //΢ŵ¼


//
#define DBO_GP_USER_FACE_INFO		110									//ûͷ
#define DBO_GP_USER_INDIVIDUAL		111									//û

//
#define DBO_GP_USER_INSURE_INFO					120						//
#define DBO_GP_USER_INSURE_SUCCESS				121						//гɹ
#define DBO_GP_USER_INSURE_FAILURE				122						//ʧ
#define DBO_GP_USER_INSURE_USER_INFO			123						//û
#define DBO_GP_USER_ALMS_SUCCESS				124                     //ȼýɹ
#define DBO_GP_USER_ALMS_FAILURE				125                     //ѯʧ
#define DBO_MB_RECORD_INFO						126                     //ѯϷ¼
#define DBO_MB_EXCHANGE_ROOM_CARD				127                     //ѯϷ¼
#define DBO_MB_ROOM_CARD_INFO					128						//ѯ¼
#define DBO_MB_INSURE_PASSWORD_INFO				129						//
#define DBO_MB_FRAGMENT_EXCHANGE_RATE			140						//һ
#define DBO_MB_SEEK_NICKNAME					141						//ǳ
#define DBO_MB_SEEK_USER_TREASURE				142						//Ƹ
#define DBO_MB_TASK_COMPLETE					143						//
#define DBO_MB_LOAD_USER_TASK					144						//
#define DBO_MB_ACCEPT_TASK_AWARD				145						//ȡ
#define DBO_MB_LOAD_TASK_INFO					146						//Ϣ
#define DBO_MB_LOAD_SIGN_IN_RECORD				147						//ǩ¼
#define	DBO_MB_LOAD_SYSTEM_MESSAGE				148						//ϵͳϢ
#define DBO_MB_LOAD_LOGON_CONFIG				149						//
#define DBO_MB_RECEIVE_ALMS						150						//ȡȼý
#define DBO_MB_USER_BIND_PROMOTE				151						//ƹ
//б
#define DBO_GP_GAME_TYPE_ITEM		130									//Ϣ
#define DBO_GP_GAME_KIND_ITEM		131									//Ϣ
#define DBO_GP_GAME_NODE_ITEM		132									//ڵϢ
#define DBO_GP_GAME_PAGE_ITEM		133									//Ϣ
#define DBO_GP_GAME_LIST_RESULT		134									//ؽ

//
#define DBO_GP_OPERATE_SUCCESS		500									//ɹ
#define DBO_GP_OPERATE_FAILURE		501									//ʧ

struct DBO_MB_LogonWX {
    TCHAR							szNickName[LEN_ACCOUNTS];			//ûǳ
    char                            szHeadImgUrl[256];
	char                            szRefreshToken[256];
	char                            szUnionID[256];
	char                            szOpenID[256];
};

//¼ɹ
struct DBO_GP_LogonSuccess {
    //
    WORD							wFaceID;							//ͷʶ
    DWORD							dwUserID;							//ûʶ
    DWORD							dwGameID;							//Ϸʶ
    DWORD							dwGroupID;							//űʶ
    DWORD							dwCustomID;							//Զ
    DWORD							dwUserMedal;						//û
    DWORD							dwExperience;						//ֵ
    DWORD							dwLoveLiness;						//û
    TCHAR							szPassword[LEN_MD5];				//¼
    TCHAR							szAccounts[LEN_ACCOUNTS];			//¼ʺ
    TCHAR							szNickName[LEN_NICKNAME];			//ûǳ
    TCHAR							szGroupName[LEN_GROUP_NAME];		//

    //ûɼ
    SCORE							lUserScore;							//ûϷ
    SCORE							lUserInsure;						//û

    //û
    BYTE							cbGender;							//ûԱ
    BYTE							cbMoorMachine;						//
    TCHAR							szUnderWrite[LEN_UNDER_WRITE];		//ǩ

    //Ա
    BYTE							cbMemberOrder;						//Աȼ
    SYSTEMTIME						MemberOverDate;						//ʱ

    //Ϣ
    TCHAR							szDescribeString[128];				//Ϣ
};

//¼ʧ
struct DBO_GP_LogonFailure {
    LONG							lResultCode;						//
    TCHAR							szDescribeString[128];				//Ϣ
};

//¼ʧ
struct DBR_GP_ValidateMBCard {
    UINT							uMBCardID;						//
};

//ͷϢ
struct DBO_GP_UserFaceInfo {
    WORD							wFaceID;							//ͷʶ
    DWORD							dwCustomID;							//Զ
};

//
struct DBO_GP_UserIndividual {
    //ûϢ
    DWORD							dwUserID;							//û I D
    TCHAR							szUserNote[LEN_USER_NOTE];			//û˵
    TCHAR							szCompellation[LEN_COMPELLATION];	//ʵ

    //绰
    TCHAR							szSeatPhone[LEN_SEAT_PHONE];		//̶绰
    TCHAR							szMobilePhone[LEN_MOBILE_PHONE];	//ƶ绰

    //ϵ
    TCHAR							szQQ[LEN_QQ];						//Q Q 
    TCHAR							szEMail[LEN_EMAIL];					//ʼ
    TCHAR							szDwellingPlace[LEN_DWELLING_PLACE];//ϵַ
};

//
struct DBO_GP_UserInsureInfo {
    WORD							wRevenueTake;						//˰ձ
    WORD							wRevenueTransfer;					//˰ձ
    WORD							wServerID;							//ʶ
    SCORE							lUserScore;							//ûϷ
    SCORE							lUserInsure;						//Ϸ
    SCORE							lTransferPrerequisite;				//ת
};

//гɹ
struct DBO_GP_UserInsureSuccess {
    DWORD							dwUserID;							//û I D
    SCORE							lSourceScore;						//ԭϷ
    SCORE							lSourceInsure;						//ԭϷ
    SCORE							lInsureRevenue;						//˰
    SCORE							lVariationScore;					//Ϸұ仯
    SCORE							lVariationInsure;					//б仯
    TCHAR							szDescribeString[128];				//Ϣ
};

//ʧ
struct  DBO_GP_UserInsureFailure {
    LONG							lResultCode;						//
    TCHAR							szDescribeString[128];				//Ϣ
};

struct DBO_GP_AlmsFailure {
    LONG							lResultCode;						//
    TCHAR							szDescribeString[128];				//Ϣ
};

//ȼý
struct DBO_GP_AlmsSuccess {
    DWORD							dwUserID;							//ûID
    SCORE							lUserScore;							//ûԪ
    SCORE							lUserInsure;						//Ԫ
    INT                             nUseCount;                          //ʹô
    bool							bGetAlms;				            //Ƿȡȼý
    INT                             nMaxUseCount;                       //ÿȡȼô
    SCORE                           lAlmsScore;                         //ÿȡȼý
    SCORE							lAlmsThreshold;                     //ȡȼֵ
    TCHAR							szDescribeString[128];		//Ϣ
};

//ʧ
struct DBO_GP_OperateFailure {
    LONG							lResultCode;						//
    TCHAR							szDescribeString[128];				//Ϣ
};

//ɹ
struct DBO_GP_OperateSuccess {
    LONG							lResultCode;						//
    TCHAR							szDescribeString[128];				//ɹϢ
};

//////////////////////////////////////////////////////////////////////////////////

//Ϸ
struct DBO_GP_GameType {
    WORD							wJoinID;							//ҽ
    WORD							wSortID;							//
    WORD							wTypeID;							//
    TCHAR							szTypeName[LEN_TYPE];				//
};

//Ϸ
struct DBO_GP_GameKind {
    WORD							wTypeID;							//
    WORD							wJoinID;							//ҽ
    WORD							wSortID;							//
    WORD							wKindID;							//
    WORD							wGameID;							//ģ
    TCHAR							szKindName[LEN_KIND];				//Ϸ
    TCHAR							szProcessName[LEN_PROCESS];			//
    TCHAR                           szGameRuleURL[MAX_PATH];            //Ϸַ
    TCHAR                           szDownLoadURL[MAX_PATH];            //Ϸַ
};
struct PlayerInfo {
    DWORD   dwUserID;
    WORD    wChairID;
    TCHAR	szNickName[LEN_NICKNAME];				//Ϸ
};

struct DBO_MB_GameRecord {
    int nRecordID;//Ϸ¼ID
    WORD wKindID;//Ϸ
    WORD wServerID;//Ϸ
    char szRecordData[MAX_RECORD_BYTES];//¼
    __time64_t	tRecordTime;	//Ϸ¼ʱ
};

struct DBO_MB_ExchangeRoomCard {
    bool bSuccess;
    DOUBLE dRoomCardCount;
    TCHAR							szDescribeString[128];				//Ϣ
};
//ͽ
struct DBO_MB_RoomCardInfo {
    bool							bSuccess;
    TCHAR							szDescribeString[128];				//Ϣ
    DOUBLE							dRoomCardCount;					//
    DOUBLE							dRedDiamondCount;					//
};

//ý
struct DBO_MB_InsurePasswdInfo {
    bool							bSuccess;
    TCHAR							szDescribeString[128];				//Ϣ
};
//һ
struct DBO_MB_FragmentExchangRate {
    bool							bSuccess;
    DOUBLE							dRoomCardCount;					//
    DWORD							dwFragmentCardCount;				//
    DOUBLE							dRedDiamondCount;					//
    TCHAR							szDescribeString[128];				//Ϣ
    WORD							wDiamondType;						//һ
};
//ǳ
struct DBO_MB_SeekNickname {
    bool							bSuccess;
    TCHAR							szDescribeString[128];				//Ϣ
    TCHAR							szNickName[LEN_NICKNAME];			//Ϸ
};
//Ƹ
struct DBO_MB_SeekUserTreasure {
    bool							bSuccess;
    TCHAR							szDescribeString[128];				//Ϣ
    DOUBLE							dRoomCardCount;					//
    DOUBLE							dRedDiamondCount;					//
    DWORD							dwFragmentCardCount;				//
    SCORE							lUserScore;							//ҷ
};
//
struct DBO_MB_TaskComplete {
    bool							bSuccess;
    TCHAR							szDescribeString[128];				//Ϣ
    DWORD							dwDays;								//ǩ
    DWORD							dwNowFragmentCardCount;				//ǩ
    DWORD							dwFragmentCardCount;				//
    DWORD							dwTaskID;							//ID
};
struct UserTaskInfo {
    DWORD							dwTaskID;							//ID
    DWORD							dwFinishCount;						//ɴ
    bool							bAccept;							//ȡ־
    bool							bFinish;							//ɱ־
    time_t							tLastTime;							//ʱ
};
//Ϣ
struct DBO_MB_UserTaskInfo {
    bool							bSuccess;
    DWORD							dwTaskCount;						//
    UserTaskInfo					TaskInfo[MAX_TASK_COUNT];			//
};
struct TaskInfo {
    DWORD							dwTaskID;						//ID
    TCHAR							szTaskName[LEN_NICKNAME];		//
    WORD							wTaskType;						//
    DWORD							dwCondition;					//
    DWORD							dwAmount;						//ɴ
    WORD							wAwardType;						//
    DWORD							dwAwardCount;					//
    DWORD							dwKindID;						//Ϸ
};
//Ϣ
struct DBO_MB_TaskInfo {
    TaskInfo						taskInfo[MAX_TASK_COUNT];		//Ϣ
    DWORD							dwTaskCount;						//
};
//ǩ¼
struct tagUserSignInRecordInfo {
    WORD							wFragmentCardCounts;				//
    int								tSignInDate;						//ǩʱ
};
struct DBO_MB_SignInRecord {
    WORD							wSignInDays;						//ǩ
    WORD							wFragmentCardCounts[31];			//Ҫõ
    tagUserSignInRecordInfo			SignInRecord[31];					//ǩ¼
    WORD							wDays;								//ǩ
    WORD							wToDay;								//ǰ
    WORD							wMonth;								//ǰ·
    WORD							wDaysInMonth;						//
};
//ȡ
struct DBO_MB_AcceptTaskAward {
    bool							bSuccess;
    DWORD							dwTaskID;						//ID
    DWORD							dwAwardCount;					//
    SCORE							lScore;						//ܷ
    DWORD							dwFragmentCardCount;			//
    TCHAR							szDescribeString[128];			//Ϣ
};
//
//״̬
struct tagServerStatus {
    bool							bServerStatus;						//״̬
    TCHAR							szDescrubeString[128];				//Ϣ
};
struct DBO_MB_LoadLogonConfig {
    bool							bSuccess;
    TCHAR							cbVersion[20];					//汾
    tagServerStatus					pServerStatus;					//״̬
    bool							bAdsShow;						//浯
    TCHAR							szDescribeString[128];			//Ϣ
};
//ƹ
struct DBO_MB_UserBindPromote {
    int								nRoomCardCount;
    bool							bSuccess;
    TCHAR							szDescribeString[128];			//Ϣ
};
//Ϸڵ
struct DBO_GP_GameNode {
    WORD							wKindID;							//
    WORD							wJoinID;							//ҽ
    WORD							wSortID;							//
    WORD							wNodeID;							//ڵ
    TCHAR							szNodeName[LEN_NODE];				//ڵ
};

//
struct DBO_GP_GamePage {
    WORD							wKindID;							//
    WORD							wNodeID;							//ڵ
    WORD							wSortID;							//
    WORD							wPageID;							//
    WORD							wOperateType;						//
    TCHAR							szDisplayName[LEN_PAGE];			//ʾ
};

//ؽ
struct DBO_GP_GameListResult {
    BYTE							cbSuccess;							//ɹ־
};

//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
//ֻݰ

//¼
#define	DBR_MB_LOGON_GAMEID			500									//I D ¼
#define	DBR_MB_LOGON_ACCOUNTS		501									//ʺŵ¼
#define DBR_MB_REGISTER_ACCOUNTS	502									//עʺ
#define DBR_MB_LOGON_VISITOR		505									//ο͵¼
#define DBR_MB_LOGON_WX             506                                 //΢ŵ¼
#define DBR_MB_PRIVATE_CREATE	    503									//ⷿǷ
#define DBR_MB_PRIVATE_JOIN_CHECK	504									//ⷿǷ
#define DBR_MB_PRIVATE_BACK_ROOM	507									//ص
//¼
#define DBO_MB_LOGON_SUCCESS		600									//¼ɹ
#define DBO_MB_LOGON_FAILURE		601									//¼ʧ

#define DBO_MB_PRIVATE_CREATE_RESULT 603                                //ݿⷿ
#define DBO_MB_PRIVATE_JOIN_CHECK_RESULT	604							//ⷿǷ
#define DBO_MB_PRIVATE_BACK_ROOM_RESULT		605							//ص

#define DBO_MB_GET_PRIVATE_RECORD		606							    //
//////////////////////////////////////////////////////////////////////////////////

//ID ¼
struct DBR_MB_LogonGameID {
    //¼Ϣ
    DWORD							dwGameID;							//û I D
    TCHAR							szPassword[LEN_MD5];				//¼

    //Ϣ
    DWORD							dwClientAddr;						//ӵַ
    TCHAR							szMachineID[LEN_MACHINE_ID];		//
    TCHAR							szMobilePhone[LEN_MOBILE_PHONE];	//绰

    //Ϣ
    LPVOID							pBindParameter;						//󶨲
};

//ʺŵ¼
struct DBR_MB_LogonAccounts {
    //¼Ϣ
    TCHAR							szPassword[LEN_MD5];				//¼
    TCHAR							szAccounts[LEN_ACCOUNTS];			//¼ʺ

    //Ϣ
    DWORD							dwClientAddr;						//ӵַ
    TCHAR							szMachineID[LEN_MACHINE_ID];		//
    TCHAR							szMobilePhone[LEN_MOBILE_PHONE];	//绰

    //Ϣ
    LPVOID							pBindParameter;						//󶨲
};
//ο͵¼
struct DBR_MB_LogonVisitor {
    //bool                            bCreateNew;
    DWORD							dwClientAddr;						//ӵַ
    TCHAR							szPassword[LEN_MD5];				//¼
    TCHAR							szAccounts[LEN_ACCOUNTS];			//¼ʺ

    LPVOID							pBindParameter;						//󶨲
};
struct DBR_MB_LogonWX {
    char szOpenID[128];
    char szUnionID[128];
    TCHAR szNickName[128];
    int  nSex;
    char szProvince[128];
    char szCity[128];
    char szCountry[128];
    char szHeadImgUrl[256];
    char szPrivilege[256];
    char szAccessToken[256];
    char szRefreshToken[256];
    int nExpiresIn;
    DWORD							dwClientAddr;						//ӵַ
    LPVOID							pBindParameter;						//󶨲
};

//ʺע
struct DBR_MB_RegisterAccounts {
    //עϢ
    WORD							wFaceID;							//ͷʶ
    BYTE							cbGender;							//ûԱ
    TCHAR							szAccounts[LEN_ACCOUNTS];			//¼ʺ
    TCHAR							szNickName[LEN_ACCOUNTS];			//ûǳ

    //
    TCHAR							szLogonPass[LEN_MD5];				//¼
    TCHAR							szInsurePass[LEN_MD5];				//

    //Ϣ
    DWORD							dwClientAddr;						//ӵַ
    TCHAR							szMachineID[LEN_MACHINE_ID];		//
    TCHAR							szMobilePhone[LEN_MOBILE_PHONE];	//绰

    //Ϣ
    LPVOID							pBindParameter;						//󶨲
};

struct DBR_MB_PrivateCreate {
    int   nCreateWay;  //01AA2Ƿ
    DWORD dwUserID;
    TCHAR szPassword[LEN_MD5];				//¼
    DWORD dwServerID;
    WORD  wKindID;
    int	  nPlayerCount;
    int   nRoundCount;
    int   nPlayRule;
    int   nExtraRule;
    int   nTimes;							//
    bool  bDynamicEnter;
    bool  bAllowSameIP;
    bool  bAllowRepeat;
    char  szOtherConfig[256];
};
struct DBR_MB_PrivateJoinCheck {
    DWORD dwUserID;
    TCHAR szPassword[LEN_MD5];				//¼
    int nRoomID;
};
struct DBO_MB_PrivateJoinCheckResult {
    bool bSuccess;
    DWORD dwCreatorUserID;
    int nRoomID;
    int nServerID;
    int nCreateWay;
    LONG  lResultCode;
    TCHAR szDescribeString[128];										//Ϣ
};

struct DBO_MB_PrivateCreateResult {
    bool  bSuccess;
    LONG  lResultCode;													//
    TCHAR szDescribeString[128];										//Ϣ
    DWORD dwCreatorUserID;
    int nRoomID;
    int nCreateWay;
    DWORD dwServerID;
    WORD  wKindID;
    DOUBLE	dNeedCardCount;
    DOUBLE	dRoomCardCount;
    DOUBLE	dRedDiamondCount;
    int	  nPlayerCount;
    int   nRoundCount;
    int   nPlayRule;
    int   nExtraRule;
    int   nTimes;							//
    bool  bDynamicEnter;
    bool  bAllowSameIP;
    bool  bAllowRepeat;
    char  szOtherConfig[256];

};

struct DBO_MB_PrivateRecord {
    bool  bSuccess;
    LONG  lResultCode;
    char  szRecordData[MAX_RECORD_BYTES];
    TCHAR szNickName[6][128];
    //
    TCHAR szDescribeString[128];										//Ϣ
    DWORD dwCreatorUserID;
    int nPrivateID;
    int nRoomID;
    int nCreateWay;
    DWORD dwServerID;
    DOUBLE	dNeedCardCount;
    int	  nPlayerCount;
    int   nRoundCount;
    int   nPlayRule;
    int   nExtraRule;
    int   nTimes;							//
    bool  bDynamicEnter;
    bool  bAllowSameIP;
    char  szOtherConfig[256];

    int nFinishCount;
    int nKindID;
    int nRecordNumber;
};
//ȡȼý
struct DBO_MB_ReceiveAlms {
    bool  bSuccess;
    int	  nFragmentCardCount;
    TCHAR szDescribeString[128];										//Ϣ
};
//ص
struct DBR_MB_PrivateBackRoom {
    DWORD dwUserID;
    TCHAR szPassword[LEN_MD5];				//¼
};
//ص
struct DBO_MB_PrivateBackRoomResult {
    bool  bSuccess;
    TCHAR szDescribeString[128];										//Ϣ
    int nServerID;
};
//¼ɹ
struct DBO_MB_LogonSuccess {
    //û
    WORD							wFaceID;							//ͷʶ
    BYTE							cbGender;							//ûԱ
    DWORD							dwUserID;							//û I D
    DWORD							dwGameID;							//Ϸ I D
    DWORD							dwExperience;						//ֵ
    DWORD							dwLoveLiness;						//û
    SCORE							lUserScore;
    TCHAR							szNickName[LEN_ACCOUNTS];			//ûǳ
    DOUBLE                          dRoomCardCount;                    //
    DOUBLE                          dRedDiamondCount;						//
    DWORD                           dwFragmentCardCount;                //Ƭ
    DWORD                           dwLockServerID;
    TCHAR							szPassword[LEN_MD5];				//¼
    TCHAR							szAccounts[LEN_ACCOUNTS];			//¼ʺ
    bool                            bHaveInsurePass;
    BYTE							cbMemberOrder;						//Աȼ
    bool							bReceiveAlms;

    char                            szHeadImgUrl[256];
    char                            szRefreshToken[256];
    BYTE                            cbAccountType;
    //Ϣ
    TCHAR							szDescribeString[128];				//Ϣ
};


//¼ʧ
struct DBO_MB_LogonFailure {
    LONG							lResultCode;						//
    TCHAR							szDescribeString[128];				//Ϣ
};

//////////////////////////////////////////////////////////////////////////////////

#endif