Files

341 lines
9.4 KiB
C
Raw Permalink Normal View History

2026-03-03 13:56:44 +08:00
#ifndef CMD_GAME_HEAD_FILE
#define CMD_GAME_HEAD_FILE
#pragma pack(1)
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
#define KIND_ID 210 //<2F><>Ϸ I D
#define GAME_NAME TEXT("<22>ܵÿ<DCB5>") //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define GAME_PLAYER 3 //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
#define GAME_PLAYER_2 2 //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
#define VERSION_SERVER PROCESS_VERSION(6,0,3) //<2F><><EFBFBD><EFBFBD><EFBFBD>
#define VERSION_CLIENT PROCESS_VERSION(6,0,3) //<2F><><EFBFBD><EFBFBD><EFBFBD>
//////////////////////////////////////////////////////////////////////////////////
//<2F><>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>
#define MAX_COUNT 16 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
#define FULL_COUNT 48 //ȫ<><C8AB><EFBFBD><EFBFBD>Ŀ
#define FULL_COUNT_15 45 //ȫ<><C8AB><EFBFBD><EFBFBD>Ŀ
#define MAX_MUSTCARD_COUT 11 //<2F>س<EFBFBD><D8B3><EFBFBD><EFBFBD><EFBFBD>Ŀ
//<2F>߼<EFBFBD><DFBC><EFBFBD>Ŀ
#define NORMAL_COUNT 16 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
#define DISPATCH_COUNT 51 //<2F>ɷ<EFBFBD><C9B7><EFBFBD>Ŀ
#define GOOD_CARD_COUTN 22 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
//<2F><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
#define MASK_COLOR 0xF0 //<2F><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
#define MASK_VALUE 0x0F //<2F><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
//<2F>߼<EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD>
#define CT_ERROR 0 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CT_SINGLE 1 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CT_DOUBLE 2 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CT_SINGLE_LINE 4 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CT_DOUBLE_LINE 5 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CT_THREE_LINE 6 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>ɻ<EFBFBD>);
#define CT_THREE_TAKE_TWO 7 //<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
#define CT_FOUR_TAKE_THREE 8 //<2F>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>
#define CT_BOMB_CARD 9 //ը<><D5A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CT_3A_BOMB_CARD 10 //ը<><D5A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
///////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define BCT_DOUBLE_JOKER 201 //˫<><CBAB>
#define BCT_THREE_2 202 //<2F><><EFBFBD><EFBFBD>
#define BCT_SINGLE_JOKER_DOUBLE_2 203 //<2F><><EFBFBD><EFBFBD>˫2
#define BCT_TONGHUASHUN 204 //ͬ<><CDAC>˳
#define BCT_SINGLE_JOKER 205 //<2F><><EFBFBD><EFBFBD>
#define BCT_DOUBLE_2 206 //˫2
#define BCT_SHUNZI 207 //˳<><CBB3>
#define BCT_ALL_LITTLE 208 //ȫС
#define BCT_NORMAL 209 //<2F><>ͨ<EFBFBD><CDA8>
//////////////////////////////////////////////////////////////////////////////////
//״̬<D7B4><CCAC><EFBFBD><EFBFBD>
#define GAME_SCENE_FREE GAME_STATUS_FREE //<2F>ȴ<EFBFBD><C8B4><EFBFBD>ʼ
#define GAME_SCENE_SEND GAME_STATUS_PLAY //<2F><><EFBFBD><EFBFBD>״̬
#define GAME_SCENE_CALL GAME_STATUS_PLAY+1 //<2F>з<EFBFBD>״̬
#define GAME_SCENE_PLAY GAME_STATUS_PLAY+2 //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD>״̬
struct CMD_S_StatusFree
{
//ʱ<><CAB1><EFBFBD><EFBFBD>Ϣ
BYTE cbTimeOutCard; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
BYTE cbTimeCallScore; //<2F>з<EFBFBD>ʱ<EFBFBD><CAB1>
BYTE cbTimeStartGame; //<2F><>ʼʱ<CABC><CAB1>
BYTE cbTimeHeadOutCard; //<2F>׳<EFBFBD>ʱ<EFBFBD><CAB1>
};
//<2F>з<EFBFBD>״̬
struct CMD_S_StatusSend
{
//ʱ<><CAB1><EFBFBD><EFBFBD>Ϣ
BYTE cbTimeOutCard; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
BYTE cbTimeCallScore; //<2F>з<EFBFBD>ʱ<EFBFBD><CAB1>
BYTE cbTimeStartGame; //<2F><>ʼʱ<CABC><CAB1>
BYTE cbTimeHeadOutCard; //<2F>׳<EFBFBD>ʱ<EFBFBD><CAB1>
DWORD dwGameRule; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
bool bActiveStatus[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD>״̬;
//<2F><>Ϸ<EFBFBD><CFB7>Ϣ
BYTE cbHandCardCount[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
BYTE cbHandCardData[NORMAL_COUNT]; //<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
};
//<2F>з<EFBFBD>״̬
struct CMD_S_StatusCall
{
//ʱ<><CAB1><EFBFBD><EFBFBD>Ϣ
BYTE cbTimeOutCard; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
BYTE cbTimeCallScore; //<2F>з<EFBFBD>ʱ<EFBFBD><CAB1>
BYTE cbTimeStartGame; //<2F><>ʼʱ<CABC><CAB1>
BYTE cbTimeHeadOutCard; //<2F>׳<EFBFBD>ʱ<EFBFBD><CAB1>
DWORD dwGameRule; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
bool bActiveStatus[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD>״̬;
//<2F>ȳ<EFBFBD><C8B3><EFBFBD><EFBFBD><EFBFBD>Ϣ;
WORD wCurrentUser; //<2F>ȳ<EFBFBD><C8B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
BYTE cbMustOutCard; //<2F>س<EFBFBD><D8B3><EFBFBD><EFBFBD><EFBFBD>Ϣ;
//<2F><>Ϸ<EFBFBD><CFB7>Ϣ
bool bScoreInfo[GAME_PLAYER]; //<2F>з<EFBFBD><D0B7><EFBFBD>Ϣ
bool bScoreActive[GAME_PLAYER]; //<2F>зֲ<D0B7><D6B2><EFBFBD>;
BYTE cbHandCardCount[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
BYTE cbHandCardData[NORMAL_COUNT]; //<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
};
//<2F><>Ϸ״̬
struct CMD_S_StatusPlay
{
//ʱ<><CAB1><EFBFBD><EFBFBD>Ϣ
BYTE cbTimeOutCard; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
BYTE cbTimeCallScore; //<2F>з<EFBFBD>ʱ<EFBFBD><CAB1>
BYTE cbTimeStartGame; //<2F><>ʼʱ<CABC><CAB1>
BYTE cbTimeHeadOutCard; //<2F>׳<EFBFBD>ʱ<EFBFBD><CAB1>
DWORD dwGameRule; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
bool bActiveStatus[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD>״̬;
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
WORD wBankerUser; //ׯ<><D7AF><EFBFBD>û<EFBFBD>
WORD wCurrentUser; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
BYTE cbMustOutCard; //<2F>س<EFBFBD><D8B3><EFBFBD><EFBFBD><EFBFBD>Ϣ;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
WORD wTurnWiner; //ʤ<><CAA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE cbTurnCardCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
BYTE cbTurnCardData[MAX_COUNT]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F>˿<EFBFBD><CBBF><EFBFBD>Ϣ
BYTE cbHandCardData[MAX_COUNT]; //<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
BYTE cbHandCardCount[GAME_PLAYER]; //<2F>˿<EFBFBD><CBBF><EFBFBD>Ŀ
};
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EEB6A8>
#define SUB_S_GAME_START 100 //<2F><>Ϸ<EFBFBD><CFB7>ʼ
#define SUB_S_CALL_SCORE 101 //<2F>û<EFBFBD><C3BB>з<EFBFBD>
#define SUB_S_BANKER_INFO 102 //ׯ<><D7AF><EFBFBD><EFBFBD>Ϣ
#define SUB_S_OUT_CARD 103 //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
#define SUB_S_PASS_CARD 104 //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
#define SUB_S_GAME_CONCLUDE 105 //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
#define SUB_S_SET_BASESCORE 106 //<2F><><EFBFBD>û<EFBFBD><C3BB><EFBFBD>
#define SUB_S_CHEAT_CARD 107 //<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
#define SUB_S_TRUSTEE 108 //<2F>й<EFBFBD>
#define SUB_S_START_SCORE 109 //<2F><>ʼ<EFBFBD>з<EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
//struct CMD_S_GameStart
//{
// WORD wStartUser; //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
// WORD wCurrentUser; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
// bool bHasDaDu; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
// BYTE cbCardCount[GAME_PLAYER]; //<2F>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
// BYTE cbCardData[NORMAL_COUNT]; //<2F>˿<EFBFBD><CBBF>б<EFBFBD>
//};
struct CMD_S_GameStart
{
DWORD dwGameRule; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
WORD wStartUser; //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
bool bActiveStatus[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD>״̬;
BYTE cbCardCount[GAME_PLAYER]; //<2F>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
BYTE cbCardData[NORMAL_COUNT]; //<2F>˿<EFBFBD><CBBF>б<EFBFBD>
};
//¼<><C2BC><EFBFBD><EFBFBD>ʼ;
struct CMD_Record_GameStart
{
DWORD dwGameRule; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
WORD wStartUser; //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
WORD wCurrentUser; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
bool bActiveStatus[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD>״̬;
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
struct CMD_S_AndroidCard
{
BYTE cbHandCard[GAME_PLAYER][NORMAL_COUNT];//<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
BYTE cbBankerCard[3];
WORD wCurrentUser ; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
struct CMD_S_CheatCard
{
WORD wCardUser[GAME_PLAYER ]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE cbUserCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE cbCardData[GAME_PLAYER ][MAX_COUNT]; //<2F>˿<EFBFBD><CBBF>б<EFBFBD>
BYTE cbCardCount[GAME_PLAYER ]; //<2F>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>
};
//<2F>û<EFBFBD><C3BB>з<EFBFBD>
struct CMD_S_CallScore
{
WORD wCallScoreUser; //<2F>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD>
bool bCurrentScore; //<2F><>ǰ<EFBFBD>з<EFBFBD>
};
//֪ͨ<CDA8><D6AA>ׯ;
struct CMD_S_SendCallScore
{
WORD wBankerUser; //ׯ<><D7AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE cbMustOutCard; //<2F>س<EFBFBD><D8B3><EFBFBD>;
};
//ׯ<><D7AF><EFBFBD><EFBFBD>Ϣ
struct CMD_S_BankerInfo
{
WORD wBankerUser; //ׯ<><D7AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wCurrentUser; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
bool bShowMustOutCard; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD>ʾ<EFBFBD>ش<EFBFBD><D8B4><EFBFBD>
BYTE cbMustOutCard; //<2F>س<EFBFBD><D8B3><EFBFBD>;
};
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
struct CMD_S_OutCard
{
BYTE cbCardCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
WORD wCurrentUser; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
WORD wOutCardUser; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool bLastCard; //<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
BYTE cbCardData[MAX_COUNT]; //<2F>˿<EFBFBD><CBBF>б<EFBFBD>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct CMD_S_PassCard
{
BYTE cbTurnOver; //һ<>ֽ<EFBFBD><D6BD><EFBFBD>
WORD wCurrentUser; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
WORD wPassCardUser; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
struct CMD_S_GameConclude
{
//<2F><><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>
LONG lCellScore; //<2F><>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD>
bool bActiveStatus[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD>״̬;
SCORE lGameScore[GAME_PLAYER]; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
SCORE lBombScore[GAME_PLAYER]; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
SCORE lAllScore[GAME_PLAYER]; //<2F>ܳɼ<DCB3>;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
BYTE bChunTian; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
BYTE bFanChunTian; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
//ը<><D5A8><EFBFBD><EFBFBD>Ϣ
BYTE cbBombCount; //ը<><D5A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE cbEachBombCount[GAME_PLAYER]; //ը<><D5A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><>Ϸ<EFBFBD><CFB7>Ϣ
BYTE cbBankerScore; //<2F>з<EFBFBD><D0B7><EFBFBD>Ŀ
BYTE cbCardCount[GAME_PLAYER]; //<2F>˿<EFBFBD><CBBF><EFBFBD>Ŀ
BYTE cbHandCardData[FULL_COUNT]; //<2F>˿<EFBFBD><CBBF>б<EFBFBD>
};
//<2F>й<EFBFBD>
struct CMD_S_TRUSTEE
{
WORD wTrusteeUser; //<2F>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD>
bool bTrustee; //<2F>йܱ<D0B9>־
};
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EEB6A8>
#define SUB_C_CALL_SCORE 1 //<2F>û<EFBFBD><C3BB>з<EFBFBD>
#define SUB_C_OUT_CARD 2 //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
#define SUB_C_PASS_CARD 3 //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
#define SUB_C_TRUSTEE 4 //<2F>û<EFBFBD><C3BB>й<EFBFBD>
//<2F>û<EFBFBD><C3BB>з<EFBFBD>
struct CMD_C_CallScore
{
bool bCallScore; //<2F>з<EFBFBD><D0B7><EFBFBD>Ŀ
};
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
struct CMD_C_OutCard
{
BYTE cbCardCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
BYTE cbCardData[MAX_COUNT]; //<2F>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>
};
//<2F>й<EFBFBD>
struct CMD_C_TRUSTEE
{
bool bTrustee; //<2F>йܱ<D0B9>־
};
//////////////////////////////////////////////////////////////////////////////////
enum ePDKRuleEnum
{
ePDKRuleEnum_HandCardCount = 1 << 1, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1<><31>16<31>ţ<EFBFBD>0<EFBFBD><30>15<31><35>;
ePDKRuleEnum_OutCardRule = 1 << 2, //<2F><><EFBFBD>ƹ<EFBFBD><C6B9><EFBFBD> 1<>Ǻ<EFBFBD><C7BA><EFBFBD>3<EFBFBD>ȳ<EFBFBD><C8B3><EFBFBD>0<EFBFBD><30><EFBFBD>׾ֺ<D7BE><D6BA><EFBFBD>3<EFBFBD><33><EFBFBD>ƣ<EFBFBD><C6A3>¾<EFBFBD>ʤ<EFBFBD>߳<EFBFBD><DFB3><EFBFBD>;
ePDKRuleEnum_MustOutCard = 1 << 3, //<2F><><EFBFBD>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD><EFBFBD>;
ePDKRuleEnum_3ABomb = 1 << 4, //3<><33>A<EFBFBD><41>ը<EFBFBD><D5A8>;
ePDKRuleEnum_FOUR_TAKE_THREE = 1 << 5, //<2F>Ĵ<EFBFBD><C4B4><EFBFBD>;
ePDKRuleEnum_DADU = 1 << 6, //<2F><><EFBFBD><EFBFBD>;
ePDKRuleEnum_Bomb_Score = 1 << 7, //ը<><D5A8>+10;
ePDKRuleEnum_PlayCount = 1 << 8, //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD> 1<><31>3<EFBFBD>ˣ<EFBFBD>0<EFBFBD><30>2<EFBFBD><32>;
};
// <20><>Ϸ<EFBFBD><CFB7>ɢ<EFBFBD>
struct CMD_S_Private_End_Info
{
WORD wMainChairID; // <20><><EFBFBD><EFBFBD>
BYTE cbFinishCout; // <20><><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD>
bool aryActiveStatus[GAME_PLAYER]; // <20><><EFBFBD><EFBFBD>״̬;
SCORE lAllScore[GAME_PLAYER]; // <20>ܳɼ<DCB3>
SCORE lDetails[GAME_PLAYER][16]; // <20>ɼ<EFBFBD><C9BC><EFBFBD>ϸ(Ŀǰ<C4BF><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>16<31><36>)
void StreamValue(DataStream& kData, bool bSend)
{
if (bSend)
{
kData.pushValue(this, sizeof(CMD_S_Private_End_Info));
}
else
{
kData.popValue(this, sizeof(CMD_S_Private_End_Info));
}
}
};
#pragma pack()
#endif