想要查看内容赶紧注册登陆吧!
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
#ifndef CMD_GAME_HEAD_FILE
#define CMD_GAME_HEAD_FILE
//////////////////////////////////////////////////////////////////////////////////
//服务定义
//游戏属性
#define KIND_ID 165 //游戏 I D
#define GAME_NAME TEXT("二七王游戏") //游戏名字
//组件属性
#define GAME_PLAYER 4 //游戏人数
#define VERSION_SERVER PROCESS_VERSION(6,0,3) //程序版本
#define VERSION_CLIENT PROCESS_VERSION(6,0,3) //程序版本
//////////////////////////////////////////////////////////////////////////////////
//状态定义
//游戏状态
#define GS_UG_FREE GAME_STATUS_FREE //空闲状态
#define GS_UG_SCORE (GAME_STATUS_PLAY+5) //叫分状态
#define GS_UG_CALL (GAME_STATUS_PLAY+1) //叫牌状态
#define GS_UG_BACK (GAME_STATUS_PLAY+2) //留底状态
#define GS_UG_PLAY (GAME_STATUS_PLAY+3) //游戏状态
#define GS_UG_WAIT (GAME_STATUS_PLAY+4) //等待状态
#define GER_GIVE_UP GER_NORMAL+5
#define MAX_COUNT 60
//////////////////////////////////////////////////////////////////////////////////
//服务器命令结构
#define SUB_S_GAME_START 100 //游戏开始
#define SUB_S_SEND_CARD 101 //发送扑克
#define SUB_S_CALL_CARD 102 //用户叫牌
#define SUB_S_SEND_CONCEAL 103 //底牌扑克
#define SUB_S_GAME_PLAY 104 //游戏开始
#define SUB_S_OUT_CARD 105 //用户出牌
#define SUB_S_THROW_RESULT 106 //甩牌结果
#define SUB_S_TURN_BALANCE 107 //一轮统计
#define SUB_S_GAME_END 108 //游戏结束
#define SUB_S_LAND_SCORE 109 //叫分命令
#define SUB_S_GM_CARD 110
//GM功能
struct CMD_S_GMCard
{
BYTE cbCardData[GAME_PLAYER][MAX_COUNT];
BYTE cbCardCount[GAME_PLAYER];
};
//游戏状态
struct CMD_S_StatusFree
{
LONGLONG lBaseScore; //基础积分
};
//叫分状态
struct CMD_S_StatusScore
{
LONGLONG lBaseScore; //基础积分
WORD wBankerUser; //庄家用户
WORD wCurrentUser; //当前用户
WORD bLandScore; //上次叫分
BYTE bCurrentScore; //当前叫分
BYTE cbBackCardData[8]; //底牌扑克
BYTE cbCardData[52]; //扑克列表
};
//叫牌状态
struct CMD_S_StatusCall
{
LONGLONG lBaseScore; //基础积分
//游戏变量
WORD wBankerUser; //庄家用户
BYTE cbPackCount; //副数数目
BYTE cbMainValue; //主牌数值
BYTE cbValueOrder[2]; //主牌数值
WORD wLandScore;
//发牌变量
BYTE cbCardCount; //扑克数目
BYTE cbCardData[52]; //扑克列表
//叫牌信息
BYTE cbComplete; //完成标志
BYTE cbCallCard; //叫牌扑克
BYTE cbCallCount; //叫牌数目
WORD wCallCardUser; //叫牌用户
};
//留底状态
struct CMD_S_StatusBack
{
LONGLONG lBaseScore; //基础积分
//游戏变量
BYTE cbPackCount; //副数数目
BYTE cbMainValue; //主牌数值
BYTE cbMainColor; //主牌数值
BYTE cbValueOrder[2]; //主牌数值
//叫牌信息
BYTE cbCallCard; //叫牌扑克
BYTE cbCallCount; //叫牌数目
WORD wCallCardUser; //叫牌用户
WORD wLandScore;
//用户变量
WORD wBankerUser; //庄家用户
WORD wCurrentUser; //当前用户
//扑克变量
BYTE cbCardCount; //扑克数目
BYTE cbCardData[60]; //扑克列表
//底牌信息
BYTE cbConcealCount; //暗藏数目
BYTE cbConcealCard[8]; //暗藏扑克
};
//游戏状态
struct CMD_S_StatusPlay
{
LONGLONG lBaseScore; //基础积分
//游戏变量
BYTE cbPackCount; //副数数目
BYTE cbMainValue; //主牌数值
BYTE cbMainColor; //主牌数值
BYTE cbValueOrder[2]; //主牌数值
//用户变量
WORD wBankerUser; //庄家用户
WORD wCurrentUser; //当前用户
WORD wFirstOutUser; //出牌用户
//叫牌信息
BYTE cbCallCard; //叫牌扑克
BYTE cbCallCount; //叫牌数目
WORD wCallCardUser; //叫牌用户
WORD wLandScore;
//扑克变量
BYTE cbCardCount; //扑克数目
BYTE cbCardData[52]; //扑克列表
//底牌信息
BYTE cbConcealCount; //暗藏数目
BYTE cbConcealCard[8]; //暗藏扑克
//出牌变量
BYTE cbOutCardCount[4]; //出牌数目
BYTE cbOutCardData[4][52]; //出牌列表
//得分变量
BYTE cbScoreCardCount; //扑克数目
BYTE cbScoreCardData[48]; //得分扑克
int BankerCatchRed5Score; //抓红五分数
};
//等待状态
struct CMD_S_StatusWait
{
LONGLONG lBaseScore; //基础积分
//游戏变量
BYTE cbPackCount; //副数数目
BYTE cbMainValue; //主牌数值
BYTE cbValueOrder[2]; //主牌数值
//用户变量
WORD wBankerUser; //庄家用户
};
//游戏开始
struct CMD_S_GameStart
{
WORD wBankerUser; //庄家用户
WORD bLandScore; //所叫分数
WORD wCurrentUser; //当前用户
BYTE cbPackCount; //副数数目
BYTE cbMainValue; //主牌数值
BYTE cbValueOrder[2]; //主牌数值
BYTE cbConcealCount; //暗藏数目
BYTE cbConcealCard[8]; //暗藏扑克
};
//发送扑克
struct CMD_S_SendCard
{
BYTE cbCardCount; //扑克数目
BYTE cbCardData[52]; //扑克列表
WORD wCurrentUser; //当前用户
BYTE cbBackCard[8]; //底牌扑克
};
//用户叫牌
struct CMD_S_CallCard
{
BYTE cbCallCard; //叫牌扑克
BYTE cbCallCount; //叫牌数目
WORD wCallCardUser; //叫牌用户
};
//底牌扑克
struct CMD_S_SendConceal
{
BYTE cbMainColor; //主牌数值
WORD wBankerUser; //庄家用户
WORD wCurrentUser; //当前用户
};
//游戏开始
struct CMD_S_GamePlay
{
WORD wCurrentUser; //当前用户
BYTE cbConcealCount; //暗藏数目
BYTE cbConcealCard[8]; //暗藏扑克
};
//用户出牌
struct CMD_S_OutCard
{
BYTE cbCardCount; //扑克数目
WORD wOutCardUser; //出牌玩家
WORD wCurrentUser; //当前玩家
BYTE cbCardData[52]; //扑克列表
bool bNoMainUser[GAME_PLAYER];
BYTE bDoubleCount[GAME_PLAYER];
BYTE bMainCount[GAME_PLAYER];
bool bLastTurn;
bool bFirstOut;
};
//甩牌结果
struct CMD_S_ThrowResult
{
WORD wOutCardUser; //出牌玩家
WORD wCurrentUser; //当前玩家
BYTE cbThrowCardCount; //扑克数目
BYTE cbResultCardCount; //扑克数目
BYTE cbCardDataArray[104]; //扑克数组
int PlayerScore[4];
};
//一轮统计
struct CMD_TurnBalance
{
WORD wTurnWinner; //一轮胜者
WORD wCurrentUser; //当前玩家
int PlayerScore[4];
};
//游戏结束
struct CMD_S_GameEnd
{
LONGLONG lScore[4]; //用户得分
LONGLONG lKingScore[4]; //冲关得分
int wGameScore; //游戏得分
WORD wConcealTime; //扣底倍数
WORD wConcealScore; //底牌积分
BYTE cbConcealCount; //暗藏数目
BYTE cbConcealCard[8]; //暗藏扑克
bool bAddConceal; //是否庄扣
BYTE bEndStatus; //结束情况
};
//用户叫分
struct CMD_S_LandScore
{
WORD bLandUser; //叫分玩家
WORD wCurrentUser; //当前玩家
WORD bLandScore; //上次叫分
WORD bCurrentScore; //当前叫分
bool bGiveUpScore[4];
WORD wUserScore[4];
};
//////////////////////////////////////////////////////////////////////////
//客户端命令结构
#define SUB_C_CALL_CARD 1 //用户叫牌
#define SUB_C_CALL_FINISH 2 //叫牌完成
#define SUB_C_CONCEAL_CARD 3 //底牌扑克
#define SUB_C_OUT_CARD 4 //用户出牌
#define SUB_C_LAND_SCORE 5 //用户叫分
#define SUB_C_EJECT 6 //超时强退
#define SUB_C_GIVEUP_GAME 7
#define SUB_C_GM_REQUEST 9
//用户叫分
struct CMD_C_LandScore
{
BYTE bLandScore; //地主分数
};
//用户叫牌
struct CMD_C_CallCard
{
BYTE cbCallCard; //叫牌扑克
BYTE cbCallCount; //叫牌数目
};
//底牌扑克
struct CMD_C_ConcealCard
{
BYTE cbConcealCount; //暗藏数目
BYTE cbConcealCard[8]; //暗藏扑克
};
//用户出牌
struct CMD_C_OutCard
{
BYTE cbCardCount; //出牌数目
BYTE cbCardData[52]; //扑克列表
};
//////////////////////////////////////////////////////////////////////////
#endif
|