init
This commit is contained in:
284
Classes/Games/NiuNiu/NN_CMD.h
Normal file
284
Classes/Games/NiuNiu/NN_CMD.h
Normal file
@@ -0,0 +1,284 @@
|
||||
#ifndef _CMD_NiuNiu_GAME_HEAD_FILE_
|
||||
#define _CMD_NiuNiu_GAME_HEAD_FILE_
|
||||
|
||||
#include "Types.h"
|
||||
#include "DataStream.h"
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
//游戏属性;
|
||||
#define NN_KIND_ID 2 //游戏ID;
|
||||
#define NN_GAME_PLAYER 5 //游戏人数;
|
||||
#define NN_GAME_NAME ("牛牛") //游戏名字;
|
||||
#define NN_MAX_COUNT 5 //扑克数目;
|
||||
#define NN_FULL_COUNT 52 //最大牌库数量;
|
||||
#define NN_CTYPE_COUNT 12 //牌型数量;
|
||||
|
||||
//扑克掩码;
|
||||
#define NN_MASK_VALUE 0x0F //数值掩码;
|
||||
#define NN_MASK_COLOR 0xF0 //花色掩码;
|
||||
|
||||
//牌型定义;
|
||||
#define NIU_TYPE_0 0 //无牛;
|
||||
#define NIU_TYPE_1 1 //牛一;
|
||||
#define NIU_TYPE_2 2 //牛二;
|
||||
#define NIU_TYPE_3 3 //牛三;
|
||||
#define NIU_TYPE_4 4 //牛四;
|
||||
#define NIU_TYPE_5 5 //牛五;
|
||||
#define NIU_TYPE_6 6 //牛六;
|
||||
#define NIU_TYPE_7 7 //牛七;
|
||||
#define NIU_TYPE_8 8 //牛八;
|
||||
#define NIU_TYPE_9 9 //牛九;
|
||||
#define NIU_TYPE_10 10 //牛牛;
|
||||
#define NIU_TYPE_WHN 11 //五花牛;
|
||||
#define NIU_TYPE_SHN 12 //四炸;
|
||||
#define NIU_TYPE_WXN 13 //五小牛;
|
||||
|
||||
#define NN_MAX_NIU_TYPE 13 //最大牛类型;
|
||||
|
||||
//玩家相关定义;
|
||||
#define NN_VIEW_L1_ID 0 //左1玩家;
|
||||
#define NN_VIEW_L2_ID 1 //左2玩家;
|
||||
#define NN_VIEW_SELF_ID 2 //自己玩家;
|
||||
#define NN_VIEW_R3_ID 3 //右2玩家;
|
||||
#define NN_VIEW_R4_ID 4 //右1玩家;
|
||||
|
||||
//开房规则;
|
||||
#define NN_RULE_HUA_NIU 0x01 //有花牛;
|
||||
#define NN_RULE_SAN_ZHANG 0x02 //三张牛;
|
||||
#define NN_RULE_FREE_CHIP 0x04 //自由下注;
|
||||
#define NN_RULE_NIU_FAN 0x08 //有牛番;
|
||||
#define NN_BANKER_OWNER 1 //房主坐庄;
|
||||
#define NN_BANKER_TURNS 2 //轮流坐庄;
|
||||
#define NN_BANKER_ROB 3 //经典抢庄;
|
||||
#define NN_BANKER_ROB4 4 //翻4张抢庄;
|
||||
|
||||
//游戏状态;
|
||||
#define NN_GS_TK_FREE GAME_STATUS_FREE //等待开始;
|
||||
#define NN_GS_TK_SEND_CARD GAME_STATUS_PLAY //发牌状态;
|
||||
#define NN_GS_TK_ROB_BANKER (GAME_STATUS_PLAY + 1) //抢庄状态;
|
||||
#define NN_GS_TK_USER_CHIP (GAME_STATUS_PLAY + 2) //下注状态;
|
||||
#define NN_GS_TK_OPEN_CARD (GAME_STATUS_PLAY + 3) //开牌状态;
|
||||
#define NN_GS_TK_SHOW_CARD (GAME_STATUS_PLAY + 4) //游戏结束;
|
||||
|
||||
#define NN_OPEN_CARD_TIME 20 //开牌时间;
|
||||
|
||||
//规则配置参数;
|
||||
struct tagNinNiuRuleCfg
|
||||
{
|
||||
uint16 wGameRule = 0; //游戏规则;
|
||||
uint16 wBankerRule = 0; //坐庄规则;
|
||||
uint8 cbMinFreeChip = 0; //最小下注;
|
||||
uint8 cbMaxFreeChip = 0; //最大下注;
|
||||
};
|
||||
|
||||
//空闲状态;
|
||||
struct NN_CMD_S_StatusFree
|
||||
{
|
||||
SCORE lCellScore; //基础积分;
|
||||
SCORE lMinFreeChip; //最小可下注;
|
||||
SCORE lMaxFreeChip; //最大可下注;
|
||||
uint8 cbHandCardCount; //手牌数量;
|
||||
bool bActiveStatus[NN_GAME_PLAYER]; //玩家状态;
|
||||
};
|
||||
|
||||
//发牌状态;
|
||||
struct NN_CMD_S_StatusSend
|
||||
{
|
||||
NN_CMD_S_StatusFree stStatusFree; //公共数据;
|
||||
uint16 wBankerUser; //庄家用户;
|
||||
uint8 cbSendStatus; //发牌状态;
|
||||
uint8 cbHandCardData[NN_MAX_COUNT]; //手牌数据;
|
||||
};
|
||||
|
||||
//抢庄状态;
|
||||
struct NN_CMD_S_StatusRob
|
||||
{
|
||||
NN_CMD_S_StatusFree stStatusFree; //公共数据;
|
||||
uint8 cbRobStatus[NN_GAME_PLAYER]; //抢庄状态 0:没操作,1:不抢,2:抢;
|
||||
uint8 cbHandCardData[NN_GAME_PLAYER][NN_MAX_COUNT];//手牌数据;
|
||||
};
|
||||
|
||||
//下注状态;
|
||||
struct NN_CMD_S_StatusChip
|
||||
{
|
||||
NN_CMD_S_StatusFree stStatusFree; //公共数据;
|
||||
uint16 wBankerUser; //庄家用户;
|
||||
uint8 cbChipStatus[NN_GAME_PLAYER]; //下注状态;
|
||||
SCORE lUserChipScore[NN_GAME_PLAYER]; //下注分数;
|
||||
uint8 cbHandCardData[NN_MAX_COUNT]; //手牌数据;
|
||||
};
|
||||
|
||||
//等待开牌状态;
|
||||
struct NN_CMD_S_StatusOpen
|
||||
{
|
||||
NN_CMD_S_StatusFree stStatusFree; //公共数据;
|
||||
|
||||
uint16 wBankerUser; //庄家用户;
|
||||
SCORE lUserChipScore[NN_GAME_PLAYER]; //下注分数;
|
||||
|
||||
uint8 cbOpenStatus[NN_GAME_PLAYER]; //开牌状态;
|
||||
uint8 cbHandCardType; //牌型;
|
||||
uint8 cbHandCardData[NN_MAX_COUNT]; //手牌数据;
|
||||
};
|
||||
|
||||
//所有人都开牌;
|
||||
struct NN_CMD_S_StatusAllOpen
|
||||
{
|
||||
NN_CMD_S_StatusFree stStatusFree; //公共数据;
|
||||
|
||||
uint16 wBankerUser; //庄家用户;
|
||||
|
||||
uint8 cbOpenStatus[NN_GAME_PLAYER]; //开牌状态;
|
||||
SCORE lUserChipScore[NN_GAME_PLAYER]; //下注分数;
|
||||
uint8 cbHandCardType[NN_GAME_PLAYER]; //牌型;
|
||||
uint8 cbHandCardData[NN_GAME_PLAYER][NN_MAX_COUNT];//手牌数据;
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
//服务器命令;
|
||||
#define NN_SUB_S_GAME_START 100 //游戏开始;
|
||||
#define NN_SUB_S_START_ROB 101 //开始抢庄;
|
||||
#define NN_SUB_S_USER_ROB 102 //玩家抢庄;
|
||||
#define NN_SUB_S_START_CHIP 103 //开始下注;
|
||||
#define NN_SUB_S_USER_CHIP 104 //玩家下注;
|
||||
#define NN_SUB_S_START_OPEN 105 //开始开牌;
|
||||
#define NN_SUB_S_OPEN_CARD 106 //玩家开牌;
|
||||
#define NN_SUB_S_GAME_END 107 //游戏结束;
|
||||
#define NN_SUB_S_ALL_OPEN_CARD 108 //玩家开牌;
|
||||
|
||||
//游戏开始;
|
||||
struct NN_CMD_S_GameStart
|
||||
{
|
||||
uint16 wBankerUser; //庄家用户;
|
||||
bool bActiveStatus[NN_GAME_PLAYER]; //玩家状态;
|
||||
uint8 cbHandCardCount; //手牌数量;
|
||||
uint8 cbHandCardData[NN_MAX_COUNT]; //手牌数据;
|
||||
};
|
||||
|
||||
//玩家抢庄;
|
||||
struct NN_CMD_S_UserRob
|
||||
{
|
||||
uint16 wRobUser; //抢庄玩家;
|
||||
bool bRobResult; //是否抢庄;
|
||||
};
|
||||
|
||||
//开始下注;
|
||||
struct NN_CMD_S_StartChip
|
||||
{
|
||||
uint16 wBankerUser; //庄家用户;
|
||||
};
|
||||
|
||||
//玩家下注;
|
||||
struct NN_CMD_S_UserChip
|
||||
{
|
||||
uint16 wChipUser; //下注玩家;
|
||||
SCORE lChipScore; //下注分数;
|
||||
};
|
||||
|
||||
//玩家开牌;
|
||||
struct NN_CMD_S_OpenCard
|
||||
{
|
||||
uint16 wOpenUser; //开牌玩家;
|
||||
uint8 cbCardType; //手牌类型;
|
||||
uint8 cbCardData[NN_MAX_COUNT]; //开牌数据;
|
||||
};
|
||||
|
||||
//所有人开牌;
|
||||
struct NN_CMD_S_AllOpenCard
|
||||
{
|
||||
bool bActiveStatus[NN_GAME_PLAYER]; //玩家状态;
|
||||
uint8 cbCardType[NN_GAME_PLAYER]; //手牌类型;
|
||||
uint8 cbHandCardData[NN_GAME_PLAYER][NN_MAX_COUNT];//手牌数据;
|
||||
};
|
||||
|
||||
//游戏结束;
|
||||
struct NN_CMD_S_GameEnd
|
||||
{
|
||||
uint8 cbCardType[NN_GAME_PLAYER]; //手牌类型;
|
||||
uint8 cbHandCardData[NN_GAME_PLAYER][NN_MAX_COUNT]; //手牌数据;
|
||||
SCORE lAllScore[NN_GAME_PLAYER]; //;
|
||||
SCORE lGameScore[NN_GAME_PLAYER]; //游戏得分;
|
||||
SCORE lRevenue[NN_GAME_PLAYER]; //税收;
|
||||
};
|
||||
|
||||
//总结算数据;
|
||||
struct NN_CMD_S_FinishData
|
||||
{
|
||||
bool bActiveStatus[NN_GAME_PLAYER]; //手牌状态;
|
||||
uint8 cbCardTypeCount[NN_GAME_PLAYER][12]; //牌型数量;
|
||||
SCORE lTotalScore[NN_GAME_PLAYER]; //总得分;
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
//客户端命令;
|
||||
#define NN_SUB_C_SEND_OVER 1 //发牌完成;
|
||||
#define NN_SUB_C_ROB_BANKER 2 //玩家抢庄;
|
||||
#define NN_SUB_C_CHIP_SCORE 3 //玩家下注;
|
||||
#define NN_SUB_C_OPEN_CARD 4 //玩家开牌;
|
||||
|
||||
|
||||
//用户叫庄;
|
||||
struct NN_CMD_C_RobBanker
|
||||
{
|
||||
bool bRob; //是否抢庄;
|
||||
};
|
||||
|
||||
//用户加注;
|
||||
struct NN_CMD_C_ChipScore
|
||||
{
|
||||
SCORE lScore; //下注数目;
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
enum EN_NN_RESULT_TYPE
|
||||
{
|
||||
NN_RT_ALL_WIN = 0, // 通杀;
|
||||
NN_RT_ALL_LOSE, // 通赔;
|
||||
NN_RT_NIUNIU, // 牛牛;
|
||||
NN_RT_WIN, // 赢;
|
||||
};
|
||||
|
||||
// 游戏解散结构;
|
||||
struct NN_CMD_S_Private_End_Info
|
||||
{
|
||||
WORD wMainChairID; // 房主;
|
||||
BYTE cbFinishCout; // 完成局数;
|
||||
bool aryActiveStatus[NN_GAME_PLAYER]; // 手牌状态;
|
||||
SCORE lAllScore[NN_GAME_PLAYER]; // 总成绩;
|
||||
BYTE aryResultTypeCount[NN_GAME_PLAYER][4]; // 牌型数量;
|
||||
|
||||
void StreamValue(DataStream& kData, bool bSend)
|
||||
{
|
||||
if (bSend)
|
||||
{
|
||||
kData.pushValue(this, sizeof(NN_CMD_S_Private_End_Info));
|
||||
}
|
||||
else
|
||||
{
|
||||
kData.popValue(this, sizeof(NN_CMD_S_Private_End_Info));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
enum eNNRuleEnum
|
||||
{
|
||||
eNNRuleEnum_NULL = 0, //NULL;
|
||||
eNNRuleEnum_CardAA = 1, //房卡AA;
|
||||
eNNRuleEnum_BANKER_OWNER = 1 << 1, //房主坐庄;
|
||||
eNNRuleEnum_BANKER_TURNS = 1 << 2, //轮流坐庄;
|
||||
eNNRuleEnum_BANKER_ROB = 1 << 3, //经典抢庄;
|
||||
eNNRuleEnum_BANKER_ROB4 = 1 << 4, //翻4张抢庄;
|
||||
eNNRuleEnum_NO_SPECIAL_NIU = 1 << 5, //无特殊牛;
|
||||
eNNRuleEnum_BAYONET = 1 << 6, //拼刺刀;
|
||||
eNNRuleEnum_WHN = 1 << 7, //五花牛;
|
||||
eNNRuleEnum_BOMB = 1 << 8, //炸弹;
|
||||
eNNRuleEnum_WXN = 1 << 9, //五小牛;
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma pack()
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user