Files

228 lines
6.4 KiB
C
Raw Permalink Normal View History

2026-03-03 13:56:44 +08:00
#ifndef _CMD_ZJH_GAME_HEAD_FILE_
#define _CMD_ZJH_GAME_HEAD_FILE_
#include "Types.h"
#include "DataStream.h"
#pragma pack(1)
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
#define ZJH_KIND_ID 6 //<2F><>ϷID;
#define ZJH_GAME_PLAYER 5 //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
#define ZJH_GAME_NAME ("ը<><D5A8><EFBFBD><EFBFBD>") //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
#define ZJH_MAX_COUNT 3 //<2F>˿<EFBFBD><CBBF><EFBFBD>Ŀ;
//<2F>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>;
#define ZJH_MASK_VALUE 0x0F //<2F><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>;
#define ZJH_MASK_COLOR 0xF0 //<2F><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD>;
#define ZJH_VIEW_L1_ID 0 //<2F><>1<EFBFBD><31><EFBFBD><EFBFBD>;
#define ZJH_VIEW_L2_ID 1 //<2F><>2<EFBFBD><32><EFBFBD><EFBFBD>;
#define ZJH_VIEW_SELF_ID 2 //<2F>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>;
#define ZJH_VIEW_R3_ID 3 //<2F><>2<EFBFBD><32><EFBFBD><EFBFBD>;
#define ZJH_VIEW_R4_ID 4 //<2F><>1<EFBFBD><31><EFBFBD><EFBFBD>;
//<2F>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>;
#define ZJH_CT_ERROR 0 //<2F><>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>;
#define ZJH_CT_SINGLE 1 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
#define ZJH_CT_DOUBLE 2 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
#define ZJH_CT_SHUN_ZI 3 //˳<><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
#define ZJH_CT_JIN_HUA 4 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
#define ZJH_CT_SHUN_JIN 5 //˳<><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
#define ZJH_CT_BAO_ZI 6 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
#define ZJH_CT_SPECIAL 7 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
//<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><>Ϸ״̬;
#define ZJH_GS_FREE GAME_STATUS_FREE //<2F>ȴ<EFBFBD><C8B4><EFBFBD>ʼ;
#define ZJH_GS_SEND_CARD GAME_STATUS_PLAY //<2F><><EFBFBD>ƽ׶<C6BD>;
#define ZJH_GS_PLAYING (GAME_STATUS_PLAY + 1) //<2F><>Ϸ״̬;
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>״̬;
#define ZJH_ST_GAMING_NULL 0 //<2F>Թ<EFBFBD>;
#define ZJH_ST_GAMING_HIDDEN 1 //<2F><><EFBFBD><EFBFBD>;
#define ZJH_ST_GAMING_LOOK 2 //<2F><><EFBFBD><EFBFBD>;
#define ZJH_ST_GAMING_LOSE 3 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
#define ZJH_ST_GAMING_GIVEUP 4 //<2F><><EFBFBD><EFBFBD>;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
#define ZJH_OPERATE_NULL 0x00 //<2F><>Ч;
#define ZJH_OPERATE_GIVEUP 0x01 //<2F><><EFBFBD><EFBFBD>;
#define ZJH_OPERATE_LOOK 0x02 //<2F><><EFBFBD><EFBFBD>;
#define ZJH_OPERATE_FOLLOW 0x04 //<2F><>ע;
#define ZJH_OPERATE_ADD_CHIP 0x08 //<2F><>ע;
#define ZJH_OPERATE_COMPARE_CARD 0x10 //<2F><><EFBFBD><EFBFBD>;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
#define ZJH_SUB_S_GAME_START 100 //<2F><>Ϸ<EFBFBD><CFB7>ʼ;
#define ZJH_SUB_S_START_CHIP 101 //<2F><>ʼ<EFBFBD><CABC>ע;
#define ZJH_SUB_S_GIVE_UP 102 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע;
#define ZJH_SUB_S_USER_CHIP 103 //<2F><>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>;
#define ZJH_SUB_S_LOOK_CARD 104 //<2F><><EFBFBD>Ƹ<EFBFBD>ע;
#define ZJH_SUB_S_COMPARE_CARD 105 //<2F><><EFBFBD>Ƹ<EFBFBD>ע;
#define ZJH_SUB_S_GAME_END 106 //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
#define ZJH_SUB_S_CHEAT_CARD 111 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ;
//<2F>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
#define ZJH_SUB_C_SEND_OVER 1 //<2F><><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>;
#define ZJH_SUB_C_USER_OPERATE 2 //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>;
#define ZJH_SUB_C_MASTER_CONTROL 10 //;
//<2F><>Ϸ״̬;
typedef struct ZJH_CMD_S_StatusFree
{
int lCellScore; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
uint8 cbCurRound; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>;
uint8 cbMaxRound; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
int lCurChipScore; //<2F><>ǰע<C7B0><D7A2>;
int lMaxChipScore; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע;
uint16 wOperTimeOut; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1>;
}ZJHStatusBase;
//<2F><><EFBFBD><EFBFBD>״̬;
struct ZJH_CMD_S_StatusSendCard
{
ZJHStatusBase stBase; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ;
bool bSendOver; //<2F><><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>;
uint16 wBankerUser; //ׯ<><D7AF><EFBFBD>û<EFBFBD>;
uint8 aryGamingStatus[ZJH_GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ״̬;
int aryUserChipScore[ZJH_GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע;
};
//<2F><>Ϸ״̬;
struct ZJH_CMD_S_StatusPlay
{
ZJHStatusBase stBase; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ;
uint16 wBankerUser; //ׯ<><D7AF><EFBFBD>û<EFBFBD>;
uint16 wCurrentUser; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>;
uint32 dwOperateCode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
uint8 aryGamingStatus[ZJH_GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ״̬;
uint8 aryHandCardData[ZJH_MAX_COUNT]; //<2F>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>;
int aryUserChipScore[ZJH_GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע;
};
//<2F><>Ϸ<EFBFBD><CFB7>ʼ;
struct ZJH_CMD_S_GameStart
{
uint8 cbCurRound; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>;
uint16 wBankerUser; //ׯ<><D7AF><EFBFBD>û<EFBFBD>;
int lCurChipScore; //<2F><>ǰ<EFBFBD><C7B0>ע;
uint8 aryGamingStatus[ZJH_GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ״̬;
int aryUserChipScore[ZJH_GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע;
};
//<2F><>ʼ<EFBFBD><CABC>ע;
typedef struct ZJH_CMD_S_StartChip
{
uint8 cbCurRound; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>;
uint16 wCurrentUser; //<2F><>ǰ<EFBFBD>û<EFBFBD>;
uint32 dwOperateCode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
int lCurChipScore; //<2F><>ǰ<EFBFBD><C7B0>ע;
}ZJHChipInfo;
//<2F>û<EFBFBD><C3BB><EFBFBD>ע;
struct ZJH_CMD_S_ChipScore
{
uint16 wChipUser; //<2F><>ע<EFBFBD>û<EFBFBD>;
int lChipScore; //<2F><>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>;
int lTtlChipScore; //<2F>ܵ<EFBFBD><DCB5><EFBFBD>ע;
uint32 dwOperateCode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
ZJHChipInfo stChipInfo; //<2F><>ǰ<EFBFBD><C7B0>ע<EFBFBD><D7A2>Ϣ;
};
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>;
struct ZJH_CMD_S_GiveUp
{
uint16 wGiveUpUser; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
ZJHChipInfo stChipInfo; //<2F><>ǰ<EFBFBD><C7B0>ע<EFBFBD><D7A2>Ϣ;
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>;
struct ZJH_CMD_S_LookCard
{
uint16 wLookUser; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
uint8 aryCardData[ZJH_MAX_COUNT]; //<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>;
ZJHChipInfo stChipInfo; //<2F><>ǰ<EFBFBD><C7B0>ע<EFBFBD><D7A2>Ϣ;
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>;
struct ZJH_CMD_S_CompareCard
{
bool bWin; //<2F><>Ӯ<EFBFBD><D3AE><EFBFBD><EFBFBD>;
uint16 wChairID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
uint16 wCompareUser; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
int lChipScore; //<2F><>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>;
int lTtlChipScore; //<2F>ܵ<EFBFBD><DCB5><EFBFBD>ע;
ZJHChipInfo stChipInfo; //<2F><>ǰ<EFBFBD><C7B0>ע<EFBFBD><D7A2>Ϣ;
};
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
struct ZJH_CMD_S_GameEnd
{
bool isPrivateEnd; //˽<>˳<EFBFBD><CBB3>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>;
uint8 aryGamingStatus[ZJH_GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ״̬;
uint8 aryCardType[ZJH_GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
uint8 aryHandCardData[ZJH_GAME_PLAYER][ZJH_MAX_COUNT]; //<2F>û<EFBFBD><C3BB>˿<EFBFBD>;
int aryGameScore[ZJH_GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD>÷<EFBFBD>;
int aryXiScore[ZJH_GAME_PLAYER]; //ϲǮ;
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ;
struct ZJH_CMD_S_CheatCardInfo
{
uint8 aryGamingStatus[ZJH_GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ״̬;
uint8 aryHandCardData[ZJH_GAME_PLAYER][ZJH_MAX_COUNT]; //<2F>û<EFBFBD><C3BB>˿<EFBFBD>;
};
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>;
struct ZJH_CMD_C_UserOperate
{
uint32 dwCode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
int lData; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
};
// <20><>Ϸ<EFBFBD><CFB7>ɢ<EFBFBD>ṹ;
struct ZJH_CMD_S_Private_End_Info
{
uint8 aryActiveStatus[ZJH_GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD>״̬;
SCORE aryWinScore[ZJH_GAME_PLAYER]; //Ӯ<><D3AE>;
SCORE aryXiScore[ZJH_GAME_PLAYER]; //ϲǮ;
SCORE aryTotalScore[ZJH_GAME_PLAYER]; //<2F>ܵ÷<DCB5>;
void StreamValue(DataStream& kData, bool bSend)
{
if (bSend)
{
kData.pushValue(this, sizeof(ZJH_CMD_S_Private_End_Info));
}
else
{
kData.popValue(this, sizeof(ZJH_CMD_S_Private_End_Info));
}
}
};
//////////////////////////////////////////////////////////////////////////////////
#pragma pack()
#endif