Files
wnmj/Servers/游戏组件/十三水/消息定义/CMD_Thirteen.h

301 lines
8.5 KiB
C
Raw Normal View History

2026-02-13 14:34:15 +08:00
#ifndef CMD_LIANGFUTOU_HEAD_FILE
#define CMD_LIANGFUTOU_HEAD_FILE
#pragma pack(1)
//////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAB6A8>;
#define KIND_ID 502 //<2F><>Ϸ ID;
#define GAME_PLAYER 4 //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
#define GAME_NAME TEXT("ʮ<><CAAE>ˮ") //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
#define GAME_GENRE (GAME_GENRE_SCORE|GAME_GENRE_GOLD|GAME_GENRE_MATCH) //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
#define HAND_CARD_COUNT 13 //<2F>˿<EFBFBD><CBBF><EFBFBD>Ŀ;
#define VALID_CHAIR(wChairID) ((wChairID)>=0 && (wChairID)<GAME_PLAYER)
#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><>Ϸ״̬;
#define GS_WK_FREE GAME_STATUS_FREE //<2F>ȴ<EFBFBD><C8B4><EFBFBD>ʼ;
#define GS_WK_SEND_CARD GAME_STATUS_PLAY //<2F><><EFBFBD><EFBFBD>;
#define GS_WK_ROB_BANKER (GAME_STATUS_PLAY+1) //<2F><>ׯ;
#define GS_WK_USER_CHIP (GAME_STATUS_PLAY+2) //<2F><>ע;
#define GS_WK_OPEN_CARD (GAME_STATUS_PLAY+3) //<2F><><EFBFBD><EFBFBD>;
#define GS_WK_COMPARE_CARD (GAME_STATUS_PLAY+4) //<2F><><EFBFBD><EFBFBD>;
//////////////////////////////////////////////////////////////////////////////////
//״̬<D7B4><CCAC><EFBFBD><EFBFBD>;
#define GAME_SCENE_PLACE_JETTON (GAME_STATUS_PLAY) //<2F>ȴ<EFBFBD><C8B4><EFBFBD>ʼ;
#define GAME_SCENE_GAME_END (GAME_STATUS_PLAY+1) //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ;
#define SUB_S_GAME_START 101 //<2F><>Ϸ<EFBFBD><CFB7>ʼ;
#define SUB_S_START_ROB 102 //<2F><>ʼ<EFBFBD><CABC>ׯ;
#define SUB_S_USER_ROB 103 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ׯ;
#define SUB_S_START_CHIP 104 //<2F><>ʼ<EFBFBD><CABC>ע;
#define SUB_S_USER_CHIP 105 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע;
#define SUB_S_SEND_LEFT_CARD 106 //<2F><><EFBFBD><EFBFBD>ʣ<EFBFBD>µ<EFBFBD><C2B5><EFBFBD>;
#define SUB_S_START_OPEN 107 //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>;
#define SUB_S_OPEN_CARD 108 //<2F><><EFBFBD><EFBFBD>̯<EFBFBD><CCAF>;
#define SUB_S_CLASSIC_CMP_CARD 109 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B7A8><EFBFBD><EFBFBD>;
#define SUB_S_BANKER_CMP_CARD 110 //<2F><>ׯ<EFBFBD><D7AF><EFBFBD><EFBFBD><E6B7A8><EFBFBD><EFBFBD>;
#define SUB_S_GAME_END 111 //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
//////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD>״̬;
enum tagHandCardStatusEnum
{
HAND_STATUS_NULL, //<2F>Թ<EFBFBD>;
HAND_STATUS_GIVEUP, //<2F><><EFBFBD><EFBFBD>;
HAND_STATUS_DISORDER, //ɢ<><C9A2>;
HAND_STATUS_SORTED, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
};
//////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD><C3B6>;
enum tagSSSGameRuleEnum
{
eSSSGameRuleCardAA = 1, //<2F><><EFBFBD><EFBFBD>AA;
eSSSGameRuleSend7Cards = 1 << 1, //<2F><>7<EFBFBD><37><EFBFBD><EFBFBD>;
eSSSGameRuleRobBanker = 1 << 2, //<2F><>ׯ;
eSSSGameRuleTurnBanker = 1 << 3, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ׯ;
eSSSGameRuleFixBanker = 1 << 4, //<2F><><EFBFBD><EFBFBD>ׯ;
eSSSGameRuleClassic = 1 << 5 //<2F><><EFBFBD><EFBFBD><EFBFBD>淨;
};
//////////////////////////////////////////////////////////////////////////
//<2F><>Ϸ״̬;
typedef struct CMD_S_StatusFree
{
WORD wRobBankerTime; //<2F><>ׯʱ<D7AF><CAB1>;
WORD wUserChipTime; //<2F><>עʱ<D7A2><CAB1>;
WORD wBuildCardTime; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>;
BYTE cbHandStatus[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD>״̬;
}tagBaseStatus;
//<2F><>ׯ״̬;
struct CMD_S_StatusRob
{
tagBaseStatus BaseStatus;
BYTE cbRobStatus[GAME_PLAYER]; //<2F><>ׯ״̬ 0:û<><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2:<3A><>;
BYTE cbCardCount; //<2F>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>;
BYTE cbHandCardData[HAND_CARD_COUNT]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
};
//<2F><>ע״̬;
struct CMD_S_StatusChip
{
tagBaseStatus BaseStatus;
WORD wBankerUser; //ׯ<><D7AF><EFBFBD>û<EFBFBD>;
BYTE cbChipStatus[GAME_PLAYER]; //<2F><>ע״̬;
LONG lUserChipScore[GAME_PLAYER]; //<2F><>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>;
BYTE cbCardCount; //<2F>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>;
BYTE cbHandCardData[HAND_CARD_COUNT]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
};
//<2F><><EFBFBD><EFBFBD>״̬;
struct CMD_S_StatusSendCard
{
tagBaseStatus BaseStatus;
WORD wBankerUser; //ׯ<><D7AF><EFBFBD>û<EFBFBD>;
bool bSendOver; //<2F><><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>;
WORD wSpecialType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
BYTE cbCardCount; //<2F>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>;
BYTE cbHandCardData[HAND_CARD_COUNT]; //<2F>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
};
//<2F><><EFBFBD><EFBFBD>״̬;
struct CMD_S_StatusOpen
{
tagBaseStatus BaseStatus;
WORD wBankerUser; //ׯ<><D7AF><EFBFBD>û<EFBFBD>;
WORD wSpecialType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
LONG lUserChipScore[GAME_PLAYER]; //<2F><>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>;
BYTE cbHandCardData[HAND_CARD_COUNT]; //<2F>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
};
//ׯ<><D7AF><EFBFBD><EFBFBD><EFBFBD>ұ<EFBFBD><D2B1><EFBFBD>;
struct CMD_S_BankerCompareCard
{
BYTE cbHandStatus[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD>״̬;
BYTE cbFrontCard[GAME_PLAYER][3]; //<2F><><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>;
BYTE cbMidCard[GAME_PLAYER][5]; //<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>;
BYTE cbBackCard[GAME_PLAYER][5]; //<2F><><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>;
WORD wHandCardType[GAME_PLAYER][3]; //ÿһ<C3BF><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
BYTE cbBankerCmpResult[GAME_PLAYER][3]; //ׯ<><D7AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ұ<EFBFBD><D2B1><EFBFBD>ÿһ<C3BF><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
BYTE cbOtherCmResult[GAME_PLAYER][3]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ׯ<EFBFBD>ұ<EFBFBD><D2B1><EFBFBD>ÿһ<C3BF><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
};
//<2F><>ׯ<EFBFBD><D7AF><EFBFBD><EFBFBD><E6B7A8><EFBFBD><EFBFBD>״̬;
struct CMD_S_StatusBankerCompare
{
WORD wRobBankerTime; //<2F><>ׯʱ<D7AF><CAB1>;
WORD wUserChipTime; //<2F><>עʱ<D7A2><CAB1>;
WORD wBuildCardTime; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>;
bool bCompareOver; //<2F><><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>;
WORD wBankerUser; //ׯ<><D7AF><EFBFBD>û<EFBFBD>;
LONG lUserChipScore[GAME_PLAYER]; //<2F><>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>;
CMD_S_BankerCompareCard CompareStatus; //<2F><><EFBFBD><EFBFBD>״̬;
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B7A8><EFBFBD><EFBFBD>;
struct CMD_S_ClassicCompareCard
{
BYTE cbHandStatus[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD>״̬;
WORD wSpecialType[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
int nSpecialCompareResult[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͱȽϽ<C8BD><CFBD><EFBFBD>;
BYTE cbFrontCard[GAME_PLAYER][3]; //<2F><><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>;
BYTE cbMidCard[GAME_PLAYER][5]; //<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>;
BYTE cbBackCard[GAME_PLAYER][5]; //<2F><><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>;
WORD wHandCardType[GAME_PLAYER][3]; //ÿһ<C3BF><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
int nCompareResult[GAME_PLAYER][3]; //ÿһ<C3BF><D2BB><EFBFBD>ȽϽ<C8BD><CFBD><EFBFBD>;
bool bDaoshui[GAME_PLAYER]; //<2F><>ˮ;
int aryShootDaoShu[GAME_PLAYER][GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>һ<EFBFBD>Ҵ<EFBFBD>ǹҪ<C7B9>ӵ<EFBFBD>ˮ<EFBFBD><CBAE>;
BYTE aryShootState[6][2]; //0ΪӮ<CEAA><D3AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,1Ϊ<31><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,ֵΪ255Ϊ<35><CEAA>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>;
BYTE cbShootCount; //<2F><><EFBFBD>Ҵ<EFBFBD>ǹ;
int cbThreeKillResult[GAME_PLAYER]; //ȫ<>ݴ<EFBFBD><DDB4>Ӽ<EFBFBD><D3BC><EFBFBD>;
WORD wAllUser; //ȫ<>ݴ<EFBFBD><DDB4>û<EFBFBD>;
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B7A8><EFBFBD><EFBFBD>״̬;
struct CMD_S_StatusClassicCompare
{
WORD wRobBankerTime; //<2F><>ׯʱ<D7AF><CAB1>;
WORD wUserChipTime; //<2F><>עʱ<D7A2><CAB1>;
WORD wBuildCardTime; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>;
bool bCompareOver; //<2F><><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>;
CMD_S_ClassicCompareCard CompareStatus; //<2F><><EFBFBD><EFBFBD>״̬;
};
//////////////////////////////////////////////////////////////////////////
//<2F><>Ϸ<EFBFBD><CFB7>ʼ;
struct CMD_S_GameStart
{
WORD wBankerChairID; //ׯ<><D7AF>ID;
WORD wSpecialType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
BYTE cbBossCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
BYTE cbCardCount; //<2F>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>;
BYTE cbHandCardData[HAND_CARD_COUNT]; //<2F>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>;
BYTE cbHandStatus[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD>״̬;
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ׯ;
struct CMD_S_UserRob
{
WORD wRobUser; //<2F><>ׯ<EFBFBD><D7AF><EFBFBD><EFBFBD>;
bool bRobResult; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD>ׯ;
};
//<2F><>ʼ<EFBFBD><CABC>ע;
struct CMD_S_StartChip
{
WORD wBankerUser; //ׯ<><D7AF><EFBFBD>û<EFBFBD>;
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע;
struct CMD_S_UserChip
{
WORD wChipUser; //<2F><>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>;
LONG lChipScore; //<2F><>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>;
};
//<2F><><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
struct CMD_S_SendLeftCard
{
BYTE cbLeftCardCount; //ʣ<><CAA3><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>;
BYTE cbLeftCardData[HAND_CARD_COUNT]; //ʣ<><CAA3><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>;
BYTE cbHandCardData[HAND_CARD_COUNT]; //<2F>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>;
};
//<2F><><EFBFBD><EFBFBD>̯<EFBFBD><CCAF>;
struct CMD_S_OpenCard
{
WORD wChairID; //̯<><CCAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
};
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
struct CMD_S_GameEnd
{
bool isPrivateEnd; //˽<>˳<EFBFBD><CBB3>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>;
BYTE cbHandStatus[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD>״̬;
SCORE lGameScore[GAME_PLAYER]; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
};
//////////////////////////////////////////////////////////////////////////
//<2F>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ;
#define SUB_C_GETBANK 301 //<2F><>ׯ<EFBFBD><D7AF><EFBFBD><EFBFBD>;
#define SUB_C_SEND_OVER 302 //<2F><><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>;
#define SUB_C_OPEN_CARD 303 //<2F><><EFBFBD><EFBFBD>̯<EFBFBD><CCAF>;
#define SUB_C_COMPARE_OVER 304 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
#define SUB_C_ROB_BANKER 305 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ׯ;
#define SUB_C_CHIP_SCORE 306 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע;
//<2F>ֶ<EFBFBD><D6B6><EFBFBD>Ϣ;
struct CMD_C_OpenCard
{
BYTE cbFrontCard[3]; //ǰ<><C7B0><EFBFBD>˿<EFBFBD>;
BYTE cbMidCard[5]; //<2F>ж<EFBFBD><D0B6>˿<EFBFBD>;
BYTE cbBackCard[5]; //<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>;
WORD wSpecialType; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
};
//<2F>û<EFBFBD><C3BB><EFBFBD>ׯ;
struct CMD_C_RobBanker
{
bool bRob; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD>ׯ;
};
//<2F>û<EFBFBD><C3BB><EFBFBD>ע;
struct CMD_C_ChipScore
{
LONG lScore; //<2F><>ע<EFBFBD><D7A2>Ŀ;
};
//////////////////////////////////////////////////////////////////////////
// <20><>Ϸ<EFBFBD><CFB7>ɢ<EFBFBD>ṹ;
struct CMD_S_Private_End_Info
{
BYTE aryActiveStatus[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD>״̬;
SCORE lUserScore[GAME_PLAYER]; //<2F><><EFBFBD>ҷ<EFBFBD><D2B7><EFBFBD>;
BYTE aryWinTimes[GAME_PLAYER]; //Ӯ<><D3AE><EFBFBD><EFBFBD>;
BYTE aryLoseTimes[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
BYTE aryShootTimes[GAME_PLAYER]; //<2F><>ǹ<EFBFBD><C7B9><EFBFBD><EFBFBD>;
BYTE aryKillAllTimes[GAME_PLAYER]; //ȫ<>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD>;
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