syntax = "proto3"; package tienlen; option go_package = "mongo.games.com/game/protocol/tienlen"; //操作结果 enum OpResultCode { OPRC_Sucess = 0; //成功 OPRC_Error = 1; //失败 OPRC_Hint = 2; //提示 } //tienlen enum TienLenPacketID { PACKET_TienLenZERO = 0;// 弃用消息号 PACKET_SCTienLenRoomInfo = 5370;//房间信息 PACKET_SCTienLenRoomState = 5371;//房间状态 PACKET_CSTienLenPlayerOp = 5372;//玩家操作 PACKET_SCTienLenPlayerOp = 5373;//玩家操作 PACKET_SCTienLenPlayerEnter = 5374;//玩家进入 PACKET_SCTienLenPlayerLeave = 5375;//玩家离开 PACKET_SCTienLenCard = 5376;//发牌 PACKET_SCTienLenGameBilled = 5377;//结算 PACKET_SCTienLenCurOpPos = 5378;//当前操作的玩家位置 PACKET_SCTienLenSmallGameBilled = 5379;//小结算 PACKET_SCTienLenUpdateMasterSnid = 5380;//房主更换 PACKET_SCTienLenUpdateAudienceNum = 5381;//推送观众人数 PACKET_SCTienLenAI = 5382;//AI消息 PACKET_SCTienLenFirstOpPos = 5383;//首出玩家 PACKET_SCTienLenCardTest = 5384;//测试数据 PACKET_SCTienLenThinkLongCnt = 5385; // 长考次数 PACKET_SCTienLenFirstGiveItemItem = 5386; // 第一次赠送记牌器道具 PACKET_SCTienLenPetSkillRes = 5387; //宠物技能 PACKET_SCTienLenCycleBilled = 5388; // 大结算 } //玩家信息 message TienLenPlayerData { string Name = 1; //名字 int32 SnId = 2; //账号 int32 Head = 3; //头像 int32 Sex = 4; //性别 repeated string Params = 5; //其他数据 如:昵称 头像 性别 ip 等 int64 Coin = 6; //金币 int32 Pos = 7; //座位位置 int32 Flag = 8; //二进制标记 详见:数据字典 int32 Longitude = 9;//经度 int32 Latitude = 10;//纬度 string City = 11; //城市 例:伦敦 int32 LastOp = 12; //如上:玩家操作 int32 VIP = 13; //玩家VIP等级 int32 HeadOutLine = 14; //头像框 int32 NiceId = 15; //靓号[机器人用] repeated int32 Cards = 16; //手牌 int64 CurRoundTotalBet = 17;//本轮押注已押的金币 int64 GameCoin = 18; //游戏内带入的金币 int32 RoleId = 19; //使用中的角色id mapItems = 20; int32 MatchRankId = 21; int32 Lv = 22; int32 CopySnid = 23;//比赛场机器人假snid int32 CopyRoleId = 24;//比赛场机器人假角色 int64 RankScore = 25; // 排位积分 int32 ThinkLongCnt = 26; // 长考次数 int64 Level = 27; //玩家等级 int64 Exp = 28; //玩家经验 int64 PigBankCoin = 29; //存钱罐金币 repeated PetSkillInfo SkillInfo = 30;//宠物技能信息 int32 SkinId = 31; //皮肤id } //宠物技能 message PetSkillInfo{ int32 PetId =1; repeated SkillInfo SkillData = 2; } message SkillInfo{ int32 SkillId = 1; int32 SkillLevel = 2; } message LastDelCard { repeated int32 Cards = 1; } //房间信息 message SCTienLenRoomInfo { int32 RoomId = 1; //房间id int32 Creator = 2; //创建者SnId int32 GameId = 3; //游戏id int32 RoomMode = 4;//游戏模式 repeated int32 Params = 5; //规则参数 int32 BankerPos = 6;//庄家位置 int32 State = 7; //房间当前状态,如上 int32 TimeOut = 8; //等待剩余时间 单位:秒 repeated TienLenPlayerData Players = 9; //房间内的玩家信息 int32 AudienceNum = 11; //当前观战人数 int32 CurOpIdx = 12; //当前等待操作的玩家 repeated LastDelCard LastDelCards = 13; //上两手出的牌 int32 NumOfGames = 14; //当前局数 int32 TotalOfGames = 15; //总局数 int32 MasterSnid = 16;//房主 int32 BaseScore = 17 ;//游戏底分 int32 MaxPlayerNum = 18 ;//最大游戏人数 repeated int32 WinSnids = 19 ;//已出完牌的玩家 // 比赛场相关 int32 IsMatch = 20;//0普通场 1锦标赛 2冠军赛 int32 Round = 22;//比赛当前轮数 int32 CurPlayerNum = 24;//当前游戏人数 int32 NextNeed = 25;//前多少名可以晋级下一轮 int32 MatchFinals = 26;//0晋级赛 1半决赛 2是总决赛 // 比赛场相关 int32 RankType = 27; // 排位类型 int32 SceneAdd = 28; // 场次加成(百分比) string RecordId = 29; // 牌局ID repeated int32 OutCardRecord = 30 ;//已打出去的牌 bool IsOutRecord = 31;//是否能用记牌器 int64 ItemRecExpireTime = 32; //记牌器到期时间 int32 TMInfoId = 33; //比赛配置ID // 房卡场配置 int32 RoomTypeId = 34; //房间类型id int32 RoomConfigId = 35; //房间配置id int32 NeedPassword = 36; //是否需要密码 1需要 int32 CostType = 37; //房卡支付方式 1AA 2房主 int32 Voice = 38; //是否开启语音 1开启 string Password = 39; //房间密码 repeated ItemInfo Cost = 40; //房费消耗 // 房卡场配置 } //房间状态更新 message SCTienLenRoomState { int32 State = 1; //房间当前状态 repeated int64 Params = 2; //参数 } //玩家操作 message CSTienLenPlayerOp { int32 OpCode = 1; //1出牌 2过牌 3开始游戏 4调试发牌5,托管状态下出牌 6,取消托管状态 7,客户端提示出牌 8,继续游戏 repeated int64 OpParam = 2; } message SCTienLenPlayerOp { int32 OpCode = 1; //1出牌 2过牌 3开始游戏 ... repeated int64 OpParam = 2; //参数 int32 SnId = 3; //玩家位置 OpResultCode OpRetCode = 4; //返回错误码,详见:enums.proto } //玩家进入 message SCTienLenPlayerEnter { TienLenPlayerData Data = 1; //玩家数据 } //玩家离开 message SCTienLenPlayerLeave { int32 Pos = 1; //玩家位置 } message AddItem { int32 ItemType = 1; // 类型; 1场次加成 2道具 3宠物 4角色 5vip加成 6周卡加成 int32 ItemId = 2; // ID int32 Addition = 3; // 加成(百分比) int64 Score = 4; // 加成分数 } //结算结果 message TienLenPlayerGameBilled { int32 SnId = 1; //玩家 repeated int32 Cards = 2; // 手牌 int64 WinCoin = 3;//输赢金额 int64 GameCoin = 4;//结算后身上余额 int32 IsWin = 5; //输赢 赢1 输2 平0 int64 WinRankScore = 6; // 排位积分变化(包含额外加分) int64 RankScore = 7; // 结算后排位积分 int64 AddScore = 8; // 额外加分 repeated AddItem AddItems = 9; // 加成 int32 TianHu = 10; // 天胡类型 1:4个2 2:6连对 3:3-A } message SCTienLenGameBilled { repeated TienLenPlayerGameBilled Datas = 1; } //小结算结果(炸的分) message SCTienLenSmallGameBilled { int32 WinPos = 1; //赢家 int64 WinPosCoin = 2;//结算后赢家身上余额 int32 LosePos = 3; //输家 int64 LosePosCoin = 4;//结算后输家身上余额 int64 WinCoin = 5;//赢金额 int64 LoseCoin = 6;//输金额 } //发牌 message SCTienLenCard { repeated int32 Cards = 1; //手牌 bool IsOutRecord = 2; // 是否有出牌记录 int32 SnId = 3; //玩家id } //测试数据 message SCTienLenCardTest { mapGrades = 1; // 牌评分 int32 Type = 2;//1最小 2随机 3最大 int64 Totalin = 3; //投入 int64 Totalout = 4;//产出 double LoseRate = 5;//赔率 string Data = 6; } message SCTienLenCurOpPos{ int32 Pos = 1; //座位位置 bool IsNew = 2; //新一轮开始出牌 repeated int32 Cards = 3; //上家出的牌 int32 ExDelay = 4; //出牌额外延迟时间(s) int32 flag = 5; //玩家状态标记 } message SCTienLenUpdateMasterSnid{ int32 MasterSnid = 1;//房主 } //PACKET_SCTienLenUpdateAudienceNum message SCTienLenUpdateAudienceNum{ int32 AudienceNum = 1; //当前观战人数 } message SCTienLenAIData { int32 Bomb_num = 1; //炸弹数量 string Card_play_action_seq = 2; //出牌历史记录 string Last_move_0 = 3; //最后出牌 string Last_move_1 = 4; //最后出牌 string Last_move_2 = 5; //最后出牌 string Last_move_3 = 6; //最后出牌 int32 Num_cards_left_0 = 7;//剩余牌数 int32 Num_cards_left_1 = 8;//剩余牌数 int32 Num_cards_left_2 = 9;//剩余牌数 int32 Num_cards_left_3 = 10;//剩余牌数 string Other_hand_cards = 11;//其它人手牌 string Played_cards_0 = 12; //出过的牌 string Played_cards_1 = 13; //出过的牌 string Played_cards_2 = 14; //出过的牌 string Played_cards_3 = 15; //出过的牌 string Player_hand_cards = 16;//手牌 int32 Player_position = 17; //当前操作数置 bool IsTienLenYule = 18; //是否娱乐场 bool IsFirstHand = 19; //是否出首牌 repeated int32 Cards_left_0 = 20;//剩余牌 repeated int32 Cards_left_1 = 21;//剩余牌 repeated int32 Cards_left_2 = 22;//剩余牌 repeated int32 Cards_left_3 = 23;//剩余牌 int32 Last_pos = 24; //上一家出牌人的位置 bool IsEnd = 25; //是否是打到底 repeated int32 WinSnids = 26; //赢家id bool IsWin = 27;//输赢控制 } //PACKET_SCTienLenFirstOpPos message SCTienLenFirstOpPos { int32 Pos = 1;//座位位置 } //PACKET_SCTienLenThinkLongCnt message SCTienLenPlayerThinkLongCnt { int32 ThinkLongCnt = 1; //玩家长考次数 } //PACKET_SCTienLenFirstGiveItemItem message SCTienLenPlayerFirstGiveItemItem { int32 ItemId = 1; // 赠送的道具ID int64 ItemRecExpireTime = 2;// 道具到期时间 } //通知宠物技能生效 炸弹不扣分 //PACKET_SCTienLenPetSkillRes message SCTienLenPetSkillRes{ int32 Snid = 1; int32 Pos = 2; bool PetSkillRes = 3; //true生效 } message ItemInfo { int32 Id = 1; // 道具ID int64 Num = 2; // 道具数量 } message TienLenCycleBilledInfo { int32 SnId = 1; // 玩家ID repeated int64 RoundScore = 2; // 每轮得分 int64 Score = 3; // 基础分 repeated ItemInfo Award = 4; // 奖励道具 int64 TotalScore = 5; // 总分 } // PACKET_SCTienLenCycleBilled message SCTienLenCycleBilled { repeated TienLenCycleBilledInfo List = 1; }