init
This commit is contained in:
341
Servers/游戏组件/跑的快/消息定义/CMD_Game.h
Normal file
341
Servers/游戏组件/跑的快/消息定义/CMD_Game.h
Normal file
@@ -0,0 +1,341 @@
|
||||
#ifndef CMD_GAME_HEAD_FILE
|
||||
#define CMD_GAME_HEAD_FILE
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
//服务定义
|
||||
|
||||
//游戏属性
|
||||
#define KIND_ID 210 //游戏 I D
|
||||
#define GAME_NAME TEXT("跑得快") //游戏名字
|
||||
|
||||
//组件属性
|
||||
#define GAME_PLAYER 3 //游戏人数
|
||||
#define GAME_PLAYER_2 2 //游戏人数
|
||||
#define VERSION_SERVER PROCESS_VERSION(6,0,3) //程序版本
|
||||
#define VERSION_CLIENT PROCESS_VERSION(6,0,3) //程序版本
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//数目定义
|
||||
#define MAX_COUNT 16 //最大数目
|
||||
#define FULL_COUNT 48 //全牌数目
|
||||
#define FULL_COUNT_15 45 //全牌数目
|
||||
#define MAX_MUSTCARD_COUT 11 //必出牌数目
|
||||
|
||||
//逻辑数目
|
||||
#define NORMAL_COUNT 16 //常规数目
|
||||
#define DISPATCH_COUNT 51 //派发数目
|
||||
#define GOOD_CARD_COUTN 22 //好牌数目
|
||||
|
||||
//数值掩码
|
||||
#define MASK_COLOR 0xF0 //花色掩码
|
||||
#define MASK_VALUE 0x0F //数值掩码
|
||||
|
||||
//逻辑类型
|
||||
#define CT_ERROR 0 //错误类型
|
||||
#define CT_SINGLE 1 //单牌类型
|
||||
#define CT_DOUBLE 2 //对牌类型
|
||||
#define CT_SINGLE_LINE 4 //单连类型
|
||||
#define CT_DOUBLE_LINE 5 //对连类型
|
||||
#define CT_THREE_LINE 6 //三连类型(飞机);
|
||||
#define CT_THREE_TAKE_TWO 7 //三带一对
|
||||
#define CT_FOUR_TAKE_THREE 8 //四带两单
|
||||
#define CT_BOMB_CARD 9 //炸弹类型
|
||||
#define CT_3A_BOMB_CARD 10 //炸弹类型
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
//底牌类型
|
||||
#define BCT_DOUBLE_JOKER 201 //双王
|
||||
#define BCT_THREE_2 202 //三二
|
||||
#define BCT_SINGLE_JOKER_DOUBLE_2 203 //单王双2
|
||||
#define BCT_TONGHUASHUN 204 //同花顺
|
||||
#define BCT_SINGLE_JOKER 205 //单王
|
||||
#define BCT_DOUBLE_2 206 //双2
|
||||
#define BCT_SHUNZI 207 //顺子
|
||||
#define BCT_ALL_LITTLE 208 //全小
|
||||
#define BCT_NORMAL 209 //普通牌
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
//状态定义
|
||||
|
||||
#define GAME_SCENE_FREE GAME_STATUS_FREE //等待开始
|
||||
#define GAME_SCENE_SEND GAME_STATUS_PLAY //发牌状态
|
||||
#define GAME_SCENE_CALL GAME_STATUS_PLAY+1 //叫分状态
|
||||
#define GAME_SCENE_PLAY GAME_STATUS_PLAY+2 //游戏进行
|
||||
|
||||
//空闲状态
|
||||
struct CMD_S_StatusFree
|
||||
{
|
||||
//时间信息
|
||||
BYTE cbTimeOutCard; //出牌时间
|
||||
BYTE cbTimeCallScore; //叫分时间
|
||||
BYTE cbTimeStartGame; //开始时间
|
||||
BYTE cbTimeHeadOutCard; //首出时间
|
||||
};
|
||||
|
||||
//叫分状态
|
||||
struct CMD_S_StatusSend
|
||||
{
|
||||
//时间信息
|
||||
BYTE cbTimeOutCard; //出牌时间
|
||||
BYTE cbTimeCallScore; //叫分时间
|
||||
BYTE cbTimeStartGame; //开始时间
|
||||
BYTE cbTimeHeadOutCard; //首出时间
|
||||
|
||||
DWORD dwGameRule; //游戏规则;
|
||||
bool bActiveStatus[GAME_PLAYER]; //玩家状态;
|
||||
|
||||
//游戏信息
|
||||
BYTE cbHandCardCount[GAME_PLAYER]; //手牌数量;
|
||||
BYTE cbHandCardData[NORMAL_COUNT]; //手上扑克
|
||||
};
|
||||
|
||||
//叫分状态
|
||||
struct CMD_S_StatusCall
|
||||
{
|
||||
//时间信息
|
||||
BYTE cbTimeOutCard; //出牌时间
|
||||
BYTE cbTimeCallScore; //叫分时间
|
||||
BYTE cbTimeStartGame; //开始时间
|
||||
BYTE cbTimeHeadOutCard; //首出时间
|
||||
|
||||
DWORD dwGameRule; //游戏规则;
|
||||
bool bActiveStatus[GAME_PLAYER]; //玩家状态;
|
||||
|
||||
//比出牌信息;
|
||||
WORD wCurrentUser; //比出牌玩家;
|
||||
BYTE cbMustOutCard; //必出牌信息;
|
||||
|
||||
//游戏信息
|
||||
bool bScoreInfo[GAME_PLAYER]; //叫分信息
|
||||
bool bScoreActive[GAME_PLAYER]; //叫分操作;
|
||||
BYTE cbHandCardCount[GAME_PLAYER]; //手牌数量;
|
||||
BYTE cbHandCardData[NORMAL_COUNT]; //手上扑克
|
||||
};
|
||||
|
||||
//游戏状态
|
||||
struct CMD_S_StatusPlay
|
||||
{
|
||||
//时间信息
|
||||
BYTE cbTimeOutCard; //出牌时间
|
||||
BYTE cbTimeCallScore; //叫分时间
|
||||
BYTE cbTimeStartGame; //开始时间
|
||||
BYTE cbTimeHeadOutCard; //首出时间
|
||||
|
||||
DWORD dwGameRule; //游戏规则;
|
||||
bool bActiveStatus[GAME_PLAYER]; //玩家状态;
|
||||
|
||||
//游戏变量
|
||||
WORD wBankerUser; //庄家用户
|
||||
WORD wCurrentUser; //当前玩家
|
||||
BYTE cbMustOutCard; //必出牌信息;
|
||||
|
||||
//出牌信息
|
||||
WORD wTurnWiner; //胜利玩家
|
||||
BYTE cbTurnCardCount; //出牌数目
|
||||
BYTE cbTurnCardData[MAX_COUNT]; //出牌数据
|
||||
|
||||
//扑克信息
|
||||
BYTE cbHandCardData[MAX_COUNT]; //手上扑克
|
||||
BYTE cbHandCardCount[GAME_PLAYER]; //扑克数目
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
//命令定义
|
||||
|
||||
#define SUB_S_GAME_START 100 //游戏开始
|
||||
#define SUB_S_CALL_SCORE 101 //用户叫分
|
||||
#define SUB_S_BANKER_INFO 102 //庄家信息
|
||||
#define SUB_S_OUT_CARD 103 //用户出牌
|
||||
#define SUB_S_PASS_CARD 104 //用户放弃
|
||||
#define SUB_S_GAME_CONCLUDE 105 //游戏结束
|
||||
#define SUB_S_SET_BASESCORE 106 //设置基数
|
||||
#define SUB_S_CHEAT_CARD 107 //作弊扑克
|
||||
#define SUB_S_TRUSTEE 108 //托管
|
||||
#define SUB_S_START_SCORE 109 //开始叫分
|
||||
|
||||
//发送扑克
|
||||
//struct CMD_S_GameStart
|
||||
//{
|
||||
// WORD wStartUser; //开始玩家
|
||||
// WORD wCurrentUser; //当前玩家
|
||||
// bool bHasDaDu; //是否打独
|
||||
// BYTE cbCardCount[GAME_PLAYER]; //扑克牌数量;
|
||||
// BYTE cbCardData[NORMAL_COUNT]; //扑克列表
|
||||
//};
|
||||
struct CMD_S_GameStart
|
||||
{
|
||||
DWORD dwGameRule; //游戏规则;
|
||||
WORD wStartUser; //开始玩家
|
||||
bool bActiveStatus[GAME_PLAYER]; //玩家状态;
|
||||
BYTE cbCardCount[GAME_PLAYER]; //扑克牌数量;
|
||||
BYTE cbCardData[NORMAL_COUNT]; //扑克列表
|
||||
};
|
||||
|
||||
//录像开始;
|
||||
struct CMD_Record_GameStart
|
||||
{
|
||||
DWORD dwGameRule; //游戏规则;
|
||||
WORD wStartUser; //开始玩家
|
||||
WORD wCurrentUser; //当前玩家
|
||||
bool bActiveStatus[GAME_PLAYER]; //玩家状态;
|
||||
};
|
||||
|
||||
//机器人扑克
|
||||
struct CMD_S_AndroidCard
|
||||
{
|
||||
BYTE cbHandCard[GAME_PLAYER][NORMAL_COUNT];//手上扑克
|
||||
BYTE cbBankerCard[3];
|
||||
WORD wCurrentUser ; //当前玩家
|
||||
};
|
||||
|
||||
//作弊扑克
|
||||
struct CMD_S_CheatCard
|
||||
{
|
||||
WORD wCardUser[GAME_PLAYER ]; //作弊玩家
|
||||
BYTE cbUserCount; //作弊数量
|
||||
BYTE cbCardData[GAME_PLAYER ][MAX_COUNT]; //扑克列表
|
||||
BYTE cbCardCount[GAME_PLAYER ]; //扑克数量
|
||||
|
||||
};
|
||||
|
||||
//用户叫分
|
||||
struct CMD_S_CallScore
|
||||
{
|
||||
WORD wCallScoreUser; //叫分玩家
|
||||
bool bCurrentScore; //当前叫分
|
||||
};
|
||||
|
||||
//通知抢庄;
|
||||
struct CMD_S_SendCallScore
|
||||
{
|
||||
WORD wBankerUser; //庄家玩家
|
||||
BYTE cbMustOutCard; //必出牌;
|
||||
};
|
||||
|
||||
//庄家信息
|
||||
struct CMD_S_BankerInfo
|
||||
{
|
||||
WORD wBankerUser; //庄家玩家
|
||||
WORD wCurrentUser; //当前玩家
|
||||
bool bShowMustOutCard; //是否显示必打牌
|
||||
BYTE cbMustOutCard; //必出牌;
|
||||
};
|
||||
|
||||
//用户出牌
|
||||
struct CMD_S_OutCard
|
||||
{
|
||||
BYTE cbCardCount; //出牌数目
|
||||
WORD wCurrentUser; //当前玩家
|
||||
WORD wOutCardUser; //出牌玩家
|
||||
bool bLastCard; //最后一手
|
||||
BYTE cbCardData[MAX_COUNT]; //扑克列表
|
||||
};
|
||||
|
||||
//放弃出牌
|
||||
struct CMD_S_PassCard
|
||||
{
|
||||
BYTE cbTurnOver; //一轮结束
|
||||
WORD wCurrentUser; //当前玩家
|
||||
WORD wPassCardUser; //放弃玩家
|
||||
};
|
||||
|
||||
//游戏结束
|
||||
struct CMD_S_GameConclude
|
||||
{
|
||||
//积分变量
|
||||
LONG lCellScore; //单元积分
|
||||
bool bActiveStatus[GAME_PLAYER]; //玩家状态;
|
||||
|
||||
SCORE lGameScore[GAME_PLAYER]; //游戏积分
|
||||
SCORE lBombScore[GAME_PLAYER]; //游戏积分
|
||||
SCORE lAllScore[GAME_PLAYER]; //总成绩;
|
||||
|
||||
//春天标志
|
||||
BYTE bChunTian; //春天标志
|
||||
BYTE bFanChunTian; //春天标志
|
||||
|
||||
//炸弹信息
|
||||
BYTE cbBombCount; //炸弹个数
|
||||
BYTE cbEachBombCount[GAME_PLAYER]; //炸弹个数
|
||||
|
||||
//游戏信息
|
||||
BYTE cbBankerScore; //叫分数目
|
||||
BYTE cbCardCount[GAME_PLAYER]; //扑克数目
|
||||
BYTE cbHandCardData[FULL_COUNT]; //扑克列表
|
||||
};
|
||||
|
||||
//托管
|
||||
struct CMD_S_TRUSTEE
|
||||
{
|
||||
WORD wTrusteeUser; //托管玩家
|
||||
bool bTrustee; //托管标志
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
//命令定义
|
||||
|
||||
#define SUB_C_CALL_SCORE 1 //用户叫分
|
||||
#define SUB_C_OUT_CARD 2 //用户出牌
|
||||
#define SUB_C_PASS_CARD 3 //用户放弃
|
||||
#define SUB_C_TRUSTEE 4 //用户托管
|
||||
|
||||
//用户叫分
|
||||
struct CMD_C_CallScore
|
||||
{
|
||||
bool bCallScore; //叫分数目
|
||||
};
|
||||
|
||||
//用户出牌
|
||||
struct CMD_C_OutCard
|
||||
{
|
||||
BYTE cbCardCount; //出牌数目
|
||||
BYTE cbCardData[MAX_COUNT]; //扑克数据
|
||||
};
|
||||
|
||||
//托管
|
||||
struct CMD_C_TRUSTEE
|
||||
{
|
||||
bool bTrustee; //托管标志
|
||||
};
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
enum ePDKRuleEnum
|
||||
{
|
||||
ePDKRuleEnum_HandCardCount = 1 << 1, //手牌张数 1是16张,0是15张;
|
||||
ePDKRuleEnum_OutCardRule = 1 << 2, //出牌规则 1是红桃3先出,0是首局红桃3出牌,下局胜者出牌;
|
||||
ePDKRuleEnum_MustOutCard = 1 << 3, //有牌必须出;
|
||||
ePDKRuleEnum_3ABomb = 1 << 4, //3个A是炸弹;
|
||||
ePDKRuleEnum_FOUR_TAKE_THREE = 1 << 5, //四带三;
|
||||
ePDKRuleEnum_DADU = 1 << 6, //打独;
|
||||
ePDKRuleEnum_Bomb_Score = 1 << 7, //炸弹+10;
|
||||
ePDKRuleEnum_PlayCount = 1 << 8, //游戏人数 1是3人,0是2人;
|
||||
};
|
||||
|
||||
// 游戏解散结构
|
||||
struct CMD_S_Private_End_Info
|
||||
{
|
||||
WORD wMainChairID; // 房主
|
||||
BYTE cbFinishCout; // 完成局数
|
||||
bool aryActiveStatus[GAME_PLAYER]; // 手牌状态;
|
||||
SCORE lAllScore[GAME_PLAYER]; // 总成绩
|
||||
SCORE lDetails[GAME_PLAYER][16]; // 成绩明细(目前开房最大16局)
|
||||
|
||||
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
|
||||
Reference in New Issue
Block a user