Files
wnmj/Servers/游戏组件/诈金花/消息定义/CMD_ZhaJinHua.h

219 lines
6.0 KiB
C
Raw Normal View History

2026-02-13 14:34:15 +08:00
#ifndef CMD_ZJH_h__
#define CMD_ZJH_h__
#pragma once
//<2F><EFBFBD><EAB6A8>;
#define KIND_ID 6 //<2F><>ϷID;
#define GAME_PLAYER 5 //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
#define GAME_NAME TEXT("թ<><D5A9><EFBFBD><EFBFBD>") //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
#define EXPORT_NAME TEXT("ZJH") //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><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>;
#define MAX_COUNT 3 //<2F>˿<EFBFBD><CBBF><EFBFBD>Ŀ;
#define FULL_COUNT 52 //<2F>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>;
#define MASK_COLOR 0xF0 //<2F><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>;
#define MASK_VALUE 0x0F //<2F><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>;
//<2F><><EFBFBD><EFBFBD>;
#define CT_ERROR 0 //<2F><>Ч<EFBFBD><D0A7><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_SHUN_ZI 3 //˳<><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
#define CT_JIN_HUA 4 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
#define CT_SHUN_JIN 5 //˳<><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
#define CT_BAO_ZI 6 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
#define CT_SPECIAL 7 //235<33><35><EFBFBD><EFBFBD>;
//<2F><>Ϸ״̬;
#define GS_ZJH_FREE GAME_STATUS_FREE //<2F><><EFBFBD><EFBFBD>״̬;
#define GS_ZJH_SEND_CARD GAME_STATUS_PLAY //<2F><><EFBFBD>ƽ׶<C6BD>;
#define GS_ZJH_PLAYING (GAME_STATUS_PLAY+1) //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>״̬;
#define ST_GAMING_NULL 0 //<2F>Թ<EFBFBD>;
#define ST_GAMING_HIDDEN 1 //<2F><><EFBFBD><EFBFBD>;
#define ST_GAMING_LOOK 2 //<2F><><EFBFBD><EFBFBD>;
#define ST_GAMING_LOSE 3 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
#define ST_GAMING_GIVEUP 4 //<2F><><EFBFBD><EFBFBD>;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
#define OPERATE_NULL 0x00 //<2F><>Ч;
#define OPERATE_GIVEUP 0x01 //<2F><><EFBFBD><EFBFBD>;
#define OPERATE_LOOK 0x02 //<2F><><EFBFBD><EFBFBD>;
#define OPERATE_FOLLOW 0x04 //<2F><>ע;
#define OPERATE_ADD_CHIP 0x08 //<2F><>ע;
#define OPERATE_COMPARE_CARD 0x10 //<2F><><EFBFBD><EFBFBD>;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
#define SUB_S_GAME_START 100 //<2F><>Ϸ<EFBFBD><CFB7>ʼ;
#define SUB_S_START_CHIP 101 //<2F><>ʼ<EFBFBD><CABC>ע;
#define SUB_S_GIVE_UP 102 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע;
#define SUB_S_USER_CHIP 103 //<2F><>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>;
#define SUB_S_LOOK_CARD 104 //<2F><><EFBFBD>Ƹ<EFBFBD>ע;
#define SUB_S_COMPARE_CARD 105 //<2F><><EFBFBD>Ƹ<EFBFBD>ע;
#define SUB_S_GAME_END 106 //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
#define SUB_S_CHEAT_CARD 111 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ;
//<2F>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
#define SUB_C_SEND_OVER 1 //<2F><><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>;
#define SUB_C_USER_OPERATE 2 //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>;
#define SUB_C_MASTER_CONTROL 10 //<2F><><EFBFBD>׿<EFBFBD><D7BF><EFBFBD>;
#pragma pack(1)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD><C3B6>;
enum tagZJHGameRuleEnum
{
eZJHGameRuleCardAA = 1, // <20><><EFBFBD><EFBFBD>AA
eZJHGameRuleCompareRound1 = 1 << 1, // 1<>ֱ<EFBFBD><D6B1><EFBFBD>;
eZJHGameRuleCompareRound2 = 1 << 2, // 2<>ֱ<EFBFBD><D6B1><EFBFBD>;
eZJHGameRuleCompareRound3 = 1 << 3, // 3<>ֱ<EFBFBD><D6B1><EFBFBD>;
eZJHGameRuleOpenCardRound5 = 1 << 4, // 5<>ֿ<EFBFBD><D6BF><EFBFBD>;
eZJHGameRuleOpenCardRound10 = 1 << 5, // 10<31>ֿ<EFBFBD><D6BF><EFBFBD>;
eZJHGameRuleOpenCardRound15 = 1 << 6, // 15<31>ֿ<EFBFBD><D6BF><EFBFBD>;
eZJHGameRuleLookCardRound0 = 1 << 7, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
eZJHGameRuleLookCardRound2 = 1 << 8, // <20><>2<EFBFBD><32><EFBFBD><EFBFBD>;
eZJHGameRuleLookCardRound3 = 1 << 9, // <20><>3<EFBFBD><33><EFBFBD><EFBFBD>;
};
//<2F><>Ϸ״̬;
typedef struct CMD_S_StatusFree
{
LONG lCellScore; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
BYTE cbCurRound; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>;
BYTE cbMaxRound; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
LONG lCurChipScore; //<2F><>ǰע<C7B0><D7A2>;
LONG lMaxChipScore; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע;
WORD wOperTimeOut; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1>;
}StatusBase;
//<2F><><EFBFBD><EFBFBD>״̬;
struct CMD_S_StatusSendCard
{
StatusBase stBase; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ;
bool bSendOver; //<2F><><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>;
WORD wBankerUser; //ׯ<><D7AF><EFBFBD>û<EFBFBD>;
BYTE cbGamingStatus[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ״̬;
LONG lUserChipScore[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע;
};
//<2F><>Ϸ״̬;
struct CMD_S_StatusPlay
{
StatusBase stBase; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
WORD wBankerUser; //ׯ<><D7AF><EFBFBD>û<EFBFBD>
WORD wCurrentUser; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
DWORD dwOperateCode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE cbGamingStatus[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ״̬
BYTE cbHandCardData[MAX_COUNT]; //<2F>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>
LONG lUserChipScore[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע
};
//<2F><>Ϸ<EFBFBD><CFB7>ʼ;
struct CMD_S_GameStart
{
BYTE cbCurRound; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>;
WORD wBankerUser; //ׯ<><D7AF><EFBFBD>û<EFBFBD>;
LONG lCurChipScore; //<2F><>ǰ<EFBFBD><C7B0>ע;
BYTE cbGamingStatus[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ״̬;
LONG lUserChipScore[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע;
};
//<2F><>ʼ<EFBFBD><CABC>ע;
typedef struct CMD_S_StartChip
{
BYTE cbCurRound; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>;
WORD wCurrentUser; //<2F><>ǰ<EFBFBD>û<EFBFBD>;
DWORD dwOperateCode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
LONG lCurChipScore; //<2F><>ǰ<EFBFBD><C7B0>ע;
}ChipInfo;
//<2F>û<EFBFBD><C3BB><EFBFBD>ע;
struct CMD_S_ChipScore
{
WORD wChipUser; //<2F><>ע<EFBFBD>û<EFBFBD>;
LONG lChipScore; //<2F><>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>;
LONG lTtlChipScore; //<2F>ܵ<EFBFBD><DCB5><EFBFBD>ע;
DWORD dwOperateCode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
ChipInfo stChipInfo; //<2F><>ǰ<EFBFBD><C7B0>ע<EFBFBD><D7A2>Ϣ;
};
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>;
struct CMD_S_GiveUp
{
WORD wGiveUpUser; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
ChipInfo stChipInfo; //<2F><>ǰ<EFBFBD><C7B0>ע<EFBFBD><D7A2>Ϣ;
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>;
struct CMD_S_LookCard
{
WORD wLookUser; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
BYTE cbCardData[MAX_COUNT]; //<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>;
ChipInfo stChipInfo; //<2F><>ǰ<EFBFBD><C7B0>ע<EFBFBD><D7A2>Ϣ;
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>;
struct CMD_S_CompareCard
{
bool bWin; //<2F><>Ӯ<EFBFBD><D3AE><EFBFBD><EFBFBD>;
WORD wChairID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
WORD wCompareUser; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
LONG lChipScore; //<2F><>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>;
LONG lTtlChipScore; //<2F>ܵ<EFBFBD><DCB5><EFBFBD>ע;
ChipInfo stChipInfo; //<2F><>ǰ<EFBFBD><C7B0>ע<EFBFBD><D7A2>Ϣ;
};
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
struct CMD_S_GameEnd
{
bool isPrivateEnd; //˽<>˳<EFBFBD><CBB3>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>;
BYTE cbGamingStatus[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ״̬;
BYTE cbCardType[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
BYTE cbHandCardData[GAME_PLAYER][MAX_COUNT]; //<2F>û<EFBFBD><C3BB>˿<EFBFBD>;
LONG lGameScore[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD>÷<EFBFBD>;
LONG lXiScore[GAME_PLAYER]; //ϲǮ;
};
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>;
struct CMD_C_UserOperate
{
DWORD dwCode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
LONG lData; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>;
struct CMD_S_CheatCardInfo
{
BYTE cbGamingStatus[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ״̬;
BYTE cbHandCardData[GAME_PLAYER][MAX_COUNT]; //<2F>û<EFBFBD><C3BB>˿<EFBFBD>;
};
// <20><>Ϸ<EFBFBD><CFB7>ɢ<EFBFBD>ṹ;
struct CMD_S_Private_End_Info
{
BYTE aryActiveStatus[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD>״̬;
SCORE aryWinScore[GAME_PLAYER]; //Ӯ<><D3AE>;
SCORE aryXiScore[GAME_PLAYER]; //ϲǮ;
SCORE aryTotalScore[GAME_PLAYER]; //<2F>ܵ÷<DCB5>;
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 // CMD_ZJH_h__