diff --git a/common/constant.go b/common/constant.go index 6bd21d2..a5eda1a 100644 --- a/common/constant.go +++ b/common/constant.go @@ -213,130 +213,140 @@ const ( ) const ( - GainWay_NewPlayer int32 = 0 //新建角色 - GainWay_Pay = 1 //后台增加(主要是充值) - GainWay_ByPMCmd = 2 //pm命令 - GainWay_MatchBreakBack = 3 //退赛退还 - GainWay_MatchSystemSupply = 4 //比赛奖励 - GainWay_Exchange = 5 //兑换 - GainWay_ServiceFee = 6 //桌费 - GainWay_CoinSceneWin = 7 //金豆场赢取 - GainWay_CoinSceneLost = 8 //金豆场输 - GainWay_CoinSceneEnter = 9 //进入金币场预扣 - GainWay_ShopBuy = 10 //商城购买或者兑换 - GainWay_CoinSceneLeave = 11 //金豆场回兑 - GainWay_HundredSceneWin = 12 //万人场赢取 - GainWay_HundredSceneLost = 13 //万人场输 - GainWay_MessageAttach = 14 //邮件 - GainWay_SafeBoxSave = 15 //保险箱存入 - GainWay_SafeBoxTakeOut = 16 //保险箱取出 - GainWay_Fishing = 17 //捕鱼 - GainWay_CoinSceneExchange = 18 //金豆场兑换 - GainWay_UpgradeAccount = 19 //升级账号 - GainWay_API_AddCoin = 20 //API操作钱包 - GainWay_GoldCome = 21 //财神降临 - GainWay_Transfer_System2Thrid = 22 //系统平台转入到第三方平台的金币 - GainWay_Transfer_Thrid2System = 23 //第三方平台转入到系统平台的金币 - GainWay_RebateTask = 24 //返利获取 - GainWay_IOSINSTALLSTABLE = 25 //ios安装奖励 - GainWay_VirtualChange = 26 //德州虚拟账变 - GainWay_CreatePrivateScene = 27 //创建私有房间 - GainWay_PrivateSceneReturn = 28 //解散私有房间返还 - GainWay_OnlineRandCoin = 29 //红包雨 - GainWay_Expire = 30 //到期清理 - GainWay_PromoterBind = 31 //手动绑定推广员 - GainWay_GradeShopReturn = 32 //积分商城撤单退还积分 - GainWay_Api_In = 33 //转移金币 - GainWay_Api_Out = 34 //转移金币 - GainWay_Shop_Buy = 35 //购买记录 - GainWay_MAIL_MTEM = 36 //邮件领取道具 - GainWay_Item_Sale = 37 //道具出售 - GainWay_ReliefFund = 38 //领取救济金 - GainWay_Shop_Revoke = 39 //撤单 - GainWay_ActSign = 40 // - GainWay_MatchSignup = 41 //比赛报名费用 - GainWay_MatchSeason = 42 //比赛赛季奖励 - GainWay_ActSignNew = 43 //新签到 - GainWay_ActTurnplate = 44 //轮盘 - GainWay_ActBlindBox = 45 //盲盒 - GainWay_ActFirstPay = 46 //首充 - GainWay_VIPGift = 47 //vip礼包 - GainWay_ActContinuousPay = 48 //连续充值 - GainWay_ActJybAward = 49 //礼包码兑换 - GainWay_LeaveDeduct = 50 //离开扣分 - GainWay_LeaveCombat = 51 //离开补偿 - GainWay_RankMatch = 52 //排位赛段位奖励 - GainWay_AddBag = 53 //增加背包接口调用 - GainWay_SmallRocket = 54 //小火箭收入 - GainWay_BindTel = 55 //绑定手机号 - GainWay_ReliefFund2 = 56 //救济金看视频双倍领取 - GainWay_ActTurnplate2 = 57 //轮盘看视频双倍领取 - GainWay_ActSignNew2 = 58 //签到看视频双倍领取 - GainWay_ItemUse = 59 //道具使用 - GainWay_PhoneScore = 60 //手机积分活动 - GainWay_RankReward = 61 //排位奖励 - GainWay_TaskReward = 62 //任务奖励 - GainWay_Interact = 63 //房间内互动效果 - GainWayItemCollectExchange = 64 //集卡活动兑换 - GainWay_WeekCardAward = 65 //周卡奖励 - GainWay_PigrankTakeCoin = 66 //存钱罐领取耗费钻石 - GainWay_PigrankGainCoin = 67 //存钱罐打开获取金币 - GainWay_ItemMove = 68 //道具赠送 - GainWay_RoleUpgrade = 69 //角色升级 - GainWay_PetUpgrade = 70 //宠物升级 - GainWay_Game = 71 //游戏掉落 - GainWayItemCollectLogin = 73 //集卡活动登录 - GainWay_Collect = 74 //集卡活动 - GainWayItemPhoneScoreExchange = 75 //抽手机活动兑换 - GainWayItemTaskInvite = 78 //邀请任务 - GainWayItemTaskNewPlayer = 79 //新手任务 - GainWayItemTaskAchievement = 80 //成就任务 - GainWayItemTaskEveryDay = 81 //每日任务 - GainWayItemWeekActive = 82 //周活跃奖励 - GainWayContinueSign = 83 //累计签到 - GainWayBackend = 84 // 后台操作 - GainWayBuyCoin = 85 // 商城购买金币 - GainWayBuyItem = 86 // 商城购买道具 - GainWayBuyWeekCard = 87 // 商城购买周卡 - GainWayVipBuyCoin = 88 // vip商城购买金币 - GainWaySign7Con = 89 // 累计签到进阶奖励消耗 - GainWay_PigrankGainDiamond = 90 //存钱罐打开获取钻石 - GainWaySign7Add = 91 // 累计签到进阶奖励获得 - GainWayItemChange = 92 //背包内使用道具兑换话费 - GainWayPetSkillLevelUp = 93 //宠物技能升级 - GainWayPermitAward = 94 // 赛季通行证等级奖励 - GainWayItemPermitRank = 95 // 赛季通行证排行奖励 - GainWayPermitExchangeCost = 96 // 赛季通行证兑换消耗 - GainWayPermitExchangeGain = 97 // 赛季通行证兑换获得 - GainWayItemTaskPermit = 98 // 赛季通行证任务 - GainWayDiamondLottery = 99 //钻石抽奖 - GainWaySkinUnLock = 100 // 皮肤解锁消耗 - GainWaySkinUpGrade = 101 // 皮肤升级消耗 - GainWayItemFen = 102 // 道具分解消耗 - GainWayItemFenGain = 103 // 道具分解获得 - GainWayGuide = 104 //新手引导奖励 - GainWayVipGift9 = 105 //vip等级礼包 - GainWayRoomCost = 106 //房费消耗 - GainWayRoomGain = 107 //房卡场获得 - GainWayItemShop = 108 // 交易市场道具交易 - GainWayClawdollCostItem = 109 // 娃娃机上分扣道具 - GainWayItemShopChangeDoll = 110 // 商城兑换娃娃 - GainWayItemBagChangeDoll = 111 // 背包内兑换娃娃 - GainWayClawdollCatch = 112 // 娃娃机抓取到娃娃获取卡 - GainWayItemBagChangeDollRevocation = 113 //娃娃兑换后台撤销 - GainWayPermitReset = 114 //赛季通行证积分重置 - GainWayClientUpgrade = 115 //客户端升级奖励 - GainWayLottery = 116 //开奖码抽奖 - GainWayGuide2 = 117 // 竞技馆引导奖励 - GainWayCompound = 118 // 道具合成消耗 - GainWayCompoundGain = 119 // 道具合成获得 - GainWayItem_PigBankTakeCoin = 120 // 购买金币存钱罐奖励道具 - GainWayItem_PigBankTakeDiamond = 121 // 购买钻石存钱罐奖励道具 - GainWayNianCost = 122 //年兽活动消耗 - GainWayNianGain = 123 //年兽活动获得 - GainWayRedPacket = 124 // 红包奖励 - GainWayPushCoinCost = 125 // 推币机消耗 - GainWayPushCoinGain = 126 // 推币机获得 + GainWay_NewPlayer int32 = 0 //新建角色 + GainWay_Pay = 1 //后台增加(主要是充值) + GainWay_ByPMCmd = 2 //pm命令 + GainWay_MatchBreakBack = 3 //退赛退还 + GainWay_MatchSystemSupply = 4 //比赛奖励 + GainWay_Exchange = 5 //兑换 + GainWay_ServiceFee = 6 //桌费 + GainWay_CoinSceneWin = 7 //金豆场赢取 + GainWay_CoinSceneLost = 8 //金豆场输 + GainWay_CoinSceneEnter = 9 //进入金币场预扣 + GainWay_ShopBuy = 10 //商城购买或者兑换 + GainWay_CoinSceneLeave = 11 //金豆场回兑 + GainWay_HundredSceneWin = 12 //万人场赢取 + GainWay_HundredSceneLost = 13 //万人场输 + GainWay_MessageAttach = 14 //邮件 + GainWay_SafeBoxSave = 15 //保险箱存入 + GainWay_SafeBoxTakeOut = 16 //保险箱取出 + GainWay_Fishing = 17 //捕鱼 + GainWay_CoinSceneExchange = 18 //金豆场兑换 + GainWay_UpgradeAccount = 19 //升级账号 + GainWay_API_AddCoin = 20 //API操作钱包 + GainWay_GoldCome = 21 //财神降临 + GainWay_Transfer_System2Thrid = 22 //系统平台转入到第三方平台的金币 + GainWay_Transfer_Thrid2System = 23 //第三方平台转入到系统平台的金币 + GainWay_RebateTask = 24 //返利获取 + GainWay_IOSINSTALLSTABLE = 25 //ios安装奖励 + GainWay_VirtualChange = 26 //德州虚拟账变 + GainWay_CreatePrivateScene = 27 //创建私有房间 + GainWay_PrivateSceneReturn = 28 //解散私有房间返还 + GainWay_OnlineRandCoin = 29 //红包雨 + GainWay_Expire = 30 //到期清理 + GainWay_PromoterBind = 31 //手动绑定推广员 + GainWay_GradeShopReturn = 32 //积分商城撤单退还积分 + GainWay_Api_In = 33 //转移金币 + GainWay_Api_Out = 34 //转移金币 + GainWay_Shop_Buy = 35 //购买记录 + GainWay_MAIL_MTEM = 36 //邮件领取道具 + GainWay_Item_Sale = 37 //道具出售 + GainWay_ReliefFund = 38 //领取救济金 + GainWay_Shop_Revoke = 39 //撤单 + GainWay_ActSign = 40 // + GainWay_MatchSignup = 41 //比赛报名费用 + GainWay_MatchSeason = 42 //比赛赛季奖励 + GainWay_ActSignNew = 43 //新签到 + GainWay_ActTurnplate = 44 //轮盘 + GainWay_ActBlindBox = 45 //盲盒 + GainWay_ActFirstPay = 46 //首充 + GainWay_VIPGift = 47 //vip礼包 + GainWay_ActContinuousPay = 48 //连续充值 + GainWay_ActJybAward = 49 //礼包码兑换 + GainWay_LeaveDeduct = 50 //离开扣分 + GainWay_LeaveCombat = 51 //离开补偿 + GainWay_RankMatch = 52 //排位赛段位奖励 + GainWay_AddBag = 53 //增加背包接口调用 + GainWay_SmallRocket = 54 //小火箭收入 + GainWay_BindTel = 55 //绑定手机号 + GainWay_ReliefFund2 = 56 //救济金看视频双倍领取 + GainWay_ActTurnplate2 = 57 //轮盘看视频双倍领取 + GainWay_ActSignNew2 = 58 //签到看视频双倍领取 + GainWay_ItemUse = 59 //道具使用 + GainWay_PhoneScore = 60 //手机积分活动 + GainWay_RankReward = 61 //排位奖励 + GainWay_TaskReward = 62 //任务奖励 + GainWay_Interact = 63 //房间内互动效果 + GainWayItemCollectExchange = 64 //集卡活动兑换 + GainWay_WeekCardAward = 65 //周卡奖励 + GainWay_PigrankTakeCoin = 66 //存钱罐领取耗费钻石 + GainWay_PigrankGainCoin = 67 //存钱罐打开获取金币 + GainWay_ItemMove = 68 //道具赠送 + GainWay_RoleUpgrade = 69 //角色升级 + GainWay_PetUpgrade = 70 //宠物升级 + GainWay_Game = 71 //游戏掉落 + GainWayItemCollectLogin = 73 //集卡活动登录 + GainWay_Collect = 74 //集卡活动 + GainWayItemPhoneScoreExchange = 75 //抽手机活动兑换 + GainWayItemTaskInvite = 78 //邀请任务 + GainWayItemTaskNewPlayer = 79 //新手任务 + GainWayItemTaskAchievement = 80 //成就任务 + GainWayItemTaskEveryDay = 81 //每日任务 + GainWayItemWeekActive = 82 //周活跃奖励 + GainWayContinueSign = 83 //累计签到 + GainWayBackend = 84 // 后台操作 + GainWayBuyCoin = 85 // 商城购买金币 + GainWayBuyItem = 86 // 商城购买道具 + GainWayBuyWeekCard = 87 // 商城购买周卡 + GainWayVipBuyCoin = 88 // vip商城购买金币 + GainWaySign7Con = 89 // 累计签到进阶奖励消耗 + GainWay_PigrankGainDiamond = 90 //存钱罐打开获取钻石 + GainWaySign7Add = 91 // 累计签到进阶奖励获得 + GainWayItemChange = 92 //背包内使用道具兑换话费 + GainWayPetSkillLevelUp = 93 //宠物技能升级 + GainWayPermitAward = 94 // 赛季通行证等级奖励 + GainWayItemPermitRank = 95 // 赛季通行证排行奖励 + GainWayPermitExchangeCost = 96 // 赛季通行证兑换消耗 + GainWayPermitExchangeGain = 97 // 赛季通行证兑换获得 + GainWayItemTaskPermit = 98 // 赛季通行证任务 + GainWayDiamondLottery = 99 //钻石抽奖 + GainWaySkinUnLock = 100 // 皮肤解锁消耗 + GainWaySkinUpGrade = 101 // 皮肤升级消耗 + GainWayItemFen = 102 // 道具分解消耗 + GainWayItemFenGain = 103 // 道具分解获得 + GainWayGuide = 104 //新手引导奖励 + GainWayVipGift9 = 105 //vip等级礼包 + GainWayRoomCost = 106 //房费消耗 + GainWayRoomGain = 107 //房卡场获得 + GainWayItemShop = 108 // 交易市场道具交易 + GainWayClawdollCostItem = 109 // 娃娃机上分扣道具 + GainWayItemShopChangeDoll = 110 // 商城兑换娃娃 + GainWayItemBagChangeDoll = 111 // 背包内兑换娃娃 + GainWayClawdollCatch = 112 // 娃娃机抓取到娃娃获取卡 + GainWayItemBagChangeDollRevocation = 113 //娃娃兑换后台撤销 + GainWayPermitReset = 114 //赛季通行证积分重置 + GainWayClientUpgrade = 115 //客户端升级奖励 + GainWayLottery = 116 //开奖码抽奖 + GainWayGuide2 = 117 // 竞技馆引导奖励 + GainWayCompound = 118 // 道具合成消耗 + GainWayCompoundGain = 119 // 道具合成获得 + GainWayItem_PigBankTakeCoin = 120 // 购买金币存钱罐奖励道具 + GainWayItem_PigBankTakeDiamond = 121 // 购买钻石存钱罐奖励道具 + GainWayNianCost = 122 //年兽活动消耗 + GainWayNianGain_Attack_LittleGuarantee = 123 //年兽活动小爆竹攻击年兽获得保底奖励 + GainWayRedPacket = 124 // 红包奖励 + GainWayNianGain_Sign = 125 //年兽活动签到获得 + GainWayNianGain_Change = 126 //年兽活动兑换获得 + GainWayNianGain_BossDie = 127 //年兽活动Boss死亡获得 + GainWayNianGain_BossDieOther = 128 //年兽活动Boss死亡额外获得 + GainWayNianGain_Attack_BigOther = 129 //年兽活动大爆竹攻击年兽获得额外奖励 + GainWayNianGain_Attack_BigGuarantee = 130 //年兽活动大爆竹攻击年兽获得保底奖励 + GainWayNianGain_Attack_Coin = 131 //攻击年兽获得金币奖励 + GainWayNianGain_EveryDayTask = 132 //年兽活动每日任务 + GainWayNianGain_Task = 133 //年兽活动任务 + GainWayConsume = 134 //累消活动获得 + GainWayPushCoinCost = 135 // 推币机消耗 + GainWayPushCoinGain = 136 // 推币机获得 ) // 后台选择 金币变化类型 的充值 类型id号起始 @@ -704,6 +714,9 @@ const ( TaskTypeRankMatchWinTimes = 30 // 排位胜利次数 TaskTypeBuyPermit = 31 // 购买典藏通行证 TaskTypeBuyRedBag = 32 // 参与红包雨活动 + TaskTypeNianBossKill = 33 // 击杀年兽 + TaskTypeNianBossDamage = 34 // 年兽造成伤害 + TaskTypeNianSign = 35 // 年兽签到 ) const ( diff --git a/data/DB_NewYearActivity.dat b/data/DB_NewYearActivity.dat index e1daacd..b28d448 100644 --- a/data/DB_NewYearActivity.dat +++ b/data/DB_NewYearActivity.dat @@ -8,20 +8,22 @@ SignReward50014,10;100001,100000" 签到奖励 BOSS血量 9 BossReward100001,100000;100002,10"BOSS击杀奖励 -0 LuckyRankNeed110000"幸运榜上榜条件 -0RankNeed80000000"总伤害榜上榜条件 -@ LittleHurtGold 80000,120000"小爆竹造成的伤害范围 +/ LuckyRankNeed10000"幸运榜上榜条件 +/RankNeed7000000"总伤害榜上榜条件 +> LittleHurtGold +8000,12000"小爆竹造成的伤害范围 >  BigHurtGold 400000,600000"大爆竹造成的伤害范围 4  BigHurtExc30001"大爆竹额外掉落道具ID -> BigHurtExcNumber10,30"!大爆竹额外掉落数量范围 += BigHurtExcNumber3,15"!大爆竹额外掉落数量范围 5 LittleGuaranteed30"小爆竹保底掉落次数 ALittleGuaranteedReward100002,5"小爆竹保底掉落物品 2 BigGuaranteed10"大爆竹保底掉落次数 -?BigGuaranteedReward 30001,100"大爆竹保底掉落物品 +>BigGuaranteedReward30001,80"大爆竹保底掉落物品 . GiftShopID991001,991002,991003"礼包ID @ GiftShopLimit3,0,0"&礼包每日限购次数,0为不限购 4 BossExcLimit30"年兽死亡额外掉落要求 -" BuffCount1"Buff生效次数 \ No newline at end of file +" BuffCount1"Buff生效次数 +oExchangeDiamond 30,5,1000000"L单次兑换爆竹所需要消耗的钻石,获得数量,获得金币数量 \ No newline at end of file diff --git a/data/DB_NewYearActivity.json b/data/DB_NewYearActivity.json index 2268940..f60e84e 100644 --- a/data/DB_NewYearActivity.json +++ b/data/DB_NewYearActivity.json @@ -39,19 +39,19 @@ { "Id": 7, "PorpName": "LuckyRankNeed", - "PropValue": "110000", + "PropValue": "10000", "PropDec": "幸运榜上榜条件" }, { "Id": 8, "PorpName": "RankNeed", - "PropValue": "80000000", + "PropValue": "7000000", "PropDec": "总伤害榜上榜条件" }, { "Id": 9, "PorpName": "LittleHurtGold", - "PropValue": "80000,120000", + "PropValue": "8000,12000", "PropDec": "小爆竹造成的伤害范围" }, { @@ -69,7 +69,7 @@ { "Id": 12, "PorpName": "BigHurtExcNumber", - "PropValue": "10,30", + "PropValue": "3,15", "PropDec": "大爆竹额外掉落数量范围" }, { @@ -93,7 +93,7 @@ { "Id": 16, "PorpName": "BigGuaranteedReward", - "PropValue": "30001,100", + "PropValue": "30001,80", "PropDec": "大爆竹保底掉落物品" }, { @@ -119,6 +119,12 @@ "PorpName": "BuffCount", "PropValue": "1", "PropDec": "Buff生效次数" + }, + { + "Id": 21, + "PorpName": "ExchangeDiamond", + "PropValue": "30,5,1000000", + "PropDec": "单次兑换爆竹所需要消耗的钻石,获得数量,获得金币数量" } ] } \ No newline at end of file diff --git a/data/DB_NewYearRankReward.json b/data/DB_NewYearRankReward.json deleted file mode 100644 index 0715204..0000000 --- a/data/DB_NewYearRankReward.json +++ /dev/null @@ -1,730 +0,0 @@ -{ - "Arr": [ - { - "Id": 1, - "RankType": 1, - "RankLevelId": 1, - "AwardMap": { - "100001": 30, - "100002": 100, - "30009": 2 - } - }, - { - "Id": 2, - "RankType": 1, - "RankLevelId": 2, - "AwardMap": { - "100001": 30, - "100002": 100, - "30008": 2 - } - }, - { - "Id": 3, - "RankType": 1, - "RankLevelId": 3, - "AwardMap": { - "100001": 30, - "100002": 100, - "30008": 1 - } - }, - { - "Id": 4, - "RankType": 1, - "RankLevelId": 4, - "AwardMap": { - "100001": 30, - "100002": 100 - } - }, - { - "Id": 5, - "RankType": 1, - "RankLevelId": 5, - "AwardMap": { - "100001": 30, - "100002": 99 - } - }, - { - "Id": 6, - "RankType": 1, - "RankLevelId": 6, - "AwardMap": { - "100001": 30, - "100002": 98 - } - }, - { - "Id": 7, - "RankType": 1, - "RankLevelId": 7, - "AwardMap": { - "100001": 30, - "100002": 97 - } - }, - { - "Id": 8, - "RankType": 1, - "RankLevelId": 8, - "AwardMap": { - "100001": 30, - "100002": 96 - } - }, - { - "Id": 9, - "RankType": 1, - "RankLevelId": 9, - "AwardMap": { - "100001": 30, - "100002": 95 - } - }, - { - "Id": 10, - "RankType": 1, - "RankLevelId": 10, - "AwardMap": { - "100001": 30, - "100002": 94 - } - }, - { - "Id": 11, - "RankType": 1, - "RankLevelId": 11, - "AwardMap": { - "100001": 30, - "100002": 93 - } - }, - { - "Id": 12, - "RankType": 1, - "RankLevelId": 12, - "AwardMap": { - "100001": 30, - "100002": 92 - } - }, - { - "Id": 13, - "RankType": 1, - "RankLevelId": 13, - "AwardMap": { - "100001": 30, - "100002": 91 - } - }, - { - "Id": 14, - "RankType": 1, - "RankLevelId": 14, - "AwardMap": { - "100001": 30, - "100002": 90 - } - }, - { - "Id": 15, - "RankType": 1, - "RankLevelId": 15, - "AwardMap": { - "100001": 30, - "100002": 89 - } - }, - { - "Id": 16, - "RankType": 1, - "RankLevelId": 16, - "AwardMap": { - "100001": 30, - "100002": 88 - } - }, - { - "Id": 17, - "RankType": 1, - "RankLevelId": 17, - "AwardMap": { - "100001": 30, - "100002": 87 - } - }, - { - "Id": 18, - "RankType": 1, - "RankLevelId": 18, - "AwardMap": { - "100001": 30, - "100002": 86 - } - }, - { - "Id": 19, - "RankType": 1, - "RankLevelId": 19, - "AwardMap": { - "100001": 30, - "100002": 85 - } - }, - { - "Id": 20, - "RankType": 1, - "RankLevelId": 20, - "AwardMap": { - "100001": 30, - "100002": 84 - } - }, - { - "Id": 21, - "RankType": 1, - "RankLevelId": 21, - "AwardMap": { - "100001": 30, - "100002": 83 - } - }, - { - "Id": 22, - "RankType": 1, - "RankLevelId": 22, - "AwardMap": { - "100001": 30, - "100002": 82 - } - }, - { - "Id": 23, - "RankType": 1, - "RankLevelId": 23, - "AwardMap": { - "100001": 30, - "100002": 81 - } - }, - { - "Id": 24, - "RankType": 1, - "RankLevelId": 24, - "AwardMap": { - "100001": 30, - "100002": 80 - } - }, - { - "Id": 25, - "RankType": 1, - "RankLevelId": 25, - "AwardMap": { - "100001": 30, - "100002": 79 - } - }, - { - "Id": 26, - "RankType": 1, - "RankLevelId": 26, - "AwardMap": { - "100001": 30, - "100002": 78 - } - }, - { - "Id": 27, - "RankType": 1, - "RankLevelId": 27, - "AwardMap": { - "100001": 30, - "100002": 77 - } - }, - { - "Id": 28, - "RankType": 1, - "RankLevelId": 28, - "AwardMap": { - "100001": 30, - "100002": 76 - } - }, - { - "Id": 29, - "RankType": 1, - "RankLevelId": 29, - "AwardMap": { - "100001": 30, - "100002": 75 - } - }, - { - "Id": 30, - "RankType": 1, - "RankLevelId": 30, - "AwardMap": { - "100001": 30, - "100002": 74 - } - }, - { - "Id": 31, - "RankType": 1, - "RankLevelId": 31, - "AwardMap": { - "100001": 30, - "100002": 73 - } - }, - { - "Id": 32, - "RankType": 1, - "RankLevelId": 32, - "AwardMap": { - "100001": 30, - "100002": 72 - } - }, - { - "Id": 33, - "RankType": 1, - "RankLevelId": 33, - "AwardMap": { - "100001": 30, - "100002": 71 - } - }, - { - "Id": 34, - "RankType": 1, - "RankLevelId": 34, - "AwardMap": { - "100001": 30, - "100002": 70 - } - }, - { - "Id": 35, - "RankType": 1, - "RankLevelId": 35, - "AwardMap": { - "100001": 30, - "100002": 69 - } - }, - { - "Id": 36, - "RankType": 1, - "RankLevelId": 36, - "AwardMap": { - "100001": 30, - "100002": 68 - } - }, - { - "Id": 37, - "RankType": 1, - "RankLevelId": 37, - "AwardMap": { - "100001": 30, - "100002": 67 - } - }, - { - "Id": 38, - "RankType": 1, - "RankLevelId": 38, - "AwardMap": { - "100001": 30, - "100002": 66 - } - }, - { - "Id": 39, - "RankType": 1, - "RankLevelId": 39, - "AwardMap": { - "100001": 30, - "100002": 65 - } - }, - { - "Id": 40, - "RankType": 1, - "RankLevelId": 40, - "AwardMap": { - "100001": 30, - "100002": 64 - } - }, - { - "Id": 41, - "RankType": 2, - "RankLevelId": 1, - "AwardMap": { - "100001": 30, - "100002": 100, - "30009": 2 - } - }, - { - "Id": 42, - "RankType": 2, - "RankLevelId": 2, - "AwardMap": { - "100001": 30, - "100002": 100, - "30008": 2 - } - }, - { - "Id": 43, - "RankType": 2, - "RankLevelId": 3, - "AwardMap": { - "100001": 30, - "100002": 100, - "30008": 1 - } - }, - { - "Id": 44, - "RankType": 2, - "RankLevelId": 4, - "AwardMap": { - "100001": 30, - "100002": 100 - } - }, - { - "Id": 45, - "RankType": 2, - "RankLevelId": 5, - "AwardMap": { - "100001": 30, - "100002": 99 - } - }, - { - "Id": 46, - "RankType": 2, - "RankLevelId": 6, - "AwardMap": { - "100001": 30, - "100002": 98 - } - }, - { - "Id": 47, - "RankType": 2, - "RankLevelId": 7, - "AwardMap": { - "100001": 30, - "100002": 97 - } - }, - { - "Id": 48, - "RankType": 2, - "RankLevelId": 8, - "AwardMap": { - "100001": 30, - "100002": 96 - } - }, - { - "Id": 49, - "RankType": 2, - "RankLevelId": 9, - "AwardMap": { - "100001": 30, - "100002": 95 - } - }, - { - "Id": 50, - "RankType": 2, - "RankLevelId": 10, - "AwardMap": { - "100001": 30, - "100002": 94 - } - }, - { - "Id": 51, - "RankType": 2, - "RankLevelId": 11, - "AwardMap": { - "100001": 30, - "100002": 93 - } - }, - { - "Id": 52, - "RankType": 2, - "RankLevelId": 12, - "AwardMap": { - "100001": 30, - "100002": 92 - } - }, - { - "Id": 53, - "RankType": 2, - "RankLevelId": 13, - "AwardMap": { - "100001": 30, - "100002": 91 - } - }, - { - "Id": 54, - "RankType": 2, - "RankLevelId": 14, - "AwardMap": { - "100001": 30, - "100002": 90 - } - }, - { - "Id": 55, - "RankType": 2, - "RankLevelId": 15, - "AwardMap": { - "100001": 30, - "100002": 89 - } - }, - { - "Id": 56, - "RankType": 2, - "RankLevelId": 16, - "AwardMap": { - "100001": 30, - "100002": 88 - } - }, - { - "Id": 57, - "RankType": 2, - "RankLevelId": 17, - "AwardMap": { - "100001": 30, - "100002": 87 - } - }, - { - "Id": 58, - "RankType": 2, - "RankLevelId": 18, - "AwardMap": { - "100001": 30, - "100002": 86 - } - }, - { - "Id": 59, - "RankType": 2, - "RankLevelId": 19, - "AwardMap": { - "100001": 30, - "100002": 85 - } - }, - { - "Id": 60, - "RankType": 2, - "RankLevelId": 20, - "AwardMap": { - "100001": 30, - "100002": 84 - } - }, - { - "Id": 61, - "RankType": 2, - "RankLevelId": 21, - "AwardMap": { - "100001": 30, - "100002": 83 - } - }, - { - "Id": 62, - "RankType": 2, - "RankLevelId": 22, - "AwardMap": { - "100001": 30, - "100002": 82 - } - }, - { - "Id": 63, - "RankType": 2, - "RankLevelId": 23, - "AwardMap": { - "100001": 30, - "100002": 81 - } - }, - { - "Id": 64, - "RankType": 2, - "RankLevelId": 24, - "AwardMap": { - "100001": 30, - "100002": 80 - } - }, - { - "Id": 65, - "RankType": 2, - "RankLevelId": 25, - "AwardMap": { - "100001": 30, - "100002": 79 - } - }, - { - "Id": 66, - "RankType": 2, - "RankLevelId": 26, - "AwardMap": { - "100001": 30, - "100002": 78 - } - }, - { - "Id": 67, - "RankType": 2, - "RankLevelId": 27, - "AwardMap": { - "100001": 30, - "100002": 77 - } - }, - { - "Id": 68, - "RankType": 2, - "RankLevelId": 28, - "AwardMap": { - "100001": 30, - "100002": 76 - } - }, - { - "Id": 69, - "RankType": 2, - "RankLevelId": 29, - "AwardMap": { - "100001": 30, - "100002": 75 - } - }, - { - "Id": 70, - "RankType": 2, - "RankLevelId": 30, - "AwardMap": { - "100001": 30, - "100002": 74 - } - }, - { - "Id": 71, - "RankType": 2, - "RankLevelId": 31, - "AwardMap": { - "100001": 30, - "100002": 73 - } - }, - { - "Id": 72, - "RankType": 2, - "RankLevelId": 32, - "AwardMap": { - "100001": 30, - "100002": 72 - } - }, - { - "Id": 73, - "RankType": 2, - "RankLevelId": 33, - "AwardMap": { - "100001": 30, - "100002": 71 - } - }, - { - "Id": 74, - "RankType": 2, - "RankLevelId": 34, - "AwardMap": { - "100001": 30, - "100002": 70 - } - }, - { - "Id": 75, - "RankType": 2, - "RankLevelId": 35, - "AwardMap": { - "100001": 30, - "100002": 69 - } - }, - { - "Id": 76, - "RankType": 2, - "RankLevelId": 36, - "AwardMap": { - "100001": 30, - "100002": 68 - } - }, - { - "Id": 77, - "RankType": 2, - "RankLevelId": 37, - "AwardMap": { - "100001": 30, - "100002": 67 - } - }, - { - "Id": 78, - "RankType": 2, - "RankLevelId": 38, - "AwardMap": { - "100001": 30, - "100002": 66 - } - }, - { - "Id": 79, - "RankType": 2, - "RankLevelId": 39, - "AwardMap": { - "100001": 30, - "100002": 65 - } - }, - { - "Id": 80, - "RankType": 2, - "RankLevelId": 40, - "AwardMap": { - "100001": 30, - "100002": 64 - } - } - ] -} \ No newline at end of file diff --git a/data/DB_PigBank_Diamond.dat b/data/DB_PigBank_Diamond.dat index 3a06af9..ea6f47d 100644 --- a/data/DB_PigBank_Diamond.dat +++ b/data/DB_PigBank_Diamond.dat @@ -1,4 +1,4 @@  (8@;PdX`c -< ((22Ÿ8@;JƸJPdX` -?/ 2(2Ÿ28@;JƸJPdX` \ No newline at end of file +< ((2Ÿ28@;JƸJPdX` +?/ 2(2Ÿ28@;JJƸPdX` \ No newline at end of file diff --git a/data/DB_PropExchange.dat b/data/DB_PropExchange.dat index 42ec161..2708399 100644 Binary files a/data/DB_PropExchange.dat and b/data/DB_PropExchange.dat differ diff --git a/data/DB_Task.dat b/data/DB_Task.dat index 1ad019f..0bd5eec 100644 Binary files a/data/DB_Task.dat and b/data/DB_Task.dat differ diff --git a/data/DB_Task.json b/data/DB_Task.json index 1d61204..8aef01a 100644 --- a/data/DB_Task.json +++ b/data/DB_Task.json @@ -1239,9 +1239,9 @@ "Id": 13001, "Order": 1, "Name": "年兽活动", - "Des": "领取转盘签到奖励", + "Des": "领取年兽签到奖励", "ActivityType": 8, - "TaskType": 17, + "TaskType": 35, "TargetTimes": 1, "FinishTimes": 1, "Award": { @@ -1265,24 +1265,7 @@ "Id": 13003, "Order": 3, "Name": "年兽活动", - "Des": "购买任意金币1次", - "ActivityType": 8, - "TaskType": 2, - "TargetTimes": 1, - "FinishTimes": 1, - "Award": { - "50014": 10 - }, - "Position": [ - 0, - 1 - ] - }, - { - "Id": 13004, - "Order": 4, - "Name": "年兽活动", - "Des": "购买任意存钱罐1次", + "Des": "购买1次任意存钱罐", "ActivityType": 8, "TaskType": 22, "TargetTimes": 1, @@ -1292,83 +1275,93 @@ } }, { - "Id": 13005, - "Order": 5, + "Id": 13004, + "Order": 4, "Name": "年兽活动", - "Des": "参与大众场对局获得胜利3次", + "Des": "游戏Tienlen比赛场5次", "ActivityType": 8, - "TaskType": 23, - "TargetTimes": 3, + "TaskType": 25, + "TargetTimes": 1, "FinishTimes": 1, "Award": { "50014": 10 }, "GameType": 1 }, + { + "Id": 13005, + "Order": 5, + "Name": "年兽活动", + "Des": "游戏十三水10次", + "ActivityType": 8, + "TaskType": 5, + "TargetTimes": 10, + "FinishTimes": 1, + "Award": { + "50014": 10 + }, + "GameType": 2 + }, { "Id": 13006, "Order": 6, "Name": "年兽活动", - "Des": "参与排位赛获得胜利3次", + "Des": "今日累计赢取1M金币", "ActivityType": 8, - "TaskType": 30, - "TargetTimes": 3, + "TaskType": 8, + "TargetTimes": 1000000, "FinishTimes": 1, "Award": { "50014": 10 - }, - "GameType": 1 + } }, { "Id": 13007, "Order": 7, "Name": "年兽活动", - "Des": "邀请好友进行私人桌对局1次", + "Des": "今日消耗100钻石", "ActivityType": 8, - "TaskType": 24, - "TargetTimes": 1, + "TaskType": 27, + "TargetTimes": 100, "FinishTimes": 1, "Award": { "50014": 10 - }, - "GameType": 1 + } }, { "Id": 13008, "Order": 8, "Name": "年兽活动", - "Des": "成功参与比赛场3次", + "Des": "今日累计赢取5M金币", "ActivityType": 8, - "TaskType": 25, - "TargetTimes": 3, + "TaskType": 8, + "TargetTimes": 5000000, "FinishTimes": 1, "Award": { "50014": 10 - }, - "GameType": 1 + } }, { "Id": 13009, "Order": 9, "Name": "年兽活动", - "Des": "比赛场获得前十名1次", + "Des": "今日累计赢取10M金币", "ActivityType": 8, - "TaskType": 26, - "TargetTimes": 1, + "TaskType": 8, + "TargetTimes": 10000000, "FinishTimes": 1, "Award": { "50014": 10 - }, - "GameType": 1 + } }, { "Id": 13010, "Order": 10, "Name": "年兽活动", - "Des": "今日累计消耗100钻石", + "Des": "今日累计赢取20M金币", "ActivityType": 8, - "TaskType": 27, - "TargetTimes": 100, + "TaskType": 8, + "TargetTimes": 20000000, "FinishTimes": 1, "Award": { "50014": 10 @@ -1385,20 +1378,16 @@ "FinishTimes": 1, "Award": { "50014": 10 - }, - "Position": [ - 1, - 1 - ] + } }, { "Id": 13012, "Order": 12, "Name": "年兽活动", - "Des": "累计领取转盘签到奖励7天", - "ActivityType": 9, - "TaskType": 17, - "TargetTimes": 7, + "Des": "今日消耗500钻石", + "ActivityType": 8, + "TaskType": 27, + "TargetTimes": 500, "FinishTimes": 1, "Award": { "50014": 10 @@ -1408,6 +1397,19 @@ "Id": 13013, "Order": 13, "Name": "年兽活动", + "Des": "今日充值1.99$", + "ActivityType": 8, + "TaskType": 7, + "TargetTimes": 199, + "FinishTimes": 1, + "Award": { + "50015": 10 + } + }, + { + "Id": 13014, + "Order": 14, + "Name": "年兽活动", "Des": "参与红包雨活动1次", "ActivityType": 8, "TaskType": 32, @@ -1418,52 +1420,244 @@ } }, { - "Id": 13014, - "Order": 14, + "Id": 13015, + "Order": 15, "Name": "年兽活动", - "Des": "累计充值$9.99", + "Des": "成功对年兽造成伤害1000000点", + "ActivityType": 8, + "TaskType": 34, + "TargetTimes": 1000000, + "FinishTimes": 1, + "Award": { + "50015": 10 + } + }, + { + "Id": 13016, + "Order": 16, + "Name": "年兽活动", + "Des": "成功对年兽造成伤害10000000点", + "ActivityType": 8, + "TaskType": 34, + "TargetTimes": 10000000, + "FinishTimes": 1, + "Award": { + "50015": 10 + } + }, + { + "Id": 13017, + "Order": 17, + "Name": "年兽活动", + "Des": "累计充值9.99$", "ActivityType": 9, "TaskType": 7, "TargetTimes": 999, "FinishTimes": 1, "Award": { "50015": 10 - }, - "Position": [ - 1, - 1 - ] + } }, { - "Id": 13015, - "Order": 15, + "Id": 13018, + "Order": 18, "Name": "年兽活动", - "Des": "累计充值$19.99", + "Des": "累计充值19.99$", "ActivityType": 9, "TaskType": 7, "TargetTimes": 1999, "FinishTimes": 1, "Award": { "50015": 10 - }, - "Position": [ - 1, - 1 - ] + } }, { - "Id": 13016, - "Order": 16, + "Id": 13019, + "Order": 19, "Name": "年兽活动", - "Des": "累计赚取10B金币", + "Des": "累计充值59.99$", "ActivityType": 9, - "TaskType": 11, - "TargetTimes": 10000000000, + "TaskType": 7, + "TargetTimes": 5999, "FinishTimes": 1, "Award": { - "50015": 10 - }, - "GameType": 1 + "50014": 10 + } + }, + { + "Id": 13020, + "Order": 20, + "Name": "年兽活动", + "Des": "累计充值99.99$", + "ActivityType": 9, + "TaskType": 7, + "TargetTimes": 9999, + "FinishTimes": 1, + "Award": { + "50014": 10 + } + }, + { + "Id": 13021, + "Order": 21, + "Name": "年兽活动", + "Des": "成功击杀1只年兽", + "ActivityType": 9, + "TaskType": 33, + "TargetTimes": 1, + "FinishTimes": 1, + "Award": { + "50014": 10 + } + }, + { + "Id": 13022, + "Order": 22, + "Name": "年兽活动", + "Des": "成功击杀2只年兽", + "ActivityType": 9, + "TaskType": 33, + "TargetTimes": 2, + "FinishTimes": 1, + "Award": { + "50014": 10 + } + }, + { + "Id": 13023, + "Order": 23, + "Name": "年兽活动", + "Des": "成功击杀3只年兽", + "ActivityType": 9, + "TaskType": 33, + "TargetTimes": 3, + "FinishTimes": 1, + "Award": { + "50014": 10 + } + }, + { + "Id": 13024, + "Order": 24, + "Name": "年兽活动", + "Des": "成功击杀5只年兽", + "ActivityType": 9, + "TaskType": 33, + "TargetTimes": 5, + "FinishTimes": 1, + "Award": { + "50014": 10 + } + }, + { + "Id": 13025, + "Order": 25, + "Name": "年兽活动", + "Des": "成功击杀8只年兽", + "ActivityType": 9, + "TaskType": 33, + "TargetTimes": 8, + "FinishTimes": 1, + "Award": { + "50014": 10 + } + }, + { + "Id": 13026, + "Order": 26, + "Name": "年兽活动", + "Des": "成功击杀10只年兽", + "ActivityType": 9, + "TaskType": 33, + "TargetTimes": 10, + "FinishTimes": 1, + "Award": { + "50014": 10 + } + }, + { + "Id": 14001, + "Order": 1, + "Name": "累消活动", + "Des": "今日消耗99钻石", + "ActivityType": 10, + "TaskType": 27, + "TargetTimes": 99, + "FinishTimes": 1, + "Award": { + "100001": 100000, + "100002": 1 + } + }, + { + "Id": 14002, + "Order": 2, + "Name": "累消活动", + "Des": "今日消耗499钻石", + "ActivityType": 10, + "TaskType": 27, + "TargetTimes": 499, + "FinishTimes": 1, + "Award": { + "100001": 200000, + "100002": 2 + } + }, + { + "Id": 14003, + "Order": 3, + "Name": "累消活动", + "Des": "今日消耗999钻石", + "ActivityType": 10, + "TaskType": 27, + "TargetTimes": 999, + "FinishTimes": 1, + "Award": { + "100001": 300000, + "100002": 3 + } + }, + { + "Id": 14004, + "Order": 4, + "Name": "累消活动", + "Des": "今日消耗1999钻石", + "ActivityType": 10, + "TaskType": 27, + "TargetTimes": 1999, + "FinishTimes": 1, + "Award": { + "100001": 500000, + "100002": 5 + } + }, + { + "Id": 14005, + "Order": 5, + "Name": "累消活动", + "Des": "今日消耗2999钻石", + "ActivityType": 10, + "TaskType": 27, + "TargetTimes": 2999, + "FinishTimes": 1, + "Award": { + "100001": 1000000, + "100002": 10 + } + }, + { + "Id": 14006, + "Order": 6, + "Name": "累消活动", + "Des": "今日消耗4999钻石", + "ActivityType": 10, + "TaskType": 27, + "TargetTimes": 4999, + "FinishTimes": 1, + "Award": { + "100001": 2000000, + "100002": 20 + } } ] } \ No newline at end of file diff --git a/data/i18n/languages.json b/data/i18n/languages.json index 8a5080c..ce2cd99 100644 --- a/data/i18n/languages.json +++ b/data/i18n/languages.json @@ -14,5 +14,9 @@ "Upgrade": "{\"zh\":\"感谢您更新客户端,更新奖励已发放至附近,请注意查收\",\"vi\":\"Cảm ơn bạn đã cập nhật ứng dụng khách. Phần thưởng cập nhật đã được phân phối gần đó, vui lòng chú ý kiểm tra nhận\",\"en\":\"Thank you for updating the client. The update reward has been distributed to everyone. Please check it carefully.\",\"kh\":\"អរគុណសម្រាប់ការធ្វើបច្ចុប្បន្នភាពហ្គេម។ រង្វាន់នៃការធ្វើបច្ចុប្បន្នភាពត្រូវបានចែកចាយទៅគ្រប់គ្នា។ សូមពិនិត្យអោយបានច្បាស់លាស់។\"}", "LotteryTitle": "{\"zh\":\"玩游戏抽奖品\",\"vi\":\"Chơi game rút thưởng\",\"en\":\"Play games, draw prizes\",\"kh\":\"លេងហ្គេម ចាប់រង្វាន់\"}", "Lottery": "{\"zh\":\"恭喜您在好友房玩游戏抽奖品活动中获得了大奖,奖品随邮件发放,请注意查收\",\"vi\":\"Chúc mừng bạn đã trúng giải thưởng lớn trong hoạt động rút thưởng trò chơi tại phòng bạn bè. Giải thưởng sẽ được gửi qua email, vui lòng kiểm tra cẩn thận.\",\"en\":\"Congratulations on winning the grand prize in the lucky draw activity in the friend room. The prize will be sent via email, please check it carefully.\",\"kh\":\"សូមអបអរសាទរចំពោះការឈ្នះរង្វាន់ធំក្នុងសកម្មភាពចាប់រង្វាន់ក្នុងបន្ទប់មិត្តភ័ក្តិរបស់អ្នក រង្វាន់នឹងត្រូវបានផ្ញើតាមអ៊ីម៉ែល សូមពិនិត្យមើលវាដោយយកចិត្តទុកដាក់។\"}", - "TelCodeTitle": "{\"zh\":\"话费卡兑换码\",\"vi\":\"Mã đổi thẻ điện thoại\",\"en\":\"Phone card redemption code\",\"kh\":\"លេខកូដប្រោសលោះកាតទូរស័ព្ទ\"}" + "TelCodeTitle": "{\"zh\":\"话费卡兑换码\",\"vi\":\"Mã đổi thẻ điện thoại\",\"en\":\"Phone card redemption code\",\"kh\":\"លេខកូដប្រោសលោះកាតទូរស័ព្ទ\"}", + "NianLuckTitle": "{\"zh\":\"幸运榜排行奖励\",\"vi\":\"Vượt qua phần thưởng xếp hạng\",\"en\":\"Pass Ranking Rewards\",\"kh\":\"រង្វាន់ចំណាត់ថ្នាក់ឆ្លងកាត់\"}", + "NianLuckAward": "{\"zh\":\"恭喜您在昨日年兽活动幸运排行中名次达到%v名,排行奖励已发放,请查收\",\"vi\":\"Chúc mừng bạn đã đạt được %v trong bảng xếp hạng vượt qua. Phần thưởng xếp hạng đã được phân phối, vui lòng kiểm tra.\",\"en\":\"Congratulations on reaching %vth place in the pass ranking. Ranking rewards have been issued. Please check.\",\"kh\":\"សូមអបអរសាទរចំពោះការឈានដល់ចំណាត់ថ្នាក់ទី %v ក្នុងចំណាត់ថ្នាក់ឆ្លងកាត់។ រង្វាន់ចំណាត់ថ្នាក់ត្រូវបានចេញ។ សូមត្រួតពិនិត្យ។\"}", + "NianDamageTitle": "{\"zh\":\"年兽活动排行奖励\",\"vi\":\"Vượt qua phần thưởng xếp hạng\",\"en\":\"Pass Ranking Rewards\",\"kh\":\"រង្វាន់ចំណាត់ថ្នាក់ឆ្លងកាត់\"}", + "NianDamageAward": "{\"zh\":\"恭喜您在本次年兽活动总排行中名次达到%v名,排行奖励已发放,请查收\",\"vi\":\"Chúc mừng bạn đã đạt được %v trong bảng xếp hạng vượt qua. Phần thưởng xếp hạng đã được phân phối, vui lòng kiểm tra.\",\"en\":\"Congratulations on reaching %vth place in the pass ranking. Ranking rewards have been issued. Please check.\",\"kh\":\"សូមអបអរសាទរចំពោះការឈានដល់ចំណាត់ថ្នាក់ទី %v ក្នុងចំណាត់ថ្នាក់ឆ្លងកាត់។ រង្វាន់ចំណាត់ថ្នាក់ត្រូវបានចេញ។ សូមត្រួតពិនិត្យ។\"}" } \ No newline at end of file diff --git a/dbproxy/mq/c_rank.go b/dbproxy/mq/c_rank.go index ab0af9f..42110c3 100644 --- a/dbproxy/mq/c_rank.go +++ b/dbproxy/mq/c_rank.go @@ -76,4 +76,20 @@ func init() { return }, }) + //年兽排行榜 + mq.RegisterHandler(&mq.RegisterHandlerParam{ + Name: model.MQRankNian, + Data: &model.NianInfo{}, + Handler: func(data interface{}) (err error) { + log, ok := data.(*model.NianInfo) + if !ok { + return + } + err = svc.RankNianUpsert(log) + if err != nil { + logger.Logger.Errorf("RankNianUpsert err: %v", err) + } + return + }, + }) } diff --git a/dbproxy/svc/l_ranknian.go b/dbproxy/svc/l_ranknian.go new file mode 100644 index 0000000..868dc0f --- /dev/null +++ b/dbproxy/svc/l_ranknian.go @@ -0,0 +1,143 @@ +package svc + +import ( + "errors" + "github.com/globalsign/mgo" + "github.com/globalsign/mgo/bson" + "mongo.games.com/game/dbproxy/mongo" + "mongo.games.com/game/model" + "mongo.games.com/goserver/core/logger" + "net/rpc" +) + +var ( + RankNianDBName = "log" + RankNianCollName = "log_ranknian" + RankNianColError = errors.New("RankNian collection open failed") +) + +func RankNianCollection(plt string) *mongo.Collection { + s := mongo.MgoSessionMgrSington.GetPltMgoSession(plt, RankNianDBName) + if s != nil { + c, first := s.DB().C(RankNianCollName) + if first { + c.EnsureIndex(mgo.Index{Key: []string{"snid"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"-luck"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"-damage"}, Background: true, Sparse: true}) + } + return c + } + return nil +} + +func RankNianUpsert(args *model.NianInfo) error { + cc := RankNianCollection(args.Platform) + if cc == nil { + return RankNianColError + } + update := bson.M{ + "$set": bson.M{ + "platform": args.Platform, + "name": args.Name, + "damage": args.Damage, + "modid": args.ModId, + "ts": args.Ts, + }, + } + if args.Luck != 0 { + update["$set"].(bson.M)["luck"] = args.Luck + } + if args.LuckTime != 0 { + update["$set"].(bson.M)["lucktime"] = args.LuckTime + } + _, err := cc.Upsert( + bson.M{"snid": args.SnId}, + update, + ) + if err != nil && !errors.Is(err, mgo.ErrNotFound) { + logger.Logger.Error("RankNianSvc.Upsert is err: ", err) + return err + } + return nil +} + +type RankNianSvc struct { +} + +func (svc *RankNianSvc) Upsert(args *model.NianInfo, ret *bool) error { + err := RankNianUpsert(args) + if err != nil { + return err + } + *ret = true + return nil +} + +// 幸运榜 +func (svc *RankNianSvc) LuckFind(args *model.FindNianListArgs, ret *model.FindNianListReply) error { + fc := RankNianCollection(args.Platform) + if fc == nil { + return RankNianColError + } + + err := fc.Find(bson.M{"luck": bson.M{"$gt": 0}}).Sort("-luck").Limit(40).All(&ret.List) + if err != nil && !errors.Is(err, mgo.ErrNotFound) { + logger.Logger.Error("QueryMatchSeason is err: ", err) + return err + } + return nil +} + +// 伤害榜 +func (svc *RankNianSvc) DamageFind(args *model.FindNianListArgs, ret *model.FindNianListReply) error { + fc := RankNianCollection(args.Platform) + if fc == nil { + return RankNianColError + } + + err := fc.Find(bson.M{"damage": bson.M{"$gt": 0}}).Sort("-damage").Limit(40).All(&ret.List) + if err != nil && !errors.Is(err, mgo.ErrNotFound) { + logger.Logger.Error("QueryMatchSeason is err: ", err) + return err + } + return nil +} +func (svc *RankNianSvc) UpdateAll(args *model.FindNianListArgs, ret *model.FindNianListReply) error { + fc := RankNianCollection(args.Platform) + if fc == nil { + return RankNianColError + } + + // 根据 args 中的条件构建查询 + query := bson.M{"platform": args.Platform} + + update := bson.M{ + "$set": bson.M{ + "luck": 0, + "lucktime": 0, + }, + } + _, err := fc.UpdateAll(query, update) + if err != nil { + logger.Logger.Error("RankNianSvc.UpdateAll is err: ", err) + return err + } + return nil +} +func (svc *RankNianSvc) DelAll(args *model.FindNianListArgs, ret *model.FindNianListReply) error { + fc := RankNianCollection(args.Platform) + if fc == nil { + return RankNianColError + } + query := bson.M{"platform": args.Platform} + _, err := fc.RemoveAll(query) + if err != nil { + logger.Logger.Error("RankNianSvc.RemoveAll is err: ", err) + return err + } + + return nil +} +func init() { + rpc.Register(new(RankNianSvc)) +} diff --git a/etcd/keyconf.go b/etcd/keyconf.go index 64856b9..f7610b4 100644 --- a/etcd/keyconf.go +++ b/etcd/keyconf.go @@ -30,28 +30,29 @@ const ( ETCDKEY_PLAYERPOOL = "/game/plt/playerpool/" // 个人水池调控配置 ETCDKEY_GAME_CONFIG = "/game/plt/gameconfig/" // 游戏管理/全局配置 ETCDKEY_ACT_PHONELOTTERY = "/game/act_phoneLottery" - ETCDKEY_ChannelSwitch = "/game/channel/switch" // 渠道开关 - ETCDKEY_ACT_Invite = "/game/act_invite" // 邀请活动配置 - ETCDKEY_ACT_Permit = "/game/act_permit" // 赛季通行证配置 - ETCDKEY_DIAMOND_LOTTERY = "/game/diamond_lottery" // 钻石抽奖配置 - ETCDKEY_Item = "/game/item" // 道具列表 - ETCDKEY_SKin = "/game/skin_config" // 皮肤配置 - ETCDKEY_RANK_TYPE = "/game/RankType" // 排行榜奖励配置 - ETCDKEY_AWARD_CONFIG = "/game/awardlog_config" //获奖记录 - ETCDKEY_GUIDE = "/game/guide_config" //新手引导配置 - ETCDKEY_MACHINE = "/game/machine_config" //娃娃机配置 - ETCDKEY_MatchAudience = "/game/match_audience" //比赛观众 - ETCDKEY_Spirit = "/game/spirit" // 小精灵配置 - ETCDKEY_RoomType = "/game/room_type/" // 房间类型配置 - ETCDKEY_RoomConfig = "/game/room_config/" // 房间配置 - ETCDKEY_RoomConfigSystem = "/game/room_system" // 系统房间配置 - ETCDKEY_ClientUpgrade = "/game/client_upgrade" // 客户端升级奖励配置 - ETCDKEY_PopUpWindow = "/game/PopUpWindowConfig" //弹窗配置 - ETCDKEY_LotteryConfig = "/game/lottery" //抽奖配置 - ETCDKEY_LotteryUser = "/game/user_lottery" //抽奖用户必中配置 - ETCDKEY_PigBankDiamond = "/game/pigbank_diamond" //存钱罐消耗获得 - ETCDKEY_PigBankProp = "/game/pigbank_prop" //存钱罐属性 - ETCDKEY_NianConfig = "/game/activity_nian" //年兽活动配置 + ETCDKEY_ChannelSwitch = "/game/channel/switch" // 渠道开关 + ETCDKEY_ACT_Invite = "/game/act_invite" // 邀请活动配置 + ETCDKEY_ACT_Permit = "/game/act_permit" // 赛季通行证配置 + ETCDKEY_DIAMOND_LOTTERY = "/game/diamond_lottery" // 钻石抽奖配置 + ETCDKEY_Item = "/game/item" // 道具列表 + ETCDKEY_SKin = "/game/skin_config" // 皮肤配置 + ETCDKEY_RANK_TYPE = "/game/RankType" // 排行榜奖励配置 + ETCDKEY_AWARD_CONFIG = "/game/awardlog_config" //获奖记录 + ETCDKEY_GUIDE = "/game/guide_config" //新手引导配置 + ETCDKEY_MACHINE = "/game/machine_config" //娃娃机配置 + ETCDKEY_MatchAudience = "/game/match_audience" //比赛观众 + ETCDKEY_Spirit = "/game/spirit" // 小精灵配置 + ETCDKEY_RoomType = "/game/room_type/" // 房间类型配置 + ETCDKEY_RoomConfig = "/game/room_config/" // 房间配置 + ETCDKEY_RoomConfigSystem = "/game/room_system" // 系统房间配置 + ETCDKEY_ClientUpgrade = "/game/client_upgrade" // 客户端升级奖励配置 + ETCDKEY_PopUpWindow = "/game/PopUpWindowConfig" //弹窗配置 + ETCDKEY_LotteryConfig = "/game/lottery" //抽奖配置 + ETCDKEY_LotteryUser = "/game/user_lottery" //抽奖用户必中配置 + ETCDKEY_PigBankDiamond = "/game/pigbank_diamond" //存钱罐消耗获得 + ETCDKEY_PigBankProp = "/game/pigbank_prop" //存钱罐属性 + ETCDKEY_NianConfig = "/game/activity_nian" //年兽活动配置 + ETCDKEY_NianRankConfig = "/game/activity_nian_rank" //年兽排行榜配置 KeyRedPacket = "/game/act_redpacket" //红包配置 KeyActConsume = "/game/act_consume" //累计消耗活动配置 ) diff --git a/gamesrv/base/scene.go b/gamesrv/base/scene.go index 4f49ec0..8c550ef 100644 --- a/gamesrv/base/scene.go +++ b/gamesrv/base/scene.go @@ -2094,11 +2094,6 @@ func (this *Scene) Statistics(param *StaticParam) { logger.Logger.Tracef("Statistics gameId:%v wbLevel:%v gain:%v addGain:%v", this.GameId, wbLevel, param.Gain, addGain) - // 比赛场,私人房不统计 - if this.IsMatchScene() || this.IsPrivateScene() { - return - } - var totalIn int64 var totalOut int64 now := time.Now() @@ -2181,6 +2176,40 @@ func (this *Scene) Statistics(param *StaticParam) { statics = append(statics, &data.Statics) } + f := func(list []*model.PlayerGameStatics) { + for _, data := range list { + if data != nil { + if !this.IsMatchScene() && !this.IsPrivateScene() { // 比赛场,私人房不统计 + data.TotalIn += totalIn + data.TotalOut += totalOut + data.Tax += param.GainTax + } + if param.IsAddTimes { + data.GameTimes++ + if param.Gain > 0 { + data.WinGameTimes++ + data.WinGameTimesNum++ + data.LoseGameTimesNum = 0 + } else if param.Gain < 0 { + data.LoseGameTimes++ + data.LoseGameTimesNum++ + data.WinGameTimesNum = 0 + } else { + data.DrawGameTimes++ + data.WinGameTimesNum = 0 + data.LoseGameTimesNum = 0 + } + } + } + } + } + f(statics) + statics = statics[:0] + + if this.IsMatchScene() || this.IsPrivateScene() { + return + } + // 新手输赢统计 if !model.GameParamData.CloseNovice && !common.InSliceInt(model.GameParamData.CloseNoviceGame, int(this.GameId)) && isControl && wbLevel == 0 && isNovice { keyNoviceGameId := common.GetKeyNoviceGameId(int(this.GameId)) @@ -2249,29 +2278,8 @@ func (this *Scene) Statistics(param *StaticParam) { logger.Logger.Tracef("Statistics PlayerPool gameId:%v wbLevel:%v gain:%v addGain:%v", this.GameId, wbLevel, param.Gain, addGain) } - for _, data := range statics { - if data != nil { - data.TotalIn += totalIn - data.TotalOut += totalOut - data.Tax += param.GainTax - if param.IsAddTimes { - data.GameTimes++ - if param.Gain > 0 { - data.WinGameTimes++ - data.WinGameTimesNum++ - data.LoseGameTimesNum = 0 - } else if param.Gain < 0 { - data.LoseGameTimes++ - data.LoseGameTimesNum++ - data.WinGameTimesNum = 0 - } else { - data.DrawGameTimes++ - data.WinGameTimesNum = 0 - data.LoseGameTimesNum = 0 - } - } - } - } + f(statics) + statics = statics[:0] // 玩家身上元数据 if param.IsAddTimes { diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/FortuneDragon/Bet.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/FortuneDragon/Bet.xlsx index 229e2df..d4bc52e 100644 Binary files a/gamesrv/slotspkg/external/excel/Base/Slots/FortuneDragon/Bet.xlsx and b/gamesrv/slotspkg/external/excel/Base/Slots/FortuneDragon/Bet.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/FortuneMouse/Bet.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/FortuneMouse/Bet.xlsx index 4502c03..da3334f 100644 Binary files a/gamesrv/slotspkg/external/excel/Base/Slots/FortuneMouse/Bet.xlsx and b/gamesrv/slotspkg/external/excel/Base/Slots/FortuneMouse/Bet.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/FortuneOx/Bet.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/FortuneOx/Bet.xlsx index f223f36..98d7f02 100644 Binary files a/gamesrv/slotspkg/external/excel/Base/Slots/FortuneOx/Bet.xlsx and b/gamesrv/slotspkg/external/excel/Base/Slots/FortuneOx/Bet.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/FortuneRabbit/Bet.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/FortuneRabbit/Bet.xlsx index 8ccbf99..a17f78f 100644 Binary files a/gamesrv/slotspkg/external/excel/Base/Slots/FortuneRabbit/Bet.xlsx and b/gamesrv/slotspkg/external/excel/Base/Slots/FortuneRabbit/Bet.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/FortuneTiger/Bet.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/FortuneTiger/Bet.xlsx index edea319..125e8a1 100644 Binary files a/gamesrv/slotspkg/external/excel/Base/Slots/FortuneTiger/Bet.xlsx and b/gamesrv/slotspkg/external/excel/Base/Slots/FortuneTiger/Bet.xlsx differ diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/cash_mania.go b/gamesrv/slotspkg/internal/exported/excel2go/base/cash_mania.go index ff48968..868f814 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/cash_mania.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/cash_mania.go @@ -9,131 +9,131 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { CashManiaBetBetChangeList = map[int64]*structs.CashManiaBetBetChangeList{ 0: { - Index: 0, + Index: 0, BetChangeList: 0.3, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 0, }, 1: { - Index: 1, + Index: 1, BetChangeList: 0.6, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 1, }, 2: { - Index: 2, + Index: 2, BetChangeList: 0.9, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 2, }, 3: { - Index: 3, + Index: 3, BetChangeList: 1, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 0, }, 4: { - Index: 4, + Index: 4, BetChangeList: 1.5, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 4, }, 5: { - Index: 5, + Index: 5, BetChangeList: 3, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 9, }, 6: { - Index: 6, + Index: 6, BetChangeList: 5, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 4, }, 7: { - Index: 7, + Index: 7, BetChangeList: 9, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 0, }, 8: { - Index: 8, + Index: 8, BetChangeList: 10, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 9, }, 9: { - Index: 9, + Index: 9, BetChangeList: 15, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 4, }, 10: { - Index: 10, + Index: 10, BetChangeList: 30, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 9, }, 11: { - Index: 11, + Index: 11, BetChangeList: 45, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 4, }, 12: { - Index: 12, + Index: 12, BetChangeList: 90, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 9, }, } CashManiaBetBetLevel = map[int64]*structs.CashManiaBetBetLevel{ 0: { - Index: 0, + Index: 0, BetLevel: 1, }, 1: { - Index: 1, + Index: 1, BetLevel: 2, }, 2: { - Index: 2, + Index: 2, BetLevel: 3, }, 3: { - Index: 3, + Index: 3, BetLevel: 4, }, 4: { - Index: 4, + Index: 4, BetLevel: 5, }, 5: { - Index: 5, + Index: 5, BetLevel: 6, }, 6: { - Index: 6, + Index: 6, BetLevel: 7, }, 7: { - Index: 7, + Index: 7, BetLevel: 8, }, 8: { - Index: 8, + Index: 8, BetLevel: 9, }, 9: { - Index: 9, + Index: 9, BetLevel: 10, }, } CashManiaBetBetLine = map[int64]*structs.CashManiaBetBetLine{ 0: { - Index: 0, + Index: 0, BetLine: 1, BaseBet: 10, }, @@ -141,55 +141,55 @@ func init() { CashManiaBetBetSize = map[int64]*structs.CashManiaBetBetSize{ 0: { - Index: 0, + Index: 0, BetSize: 300, }, 1: { - Index: 1, + Index: 1, BetSize: 1000, }, 2: { - Index: 2, + Index: 2, BetSize: 3000, }, 3: { - Index: 3, + Index: 3, BetSize: 9000, }, } CashManiaBetFirstBet = map[int64]*structs.CashManiaBetFirstBet{ 1: { - Index: 1, - BetSizeIndex: 1, + Index: 1, + BetSizeIndex: 1, BetLevelIndex: 0, }, } CashManiaFormation = []*structs.CashManiaFormation{ { - SpinType: 1, - NodeType: "BaseSpin", - ID: 1, - SeqID: 1, - Reel: "BaseSpin", - Matrix: "Line1Form5X5TypeA", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 4, + SpinType: 1, + NodeType: "BaseSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "Line1Form5X5TypeA", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, { - SpinType: 2, - NodeType: "FreeSpin", - ID: 1, - SeqID: 1, - Reel: "BaseSpin", - Matrix: "Line1Form5X5TypeA", - Symbol: "Default", - FirstInitMethod: 3, - OtherInitMethod: 3, + SpinType: 2, + NodeType: "FreeSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "Line1Form5X5TypeA", + Symbol: "Default", + FirstInitMethod: 3, + OtherInitMethod: 3, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, @@ -197,124 +197,124 @@ func init() { CashManiaItemInfo = map[int64]*structs.CashManiaItemInfo{ 1: { - Index: 1, + Index: 1, ItemID: 1, - Value: 10, - IsMid: false, + Value: 10, + IsMid: false, }, 2: { - Index: 2, + Index: 2, ItemID: 2, - Value: 5, - IsMid: false, + Value: 5, + IsMid: false, }, 3: { - Index: 3, + Index: 3, ItemID: 3, - Value: 1, - IsMid: false, + Value: 1, + IsMid: false, }, 4: { - Index: 4, + Index: 4, ItemID: 4, - Value: 0.5, - IsMid: false, + Value: 0.5, + IsMid: false, }, 5: { - Index: 5, + Index: 5, ItemID: 5, - Value: 0.1, - IsMid: false, + Value: 0.1, + IsMid: false, }, 6: { - Index: 6, + Index: 6, ItemID: 6, - Value: 1, - IsMid: true, + Value: 1, + IsMid: true, }, 7: { - Index: 7, + Index: 7, ItemID: 7, - Value: 1, - IsMid: true, + Value: 1, + IsMid: true, }, 8: { - Index: 8, + Index: 8, ItemID: 8, - Value: 1, - IsMid: true, + Value: 1, + IsMid: true, }, 9: { - Index: 9, + Index: 9, ItemID: 9, - Value: 1, - IsMid: true, + Value: 1, + IsMid: true, }, 10: { - Index: 10, + Index: 10, ItemID: 10, - Value: 2, - IsMid: true, + Value: 2, + IsMid: true, }, 11: { - Index: 11, + Index: 11, ItemID: 11, - Value: 3, - IsMid: true, + Value: 3, + IsMid: true, }, 12: { - Index: 12, + Index: 12, ItemID: 12, - Value: 5, - IsMid: true, + Value: 5, + IsMid: true, }, 13: { - Index: 13, + Index: 13, ItemID: 13, - Value: 10, - IsMid: true, + Value: 10, + IsMid: true, }, 14: { - Index: 14, + Index: 14, ItemID: 14, - Value: 15, - IsMid: true, + Value: 15, + IsMid: true, }, 15: { - Index: 15, + Index: 15, ItemID: 15, - Value: 20, - IsMid: true, + Value: 20, + IsMid: true, }, 16: { - Index: 16, + Index: 16, ItemID: 16, - Value: 30, - IsMid: true, + Value: 30, + IsMid: true, }, 17: { - Index: 17, + Index: 17, ItemID: 17, - Value: 40, - IsMid: true, + Value: 40, + IsMid: true, }, 18: { - Index: 18, + Index: 18, ItemID: 18, - Value: 50, - IsMid: true, + Value: 50, + IsMid: true, }, 19: { - Index: 19, + Index: 19, ItemID: 19, - Value: 100, - IsMid: true, + Value: 100, + IsMid: true, }, 200: { - Index: 200, + Index: 200, ItemID: 200, - Value: 0, - IsMid: true, + Value: 0, + IsMid: true, }, } @@ -323,164 +323,164 @@ func init() { ID: 1, TypeWeight: map[int64]*structs.CashManiaMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "96", - Rtp: 0.96, + Rtp: 0.96, }, 2: { ID: 2, TypeWeight: map[int64]*structs.CashManiaMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "80", - Rtp: 0.8, + Rtp: 0.8, }, 3: { ID: 3, TypeWeight: map[int64]*structs.CashManiaMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "120", - Rtp: 1.2, + Rtp: 1.2, }, } CashManiaMidItemInfo = map[int64]*structs.CashManiaMidItemInfo{ 6: { - Index: 6, - ItemID: 6, - Multi: 1, + Index: 6, + ItemID: 6, + Multi: 1, FreeSpinCount: 5, }, 7: { - Index: 7, - ItemID: 7, - Multi: 1, + Index: 7, + ItemID: 7, + Multi: 1, FreeSpinCount: 10, }, 8: { - Index: 8, - ItemID: 8, - Multi: 1, + Index: 8, + ItemID: 8, + Multi: 1, FreeSpinCount: 20, }, 9: { - Index: 9, - ItemID: 9, - Multi: 1, + Index: 9, + ItemID: 9, + Multi: 1, FreeSpinCount: 0, }, 10: { - Index: 10, - ItemID: 10, - Multi: 2, + Index: 10, + ItemID: 10, + Multi: 2, FreeSpinCount: 0, }, 11: { - Index: 11, - ItemID: 11, - Multi: 3, + Index: 11, + ItemID: 11, + Multi: 3, FreeSpinCount: 0, }, 12: { - Index: 12, - ItemID: 12, - Multi: 5, + Index: 12, + ItemID: 12, + Multi: 5, FreeSpinCount: 0, }, 13: { - Index: 13, - ItemID: 13, - Multi: 10, + Index: 13, + ItemID: 13, + Multi: 10, FreeSpinCount: 0, }, 14: { - Index: 14, - ItemID: 14, - Multi: 15, + Index: 14, + ItemID: 14, + Multi: 15, FreeSpinCount: 0, }, 15: { - Index: 15, - ItemID: 15, - Multi: 20, + Index: 15, + ItemID: 15, + Multi: 20, FreeSpinCount: 0, }, 16: { - Index: 16, - ItemID: 16, - Multi: 30, + Index: 16, + ItemID: 16, + Multi: 30, FreeSpinCount: 0, }, 17: { - Index: 17, - ItemID: 17, - Multi: 40, + Index: 17, + ItemID: 17, + Multi: 40, FreeSpinCount: 0, }, 18: { - Index: 18, - ItemID: 18, - Multi: 50, + Index: 18, + ItemID: 18, + Multi: 50, FreeSpinCount: 0, }, 19: { - Index: 19, - ItemID: 19, - Multi: 100, + Index: 19, + ItemID: 19, + Multi: 100, FreeSpinCount: 0, }, } CashManiaOthers = []*structs.CashManiaOthers{ { - BaseWinPro: 0.15, - FreeWinPro: 0.15, - MaxWin: 2000, - WinNudgePro: 0.01, - WinRespinPro: 0.02, - NoWinNudgePro: 0.005, + BaseWinPro: 0.15, + FreeWinPro: 0.15, + MaxWin: 2000, + WinNudgePro: 0.01, + WinRespinPro: 0.02, + NoWinNudgePro: 0.005, NoWinRespinPro: 0.02, }, } CashManiaRandomItemWeight = []*structs.CashManiaRandomItemWeight{ { - ID: 1, - ItemID: 1, + ID: 1, + ItemID: 1, BaseWeight: 1, FreeWeight: 1, }, { - ID: 2, - ItemID: 2, + ID: 2, + ItemID: 2, BaseWeight: 1, FreeWeight: 1, }, { - ID: 3, - ItemID: 3, + ID: 3, + ItemID: 3, BaseWeight: 1, FreeWeight: 1, }, { - ID: 4, - ItemID: 4, + ID: 4, + ItemID: 4, BaseWeight: 1, FreeWeight: 1, }, { - ID: 5, - ItemID: 5, + ID: 5, + ItemID: 5, BaseWeight: 1, FreeWeight: 1, }, @@ -488,86 +488,86 @@ func init() { CashManiaRandomMidWeight = []*structs.CashManiaRandomMidWeight{ { - ID: 1, - ItemID: 6, + ID: 1, + ItemID: 6, BaseWeight: 12, FreeWeight: 12, }, { - ID: 2, - ItemID: 7, + ID: 2, + ItemID: 7, BaseWeight: 4, FreeWeight: 4, }, { - ID: 3, - ItemID: 8, + ID: 3, + ItemID: 8, BaseWeight: 1, FreeWeight: 1, }, { - ID: 4, - ItemID: 9, + ID: 4, + ItemID: 9, BaseWeight: 33, FreeWeight: 33, }, { - ID: 5, - ItemID: 10, + ID: 5, + ItemID: 10, BaseWeight: 50, FreeWeight: 50, }, { - ID: 6, - ItemID: 11, + ID: 6, + ItemID: 11, BaseWeight: 50, FreeWeight: 50, }, { - ID: 7, - ItemID: 12, + ID: 7, + ItemID: 12, BaseWeight: 50, FreeWeight: 50, }, { - ID: 8, - ItemID: 13, + ID: 8, + ItemID: 13, BaseWeight: 50, FreeWeight: 50, }, { - ID: 9, - ItemID: 14, + ID: 9, + ItemID: 14, BaseWeight: 50, FreeWeight: 50, }, { - ID: 10, - ItemID: 15, + ID: 10, + ItemID: 15, BaseWeight: 50, FreeWeight: 50, }, { - ID: 11, - ItemID: 16, + ID: 11, + ItemID: 16, BaseWeight: 50, FreeWeight: 50, }, { - ID: 12, - ItemID: 17, + ID: 12, + ItemID: 17, BaseWeight: 50, FreeWeight: 50, }, { - ID: 13, - ItemID: 18, + ID: 13, + ItemID: 18, BaseWeight: 50, FreeWeight: 50, }, { - ID: 14, - ItemID: 19, + ID: 14, + ItemID: 19, BaseWeight: 50, FreeWeight: 50, }, @@ -591,184 +591,184 @@ func init() { CashManiaSymbol = map[int64]*structs.CashManiaSymbol{ 1: { - ID: 1, - Name: "10倍", - IsWild: false, - Group: []int64{1}, - PayRate: []int64{0, 0, 100}, + ID: 1, + Name: "10倍", + IsWild: false, + Group: []int64{1}, + PayRate: []int64{0, 0, 100}, ClientOrder: 1, - ClientDsc: "", + ClientDsc: "", }, 2: { - ID: 2, - Name: "5倍", - IsWild: false, - Group: []int64{2}, - PayRate: []int64{0, 0, 50}, + ID: 2, + Name: "5倍", + IsWild: false, + Group: []int64{2}, + PayRate: []int64{0, 0, 50}, ClientOrder: 2, - ClientDsc: "", + ClientDsc: "", }, 3: { - ID: 3, - Name: "1倍", - IsWild: false, - Group: []int64{3}, - PayRate: []int64{0, 0, 10}, + ID: 3, + Name: "1倍", + IsWild: false, + Group: []int64{3}, + PayRate: []int64{0, 0, 10}, ClientOrder: 3, - ClientDsc: "", + ClientDsc: "", }, 4: { - ID: 4, - Name: "0.5倍", - IsWild: false, - Group: []int64{4}, - PayRate: []int64{0, 0, 5}, + ID: 4, + Name: "0.5倍", + IsWild: false, + Group: []int64{4}, + PayRate: []int64{0, 0, 5}, ClientOrder: 4, - ClientDsc: "", + ClientDsc: "", }, 5: { - ID: 5, - Name: "0.1倍", - IsWild: false, - Group: []int64{5}, - PayRate: []int64{0, 0, 1}, + ID: 5, + Name: "0.1倍", + IsWild: false, + Group: []int64{5}, + PayRate: []int64{0, 0, 1}, ClientOrder: 5, - ClientDsc: "", + ClientDsc: "", }, 6: { - ID: 6, - Name: "5FreeSpin", - IsWild: true, - Group: []int64{6}, - PayRate: []int64{0, 0, 0}, + ID: 6, + Name: "5FreeSpin", + IsWild: true, + Group: []int64{6}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 7: { - ID: 7, - Name: "10FreeSpin", - IsWild: true, - Group: []int64{7}, - PayRate: []int64{0, 0, 0}, + ID: 7, + Name: "10FreeSpin", + IsWild: true, + Group: []int64{7}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 8: { - ID: 8, - Name: "20FreeSpin", - IsWild: true, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 8, + Name: "20FreeSpin", + IsWild: true, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 9: { - ID: 9, - Name: "wildx1", - IsWild: true, - Group: []int64{9}, - PayRate: []int64{0, 0, 0}, + ID: 9, + Name: "wildx1", + IsWild: true, + Group: []int64{9}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 10: { - ID: 10, - Name: "wildx2", - IsWild: true, - Group: []int64{10}, - PayRate: []int64{0, 0, 0}, + ID: 10, + Name: "wildx2", + IsWild: true, + Group: []int64{10}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 11: { - ID: 11, - Name: "wildx3", - IsWild: true, - Group: []int64{11}, - PayRate: []int64{0, 0, 0}, + ID: 11, + Name: "wildx3", + IsWild: true, + Group: []int64{11}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 12: { - ID: 12, - Name: "wildx5", - IsWild: true, - Group: []int64{12}, - PayRate: []int64{0, 0, 0}, + ID: 12, + Name: "wildx5", + IsWild: true, + Group: []int64{12}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 13: { - ID: 13, - Name: "wildx10", - IsWild: true, - Group: []int64{13}, - PayRate: []int64{0, 0, 0}, + ID: 13, + Name: "wildx10", + IsWild: true, + Group: []int64{13}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 14: { - ID: 14, - Name: "wildx15", - IsWild: true, - Group: []int64{14}, - PayRate: []int64{0, 0, 0}, + ID: 14, + Name: "wildx15", + IsWild: true, + Group: []int64{14}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 15: { - ID: 15, - Name: "wildx20", - IsWild: true, - Group: []int64{15}, - PayRate: []int64{0, 0, 0}, + ID: 15, + Name: "wildx20", + IsWild: true, + Group: []int64{15}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 16: { - ID: 16, - Name: "wildx30", - IsWild: true, - Group: []int64{16}, - PayRate: []int64{0, 0, 0}, + ID: 16, + Name: "wildx30", + IsWild: true, + Group: []int64{16}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 17: { - ID: 17, - Name: "wildx40", - IsWild: true, - Group: []int64{17}, - PayRate: []int64{0, 0, 0}, + ID: 17, + Name: "wildx40", + IsWild: true, + Group: []int64{17}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 18: { - ID: 18, - Name: "wildx50", - IsWild: true, - Group: []int64{18}, - PayRate: []int64{0, 0, 0}, + ID: 18, + Name: "wildx50", + IsWild: true, + Group: []int64{18}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 19: { - ID: 19, - Name: "wildx100", - IsWild: true, - Group: []int64{19}, - PayRate: []int64{0, 0, 0}, + ID: 19, + Name: "wildx100", + IsWild: true, + Group: []int64{19}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 200: { - ID: 200, - Name: "empty", - IsWild: false, - Group: []int64{200}, - PayRate: []int64{0, 0, 0}, + ID: 200, + Name: "empty", + IsWild: false, + Group: []int64{200}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, } @@ -780,32 +780,32 @@ func init() { CashManiaWinItemWeight = []*structs.CashManiaWinItemWeight{ { - ID: 1, - ItemID: 1, + ID: 1, + ItemID: 1, BaseWeight: 8, FreeWeight: 18, }, { - ID: 2, - ItemID: 2, + ID: 2, + ItemID: 2, BaseWeight: 18, FreeWeight: 15, }, { - ID: 3, - ItemID: 3, + ID: 3, + ItemID: 3, BaseWeight: 18, FreeWeight: 36, }, { - ID: 4, - ItemID: 4, + ID: 4, + ItemID: 4, BaseWeight: 28, FreeWeight: 29, }, { - ID: 5, - ItemID: 5, + ID: 5, + ItemID: 5, BaseWeight: 28, FreeWeight: 27, }, @@ -813,89 +813,89 @@ func init() { CashManiaWinMidWeight = []*structs.CashManiaWinMidWeight{ { - ID: 1, - ItemID: 6, + ID: 1, + ItemID: 6, BaseWeight: 48, FreeWeight: 4, }, { - ID: 2, - ItemID: 7, + ID: 2, + ItemID: 7, BaseWeight: 24, FreeWeight: 0, }, { - ID: 3, - ItemID: 8, + ID: 3, + ItemID: 8, BaseWeight: 6, FreeWeight: 0, }, { - ID: 4, - ItemID: 9, + ID: 4, + ItemID: 9, BaseWeight: 322, FreeWeight: 56, }, { - ID: 5, - ItemID: 10, + ID: 5, + ItemID: 10, BaseWeight: 800, FreeWeight: 30, }, { - ID: 6, - ItemID: 11, + ID: 6, + ItemID: 11, BaseWeight: 300, FreeWeight: 15, }, { - ID: 7, - ItemID: 12, + ID: 7, + ItemID: 12, BaseWeight: 200, FreeWeight: 10, }, { - ID: 8, - ItemID: 13, + ID: 8, + ItemID: 13, BaseWeight: 10, FreeWeight: 1, }, { - ID: 9, - ItemID: 14, + ID: 9, + ItemID: 14, BaseWeight: 10, FreeWeight: 1, }, { - ID: 10, - ItemID: 15, + ID: 10, + ItemID: 15, BaseWeight: 1, FreeWeight: 5, }, { - ID: 11, - ItemID: 16, + ID: 11, + ItemID: 16, BaseWeight: 1, FreeWeight: 2, }, { - ID: 12, - ItemID: 17, + ID: 12, + ItemID: 17, BaseWeight: 1, FreeWeight: 2, }, { - ID: 13, - ItemID: 18, + ID: 13, + ItemID: 18, BaseWeight: 0, FreeWeight: 2, }, { - ID: 14, - ItemID: 19, + ID: 14, + ItemID: 19, BaseWeight: 0, FreeWeight: 2, }, } -} \ No newline at end of file +} diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_dragon.go b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_dragon.go index 7a793c0..bad7a6d 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_dragon.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_dragon.go @@ -9,170 +9,170 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { FortuneDragonBaseMultiplier = []*structs.FortuneDragonBaseMultiplier{ { - WinRateMin: 0, - WinRateMax: 0.01, - ItemIds: []int64{200, 8, 9, 10}, + WinRateMin: 0, + WinRateMax: 0.01, + ItemIds: []int64{200, 8, 9, 10}, MultiplierWeights: []int64{140, 10, 20, 10}, }, { - WinRateMin: 0.01, - WinRateMax: 1, - ItemIds: []int64{200, 8, 9, 10}, + WinRateMin: 0.01, + WinRateMax: 1, + ItemIds: []int64{200, 8, 9, 10}, MultiplierWeights: []int64{1689, 98, 176, 100}, }, { - WinRateMin: 1, - WinRateMax: 3, - ItemIds: []int64{200, 8, 9, 10}, + WinRateMin: 1, + WinRateMax: 3, + ItemIds: []int64{200, 8, 9, 10}, MultiplierWeights: []int64{60, 8, 10, 2}, }, { - WinRateMin: 3, - WinRateMax: 10, - ItemIds: []int64{200, 8, 9, 10}, + WinRateMin: 3, + WinRateMax: 10, + ItemIds: []int64{200, 8, 9, 10}, MultiplierWeights: []int64{2883, 100, 100, 250}, }, { - WinRateMin: 10, - WinRateMax: 20, - ItemIds: []int64{200, 8, 9, 10}, + WinRateMin: 10, + WinRateMax: 20, + ItemIds: []int64{200, 8, 9, 10}, MultiplierWeights: []int64{820, 1585, 100, 10}, }, { - WinRateMin: 20, - WinRateMax: 999999, - ItemIds: []int64{200, 8, 9, 10}, + WinRateMin: 20, + WinRateMax: 999999, + ItemIds: []int64{200, 8, 9, 10}, MultiplierWeights: []int64{2884, 8, 10, 287}, }, } FortuneDragonBetBetChangeList = map[int64]*structs.FortuneDragonBetBetChangeList{ 0: { - Index: 0, - BetChangeList: 150000, - BetSizeIndex: 0, + Index: 0, + BetChangeList: 6000, + BetSizeIndex: 0, BetLevelIndex: 0, }, 1: { - Index: 1, - BetChangeList: 300000, - BetSizeIndex: 0, + Index: 1, + BetChangeList: 12000, + BetSizeIndex: 0, BetLevelIndex: 1, }, 2: { - Index: 2, - BetChangeList: 450000, - BetSizeIndex: 0, + Index: 2, + BetChangeList: 18000, + BetSizeIndex: 0, BetLevelIndex: 2, }, 3: { - Index: 3, - BetChangeList: 500000, - BetSizeIndex: 1, + Index: 3, + BetChangeList: 20000, + BetSizeIndex: 1, BetLevelIndex: 0, }, 4: { - Index: 4, - BetChangeList: 750000, - BetSizeIndex: 0, + Index: 4, + BetChangeList: 30000, + BetSizeIndex: 0, BetLevelIndex: 4, }, 5: { - Index: 5, - BetChangeList: 1500000, - BetSizeIndex: 0, + Index: 5, + BetChangeList: 60000, + BetSizeIndex: 0, BetLevelIndex: 9, }, 6: { - Index: 6, - BetChangeList: 2500000, - BetSizeIndex: 1, + Index: 6, + BetChangeList: 100000, + BetSizeIndex: 1, BetLevelIndex: 4, }, 7: { - Index: 7, - BetChangeList: 4500000, - BetSizeIndex: 3, + Index: 7, + BetChangeList: 180000, + BetSizeIndex: 3, BetLevelIndex: 0, }, 8: { - Index: 8, - BetChangeList: 5000000, - BetSizeIndex: 1, + Index: 8, + BetChangeList: 200000, + BetSizeIndex: 1, BetLevelIndex: 9, }, 9: { - Index: 9, - BetChangeList: 7500000, - BetSizeIndex: 2, + Index: 9, + BetChangeList: 300000, + BetSizeIndex: 2, BetLevelIndex: 4, }, 10: { - Index: 10, - BetChangeList: 15000000, - BetSizeIndex: 2, + Index: 10, + BetChangeList: 600000, + BetSizeIndex: 2, BetLevelIndex: 9, }, 11: { - Index: 11, - BetChangeList: 22500000, - BetSizeIndex: 3, + Index: 11, + BetChangeList: 900000, + BetSizeIndex: 3, BetLevelIndex: 4, }, 12: { - Index: 12, - BetChangeList: 45000000, - BetSizeIndex: 3, + Index: 12, + BetChangeList: 1800000, + BetSizeIndex: 3, BetLevelIndex: 9, }, } FortuneDragonBetBetLevel = map[int64]*structs.FortuneDragonBetBetLevel{ 0: { - Index: 0, + Index: 0, BetLevel: 1, }, 1: { - Index: 1, + Index: 1, BetLevel: 2, }, 2: { - Index: 2, + Index: 2, BetLevel: 3, }, 3: { - Index: 3, + Index: 3, BetLevel: 4, }, 4: { - Index: 4, + Index: 4, BetLevel: 5, }, 5: { - Index: 5, + Index: 5, BetLevel: 6, }, 6: { - Index: 6, + Index: 6, BetLevel: 7, }, 7: { - Index: 7, + Index: 7, BetLevel: 8, }, 8: { - Index: 8, + Index: 8, BetLevel: 9, }, 9: { - Index: 9, + Index: 9, BetLevel: 10, }, } FortuneDragonBetBetLine = map[int64]*structs.FortuneDragonBetBetLine{ 0: { - Index: 0, + Index: 0, BetLine: 5, BaseBet: 1, }, @@ -180,81 +180,81 @@ func init() { FortuneDragonBetBetSize = map[int64]*structs.FortuneDragonBetBetSize{ 0: { - Index: 0, - BetSize: 300000000, + Index: 0, + BetSize: 6000000, }, 1: { - Index: 1, - BetSize: 1000000000, + Index: 1, + BetSize: 20000000, }, 2: { - Index: 2, - BetSize: 3000000000, + Index: 2, + BetSize: 60000000, }, 3: { - Index: 3, - BetSize: 9000000000, + Index: 3, + BetSize: 180000000, }, } FortuneDragonBetFirstBet = map[int64]*structs.FortuneDragonBetFirstBet{ 1: { - Index: 1, - BetSizeIndex: 1, + Index: 1, + BetSizeIndex: 1, BetLevelIndex: 1, }, } FortuneDragonFormation = []*structs.FortuneDragonFormation{ { - SpinType: 1, - NodeType: "BaseSpin", - ID: 1, - SeqID: 1, - Reel: "BaseSpin", - Matrix: "Line5Form3X3TypeB", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 4, + SpinType: 1, + NodeType: "BaseSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "Line5Form3X3TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, { - SpinType: 3, - NodeType: "FreeSpin", - ID: 1, - SeqID: 1, - Reel: "FreeSpin", - Matrix: "Line5Form3X3TypeB", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 2, + SpinType: 3, + NodeType: "FreeSpin", + ID: 1, + SeqID: 1, + Reel: "FreeSpin", + Matrix: "Line5Form3X3TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 2, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, { - SpinType: 1, - NodeType: "SureWinBaseSpin", - ID: 1, - SeqID: 1, - Reel: "SureWinBaseSpin", - Matrix: "Line5Form3X3TypeB", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 4, + SpinType: 1, + NodeType: "SureWinBaseSpin", + ID: 1, + SeqID: 1, + Reel: "SureWinBaseSpin", + Matrix: "Line5Form3X3TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, { - SpinType: 3, - NodeType: "SureWinFreeSpin", - ID: 1, - SeqID: 1, - Reel: "SureWinFreeSpin", - Matrix: "Line5Form3X3TypeB", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 2, + SpinType: 3, + NodeType: "SureWinFreeSpin", + ID: 1, + SeqID: 1, + Reel: "SureWinFreeSpin", + Matrix: "Line5Form3X3TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 2, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, @@ -278,11 +278,11 @@ func init() { FortuneDragonFreeMultiplierCount = []*structs.FortuneDragonFreeMultiplierCount{ { MultiplierCount: 2, - Weight: 3, + Weight: 3, }, { MultiplierCount: 3, - Weight: 1, + Weight: 1, }, } @@ -291,44 +291,44 @@ func init() { ID: 1, TypeWeight: map[int64]*structs.FortuneDragonMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "96", - Rtp: 0.96, + Rtp: 0.96, }, 2: { ID: 2, TypeWeight: map[int64]*structs.FortuneDragonMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "80", - Rtp: 0.8, + Rtp: 0.8, }, 3: { ID: 3, TypeWeight: map[int64]*structs.FortuneDragonMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "120", - Rtp: 1.2, + Rtp: 1.2, }, } FortuneDragonOthers = []*structs.FortuneDragonOthers{ { - FreespinTriggerPro: 0.005, - FreeSpinCount: 8, - MaxWin: 2500, + FreespinTriggerPro: 0.005, + FreeSpinCount: 8, + MaxWin: 2500, SureWinFreespinTriggerPro: 0.0273, - SureWinBetMultiplier: 5, + SureWinBetMultiplier: 5, }, } @@ -398,103 +398,103 @@ func init() { FortuneDragonSymbol = map[int64]*structs.FortuneDragonSymbol{ 1: { - ID: 1, - Name: "Wild", - IsWild: true, - Group: []int64{1}, - PayRate: []int64{0, 0, 100}, + ID: 1, + Name: "Wild", + IsWild: true, + Group: []int64{1}, + PayRate: []int64{0, 0, 100}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 2: { - ID: 2, - Name: "元宝", - IsWild: false, - Group: []int64{2}, - PayRate: []int64{0, 0, 50}, + ID: 2, + Name: "元宝", + IsWild: false, + Group: []int64{2}, + PayRate: []int64{0, 0, 50}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 3: { - ID: 3, - Name: "红包", - IsWild: false, - Group: []int64{3}, - PayRate: []int64{0, 0, 25}, + ID: 3, + Name: "红包", + IsWild: false, + Group: []int64{3}, + PayRate: []int64{0, 0, 25}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 4: { - ID: 4, - Name: "灯笼", - IsWild: false, - Group: []int64{4}, - PayRate: []int64{0, 0, 10}, + ID: 4, + Name: "灯笼", + IsWild: false, + Group: []int64{4}, + PayRate: []int64{0, 0, 10}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 5: { - ID: 5, - Name: "福炮", - IsWild: false, - Group: []int64{5}, - PayRate: []int64{0, 0, 5}, + ID: 5, + Name: "福炮", + IsWild: false, + Group: []int64{5}, + PayRate: []int64{0, 0, 5}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 6: { - ID: 6, - Name: "花结", - IsWild: false, - Group: []int64{6}, - PayRate: []int64{0, 0, 3}, + ID: 6, + Name: "花结", + IsWild: false, + Group: []int64{6}, + PayRate: []int64{0, 0, 3}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 7: { - ID: 7, - Name: "铜钱", - IsWild: false, - Group: []int64{7}, - PayRate: []int64{0, 0, 2}, + ID: 7, + Name: "铜钱", + IsWild: false, + Group: []int64{7}, + PayRate: []int64{0, 0, 2}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 8: { - ID: 8, - Name: "X2", - IsWild: false, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 8, + Name: "X2", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 9: { - ID: 9, - Name: "X5", - IsWild: false, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 9, + Name: "X5", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 10: { - ID: 10, - Name: "X10", - IsWild: false, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 10, + Name: "X10", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 200: { - ID: 200, - Name: "Empty", - IsWild: false, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 200, + Name: "Empty", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, } @@ -504,4 +504,4 @@ func init() { }, } -} \ No newline at end of file +} diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_mouse.go b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_mouse.go index db3b7e3..17dbdfb 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_mouse.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_mouse.go @@ -9,131 +9,131 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { FortuneMouseBetBetChangeList = map[int64]*structs.FortuneMouseBetBetChangeList{ 0: { - Index: 0, - BetChangeList: 150000, - BetSizeIndex: 0, + Index: 0, + BetChangeList: 3000, + BetSizeIndex: 0, BetLevelIndex: 0, }, 1: { - Index: 1, - BetChangeList: 300000, - BetSizeIndex: 0, + Index: 1, + BetChangeList: 6000, + BetSizeIndex: 0, BetLevelIndex: 1, }, 2: { - Index: 2, - BetChangeList: 450000, - BetSizeIndex: 0, + Index: 2, + BetChangeList: 9000, + BetSizeIndex: 0, BetLevelIndex: 2, }, 3: { - Index: 3, - BetChangeList: 500000, - BetSizeIndex: 1, + Index: 3, + BetChangeList: 10000, + BetSizeIndex: 1, BetLevelIndex: 0, }, 4: { - Index: 4, - BetChangeList: 750000, - BetSizeIndex: 0, + Index: 4, + BetChangeList: 15000, + BetSizeIndex: 0, BetLevelIndex: 4, }, 5: { - Index: 5, - BetChangeList: 1500000, - BetSizeIndex: 0, + Index: 5, + BetChangeList: 30000, + BetSizeIndex: 0, BetLevelIndex: 9, }, 6: { - Index: 6, - BetChangeList: 2500000, - BetSizeIndex: 1, + Index: 6, + BetChangeList: 50000, + BetSizeIndex: 1, BetLevelIndex: 4, }, 7: { - Index: 7, - BetChangeList: 4500000, - BetSizeIndex: 3, + Index: 7, + BetChangeList: 90000, + BetSizeIndex: 3, BetLevelIndex: 0, }, 8: { - Index: 8, - BetChangeList: 5000000, - BetSizeIndex: 1, + Index: 8, + BetChangeList: 100000, + BetSizeIndex: 1, BetLevelIndex: 9, }, 9: { - Index: 9, - BetChangeList: 7500000, - BetSizeIndex: 2, + Index: 9, + BetChangeList: 150000, + BetSizeIndex: 2, BetLevelIndex: 4, }, 10: { - Index: 10, - BetChangeList: 15000000, - BetSizeIndex: 2, + Index: 10, + BetChangeList: 300000, + BetSizeIndex: 2, BetLevelIndex: 9, }, 11: { - Index: 11, - BetChangeList: 22500000, - BetSizeIndex: 3, + Index: 11, + BetChangeList: 450000, + BetSizeIndex: 3, BetLevelIndex: 4, }, 12: { - Index: 12, - BetChangeList: 45000000, - BetSizeIndex: 3, + Index: 12, + BetChangeList: 900000, + BetSizeIndex: 3, BetLevelIndex: 9, }, } FortuneMouseBetBetLevel = map[int64]*structs.FortuneMouseBetBetLevel{ 0: { - Index: 0, + Index: 0, BetLevel: 1, }, 1: { - Index: 1, + Index: 1, BetLevel: 2, }, 2: { - Index: 2, + Index: 2, BetLevel: 3, }, 3: { - Index: 3, + Index: 3, BetLevel: 4, }, 4: { - Index: 4, + Index: 4, BetLevel: 5, }, 5: { - Index: 5, + Index: 5, BetLevel: 6, }, 6: { - Index: 6, + Index: 6, BetLevel: 7, }, 7: { - Index: 7, + Index: 7, BetLevel: 8, }, 8: { - Index: 8, + Index: 8, BetLevel: 9, }, 9: { - Index: 9, + Index: 9, BetLevel: 10, }, } FortuneMouseBetBetLine = map[int64]*structs.FortuneMouseBetBetLine{ 0: { - Index: 0, + Index: 0, BetLine: 5, BaseBet: 1, }, @@ -141,55 +141,55 @@ func init() { FortuneMouseBetBetSize = map[int64]*structs.FortuneMouseBetBetSize{ 0: { - Index: 0, - BetSize: 300000000, + Index: 0, + BetSize: 6000000, }, 1: { - Index: 1, - BetSize: 1000000000, + Index: 1, + BetSize: 20000000, }, 2: { - Index: 2, - BetSize: 3000000000, + Index: 2, + BetSize: 60000000, }, 3: { - Index: 3, - BetSize: 9000000000, + Index: 3, + BetSize: 180000000, }, } FortuneMouseBetFirstBet = map[int64]*structs.FortuneMouseBetFirstBet{ 1: { - Index: 1, - BetSizeIndex: 1, + Index: 1, + BetSizeIndex: 1, BetLevelIndex: 1, }, } FortuneMouseFormation = []*structs.FortuneMouseFormation{ { - SpinType: 1, - NodeType: "BaseSpin", - ID: 1, - SeqID: 1, - Reel: "BaseSpin", - Matrix: "Line5Form3X3TypeB", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 4, + SpinType: 1, + NodeType: "BaseSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "Line5Form3X3TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, { - SpinType: 3, - NodeType: "ReSpin", - ID: 1, - SeqID: 1, - Reel: "ReSpin", - Matrix: "Line5Form3X3TypeB", - Symbol: "Default", - FirstInitMethod: 3, - OtherInitMethod: 3, + SpinType: 3, + NodeType: "ReSpin", + ID: 1, + SeqID: 1, + Reel: "ReSpin", + Matrix: "Line5Form3X3TypeB", + Symbol: "Default", + FirstInitMethod: 3, + OtherInitMethod: 3, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, @@ -200,42 +200,42 @@ func init() { ID: 1, TypeWeight: map[int64]*structs.FortuneMouseMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "96", - Rtp: 0.96, + Rtp: 0.96, }, 2: { ID: 2, TypeWeight: map[int64]*structs.FortuneMouseMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "80", - Rtp: 0.8, + Rtp: 0.8, }, 3: { ID: 3, TypeWeight: map[int64]*structs.FortuneMouseMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "120", - Rtp: 1.2, + Rtp: 1.2, }, } FortuneMouseOthers = []*structs.FortuneMouseOthers{ { RespinTriggerPro: 0.0123, - MaxWin: 1000, - ExtraWin: 700, + MaxWin: 1000, + ExtraWin: 700, }, } @@ -273,37 +273,37 @@ func init() { FortuneMouseSuperStackWeight = []*structs.FortuneMouseSuperStackWeight{ { - ID: 1, + ID: 1, ItemID: 1, Weight: 0, }, { - ID: 2, + ID: 2, ItemID: 2, Weight: 3, }, { - ID: 3, + ID: 3, ItemID: 3, Weight: 5, }, { - ID: 4, + ID: 4, ItemID: 4, Weight: 7, }, { - ID: 5, + ID: 5, ItemID: 5, Weight: 8, }, { - ID: 6, + ID: 6, ItemID: 6, Weight: 9, }, { - ID: 7, + ID: 7, ItemID: 7, Weight: 10, }, @@ -311,76 +311,76 @@ func init() { FortuneMouseSymbol = map[int64]*structs.FortuneMouseSymbol{ 1: { - ID: 1, - Name: "wild", - IsWild: true, - Group: []int64{1}, - PayRate: []int64{0, 0, 300}, + ID: 1, + Name: "wild", + IsWild: true, + Group: []int64{1}, + PayRate: []int64{0, 0, 300}, ClientOrder: 1, - ClientDsc: "", + ClientDsc: "", }, 2: { - ID: 2, - Name: "倒福", - IsWild: false, - Group: []int64{2}, - PayRate: []int64{0, 0, 100}, + ID: 2, + Name: "倒福", + IsWild: false, + Group: []int64{2}, + PayRate: []int64{0, 0, 100}, ClientOrder: 2, - ClientDsc: "", + ClientDsc: "", }, 3: { - ID: 3, - Name: "红包", - IsWild: false, - Group: []int64{3}, - PayRate: []int64{0, 0, 50}, + ID: 3, + Name: "红包", + IsWild: false, + Group: []int64{3}, + PayRate: []int64{0, 0, 50}, ClientOrder: 3, - ClientDsc: "", + ClientDsc: "", }, 4: { - ID: 4, - Name: "钱袋", - IsWild: false, - Group: []int64{4}, - PayRate: []int64{0, 0, 30}, + ID: 4, + Name: "钱袋", + IsWild: false, + Group: []int64{4}, + PayRate: []int64{0, 0, 30}, ClientOrder: 4, - ClientDsc: "", + ClientDsc: "", }, 5: { - ID: 5, - Name: "爆竹", - IsWild: false, - Group: []int64{5}, - PayRate: []int64{0, 0, 15}, + ID: 5, + Name: "爆竹", + IsWild: false, + Group: []int64{5}, + PayRate: []int64{0, 0, 15}, ClientOrder: 5, - ClientDsc: "", + ClientDsc: "", }, 6: { - ID: 6, - Name: "橘子", - IsWild: false, - Group: []int64{6}, - PayRate: []int64{0, 0, 5}, + ID: 6, + Name: "橘子", + IsWild: false, + Group: []int64{6}, + PayRate: []int64{0, 0, 5}, ClientOrder: 6, - ClientDsc: "", + ClientDsc: "", }, 7: { - ID: 7, - Name: "花生", - IsWild: false, - Group: []int64{7}, - PayRate: []int64{0, 0, 3}, + ID: 7, + Name: "花生", + IsWild: false, + Group: []int64{7}, + PayRate: []int64{0, 0, 3}, ClientOrder: 7, - ClientDsc: "", + ClientDsc: "", }, 8: { - ID: 8, - Name: "SuperStack", - IsWild: false, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 8, + Name: "SuperStack", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, } @@ -390,4 +390,4 @@ func init() { }, } -} \ No newline at end of file +} diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_ox.go b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_ox.go index 8cf161a..ea42f81 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_ox.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_ox.go @@ -9,131 +9,131 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { FortuneOxBetBetChangeList = map[int64]*structs.FortuneOxBetBetChangeList{ 0: { - Index: 0, - BetChangeList: 300000, - BetSizeIndex: 0, + Index: 0, + BetChangeList: 6000, + BetSizeIndex: 0, BetLevelIndex: 0, }, 1: { - Index: 1, - BetChangeList: 600000, - BetSizeIndex: 0, + Index: 1, + BetChangeList: 12000, + BetSizeIndex: 0, BetLevelIndex: 1, }, 2: { - Index: 2, - BetChangeList: 900000, - BetSizeIndex: 0, + Index: 2, + BetChangeList: 18000, + BetSizeIndex: 0, BetLevelIndex: 2, }, 3: { - Index: 3, - BetChangeList: 1000000, - BetSizeIndex: 1, + Index: 3, + BetChangeList: 20000, + BetSizeIndex: 1, BetLevelIndex: 0, }, 4: { - Index: 4, - BetChangeList: 1500000, - BetSizeIndex: 0, + Index: 4, + BetChangeList: 30000, + BetSizeIndex: 0, BetLevelIndex: 4, }, 5: { - Index: 5, - BetChangeList: 3000000, - BetSizeIndex: 0, + Index: 5, + BetChangeList: 60000, + BetSizeIndex: 0, BetLevelIndex: 9, }, 6: { - Index: 6, - BetChangeList: 5000000, - BetSizeIndex: 1, + Index: 6, + BetChangeList: 100000, + BetSizeIndex: 1, BetLevelIndex: 4, }, 7: { - Index: 7, - BetChangeList: 9000000, - BetSizeIndex: 3, + Index: 7, + BetChangeList: 180000, + BetSizeIndex: 3, BetLevelIndex: 0, }, 8: { - Index: 8, - BetChangeList: 10000000, - BetSizeIndex: 1, + Index: 8, + BetChangeList: 200000, + BetSizeIndex: 1, BetLevelIndex: 9, }, 9: { - Index: 9, - BetChangeList: 15000000, - BetSizeIndex: 2, + Index: 9, + BetChangeList: 300000, + BetSizeIndex: 2, BetLevelIndex: 4, }, 10: { - Index: 10, - BetChangeList: 30000000, - BetSizeIndex: 2, + Index: 10, + BetChangeList: 600000, + BetSizeIndex: 2, BetLevelIndex: 9, }, 11: { - Index: 11, - BetChangeList: 45000000, - BetSizeIndex: 3, + Index: 11, + BetChangeList: 900000, + BetSizeIndex: 3, BetLevelIndex: 4, }, 12: { - Index: 12, - BetChangeList: 90000000, - BetSizeIndex: 3, + Index: 12, + BetChangeList: 1800000, + BetSizeIndex: 3, BetLevelIndex: 9, }, } FortuneOxBetBetLevel = map[int64]*structs.FortuneOxBetBetLevel{ 0: { - Index: 0, + Index: 0, BetLevel: 1, }, 1: { - Index: 1, + Index: 1, BetLevel: 2, }, 2: { - Index: 2, + Index: 2, BetLevel: 3, }, 3: { - Index: 3, + Index: 3, BetLevel: 4, }, 4: { - Index: 4, + Index: 4, BetLevel: 5, }, 5: { - Index: 5, + Index: 5, BetLevel: 6, }, 6: { - Index: 6, + Index: 6, BetLevel: 7, }, 7: { - Index: 7, + Index: 7, BetLevel: 8, }, 8: { - Index: 8, + Index: 8, BetLevel: 9, }, 9: { - Index: 9, + Index: 9, BetLevel: 10, }, } FortuneOxBetBetLine = map[int64]*structs.FortuneOxBetBetLine{ 0: { - Index: 0, + Index: 0, BetLine: 10, BaseBet: 1, }, @@ -141,55 +141,55 @@ func init() { FortuneOxBetBetSize = map[int64]*structs.FortuneOxBetBetSize{ 0: { - Index: 0, - BetSize: 300000000, + Index: 0, + BetSize: 6000000, }, 1: { - Index: 1, - BetSize: 1000000000, + Index: 1, + BetSize: 20000000, }, 2: { - Index: 2, - BetSize: 3000000000, + Index: 2, + BetSize: 60000000, }, 3: { - Index: 3, - BetSize: 9000000000, + Index: 3, + BetSize: 180000000, }, } FortuneOxBetFirstBet = map[int64]*structs.FortuneOxBetFirstBet{ 1: { - Index: 1, - BetSizeIndex: 1, + Index: 1, + BetSizeIndex: 1, BetLevelIndex: 1, }, } FortuneOxFormation = []*structs.FortuneOxFormation{ { - SpinType: 1, - NodeType: "BaseSpin", - ID: 1, - SeqID: 1, - Reel: "BaseSpin", - Matrix: "Line10Form343TypeA", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 4, + SpinType: 1, + NodeType: "BaseSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "Line10Form343TypeA", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, { - SpinType: 3, - NodeType: "ReSpin", - ID: 1, - SeqID: 1, - Reel: "ReSpin", - Matrix: "Line10Form343TypeA", - Symbol: "Default", - FirstInitMethod: 3, - OtherInitMethod: 3, + SpinType: 3, + NodeType: "ReSpin", + ID: 1, + SeqID: 1, + Reel: "ReSpin", + Matrix: "Line10Form343TypeA", + Symbol: "Default", + FirstInitMethod: 3, + OtherInitMethod: 3, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, @@ -200,42 +200,42 @@ func init() { ID: 1, TypeWeight: map[int64]*structs.FortuneOxMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "96", - Rtp: 0.96, + Rtp: 0.96, }, 2: { ID: 2, TypeWeight: map[int64]*structs.FortuneOxMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "80", - Rtp: 0.8, + Rtp: 0.8, }, 3: { ID: 3, TypeWeight: map[int64]*structs.FortuneOxMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "120", - Rtp: 1.2, + Rtp: 1.2, }, } FortuneOxOthers = []*structs.FortuneOxOthers{ { RespinTriggerPro: 0.0107, - Multiplier: 10, - MaxWin: 2000, + Multiplier: 10, + MaxWin: 2000, }, } @@ -273,37 +273,37 @@ func init() { FortuneOxSuperStack1Weight = []*structs.FortuneOxSuperStack1Weight{ { - ID: 1, + ID: 1, ItemID: 1, Weight: 0, }, { - ID: 2, + ID: 2, ItemID: 2, Weight: 1, }, { - ID: 3, + ID: 3, ItemID: 3, Weight: 4, }, { - ID: 4, + ID: 4, ItemID: 4, Weight: 10, }, { - ID: 5, + ID: 5, ItemID: 5, Weight: 15, }, { - ID: 6, + ID: 6, ItemID: 6, Weight: 30, }, { - ID: 7, + ID: 7, ItemID: 7, Weight: 40, }, @@ -311,37 +311,37 @@ func init() { FortuneOxSuperStack2Weight = []*structs.FortuneOxSuperStack2Weight{ { - ID: 1, + ID: 1, ItemID: 1, Weight: 0, }, { - ID: 2, + ID: 2, ItemID: 2, Weight: 1, }, { - ID: 3, + ID: 3, ItemID: 3, Weight: 2, }, { - ID: 4, + ID: 4, ItemID: 4, Weight: 3, }, { - ID: 5, + ID: 5, ItemID: 5, Weight: 4, }, { - ID: 6, + ID: 6, ItemID: 6, Weight: 5, }, { - ID: 7, + ID: 7, ItemID: 7, Weight: 6, }, @@ -349,85 +349,85 @@ func init() { FortuneOxSymbol = map[int64]*structs.FortuneOxSymbol{ 1: { - ID: 1, - Name: "wild", - IsWild: true, - Group: []int64{1}, - PayRate: []int64{0, 0, 200}, + ID: 1, + Name: "wild", + IsWild: true, + Group: []int64{1}, + PayRate: []int64{0, 0, 200}, ClientOrder: 1, - ClientDsc: "", + ClientDsc: "", }, 2: { - ID: 2, - Name: "元宝", - IsWild: false, - Group: []int64{2}, - PayRate: []int64{0, 0, 100}, + ID: 2, + Name: "元宝", + IsWild: false, + Group: []int64{2}, + PayRate: []int64{0, 0, 100}, ClientOrder: 2, - ClientDsc: "", + ClientDsc: "", }, 3: { - ID: 3, - Name: "金锦盒", - IsWild: false, - Group: []int64{3}, - PayRate: []int64{0, 0, 50}, + ID: 3, + Name: "金锦盒", + IsWild: false, + Group: []int64{3}, + PayRate: []int64{0, 0, 50}, ClientOrder: 3, - ClientDsc: "", + ClientDsc: "", }, 4: { - ID: 4, - Name: "钱袋", - IsWild: false, - Group: []int64{4}, - PayRate: []int64{0, 0, 20}, + ID: 4, + Name: "钱袋", + IsWild: false, + Group: []int64{4}, + PayRate: []int64{0, 0, 20}, ClientOrder: 4, - ClientDsc: "", + ClientDsc: "", }, 5: { - ID: 5, - Name: "红包", - IsWild: false, - Group: []int64{5}, - PayRate: []int64{0, 0, 10}, + ID: 5, + Name: "红包", + IsWild: false, + Group: []int64{5}, + PayRate: []int64{0, 0, 10}, ClientOrder: 5, - ClientDsc: "", + ClientDsc: "", }, 6: { - ID: 6, - Name: "橘子", - IsWild: false, - Group: []int64{6}, - PayRate: []int64{0, 0, 5}, + ID: 6, + Name: "橘子", + IsWild: false, + Group: []int64{6}, + PayRate: []int64{0, 0, 5}, ClientOrder: 6, - ClientDsc: "", + ClientDsc: "", }, 7: { - ID: 7, - Name: "炮竹", - IsWild: false, - Group: []int64{7}, - PayRate: []int64{0, 0, 3}, + ID: 7, + Name: "炮竹", + IsWild: false, + Group: []int64{7}, + PayRate: []int64{0, 0, 3}, ClientOrder: 7, - ClientDsc: "", + ClientDsc: "", }, 8: { - ID: 8, - Name: "SuperStack1", - IsWild: false, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 8, + Name: "SuperStack1", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 9: { - ID: 9, - Name: "SuperStack2", - IsWild: false, - Group: []int64{9}, - PayRate: []int64{0, 0, 0}, + ID: 9, + Name: "SuperStack2", + IsWild: false, + Group: []int64{9}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, } @@ -437,4 +437,4 @@ func init() { }, } -} \ No newline at end of file +} diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_rabbit.go b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_rabbit.go index e67b0b2..2e7178b 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_rabbit.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_rabbit.go @@ -9,131 +9,131 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { FortuneRabbitBetBetChangeList = map[int64]*structs.FortuneRabbitBetBetChangeList{ 0: { - Index: 0, - BetChangeList: 300000, - BetSizeIndex: 0, + Index: 0, + BetChangeList: 6000, + BetSizeIndex: 0, BetLevelIndex: 0, }, 1: { - Index: 1, - BetChangeList: 600000, - BetSizeIndex: 0, + Index: 1, + BetChangeList: 12000, + BetSizeIndex: 0, BetLevelIndex: 1, }, 2: { - Index: 2, - BetChangeList: 900000, - BetSizeIndex: 0, + Index: 2, + BetChangeList: 18000, + BetSizeIndex: 0, BetLevelIndex: 2, }, 3: { - Index: 3, - BetChangeList: 1000000, - BetSizeIndex: 1, + Index: 3, + BetChangeList: 20000, + BetSizeIndex: 1, BetLevelIndex: 0, }, 4: { - Index: 4, - BetChangeList: 1500000, - BetSizeIndex: 0, + Index: 4, + BetChangeList: 30000, + BetSizeIndex: 0, BetLevelIndex: 4, }, 5: { - Index: 5, - BetChangeList: 3000000, - BetSizeIndex: 0, + Index: 5, + BetChangeList: 60000, + BetSizeIndex: 0, BetLevelIndex: 9, }, 6: { - Index: 6, - BetChangeList: 5000000, - BetSizeIndex: 1, + Index: 6, + BetChangeList: 100000, + BetSizeIndex: 1, BetLevelIndex: 4, }, 7: { - Index: 7, - BetChangeList: 9000000, - BetSizeIndex: 3, + Index: 7, + BetChangeList: 180000, + BetSizeIndex: 3, BetLevelIndex: 0, }, 8: { - Index: 8, - BetChangeList: 10000000, - BetSizeIndex: 1, + Index: 8, + BetChangeList: 200000, + BetSizeIndex: 1, BetLevelIndex: 9, }, 9: { - Index: 9, - BetChangeList: 15000000, - BetSizeIndex: 2, + Index: 9, + BetChangeList: 300000, + BetSizeIndex: 2, BetLevelIndex: 4, }, 10: { - Index: 10, - BetChangeList: 30000000, - BetSizeIndex: 2, + Index: 10, + BetChangeList: 600000, + BetSizeIndex: 2, BetLevelIndex: 9, }, 11: { - Index: 11, - BetChangeList: 45000000, - BetSizeIndex: 3, + Index: 11, + BetChangeList: 900000, + BetSizeIndex: 3, BetLevelIndex: 4, }, 12: { - Index: 12, - BetChangeList: 90000000, - BetSizeIndex: 3, + Index: 12, + BetChangeList: 1800000, + BetSizeIndex: 3, BetLevelIndex: 9, }, } FortuneRabbitBetBetLevel = map[int64]*structs.FortuneRabbitBetBetLevel{ 0: { - Index: 0, + Index: 0, BetLevel: 1, }, 1: { - Index: 1, + Index: 1, BetLevel: 2, }, 2: { - Index: 2, + Index: 2, BetLevel: 3, }, 3: { - Index: 3, + Index: 3, BetLevel: 4, }, 4: { - Index: 4, + Index: 4, BetLevel: 5, }, 5: { - Index: 5, + Index: 5, BetLevel: 6, }, 6: { - Index: 6, + Index: 6, BetLevel: 7, }, 7: { - Index: 7, + Index: 7, BetLevel: 8, }, 8: { - Index: 8, + Index: 8, BetLevel: 9, }, 9: { - Index: 9, + Index: 9, BetLevel: 10, }, } FortuneRabbitBetBetLine = map[int64]*structs.FortuneRabbitBetBetLine{ 0: { - Index: 0, + Index: 0, BetLine: 10, BaseBet: 1, }, @@ -141,156 +141,156 @@ func init() { FortuneRabbitBetBetSize = map[int64]*structs.FortuneRabbitBetBetSize{ 0: { - Index: 0, - BetSize: 300000000, + Index: 0, + BetSize: 6000000, }, 1: { - Index: 1, - BetSize: 1000000000, + Index: 1, + BetSize: 20000000, }, 2: { - Index: 2, - BetSize: 3000000000, + Index: 2, + BetSize: 60000000, }, 3: { - Index: 3, - BetSize: 9000000000, + Index: 3, + BetSize: 180000000, }, } FortuneRabbitBetFirstBet = map[int64]*structs.FortuneRabbitBetFirstBet{ 1: { - Index: 1, - BetSizeIndex: 1, + Index: 1, + BetSizeIndex: 1, BetLevelIndex: 0, }, } FortuneRabbitCashPrizeWeight = []*structs.FortuneRabbitCashPrizeWeight{ { - ID: 1, - PrizeValue: 0.5, - Weight: 150, + ID: 1, + PrizeValue: 0.5, + Weight: 150, NoWinWeight: 100, }, { - ID: 2, - PrizeValue: 1, - Weight: 25, + ID: 2, + PrizeValue: 1, + Weight: 25, NoWinWeight: 25, }, { - ID: 3, - PrizeValue: 2, - Weight: 9, + ID: 3, + PrizeValue: 2, + Weight: 9, NoWinWeight: 9, }, { - ID: 4, - PrizeValue: 5, - Weight: 55, + ID: 4, + PrizeValue: 5, + Weight: 55, NoWinWeight: 55, }, { - ID: 5, - PrizeValue: 10, - Weight: 6, + ID: 5, + PrizeValue: 10, + Weight: 6, NoWinWeight: 12, }, { - ID: 6, - PrizeValue: 20, - Weight: 3, + ID: 6, + PrizeValue: 20, + Weight: 3, NoWinWeight: 9, }, { - ID: 7, - PrizeValue: 30, - Weight: 0.6, + ID: 7, + PrizeValue: 30, + Weight: 0.6, NoWinWeight: 6, }, { - ID: 8, - PrizeValue: 50, - Weight: 1, + ID: 8, + PrizeValue: 50, + Weight: 1, NoWinWeight: 3, }, { - ID: 9, - PrizeValue: 100, - Weight: 0.39, + ID: 9, + PrizeValue: 100, + Weight: 0.39, NoWinWeight: 0.9, }, { - ID: 10, - PrizeValue: 500, - Weight: 0.01, + ID: 10, + PrizeValue: 500, + Weight: 0.01, NoWinWeight: 0.1, }, } FortuneRabbitForceCashCountWeight = []*structs.FortuneRabbitForceCashCountWeight{ { - ID: 1, - Count: 5, + ID: 1, + Count: 5, Weight: 80, }, { - ID: 2, - Count: 6, + ID: 2, + Count: 6, Weight: 15, }, { - ID: 3, - Count: 7, + ID: 3, + Count: 7, Weight: 5, }, { - ID: 4, - Count: 8, + ID: 4, + Count: 8, Weight: 0, }, { - ID: 5, - Count: 9, + ID: 5, + Count: 9, Weight: 0, }, { - ID: 6, - Count: 10, + ID: 6, + Count: 10, Weight: 0, }, { - ID: 7, - Count: 11, + ID: 7, + Count: 11, Weight: 0, }, } FortuneRabbitFormation = []*structs.FortuneRabbitFormation{ { - SpinType: 1, - NodeType: "BaseSpin", - ID: 1, - SeqID: 1, - Reel: "BaseSpin", - Matrix: "Line10Form343TypeA", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 4, + SpinType: 1, + NodeType: "BaseSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "Line10Form343TypeA", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, { - SpinType: 3, - NodeType: "FreeSpin", - ID: 1, - SeqID: 1, - Reel: "FreeSpin", - Matrix: "Line10Form343TypeA", - Symbol: "Default", - FirstInitMethod: 3, - OtherInitMethod: 3, + SpinType: 3, + NodeType: "FreeSpin", + ID: 1, + SeqID: 1, + Reel: "FreeSpin", + Matrix: "Line10Form343TypeA", + Symbol: "Default", + FirstInitMethod: 3, + OtherInitMethod: 3, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, @@ -301,58 +301,58 @@ func init() { ID: 1, TypeWeight: map[int64]*structs.FortuneRabbitMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "96", - Rtp: 0.96, + Rtp: 0.96, }, 2: { ID: 2, TypeWeight: map[int64]*structs.FortuneRabbitMapRTPModeTypeWeight{ 2: { - ID: 2, + ID: 2, Weight: 1, }, }, Desc: "80", - Rtp: 0.8, + Rtp: 0.8, }, 3: { ID: 3, TypeWeight: map[int64]*structs.FortuneRabbitMapRTPModeTypeWeight{ 3: { - ID: 3, + ID: 3, Weight: 1, }, }, Desc: "120", - Rtp: 1.2, + Rtp: 1.2, }, } FortuneRabbitOthers = []*structs.FortuneRabbitOthers{ { FreespinTriggerPro: 0.0106, - FreeSpinCount: 8, - MaxWin: 5000, + FreeSpinCount: 8, + MaxWin: 5000, }, } FortuneRabbitOthersRTP120 = []*structs.FortuneRabbitOthersRTP120{ { FreespinTriggerPro: 0.01785, - FreeSpinCount: 8, - MaxWin: 5000, + FreeSpinCount: 8, + MaxWin: 5000, }, } FortuneRabbitOthersRTP80 = []*structs.FortuneRabbitOthersRTP80{ { FreespinTriggerPro: 0.00577, - FreeSpinCount: 8, - MaxWin: 5000, + FreeSpinCount: 8, + MaxWin: 5000, }, } @@ -390,85 +390,85 @@ func init() { FortuneRabbitSymbol = map[int64]*structs.FortuneRabbitSymbol{ 1: { - ID: 1, - Name: "wild", - IsWild: true, - Group: []int64{1}, - PayRate: []int64{0, 0, 200}, + ID: 1, + Name: "wild", + IsWild: true, + Group: []int64{1}, + PayRate: []int64{0, 0, 200}, ClientOrder: 1, - ClientDsc: "", + ClientDsc: "", }, 2: { - ID: 2, - Name: "元宝", - IsWild: false, - Group: []int64{2}, - PayRate: []int64{0, 0, 100}, + ID: 2, + Name: "元宝", + IsWild: false, + Group: []int64{2}, + PayRate: []int64{0, 0, 100}, ClientOrder: 2, - ClientDsc: "", + ClientDsc: "", }, 3: { - ID: 3, - Name: "钱袋", - IsWild: false, - Group: []int64{3}, - PayRate: []int64{0, 0, 50}, + ID: 3, + Name: "钱袋", + IsWild: false, + Group: []int64{3}, + PayRate: []int64{0, 0, 50}, ClientOrder: 3, - ClientDsc: "", + ClientDsc: "", }, 4: { - ID: 4, - Name: "红包", - IsWild: false, - Group: []int64{4}, - PayRate: []int64{0, 0, 10}, + ID: 4, + Name: "红包", + IsWild: false, + Group: []int64{4}, + PayRate: []int64{0, 0, 10}, ClientOrder: 4, - ClientDsc: "", + ClientDsc: "", }, 5: { - ID: 5, - Name: "铜币", - IsWild: false, - Group: []int64{5}, - PayRate: []int64{0, 0, 5}, + ID: 5, + Name: "铜币", + IsWild: false, + Group: []int64{5}, + PayRate: []int64{0, 0, 5}, ClientOrder: 5, - ClientDsc: "", + ClientDsc: "", }, 6: { - ID: 6, - Name: "爆竹", - IsWild: false, - Group: []int64{6}, - PayRate: []int64{0, 0, 3}, + ID: 6, + Name: "爆竹", + IsWild: false, + Group: []int64{6}, + PayRate: []int64{0, 0, 3}, ClientOrder: 6, - ClientDsc: "", + ClientDsc: "", }, 7: { - ID: 7, - Name: "胡萝卜", - IsWild: false, - Group: []int64{7}, - PayRate: []int64{0, 0, 2}, + ID: 7, + Name: "胡萝卜", + IsWild: false, + Group: []int64{7}, + PayRate: []int64{0, 0, 2}, ClientOrder: 7, - ClientDsc: "", + ClientDsc: "", }, 8: { - ID: 8, - Name: "Cash", - IsWild: false, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 8, + Name: "Cash", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 200: { - ID: 200, - Name: "Empty", - IsWild: false, - Group: []int64{200}, - PayRate: []int64{0, 0, 0}, + ID: 200, + Name: "Empty", + IsWild: false, + Group: []int64{200}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, } @@ -478,4 +478,4 @@ func init() { }, } -} \ No newline at end of file +} diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_tiger.go b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_tiger.go index 69fa4b9..fe0b03e 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_tiger.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_tiger.go @@ -9,131 +9,131 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { FortuneTigerBetBetChangeList = map[int64]*structs.FortuneTigerBetBetChangeList{ 0: { - Index: 0, - BetChangeList: 150000, - BetSizeIndex: 0, + Index: 0, + BetChangeList: 3000, + BetSizeIndex: 0, BetLevelIndex: 0, }, 1: { - Index: 1, - BetChangeList: 300000, - BetSizeIndex: 0, + Index: 1, + BetChangeList: 6000, + BetSizeIndex: 0, BetLevelIndex: 1, }, 2: { - Index: 2, - BetChangeList: 450000, - BetSizeIndex: 0, + Index: 2, + BetChangeList: 9000, + BetSizeIndex: 0, BetLevelIndex: 2, }, 3: { - Index: 3, - BetChangeList: 500000, - BetSizeIndex: 1, + Index: 3, + BetChangeList: 10000, + BetSizeIndex: 1, BetLevelIndex: 0, }, 4: { - Index: 4, - BetChangeList: 750000, - BetSizeIndex: 0, + Index: 4, + BetChangeList: 15000, + BetSizeIndex: 0, BetLevelIndex: 4, }, 5: { - Index: 5, - BetChangeList: 1500000, - BetSizeIndex: 0, + Index: 5, + BetChangeList: 30000, + BetSizeIndex: 0, BetLevelIndex: 9, }, 6: { - Index: 6, - BetChangeList: 2500000, - BetSizeIndex: 1, + Index: 6, + BetChangeList: 50000, + BetSizeIndex: 1, BetLevelIndex: 4, }, 7: { - Index: 7, - BetChangeList: 4500000, - BetSizeIndex: 3, + Index: 7, + BetChangeList: 90000, + BetSizeIndex: 3, BetLevelIndex: 0, }, 8: { - Index: 8, - BetChangeList: 5000000, - BetSizeIndex: 1, + Index: 8, + BetChangeList: 100000, + BetSizeIndex: 1, BetLevelIndex: 9, }, 9: { - Index: 9, - BetChangeList: 7500000, - BetSizeIndex: 2, + Index: 9, + BetChangeList: 150000, + BetSizeIndex: 2, BetLevelIndex: 4, }, 10: { - Index: 10, - BetChangeList: 15000000, - BetSizeIndex: 2, + Index: 10, + BetChangeList: 300000, + BetSizeIndex: 2, BetLevelIndex: 9, }, 11: { - Index: 11, - BetChangeList: 22500000, - BetSizeIndex: 3, + Index: 11, + BetChangeList: 450000, + BetSizeIndex: 3, BetLevelIndex: 4, }, 12: { - Index: 12, - BetChangeList: 45000000, - BetSizeIndex: 3, + Index: 12, + BetChangeList: 900000, + BetSizeIndex: 3, BetLevelIndex: 9, }, } FortuneTigerBetBetLevel = map[int64]*structs.FortuneTigerBetBetLevel{ 0: { - Index: 0, + Index: 0, BetLevel: 1, }, 1: { - Index: 1, + Index: 1, BetLevel: 2, }, 2: { - Index: 2, + Index: 2, BetLevel: 3, }, 3: { - Index: 3, + Index: 3, BetLevel: 4, }, 4: { - Index: 4, + Index: 4, BetLevel: 5, }, 5: { - Index: 5, + Index: 5, BetLevel: 6, }, 6: { - Index: 6, + Index: 6, BetLevel: 7, }, 7: { - Index: 7, + Index: 7, BetLevel: 8, }, 8: { - Index: 8, + Index: 8, BetLevel: 9, }, 9: { - Index: 9, + Index: 9, BetLevel: 10, }, } FortuneTigerBetBetLine = map[int64]*structs.FortuneTigerBetBetLine{ 0: { - Index: 0, + Index: 0, BetLine: 5, BaseBet: 1, }, @@ -141,55 +141,55 @@ func init() { FortuneTigerBetBetSize = map[int64]*structs.FortuneTigerBetBetSize{ 0: { - Index: 0, - BetSize: 300000000, + Index: 0, + BetSize: 6000000, }, 1: { - Index: 1, - BetSize: 1000000000, + Index: 1, + BetSize: 20000000, }, 2: { - Index: 2, - BetSize: 3000000000, + Index: 2, + BetSize: 60000000, }, 3: { - Index: 3, - BetSize: 9000000000, + Index: 3, + BetSize: 180000000, }, } FortuneTigerBetFirstBet = map[int64]*structs.FortuneTigerBetFirstBet{ 1: { - Index: 1, - BetSizeIndex: 1, + Index: 1, + BetSizeIndex: 1, BetLevelIndex: 1, }, } FortuneTigerFormation = []*structs.FortuneTigerFormation{ { - SpinType: 1, - NodeType: "BaseSpin", - ID: 1, - SeqID: 1, - Reel: "BaseSpin", - Matrix: "Line5Form3X3TypeB", - Symbol: "Default", - FirstInitMethod: 4, - OtherInitMethod: 4, + SpinType: 1, + NodeType: "BaseSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "Line5Form3X3TypeB", + Symbol: "Default", + FirstInitMethod: 4, + OtherInitMethod: 4, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, { - SpinType: 3, - NodeType: "ReSpin", - ID: 1, - SeqID: 1, - Reel: "ReSpin", - Matrix: "Line5Form3X3TypeB", - Symbol: "Default", - FirstInitMethod: 3, - OtherInitMethod: 3, + SpinType: 3, + NodeType: "ReSpin", + ID: 1, + SeqID: 1, + Reel: "ReSpin", + Matrix: "Line5Form3X3TypeB", + Symbol: "Default", + FirstInitMethod: 3, + OtherInitMethod: 3, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, @@ -200,42 +200,42 @@ func init() { ID: 1, TypeWeight: map[int64]*structs.FortuneTigerMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "96", - Rtp: 0.96, + Rtp: 0.96, }, 2: { ID: 2, TypeWeight: map[int64]*structs.FortuneTigerMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "80", - Rtp: 0.8, + Rtp: 0.8, }, 3: { ID: 3, TypeWeight: map[int64]*structs.FortuneTigerMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "120", - Rtp: 1.2, + Rtp: 1.2, }, } FortuneTigerOthers = []*structs.FortuneTigerOthers{ { RespinTriggerPro: 0.0104, - Multiplier: 10, - MaxWin: 2500, + Multiplier: 10, + MaxWin: 2500, }, } @@ -273,37 +273,37 @@ func init() { FortuneTigerSuperStackWeight = []*structs.FortuneTigerSuperStackWeight{ { - ID: 1, + ID: 1, ItemID: 1, Weight: 0, }, { - ID: 2, + ID: 2, ItemID: 2, Weight: 0.66, }, { - ID: 3, + ID: 3, ItemID: 3, Weight: 3.34, }, { - ID: 4, + ID: 4, ItemID: 4, Weight: 11, }, { - ID: 5, + ID: 5, ItemID: 5, Weight: 15, }, { - ID: 6, + ID: 6, ItemID: 6, Weight: 20, }, { - ID: 7, + ID: 7, ItemID: 7, Weight: 50, }, @@ -311,85 +311,85 @@ func init() { FortuneTigerSymbol = map[int64]*structs.FortuneTigerSymbol{ 1: { - ID: 1, - Name: "wild", - IsWild: true, - Group: []int64{1}, - PayRate: []int64{0, 0, 250}, + ID: 1, + Name: "wild", + IsWild: true, + Group: []int64{1}, + PayRate: []int64{0, 0, 250}, ClientOrder: 1, - ClientDsc: "", + ClientDsc: "", }, 2: { - ID: 2, - Name: "元宝", - IsWild: false, - Group: []int64{2}, - PayRate: []int64{0, 0, 100}, + ID: 2, + Name: "元宝", + IsWild: false, + Group: []int64{2}, + PayRate: []int64{0, 0, 100}, ClientOrder: 2, - ClientDsc: "", + ClientDsc: "", }, 3: { - ID: 3, - Name: "玉饰", - IsWild: false, - Group: []int64{3}, - PayRate: []int64{0, 0, 25}, + ID: 3, + Name: "玉饰", + IsWild: false, + Group: []int64{3}, + PayRate: []int64{0, 0, 25}, ClientOrder: 3, - ClientDsc: "", + ClientDsc: "", }, 4: { - ID: 4, - Name: "福袋", - IsWild: false, - Group: []int64{4}, - PayRate: []int64{0, 0, 10}, + ID: 4, + Name: "福袋", + IsWild: false, + Group: []int64{4}, + PayRate: []int64{0, 0, 10}, ClientOrder: 4, - ClientDsc: "", + ClientDsc: "", }, 5: { - ID: 5, - Name: "红包", - IsWild: false, - Group: []int64{5}, - PayRate: []int64{0, 0, 8}, + ID: 5, + Name: "红包", + IsWild: false, + Group: []int64{5}, + PayRate: []int64{0, 0, 8}, ClientOrder: 5, - ClientDsc: "", + ClientDsc: "", }, 6: { - ID: 6, - Name: "爆竹", - IsWild: false, - Group: []int64{6}, - PayRate: []int64{0, 0, 5}, + ID: 6, + Name: "爆竹", + IsWild: false, + Group: []int64{6}, + PayRate: []int64{0, 0, 5}, ClientOrder: 6, - ClientDsc: "", + ClientDsc: "", }, 7: { - ID: 7, - Name: "橘子", - IsWild: false, - Group: []int64{7}, - PayRate: []int64{0, 0, 3}, + ID: 7, + Name: "橘子", + IsWild: false, + Group: []int64{7}, + PayRate: []int64{0, 0, 3}, ClientOrder: 7, - ClientDsc: "", + ClientDsc: "", }, 8: { - ID: 8, - Name: "SuperStack", - IsWild: false, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 8, + Name: "SuperStack", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 200: { - ID: 200, - Name: "Empty", - IsWild: false, - Group: []int64{200}, - PayRate: []int64{0, 0, 0}, + ID: 200, + Name: "Empty", + IsWild: false, + Group: []int64{200}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, } @@ -399,4 +399,4 @@ func init() { }, } -} \ No newline at end of file +} diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/matrix.go b/gamesrv/slotspkg/internal/exported/excel2go/base/matrix.go index c80afb9..7c5f3de 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/matrix.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/matrix.go @@ -9,8 +9,8 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { MatrixFeaturesForm15X1TypeA = []*structs.MatrixFeaturesForm15X1TypeA{ { - Type: "FeatureForm15X1TypeA", - LinkType: 2, + Type: "FeatureForm15X1TypeA", + LinkType: 2, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -22,8 +22,8 @@ func init() { MatrixFeaturesForm19X1TypeA = []*structs.MatrixFeaturesForm19X1TypeA{ { - Type: "FeatureForm19X1TypeA", - LinkType: 2, + Type: "FeatureForm19X1TypeA", + LinkType: 2, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -35,8 +35,8 @@ func init() { MatrixFeaturesForm20X1TypeA = []*structs.MatrixFeaturesForm20X1TypeA{ { - Type: "FeatureForm20X1TypeA", - LinkType: 2, + Type: "FeatureForm20X1TypeA", + LinkType: 2, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -48,8 +48,8 @@ func init() { MatrixFeaturesForm25X1TypeA = []*structs.MatrixFeaturesForm25X1TypeA{ { - Type: "FeatureForm25X1TypeA", - LinkType: 2, + Type: "FeatureForm25X1TypeA", + LinkType: 2, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -61,8 +61,8 @@ func init() { MatrixFeaturesForm30X1TypeA = []*structs.MatrixFeaturesForm30X1TypeA{ { - Type: "FeatureForm30X1TypeA", - LinkType: 2, + Type: "FeatureForm30X1TypeA", + LinkType: 2, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -74,8 +74,8 @@ func init() { MatrixFeaturesForm35X1TypeA = []*structs.MatrixFeaturesForm35X1TypeA{ { - Type: "FeatureForm35X1TypeA", - LinkType: 2, + Type: "FeatureForm35X1TypeA", + LinkType: 2, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -87,8 +87,8 @@ func init() { MatrixFeaturesForm40X1 = []*structs.MatrixFeaturesForm40X1{ { - Type: "FeatureForm40X1", - LinkType: 2, + Type: "FeatureForm40X1", + LinkType: 2, Direction: 0, LineCount: 0, Lines: [][]int64{ @@ -100,8 +100,8 @@ func init() { MatrixFeaturesForm40X1TypeA = []*structs.MatrixFeaturesForm40X1TypeA{ { - Type: "FeatureForm40X1", - LinkType: 2, + Type: "FeatureForm40X1", + LinkType: 2, Direction: 0, LineCount: 0, Lines: [][]int64{ @@ -113,8 +113,8 @@ func init() { MatrixFeaturesForm7X1TypeA = []*structs.MatrixFeaturesForm7X1TypeA{ { - Type: "FeatureForm15X1TypeA", - LinkType: 2, + Type: "FeatureForm15X1TypeA", + LinkType: 2, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -126,8 +126,8 @@ func init() { MatrixLine100Form12X5TypeA = []*structs.MatrixLine100Form12X5TypeA{ { - Type: "Line100Form12X5TypeA", - LinkType: 0, + Type: "Line100Form12X5TypeA", + LinkType: 0, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -238,8 +238,8 @@ func init() { MatrixLine100Form6X5TypeA = []*structs.MatrixLine100Form6X5TypeA{ { - Type: "Line100Form6X5TypeA", - LinkType: 0, + Type: "Line100Form6X5TypeA", + LinkType: 0, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -350,8 +350,8 @@ func init() { MatrixLine10Form343TypeA = []*structs.MatrixLine10Form343TypeA{ { - Type: "Line10Form343TypeA", - LinkType: 0, + Type: "Line10Form343TypeA", + LinkType: 0, Direction: 0, LineCount: 10, Lines: [][]int64{ @@ -372,8 +372,8 @@ func init() { MatrixLine10Form3X5TypeA = []*structs.MatrixLine10Form3X5TypeA{ { - Type: "Line10Form3X5TypeA", - LinkType: 0, + Type: "Line10Form3X5TypeA", + LinkType: 0, Direction: 0, LineCount: 10, Lines: [][]int64{ @@ -394,8 +394,8 @@ func init() { MatrixLine1Form3X3TypeA = []*structs.MatrixLine1Form3X3TypeA{ { - Type: "Line1Form3X3TypeA", - LinkType: 0, + Type: "Line1Form3X3TypeA", + LinkType: 0, Direction: 0, LineCount: 1, Lines: [][]int64{ @@ -407,8 +407,8 @@ func init() { MatrixLine1Form3X3TypeB = []*structs.MatrixLine1Form3X3TypeB{ { - Type: "Line1Form3X3TypeB", - LinkType: 0, + Type: "Line1Form3X3TypeB", + LinkType: 0, Direction: 0, LineCount: 1, Lines: [][]int64{ @@ -420,8 +420,8 @@ func init() { MatrixLine1Form5X5TypeA = []*structs.MatrixLine1Form5X5TypeA{ { - Type: "Line1Form5X5TypeA", - LinkType: 0, + Type: "Line1Form5X5TypeA", + LinkType: 0, Direction: 0, LineCount: 1, Lines: [][]int64{ @@ -433,8 +433,8 @@ func init() { MatrixLine20Form3X5TypeA = []*structs.MatrixLine20Form3X5TypeA{ { - Type: "Line20Form3X5TypeA", - LinkType: 0, + Type: "Line20Form3X5TypeA", + LinkType: 0, Direction: 0, LineCount: 20, Lines: [][]int64{ @@ -465,8 +465,8 @@ func init() { MatrixLine25Form36666TypeA = []*structs.MatrixLine25Form36666TypeA{ { - Type: "Line25Form36666TypeA", - LinkType: 0, + Type: "Line25Form36666TypeA", + LinkType: 0, Direction: 0, LineCount: 25, Lines: [][]int64{ @@ -502,8 +502,8 @@ func init() { MatrixLine25Form3X5TypeA = []*structs.MatrixLine25Form3X5TypeA{ { - Type: "Line25Form3X5TypeA", - LinkType: 0, + Type: "Line25Form3X5TypeA", + LinkType: 0, Direction: 0, LineCount: 25, Lines: [][]int64{ @@ -539,8 +539,8 @@ func init() { MatrixLine25Form3X5TypeB = []*structs.MatrixLine25Form3X5TypeB{ { - Type: "Line25Form3X5TypeB", - LinkType: 0, + Type: "Line25Form3X5TypeB", + LinkType: 0, Direction: 2, LineCount: 25, Lines: [][]int64{ @@ -576,8 +576,8 @@ func init() { MatrixLine25Form3X5TypeC = []*structs.MatrixLine25Form3X5TypeC{ { - Type: "Line25Form3X5TypeC", - LinkType: 0, + Type: "Line25Form3X5TypeC", + LinkType: 0, Direction: 0, LineCount: 25, Lines: [][]int64{ @@ -613,8 +613,8 @@ func init() { MatrixLine25Form3X5TypeD = []*structs.MatrixLine25Form3X5TypeD{ { - Type: "Line25Form3X5TypeD", - LinkType: 0, + Type: "Line25Form3X5TypeD", + LinkType: 0, Direction: 0, LineCount: 25, Lines: [][]int64{ @@ -650,8 +650,8 @@ func init() { MatrixLine25Form3X5TypeE = []*structs.MatrixLine25Form3X5TypeE{ { - Type: "Line25Form3X5TypeE", - LinkType: 0, + Type: "Line25Form3X5TypeE", + LinkType: 0, Direction: 0, LineCount: 25, Lines: [][]int64{ @@ -687,8 +687,8 @@ func init() { MatrixLine30Form3X5TypeA = []*structs.MatrixLine30Form3X5TypeA{ { - Type: "Line30Form3X5TypeA", - LinkType: 0, + Type: "Line30Form3X5TypeA", + LinkType: 0, Direction: 0, LineCount: 30, Lines: [][]int64{ @@ -729,8 +729,8 @@ func init() { MatrixLine30Form3X5TypeB = []*structs.MatrixLine30Form3X5TypeB{ { - Type: "Line30Form3X5TypeB", - LinkType: 0, + Type: "Line30Form3X5TypeB", + LinkType: 0, Direction: 0, LineCount: 30, Lines: [][]int64{ @@ -771,8 +771,8 @@ func init() { MatrixLine30Form3X5TypeC = []*structs.MatrixLine30Form3X5TypeC{ { - Type: "Line30Form3X5TypeC", - LinkType: 0, + Type: "Line30Form3X5TypeC", + LinkType: 0, Direction: 0, LineCount: 30, Lines: [][]int64{ @@ -813,8 +813,8 @@ func init() { MatrixLine30Form3X5TypeD = []*structs.MatrixLine30Form3X5TypeD{ { - Type: "Line30Form3X5TypeD", - LinkType: 0, + Type: "Line30Form3X5TypeD", + LinkType: 0, Direction: 0, LineCount: 30, Lines: [][]int64{ @@ -855,8 +855,8 @@ func init() { MatrixLine30Form3X5TypeE = []*structs.MatrixLine30Form3X5TypeE{ { - Type: "Line30Form3X5TypeE", - LinkType: 0, + Type: "Line30Form3X5TypeE", + LinkType: 0, Direction: 0, LineCount: 30, Lines: [][]int64{ @@ -897,8 +897,8 @@ func init() { MatrixLine30Form3X6TypeA = []*structs.MatrixLine30Form3X6TypeA{ { - Type: "Line30Form3X6TypeA", - LinkType: 0, + Type: "Line30Form3X6TypeA", + LinkType: 0, Direction: 0, LineCount: 30, Lines: [][]int64{ @@ -939,8 +939,8 @@ func init() { MatrixLine30Form4X5TypeA = []*structs.MatrixLine30Form4X5TypeA{ { - Type: "Line30Form4X5TypeA", - LinkType: 0, + Type: "Line30Form4X5TypeA", + LinkType: 0, Direction: 0, LineCount: 30, Lines: [][]int64{ @@ -981,8 +981,8 @@ func init() { MatrixLine30Form4X5TypeB = []*structs.MatrixLine30Form4X5TypeB{ { - Type: "Line30Form4X5TypeB", - LinkType: 0, + Type: "Line30Form4X5TypeB", + LinkType: 0, Direction: 0, LineCount: 30, Lines: [][]int64{ @@ -1023,8 +1023,8 @@ func init() { MatrixLine3Form3X3TypeA = []*structs.MatrixLine3Form3X3TypeA{ { - Type: "Line3Form3X3TypeA", - LinkType: 0, + Type: "Line3Form3X3TypeA", + LinkType: 0, Direction: 0, LineCount: 3, Lines: [][]int64{ @@ -1038,8 +1038,8 @@ func init() { MatrixLine40Form34543TypeA = []*structs.MatrixLine40Form34543TypeA{ { - Type: "Line40Form34543TypeA", - LinkType: 0, + Type: "Line40Form34543TypeA", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1090,8 +1090,8 @@ func init() { MatrixLine40Form3X5TypeA = []*structs.MatrixLine40Form3X5TypeA{ { - Type: "Line40Form3X5TypeA", - LinkType: 0, + Type: "Line40Form3X5TypeA", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1142,8 +1142,8 @@ func init() { MatrixLine40Form3X5TypeB = []*structs.MatrixLine40Form3X5TypeB{ { - Type: "Line40Form3X5TypeB", - LinkType: 0, + Type: "Line40Form3X5TypeB", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1194,8 +1194,8 @@ func init() { MatrixLine40Form3X5TypeC = []*structs.MatrixLine40Form3X5TypeC{ { - Type: "Line40Form3X5TypeC", - LinkType: 0, + Type: "Line40Form3X5TypeC", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1246,8 +1246,8 @@ func init() { MatrixLine40Form3X5TypeD = []*structs.MatrixLine40Form3X5TypeD{ { - Type: "Line40Form3X5TypeD", - LinkType: 0, + Type: "Line40Form3X5TypeD", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1298,8 +1298,8 @@ func init() { MatrixLine40Form4X5TypeA = []*structs.MatrixLine40Form4X5TypeA{ { - Type: "Line40Form4X5TypeA", - LinkType: 0, + Type: "Line40Form4X5TypeA", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1350,8 +1350,8 @@ func init() { MatrixLine40Form4X5TypeB = []*structs.MatrixLine40Form4X5TypeB{ { - Type: "Line40Form4X5TypeA", - LinkType: 0, + Type: "Line40Form4X5TypeA", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1402,8 +1402,8 @@ func init() { MatrixLine40Form4X5TypeC = []*structs.MatrixLine40Form4X5TypeC{ { - Type: "Line40Form4X5TypeC", - LinkType: 0, + Type: "Line40Form4X5TypeC", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1454,8 +1454,8 @@ func init() { MatrixLine40Form4X6TypeA = []*structs.MatrixLine40Form4X6TypeA{ { - Type: "Line40Form4X6TypeA", - LinkType: 0, + Type: "Line40Form4X6TypeA", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1506,8 +1506,8 @@ func init() { MatrixLine50Form3X5TypeA = []*structs.MatrixLine50Form3X5TypeA{ { - Type: "Line50Form3X5TypeA", - LinkType: 0, + Type: "Line50Form3X5TypeA", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -1568,8 +1568,8 @@ func init() { MatrixLine50Form3X5TypeB = []*structs.MatrixLine50Form3X5TypeB{ { - Type: "Line50Form3X5TypeB", - LinkType: 0, + Type: "Line50Form3X5TypeB", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -1630,8 +1630,8 @@ func init() { MatrixLine50Form3X5TypeC = []*structs.MatrixLine50Form3X5TypeC{ { - Type: "Line50Form3X5TypeC", - LinkType: 0, + Type: "Line50Form3X5TypeC", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -1692,8 +1692,8 @@ func init() { MatrixLine50Form3X5TypeD = []*structs.MatrixLine50Form3X5TypeD{ { - Type: "Line50Form3X5TypeD", - LinkType: 0, + Type: "Line50Form3X5TypeD", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -1754,8 +1754,8 @@ func init() { MatrixLine50Form3X5TypeE = []*structs.MatrixLine50Form3X5TypeE{ { - Type: "Line50Form3X5TypeE", - LinkType: 0, + Type: "Line50Form3X5TypeE", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -1816,8 +1816,8 @@ func init() { MatrixLine50Form3X5TypeF = []*structs.MatrixLine50Form3X5TypeF{ { - Type: "Line50Form3X5TypeF", - LinkType: 0, + Type: "Line50Form3X5TypeF", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -1878,8 +1878,8 @@ func init() { MatrixLine50Form3X5TypeG = []*structs.MatrixLine50Form3X5TypeG{ { - Type: "Line50Form3X5TypeG", - LinkType: 0, + Type: "Line50Form3X5TypeG", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -1940,8 +1940,8 @@ func init() { MatrixLine50Form3X5TypeH = []*structs.MatrixLine50Form3X5TypeH{ { - Type: "Line50Form3X5TypeH", - LinkType: 0, + Type: "Line50Form3X5TypeH", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2002,8 +2002,8 @@ func init() { MatrixLine50Form45454TypeA = []*structs.MatrixLine50Form45454TypeA{ { - Type: "Line50Form45454TypeA", - LinkType: 0, + Type: "Line50Form45454TypeA", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2064,8 +2064,8 @@ func init() { MatrixLine50Form4X5TypeA = []*structs.MatrixLine50Form4X5TypeA{ { - Type: "Line50Form4X5TypeA", - LinkType: 0, + Type: "Line50Form4X5TypeA", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2126,8 +2126,8 @@ func init() { MatrixLine50Form4X5TypeB = []*structs.MatrixLine50Form4X5TypeB{ { - Type: "Line50Form4X5TypeB", - LinkType: 0, + Type: "Line50Form4X5TypeB", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2188,8 +2188,8 @@ func init() { MatrixLine50Form4X5TypeC = []*structs.MatrixLine50Form4X5TypeC{ { - Type: "Line50Form4X5TypeC", - LinkType: 0, + Type: "Line50Form4X5TypeC", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2250,8 +2250,8 @@ func init() { MatrixLine50Form4X5TypeD = []*structs.MatrixLine50Form4X5TypeD{ { - Type: "Line50Form4X5TypeD", - LinkType: 0, + Type: "Line50Form4X5TypeD", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2312,8 +2312,8 @@ func init() { MatrixLine50Form4X5TypeE = []*structs.MatrixLine50Form4X5TypeE{ { - Type: "Line50Form4X5TypeE", - LinkType: 0, + Type: "Line50Form4X5TypeE", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2374,8 +2374,8 @@ func init() { MatrixLine50Form4X5TypeF = []*structs.MatrixLine50Form4X5TypeF{ { - Type: "Line50Form4X5TypeF", - LinkType: 0, + Type: "Line50Form4X5TypeF", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2436,8 +2436,8 @@ func init() { MatrixLine50Form4X6TypeA = []*structs.MatrixLine50Form4X6TypeA{ { - Type: "Line50Form4X6TypeA", - LinkType: 0, + Type: "Line50Form4X6TypeA", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2498,8 +2498,8 @@ func init() { MatrixLine50Form5X5TypeA = []*structs.MatrixLine50Form5X5TypeA{ { - Type: "Line50Form5X5TypeA", - LinkType: 0, + Type: "Line50Form5X5TypeA", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2560,8 +2560,8 @@ func init() { MatrixLine50Form5X5TypeB = []*structs.MatrixLine50Form5X5TypeB{ { - Type: "Line50Form5X5TypeB", - LinkType: 0, + Type: "Line50Form5X5TypeB", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2622,8 +2622,8 @@ func init() { MatrixLine50Form5X5TypeC = []*structs.MatrixLine50Form5X5TypeC{ { - Type: "Line50Form5X5TypeC", - LinkType: 0, + Type: "Line50Form5X5TypeC", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2684,8 +2684,8 @@ func init() { MatrixLine50Form6X5TypeA = []*structs.MatrixLine50Form6X5TypeA{ { - Type: "Line50Form6X5TypeA", - LinkType: 0, + Type: "Line50Form6X5TypeA", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2746,8 +2746,8 @@ func init() { MatrixLine5Form3X3TypeA = []*structs.MatrixLine5Form3X3TypeA{ { - Type: "Line5Form3X3TypeA", - LinkType: 0, + Type: "Line5Form3X3TypeA", + LinkType: 0, Direction: 0, LineCount: 5, Lines: [][]int64{ @@ -2763,8 +2763,8 @@ func init() { MatrixLine5Form3X3TypeB = []*structs.MatrixLine5Form3X3TypeB{ { - Type: "Line5Form3X3TypeB", - LinkType: 0, + Type: "Line5Form3X3TypeB", + LinkType: 0, Direction: 0, LineCount: 5, Lines: [][]int64{ @@ -2780,8 +2780,8 @@ func init() { MatrixLine60Form33633TypeA = []*structs.MatrixLine60Form33633TypeA{ { - Type: "Line60Form33633TypeA", - LinkType: 0, + Type: "Line60Form33633TypeA", + LinkType: 0, Direction: 0, LineCount: 60, Lines: [][]int64{ @@ -2852,8 +2852,8 @@ func init() { MatrixLine60Form8X5TypeA = []*structs.MatrixLine60Form8X5TypeA{ { - Type: "Line60Form8X5TypeA", - LinkType: 0, + Type: "Line60Form8X5TypeA", + LinkType: 0, Direction: 0, LineCount: 60, Lines: [][]int64{ @@ -2924,8 +2924,8 @@ func init() { MatrixLine65Form6X5TypeA = []*structs.MatrixLine65Form6X5TypeA{ { - Type: "Line65Form6X5TypeA", - LinkType: 0, + Type: "Line65Form6X5TypeA", + LinkType: 0, Direction: 0, LineCount: 65, Lines: [][]int64{ @@ -3001,8 +3001,8 @@ func init() { MatrixLine70Form9X5TypeA = []*structs.MatrixLine70Form9X5TypeA{ { - Type: "Line70Form9X5TypeA", - LinkType: 0, + Type: "Line70Form9X5TypeA", + LinkType: 0, Direction: 0, LineCount: 70, Lines: [][]int64{ @@ -3083,8 +3083,8 @@ func init() { MatrixLine75Form5X6TypeA = []*structs.MatrixLine75Form5X6TypeA{ { - Type: "Line75Form5X6TypeA", - LinkType: 0, + Type: "Line75Form5X6TypeA", + LinkType: 0, Direction: 0, LineCount: 75, Lines: [][]int64{ @@ -3170,8 +3170,8 @@ func init() { MatrixLine75Form6X5TypeA = []*structs.MatrixLine75Form6X5TypeA{ { - Type: "Line75Form6X5TypeA", - LinkType: 0, + Type: "Line75Form6X5TypeA", + LinkType: 0, Direction: 0, LineCount: 75, Lines: [][]int64{ @@ -3257,8 +3257,8 @@ func init() { MatrixLine80Form10X5TypeA = []*structs.MatrixLine80Form10X5TypeA{ { - Type: "Line80Form10X5TypeA", - LinkType: 0, + Type: "Line80Form10X5TypeA", + LinkType: 0, Direction: 0, LineCount: 80, Lines: [][]int64{ @@ -3349,8 +3349,8 @@ func init() { MatrixLine80Form3X5TypeA = []*structs.MatrixLine80Form3X5TypeA{ { - Type: "Line80Form3X5TypeA", - LinkType: 0, + Type: "Line80Form3X5TypeA", + LinkType: 0, Direction: 0, LineCount: 80, Lines: [][]int64{ @@ -3441,8 +3441,8 @@ func init() { MatrixLine80Form4X6TypeA = []*structs.MatrixLine80Form4X6TypeA{ { - Type: "Line80Form4X6TypeA", - LinkType: 0, + Type: "Line80Form4X6TypeA", + LinkType: 0, Direction: 0, LineCount: 80, Lines: [][]int64{ @@ -3533,8 +3533,8 @@ func init() { MatrixLine80Form7X5TypeA = []*structs.MatrixLine80Form7X5TypeA{ { - Type: "Line80Form7X5TypeA", - LinkType: 0, + Type: "Line80Form7X5TypeA", + LinkType: 0, Direction: 0, LineCount: 80, Lines: [][]int64{ @@ -3625,8 +3625,8 @@ func init() { MatrixLine90Form11X5TypeA = []*structs.MatrixLine90Form11X5TypeA{ { - Type: "Line90Form11X5TypeA", - LinkType: 0, + Type: "Line90Form11X5TypeA", + LinkType: 0, Direction: 0, LineCount: 90, Lines: [][]int64{ @@ -3727,8 +3727,8 @@ func init() { MatrixLine95Form8X5TypeA = []*structs.MatrixLine95Form8X5TypeA{ { - Type: "Line95Form8X5TypeA", - LinkType: 0, + Type: "Line95Form8X5TypeA", + LinkType: 0, Direction: 0, LineCount: 95, Lines: [][]int64{ @@ -3834,8 +3834,8 @@ func init() { MatrixMatchForm7X7TypeA = []*structs.MatrixMatchForm7X7TypeA{ { - Type: "MatchForm7X7", - LinkType: 4, + Type: "MatchForm7X7", + LinkType: 4, Direction: 0, LineCount: 20, Lines: [][]int64{ @@ -3847,8 +3847,8 @@ func init() { MatrixSameForm5X6TypeA = []*structs.MatrixSameForm5X6TypeA{ { - Type: "SameForm5X6", - LinkType: 3, + Type: "SameForm5X6", + LinkType: 3, Direction: 0, LineCount: 20, Lines: [][]int64{ @@ -3860,8 +3860,8 @@ func init() { MatrixSameForm5X6TypeB = []*structs.MatrixSameForm5X6TypeB{ { - Type: "SameForm5X6TypeB", - LinkType: 3, + Type: "SameForm5X6TypeB", + LinkType: 3, Direction: 0, LineCount: 25, Lines: [][]int64{ @@ -3873,8 +3873,8 @@ func init() { MatrixWaysForm333331 = []*structs.MatrixWaysForm333331{ { - Type: "WaysForm333331", - LinkType: 1, + Type: "WaysForm333331", + LinkType: 1, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -3886,8 +3886,8 @@ func init() { MatrixWaysForm33555 = []*structs.MatrixWaysForm33555{ { - Type: "WaysForm33555", - LinkType: 1, + Type: "WaysForm33555", + LinkType: 1, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -3899,8 +3899,8 @@ func init() { MatrixWaysForm344444 = []*structs.MatrixWaysForm344444{ { - Type: "WaysForm344444", - LinkType: 1, + Type: "WaysForm344444", + LinkType: 1, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -3912,8 +3912,8 @@ func init() { MatrixWaysForm3X5TypeA = []*structs.MatrixWaysForm3X5TypeA{ { - Type: "WaysForm3X5TypeA", - LinkType: 1, + Type: "WaysForm3X5TypeA", + LinkType: 1, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -3925,8 +3925,8 @@ func init() { MatrixWaysForm44668 = []*structs.MatrixWaysForm44668{ { - Type: "WaysForm44668", - LinkType: 1, + Type: "WaysForm44668", + LinkType: 1, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -3938,8 +3938,8 @@ func init() { MatrixWaysForm4X5TypeA = []*structs.MatrixWaysForm4X5TypeA{ { - Type: "WaysForm4X5TypeA", - LinkType: 1, + Type: "WaysForm4X5TypeA", + LinkType: 1, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -3951,8 +3951,8 @@ func init() { MatrixWaysForm4X5TypeB = []*structs.MatrixWaysForm4X5TypeB{ { - Type: "WaysForm4X5TypeB", - LinkType: 1, + Type: "WaysForm4X5TypeB", + LinkType: 1, Direction: 0, LineCount: 60, Lines: [][]int64{ @@ -3962,4 +3962,4 @@ func init() { }, } -} \ No newline at end of file +} diff --git a/gamesrv/tienlen/scenedata_tienlen.go b/gamesrv/tienlen/scenedata_tienlen.go index 5ca6e11..f242ee5 100644 --- a/gamesrv/tienlen/scenedata_tienlen.go +++ b/gamesrv/tienlen/scenedata_tienlen.go @@ -73,6 +73,7 @@ type TienLenSceneData struct { RoundLogId []string // 每局牌局记录id CustomLogSave bool // 是否已经保存日志 PlayerAward map[int32]*[]*model.Item // 房卡场最终奖励 + bill *tienlen.SCTienLenGameBilled } func NewTienLenSceneData(s *base.Scene) *TienLenSceneData { diff --git a/gamesrv/tienlen/scenepolicy_tienlen.go b/gamesrv/tienlen/scenepolicy_tienlen.go index 0ebfebf..f71b8b9 100644 --- a/gamesrv/tienlen/scenepolicy_tienlen.go +++ b/gamesrv/tienlen/scenepolicy_tienlen.go @@ -427,6 +427,7 @@ func TienLenCreateRoomInfoPacket(s *base.Scene, p *base.Player, sceneEx *TienLen NumOfGames: proto.Int(sceneEx.NumOfGames), TotalOfGames: sceneEx.TotalOfGames, CurOpIdx: proto.Int(-1), + IsSmallCard: sceneEx.FindWinPos() == -1, MasterSnid: proto.Int32(sceneEx.masterSnid), AudienceNum: proto.Int(s.GetAudiencesNum()), BaseScore: proto.Int32(s.GetBaseScore()), @@ -1057,12 +1058,14 @@ func (this *SceneHandCardStateTienLen) OnEnter(s *base.Scene) { } if len(sceneEx.tianHuSnids) == 0 { //没有天胡玩家 //有赢家,赢家先出;无赢家手持最小牌先 - pos := int32(sceneEx.FindWinPos()) - if pos == -1 { + winPos := int32(sceneEx.FindWinPos()) + pos := winPos + if winPos == -1 { pos = sceneEx.startOpPos } pack := &tienlen.SCTienLenFirstOpPos{ - Pos: proto.Int32(pos), + Pos: pos, + IsSmallCard: winPos == -1, } proto.SetDefaults(pack) sceneEx.Broadcast(int(tienlen.TienLenPacketID_PACKET_SCTienLenFirstOpPos), pack, 0) @@ -2623,6 +2626,7 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) { proto.SetDefaults(pack) s.Broadcast(int(tienlen.TienLenPacketID_PACKET_SCTienLenGameBilled), pack, 0) logger.Logger.Trace("TienLenPacketID_PACKET_SCTienLenGameBilled gameFreeId:", sceneEx.GetGameFreeId(), ";pack:", pack) + sceneEx.bill = pack if sceneEx.IsCustom() && sceneEx.TotalOfGames > 0 { for _, v := range tienlenType.PlayerData { @@ -2932,6 +2936,16 @@ func (this *SceneBilledStateTienLen) OnPlayerOp(s *base.Scene, p *base.Player, o // 玩家事件 func (this *SceneBilledStateTienLen) OnPlayerEvent(s *base.Scene, p *base.Player, evtcode int, params []int64) { this.SceneBaseStateTienLen.OnPlayerEvent(s, p, evtcode, params) + sceneEx, ok := s.GetExtraData().(*TienLenSceneData) + if !ok { + return + } + switch evtcode { + case base.PlayerEventRehold: + if sceneEx.bill != nil && sceneEx.IsRankMatch() { + p.SendToClient(int(tienlen.TienLenPacketID_PACKET_SCTienLenGameBilled), sceneEx.bill) + } + } } func (this *SceneBilledStateTienLen) OnTick(s *base.Scene) { diff --git a/model/config.go b/model/config.go index 2127f91..2080dbf 100644 --- a/model/config.go +++ b/model/config.go @@ -25,7 +25,7 @@ const ( OpPhoneLottery = 5 OpCollect = 6 OpNian = 7 - OpRedPacket = 8 // 红包活动 + OpConsume = 8 // 累计消耗活动 ) const ( @@ -170,6 +170,7 @@ type AllConfig struct { *webapi.GamePigBankPropConfig //年兽配置 *webapi.ActivityNianConfig + *webapi.NianRankReward // 红包配置 *webapi.RedPacketConfig // 累计消耗活动配置 diff --git a/model/permit.go b/model/permit.go index 70798d1..a1ca310 100644 --- a/model/permit.go +++ b/model/permit.go @@ -44,13 +44,14 @@ type BackendPermitJoin struct { // BackendPermitTask 通行证任务完成记录 type BackendPermitTask struct { - Platform string // 平台 - StartTs int64 // 活动开始时间 - SnId int32 // 玩家id - TaskId int32 // 任务id - TaskName string // 任务名称 - ActivityType int32 // 活动类型 - TaskType int32 // 任务类型 - Gain []AwardItem // 任务获得奖励 - Ts int64 // 时间戳 + Platform string // 平台 + StartTs int64 // 活动开始时间 + SnId int32 // 玩家id + TaskId int32 // 任务id + TaskName string // 任务名称 + ActivityType int32 // 活动类型 + TaskType int32 // 任务类型 + Gain []AwardItem // 任务获得奖励 + Ts int64 // 时间戳 + RemainDiamond int64 // 剩余钻石 } diff --git a/model/player.go b/model/player.go index c4b5dc3..8d1af92 100644 --- a/model/player.go +++ b/model/player.go @@ -112,6 +112,8 @@ const ( SystemFreeGive_CollectBoxSwap // 卡片礼盒兑换奖励 SystemFreeGive_ClientUpgrade // 客户端升级奖励 SystemFreeGive_Guide // 新手引导奖励 + SystemFreeGive_NianEveryDayTask // 年兽每日任务 + SystemFreeGive_NianTask //年兽活动任务 ) const ( SystemFreeGive_CoinType_Coin int32 = iota //金币 @@ -132,6 +134,7 @@ const ( ActivityLog_Shop //商城购买 ActivityLog_Exchange //商城兑换 ActivityLog_CoinPigBank //金币存钱罐 + ActivityLog_NianBuff //年兽领取Buff ) type PlayerGameCtrlData struct { @@ -599,6 +602,7 @@ func NewWelfareData() *WelfareData { RedPacket: make(map[int64]*RedPacketData), NianData: &NianData{ OtherAwardNum: make(map[int32]int32), + GiftShop: make(map[int32]int32), }, } } @@ -703,6 +707,9 @@ type NianData struct { LittleHurt int32 //小爆竹次数 BigHurt int32 //大爆竹次数 OtherAwardNum map[int32]int32 //奖励掉落数量 + AttackMaxHp int64 //单次攻击最大血量 + AttackSumHp int64 //攻击总伤害 + GiftShop map[int32]int32 //购买每日礼包记录 } func ConvertPlayerDataToWebData(param *WebPlayerDataParam) *webapi.PlayerData { diff --git a/model/rank.go b/model/rank.go index 7fcdd75..f417be9 100644 --- a/model/rank.go +++ b/model/rank.go @@ -12,6 +12,7 @@ const ( MQRankPlayerInvite = "log_rankplayerinvite" MQRankPlayerLevel = "log_rankplayerlevel" MQRankPlayerPermit = "log_rankplayerpermit" // 赛季通行证排行榜 + MQRankNian = "log_ranknian" //年兽排行榜 ) // 排行榜类型 @@ -330,3 +331,91 @@ func SaveRankInvite(args *RankInvite) error { } return nil } + +// 年兽排行榜 +type NianInfo struct { + Platform string + SnId int32 + Name string + Luck int64 + Damage int64 + ModId int32 //头像 + LuckTime int64 //幸运值更新时间 + Ts int64 //更新时间 +} + +type FindNianListArgs struct { + Platform string +} +type FindNianListReply struct { + List []*NianInfo +} + +func FindLuckNianRankList(args *FindNianListArgs) (*FindNianListReply, error) { + if rpcCli == nil { + logger.Logger.Error("model.FindLuckNianList rpcCli == nil") + return nil, nil + } + + ret := new(FindNianListReply) + err := rpcCli.CallWithTimeout("RankNianSvc.LuckFind", args, ret, time.Second*30) + if err != nil { + logger.Logger.Error("GetNianLuckRankList error:", err) + return ret, err + } + return ret, nil +} + +func FindDamageNianRankList(args *FindNianListArgs) (*FindNianListReply, error) { + if rpcCli == nil { + logger.Logger.Error("model.FindNianList rpcCli == nil") + return nil, nil + } + + ret := new(FindNianListReply) + err := rpcCli.CallWithTimeout("RankNianSvc.DamageFind", args, ret, time.Second*30) + if err != nil { + logger.Logger.Error("GetNianDamageRankList error:", err) + return ret, err + } + return ret, nil +} +func ClearNianRank(args *FindNianListArgs) error { + if rpcCli == nil { + logger.Logger.Error("model.FindNianList rpcCli == nil") + return nil + } + ret := new(FindNianListReply) + err := rpcCli.CallWithTimeout("RankNianSvc.UpdateAll", args, ret, time.Second*30) + if err != nil { + logger.Logger.Error("GetNianDamageRankList error:", err) + return err + } + return nil +} +func DelNianRank(args *FindNianListArgs) error { + if rpcCli == nil { + logger.Logger.Error("model.FindNianList rpcCli == nil") + return nil + } + ret := new(FindNianListReply) + err := rpcCli.CallWithTimeout("RankNianSvc.DelAll", args, ret, time.Second*30) + if err != nil { + logger.Logger.Error("GetNianDamageRankList error:", err) + return err + } + return nil +} + +// 年兽排行榜记录 +type NianPlayerRankLog struct { + TypeId int32 //1-幸运榜 2:伤害榜 + RankData []*NianPlayerRankData + Platform string + Ts int64 +} +type NianPlayerRankData struct { + RankId int32 + Snid int32 + Score int64 +} diff --git a/model/redpacket.go b/model/redpacket.go index 6c49c65..2b577f4 100644 --- a/model/redpacket.go +++ b/model/redpacket.go @@ -65,3 +65,13 @@ func UpdateRedPacketAll(plt string, list []*RedPacket) error { return nil } + +// BackRedPacket 红包统计数据 +type BackRedPacket struct { + Platform string // 平台 + Id int32 // 红包活动id + SnId int32 // 玩家id + ItemId int32 // 道具id + ItemNum int64 // 道具数量 + Ts int64 // 时间戳 +} diff --git a/mq/keyconf.go b/mq/keyconf.go index 3dc3205..9c526bf 100644 --- a/mq/keyconf.go +++ b/mq/keyconf.go @@ -19,6 +19,8 @@ const ( BackSystemJyb = "back_jyblog" BackActivityLog = "back_activitylog" BackOnlineGame = "back_onlinegame" + BackRedPacket = "back_redpacket" + NianPlayerRank = "log_nianplayerrank" ) // go后端 diff --git a/protocol/activity/nian.pb.go b/protocol/activity/nian.pb.go index cc51864..d810494 100644 --- a/protocol/activity/nian.pb.go +++ b/protocol/activity/nian.pb.go @@ -34,6 +34,8 @@ const ( NianPacketID_PACKET_SCNianAttackData NianPacketID = 2667 //返回攻击年兽信息 NianPacketID_PACKET_CSNianSignAward NianPacketID = 2668 //请求签到 NianPacketID_PACKET_SCNianSignAward NianPacketID = 2669 //签到返回 + NianPacketID_PACKET_CSNianChange NianPacketID = 2670 //请求兑换小爆竹 + NianPacketID_PACKET_SCNianChange NianPacketID = 2671 //返回兑换道具 ) // Enum value maps for NianPacketID. @@ -50,6 +52,8 @@ var ( 2667: "PACKET_SCNianAttackData", 2668: "PACKET_CSNianSignAward", 2669: "PACKET_SCNianSignAward", + 2670: "PACKET_CSNianChange", + 2671: "PACKET_SCNianChange", } NianPacketID_value = map[string]int32{ "PACKET_Nian_ZERO": 0, @@ -63,6 +67,8 @@ var ( "PACKET_SCNianAttackData": 2667, "PACKET_CSNianSignAward": 2668, "PACKET_SCNianSignAward": 2669, + "PACKET_CSNianChange": 2670, + "PACKET_SCNianChange": 2671, } ) @@ -93,6 +99,53 @@ func (NianPacketID) EnumDescriptor() ([]byte, []int) { return file_protocol_activity_nian_proto_rawDescGZIP(), []int{0} } +//操作结果 +type OpResultCode_Nian int32 + +const ( + OpResultCode_Nian_OPRC_Sucess_Nian OpResultCode_Nian = 0 //成功 + OpResultCode_Nian_OPRC_Error_Nian OpResultCode_Nian = 1 //失败 +) + +// Enum value maps for OpResultCode_Nian. +var ( + OpResultCode_Nian_name = map[int32]string{ + 0: "OPRC_Sucess_Nian", + 1: "OPRC_Error_Nian", + } + OpResultCode_Nian_value = map[string]int32{ + "OPRC_Sucess_Nian": 0, + "OPRC_Error_Nian": 1, + } +) + +func (x OpResultCode_Nian) Enum() *OpResultCode_Nian { + p := new(OpResultCode_Nian) + *p = x + return p +} + +func (x OpResultCode_Nian) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (OpResultCode_Nian) Descriptor() protoreflect.EnumDescriptor { + return file_protocol_activity_nian_proto_enumTypes[1].Descriptor() +} + +func (OpResultCode_Nian) Type() protoreflect.EnumType { + return &file_protocol_activity_nian_proto_enumTypes[1] +} + +func (x OpResultCode_Nian) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OpResultCode_Nian.Descriptor instead. +func (OpResultCode_Nian) EnumDescriptor() ([]byte, []int) { + return file_protocol_activity_nian_proto_rawDescGZIP(), []int{1} +} + //获取年兽活动信息 //PACKET_CSNianData type CSNianData struct { @@ -139,16 +192,22 @@ type SCNianData struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ActivityStartTime int64 `protobuf:"varint,1,opt,name=ActivityStartTime,proto3" json:"ActivityStartTime,omitempty"` //活动开始时间 - ActivityEndTime int64 `protobuf:"varint,2,opt,name=ActivityEndTime,proto3" json:"ActivityEndTime,omitempty"` //活动结束时间 - BossMaxHp int64 `protobuf:"varint,3,opt,name=BossMaxHp,proto3" json:"BossMaxHp,omitempty"` //Boss最大血量 - BossHp int64 `protobuf:"varint,4,opt,name=BossHp,proto3" json:"BossHp,omitempty"` //Boss当前血量 - LuckData []*RankData `protobuf:"bytes,5,rep,name=LuckData,proto3" json:"LuckData,omitempty"` //幸运榜 - AwardTime int64 `protobuf:"varint,6,opt,name=AwardTime,proto3" json:"AwardTime,omitempty"` //每日签到领取时间 - BuffCount int64 `protobuf:"varint,7,opt,name=BuffCount,proto3" json:"BuffCount,omitempty"` //Buff剩余次数 - BuffStatus bool `protobuf:"varint,8,opt,name=BuffStatus,proto3" json:"BuffStatus,omitempty"` //Buff领取状态 - On int32 `protobuf:"varint,9,opt,name=On,proto3" json:"On,omitempty"` //活动开关 1开启 2关闭 - SignAwardTime int64 `protobuf:"varint,10,opt,name=SignAwardTime,proto3" json:"SignAwardTime,omitempty"` //签到领取时间 0-未领取 + ActivityStartTime int64 `protobuf:"varint,1,opt,name=ActivityStartTime,proto3" json:"ActivityStartTime,omitempty"` //活动开始时间 + ActivityEndTime int64 `protobuf:"varint,2,opt,name=ActivityEndTime,proto3" json:"ActivityEndTime,omitempty"` //活动结束时间 + BossMaxHp int64 `protobuf:"varint,3,opt,name=BossMaxHp,proto3" json:"BossMaxHp,omitempty"` //Boss最大血量 + BossHp int64 `protobuf:"varint,4,opt,name=BossHp,proto3" json:"BossHp,omitempty"` //Boss当前血量 + RankData []*NianRankData `protobuf:"bytes,5,rep,name=RankData,proto3" json:"RankData,omitempty"` //排行榜奖励配置 + AwardTime int64 `protobuf:"varint,6,opt,name=AwardTime,proto3" json:"AwardTime,omitempty"` //每日签到领取时间 + BuffCount int64 `protobuf:"varint,7,opt,name=BuffCount,proto3" json:"BuffCount,omitempty"` //Buff剩余次数 + BuffStatus bool `protobuf:"varint,8,opt,name=BuffStatus,proto3" json:"BuffStatus,omitempty"` //Buff领取状态 + SignAwardTime int64 `protobuf:"varint,9,opt,name=SignAwardTime,proto3" json:"SignAwardTime,omitempty"` //签到领取时间 0-未领取 + BuffStartTime int64 `protobuf:"varint,10,opt,name=BuffStartTime,proto3" json:"BuffStartTime,omitempty"` //Buff开始领取时间 + BuffEndTime int64 `protobuf:"varint,11,opt,name=BuffEndTime,proto3" json:"BuffEndTime,omitempty"` //Buff结束领取时间 + ShopData []*ShopData `protobuf:"bytes,12,rep,name=shopData,proto3" json:"shopData,omitempty"` //购买礼包数量 + ChangeData string `protobuf:"bytes,13,opt,name=ChangeData,proto3" json:"ChangeData,omitempty"` //兑换数据 + LuckyRankNeed string `protobuf:"bytes,14,opt,name=LuckyRankNeed,proto3" json:"LuckyRankNeed,omitempty"` //幸运榜上榜条件 + RankNeed string `protobuf:"bytes,15,opt,name=RankNeed,proto3" json:"RankNeed,omitempty"` //总伤害榜上榜条件 + Switch int32 `protobuf:"varint,16,opt,name=Switch,proto3" json:"Switch,omitempty"` //活动开关 1.开启 2.关闭 } func (x *SCNianData) Reset() { @@ -211,9 +270,9 @@ func (x *SCNianData) GetBossHp() int64 { return 0 } -func (x *SCNianData) GetLuckData() []*RankData { +func (x *SCNianData) GetRankData() []*NianRankData { if x != nil { - return x.LuckData + return x.RankData } return nil } @@ -239,16 +298,121 @@ func (x *SCNianData) GetBuffStatus() bool { return false } -func (x *SCNianData) GetOn() int32 { +func (x *SCNianData) GetSignAwardTime() int64 { if x != nil { - return x.On + return x.SignAwardTime } return 0 } -func (x *SCNianData) GetSignAwardTime() int64 { +func (x *SCNianData) GetBuffStartTime() int64 { if x != nil { - return x.SignAwardTime + return x.BuffStartTime + } + return 0 +} + +func (x *SCNianData) GetBuffEndTime() int64 { + if x != nil { + return x.BuffEndTime + } + return 0 +} + +func (x *SCNianData) GetShopData() []*ShopData { + if x != nil { + return x.ShopData + } + return nil +} + +func (x *SCNianData) GetChangeData() string { + if x != nil { + return x.ChangeData + } + return "" +} + +func (x *SCNianData) GetLuckyRankNeed() string { + if x != nil { + return x.LuckyRankNeed + } + return "" +} + +func (x *SCNianData) GetRankNeed() string { + if x != nil { + return x.RankNeed + } + return "" +} + +func (x *SCNianData) GetSwitch() int32 { + if x != nil { + return x.Switch + } + return 0 +} + +type ShopData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ShopId int32 `protobuf:"varint,1,opt,name=ShopId,proto3" json:"ShopId,omitempty"` //shopId + ShopNum int32 `protobuf:"varint,2,opt,name=ShopNum,proto3" json:"ShopNum,omitempty"` //已购买次数 + MaxShopNum int32 `protobuf:"varint,3,opt,name=MaxShopNum,proto3" json:"MaxShopNum,omitempty"` //最大购买次数 +} + +func (x *ShopData) Reset() { + *x = ShopData{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_activity_nian_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ShopData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ShopData) ProtoMessage() {} + +func (x *ShopData) ProtoReflect() protoreflect.Message { + mi := &file_protocol_activity_nian_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ShopData.ProtoReflect.Descriptor instead. +func (*ShopData) Descriptor() ([]byte, []int) { + return file_protocol_activity_nian_proto_rawDescGZIP(), []int{2} +} + +func (x *ShopData) GetShopId() int32 { + if x != nil { + return x.ShopId + } + return 0 +} + +func (x *ShopData) GetShopNum() int32 { + if x != nil { + return x.ShopNum + } + return 0 +} + +func (x *ShopData) GetMaxShopNum() int32 { + if x != nil { + return x.MaxShopNum } return 0 } @@ -265,7 +429,7 @@ type CSNianBuff struct { func (x *CSNianBuff) Reset() { *x = CSNianBuff{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_activity_nian_proto_msgTypes[2] + mi := &file_protocol_activity_nian_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -278,7 +442,7 @@ func (x *CSNianBuff) String() string { func (*CSNianBuff) ProtoMessage() {} func (x *CSNianBuff) ProtoReflect() protoreflect.Message { - mi := &file_protocol_activity_nian_proto_msgTypes[2] + mi := &file_protocol_activity_nian_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -291,7 +455,7 @@ func (x *CSNianBuff) ProtoReflect() protoreflect.Message { // Deprecated: Use CSNianBuff.ProtoReflect.Descriptor instead. func (*CSNianBuff) Descriptor() ([]byte, []int) { - return file_protocol_activity_nian_proto_rawDescGZIP(), []int{2} + return file_protocol_activity_nian_proto_rawDescGZIP(), []int{3} } //PACKET_SCNianBuff @@ -300,13 +464,14 @@ type SCNianBuff struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - BuffCount int64 `protobuf:"varint,1,opt,name=BuffCount,proto3" json:"BuffCount,omitempty"` //BUFF剩余次数 + BuffCount int64 `protobuf:"varint,1,opt,name=BuffCount,proto3" json:"BuffCount,omitempty"` //BUFF剩余次数 + OpRetCode OpResultCode_Nian `protobuf:"varint,2,opt,name=OpRetCode,proto3,enum=activity.OpResultCode_Nian" json:"OpRetCode,omitempty"` // 返回错误码 } func (x *SCNianBuff) Reset() { *x = SCNianBuff{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_activity_nian_proto_msgTypes[3] + mi := &file_protocol_activity_nian_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -319,7 +484,7 @@ func (x *SCNianBuff) String() string { func (*SCNianBuff) ProtoMessage() {} func (x *SCNianBuff) ProtoReflect() protoreflect.Message { - mi := &file_protocol_activity_nian_proto_msgTypes[3] + mi := &file_protocol_activity_nian_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -332,7 +497,7 @@ func (x *SCNianBuff) ProtoReflect() protoreflect.Message { // Deprecated: Use SCNianBuff.ProtoReflect.Descriptor instead. func (*SCNianBuff) Descriptor() ([]byte, []int) { - return file_protocol_activity_nian_proto_rawDescGZIP(), []int{3} + return file_protocol_activity_nian_proto_rawDescGZIP(), []int{4} } func (x *SCNianBuff) GetBuffCount() int64 { @@ -342,67 +507,24 @@ func (x *SCNianBuff) GetBuffCount() int64 { return 0 } -//排行榜数据 -//PACKET_CSNianRankData -type CSNianRankData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - TypeId int32 `protobuf:"varint,1,opt,name=TypeId,proto3" json:"TypeId,omitempty"` //1-幸运榜 2-总伤害榜 -} - -func (x *CSNianRankData) Reset() { - *x = CSNianRankData{} - if protoimpl.UnsafeEnabled { - mi := &file_protocol_activity_nian_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CSNianRankData) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CSNianRankData) ProtoMessage() {} - -func (x *CSNianRankData) ProtoReflect() protoreflect.Message { - mi := &file_protocol_activity_nian_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CSNianRankData.ProtoReflect.Descriptor instead. -func (*CSNianRankData) Descriptor() ([]byte, []int) { - return file_protocol_activity_nian_proto_rawDescGZIP(), []int{4} -} - -func (x *CSNianRankData) GetTypeId() int32 { +func (x *SCNianBuff) GetOpRetCode() OpResultCode_Nian { if x != nil { - return x.TypeId + return x.OpRetCode } - return 0 + return OpResultCode_Nian_OPRC_Sucess_Nian } -//PACKET_SCNianRankData -type SCNianRankData struct { +type NianRankData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - TypeId int32 `protobuf:"varint,1,opt,name=TypeId,proto3" json:"TypeId,omitempty"` - Data []*RankData `protobuf:"bytes,2,rep,name=Data,proto3" json:"Data,omitempty"` + TypeId int32 `protobuf:"varint,1,opt,name=TypeId,proto3" json:"TypeId,omitempty"` //1-幸运榜 2-总榜 + Data []*NianRankInfo `protobuf:"bytes,2,rep,name=Data,proto3" json:"Data,omitempty"` } -func (x *SCNianRankData) Reset() { - *x = SCNianRankData{} +func (x *NianRankData) Reset() { + *x = NianRankData{} if protoimpl.UnsafeEnabled { mi := &file_protocol_activity_nian_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -410,13 +532,13 @@ func (x *SCNianRankData) Reset() { } } -func (x *SCNianRankData) String() string { +func (x *NianRankData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SCNianRankData) ProtoMessage() {} +func (*NianRankData) ProtoMessage() {} -func (x *SCNianRankData) ProtoReflect() protoreflect.Message { +func (x *NianRankData) ProtoReflect() protoreflect.Message { mi := &file_protocol_activity_nian_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -428,39 +550,36 @@ func (x *SCNianRankData) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SCNianRankData.ProtoReflect.Descriptor instead. -func (*SCNianRankData) Descriptor() ([]byte, []int) { +// Deprecated: Use NianRankData.ProtoReflect.Descriptor instead. +func (*NianRankData) Descriptor() ([]byte, []int) { return file_protocol_activity_nian_proto_rawDescGZIP(), []int{5} } -func (x *SCNianRankData) GetTypeId() int32 { +func (x *NianRankData) GetTypeId() int32 { if x != nil { return x.TypeId } return 0 } -func (x *SCNianRankData) GetData() []*RankData { +func (x *NianRankData) GetData() []*NianRankInfo { if x != nil { return x.Data } return nil } -type RankData struct { +type NianRankInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RankId int32 `protobuf:"varint,1,opt,name=RankId,proto3" json:"RankId,omitempty"` - Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` - Icon int32 `protobuf:"varint,3,opt,name=Icon,proto3" json:"Icon,omitempty"` - Score int64 `protobuf:"varint,4,opt,name=Score,proto3" json:"Score,omitempty"` - Award []*RankAwardData `protobuf:"bytes,5,rep,name=Award,proto3" json:"Award,omitempty"` + Award []*RankAwardData `protobuf:"bytes,2,rep,name=Award,proto3" json:"Award,omitempty"` } -func (x *RankData) Reset() { - *x = RankData{} +func (x *NianRankInfo) Reset() { + *x = NianRankInfo{} if protoimpl.UnsafeEnabled { mi := &file_protocol_activity_nian_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -468,13 +587,13 @@ func (x *RankData) Reset() { } } -func (x *RankData) String() string { +func (x *NianRankInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RankData) ProtoMessage() {} +func (*NianRankInfo) ProtoMessage() {} -func (x *RankData) ProtoReflect() protoreflect.Message { +func (x *NianRankInfo) ProtoReflect() protoreflect.Message { mi := &file_protocol_activity_nian_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -486,40 +605,19 @@ func (x *RankData) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RankData.ProtoReflect.Descriptor instead. -func (*RankData) Descriptor() ([]byte, []int) { +// Deprecated: Use NianRankInfo.ProtoReflect.Descriptor instead. +func (*NianRankInfo) Descriptor() ([]byte, []int) { return file_protocol_activity_nian_proto_rawDescGZIP(), []int{6} } -func (x *RankData) GetRankId() int32 { +func (x *NianRankInfo) GetRankId() int32 { if x != nil { return x.RankId } return 0 } -func (x *RankData) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *RankData) GetIcon() int32 { - if x != nil { - return x.Icon - } - return 0 -} - -func (x *RankData) GetScore() int64 { - if x != nil { - return x.Score - } - return 0 -} - -func (x *RankData) GetAward() []*RankAwardData { +func (x *NianRankInfo) GetAward() []*RankAwardData { if x != nil { return x.Award } @@ -788,8 +886,9 @@ type SCNianSignAward struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SignAwardTime int64 `protobuf:"varint,1,opt,name=SignAwardTime,proto3" json:"SignAwardTime,omitempty"` - SignAward []*RankAwardData `protobuf:"bytes,2,rep,name=SignAward,proto3" json:"SignAward,omitempty"` //签到奖励 + SignAwardTime int64 `protobuf:"varint,1,opt,name=SignAwardTime,proto3" json:"SignAwardTime,omitempty"` + SignAward []*RankAwardData `protobuf:"bytes,2,rep,name=SignAward,proto3" json:"SignAward,omitempty"` //签到奖励 + OpRetCode OpResultCode_Nian `protobuf:"varint,3,opt,name=OpRetCode,proto3,enum=activity.OpResultCode_Nian" json:"OpRetCode,omitempty"` // 返回错误码 } func (x *SCNianSignAward) Reset() { @@ -838,13 +937,133 @@ func (x *SCNianSignAward) GetSignAward() []*RankAwardData { return nil } +func (x *SCNianSignAward) GetOpRetCode() OpResultCode_Nian { + if x != nil { + return x.OpRetCode + } + return OpResultCode_Nian_OPRC_Sucess_Nian +} + +//兑换 +//PACKET_CSNianChange +type CSNianChange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Num int32 `protobuf:"varint,1,opt,name=Num,proto3" json:"Num,omitempty"` +} + +func (x *CSNianChange) Reset() { + *x = CSNianChange{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_activity_nian_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSNianChange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSNianChange) ProtoMessage() {} + +func (x *CSNianChange) ProtoReflect() protoreflect.Message { + mi := &file_protocol_activity_nian_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSNianChange.ProtoReflect.Descriptor instead. +func (*CSNianChange) Descriptor() ([]byte, []int) { + return file_protocol_activity_nian_proto_rawDescGZIP(), []int{12} +} + +func (x *CSNianChange) GetNum() int32 { + if x != nil { + return x.Num + } + return 0 +} + +//PACKET_SCNianChange +type SCNianChange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Num int32 `protobuf:"varint,1,opt,name=Num,proto3" json:"Num,omitempty"` + Award []*RankAwardData `protobuf:"bytes,2,rep,name=Award,proto3" json:"Award,omitempty"` + OpRetCode OpResultCode_Nian `protobuf:"varint,3,opt,name=OpRetCode,proto3,enum=activity.OpResultCode_Nian" json:"OpRetCode,omitempty"` // 返回错误码 +} + +func (x *SCNianChange) Reset() { + *x = SCNianChange{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_activity_nian_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCNianChange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCNianChange) ProtoMessage() {} + +func (x *SCNianChange) ProtoReflect() protoreflect.Message { + mi := &file_protocol_activity_nian_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SCNianChange.ProtoReflect.Descriptor instead. +func (*SCNianChange) Descriptor() ([]byte, []int) { + return file_protocol_activity_nian_proto_rawDescGZIP(), []int{13} +} + +func (x *SCNianChange) GetNum() int32 { + if x != nil { + return x.Num + } + return 0 +} + +func (x *SCNianChange) GetAward() []*RankAwardData { + if x != nil { + return x.Award + } + return nil +} + +func (x *SCNianChange) GetOpRetCode() OpResultCode_Nian { + if x != nil { + return x.OpRetCode + } + return OpResultCode_Nian_OPRC_Sucess_Nian +} + var File_protocol_activity_nian_proto protoreflect.FileDescriptor var file_protocol_activity_nian_proto_rawDesc = []byte{ 0x0a, 0x1c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2f, 0x6e, 0x69, 0x61, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x22, 0x0c, 0x0a, 0x0a, 0x43, 0x53, 0x4e, 0x69, - 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x22, 0xdc, 0x02, 0x0a, 0x0a, 0x53, 0x43, 0x4e, 0x69, 0x61, + 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x22, 0xc2, 0x04, 0x0a, 0x0a, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x11, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, @@ -854,99 +1073,139 @@ var file_protocol_activity_nian_proto_rawDesc = []byte{ 0x09, 0x42, 0x6f, 0x73, 0x73, 0x4d, 0x61, 0x78, 0x48, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x42, 0x6f, 0x73, 0x73, 0x4d, 0x61, 0x78, 0x48, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x6f, 0x73, 0x73, 0x48, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x42, 0x6f, 0x73, - 0x73, 0x48, 0x70, 0x12, 0x2e, 0x0a, 0x08, 0x4c, 0x75, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, - 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x4c, 0x75, 0x63, 0x6b, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x1e, 0x0a, 0x0a, 0x42, 0x75, 0x66, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0a, 0x42, 0x75, 0x66, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x0e, 0x0a, 0x02, 0x4f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x4f, 0x6e, 0x12, - 0x24, 0x0a, 0x0d, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x0c, 0x0a, 0x0a, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x42, - 0x75, 0x66, 0x66, 0x22, 0x2a, 0x0a, 0x0a, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, - 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x28, 0x0a, 0x0e, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x22, 0x50, 0x0a, 0x0e, 0x53, 0x43, 0x4e, - 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, - 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, - 0x65, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, - 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x8f, 0x01, 0x0a, 0x08, - 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x61, 0x6e, 0x6b, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x04, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x2d, - 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, - 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, 0x41, 0x0a, - 0x0d, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, - 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, - 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, - 0x22, 0x26, 0x0a, 0x0c, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, - 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x22, 0xe8, 0x02, 0x0a, 0x10, 0x53, 0x43, 0x4e, - 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, - 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, - 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x6f, 0x73, 0x73, 0x48, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x42, 0x6f, 0x73, 0x73, 0x48, 0x70, 0x12, 0x2d, 0x0a, - 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, + 0x73, 0x48, 0x70, 0x12, 0x32, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x2e, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x52, + 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x42, 0x75, 0x66, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x42, 0x75, 0x66, 0x66, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x53, 0x69, 0x67, 0x6e, + 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x75, 0x66, + 0x66, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0d, 0x42, 0x75, 0x66, 0x66, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x20, 0x0a, 0x0b, 0x42, 0x75, 0x66, 0x66, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x75, 0x66, 0x66, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x2e, 0x0a, 0x08, 0x73, 0x68, 0x6f, 0x70, 0x44, 0x61, 0x74, 0x61, 0x18, 0x0c, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x53, + 0x68, 0x6f, 0x70, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x70, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x24, 0x0a, 0x0d, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x52, 0x61, 0x6e, 0x6b, 0x4e, 0x65, + 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x52, + 0x61, 0x6e, 0x6b, 0x4e, 0x65, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4e, + 0x65, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4e, + 0x65, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0x5c, 0x0a, 0x08, 0x53, + 0x68, 0x6f, 0x70, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x68, 0x6f, 0x70, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x12, + 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x78, + 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, + 0x61, 0x78, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x22, 0x0c, 0x0a, 0x0a, 0x43, 0x53, 0x4e, + 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x22, 0x65, 0x0a, 0x0a, 0x53, 0x43, 0x4e, 0x69, 0x61, + 0x6e, 0x42, 0x75, 0x66, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, + 0x79, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x4e, + 0x69, 0x61, 0x6e, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x52, + 0x0a, 0x0c, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, + 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, + 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x44, 0x61, + 0x74, 0x61, 0x22, 0x55, 0x0a, 0x0c, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x05, 0x41, 0x77, + 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, 0x41, 0x0a, 0x0d, 0x52, 0x61, 0x6e, + 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, + 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, + 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x22, 0x26, 0x0a, 0x0c, + 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, + 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, + 0x70, 0x65, 0x49, 0x64, 0x22, 0xe8, 0x02, 0x0a, 0x10, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x41, + 0x74, 0x74, 0x61, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, + 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, + 0x64, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x6f, 0x73, 0x73, 0x48, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x06, 0x42, 0x6f, 0x73, 0x73, 0x48, 0x70, 0x12, 0x2d, 0x0a, 0x05, 0x41, 0x77, 0x61, + 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x74, 0x74, 0x61, + 0x63, 0x6b, 0x48, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x41, 0x74, 0x74, 0x61, + 0x63, 0x6b, 0x48, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x44, 0x69, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x05, 0x49, 0x73, 0x44, 0x69, 0x65, 0x12, 0x33, 0x0a, 0x08, 0x44, 0x69, + 0x65, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, - 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, - 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x48, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, - 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x48, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x44, 0x69, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x49, 0x73, 0x44, 0x69, 0x65, 0x12, 0x33, - 0x0a, 0x08, 0x44, 0x69, 0x65, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x44, 0x69, 0x65, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, + 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x35, 0x0a, + 0x09, 0x45, 0x78, 0x74, 0x72, 0x61, 0x44, 0x72, 0x6f, 0x70, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, - 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x44, 0x69, 0x65, 0x41, 0x77, - 0x61, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x35, 0x0a, 0x09, 0x45, 0x78, 0x74, 0x72, 0x61, 0x44, 0x72, 0x6f, 0x70, 0x18, 0x08, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, - 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x45, - 0x78, 0x74, 0x72, 0x61, 0x44, 0x72, 0x6f, 0x70, 0x12, 0x39, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x6f, - 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, - 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, - 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, 0x6e, 0x0a, 0x0f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, - 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x69, 0x67, - 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0d, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x35, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, + 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x45, 0x78, 0x74, 0x72, 0x61, + 0x44, 0x72, 0x6f, 0x70, 0x12, 0x39, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x0b, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, + 0x11, 0x0a, 0x0f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, + 0x72, 0x64, 0x22, 0xa9, 0x01, 0x0a, 0x0f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, + 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, + 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x53, + 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x09, + 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, + 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, + 0x61, 0x72, 0x64, 0x12, 0x39, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, + 0x79, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x4e, + 0x69, 0x61, 0x6e, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x20, + 0x0a, 0x0c, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, + 0x22, 0x8a, 0x01, 0x0a, 0x0c, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x4e, 0x75, 0x6d, 0x12, 0x2d, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, - 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x53, 0x69, 0x67, - 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x2a, 0xae, 0x02, 0x0a, 0x0c, 0x4e, 0x69, 0x61, 0x6e, 0x50, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x16, 0x0a, - 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x10, 0xe4, 0x14, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe5, 0x14, 0x12, 0x16, 0x0a, - 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, - 0x66, 0x66, 0x10, 0xe6, 0x14, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x10, 0xe7, 0x14, 0x12, 0x1a, 0x0a, - 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, - 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe8, 0x14, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, - 0x74, 0x61, 0x10, 0xe9, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x10, 0xea, 0x14, 0x12, - 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, - 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xeb, 0x14, 0x12, 0x1b, 0x0a, - 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, - 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xec, 0x14, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, - 0x77, 0x61, 0x72, 0x64, 0x10, 0xed, 0x14, 0x42, 0x28, 0x5a, 0x26, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, - 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, - 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, + 0x72, 0x64, 0x12, 0x39, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x4e, 0x69, + 0x61, 0x6e, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x2a, 0xe2, 0x02, + 0x0a, 0x0c, 0x4e, 0x69, 0x61, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x14, + 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x5f, 0x5a, 0x45, + 0x52, 0x4f, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, + 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe4, 0x14, 0x12, 0x16, 0x0a, 0x11, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x44, 0x61, 0x74, + 0x61, 0x10, 0xe5, 0x14, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, + 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x10, 0xe6, 0x14, 0x12, 0x16, 0x0a, 0x11, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, + 0x66, 0x10, 0xe7, 0x14, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, + 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe8, 0x14, + 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, + 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe9, 0x14, 0x12, 0x18, 0x0a, 0x13, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, + 0x61, 0x63, 0x6b, 0x10, 0xea, 0x14, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x44, 0x61, 0x74, + 0x61, 0x10, 0xeb, 0x14, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, + 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xec, + 0x14, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, + 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xed, 0x14, 0x12, 0x18, + 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0xee, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, + 0xef, 0x14, 0x2a, 0x3e, 0x0a, 0x11, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, + 0x64, 0x65, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, + 0x53, 0x75, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x10, 0x00, 0x12, 0x13, 0x0a, + 0x0f, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x4e, 0x69, 0x61, 0x6e, + 0x10, 0x01, 0x42, 0x28, 0x5a, 0x26, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -961,37 +1220,45 @@ func file_protocol_activity_nian_proto_rawDescGZIP() []byte { return file_protocol_activity_nian_proto_rawDescData } -var file_protocol_activity_nian_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_protocol_activity_nian_proto_msgTypes = make([]protoimpl.MessageInfo, 12) +var file_protocol_activity_nian_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_protocol_activity_nian_proto_msgTypes = make([]protoimpl.MessageInfo, 14) var file_protocol_activity_nian_proto_goTypes = []interface{}{ (NianPacketID)(0), // 0: activity.NianPacketID - (*CSNianData)(nil), // 1: activity.CSNianData - (*SCNianData)(nil), // 2: activity.SCNianData - (*CSNianBuff)(nil), // 3: activity.CSNianBuff - (*SCNianBuff)(nil), // 4: activity.SCNianBuff - (*CSNianRankData)(nil), // 5: activity.CSNianRankData - (*SCNianRankData)(nil), // 6: activity.SCNianRankData - (*RankData)(nil), // 7: activity.RankData - (*RankAwardData)(nil), // 8: activity.RankAwardData - (*CSNianAttack)(nil), // 9: activity.CSNianAttack - (*SCNianAttackData)(nil), // 10: activity.SCNianAttackData - (*CSNianSignAward)(nil), // 11: activity.CSNianSignAward - (*SCNianSignAward)(nil), // 12: activity.SCNianSignAward + (OpResultCode_Nian)(0), // 1: activity.OpResultCode_Nian + (*CSNianData)(nil), // 2: activity.CSNianData + (*SCNianData)(nil), // 3: activity.SCNianData + (*ShopData)(nil), // 4: activity.ShopData + (*CSNianBuff)(nil), // 5: activity.CSNianBuff + (*SCNianBuff)(nil), // 6: activity.SCNianBuff + (*NianRankData)(nil), // 7: activity.NianRankData + (*NianRankInfo)(nil), // 8: activity.NianRankInfo + (*RankAwardData)(nil), // 9: activity.RankAwardData + (*CSNianAttack)(nil), // 10: activity.CSNianAttack + (*SCNianAttackData)(nil), // 11: activity.SCNianAttackData + (*CSNianSignAward)(nil), // 12: activity.CSNianSignAward + (*SCNianSignAward)(nil), // 13: activity.SCNianSignAward + (*CSNianChange)(nil), // 14: activity.CSNianChange + (*SCNianChange)(nil), // 15: activity.SCNianChange } var file_protocol_activity_nian_proto_depIdxs = []int32{ - 7, // 0: activity.SCNianData.LuckData:type_name -> activity.RankData - 7, // 1: activity.SCNianRankData.Data:type_name -> activity.RankData - 8, // 2: activity.RankData.Award:type_name -> activity.RankAwardData - 8, // 3: activity.SCNianAttackData.Award:type_name -> activity.RankAwardData - 8, // 4: activity.SCNianAttackData.DieAward:type_name -> activity.RankAwardData - 8, // 5: activity.SCNianAttackData.ExtraDrop:type_name -> activity.RankAwardData - 8, // 6: activity.SCNianAttackData.FloorReward:type_name -> activity.RankAwardData - 8, // 7: activity.SCNianSignAward.SignAward:type_name -> activity.RankAwardData - 8, // [8:8] is the sub-list for method output_type - 8, // [8:8] is the sub-list for method input_type - 8, // [8:8] is the sub-list for extension type_name - 8, // [8:8] is the sub-list for extension extendee - 0, // [0:8] is the sub-list for field type_name + 7, // 0: activity.SCNianData.RankData:type_name -> activity.NianRankData + 4, // 1: activity.SCNianData.shopData:type_name -> activity.ShopData + 1, // 2: activity.SCNianBuff.OpRetCode:type_name -> activity.OpResultCode_Nian + 8, // 3: activity.NianRankData.Data:type_name -> activity.NianRankInfo + 9, // 4: activity.NianRankInfo.Award:type_name -> activity.RankAwardData + 9, // 5: activity.SCNianAttackData.Award:type_name -> activity.RankAwardData + 9, // 6: activity.SCNianAttackData.DieAward:type_name -> activity.RankAwardData + 9, // 7: activity.SCNianAttackData.ExtraDrop:type_name -> activity.RankAwardData + 9, // 8: activity.SCNianAttackData.FloorReward:type_name -> activity.RankAwardData + 9, // 9: activity.SCNianSignAward.SignAward:type_name -> activity.RankAwardData + 1, // 10: activity.SCNianSignAward.OpRetCode:type_name -> activity.OpResultCode_Nian + 9, // 11: activity.SCNianChange.Award:type_name -> activity.RankAwardData + 1, // 12: activity.SCNianChange.OpRetCode:type_name -> activity.OpResultCode_Nian + 13, // [13:13] is the sub-list for method output_type + 13, // [13:13] is the sub-list for method input_type + 13, // [13:13] is the sub-list for extension type_name + 13, // [13:13] is the sub-list for extension extendee + 0, // [0:13] is the sub-list for field type_name } func init() { file_protocol_activity_nian_proto_init() } @@ -1025,7 +1292,7 @@ func file_protocol_activity_nian_proto_init() { } } file_protocol_activity_nian_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSNianBuff); i { + switch v := v.(*ShopData); i { case 0: return &v.state case 1: @@ -1037,7 +1304,7 @@ func file_protocol_activity_nian_proto_init() { } } file_protocol_activity_nian_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCNianBuff); i { + switch v := v.(*CSNianBuff); i { case 0: return &v.state case 1: @@ -1049,7 +1316,7 @@ func file_protocol_activity_nian_proto_init() { } } file_protocol_activity_nian_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSNianRankData); i { + switch v := v.(*SCNianBuff); i { case 0: return &v.state case 1: @@ -1061,7 +1328,7 @@ func file_protocol_activity_nian_proto_init() { } } file_protocol_activity_nian_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCNianRankData); i { + switch v := v.(*NianRankData); i { case 0: return &v.state case 1: @@ -1073,7 +1340,7 @@ func file_protocol_activity_nian_proto_init() { } } file_protocol_activity_nian_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RankData); i { + switch v := v.(*NianRankInfo); i { case 0: return &v.state case 1: @@ -1144,14 +1411,38 @@ func file_protocol_activity_nian_proto_init() { return nil } } + file_protocol_activity_nian_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSNianChange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protocol_activity_nian_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCNianChange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_protocol_activity_nian_proto_rawDesc, - NumEnums: 1, - NumMessages: 12, + NumEnums: 2, + NumMessages: 14, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/activity/nian.proto b/protocol/activity/nian.proto index 12f2b76..d819df8 100644 --- a/protocol/activity/nian.proto +++ b/protocol/activity/nian.proto @@ -14,6 +14,13 @@ enum NianPacketID { PACKET_SCNianAttackData = 2667; //返回攻击年兽信息 PACKET_CSNianSignAward = 2668; //请求签到 PACKET_SCNianSignAward = 2669; //签到返回 + PACKET_CSNianChange = 2670;//请求兑换小爆竹 + PACKET_SCNianChange = 2671;//返回兑换道具 +} +//操作结果 +enum OpResultCode_Nian { + OPRC_Sucess_Nian = 0; //成功 + OPRC_Error_Nian = 1; //失败 } //获取年兽活动信息 @@ -26,12 +33,24 @@ message SCNianData{ int64 ActivityEndTime = 2; //活动结束时间 int64 BossMaxHp = 3; //Boss最大血量 int64 BossHp = 4; //Boss当前血量 - repeated RankData LuckData = 5;//幸运榜 + repeated NianRankData RankData = 5;//排行榜奖励配置 int64 AwardTime = 6;//每日签到领取时间 int64 BuffCount = 7;//Buff剩余次数 bool BuffStatus = 8;//Buff领取状态 - int32 On = 9;//活动开关 1开启 2关闭 - int64 SignAwardTime = 10;//签到领取时间 0-未领取 + int64 SignAwardTime = 9;//签到领取时间 0-未领取 + int64 BuffStartTime = 10; //Buff开始领取时间 + int64 BuffEndTime = 11; //Buff结束领取时间 + repeated ShopData shopData = 12;//购买礼包数量 + string ChangeData = 13; //兑换数据 + string LuckyRankNeed = 14; //幸运榜上榜条件 + string RankNeed = 15; //总伤害榜上榜条件 + int32 Switch = 16; //活动开关 1.开启 2.关闭 +} + +message ShopData{ + int32 ShopId =1; //shopId + int32 ShopNum = 2; //已购买次数 + int32 MaxShopNum = 3; //最大购买次数 } //贺春 @@ -42,23 +61,16 @@ message CSNianBuff{ //PACKET_SCNianBuff message SCNianBuff{ int64 BuffCount = 1; //BUFF剩余次数 + OpResultCode_Nian OpRetCode = 2; // 返回错误码 } -//排行榜数据 -//PACKET_CSNianRankData -message CSNianRankData{ - int32 TypeId = 1;//1-幸运榜 2-总伤害榜 + +message NianRankData{ + int32 TypeId = 1; //1-幸运榜 2-总榜 + repeated NianRankInfo Data = 2; } -//PACKET_SCNianRankData -message SCNianRankData{ - int32 TypeId = 1; - repeated RankData Data = 2; -} -message RankData{ +message NianRankInfo{ int32 RankId =1; - string Name = 2; - int32 Icon = 3; - int64 Score = 4; - repeated RankAwardData Award = 5; + repeated RankAwardData Award = 2; } message RankAwardData{ @@ -90,4 +102,16 @@ message CSNianSignAward{ message SCNianSignAward{ int64 SignAwardTime = 1; repeated RankAwardData SignAward = 2;//签到奖励 + OpResultCode_Nian OpRetCode = 3; // 返回错误码 +} +//兑换 +//PACKET_CSNianChange +message CSNianChange{ + int32 Num = 1; +} +//PACKET_SCNianChange +message SCNianChange{ + int32 Num = 1; + repeated RankAwardData Award =2; + OpResultCode_Nian OpRetCode = 3; // 返回错误码 } \ No newline at end of file diff --git a/protocol/player/player.pb.go b/protocol/player/player.pb.go index b00a216..9060b75 100644 --- a/protocol/player/player.pb.go +++ b/protocol/player/player.pb.go @@ -7986,7 +7986,7 @@ type SCEasyWelfaredInfo struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - WelfareSwitch []int32 `protobuf:"varint,1,rep,packed,name=WelfareSwitch,proto3" json:"WelfareSwitch,omitempty"` // 下标 0转盘1盲盒2首冲3连续充值4抽手机活动5集卡活动 1显示 2不显示 + WelfareSwitch []int32 `protobuf:"varint,1,rep,packed,name=WelfareSwitch,proto3" json:"WelfareSwitch,omitempty"` // 下标 0转盘1盲盒2首冲3连续充值4抽手机活动5集卡活动6年兽活动 1显示 2不显示 } func (x *SCEasyWelfaredInfo) Reset() { diff --git a/protocol/player/player.proto b/protocol/player/player.proto index 1501d66..4f429ea 100644 --- a/protocol/player/player.proto +++ b/protocol/player/player.proto @@ -1057,7 +1057,7 @@ message SCVIPInfo { // //PACKET_SC_SWELFAREINFO message SCEasyWelfaredInfo{ - repeated int32 WelfareSwitch = 1; // 下标 0转盘1盲盒2首冲3连续充值4抽手机活动5集卡活动 1显示 2不显示 + repeated int32 WelfareSwitch = 1; // 下标 0转盘1盲盒2首冲3连续充值4抽手机活动5集卡活动6年兽活动 1显示 2不显示 } message CSVIPPrivilegeInfo { diff --git a/protocol/rank/rank.pb.go b/protocol/rank/rank.pb.go index 36a52c6..2bc12a4 100644 --- a/protocol/rank/rank.pb.go +++ b/protocol/rank/rank.pb.go @@ -52,6 +52,9 @@ const ( // 竞技馆抽奖历史 Rank_PACKET_CSLotteryHistory Rank = 10017 Rank_PACKET_SCLotteryHistory Rank = 10018 + //年兽排行榜 + Rank_PACKET_RANK_CSNian Rank = 10019 + Rank_PACKET_RANK_SCNian Rank = 10020 ) // Enum value maps for Rank. @@ -77,6 +80,8 @@ var ( 10016: "PACKET_SCRoomAwardOne", 10017: "PACKET_CSLotteryHistory", 10018: "PACKET_SCLotteryHistory", + 10019: "PACKET_RANK_CSNian", + 10020: "PACKET_RANK_SCNian", } Rank_value = map[string]int32{ "PACKET_RANK_ZERO": 0, @@ -99,6 +104,8 @@ var ( "PACKET_SCRoomAwardOne": 10016, "PACKET_CSLotteryHistory": 10017, "PACKET_SCLotteryHistory": 10018, + "PACKET_RANK_CSNian": 10019, + "PACKET_RANK_SCNian": 10020, } ) @@ -2331,6 +2338,237 @@ func (x *SCLotteryHistory) GetList() []*LotteryHistory { return nil } +// PACKET_RANK_CSNian +type CSNian struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Page int32 `protobuf:"varint,1,opt,name=Page,proto3" json:"Page,omitempty"` // 页数 + PageSize int32 `protobuf:"varint,2,opt,name=PageSize,proto3" json:"PageSize,omitempty"` // 每页数量 + TypeId int32 `protobuf:"varint,3,opt,name=TypeId,proto3" json:"TypeId,omitempty"` //1-幸运榜 2-伤害榜 +} + +func (x *CSNian) Reset() { + *x = CSNian{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_rank_rank_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSNian) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSNian) ProtoMessage() {} + +func (x *CSNian) ProtoReflect() protoreflect.Message { + mi := &file_protocol_rank_rank_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSNian.ProtoReflect.Descriptor instead. +func (*CSNian) Descriptor() ([]byte, []int) { + return file_protocol_rank_rank_proto_rawDescGZIP(), []int{30} +} + +func (x *CSNian) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *CSNian) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *CSNian) GetTypeId() int32 { + if x != nil { + return x.TypeId + } + return 0 +} + +type NianRankData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Snid int32 `protobuf:"varint,1,opt,name=Snid,proto3" json:"Snid,omitempty"` // 玩家id + Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` // 昵称 + Score int64 `protobuf:"varint,3,opt,name=Score,proto3" json:"Score,omitempty"` + Rank int32 `protobuf:"varint,4,opt,name=Rank,proto3" json:"Rank,omitempty"` // 排名 + ModId int32 `protobuf:"varint,5,opt,name=ModId,proto3" json:"ModId,omitempty"` // 角色id +} + +func (x *NianRankData) Reset() { + *x = NianRankData{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_rank_rank_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NianRankData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NianRankData) ProtoMessage() {} + +func (x *NianRankData) ProtoReflect() protoreflect.Message { + mi := &file_protocol_rank_rank_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NianRankData.ProtoReflect.Descriptor instead. +func (*NianRankData) Descriptor() ([]byte, []int) { + return file_protocol_rank_rank_proto_rawDescGZIP(), []int{31} +} + +func (x *NianRankData) GetSnid() int32 { + if x != nil { + return x.Snid + } + return 0 +} + +func (x *NianRankData) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *NianRankData) GetScore() int64 { + if x != nil { + return x.Score + } + return 0 +} + +func (x *NianRankData) GetRank() int32 { + if x != nil { + return x.Rank + } + return 0 +} + +func (x *NianRankData) GetModId() int32 { + if x != nil { + return x.ModId + } + return 0 +} + +// PACKET_RANK_SCCoin +type SCNian struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ranks []*NianRankData `protobuf:"bytes,1,rep,name=Ranks,proto3" json:"Ranks,omitempty"` // 排行榜 + Me *NianRankData `protobuf:"bytes,2,opt,name=Me,proto3" json:"Me,omitempty"` // 玩家自己的排行信息 + Page int32 `protobuf:"varint,3,opt,name=Page,proto3" json:"Page,omitempty"` // 页数 + PageSize int32 `protobuf:"varint,4,opt,name=PageSize,proto3" json:"PageSize,omitempty"` // 每页数量 + Total int32 `protobuf:"varint,5,opt,name=Total,proto3" json:"Total,omitempty"` // 总数量 + TypeId int32 `protobuf:"varint,6,opt,name=TypeId,proto3" json:"TypeId,omitempty"` +} + +func (x *SCNian) Reset() { + *x = SCNian{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_rank_rank_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCNian) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCNian) ProtoMessage() {} + +func (x *SCNian) ProtoReflect() protoreflect.Message { + mi := &file_protocol_rank_rank_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SCNian.ProtoReflect.Descriptor instead. +func (*SCNian) Descriptor() ([]byte, []int) { + return file_protocol_rank_rank_proto_rawDescGZIP(), []int{32} +} + +func (x *SCNian) GetRanks() []*NianRankData { + if x != nil { + return x.Ranks + } + return nil +} + +func (x *SCNian) GetMe() *NianRankData { + if x != nil { + return x.Me + } + return nil +} + +func (x *SCNian) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *SCNian) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *SCNian) GetTotal() int32 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *SCNian) GetTypeId() int32 { + if x != nil { + return x.TypeId + } + return 0 +} + var File_protocol_rank_rank_proto protoreflect.FileDescriptor var file_protocol_rank_rank_proto_rawDesc = []byte{ @@ -2543,53 +2781,80 @@ var file_protocol_rank_rank_proto_rawDesc = []byte{ 0x43, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x28, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x72, 0x61, 0x6e, 0x6b, 0x2e, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x2a, 0x9e, 0x04, 0x0a, 0x04, 0x52, 0x61, - 0x6e, 0x6b, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, - 0x4b, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x52, 0x61, 0x6e, 0x6b, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x10, 0x90, 0x4e, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x52, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x10, 0x91, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, - 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x92, 0x4e, 0x12, 0x17, 0x0a, - 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x43, - 0x6f, 0x69, 0x6e, 0x10, 0x93, 0x4e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, 0x94, - 0x4e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, - 0x5f, 0x53, 0x43, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, 0x95, 0x4e, 0x12, 0x17, 0x0a, 0x12, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4c, - 0x6f, 0x67, 0x10, 0x96, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x53, 0x43, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x10, 0x97, 0x4e, 0x12, 0x1a, - 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, - 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x98, 0x4e, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x57, 0x69, 0x6e, 0x43, - 0x6f, 0x69, 0x6e, 0x10, 0x99, 0x4e, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x10, 0x9a, 0x4e, - 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, - 0x53, 0x43, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x10, 0x9b, 0x4e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x50, 0x65, 0x72, 0x6d, - 0x69, 0x74, 0x10, 0x9c, 0x4e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x10, 0x9d, 0x4e, - 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x52, 0x6f, 0x6f, - 0x6d, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0x9e, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x52, 0x6f, 0x6f, 0x6d, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, - 0x9f, 0x4e, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x52, - 0x6f, 0x6f, 0x6d, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x6e, 0x65, 0x10, 0xa0, 0x4e, 0x12, 0x1c, - 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4c, 0x6f, 0x74, 0x74, 0x65, - 0x72, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x10, 0xa1, 0x4e, 0x12, 0x1c, 0x0a, 0x17, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x10, 0xa2, 0x4e, 0x2a, 0x8d, 0x01, 0x0a, 0x0a, 0x52, - 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x14, - 0x0a, 0x10, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x5f, 0x57, 0x65, 0x65, 0x6b, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x10, 0x03, 0x12, - 0x15, 0x0a, 0x11, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x55, 0x70, - 0x57, 0x65, 0x65, 0x6b, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4d, 0x61, 0x78, 0x10, 0x05, 0x42, 0x24, 0x5a, 0x22, 0x6d, 0x6f, - 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, - 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x72, 0x61, 0x6e, 0x6b, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x72, 0x79, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x50, 0x0a, 0x06, 0x43, 0x53, 0x4e, + 0x69, 0x61, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x50, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x22, 0x76, 0x0a, 0x0c, 0x4e, + 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x53, + 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x52, 0x61, 0x6e, + 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x14, 0x0a, + 0x05, 0x4d, 0x6f, 0x64, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4d, 0x6f, + 0x64, 0x49, 0x64, 0x22, 0xb4, 0x01, 0x0a, 0x06, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x12, 0x28, + 0x0a, 0x05, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x72, 0x61, 0x6e, 0x6b, 0x2e, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x05, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x22, 0x0a, 0x02, 0x4d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x72, 0x61, 0x6e, 0x6b, 0x2e, 0x4e, 0x69, 0x61, 0x6e, + 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x02, 0x4d, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x50, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x50, 0x61, 0x67, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x2a, 0xd0, 0x04, 0x0a, 0x04, 0x52, + 0x61, 0x6e, 0x6b, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, + 0x4e, 0x4b, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x52, 0x61, 0x6e, 0x6b, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x10, 0x90, 0x4e, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x52, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x10, 0x91, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x92, 0x4e, 0x12, 0x17, + 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, + 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x93, 0x4e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, + 0x94, 0x4e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, + 0x4b, 0x5f, 0x53, 0x43, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, 0x95, 0x4e, 0x12, 0x17, 0x0a, + 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x4c, 0x6f, 0x67, 0x10, 0x96, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x53, 0x43, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x10, 0x97, 0x4e, 0x12, + 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, + 0x53, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x98, 0x4e, 0x12, 0x1a, 0x0a, 0x15, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x57, 0x69, 0x6e, + 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x99, 0x4e, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x10, 0x9a, + 0x4e, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, + 0x5f, 0x53, 0x43, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x10, 0x9b, 0x4e, 0x12, 0x19, 0x0a, 0x14, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x50, 0x65, 0x72, + 0x6d, 0x69, 0x74, 0x10, 0x9c, 0x4e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x10, 0x9d, + 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x52, 0x6f, + 0x6f, 0x6d, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0x9e, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x52, 0x6f, 0x6f, 0x6d, 0x41, 0x77, 0x61, 0x72, 0x64, + 0x10, 0x9f, 0x4e, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x52, 0x6f, 0x6f, 0x6d, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x6e, 0x65, 0x10, 0xa0, 0x4e, 0x12, + 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4c, 0x6f, 0x74, 0x74, + 0x65, 0x72, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x10, 0xa1, 0x4e, 0x12, 0x1c, 0x0a, + 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, + 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x10, 0xa2, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, + 0x6e, 0x10, 0xa3, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, + 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x10, 0xa4, 0x4e, 0x2a, 0x8d, 0x01, + 0x0a, 0x0a, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x13, 0x0a, 0x0f, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4e, 0x6f, 0x6e, 0x65, 0x10, + 0x00, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, + 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x57, 0x65, 0x65, 0x6b, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4d, 0x6f, 0x6e, 0x74, 0x68, + 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x5f, 0x55, 0x70, 0x57, 0x65, 0x65, 0x6b, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4d, 0x61, 0x78, 0x10, 0x05, 0x42, 0x24, 0x5a, + 0x22, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x72, + 0x61, 0x6e, 0x6b, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2605,7 +2870,7 @@ func file_protocol_rank_rank_proto_rawDescGZIP() []byte { } var file_protocol_rank_rank_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_protocol_rank_rank_proto_msgTypes = make([]protoimpl.MessageInfo, 30) +var file_protocol_rank_rank_proto_msgTypes = make([]protoimpl.MessageInfo, 33) var file_protocol_rank_rank_proto_goTypes = []interface{}{ (Rank)(0), // 0: rank.Rank (RankInvite)(0), // 1: rank.RankInvite @@ -2639,6 +2904,9 @@ var file_protocol_rank_rank_proto_goTypes = []interface{}{ (*LotteryShow)(nil), // 29: rank.LotteryShow (*LotteryHistory)(nil), // 30: rank.LotteryHistory (*SCLotteryHistory)(nil), // 31: rank.SCLotteryHistory + (*CSNian)(nil), // 32: rank.CSNian + (*NianRankData)(nil), // 33: rank.NianRankData + (*SCNian)(nil), // 34: rank.SCNian } var file_protocol_rank_rank_proto_depIdxs = []int32{ 3, // 0: rank.SCRankMatch.Ranks:type_name -> rank.SeasonRank @@ -2659,11 +2927,13 @@ var file_protocol_rank_rank_proto_depIdxs = []int32{ 25, // 15: rank.LotteryHistory.Award:type_name -> rank.Item 29, // 16: rank.LotteryHistory.Show:type_name -> rank.LotteryShow 30, // 17: rank.SCLotteryHistory.List:type_name -> rank.LotteryHistory - 18, // [18:18] is the sub-list for method output_type - 18, // [18:18] is the sub-list for method input_type - 18, // [18:18] is the sub-list for extension type_name - 18, // [18:18] is the sub-list for extension extendee - 0, // [0:18] is the sub-list for field type_name + 33, // 18: rank.SCNian.Ranks:type_name -> rank.NianRankData + 33, // 19: rank.SCNian.Me:type_name -> rank.NianRankData + 20, // [20:20] is the sub-list for method output_type + 20, // [20:20] is the sub-list for method input_type + 20, // [20:20] is the sub-list for extension type_name + 20, // [20:20] is the sub-list for extension extendee + 0, // [0:20] is the sub-list for field type_name } func init() { file_protocol_rank_rank_proto_init() } @@ -3032,6 +3302,42 @@ func file_protocol_rank_rank_proto_init() { return nil } } + file_protocol_rank_rank_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSNian); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protocol_rank_rank_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NianRankData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protocol_rank_rank_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCNian); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -3039,7 +3345,7 @@ func file_protocol_rank_rank_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_protocol_rank_rank_proto_rawDesc, NumEnums: 2, - NumMessages: 30, + NumMessages: 33, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/rank/rank.proto b/protocol/rank/rank.proto index 5884297..2bd7790 100644 --- a/protocol/rank/rank.proto +++ b/protocol/rank/rank.proto @@ -33,6 +33,9 @@ enum Rank{ // 竞技馆抽奖历史 PACKET_CSLotteryHistory = 10017; PACKET_SCLotteryHistory = 10018; + //年兽排行榜 + PACKET_RANK_CSNian = 10019; + PACKET_RANK_SCNian = 10020; } // 排位榜 @@ -270,4 +273,29 @@ message LotteryHistory{ // PACKET_SCLotteryHistory message SCLotteryHistory{ repeated LotteryHistory List = 1; -} \ No newline at end of file +} + +// PACKET_RANK_CSNian +message CSNian{ + int32 Page = 1; // 页数 + int32 PageSize = 2; // 每页数量 + int32 TypeId = 3; //1-幸运榜 2-伤害榜 +} + +message NianRankData { + int32 Snid = 1; // 玩家id + string Name = 2; // 昵称 + int64 Score = 3; + int32 Rank = 4; // 排名 + int32 ModId = 5; // 角色id +} + +// PACKET_RANK_SCCoin +message SCNian{ + repeated NianRankData Ranks = 1; // 排行榜 + NianRankData Me = 2; // 玩家自己的排行信息 + int32 Page = 3; // 页数 + int32 PageSize = 4; // 每页数量 + int32 Total = 5; // 总数量 + int32 TypeId = 6; +} diff --git a/protocol/server/pbdata.pb.go b/protocol/server/pbdata.pb.go index c52cdbb..f84d412 100644 --- a/protocol/server/pbdata.pb.go +++ b/protocol/server/pbdata.pb.go @@ -7819,124 +7819,6 @@ func (x *DB_NewYearActivityArray) GetArr() []*DB_NewYearActivity { return nil } -type DB_NewYearRankReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - RankType int32 `protobuf:"varint,2,opt,name=RankType,proto3" json:"RankType,omitempty"` - RankLevelId int32 `protobuf:"varint,3,opt,name=RankLevelId,proto3" json:"RankLevelId,omitempty"` - AwardMap map[int64]int64 `protobuf:"bytes,4,rep,name=AwardMap,proto3" json:"AwardMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` -} - -func (x *DB_NewYearRankReward) Reset() { - *x = DB_NewYearRankReward{} - if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[100] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DB_NewYearRankReward) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DB_NewYearRankReward) ProtoMessage() {} - -func (x *DB_NewYearRankReward) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[100] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DB_NewYearRankReward.ProtoReflect.Descriptor instead. -func (*DB_NewYearRankReward) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{100} -} - -func (x *DB_NewYearRankReward) GetId() int32 { - if x != nil { - return x.Id - } - return 0 -} - -func (x *DB_NewYearRankReward) GetRankType() int32 { - if x != nil { - return x.RankType - } - return 0 -} - -func (x *DB_NewYearRankReward) GetRankLevelId() int32 { - if x != nil { - return x.RankLevelId - } - return 0 -} - -func (x *DB_NewYearRankReward) GetAwardMap() map[int64]int64 { - if x != nil { - return x.AwardMap - } - return nil -} - -type DB_NewYearRankRewardArray struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Arr []*DB_NewYearRankReward `protobuf:"bytes,1,rep,name=Arr,proto3" json:"Arr,omitempty"` -} - -func (x *DB_NewYearRankRewardArray) Reset() { - *x = DB_NewYearRankRewardArray{} - if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[101] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DB_NewYearRankRewardArray) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DB_NewYearRankRewardArray) ProtoMessage() {} - -func (x *DB_NewYearRankRewardArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[101] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DB_NewYearRankRewardArray.ProtoReflect.Descriptor instead. -func (*DB_NewYearRankRewardArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{101} -} - -func (x *DB_NewYearRankRewardArray) GetArr() []*DB_NewYearRankReward { - if x != nil { - return x.Arr - } - return nil -} - type DB_PassShow struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -7951,7 +7833,7 @@ type DB_PassShow struct { func (x *DB_PassShow) Reset() { *x = DB_PassShow{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[102] + mi := &file_protocol_server_pbdata_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7964,7 +7846,7 @@ func (x *DB_PassShow) String() string { func (*DB_PassShow) ProtoMessage() {} func (x *DB_PassShow) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[102] + mi := &file_protocol_server_pbdata_proto_msgTypes[100] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7977,7 +7859,7 @@ func (x *DB_PassShow) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PassShow.ProtoReflect.Descriptor instead. func (*DB_PassShow) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{102} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{100} } func (x *DB_PassShow) GetId() int32 { @@ -8019,7 +7901,7 @@ type DB_PassShowArray struct { func (x *DB_PassShowArray) Reset() { *x = DB_PassShowArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[103] + mi := &file_protocol_server_pbdata_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8032,7 +7914,7 @@ func (x *DB_PassShowArray) String() string { func (*DB_PassShowArray) ProtoMessage() {} func (x *DB_PassShowArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[103] + mi := &file_protocol_server_pbdata_proto_msgTypes[101] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8045,7 +7927,7 @@ func (x *DB_PassShowArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PassShowArray.ProtoReflect.Descriptor instead. func (*DB_PassShowArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{103} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{101} } func (x *DB_PassShowArray) GetArr() []*DB_PassShow { @@ -8074,7 +7956,7 @@ type DB_PetSkill struct { func (x *DB_PetSkill) Reset() { *x = DB_PetSkill{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[104] + mi := &file_protocol_server_pbdata_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8087,7 +7969,7 @@ func (x *DB_PetSkill) String() string { func (*DB_PetSkill) ProtoMessage() {} func (x *DB_PetSkill) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[104] + mi := &file_protocol_server_pbdata_proto_msgTypes[102] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8100,7 +7982,7 @@ func (x *DB_PetSkill) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PetSkill.ProtoReflect.Descriptor instead. func (*DB_PetSkill) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{104} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{102} } func (x *DB_PetSkill) GetId() int32 { @@ -8177,7 +8059,7 @@ type DB_PetSkillArray struct { func (x *DB_PetSkillArray) Reset() { *x = DB_PetSkillArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[105] + mi := &file_protocol_server_pbdata_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8190,7 +8072,7 @@ func (x *DB_PetSkillArray) String() string { func (*DB_PetSkillArray) ProtoMessage() {} func (x *DB_PetSkillArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[105] + mi := &file_protocol_server_pbdata_proto_msgTypes[103] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8203,7 +8085,7 @@ func (x *DB_PetSkillArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PetSkillArray.ProtoReflect.Descriptor instead. func (*DB_PetSkillArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{105} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{103} } func (x *DB_PetSkillArray) GetArr() []*DB_PetSkill { @@ -8235,7 +8117,7 @@ type DB_PhoneLottery struct { func (x *DB_PhoneLottery) Reset() { *x = DB_PhoneLottery{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[106] + mi := &file_protocol_server_pbdata_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8248,7 +8130,7 @@ func (x *DB_PhoneLottery) String() string { func (*DB_PhoneLottery) ProtoMessage() {} func (x *DB_PhoneLottery) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[106] + mi := &file_protocol_server_pbdata_proto_msgTypes[104] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8261,7 +8143,7 @@ func (x *DB_PhoneLottery) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PhoneLottery.ProtoReflect.Descriptor instead. func (*DB_PhoneLottery) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{106} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{104} } func (x *DB_PhoneLottery) GetId() int32 { @@ -8359,7 +8241,7 @@ type DB_PhoneLotteryArray struct { func (x *DB_PhoneLotteryArray) Reset() { *x = DB_PhoneLotteryArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[107] + mi := &file_protocol_server_pbdata_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8372,7 +8254,7 @@ func (x *DB_PhoneLotteryArray) String() string { func (*DB_PhoneLotteryArray) ProtoMessage() {} func (x *DB_PhoneLotteryArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[107] + mi := &file_protocol_server_pbdata_proto_msgTypes[105] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8385,7 +8267,7 @@ func (x *DB_PhoneLotteryArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PhoneLotteryArray.ProtoReflect.Descriptor instead. func (*DB_PhoneLotteryArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{107} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{105} } func (x *DB_PhoneLotteryArray) GetArr() []*DB_PhoneLottery { @@ -8417,7 +8299,7 @@ type DB_PigBank_Diamond struct { func (x *DB_PigBank_Diamond) Reset() { *x = DB_PigBank_Diamond{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[108] + mi := &file_protocol_server_pbdata_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8430,7 +8312,7 @@ func (x *DB_PigBank_Diamond) String() string { func (*DB_PigBank_Diamond) ProtoMessage() {} func (x *DB_PigBank_Diamond) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[108] + mi := &file_protocol_server_pbdata_proto_msgTypes[106] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8443,7 +8325,7 @@ func (x *DB_PigBank_Diamond) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PigBank_Diamond.ProtoReflect.Descriptor instead. func (*DB_PigBank_Diamond) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{108} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{106} } func (x *DB_PigBank_Diamond) GetId() int32 { @@ -8541,7 +8423,7 @@ type DB_PigBank_DiamondArray struct { func (x *DB_PigBank_DiamondArray) Reset() { *x = DB_PigBank_DiamondArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[109] + mi := &file_protocol_server_pbdata_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8554,7 +8436,7 @@ func (x *DB_PigBank_DiamondArray) String() string { func (*DB_PigBank_DiamondArray) ProtoMessage() {} func (x *DB_PigBank_DiamondArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[109] + mi := &file_protocol_server_pbdata_proto_msgTypes[107] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8567,7 +8449,7 @@ func (x *DB_PigBank_DiamondArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PigBank_DiamondArray.ProtoReflect.Descriptor instead. func (*DB_PigBank_DiamondArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{109} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{107} } func (x *DB_PigBank_DiamondArray) GetArr() []*DB_PigBank_Diamond { @@ -8590,7 +8472,7 @@ type DB_Pigbank_Prop struct { func (x *DB_Pigbank_Prop) Reset() { *x = DB_Pigbank_Prop{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[110] + mi := &file_protocol_server_pbdata_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8603,7 +8485,7 @@ func (x *DB_Pigbank_Prop) String() string { func (*DB_Pigbank_Prop) ProtoMessage() {} func (x *DB_Pigbank_Prop) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[110] + mi := &file_protocol_server_pbdata_proto_msgTypes[108] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8616,7 +8498,7 @@ func (x *DB_Pigbank_Prop) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Pigbank_Prop.ProtoReflect.Descriptor instead. func (*DB_Pigbank_Prop) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{110} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{108} } func (x *DB_Pigbank_Prop) GetId() int32 { @@ -8651,7 +8533,7 @@ type DB_Pigbank_PropArray struct { func (x *DB_Pigbank_PropArray) Reset() { *x = DB_Pigbank_PropArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[111] + mi := &file_protocol_server_pbdata_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8664,7 +8546,7 @@ func (x *DB_Pigbank_PropArray) String() string { func (*DB_Pigbank_PropArray) ProtoMessage() {} func (x *DB_Pigbank_PropArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[111] + mi := &file_protocol_server_pbdata_proto_msgTypes[109] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8677,7 +8559,7 @@ func (x *DB_Pigbank_PropArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Pigbank_PropArray.ProtoReflect.Descriptor instead. func (*DB_Pigbank_PropArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{111} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{109} } func (x *DB_Pigbank_PropArray) GetArr() []*DB_Pigbank_Prop { @@ -8699,7 +8581,7 @@ type DB_PlayerExp struct { func (x *DB_PlayerExp) Reset() { *x = DB_PlayerExp{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[112] + mi := &file_protocol_server_pbdata_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8712,7 +8594,7 @@ func (x *DB_PlayerExp) String() string { func (*DB_PlayerExp) ProtoMessage() {} func (x *DB_PlayerExp) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[112] + mi := &file_protocol_server_pbdata_proto_msgTypes[110] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8725,7 +8607,7 @@ func (x *DB_PlayerExp) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PlayerExp.ProtoReflect.Descriptor instead. func (*DB_PlayerExp) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{112} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{110} } func (x *DB_PlayerExp) GetId() int32 { @@ -8753,7 +8635,7 @@ type DB_PlayerExpArray struct { func (x *DB_PlayerExpArray) Reset() { *x = DB_PlayerExpArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[113] + mi := &file_protocol_server_pbdata_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8766,7 +8648,7 @@ func (x *DB_PlayerExpArray) String() string { func (*DB_PlayerExpArray) ProtoMessage() {} func (x *DB_PlayerExpArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[113] + mi := &file_protocol_server_pbdata_proto_msgTypes[111] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8779,7 +8661,7 @@ func (x *DB_PlayerExpArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PlayerExpArray.ProtoReflect.Descriptor instead. func (*DB_PlayerExpArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{113} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{111} } func (x *DB_PlayerExpArray) GetArr() []*DB_PlayerExp { @@ -8817,7 +8699,7 @@ type DB_PlayerType struct { func (x *DB_PlayerType) Reset() { *x = DB_PlayerType{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[114] + mi := &file_protocol_server_pbdata_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8830,7 +8712,7 @@ func (x *DB_PlayerType) String() string { func (*DB_PlayerType) ProtoMessage() {} func (x *DB_PlayerType) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[114] + mi := &file_protocol_server_pbdata_proto_msgTypes[112] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8843,7 +8725,7 @@ func (x *DB_PlayerType) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PlayerType.ProtoReflect.Descriptor instead. func (*DB_PlayerType) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{114} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{112} } func (x *DB_PlayerType) GetId() int32 { @@ -8983,7 +8865,7 @@ type DB_PlayerTypeArray struct { func (x *DB_PlayerTypeArray) Reset() { *x = DB_PlayerTypeArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[115] + mi := &file_protocol_server_pbdata_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8996,7 +8878,7 @@ func (x *DB_PlayerTypeArray) String() string { func (*DB_PlayerTypeArray) ProtoMessage() {} func (x *DB_PlayerTypeArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[115] + mi := &file_protocol_server_pbdata_proto_msgTypes[113] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9009,7 +8891,7 @@ func (x *DB_PlayerTypeArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PlayerTypeArray.ProtoReflect.Descriptor instead. func (*DB_PlayerTypeArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{115} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{113} } func (x *DB_PlayerTypeArray) GetArr() []*DB_PlayerType { @@ -9033,7 +8915,7 @@ type DB_PotOdd struct { func (x *DB_PotOdd) Reset() { *x = DB_PotOdd{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[116] + mi := &file_protocol_server_pbdata_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9046,7 +8928,7 @@ func (x *DB_PotOdd) String() string { func (*DB_PotOdd) ProtoMessage() {} func (x *DB_PotOdd) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[116] + mi := &file_protocol_server_pbdata_proto_msgTypes[114] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9059,7 +8941,7 @@ func (x *DB_PotOdd) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PotOdd.ProtoReflect.Descriptor instead. func (*DB_PotOdd) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{116} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{114} } func (x *DB_PotOdd) GetId() int32 { @@ -9101,7 +8983,7 @@ type DB_PotOddArray struct { func (x *DB_PotOddArray) Reset() { *x = DB_PotOddArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[117] + mi := &file_protocol_server_pbdata_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9114,7 +8996,7 @@ func (x *DB_PotOddArray) String() string { func (*DB_PotOddArray) ProtoMessage() {} func (x *DB_PotOddArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[117] + mi := &file_protocol_server_pbdata_proto_msgTypes[115] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9127,7 +9009,7 @@ func (x *DB_PotOddArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PotOddArray.ProtoReflect.Descriptor instead. func (*DB_PotOddArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{117} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{115} } func (x *DB_PotOddArray) GetArr() []*DB_PotOdd { @@ -9153,7 +9035,7 @@ type DB_PropExchange struct { func (x *DB_PropExchange) Reset() { *x = DB_PropExchange{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[118] + mi := &file_protocol_server_pbdata_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9166,7 +9048,7 @@ func (x *DB_PropExchange) String() string { func (*DB_PropExchange) ProtoMessage() {} func (x *DB_PropExchange) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[118] + mi := &file_protocol_server_pbdata_proto_msgTypes[116] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9179,7 +9061,7 @@ func (x *DB_PropExchange) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PropExchange.ProtoReflect.Descriptor instead. func (*DB_PropExchange) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{118} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{116} } func (x *DB_PropExchange) GetId() int32 { @@ -9235,7 +9117,7 @@ type DB_PropExchangeArray struct { func (x *DB_PropExchangeArray) Reset() { *x = DB_PropExchangeArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[119] + mi := &file_protocol_server_pbdata_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9248,7 +9130,7 @@ func (x *DB_PropExchangeArray) String() string { func (*DB_PropExchangeArray) ProtoMessage() {} func (x *DB_PropExchangeArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[119] + mi := &file_protocol_server_pbdata_proto_msgTypes[117] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9261,7 +9143,7 @@ func (x *DB_PropExchangeArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PropExchangeArray.ProtoReflect.Descriptor instead. func (*DB_PropExchangeArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{119} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{117} } func (x *DB_PropExchangeArray) GetArr() []*DB_PropExchange { @@ -9284,7 +9166,7 @@ type DB_RankCycle struct { func (x *DB_RankCycle) Reset() { *x = DB_RankCycle{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[120] + mi := &file_protocol_server_pbdata_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9297,7 +9179,7 @@ func (x *DB_RankCycle) String() string { func (*DB_RankCycle) ProtoMessage() {} func (x *DB_RankCycle) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[120] + mi := &file_protocol_server_pbdata_proto_msgTypes[118] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9310,7 +9192,7 @@ func (x *DB_RankCycle) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_RankCycle.ProtoReflect.Descriptor instead. func (*DB_RankCycle) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{120} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{118} } func (x *DB_RankCycle) GetId() int32 { @@ -9345,7 +9227,7 @@ type DB_RankCycleArray struct { func (x *DB_RankCycleArray) Reset() { *x = DB_RankCycleArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[121] + mi := &file_protocol_server_pbdata_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9358,7 +9240,7 @@ func (x *DB_RankCycleArray) String() string { func (*DB_RankCycleArray) ProtoMessage() {} func (x *DB_RankCycleArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[121] + mi := &file_protocol_server_pbdata_proto_msgTypes[119] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9371,7 +9253,7 @@ func (x *DB_RankCycleArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_RankCycleArray.ProtoReflect.Descriptor instead. func (*DB_RankCycleArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{121} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{119} } func (x *DB_RankCycleArray) GetArr() []*DB_RankCycle { @@ -9396,7 +9278,7 @@ type DB_RankLevel struct { func (x *DB_RankLevel) Reset() { *x = DB_RankLevel{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[122] + mi := &file_protocol_server_pbdata_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9409,7 +9291,7 @@ func (x *DB_RankLevel) String() string { func (*DB_RankLevel) ProtoMessage() {} func (x *DB_RankLevel) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[122] + mi := &file_protocol_server_pbdata_proto_msgTypes[120] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9422,7 +9304,7 @@ func (x *DB_RankLevel) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_RankLevel.ProtoReflect.Descriptor instead. func (*DB_RankLevel) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{122} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{120} } func (x *DB_RankLevel) GetId() int32 { @@ -9471,7 +9353,7 @@ type DB_RankLevelArray struct { func (x *DB_RankLevelArray) Reset() { *x = DB_RankLevelArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[123] + mi := &file_protocol_server_pbdata_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9484,7 +9366,7 @@ func (x *DB_RankLevelArray) String() string { func (*DB_RankLevelArray) ProtoMessage() {} func (x *DB_RankLevelArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[123] + mi := &file_protocol_server_pbdata_proto_msgTypes[121] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9497,7 +9379,7 @@ func (x *DB_RankLevelArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_RankLevelArray.ProtoReflect.Descriptor instead. func (*DB_RankLevelArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{123} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{121} } func (x *DB_RankLevelArray) GetArr() []*DB_RankLevel { @@ -9526,7 +9408,7 @@ type DB_RankReward struct { func (x *DB_RankReward) Reset() { *x = DB_RankReward{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[124] + mi := &file_protocol_server_pbdata_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9539,7 +9421,7 @@ func (x *DB_RankReward) String() string { func (*DB_RankReward) ProtoMessage() {} func (x *DB_RankReward) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[124] + mi := &file_protocol_server_pbdata_proto_msgTypes[122] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9552,7 +9434,7 @@ func (x *DB_RankReward) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_RankReward.ProtoReflect.Descriptor instead. func (*DB_RankReward) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{124} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{122} } func (x *DB_RankReward) GetId() int32 { @@ -9629,7 +9511,7 @@ type DB_RankRewardArray struct { func (x *DB_RankRewardArray) Reset() { *x = DB_RankRewardArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[125] + mi := &file_protocol_server_pbdata_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9642,7 +9524,7 @@ func (x *DB_RankRewardArray) String() string { func (*DB_RankRewardArray) ProtoMessage() {} func (x *DB_RankRewardArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[125] + mi := &file_protocol_server_pbdata_proto_msgTypes[123] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9655,7 +9537,7 @@ func (x *DB_RankRewardArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_RankRewardArray.ProtoReflect.Descriptor instead. func (*DB_RankRewardArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{125} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{123} } func (x *DB_RankRewardArray) GetArr() []*DB_RankReward { @@ -9677,7 +9559,7 @@ type DB_Sensitive_Words struct { func (x *DB_Sensitive_Words) Reset() { *x = DB_Sensitive_Words{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[126] + mi := &file_protocol_server_pbdata_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9690,7 +9572,7 @@ func (x *DB_Sensitive_Words) String() string { func (*DB_Sensitive_Words) ProtoMessage() {} func (x *DB_Sensitive_Words) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[126] + mi := &file_protocol_server_pbdata_proto_msgTypes[124] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9703,7 +9585,7 @@ func (x *DB_Sensitive_Words) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Sensitive_Words.ProtoReflect.Descriptor instead. func (*DB_Sensitive_Words) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{126} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{124} } func (x *DB_Sensitive_Words) GetId() int32 { @@ -9731,7 +9613,7 @@ type DB_Sensitive_WordsArray struct { func (x *DB_Sensitive_WordsArray) Reset() { *x = DB_Sensitive_WordsArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[127] + mi := &file_protocol_server_pbdata_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9744,7 +9626,7 @@ func (x *DB_Sensitive_WordsArray) String() string { func (*DB_Sensitive_WordsArray) ProtoMessage() {} func (x *DB_Sensitive_WordsArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[127] + mi := &file_protocol_server_pbdata_proto_msgTypes[125] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9757,7 +9639,7 @@ func (x *DB_Sensitive_WordsArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Sensitive_WordsArray.ProtoReflect.Descriptor instead. func (*DB_Sensitive_WordsArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{127} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{125} } func (x *DB_Sensitive_WordsArray) GetArr() []*DB_Sensitive_Words { @@ -9791,7 +9673,7 @@ type DB_Skin struct { func (x *DB_Skin) Reset() { *x = DB_Skin{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[128] + mi := &file_protocol_server_pbdata_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9804,7 +9686,7 @@ func (x *DB_Skin) String() string { func (*DB_Skin) ProtoMessage() {} func (x *DB_Skin) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[128] + mi := &file_protocol_server_pbdata_proto_msgTypes[126] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9817,7 +9699,7 @@ func (x *DB_Skin) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Skin.ProtoReflect.Descriptor instead. func (*DB_Skin) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{128} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{126} } func (x *DB_Skin) GetId() int32 { @@ -9929,7 +9811,7 @@ type DB_SkinArray struct { func (x *DB_SkinArray) Reset() { *x = DB_SkinArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[129] + mi := &file_protocol_server_pbdata_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9942,7 +9824,7 @@ func (x *DB_SkinArray) String() string { func (*DB_SkinArray) ProtoMessage() {} func (x *DB_SkinArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[129] + mi := &file_protocol_server_pbdata_proto_msgTypes[127] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9955,7 +9837,7 @@ func (x *DB_SkinArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_SkinArray.ProtoReflect.Descriptor instead. func (*DB_SkinArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{129} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{127} } func (x *DB_SkinArray) GetArr() []*DB_Skin { @@ -9983,7 +9865,7 @@ type DB_SkinLevel struct { func (x *DB_SkinLevel) Reset() { *x = DB_SkinLevel{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[130] + mi := &file_protocol_server_pbdata_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9996,7 +9878,7 @@ func (x *DB_SkinLevel) String() string { func (*DB_SkinLevel) ProtoMessage() {} func (x *DB_SkinLevel) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[130] + mi := &file_protocol_server_pbdata_proto_msgTypes[128] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10009,7 +9891,7 @@ func (x *DB_SkinLevel) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_SkinLevel.ProtoReflect.Descriptor instead. func (*DB_SkinLevel) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{130} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{128} } func (x *DB_SkinLevel) GetId() int32 { @@ -10079,7 +9961,7 @@ type DB_SkinLevelArray struct { func (x *DB_SkinLevelArray) Reset() { *x = DB_SkinLevelArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[131] + mi := &file_protocol_server_pbdata_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10092,7 +9974,7 @@ func (x *DB_SkinLevelArray) String() string { func (*DB_SkinLevelArray) ProtoMessage() {} func (x *DB_SkinLevelArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[131] + mi := &file_protocol_server_pbdata_proto_msgTypes[129] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10105,7 +9987,7 @@ func (x *DB_SkinLevelArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_SkinLevelArray.ProtoReflect.Descriptor instead. func (*DB_SkinLevelArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{131} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{129} } func (x *DB_SkinLevelArray) GetArr() []*DB_SkinLevel { @@ -10141,7 +10023,7 @@ type DB_SlotRateWeight struct { func (x *DB_SlotRateWeight) Reset() { *x = DB_SlotRateWeight{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[132] + mi := &file_protocol_server_pbdata_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10154,7 +10036,7 @@ func (x *DB_SlotRateWeight) String() string { func (*DB_SlotRateWeight) ProtoMessage() {} func (x *DB_SlotRateWeight) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[132] + mi := &file_protocol_server_pbdata_proto_msgTypes[130] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10167,7 +10049,7 @@ func (x *DB_SlotRateWeight) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_SlotRateWeight.ProtoReflect.Descriptor instead. func (*DB_SlotRateWeight) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{132} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{130} } func (x *DB_SlotRateWeight) GetId() int32 { @@ -10293,7 +10175,7 @@ type DB_SlotRateWeightArray struct { func (x *DB_SlotRateWeightArray) Reset() { *x = DB_SlotRateWeightArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[133] + mi := &file_protocol_server_pbdata_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10306,7 +10188,7 @@ func (x *DB_SlotRateWeightArray) String() string { func (*DB_SlotRateWeightArray) ProtoMessage() {} func (x *DB_SlotRateWeightArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[133] + mi := &file_protocol_server_pbdata_proto_msgTypes[131] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10319,7 +10201,7 @@ func (x *DB_SlotRateWeightArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_SlotRateWeightArray.ProtoReflect.Descriptor instead. func (*DB_SlotRateWeightArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{133} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{131} } func (x *DB_SlotRateWeightArray) GetArr() []*DB_SlotRateWeight { @@ -10344,7 +10226,7 @@ type DB_SystemChance struct { func (x *DB_SystemChance) Reset() { *x = DB_SystemChance{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[134] + mi := &file_protocol_server_pbdata_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10357,7 +10239,7 @@ func (x *DB_SystemChance) String() string { func (*DB_SystemChance) ProtoMessage() {} func (x *DB_SystemChance) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[134] + mi := &file_protocol_server_pbdata_proto_msgTypes[132] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10370,7 +10252,7 @@ func (x *DB_SystemChance) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_SystemChance.ProtoReflect.Descriptor instead. func (*DB_SystemChance) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{134} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{132} } func (x *DB_SystemChance) GetId() int32 { @@ -10419,7 +10301,7 @@ type DB_SystemChanceArray struct { func (x *DB_SystemChanceArray) Reset() { *x = DB_SystemChanceArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[135] + mi := &file_protocol_server_pbdata_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10432,7 +10314,7 @@ func (x *DB_SystemChanceArray) String() string { func (*DB_SystemChanceArray) ProtoMessage() {} func (x *DB_SystemChanceArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[135] + mi := &file_protocol_server_pbdata_proto_msgTypes[133] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10445,7 +10327,7 @@ func (x *DB_SystemChanceArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_SystemChanceArray.ProtoReflect.Descriptor instead. func (*DB_SystemChanceArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{135} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{133} } func (x *DB_SystemChanceArray) GetArr() []*DB_SystemChance { @@ -10476,7 +10358,7 @@ type DB_Task struct { func (x *DB_Task) Reset() { *x = DB_Task{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[136] + mi := &file_protocol_server_pbdata_proto_msgTypes[134] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10489,7 +10371,7 @@ func (x *DB_Task) String() string { func (*DB_Task) ProtoMessage() {} func (x *DB_Task) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[136] + mi := &file_protocol_server_pbdata_proto_msgTypes[134] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10502,7 +10384,7 @@ func (x *DB_Task) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Task.ProtoReflect.Descriptor instead. func (*DB_Task) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{136} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{134} } func (x *DB_Task) GetId() int32 { @@ -10593,7 +10475,7 @@ type DB_TaskArray struct { func (x *DB_TaskArray) Reset() { *x = DB_TaskArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[137] + mi := &file_protocol_server_pbdata_proto_msgTypes[135] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10606,7 +10488,7 @@ func (x *DB_TaskArray) String() string { func (*DB_TaskArray) ProtoMessage() {} func (x *DB_TaskArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[137] + mi := &file_protocol_server_pbdata_proto_msgTypes[135] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10619,7 +10501,7 @@ func (x *DB_TaskArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_TaskArray.ProtoReflect.Descriptor instead. func (*DB_TaskArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{137} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{135} } func (x *DB_TaskArray) GetArr() []*DB_Task { @@ -10646,7 +10528,7 @@ type DB_ThirdPlatformGameMapping struct { func (x *DB_ThirdPlatformGameMapping) Reset() { *x = DB_ThirdPlatformGameMapping{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[138] + mi := &file_protocol_server_pbdata_proto_msgTypes[136] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10659,7 +10541,7 @@ func (x *DB_ThirdPlatformGameMapping) String() string { func (*DB_ThirdPlatformGameMapping) ProtoMessage() {} func (x *DB_ThirdPlatformGameMapping) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[138] + mi := &file_protocol_server_pbdata_proto_msgTypes[136] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10672,7 +10554,7 @@ func (x *DB_ThirdPlatformGameMapping) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_ThirdPlatformGameMapping.ProtoReflect.Descriptor instead. func (*DB_ThirdPlatformGameMapping) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{138} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{136} } func (x *DB_ThirdPlatformGameMapping) GetId() int32 { @@ -10735,7 +10617,7 @@ type DB_ThirdPlatformGameMappingArray struct { func (x *DB_ThirdPlatformGameMappingArray) Reset() { *x = DB_ThirdPlatformGameMappingArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[139] + mi := &file_protocol_server_pbdata_proto_msgTypes[137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10748,7 +10630,7 @@ func (x *DB_ThirdPlatformGameMappingArray) String() string { func (*DB_ThirdPlatformGameMappingArray) ProtoMessage() {} func (x *DB_ThirdPlatformGameMappingArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[139] + mi := &file_protocol_server_pbdata_proto_msgTypes[137] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10761,7 +10643,7 @@ func (x *DB_ThirdPlatformGameMappingArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_ThirdPlatformGameMappingArray.ProtoReflect.Descriptor instead. func (*DB_ThirdPlatformGameMappingArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{139} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{137} } func (x *DB_ThirdPlatformGameMappingArray) GetArr() []*DB_ThirdPlatformGameMapping { @@ -10784,7 +10666,7 @@ type DB_Tips struct { func (x *DB_Tips) Reset() { *x = DB_Tips{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[140] + mi := &file_protocol_server_pbdata_proto_msgTypes[138] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10797,7 +10679,7 @@ func (x *DB_Tips) String() string { func (*DB_Tips) ProtoMessage() {} func (x *DB_Tips) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[140] + mi := &file_protocol_server_pbdata_proto_msgTypes[138] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10810,7 +10692,7 @@ func (x *DB_Tips) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Tips.ProtoReflect.Descriptor instead. func (*DB_Tips) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{140} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{138} } func (x *DB_Tips) GetId() int32 { @@ -10845,7 +10727,7 @@ type DB_TipsArray struct { func (x *DB_TipsArray) Reset() { *x = DB_TipsArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[141] + mi := &file_protocol_server_pbdata_proto_msgTypes[139] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10858,7 +10740,7 @@ func (x *DB_TipsArray) String() string { func (*DB_TipsArray) ProtoMessage() {} func (x *DB_TipsArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[141] + mi := &file_protocol_server_pbdata_proto_msgTypes[139] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10871,7 +10753,7 @@ func (x *DB_TipsArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_TipsArray.ProtoReflect.Descriptor instead. func (*DB_TipsArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{141} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{139} } func (x *DB_TipsArray) GetArr() []*DB_Tips { @@ -10913,7 +10795,7 @@ type DB_VIP struct { func (x *DB_VIP) Reset() { *x = DB_VIP{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[142] + mi := &file_protocol_server_pbdata_proto_msgTypes[140] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10926,7 +10808,7 @@ func (x *DB_VIP) String() string { func (*DB_VIP) ProtoMessage() {} func (x *DB_VIP) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[142] + mi := &file_protocol_server_pbdata_proto_msgTypes[140] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10939,7 +10821,7 @@ func (x *DB_VIP) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_VIP.ProtoReflect.Descriptor instead. func (*DB_VIP) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{142} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{140} } func (x *DB_VIP) GetId() int32 { @@ -11107,7 +10989,7 @@ type DB_VIPArray struct { func (x *DB_VIPArray) Reset() { *x = DB_VIPArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[143] + mi := &file_protocol_server_pbdata_proto_msgTypes[141] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11120,7 +11002,7 @@ func (x *DB_VIPArray) String() string { func (*DB_VIPArray) ProtoMessage() {} func (x *DB_VIPArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[143] + mi := &file_protocol_server_pbdata_proto_msgTypes[141] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11133,7 +11015,7 @@ func (x *DB_VIPArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_VIPArray.ProtoReflect.Descriptor instead. func (*DB_VIPArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{143} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{141} } func (x *DB_VIPArray) GetArr() []*DB_VIP { @@ -11158,7 +11040,7 @@ type DB_VIPShow struct { func (x *DB_VIPShow) Reset() { *x = DB_VIPShow{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[144] + mi := &file_protocol_server_pbdata_proto_msgTypes[142] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11171,7 +11053,7 @@ func (x *DB_VIPShow) String() string { func (*DB_VIPShow) ProtoMessage() {} func (x *DB_VIPShow) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[144] + mi := &file_protocol_server_pbdata_proto_msgTypes[142] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11184,7 +11066,7 @@ func (x *DB_VIPShow) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_VIPShow.ProtoReflect.Descriptor instead. func (*DB_VIPShow) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{144} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{142} } func (x *DB_VIPShow) GetId() int32 { @@ -11233,7 +11115,7 @@ type DB_VIPShowArray struct { func (x *DB_VIPShowArray) Reset() { *x = DB_VIPShowArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[145] + mi := &file_protocol_server_pbdata_proto_msgTypes[143] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11246,7 +11128,7 @@ func (x *DB_VIPShowArray) String() string { func (*DB_VIPShowArray) ProtoMessage() {} func (x *DB_VIPShowArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[145] + mi := &file_protocol_server_pbdata_proto_msgTypes[143] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11259,7 +11141,7 @@ func (x *DB_VIPShowArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_VIPShowArray.ProtoReflect.Descriptor instead. func (*DB_VIPShowArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{145} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{143} } func (x *DB_VIPShowArray) GetArr() []*DB_VIPShow { @@ -12295,515 +12177,495 @@ var file_protocol_server_pbdata_proto_rawDesc = []byte{ 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2c, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x4e, 0x65, 0x77, 0x59, 0x65, 0x61, 0x72, 0x41, - 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xe9, 0x01, 0x0a, - 0x14, 0x44, 0x42, 0x5f, 0x4e, 0x65, 0x77, 0x59, 0x65, 0x61, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x49, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x49, 0x64, 0x12, 0x46, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4d, 0x61, 0x70, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, - 0x42, 0x5f, 0x4e, 0x65, 0x77, 0x59, 0x65, 0x61, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4d, 0x61, 0x70, 0x1a, 0x3b, 0x0a, 0x0d, 0x41, - 0x77, 0x61, 0x72, 0x64, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x75, 0x0a, 0x0b, + 0x44, 0x42, 0x5f, 0x50, 0x61, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x53, + 0x68, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, + 0x68, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x68, 0x6f, + 0x77, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x50, 0x61, 0x73, 0x73, 0x53, 0x68, + 0x6f, 0x77, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, + 0x5f, 0x50, 0x61, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xe9, + 0x02, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6c, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x6b, 0x69, + 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x65, 0x74, 0x49, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x50, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, + 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, + 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x6b, + 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x6b, + 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x4b, 0x69, 0x6c, 0x6c, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x4b, 0x69, 0x6c, + 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x43, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, + 0x6e, 0x73, 0x75, 0x6d, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x2e, + 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x1a, 0x3d, 0x0a, 0x0f, 0x49, + 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, + 0x5f, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x25, + 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, + 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xa2, 0x02, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x50, 0x68, 0x6f, + 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x17, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x5f, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, + 0x61, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x4f, 0x64, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4f, + 0x64, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x31, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x31, 0x12, 0x12, + 0x0a, 0x04, 0x4f, 0x64, 0x64, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4f, 0x64, + 0x64, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x32, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x32, 0x12, 0x12, + 0x0a, 0x04, 0x4f, 0x64, 0x64, 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4f, 0x64, + 0x64, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x33, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x33, 0x12, 0x1a, + 0x0a, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x34, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x34, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, + 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x41, 0x72, 0x72, + 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x68, 0x6f, 0x6e, + 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xd8, 0x04, + 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, + 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x4d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x42, 0x75, 0x79, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x73, 0x74, + 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, + 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, + 0x78, 0x47, 0x6f, 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x78, + 0x47, 0x6f, 0x6c, 0x64, 0x12, 0x41, 0x0a, 0x07, 0x47, 0x6f, 0x6c, 0x64, 0x45, 0x78, 0x63, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, + 0x42, 0x5f, 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, + 0x64, 0x2e, 0x47, 0x6f, 0x6c, 0x64, 0x45, 0x78, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, + 0x47, 0x6f, 0x6c, 0x64, 0x45, 0x78, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x78, 0x44, 0x69, + 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x78, + 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x69, 0x61, 0x6d, 0x6f, + 0x6e, 0x64, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x44, 0x69, 0x61, 0x6d, + 0x6f, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x4a, 0x0a, 0x0a, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, + 0x45, 0x78, 0x63, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, + 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x2e, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x45, 0x78, 0x63, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x45, 0x78, + 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, + 0x22, 0x0a, 0x0c, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4e, 0x6f, + 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x44, 0x69, + 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, 0x1a, 0x3a, 0x0a, + 0x0c, 0x47, 0x6f, 0x6c, 0x64, 0x45, 0x78, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x44, 0x69, 0x61, + 0x6d, 0x6f, 0x6e, 0x64, 0x45, 0x78, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4b, 0x0a, 0x19, 0x44, 0x42, 0x5f, 0x4e, - 0x65, 0x77, 0x59, 0x65, 0x61, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2e, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x4e, - 0x65, 0x77, 0x59, 0x65, 0x61, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x75, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x50, 0x61, 0x73, 0x73, - 0x53, 0x68, 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x39, 0x0a, 0x10, - 0x44, 0x42, 0x5f, 0x50, 0x61, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x72, 0x72, 0x61, 0x79, - 0x12, 0x25, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x61, 0x73, 0x73, 0x53, 0x68, - 0x6f, 0x77, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xe9, 0x02, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x50, - 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6b, 0x69, 0x6c, 0x6c, - 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, - 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x50, 0x65, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x50, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x12, - 0x1e, 0x0a, 0x0a, 0x53, 0x4b, 0x69, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x4b, 0x69, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, - 0x43, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x18, 0x09, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, - 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6e, - 0x73, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, - 0x6e, 0x73, 0x75, 0x6d, 0x1a, 0x3d, 0x0a, 0x0f, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6e, 0x73, - 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, - 0x6c, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, - 0x5f, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xa2, - 0x02, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, - 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x49, 0x74, - 0x65, 0x6d, 0x5f, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, - 0x6d, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4f, 0x64, 0x64, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4f, 0x64, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4f, - 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, - 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x31, 0x12, 0x12, 0x0a, 0x04, 0x4f, 0x64, 0x64, 0x32, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4f, 0x64, 0x64, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x4f, - 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, - 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x4f, 0x64, 0x64, 0x33, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4f, 0x64, 0x64, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x4f, - 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x33, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, - 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, - 0x74, 0x65, 0x34, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, - 0x74, 0x65, 0x34, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, - 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, - 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, - 0x79, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xd8, 0x04, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x50, 0x69, - 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x20, 0x0a, - 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x12, - 0x20, 0x0a, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, - 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x6d, - 0x6f, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x78, 0x47, 0x6f, 0x6c, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x78, 0x47, 0x6f, 0x6c, 0x64, 0x12, 0x41, 0x0a, - 0x07, 0x47, 0x6f, 0x6c, 0x64, 0x45, 0x78, 0x63, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x42, 0x61, - 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x2e, 0x47, 0x6f, 0x6c, 0x64, 0x45, - 0x78, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x47, 0x6f, 0x6c, 0x64, 0x45, 0x78, 0x63, - 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x78, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x78, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, - 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x09, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x4a, - 0x0a, 0x0a, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x45, 0x78, 0x63, 0x18, 0x09, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, - 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x2e, 0x44, - 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x45, 0x78, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, - 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x45, 0x78, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x6f, - 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x43, - 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x44, 0x69, 0x61, 0x6d, - 0x6f, 0x6e, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, - 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0f, - 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4e, 0x6f, - 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, 0x1a, 0x3a, 0x0a, 0x0c, 0x47, 0x6f, 0x6c, 0x64, 0x45, 0x78, - 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x45, 0x78, 0x63, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, 0x5f, 0x50, + 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x41, 0x72, + 0x72, 0x61, 0x79, 0x12, 0x2c, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, + 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x52, 0x03, 0x41, 0x72, + 0x72, 0x22, 0x5b, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, + 0x50, 0x72, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6f, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6f, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x50, 0x72, 0x6f, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x41, + 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x72, 0x6f, + 0x70, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, + 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x03, 0x41, 0x72, + 0x72, 0x22, 0x30, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x78, + 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, + 0x64, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x78, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x45, 0x78, 0x70, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x45, 0x78, 0x70, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, + 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x78, 0x70, 0x52, 0x03, 0x41, 0x72, 0x72, + 0x22, 0xa5, 0x05, 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, + 0x65, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, + 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x4c, 0x6f, 0x77, + 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x50, + 0x61, 0x79, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x24, 0x0a, 0x0d, + 0x50, 0x61, 0x79, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0d, 0x50, 0x61, 0x79, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x6f, + 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, + 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x70, + 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, + 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x4c, 0x6f, 0x77, + 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x54, + 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x55, 0x70, 0x70, 0x65, 0x72, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x49, 0x6e, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, + 0x0a, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x4c, 0x6f, 0x77, 0x65, + 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x55, 0x70, + 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, + 0x4f, 0x64, 0x64, 0x73, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1c, + 0x0a, 0x09, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x09, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x52, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x61, 0x72, 0x64, + 0x52, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x43, 0x61, + 0x72, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x24, 0x0a, 0x0d, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0f, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, + 0x62, 0x52, 0x61, 0x74, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x61, 0x72, + 0x64, 0x4c, 0x69, 0x62, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, + 0x4c, 0x69, 0x62, 0x41, 0x72, 0x72, 0x18, 0x12, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, + 0x72, 0x64, 0x4c, 0x69, 0x62, 0x41, 0x72, 0x72, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x27, + 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x5d, 0x0a, 0x09, 0x44, 0x42, 0x5f, 0x50, 0x6f, + 0x74, 0x4f, 0x64, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x56, 0x69, 0x70, 0x4f, 0x64, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, + 0x56, 0x69, 0x70, 0x4f, 0x64, 0x64, 0x22, 0x35, 0x0a, 0x0e, 0x44, 0x42, 0x5f, 0x50, 0x6f, 0x74, + 0x4f, 0x64, 0x64, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x23, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, + 0x42, 0x5f, 0x50, 0x6f, 0x74, 0x4f, 0x64, 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xa5, 0x03, + 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x35, 0x0a, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, + 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x43, + 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x35, + 0x0a, 0x04, 0x47, 0x61, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x47, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x04, 0x47, 0x61, 0x69, 0x6e, 0x12, 0x3b, 0x0a, 0x06, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, + 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x43, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x43, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x1a, 0x37, 0x0a, 0x09, 0x43, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, - 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2c, 0x0a, 0x03, - 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, - 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x5b, 0x0a, 0x0f, 0x44, 0x42, - 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, - 0x08, 0x50, 0x6f, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x50, 0x6f, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x72, 0x6f, - 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x50, 0x72, - 0x6f, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x50, 0x69, - 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, - 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, - 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x30, 0x0a, 0x0c, 0x44, 0x42, - 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x78, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x78, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x45, 0x78, 0x70, 0x22, 0x3b, 0x0a, 0x11, - 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x78, 0x70, 0x41, 0x72, 0x72, 0x61, - 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x45, 0x78, 0x70, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xa5, 0x05, 0x0a, 0x0d, 0x44, 0x42, - 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, - 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x50, 0x61, 0x79, 0x4c, 0x6f, 0x77, 0x65, 0x72, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x55, 0x70, 0x70, 0x65, - 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x50, 0x61, - 0x79, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x47, - 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x47, - 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x54, - 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x4c, - 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x49, 0x6e, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x55, 0x70, 0x70, - 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x4c, - 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, - 0x26, 0x0a, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x55, 0x70, 0x70, - 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x75, 0x63, 0x6b, 0x79, - 0x52, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4c, 0x75, 0x63, 0x6b, - 0x79, 0x52, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, - 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, - 0x0e, 0x43, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x18, - 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x43, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x45, - 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x10, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x0c, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, - 0x20, 0x0a, 0x0b, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x62, 0x52, 0x61, 0x74, 0x65, 0x18, 0x11, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x62, 0x52, 0x61, 0x74, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x62, 0x41, 0x72, 0x72, 0x18, - 0x12, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x62, 0x41, 0x72, - 0x72, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, - 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, - 0x22, 0x5d, 0x0a, 0x09, 0x44, 0x42, 0x5f, 0x50, 0x6f, 0x74, 0x4f, 0x64, 0x64, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x56, 0x69, 0x70, 0x4f, 0x64, - 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x56, 0x69, 0x70, 0x4f, 0x64, 0x64, 0x22, - 0x35, 0x0a, 0x0e, 0x44, 0x42, 0x5f, 0x50, 0x6f, 0x74, 0x4f, 0x64, 0x64, 0x41, 0x72, 0x72, 0x61, - 0x79, 0x12, 0x23, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x6f, 0x74, 0x4f, 0x64, - 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xa5, 0x03, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x50, 0x72, - 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x12, 0x35, 0x0a, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x47, 0x61, 0x69, 0x6e, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, - 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x47, - 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x47, 0x61, 0x69, 0x6e, 0x12, 0x3b, - 0x0a, 0x06, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x06, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x1a, 0x37, 0x0a, 0x09, 0x43, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x61, - 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x41, - 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, - 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x03, 0x41, 0x72, - 0x72, 0x22, 0x46, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x79, 0x63, 0x6c, - 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, - 0x64, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x6e, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x45, 0x6e, 0x64, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, - 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, + 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, + 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x46, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x52, + 0x61, 0x6e, 0x6b, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x45, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x45, 0x6e, 0x64, + 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x79, 0x63, 0x6c, 0x65, + 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x52, + 0x61, 0x6e, 0x6b, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x7a, 0x0a, + 0x0c, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, + 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x79, 0x63, 0x6c, - 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x7a, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, - 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xff, 0x01, 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x52, 0x61, + 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, + 0x61, 0x72, 0x64, 0x31, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, + 0x61, 0x72, 0x64, 0x31, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, + 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, + 0x31, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x49, 0x64, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x49, 0x64, + 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x4e, 0x75, 0x6d, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x4e, 0x75, 0x6d, 0x12, 0x1a, + 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, + 0x61, 0x72, 0x64, 0x33, 0x4e, 0x75, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, + 0x77, 0x61, 0x72, 0x64, 0x33, 0x4e, 0x75, 0x6d, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x52, + 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x27, + 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x4d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x53, 0x65, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x27, 0x0a, + 0x0f, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, + 0x65, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, 0x5f, 0x53, 0x65, 0x6e, + 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x41, 0x72, 0x72, 0x61, + 0x79, 0x12, 0x2c, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x65, 0x6e, 0x73, 0x69, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, + 0x83, 0x04, 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x53, + 0x6b, 0x69, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, + 0x53, 0x6b, 0x69, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x6f, 0x64, + 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, + 0x18, 0x0a, 0x07, 0x53, 0x6b, 0x69, 0x6e, 0x50, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x53, 0x6b, 0x69, 0x6e, 0x50, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x6b, 0x69, + 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x6b, 0x69, + 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x6b, 0x69, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x6b, 0x69, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x18, + 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, + 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x2e, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, + 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, + 0x65, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x53, 0x6b, 0x69, 0x6e, 0x53, + 0x6b, 0x69, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x6b, 0x69, 0x6e, + 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x22, + 0x0a, 0x0c, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, + 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x53, 0x6b, 0x69, 0x6e, 0x53, + 0x6b, 0x69, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x75, 0x72, 0x6e, + 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x54, 0x75, 0x72, 0x6e, 0x12, 0x18, 0x0a, 0x07, + 0x54, 0x75, 0x72, 0x6e, 0x4b, 0x65, 0x79, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x54, + 0x75, 0x72, 0x6e, 0x4b, 0x65, 0x79, 0x1a, 0x3d, 0x0a, 0x0f, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, + 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, + 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x21, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, + 0x6b, 0x69, 0x6e, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xd7, 0x02, 0x0a, 0x0c, 0x44, 0x42, 0x5f, + 0x53, 0x6b, 0x69, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6b, 0x69, + 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x6b, 0x69, 0x6e, 0x49, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x38, 0x0a, 0x06, 0x55, 0x70, 0x49, 0x74, 0x65, + 0x6d, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x2e, 0x55, 0x70, + 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x55, 0x70, 0x49, 0x74, 0x65, + 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x64, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, + 0x6c, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x53, 0x6b, 0x69, + 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x26, 0x0a, 0x0e, 0x53, + 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0e, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, + 0x44, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x53, 0x6b, 0x69, 0x6e, 0x53, + 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x55, 0x70, 0x49, 0x74, 0x65, + 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, - 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, - 0xff, 0x01, 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, - 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, 0x49, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, 0x49, 0x64, 0x12, - 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, - 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, - 0x72, 0x64, 0x32, 0x4e, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, - 0x61, 0x72, 0x64, 0x32, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, - 0x33, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, - 0x33, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x4e, 0x75, 0x6d, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x4e, 0x75, - 0x6d, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, - 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, - 0x22, 0x4d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x22, - 0x47, 0x0a, 0x17, 0x44, 0x42, 0x5f, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x57, 0x6f, 0x72, 0x64, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2c, 0x0a, 0x03, 0x41, 0x72, - 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, - 0x72, 0x64, 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x83, 0x04, 0x0a, 0x07, 0x44, 0x42, 0x5f, - 0x53, 0x6b, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x02, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6e, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x6b, 0x69, 0x6e, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6b, 0x69, 0x6e, - 0x50, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x6b, 0x69, 0x6e, 0x50, - 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x6b, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x6b, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x53, 0x6b, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x53, 0x6b, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x55, 0x6e, - 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, - 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x55, 0x6e, - 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x2e, - 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x53, - 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x63, - 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, - 0x69, 0x6c, 0x6c, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x6b, 0x69, 0x6e, 0x53, - 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x53, - 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x53, - 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0d, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x75, 0x72, 0x6e, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, - 0x04, 0x54, 0x75, 0x72, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x75, 0x72, 0x6e, 0x4b, 0x65, 0x79, - 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x54, 0x75, 0x72, 0x6e, 0x4b, 0x65, 0x79, 0x1a, - 0x3d, 0x0a, 0x0f, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x31, - 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x21, - 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x52, 0x03, 0x41, 0x72, - 0x72, 0x22, 0xd7, 0x02, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x4c, 0x65, 0x76, - 0x65, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x12, 0x38, 0x0a, 0x06, 0x55, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, - 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x2e, 0x55, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x06, 0x55, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x6b, - 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0b, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, - 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, - 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x53, 0x6b, - 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x22, 0x0a, 0x0c, - 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, - 0x1a, 0x39, 0x0a, 0x0b, 0x55, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, + 0xbb, 0x03, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, + 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, + 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, + 0x6f, 0x6c, 0x31, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, + 0x6f, 0x6c, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x32, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x32, 0x12, + 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x33, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x4e, + 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x34, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, + 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, + 0x6f, 0x6c, 0x35, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, + 0x6f, 0x6c, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x31, 0x18, + 0x09, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x31, 0x12, + 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x32, 0x18, 0x0a, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x46, + 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x33, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, + 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, + 0x6f, 0x6c, 0x34, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, + 0x6f, 0x6c, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x35, 0x18, + 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x35, 0x12, + 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x72, + 0x79, 0x4d, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x72, 0x79, + 0x4d, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x74, 0x18, 0x10, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x74, 0x22, 0x45, 0x0a, + 0x16, 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2b, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, + 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, + 0x03, 0x41, 0x72, 0x72, 0x22, 0x7d, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x43, + 0x68, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, + 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, + 0x12, 0x0a, 0x04, 0x52, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, + 0x61, 0x74, 0x65, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, + 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x63, + 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xfd, 0x02, 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x54, 0x61, + 0x73, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x44, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x44, 0x65, 0x73, 0x12, 0x22, + 0x0a, 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0b, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x12, 0x20, 0x0a, 0x0b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x12, 0x30, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x09, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x61, + 0x73, 0x6b, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, + 0x77, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x38, 0x0a, 0x0a, + 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, + 0x6b, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x21, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, + 0x54, 0x61, 0x73, 0x6b, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x85, 0x02, 0x0a, 0x1b, 0x44, 0x42, + 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, + 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0c, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x2c, 0x0a, + 0x11, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x54, + 0x68, 0x69, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x12, 0x0a, + 0x04, 0x44, 0x65, 0x73, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x65, 0x73, + 0x63, 0x12, 0x34, 0x0a, 0x15, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x4f, 0x72, 0x69, 0x65, 0x6e, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x15, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x68, 0x69, 0x72, 0x64, + 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x54, 0x68, 0x69, 0x72, 0x64, 0x49, + 0x44, 0x22, 0x59, 0x0a, 0x20, 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x35, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, + 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, 0x6d, 0x65, + 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x43, 0x0a, 0x07, + 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, + 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, + 0x10, 0x0a, 0x03, 0x44, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x44, 0x65, + 0x73, 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, 0x41, 0x72, 0x72, 0x61, + 0x79, 0x12, 0x21, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, 0x52, + 0x03, 0x41, 0x72, 0x72, 0x22, 0xce, 0x06, 0x0a, 0x06, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x12, + 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x56, 0x69, 0x70, + 0x45, 0x78, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x56, 0x69, 0x70, 0x45, 0x78, + 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, + 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, + 0x32, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x50, + 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x50, + 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x50, + 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x50, + 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x12, 0x3e, 0x0a, 0x0a, 0x50, + 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x2e, + 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x12, 0x28, 0x0a, 0x0f, 0x50, + 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x12, + 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x12, + 0x14, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, + 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x18, 0x11, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x12, + 0x2f, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x2e, 0x41, + 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, + 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x13, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, + 0x0a, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, + 0x65, 0x67, 0x65, 0x39, 0x18, 0x15, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, + 0x69, 0x6c, 0x65, 0x67, 0x65, 0x39, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, + 0x65, 0x67, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x50, + 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x1a, 0x3d, 0x0a, 0x0f, + 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3b, 0x0a, 0x11, 0x44, - 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, - 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xbb, 0x03, 0x0a, 0x11, 0x44, 0x42, 0x5f, - 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1e, - 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x10, - 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, - 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x31, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x31, 0x12, 0x1a, 0x0a, 0x08, - 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x32, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, - 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, - 0x43, 0x6f, 0x6c, 0x33, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, - 0x43, 0x6f, 0x6c, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x34, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x34, - 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x35, 0x18, 0x08, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x35, 0x12, 0x1a, 0x0a, 0x08, - 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x31, 0x18, 0x09, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, - 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, - 0x43, 0x6f, 0x6c, 0x32, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, - 0x43, 0x6f, 0x6c, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x33, - 0x18, 0x0b, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x33, - 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x34, 0x18, 0x0c, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x34, 0x12, 0x1a, 0x0a, 0x08, - 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x35, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, - 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x35, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x72, 0x79, - 0x4f, 0x75, 0x74, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4f, - 0x75, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4d, 0x69, 0x64, 0x18, 0x0f, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4d, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, - 0x4a, 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x74, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x4a, - 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x74, 0x22, 0x45, 0x0a, 0x16, 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, - 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, - 0x12, 0x2b, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, - 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x7d, 0x0a, - 0x0f, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x44, 0x65, 0x73, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x52, 0x61, 0x74, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, 0x74, 0x65, 0x22, 0x41, 0x0a, 0x14, - 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x41, - 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, - 0xfd, 0x02, 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x44, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, - 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x41, - 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54, - 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x54, - 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x46, 0x69, 0x6e, - 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, - 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x05, 0x41, - 0x77, 0x61, 0x72, 0x64, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x41, 0x77, 0x61, 0x72, - 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, - 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x50, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, - 0x31, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, - 0x21, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x03, 0x41, - 0x72, 0x72, 0x22, 0x85, 0x02, 0x0a, 0x1b, 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x61, 0x6d, 0x65, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x11, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, 0x61, 0x6d, - 0x65, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x54, 0x68, 0x69, 0x72, 0x64, - 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, 0x12, 0x34, 0x0a, 0x15, 0x53, 0x63, - 0x72, 0x65, 0x65, 0x6e, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x53, 0x63, 0x72, 0x65, 0x65, - 0x6e, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x54, 0x68, 0x69, 0x72, 0x64, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x54, 0x68, 0x69, 0x72, 0x64, 0x49, 0x44, 0x22, 0x59, 0x0a, 0x20, 0x44, 0x42, - 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, - 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x35, - 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x43, 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, - 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x44, 0x65, 0x73, 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, - 0x5f, 0x54, 0x69, 0x70, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x21, 0x0a, 0x03, 0x41, 0x72, - 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xce, 0x06, - 0x0a, 0x06, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x56, 0x69, 0x70, 0x45, 0x78, 0x70, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x56, 0x69, 0x70, 0x45, 0x78, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, - 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, - 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, - 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, - 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, - 0x6f, 0x70, 0x49, 0x64, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, - 0x70, 0x49, 0x64, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, - 0x65, 0x33, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, - 0x65, 0x34, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, - 0x65, 0x35, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, - 0x65, 0x36, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x36, 0x12, 0x3e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, - 0x65, 0x37, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, - 0x67, 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x37, 0x12, 0x28, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, - 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x50, - 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, - 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, - 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x28, - 0x0a, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, - 0x44, 0x18, 0x11, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, - 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x12, 0x2f, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, - 0x64, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, - 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x39, 0x18, 0x15, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x39, 0x12, - 0x24, 0x0a, 0x0d, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x53, 0x68, 0x6f, 0x77, - 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, - 0x65, 0x53, 0x68, 0x6f, 0x77, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, - 0x67, 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x2f, - 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x20, 0x0a, - 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, - 0x7c, 0x0a, 0x0a, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x56, 0x49, 0x50, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x56, 0x49, 0x50, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x56, 0x49, 0x50, 0x44, 0x65, 0x73, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x56, 0x49, 0x50, 0x44, 0x65, 0x73, 0x22, 0x37, 0x0a, - 0x0f, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x72, 0x72, 0x61, 0x79, - 0x12, 0x24, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x53, 0x68, 0x6f, - 0x77, 0x52, 0x03, 0x41, 0x72, 0x72, 0x42, 0x26, 0x5a, 0x24, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, - 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x41, + 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x2f, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x41, + 0x72, 0x72, 0x61, 0x79, 0x12, 0x20, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, + 0x50, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x7c, 0x0a, 0x0a, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, + 0x53, 0x68, 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6b, 0x69, 0x6e, + 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x56, 0x49, 0x50, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x56, 0x49, 0x50, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, + 0x56, 0x49, 0x50, 0x44, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x56, 0x49, + 0x50, 0x44, 0x65, 0x73, 0x22, 0x37, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x53, 0x68, + 0x6f, 0x77, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x24, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, + 0x5f, 0x56, 0x49, 0x50, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x03, 0x41, 0x72, 0x72, 0x42, 0x26, 0x5a, + 0x24, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -12818,7 +12680,7 @@ func file_protocol_server_pbdata_proto_rawDescGZIP() []byte { return file_protocol_server_pbdata_proto_rawDescData } -var file_protocol_server_pbdata_proto_msgTypes = make([]protoimpl.MessageInfo, 164) +var file_protocol_server_pbdata_proto_msgTypes = make([]protoimpl.MessageInfo, 161) var file_protocol_server_pbdata_proto_goTypes = []interface{}{ (*DB_ActSign)(nil), // 0: server.DB_ActSign (*DB_ActSignArray)(nil), // 1: server.DB_ActSignArray @@ -12920,70 +12782,67 @@ var file_protocol_server_pbdata_proto_goTypes = []interface{}{ (*DB_NewPlayerArray)(nil), // 97: server.DB_NewPlayerArray (*DB_NewYearActivity)(nil), // 98: server.DB_NewYearActivity (*DB_NewYearActivityArray)(nil), // 99: server.DB_NewYearActivityArray - (*DB_NewYearRankReward)(nil), // 100: server.DB_NewYearRankReward - (*DB_NewYearRankRewardArray)(nil), // 101: server.DB_NewYearRankRewardArray - (*DB_PassShow)(nil), // 102: server.DB_PassShow - (*DB_PassShowArray)(nil), // 103: server.DB_PassShowArray - (*DB_PetSkill)(nil), // 104: server.DB_PetSkill - (*DB_PetSkillArray)(nil), // 105: server.DB_PetSkillArray - (*DB_PhoneLottery)(nil), // 106: server.DB_PhoneLottery - (*DB_PhoneLotteryArray)(nil), // 107: server.DB_PhoneLotteryArray - (*DB_PigBank_Diamond)(nil), // 108: server.DB_PigBank_Diamond - (*DB_PigBank_DiamondArray)(nil), // 109: server.DB_PigBank_DiamondArray - (*DB_Pigbank_Prop)(nil), // 110: server.DB_Pigbank_Prop - (*DB_Pigbank_PropArray)(nil), // 111: server.DB_Pigbank_PropArray - (*DB_PlayerExp)(nil), // 112: server.DB_PlayerExp - (*DB_PlayerExpArray)(nil), // 113: server.DB_PlayerExpArray - (*DB_PlayerType)(nil), // 114: server.DB_PlayerType - (*DB_PlayerTypeArray)(nil), // 115: server.DB_PlayerTypeArray - (*DB_PotOdd)(nil), // 116: server.DB_PotOdd - (*DB_PotOddArray)(nil), // 117: server.DB_PotOddArray - (*DB_PropExchange)(nil), // 118: server.DB_PropExchange - (*DB_PropExchangeArray)(nil), // 119: server.DB_PropExchangeArray - (*DB_RankCycle)(nil), // 120: server.DB_RankCycle - (*DB_RankCycleArray)(nil), // 121: server.DB_RankCycleArray - (*DB_RankLevel)(nil), // 122: server.DB_RankLevel - (*DB_RankLevelArray)(nil), // 123: server.DB_RankLevelArray - (*DB_RankReward)(nil), // 124: server.DB_RankReward - (*DB_RankRewardArray)(nil), // 125: server.DB_RankRewardArray - (*DB_Sensitive_Words)(nil), // 126: server.DB_Sensitive_Words - (*DB_Sensitive_WordsArray)(nil), // 127: server.DB_Sensitive_WordsArray - (*DB_Skin)(nil), // 128: server.DB_Skin - (*DB_SkinArray)(nil), // 129: server.DB_SkinArray - (*DB_SkinLevel)(nil), // 130: server.DB_SkinLevel - (*DB_SkinLevelArray)(nil), // 131: server.DB_SkinLevelArray - (*DB_SlotRateWeight)(nil), // 132: server.DB_SlotRateWeight - (*DB_SlotRateWeightArray)(nil), // 133: server.DB_SlotRateWeightArray - (*DB_SystemChance)(nil), // 134: server.DB_SystemChance - (*DB_SystemChanceArray)(nil), // 135: server.DB_SystemChanceArray - (*DB_Task)(nil), // 136: server.DB_Task - (*DB_TaskArray)(nil), // 137: server.DB_TaskArray - (*DB_ThirdPlatformGameMapping)(nil), // 138: server.DB_ThirdPlatformGameMapping - (*DB_ThirdPlatformGameMappingArray)(nil), // 139: server.DB_ThirdPlatformGameMappingArray - (*DB_Tips)(nil), // 140: server.DB_Tips - (*DB_TipsArray)(nil), // 141: server.DB_TipsArray - (*DB_VIP)(nil), // 142: server.DB_VIP - (*DB_VIPArray)(nil), // 143: server.DB_VIPArray - (*DB_VIPShow)(nil), // 144: server.DB_VIPShow - (*DB_VIPShowArray)(nil), // 145: server.DB_VIPShowArray - nil, // 146: server.DB_CollectBox.ItemIDEntry - nil, // 147: server.DB_GameItem.GainEntry - nil, // 148: server.DB_GameItem.CompoundEntry - nil, // 149: server.DB_GiftBox.ItemIDEntry - nil, // 150: server.DB_GiftCard.RewardsEntry - nil, // 151: server.DB_GiftCard.DayRewardsEntry - nil, // 152: server.DB_NewYearRankReward.AwardMapEntry - nil, // 153: server.DB_PetSkill.ItemConsumEntry - nil, // 154: server.DB_PigBank_Diamond.GoldExcEntry - nil, // 155: server.DB_PigBank_Diamond.DiamondExcEntry - nil, // 156: server.DB_PropExchange.CostEntry - nil, // 157: server.DB_PropExchange.GainEntry - nil, // 158: server.DB_PropExchange.CustomEntry - nil, // 159: server.DB_Skin.UnlockItemEntry - nil, // 160: server.DB_SkinLevel.UpItemEntry - nil, // 161: server.DB_Task.AwardEntry - nil, // 162: server.DB_VIP.Privilege7Entry - nil, // 163: server.DB_VIP.AwardEntry + (*DB_PassShow)(nil), // 100: server.DB_PassShow + (*DB_PassShowArray)(nil), // 101: server.DB_PassShowArray + (*DB_PetSkill)(nil), // 102: server.DB_PetSkill + (*DB_PetSkillArray)(nil), // 103: server.DB_PetSkillArray + (*DB_PhoneLottery)(nil), // 104: server.DB_PhoneLottery + (*DB_PhoneLotteryArray)(nil), // 105: server.DB_PhoneLotteryArray + (*DB_PigBank_Diamond)(nil), // 106: server.DB_PigBank_Diamond + (*DB_PigBank_DiamondArray)(nil), // 107: server.DB_PigBank_DiamondArray + (*DB_Pigbank_Prop)(nil), // 108: server.DB_Pigbank_Prop + (*DB_Pigbank_PropArray)(nil), // 109: server.DB_Pigbank_PropArray + (*DB_PlayerExp)(nil), // 110: server.DB_PlayerExp + (*DB_PlayerExpArray)(nil), // 111: server.DB_PlayerExpArray + (*DB_PlayerType)(nil), // 112: server.DB_PlayerType + (*DB_PlayerTypeArray)(nil), // 113: server.DB_PlayerTypeArray + (*DB_PotOdd)(nil), // 114: server.DB_PotOdd + (*DB_PotOddArray)(nil), // 115: server.DB_PotOddArray + (*DB_PropExchange)(nil), // 116: server.DB_PropExchange + (*DB_PropExchangeArray)(nil), // 117: server.DB_PropExchangeArray + (*DB_RankCycle)(nil), // 118: server.DB_RankCycle + (*DB_RankCycleArray)(nil), // 119: server.DB_RankCycleArray + (*DB_RankLevel)(nil), // 120: server.DB_RankLevel + (*DB_RankLevelArray)(nil), // 121: server.DB_RankLevelArray + (*DB_RankReward)(nil), // 122: server.DB_RankReward + (*DB_RankRewardArray)(nil), // 123: server.DB_RankRewardArray + (*DB_Sensitive_Words)(nil), // 124: server.DB_Sensitive_Words + (*DB_Sensitive_WordsArray)(nil), // 125: server.DB_Sensitive_WordsArray + (*DB_Skin)(nil), // 126: server.DB_Skin + (*DB_SkinArray)(nil), // 127: server.DB_SkinArray + (*DB_SkinLevel)(nil), // 128: server.DB_SkinLevel + (*DB_SkinLevelArray)(nil), // 129: server.DB_SkinLevelArray + (*DB_SlotRateWeight)(nil), // 130: server.DB_SlotRateWeight + (*DB_SlotRateWeightArray)(nil), // 131: server.DB_SlotRateWeightArray + (*DB_SystemChance)(nil), // 132: server.DB_SystemChance + (*DB_SystemChanceArray)(nil), // 133: server.DB_SystemChanceArray + (*DB_Task)(nil), // 134: server.DB_Task + (*DB_TaskArray)(nil), // 135: server.DB_TaskArray + (*DB_ThirdPlatformGameMapping)(nil), // 136: server.DB_ThirdPlatformGameMapping + (*DB_ThirdPlatformGameMappingArray)(nil), // 137: server.DB_ThirdPlatformGameMappingArray + (*DB_Tips)(nil), // 138: server.DB_Tips + (*DB_TipsArray)(nil), // 139: server.DB_TipsArray + (*DB_VIP)(nil), // 140: server.DB_VIP + (*DB_VIPArray)(nil), // 141: server.DB_VIPArray + (*DB_VIPShow)(nil), // 142: server.DB_VIPShow + (*DB_VIPShowArray)(nil), // 143: server.DB_VIPShowArray + nil, // 144: server.DB_CollectBox.ItemIDEntry + nil, // 145: server.DB_GameItem.GainEntry + nil, // 146: server.DB_GameItem.CompoundEntry + nil, // 147: server.DB_GiftBox.ItemIDEntry + nil, // 148: server.DB_GiftCard.RewardsEntry + nil, // 149: server.DB_GiftCard.DayRewardsEntry + nil, // 150: server.DB_PetSkill.ItemConsumEntry + nil, // 151: server.DB_PigBank_Diamond.GoldExcEntry + nil, // 152: server.DB_PigBank_Diamond.DiamondExcEntry + nil, // 153: server.DB_PropExchange.CostEntry + nil, // 154: server.DB_PropExchange.GainEntry + nil, // 155: server.DB_PropExchange.CustomEntry + nil, // 156: server.DB_Skin.UnlockItemEntry + nil, // 157: server.DB_SkinLevel.UpItemEntry + nil, // 158: server.DB_Task.AwardEntry + nil, // 159: server.DB_VIP.Privilege7Entry + nil, // 160: server.DB_VIP.AwardEntry } var file_protocol_server_pbdata_proto_depIdxs = []int32{ 0, // 0: server.DB_ActSignArray.Arr:type_name -> server.DB_ActSign @@ -12998,7 +12857,7 @@ var file_protocol_server_pbdata_proto_depIdxs = []int32{ 18, // 9: server.DB_ChessMatchRulesArray.Arr:type_name -> server.DB_ChessMatchRules 20, // 10: server.DB_ChessRankArray.Arr:type_name -> server.DB_ChessRank 22, // 11: server.DB_ClientVerArray.Arr:type_name -> server.DB_ClientVer - 146, // 12: server.DB_CollectBox.ItemID:type_name -> server.DB_CollectBox.ItemIDEntry + 144, // 12: server.DB_CollectBox.ItemID:type_name -> server.DB_CollectBox.ItemIDEntry 24, // 13: server.DB_CollectBoxArray.Arr:type_name -> server.DB_CollectBox 26, // 14: server.DB_CollectBoxGainArray.Arr:type_name -> server.DB_CollectBoxGain 28, // 15: server.DB_CrashSearchArray.Arr:type_name -> server.DB_CrashSearch @@ -13016,8 +12875,8 @@ var file_protocol_server_pbdata_proto_depIdxs = []int32{ 52, // 27: server.DB_GameBankruptcyArray.Arr:type_name -> server.DB_GameBankruptcy 54, // 28: server.DB_GameCoinPoolArray.Arr:type_name -> server.DB_GameCoinPool 56, // 29: server.DB_GameFreeArray.Arr:type_name -> server.DB_GameFree - 147, // 30: server.DB_GameItem.Gain:type_name -> server.DB_GameItem.GainEntry - 148, // 31: server.DB_GameItem.Compound:type_name -> server.DB_GameItem.CompoundEntry + 145, // 30: server.DB_GameItem.Gain:type_name -> server.DB_GameItem.GainEntry + 146, // 31: server.DB_GameItem.Compound:type_name -> server.DB_GameItem.CompoundEntry 58, // 32: server.DB_GameItemArray.Arr:type_name -> server.DB_GameItem 60, // 33: server.DB_GameMatchLevelArray.Arr:type_name -> server.DB_GameMatchLevel 62, // 34: server.DB_GameRuleArray.Arr:type_name -> server.DB_GameRule @@ -13026,10 +12885,10 @@ var file_protocol_server_pbdata_proto_depIdxs = []int32{ 68, // 37: server.DB_Game_IntroductionArray.Arr:type_name -> server.DB_Game_Introduction 70, // 38: server.DB_Game_PetArray.Arr:type_name -> server.DB_Game_Pet 72, // 39: server.DB_Game_RoleArray.Arr:type_name -> server.DB_Game_Role - 149, // 40: server.DB_GiftBox.ItemID:type_name -> server.DB_GiftBox.ItemIDEntry + 147, // 40: server.DB_GiftBox.ItemID:type_name -> server.DB_GiftBox.ItemIDEntry 74, // 41: server.DB_GiftBoxArray.Arr:type_name -> server.DB_GiftBox - 150, // 42: server.DB_GiftCard.Rewards:type_name -> server.DB_GiftCard.RewardsEntry - 151, // 43: server.DB_GiftCard.DayRewards:type_name -> server.DB_GiftCard.DayRewardsEntry + 148, // 42: server.DB_GiftCard.Rewards:type_name -> server.DB_GiftCard.RewardsEntry + 149, // 43: server.DB_GiftCard.DayRewards:type_name -> server.DB_GiftCard.DayRewardsEntry 76, // 44: server.DB_GiftCardArray.Arr:type_name -> server.DB_GiftCard 78, // 45: server.DB_IceAgeElementRateArray.Arr:type_name -> server.DB_IceAgeElementRate 80, // 46: server.DB_Legend_OddsArray.Arr:type_name -> server.DB_Legend_Odds @@ -13042,46 +12901,44 @@ var file_protocol_server_pbdata_proto_depIdxs = []int32{ 94, // 53: server.DB_NameGirlArray.Arr:type_name -> server.DB_NameGirl 96, // 54: server.DB_NewPlayerArray.Arr:type_name -> server.DB_NewPlayer 98, // 55: server.DB_NewYearActivityArray.Arr:type_name -> server.DB_NewYearActivity - 152, // 56: server.DB_NewYearRankReward.AwardMap:type_name -> server.DB_NewYearRankReward.AwardMapEntry - 100, // 57: server.DB_NewYearRankRewardArray.Arr:type_name -> server.DB_NewYearRankReward - 102, // 58: server.DB_PassShowArray.Arr:type_name -> server.DB_PassShow - 153, // 59: server.DB_PetSkill.ItemConsum:type_name -> server.DB_PetSkill.ItemConsumEntry - 104, // 60: server.DB_PetSkillArray.Arr:type_name -> server.DB_PetSkill - 106, // 61: server.DB_PhoneLotteryArray.Arr:type_name -> server.DB_PhoneLottery - 154, // 62: server.DB_PigBank_Diamond.GoldExc:type_name -> server.DB_PigBank_Diamond.GoldExcEntry - 155, // 63: server.DB_PigBank_Diamond.DiamondExc:type_name -> server.DB_PigBank_Diamond.DiamondExcEntry - 108, // 64: server.DB_PigBank_DiamondArray.Arr:type_name -> server.DB_PigBank_Diamond - 110, // 65: server.DB_Pigbank_PropArray.Arr:type_name -> server.DB_Pigbank_Prop - 112, // 66: server.DB_PlayerExpArray.Arr:type_name -> server.DB_PlayerExp - 114, // 67: server.DB_PlayerTypeArray.Arr:type_name -> server.DB_PlayerType - 116, // 68: server.DB_PotOddArray.Arr:type_name -> server.DB_PotOdd - 156, // 69: server.DB_PropExchange.Cost:type_name -> server.DB_PropExchange.CostEntry - 157, // 70: server.DB_PropExchange.Gain:type_name -> server.DB_PropExchange.GainEntry - 158, // 71: server.DB_PropExchange.Custom:type_name -> server.DB_PropExchange.CustomEntry - 118, // 72: server.DB_PropExchangeArray.Arr:type_name -> server.DB_PropExchange - 120, // 73: server.DB_RankCycleArray.Arr:type_name -> server.DB_RankCycle - 122, // 74: server.DB_RankLevelArray.Arr:type_name -> server.DB_RankLevel - 124, // 75: server.DB_RankRewardArray.Arr:type_name -> server.DB_RankReward - 126, // 76: server.DB_Sensitive_WordsArray.Arr:type_name -> server.DB_Sensitive_Words - 159, // 77: server.DB_Skin.UnlockItem:type_name -> server.DB_Skin.UnlockItemEntry - 128, // 78: server.DB_SkinArray.Arr:type_name -> server.DB_Skin - 160, // 79: server.DB_SkinLevel.UpItem:type_name -> server.DB_SkinLevel.UpItemEntry - 130, // 80: server.DB_SkinLevelArray.Arr:type_name -> server.DB_SkinLevel - 132, // 81: server.DB_SlotRateWeightArray.Arr:type_name -> server.DB_SlotRateWeight - 134, // 82: server.DB_SystemChanceArray.Arr:type_name -> server.DB_SystemChance - 161, // 83: server.DB_Task.Award:type_name -> server.DB_Task.AwardEntry - 136, // 84: server.DB_TaskArray.Arr:type_name -> server.DB_Task - 138, // 85: server.DB_ThirdPlatformGameMappingArray.Arr:type_name -> server.DB_ThirdPlatformGameMapping - 140, // 86: server.DB_TipsArray.Arr:type_name -> server.DB_Tips - 162, // 87: server.DB_VIP.Privilege7:type_name -> server.DB_VIP.Privilege7Entry - 163, // 88: server.DB_VIP.Award:type_name -> server.DB_VIP.AwardEntry - 142, // 89: server.DB_VIPArray.Arr:type_name -> server.DB_VIP - 144, // 90: server.DB_VIPShowArray.Arr:type_name -> server.DB_VIPShow - 91, // [91:91] is the sub-list for method output_type - 91, // [91:91] is the sub-list for method input_type - 91, // [91:91] is the sub-list for extension type_name - 91, // [91:91] is the sub-list for extension extendee - 0, // [0:91] is the sub-list for field type_name + 100, // 56: server.DB_PassShowArray.Arr:type_name -> server.DB_PassShow + 150, // 57: server.DB_PetSkill.ItemConsum:type_name -> server.DB_PetSkill.ItemConsumEntry + 102, // 58: server.DB_PetSkillArray.Arr:type_name -> server.DB_PetSkill + 104, // 59: server.DB_PhoneLotteryArray.Arr:type_name -> server.DB_PhoneLottery + 151, // 60: server.DB_PigBank_Diamond.GoldExc:type_name -> server.DB_PigBank_Diamond.GoldExcEntry + 152, // 61: server.DB_PigBank_Diamond.DiamondExc:type_name -> server.DB_PigBank_Diamond.DiamondExcEntry + 106, // 62: server.DB_PigBank_DiamondArray.Arr:type_name -> server.DB_PigBank_Diamond + 108, // 63: server.DB_Pigbank_PropArray.Arr:type_name -> server.DB_Pigbank_Prop + 110, // 64: server.DB_PlayerExpArray.Arr:type_name -> server.DB_PlayerExp + 112, // 65: server.DB_PlayerTypeArray.Arr:type_name -> server.DB_PlayerType + 114, // 66: server.DB_PotOddArray.Arr:type_name -> server.DB_PotOdd + 153, // 67: server.DB_PropExchange.Cost:type_name -> server.DB_PropExchange.CostEntry + 154, // 68: server.DB_PropExchange.Gain:type_name -> server.DB_PropExchange.GainEntry + 155, // 69: server.DB_PropExchange.Custom:type_name -> server.DB_PropExchange.CustomEntry + 116, // 70: server.DB_PropExchangeArray.Arr:type_name -> server.DB_PropExchange + 118, // 71: server.DB_RankCycleArray.Arr:type_name -> server.DB_RankCycle + 120, // 72: server.DB_RankLevelArray.Arr:type_name -> server.DB_RankLevel + 122, // 73: server.DB_RankRewardArray.Arr:type_name -> server.DB_RankReward + 124, // 74: server.DB_Sensitive_WordsArray.Arr:type_name -> server.DB_Sensitive_Words + 156, // 75: server.DB_Skin.UnlockItem:type_name -> server.DB_Skin.UnlockItemEntry + 126, // 76: server.DB_SkinArray.Arr:type_name -> server.DB_Skin + 157, // 77: server.DB_SkinLevel.UpItem:type_name -> server.DB_SkinLevel.UpItemEntry + 128, // 78: server.DB_SkinLevelArray.Arr:type_name -> server.DB_SkinLevel + 130, // 79: server.DB_SlotRateWeightArray.Arr:type_name -> server.DB_SlotRateWeight + 132, // 80: server.DB_SystemChanceArray.Arr:type_name -> server.DB_SystemChance + 158, // 81: server.DB_Task.Award:type_name -> server.DB_Task.AwardEntry + 134, // 82: server.DB_TaskArray.Arr:type_name -> server.DB_Task + 136, // 83: server.DB_ThirdPlatformGameMappingArray.Arr:type_name -> server.DB_ThirdPlatformGameMapping + 138, // 84: server.DB_TipsArray.Arr:type_name -> server.DB_Tips + 159, // 85: server.DB_VIP.Privilege7:type_name -> server.DB_VIP.Privilege7Entry + 160, // 86: server.DB_VIP.Award:type_name -> server.DB_VIP.AwardEntry + 140, // 87: server.DB_VIPArray.Arr:type_name -> server.DB_VIP + 142, // 88: server.DB_VIPShowArray.Arr:type_name -> server.DB_VIPShow + 89, // [89:89] is the sub-list for method output_type + 89, // [89:89] is the sub-list for method input_type + 89, // [89:89] is the sub-list for extension type_name + 89, // [89:89] is the sub-list for extension extendee + 0, // [0:89] is the sub-list for field type_name } func init() { file_protocol_server_pbdata_proto_init() } @@ -14291,30 +14148,6 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_NewYearRankReward); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_protocol_server_pbdata_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_NewYearRankRewardArray); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_protocol_server_pbdata_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PassShow); i { case 0: return &v.state @@ -14326,7 +14159,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PassShowArray); i { case 0: return &v.state @@ -14338,7 +14171,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PetSkill); i { case 0: return &v.state @@ -14350,7 +14183,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PetSkillArray); i { case 0: return &v.state @@ -14362,7 +14195,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PhoneLottery); i { case 0: return &v.state @@ -14374,7 +14207,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PhoneLotteryArray); i { case 0: return &v.state @@ -14386,7 +14219,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PigBank_Diamond); i { case 0: return &v.state @@ -14398,7 +14231,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PigBank_DiamondArray); i { case 0: return &v.state @@ -14410,7 +14243,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_Pigbank_Prop); i { case 0: return &v.state @@ -14422,7 +14255,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_Pigbank_PropArray); i { case 0: return &v.state @@ -14434,7 +14267,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PlayerExp); i { case 0: return &v.state @@ -14446,7 +14279,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PlayerExpArray); i { case 0: return &v.state @@ -14458,7 +14291,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PlayerType); i { case 0: return &v.state @@ -14470,7 +14303,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PlayerTypeArray); i { case 0: return &v.state @@ -14482,7 +14315,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PotOdd); i { case 0: return &v.state @@ -14494,7 +14327,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PotOddArray); i { case 0: return &v.state @@ -14506,7 +14339,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PropExchange); i { case 0: return &v.state @@ -14518,7 +14351,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PropExchangeArray); i { case 0: return &v.state @@ -14530,7 +14363,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_RankCycle); i { case 0: return &v.state @@ -14542,7 +14375,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_RankCycleArray); i { case 0: return &v.state @@ -14554,7 +14387,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_RankLevel); i { case 0: return &v.state @@ -14566,7 +14399,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_RankLevelArray); i { case 0: return &v.state @@ -14578,7 +14411,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_RankReward); i { case 0: return &v.state @@ -14590,7 +14423,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_RankRewardArray); i { case 0: return &v.state @@ -14602,7 +14435,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_Sensitive_Words); i { case 0: return &v.state @@ -14614,7 +14447,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_Sensitive_WordsArray); i { case 0: return &v.state @@ -14626,7 +14459,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_Skin); i { case 0: return &v.state @@ -14638,7 +14471,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_SkinArray); i { case 0: return &v.state @@ -14650,7 +14483,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_SkinLevel); i { case 0: return &v.state @@ -14662,7 +14495,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_SkinLevelArray); i { case 0: return &v.state @@ -14674,7 +14507,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_SlotRateWeight); i { case 0: return &v.state @@ -14686,7 +14519,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_SlotRateWeightArray); i { case 0: return &v.state @@ -14698,7 +14531,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_SystemChance); i { case 0: return &v.state @@ -14710,7 +14543,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_SystemChanceArray); i { case 0: return &v.state @@ -14722,7 +14555,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_Task); i { case 0: return &v.state @@ -14734,7 +14567,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_TaskArray); i { case 0: return &v.state @@ -14746,7 +14579,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_ThirdPlatformGameMapping); i { case 0: return &v.state @@ -14758,7 +14591,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_ThirdPlatformGameMappingArray); i { case 0: return &v.state @@ -14770,7 +14603,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_Tips); i { case 0: return &v.state @@ -14782,7 +14615,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_TipsArray); i { case 0: return &v.state @@ -14794,7 +14627,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_VIP); i { case 0: return &v.state @@ -14806,7 +14639,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_VIPArray); i { case 0: return &v.state @@ -14818,7 +14651,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_VIPShow); i { case 0: return &v.state @@ -14830,7 +14663,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_VIPShowArray); i { case 0: return &v.state @@ -14849,7 +14682,7 @@ func file_protocol_server_pbdata_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_protocol_server_pbdata_proto_rawDesc, NumEnums: 0, - NumMessages: 164, + NumMessages: 161, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/server/pbdata.proto b/protocol/server/pbdata.proto index 16184b7..603152e 100644 --- a/protocol/server/pbdata.proto +++ b/protocol/server/pbdata.proto @@ -1279,22 +1279,6 @@ message DB_NewYearActivityArray { repeated DB_NewYearActivity Arr = 1; } -message DB_NewYearRankReward { - - int32 Id = 1; - - int32 RankType = 2; - - int32 RankLevelId = 3; - - map AwardMap = 4; - -} - -message DB_NewYearRankRewardArray { - repeated DB_NewYearRankReward Arr = 1; -} - message DB_PassShow { int32 Id = 1; diff --git a/protocol/tienlen/tienlen.pb.go b/protocol/tienlen/tienlen.pb.go index 89fc586..cc833fc 100644 --- a/protocol/tienlen/tienlen.pb.go +++ b/protocol/tienlen/tienlen.pb.go @@ -662,6 +662,8 @@ type SCTienLenRoomInfo struct { CostType int32 `protobuf:"varint,37,opt,name=CostType,proto3" json:"CostType,omitempty"` //房卡支付方式 1AA 2房主 Voice int32 `protobuf:"varint,38,opt,name=Voice,proto3" json:"Voice,omitempty"` //是否开启语音 1开启 Password string `protobuf:"bytes,39,opt,name=Password,proto3" json:"Password,omitempty"` //房间密码 + // 房卡场配置 + IsSmallCard bool `protobuf:"varint,40,opt,name=IsSmallCard,proto3" json:"IsSmallCard,omitempty"` //必出最小牌 } func (x *SCTienLenRoomInfo) Reset() { @@ -948,6 +950,13 @@ func (x *SCTienLenRoomInfo) GetPassword() string { return "" } +func (x *SCTienLenRoomInfo) GetIsSmallCard() bool { + if x != nil { + return x.IsSmallCard + } + return false +} + //房间状态更新 type SCTienLenRoomState struct { state protoimpl.MessageState @@ -2140,7 +2149,8 @@ type SCTienLenFirstOpPos struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Pos int32 `protobuf:"varint,1,opt,name=Pos,proto3" json:"Pos,omitempty"` //座位位置 + Pos int32 `protobuf:"varint,1,opt,name=Pos,proto3" json:"Pos,omitempty"` //座位位置 + IsSmallCard bool `protobuf:"varint,2,opt,name=IsSmallCard,proto3" json:"IsSmallCard,omitempty"` //必出最小牌 } func (x *SCTienLenFirstOpPos) Reset() { @@ -2182,6 +2192,13 @@ func (x *SCTienLenFirstOpPos) GetPos() int32 { return 0 } +func (x *SCTienLenFirstOpPos) GetIsSmallCard() bool { + if x != nil { + return x.IsSmallCard + } + return false +} + //PACKET_SCTienLenThinkLongCnt type SCTienLenPlayerThinkLongCnt struct { state protoimpl.MessageState @@ -2608,7 +2625,7 @@ var file_protocol_tienlen_tienlen_proto_rawDesc = []byte{ 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x23, 0x0a, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x44, 0x65, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x22, 0xfd, 0x08, 0x0a, 0x11, 0x53, 0x43, + 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x22, 0x9f, 0x09, 0x0a, 0x11, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x72, 0x65, 0x61, 0x74, @@ -2680,262 +2697,267 @@ var file_protocol_tienlen_tienlen_proto_rawDesc = []byte{ 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x27, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x42, 0x0a, 0x12, 0x53, 0x43, 0x54, - 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x45, 0x0a, - 0x11, 0x43, 0x53, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x4f, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x70, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x4f, 0x70, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x22, 0x8e, 0x01, 0x0a, 0x11, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, - 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x70, - 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4f, 0x70, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x03, 0x52, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x12, 0x0a, 0x04, - 0x53, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, - 0x12, 0x33, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x4f, 0x70, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, - 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x46, 0x0a, 0x14, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, - 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x2e, 0x0a, - 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x69, - 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x28, 0x0a, - 0x14, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x22, 0x6f, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x49, 0x74, - 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xb3, 0x02, 0x0a, 0x17, 0x54, 0x69, 0x65, - 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, - 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x18, - 0x0a, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, - 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, - 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x57, 0x69, - 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0c, 0x57, 0x69, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, - 0x41, 0x64, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, - 0x41, 0x64, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x2c, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x49, - 0x74, 0x65, 0x6d, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x69, 0x65, - 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x08, 0x41, 0x64, - 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x22, 0x4d, - 0x0a, 0x13, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x42, - 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x54, + 0x08, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x53, + 0x6d, 0x61, 0x6c, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x18, 0x28, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, + 0x49, 0x73, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x22, 0x42, 0x0a, 0x12, 0x53, + 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, + 0x45, 0x0a, 0x11, 0x43, 0x53, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x4f, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x4f, + 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x22, 0x8e, 0x01, 0x0a, 0x11, 0x53, 0x43, 0x54, 0x69, 0x65, + 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x12, 0x16, 0x0a, 0x06, + 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4f, 0x70, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x12, + 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, + 0x49, 0x64, 0x12, 0x33, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, + 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, + 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x46, 0x0a, 0x14, 0x53, 0x43, 0x54, 0x69, 0x65, + 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x2e, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, + 0x28, 0x0a, 0x14, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x22, 0x6f, 0x0a, 0x07, 0x41, 0x64, 0x64, + 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xb3, 0x02, 0x0a, 0x17, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, - 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x52, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x22, 0xc4, 0x01, - 0x0a, 0x18, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x53, 0x6d, 0x61, 0x6c, 0x6c, - 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x57, 0x69, - 0x6e, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x57, 0x69, 0x6e, 0x50, - 0x6f, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x43, 0x6f, - 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x07, 0x4c, 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x12, 0x20, 0x0a, 0x0b, - 0x4c, 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0b, 0x4c, 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x18, - 0x0a, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x73, 0x65, - 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x4c, 0x6f, 0x73, 0x65, - 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x5b, 0x0a, 0x0d, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, - 0x6e, 0x43, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x49, - 0x73, 0x4f, 0x75, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0b, 0x49, 0x73, 0x4f, 0x75, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, - 0x64, 0x22, 0x88, 0x02, 0x0a, 0x11, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, - 0x61, 0x72, 0x64, 0x54, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x47, 0x72, 0x61, 0x64, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, - 0x6e, 0x2e, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x54, - 0x65, 0x73, 0x74, 0x2e, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x06, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, - 0x6f, 0x74, 0x61, 0x6c, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x54, 0x6f, - 0x74, 0x61, 0x6c, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x6f, 0x75, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x6f, 0x75, - 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x52, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x01, 0x52, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, - 0x61, 0x1a, 0x39, 0x0a, 0x0b, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x7f, 0x0a, 0x11, - 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x75, 0x72, 0x4f, 0x70, 0x50, 0x6f, + 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, + 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, + 0x12, 0x18, 0x0a, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, + 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x47, 0x61, + 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, + 0x57, 0x69, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0c, 0x57, 0x69, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x41, 0x64, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x08, 0x41, 0x64, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x2c, 0x0a, 0x08, 0x41, 0x64, + 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, + 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x08, + 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x69, 0x61, 0x6e, + 0x48, 0x75, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, + 0x22, 0x4d, 0x0a, 0x13, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x47, 0x61, 0x6d, + 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, + 0x2e, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x61, + 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x52, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x22, + 0xc4, 0x01, 0x0a, 0x18, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x53, 0x6d, 0x61, + 0x6c, 0x6c, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x57, 0x69, + 0x6e, 0x50, 0x6f, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x43, 0x6f, + 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, + 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4c, 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x12, 0x20, + 0x0a, 0x0b, 0x4c, 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0b, 0x4c, 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, + 0x12, 0x18, 0x0a, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, + 0x73, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x4c, 0x6f, + 0x73, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x5b, 0x0a, 0x0d, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, + 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x20, 0x0a, + 0x0b, 0x49, 0x73, 0x4f, 0x75, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0b, 0x49, 0x73, 0x4f, 0x75, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, + 0x6e, 0x49, 0x64, 0x22, 0x88, 0x02, 0x0a, 0x11, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, + 0x6e, 0x43, 0x61, 0x72, 0x64, 0x54, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x47, 0x72, 0x61, + 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x74, 0x69, 0x65, 0x6e, + 0x6c, 0x65, 0x6e, 0x2e, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, + 0x64, 0x54, 0x65, 0x73, 0x74, 0x2e, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x06, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, + 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, + 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, + 0x6f, 0x75, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x52, 0x61, 0x74, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, + 0x61, 0x74, 0x61, 0x1a, 0x39, 0x0a, 0x0b, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x7f, + 0x0a, 0x11, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x75, 0x72, 0x4f, 0x70, + 0x50, 0x6f, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x4e, 0x65, 0x77, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x49, 0x73, 0x4e, 0x65, 0x77, 0x12, 0x14, 0x0a, 0x05, 0x43, + 0x61, 0x72, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, + 0x73, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x78, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x45, 0x78, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x66, + 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x22, + 0x3b, 0x0a, 0x19, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, + 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x22, 0x3e, 0x0a, 0x1a, + 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, + 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x75, + 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0b, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x22, 0xcb, 0x07, 0x0a, + 0x0f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x41, 0x49, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x19, 0x0a, 0x08, 0x42, 0x6f, 0x6d, 0x62, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x42, 0x6f, 0x6d, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x2f, 0x0a, 0x14, 0x43, + 0x61, 0x72, 0x64, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x73, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x43, 0x61, 0x72, 0x64, 0x50, + 0x6c, 0x61, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0b, + 0x4c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x30, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x4c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x76, 0x65, 0x30, 0x12, 0x1e, 0x0a, 0x0b, + 0x4c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x4c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x76, 0x65, 0x31, 0x12, 0x1e, 0x0a, 0x0b, + 0x4c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x4c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x76, 0x65, 0x32, 0x12, 0x1e, 0x0a, 0x0b, + 0x4c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x33, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x4c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x76, 0x65, 0x33, 0x12, 0x27, 0x0a, 0x10, + 0x4e, 0x75, 0x6d, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x30, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x4e, 0x75, 0x6d, 0x43, 0x61, 0x72, 0x64, 0x73, + 0x4c, 0x65, 0x66, 0x74, 0x30, 0x12, 0x27, 0x0a, 0x10, 0x4e, 0x75, 0x6d, 0x5f, 0x63, 0x61, 0x72, + 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x31, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0d, 0x4e, 0x75, 0x6d, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x31, 0x12, 0x27, + 0x0a, 0x10, 0x4e, 0x75, 0x6d, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, + 0x5f, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x4e, 0x75, 0x6d, 0x43, 0x61, 0x72, + 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x32, 0x12, 0x27, 0x0a, 0x10, 0x4e, 0x75, 0x6d, 0x5f, 0x63, + 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0d, 0x4e, 0x75, 0x6d, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x33, + 0x12, 0x28, 0x0a, 0x10, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x5f, 0x63, + 0x61, 0x72, 0x64, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x4f, 0x74, 0x68, 0x65, + 0x72, 0x48, 0x61, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x30, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x30, + 0x12, 0x24, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, + 0x5f, 0x31, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, + 0x43, 0x61, 0x72, 0x64, 0x73, 0x31, 0x12, 0x24, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, + 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x32, 0x12, 0x24, 0x0a, 0x0e, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x33, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, + 0x73, 0x33, 0x12, 0x2a, 0x0a, 0x11, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x6e, + 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x48, 0x61, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x27, + 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x49, 0x73, 0x54, 0x69, 0x65, + 0x6e, 0x4c, 0x65, 0x6e, 0x59, 0x75, 0x6c, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, + 0x49, 0x73, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x59, 0x75, 0x6c, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x49, 0x73, 0x46, 0x69, 0x72, 0x73, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x18, 0x13, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0b, 0x49, 0x73, 0x46, 0x69, 0x72, 0x73, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x12, + 0x20, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x30, 0x18, + 0x14, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, + 0x30, 0x12, 0x20, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, + 0x31, 0x18, 0x15, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, + 0x66, 0x74, 0x31, 0x12, 0x20, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, + 0x74, 0x5f, 0x32, 0x18, 0x16, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x73, + 0x4c, 0x65, 0x66, 0x74, 0x32, 0x12, 0x20, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, + 0x65, 0x66, 0x74, 0x5f, 0x33, 0x18, 0x17, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, + 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x33, 0x12, 0x19, 0x0a, 0x08, 0x4c, 0x61, 0x73, 0x74, 0x5f, + 0x70, 0x6f, 0x73, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4c, 0x61, 0x73, 0x74, 0x50, + 0x6f, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x45, 0x6e, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x05, 0x49, 0x73, 0x45, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x69, 0x6e, 0x53, + 0x6e, 0x69, 0x64, 0x73, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x57, 0x69, 0x6e, 0x53, + 0x6e, 0x69, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x18, 0x1b, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x05, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x22, 0x49, 0x0a, 0x13, 0x53, 0x43, + 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x4f, 0x70, 0x50, 0x6f, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, - 0x50, 0x6f, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x4e, 0x65, 0x77, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x05, 0x49, 0x73, 0x4e, 0x65, 0x77, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, - 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, - 0x18, 0x0a, 0x07, 0x45, 0x78, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x45, 0x78, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, - 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x22, 0x3b, 0x0a, - 0x19, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, - 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, - 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x22, 0x3e, 0x0a, 0x1a, 0x53, 0x43, - 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x75, 0x64, - 0x69, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x75, 0x64, 0x69, - 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x41, - 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x22, 0xcb, 0x07, 0x0a, 0x0f, 0x53, - 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x41, 0x49, 0x44, 0x61, 0x74, 0x61, 0x12, 0x19, - 0x0a, 0x08, 0x42, 0x6f, 0x6d, 0x62, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x42, 0x6f, 0x6d, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x2f, 0x0a, 0x14, 0x43, 0x61, 0x72, - 0x64, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, - 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x43, 0x61, 0x72, 0x64, 0x50, 0x6c, 0x61, - 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0b, 0x4c, 0x61, - 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x30, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x4c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x76, 0x65, 0x30, 0x12, 0x1e, 0x0a, 0x0b, 0x4c, 0x61, - 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x4c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x76, 0x65, 0x31, 0x12, 0x1e, 0x0a, 0x0b, 0x4c, 0x61, - 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x4c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x76, 0x65, 0x32, 0x12, 0x1e, 0x0a, 0x0b, 0x4c, 0x61, - 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x33, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x4c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x76, 0x65, 0x33, 0x12, 0x27, 0x0a, 0x10, 0x4e, 0x75, - 0x6d, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x30, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x4e, 0x75, 0x6d, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, - 0x66, 0x74, 0x30, 0x12, 0x27, 0x0a, 0x10, 0x4e, 0x75, 0x6d, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, - 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x31, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x4e, - 0x75, 0x6d, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x31, 0x12, 0x27, 0x0a, 0x10, - 0x4e, 0x75, 0x6d, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x32, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x4e, 0x75, 0x6d, 0x43, 0x61, 0x72, 0x64, 0x73, - 0x4c, 0x65, 0x66, 0x74, 0x32, 0x12, 0x27, 0x0a, 0x10, 0x4e, 0x75, 0x6d, 0x5f, 0x63, 0x61, 0x72, - 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0d, 0x4e, 0x75, 0x6d, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x33, 0x12, 0x28, - 0x0a, 0x10, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x61, 0x72, - 0x64, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x48, - 0x61, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x30, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x30, 0x12, 0x24, - 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x31, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x43, 0x61, - 0x72, 0x64, 0x73, 0x31, 0x12, 0x24, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x5f, 0x63, - 0x61, 0x72, 0x64, 0x73, 0x5f, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x32, 0x12, 0x24, 0x0a, 0x0e, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x33, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x33, - 0x12, 0x2a, 0x0a, 0x11, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x5f, - 0x63, 0x61, 0x72, 0x64, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x48, 0x61, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x49, 0x73, 0x54, 0x69, 0x65, 0x6e, 0x4c, - 0x65, 0x6e, 0x59, 0x75, 0x6c, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x49, 0x73, - 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x59, 0x75, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x49, - 0x73, 0x46, 0x69, 0x72, 0x73, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0b, 0x49, 0x73, 0x46, 0x69, 0x72, 0x73, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x12, 0x20, 0x0a, - 0x0c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x30, 0x18, 0x14, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x30, 0x12, - 0x20, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x31, 0x18, - 0x15, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, - 0x31, 0x12, 0x20, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, - 0x32, 0x18, 0x16, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, - 0x66, 0x74, 0x32, 0x12, 0x20, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, - 0x74, 0x5f, 0x33, 0x18, 0x17, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x73, - 0x4c, 0x65, 0x66, 0x74, 0x33, 0x12, 0x19, 0x0a, 0x08, 0x4c, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x6f, - 0x73, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4c, 0x61, 0x73, 0x74, 0x50, 0x6f, 0x73, - 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x45, 0x6e, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x05, 0x49, 0x73, 0x45, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x6e, 0x69, - 0x64, 0x73, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x6e, 0x69, - 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x18, 0x1b, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x05, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x22, 0x27, 0x0a, 0x13, 0x53, 0x43, 0x54, 0x69, - 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x4f, 0x70, 0x50, 0x6f, 0x73, 0x12, - 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, - 0x73, 0x22, 0x41, 0x0a, 0x1b, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, 0x74, - 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, - 0x67, 0x43, 0x6e, 0x74, 0x22, 0x68, 0x0a, 0x20, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, - 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x69, 0x72, 0x73, 0x74, 0x47, 0x69, 0x76, 0x65, - 0x49, 0x74, 0x65, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, - 0x12, 0x2c, 0x0a, 0x11, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x63, 0x45, 0x78, 0x70, 0x69, 0x72, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x49, 0x74, 0x65, - 0x6d, 0x52, 0x65, 0x63, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x5e, - 0x0a, 0x14, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x65, 0x74, 0x53, 0x6b, - 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x20, 0x0a, 0x0b, - 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0b, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x22, 0x2c, - 0x0a, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, - 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0xab, 0x01, 0x0a, - 0x16, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x42, 0x69, 0x6c, - 0x6c, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x52, - 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, - 0x0a, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x12, 0x27, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x6f, - 0x74, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, - 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x4b, 0x0a, 0x14, 0x53, 0x43, - 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x42, 0x69, 0x6c, 0x6c, - 0x65, 0x64, 0x12, 0x33, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x54, 0x69, 0x65, 0x6e, 0x4c, - 0x65, 0x6e, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x2a, 0x3e, 0x0a, 0x0c, 0x4f, 0x70, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x52, 0x43, 0x5f, - 0x53, 0x75, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, - 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4f, 0x50, 0x52, 0x43, - 0x5f, 0x48, 0x69, 0x6e, 0x74, 0x10, 0x02, 0x2a, 0xa2, 0x05, 0x0a, 0x0f, 0x54, 0x69, 0x65, 0x6e, - 0x4c, 0x65, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x12, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x5a, 0x45, 0x52, - 0x4f, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, - 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x10, - 0xfa, 0x29, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, - 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, - 0xfb, 0x29, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x54, - 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x10, 0xfc, - 0x29, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, - 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x10, 0xfd, 0x29, - 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, - 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x10, - 0xfe, 0x29, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, - 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, - 0x65, 0x10, 0xff, 0x29, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x10, 0x80, 0x2a, 0x12, - 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, - 0x4c, 0x65, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x10, 0x81, 0x2a, - 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, - 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x75, 0x72, 0x4f, 0x70, 0x50, 0x6f, 0x73, 0x10, 0x82, 0x2a, 0x12, - 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, - 0x4c, 0x65, 0x6e, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, - 0x65, 0x64, 0x10, 0x83, 0x2a, 0x12, 0x25, 0x0a, 0x20, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, - 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x10, 0x84, 0x2a, 0x12, 0x26, 0x0a, 0x21, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, - 0x6d, 0x10, 0x85, 0x2a, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x41, 0x49, 0x10, 0x86, 0x2a, 0x12, 0x1f, 0x0a, - 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, - 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x4f, 0x70, 0x50, 0x6f, 0x73, 0x10, 0x87, 0x2a, 0x12, 0x1d, - 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, - 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x54, 0x65, 0x73, 0x74, 0x10, 0x88, 0x2a, 0x12, 0x21, 0x0a, - 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, - 0x6e, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, 0x74, 0x10, 0x89, 0x2a, + 0x50, 0x6f, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x43, 0x61, + 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x49, 0x73, 0x53, 0x6d, 0x61, 0x6c, + 0x6c, 0x43, 0x61, 0x72, 0x64, 0x22, 0x41, 0x0a, 0x1b, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, + 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, + 0x67, 0x43, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, + 0x67, 0x43, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x54, 0x68, 0x69, 0x6e, + 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, 0x74, 0x22, 0x68, 0x0a, 0x20, 0x53, 0x43, 0x54, 0x69, + 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x69, 0x72, 0x73, 0x74, + 0x47, 0x69, 0x76, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, + 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, + 0x65, 0x6d, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x63, 0x45, + 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x11, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x63, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x22, 0x5e, 0x0a, 0x14, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, + 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x10, + 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, + 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, + 0x65, 0x73, 0x22, 0x2c, 0x0a, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, + 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x4e, 0x75, 0x6d, + 0x22, 0xab, 0x01, 0x0a, 0x16, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x79, 0x63, 0x6c, + 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x53, + 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, + 0x1e, 0x0a, 0x0a, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x03, 0x52, 0x0a, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x27, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x49, + 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1e, + 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x4b, + 0x0a, 0x14, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x79, 0x63, 0x6c, 0x65, + 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x33, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x54, + 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, + 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x2a, 0x3e, 0x0a, 0x0c, 0x4f, + 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, + 0x50, 0x52, 0x43, 0x5f, 0x53, 0x75, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, + 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, + 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x48, 0x69, 0x6e, 0x74, 0x10, 0x02, 0x2a, 0xa2, 0x05, 0x0a, 0x0f, + 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, + 0x16, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, + 0x6e, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x49, + 0x6e, 0x66, 0x6f, 0x10, 0xfa, 0x29, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x10, 0xfb, 0x29, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x43, 0x53, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x4f, 0x70, 0x10, 0xfc, 0x29, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, + 0x70, 0x10, 0xfd, 0x29, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, + 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, + 0x74, 0x65, 0x72, 0x10, 0xfe, 0x29, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x4c, 0x65, 0x61, 0x76, 0x65, 0x10, 0xff, 0x29, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, + 0x10, 0x80, 0x2a, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, + 0x64, 0x10, 0x81, 0x2a, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, + 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x75, 0x72, 0x4f, 0x70, 0x50, 0x6f, 0x73, + 0x10, 0x82, 0x2a, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x47, 0x61, 0x6d, 0x65, + 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x10, 0x83, 0x2a, 0x12, 0x25, 0x0a, 0x20, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x10, 0x84, 0x2a, 0x12, 0x26, 0x0a, 0x21, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, - 0x6e, 0x4c, 0x65, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x47, 0x69, 0x76, 0x65, 0x49, 0x74, 0x65, - 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x10, 0x8a, 0x2a, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x65, 0x74, 0x53, - 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x10, 0x8b, 0x2a, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x79, - 0x63, 0x6c, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x10, 0x8c, 0x2a, 0x42, 0x27, 0x5a, 0x25, - 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x74, 0x69, - 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x4c, 0x65, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, + 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x10, 0x85, 0x2a, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x41, 0x49, 0x10, 0x86, + 0x2a, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, + 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x4f, 0x70, 0x50, 0x6f, 0x73, 0x10, + 0x87, 0x2a, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, + 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x54, 0x65, 0x73, 0x74, 0x10, 0x88, + 0x2a, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, + 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, + 0x74, 0x10, 0x89, 0x2a, 0x12, 0x26, 0x0a, 0x21, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, + 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x47, 0x69, 0x76, + 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x10, 0x8a, 0x2a, 0x12, 0x20, 0x0a, 0x1b, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, + 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x10, 0x8b, 0x2a, 0x12, 0x20, + 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, + 0x65, 0x6e, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x10, 0x8c, 0x2a, + 0x42, 0x27, 0x5a, 0x25, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2f, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( diff --git a/protocol/tienlen/tienlen.proto b/protocol/tienlen/tienlen.proto index a7894ff..e6c92a4 100644 --- a/protocol/tienlen/tienlen.proto +++ b/protocol/tienlen/tienlen.proto @@ -126,6 +126,7 @@ message SCTienLenRoomInfo { int32 Voice = 38; //是否开启语音 1开启 string Password = 39; //房间密码 // 房卡场配置 + bool IsSmallCard = 40; //必出最小牌 } //房间状态更新 @@ -257,6 +258,7 @@ message SCTienLenAIData { //PACKET_SCTienLenFirstOpPos message SCTienLenFirstOpPos { int32 Pos = 1;//座位位置 + bool IsSmallCard = 2; //必出最小牌 } //PACKET_SCTienLenThinkLongCnt diff --git a/protocol/webapi/common.pb.go b/protocol/webapi/common.pb.go index 4ce75d8..7939320 100644 --- a/protocol/webapi/common.pb.go +++ b/protocol/webapi/common.pb.go @@ -10098,6 +10098,173 @@ func (x *NianDropInfo) GetDropUp() int32 { return 0 } +//年兽排行榜奖励 +//etcd /game/activity_nian_rank +type NianRankReward struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` // 平台 + RankData []*NianRankData `protobuf:"bytes,2,rep,name=RankData,proto3" json:"RankData,omitempty"` +} + +func (x *NianRankReward) Reset() { + *x = NianRankReward{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_webapi_common_proto_msgTypes[107] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NianRankReward) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NianRankReward) ProtoMessage() {} + +func (x *NianRankReward) ProtoReflect() protoreflect.Message { + mi := &file_protocol_webapi_common_proto_msgTypes[107] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NianRankReward.ProtoReflect.Descriptor instead. +func (*NianRankReward) Descriptor() ([]byte, []int) { + return file_protocol_webapi_common_proto_rawDescGZIP(), []int{107} +} + +func (x *NianRankReward) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *NianRankReward) GetRankData() []*NianRankData { + if x != nil { + return x.RankData + } + return nil +} + +type NianRankData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TypeId int32 `protobuf:"varint,1,opt,name=TypeId,proto3" json:"TypeId,omitempty"` //1-幸运榜 2-伤害榜 + RankInfo []*NianRankAwardInfo `protobuf:"bytes,2,rep,name=RankInfo,proto3" json:"RankInfo,omitempty"` +} + +func (x *NianRankData) Reset() { + *x = NianRankData{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_webapi_common_proto_msgTypes[108] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NianRankData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NianRankData) ProtoMessage() {} + +func (x *NianRankData) ProtoReflect() protoreflect.Message { + mi := &file_protocol_webapi_common_proto_msgTypes[108] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NianRankData.ProtoReflect.Descriptor instead. +func (*NianRankData) Descriptor() ([]byte, []int) { + return file_protocol_webapi_common_proto_rawDescGZIP(), []int{108} +} + +func (x *NianRankData) GetTypeId() int32 { + if x != nil { + return x.TypeId + } + return 0 +} + +func (x *NianRankData) GetRankInfo() []*NianRankAwardInfo { + if x != nil { + return x.RankInfo + } + return nil +} + +type NianRankAwardInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RankId int32 `protobuf:"varint,1,opt,name=RankId,proto3" json:"RankId,omitempty"` //排名 + Award []*ItemInfo `protobuf:"bytes,2,rep,name=Award,proto3" json:"Award,omitempty"` //奖励 +} + +func (x *NianRankAwardInfo) Reset() { + *x = NianRankAwardInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_webapi_common_proto_msgTypes[109] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NianRankAwardInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NianRankAwardInfo) ProtoMessage() {} + +func (x *NianRankAwardInfo) ProtoReflect() protoreflect.Message { + mi := &file_protocol_webapi_common_proto_msgTypes[109] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NianRankAwardInfo.ProtoReflect.Descriptor instead. +func (*NianRankAwardInfo) Descriptor() ([]byte, []int) { + return file_protocol_webapi_common_proto_rawDescGZIP(), []int{109} +} + +func (x *NianRankAwardInfo) GetRankId() int32 { + if x != nil { + return x.RankId + } + return 0 +} + +func (x *NianRankAwardInfo) GetAward() []*ItemInfo { + if x != nil { + return x.Award + } + return nil +} + // etcd /game/act_redpacket type RedPacketConfig struct { state protoimpl.MessageState @@ -10112,7 +10279,7 @@ type RedPacketConfig struct { func (x *RedPacketConfig) Reset() { *x = RedPacketConfig{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_webapi_common_proto_msgTypes[107] + mi := &file_protocol_webapi_common_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10125,7 +10292,7 @@ func (x *RedPacketConfig) String() string { func (*RedPacketConfig) ProtoMessage() {} func (x *RedPacketConfig) ProtoReflect() protoreflect.Message { - mi := &file_protocol_webapi_common_proto_msgTypes[107] + mi := &file_protocol_webapi_common_proto_msgTypes[110] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10138,7 +10305,7 @@ func (x *RedPacketConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use RedPacketConfig.ProtoReflect.Descriptor instead. func (*RedPacketConfig) Descriptor() ([]byte, []int) { - return file_protocol_webapi_common_proto_rawDescGZIP(), []int{107} + return file_protocol_webapi_common_proto_rawDescGZIP(), []int{110} } func (x *RedPacketConfig) GetPlatform() string { @@ -10182,7 +10349,7 @@ type RedPacketInfo struct { func (x *RedPacketInfo) Reset() { *x = RedPacketInfo{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_webapi_common_proto_msgTypes[108] + mi := &file_protocol_webapi_common_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10195,7 +10362,7 @@ func (x *RedPacketInfo) String() string { func (*RedPacketInfo) ProtoMessage() {} func (x *RedPacketInfo) ProtoReflect() protoreflect.Message { - mi := &file_protocol_webapi_common_proto_msgTypes[108] + mi := &file_protocol_webapi_common_proto_msgTypes[111] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10208,7 +10375,7 @@ func (x *RedPacketInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use RedPacketInfo.ProtoReflect.Descriptor instead. func (*RedPacketInfo) Descriptor() ([]byte, []int) { - return file_protocol_webapi_common_proto_rawDescGZIP(), []int{108} + return file_protocol_webapi_common_proto_rawDescGZIP(), []int{111} } func (x *RedPacketInfo) GetId() int64 { @@ -10293,7 +10460,7 @@ type RedInfo struct { func (x *RedInfo) Reset() { *x = RedInfo{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_webapi_common_proto_msgTypes[109] + mi := &file_protocol_webapi_common_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10306,7 +10473,7 @@ func (x *RedInfo) String() string { func (*RedInfo) ProtoMessage() {} func (x *RedInfo) ProtoReflect() protoreflect.Message { - mi := &file_protocol_webapi_common_proto_msgTypes[109] + mi := &file_protocol_webapi_common_proto_msgTypes[112] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10319,7 +10486,7 @@ func (x *RedInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use RedInfo.ProtoReflect.Descriptor instead. func (*RedInfo) Descriptor() ([]byte, []int) { - return file_protocol_webapi_common_proto_rawDescGZIP(), []int{109} + return file_protocol_webapi_common_proto_rawDescGZIP(), []int{112} } func (x *RedInfo) GetNum() int64 { @@ -10351,7 +10518,7 @@ type ConsumeConfig struct { func (x *ConsumeConfig) Reset() { *x = ConsumeConfig{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_webapi_common_proto_msgTypes[110] + mi := &file_protocol_webapi_common_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10364,7 +10531,7 @@ func (x *ConsumeConfig) String() string { func (*ConsumeConfig) ProtoMessage() {} func (x *ConsumeConfig) ProtoReflect() protoreflect.Message { - mi := &file_protocol_webapi_common_proto_msgTypes[110] + mi := &file_protocol_webapi_common_proto_msgTypes[113] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10377,7 +10544,7 @@ func (x *ConsumeConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use ConsumeConfig.ProtoReflect.Descriptor instead. func (*ConsumeConfig) Descriptor() ([]byte, []int) { - return file_protocol_webapi_common_proto_rawDescGZIP(), []int{110} + return file_protocol_webapi_common_proto_rawDescGZIP(), []int{113} } func (x *ConsumeConfig) GetPlatform() string { @@ -11971,46 +12138,63 @@ var file_protocol_webapi_common_proto_rawDesc = []byte{ 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x72, 0x6f, 0x70, 0x55, 0x70, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x06, 0x44, 0x72, 0x6f, 0x70, 0x55, 0x70, 0x22, 0x7a, 0x0a, 0x0f, 0x52, - 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, - 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x29, 0x0a, 0x04, 0x4c, 0x69, - 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, - 0x69, 0x2e, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x94, 0x02, 0x0a, 0x0d, 0x52, 0x65, 0x64, 0x50, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x4f, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x4f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x48, 0x4d, 0x53, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x48, 0x4d, 0x53, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x6e, 0x64, 0x48, 0x4d, 0x53, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x45, 0x6e, 0x64, 0x48, 0x4d, 0x53, 0x12, 0x16, 0x0a, - 0x06, 0x53, 0x74, 0x61, 0x79, 0x54, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x53, - 0x74, 0x61, 0x79, 0x54, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x4c, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, - 0x4e, 0x75, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, - 0x4e, 0x75, 0x6d, 0x12, 0x29, 0x0a, 0x07, 0x52, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x0a, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, - 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x52, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x2f, - 0x0a, 0x07, 0x52, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x52, - 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x52, 0x61, 0x74, 0x65, 0x22, - 0x73, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, - 0x4f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x4f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x45, 0x6e, 0x64, - 0x54, 0x69, 0x6d, 0x65, 0x42, 0x26, 0x5a, 0x24, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, - 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x44, 0x72, 0x6f, 0x70, 0x55, 0x70, 0x22, 0x5e, 0x0a, 0x0e, 0x4e, + 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x30, 0x0a, 0x08, 0x52, 0x61, 0x6e, + 0x6b, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, + 0x62, 0x61, 0x70, 0x69, 0x2e, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x22, 0x5d, 0x0a, 0x0c, 0x4e, + 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, + 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, + 0x65, 0x49, 0x64, 0x12, 0x35, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x4e, + 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x53, 0x0a, 0x11, 0x4e, 0x69, + 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x16, 0x0a, 0x06, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, + 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, + 0x7a, 0x0a, 0x0f, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x29, + 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x77, + 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x94, 0x02, 0x0a, 0x0d, + 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x12, 0x0e, 0x0a, + 0x02, 0x4f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x4f, 0x6e, 0x12, 0x1a, 0x0a, + 0x08, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x4d, 0x53, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x08, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x4d, 0x53, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x6e, 0x64, + 0x48, 0x4d, 0x53, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x45, 0x6e, 0x64, 0x48, 0x4d, + 0x53, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x79, 0x54, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x06, 0x53, 0x74, 0x61, 0x79, 0x54, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x78, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x4d, 0x61, 0x78, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x4c, 0x65, 0x73, 0x73, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x54, + 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x54, + 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x29, 0x0a, 0x07, 0x52, 0x65, 0x64, 0x4c, 0x69, + 0x73, 0x74, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, + 0x69, 0x2e, 0x52, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x52, 0x65, 0x64, 0x4c, 0x69, + 0x73, 0x74, 0x22, 0x2f, 0x0a, 0x07, 0x52, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, + 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x12, + 0x12, 0x0a, 0x04, 0x52, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x52, + 0x61, 0x74, 0x65, 0x22, 0x73, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x12, 0x0e, 0x0a, 0x02, 0x4f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x4f, 0x6e, + 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x26, 0x5a, 0x24, 0x6d, 0x6f, 0x6e, 0x67, + 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -12025,7 +12209,7 @@ func file_protocol_webapi_common_proto_rawDescGZIP() []byte { return file_protocol_webapi_common_proto_rawDescData } -var file_protocol_webapi_common_proto_msgTypes = make([]protoimpl.MessageInfo, 121) +var file_protocol_webapi_common_proto_msgTypes = make([]protoimpl.MessageInfo, 124) var file_protocol_webapi_common_proto_goTypes = []interface{}{ (*MysqlDbSetting)(nil), // 0: webapi.MysqlDbSetting (*MongoDbSetting)(nil), // 1: webapi.MongoDbSetting @@ -12134,36 +12318,39 @@ var file_protocol_webapi_common_proto_goTypes = []interface{}{ (*ActivityNianConfig)(nil), // 104: webapi.ActivityNianConfig (*NianInfo)(nil), // 105: webapi.NianInfo (*NianDropInfo)(nil), // 106: webapi.NianDropInfo - (*RedPacketConfig)(nil), // 107: webapi.RedPacketConfig - (*RedPacketInfo)(nil), // 108: webapi.RedPacketInfo - (*RedInfo)(nil), // 109: webapi.RedInfo - (*ConsumeConfig)(nil), // 110: webapi.ConsumeConfig - nil, // 111: webapi.Platform.BindTelRewardEntry - nil, // 112: webapi.PlayerData.RankScoreEntry - nil, // 113: webapi.ItemShop.AwardEntry - nil, // 114: webapi.VIPcfg.AwardEntry - nil, // 115: webapi.VIPcfg.Privilege1Entry - nil, // 116: webapi.VIPcfg.Privilege7Entry - nil, // 117: webapi.VIPcfg.Privilege9Entry - nil, // 118: webapi.ActInviteConfig.PayScoreEntry - nil, // 119: webapi.SkinLevel.UpItemEntry - nil, // 120: webapi.SkinItem.UnlockParamEntry - (*server.DB_GameFree)(nil), // 121: server.DB_GameFree - (*server.DB_GameItem)(nil), // 122: server.DB_GameItem + (*NianRankReward)(nil), // 107: webapi.NianRankReward + (*NianRankData)(nil), // 108: webapi.NianRankData + (*NianRankAwardInfo)(nil), // 109: webapi.NianRankAwardInfo + (*RedPacketConfig)(nil), // 110: webapi.RedPacketConfig + (*RedPacketInfo)(nil), // 111: webapi.RedPacketInfo + (*RedInfo)(nil), // 112: webapi.RedInfo + (*ConsumeConfig)(nil), // 113: webapi.ConsumeConfig + nil, // 114: webapi.Platform.BindTelRewardEntry + nil, // 115: webapi.PlayerData.RankScoreEntry + nil, // 116: webapi.ItemShop.AwardEntry + nil, // 117: webapi.VIPcfg.AwardEntry + nil, // 118: webapi.VIPcfg.Privilege1Entry + nil, // 119: webapi.VIPcfg.Privilege7Entry + nil, // 120: webapi.VIPcfg.Privilege9Entry + nil, // 121: webapi.ActInviteConfig.PayScoreEntry + nil, // 122: webapi.SkinLevel.UpItemEntry + nil, // 123: webapi.SkinItem.UnlockParamEntry + (*server.DB_GameFree)(nil), // 124: server.DB_GameFree + (*server.DB_GameItem)(nil), // 125: server.DB_GameItem } var file_protocol_webapi_common_proto_depIdxs = []int32{ 2, // 0: webapi.Platform.Leaderboard:type_name -> webapi.RankSwitch 3, // 1: webapi.Platform.ClubConfig:type_name -> webapi.ClubConfig 4, // 2: webapi.Platform.ThirdGameMerchant:type_name -> webapi.ThirdGame - 111, // 3: webapi.Platform.BindTelReward:type_name -> webapi.Platform.BindTelRewardEntry + 114, // 3: webapi.Platform.BindTelReward:type_name -> webapi.Platform.BindTelRewardEntry 6, // 4: webapi.GameConfigGlobal.GameStatus:type_name -> webapi.GameStatus - 121, // 5: webapi.GameFree.DbGameFree:type_name -> server.DB_GameFree + 124, // 5: webapi.GameFree.DbGameFree:type_name -> server.DB_GameFree 8, // 6: webapi.PlatformGameConfig.DbGameFrees:type_name -> webapi.GameFree 0, // 7: webapi.PlatformDbConfig.Mysql:type_name -> webapi.MysqlDbSetting 1, // 8: webapi.PlatformDbConfig.MongoDb:type_name -> webapi.MongoDbSetting 1, // 9: webapi.PlatformDbConfig.MongoDbLog:type_name -> webapi.MongoDbSetting - 121, // 10: webapi.GameConfigGroup.DbGameFree:type_name -> server.DB_GameFree - 112, // 11: webapi.PlayerData.RankScore:type_name -> webapi.PlayerData.RankScoreEntry + 124, // 10: webapi.GameConfigGroup.DbGameFree:type_name -> server.DB_GameFree + 115, // 11: webapi.PlayerData.RankScore:type_name -> webapi.PlayerData.RankScoreEntry 32, // 12: webapi.PlayerData.Items:type_name -> webapi.ItemInfo 14, // 13: webapi.PlayerData.RoleUnlockList:type_name -> webapi.ModInfo 14, // 14: webapi.PlayerData.PetUnlockList:type_name -> webapi.ModInfo @@ -12176,7 +12363,7 @@ var file_protocol_webapi_common_proto_depIdxs = []int32{ 32, // 21: webapi.ExchangeShop.Items:type_name -> webapi.ItemInfo 25, // 22: webapi.ExchangeShopList.List:type_name -> webapi.ExchangeShop 29, // 23: webapi.ExchangeShopList.Weight:type_name -> webapi.ShopWeight - 113, // 24: webapi.ItemShop.Award:type_name -> webapi.ItemShop.AwardEntry + 116, // 24: webapi.ItemShop.Award:type_name -> webapi.ItemShop.AwardEntry 30, // 25: webapi.ItemShopList.List:type_name -> webapi.ItemShop 32, // 26: webapi.MatchInfoAward.ItemId:type_name -> webapi.ItemInfo 33, // 27: webapi.GameMatchDate.Award:type_name -> webapi.MatchInfoAward @@ -12197,14 +12384,14 @@ var file_protocol_webapi_common_proto_depIdxs = []int32{ 38, // 42: webapi.WelfareSpree.Item:type_name -> webapi.WelfareDate 48, // 43: webapi.WelfareFirstPayDataList.List:type_name -> webapi.WelfareSpree 48, // 44: webapi.WelfareContinuousPayDataList.List:type_name -> webapi.WelfareSpree - 114, // 45: webapi.VIPcfg.Award:type_name -> webapi.VIPcfg.AwardEntry - 115, // 46: webapi.VIPcfg.Privilege1:type_name -> webapi.VIPcfg.Privilege1Entry - 116, // 47: webapi.VIPcfg.Privilege7:type_name -> webapi.VIPcfg.Privilege7Entry - 117, // 48: webapi.VIPcfg.Privilege9:type_name -> webapi.VIPcfg.Privilege9Entry + 117, // 45: webapi.VIPcfg.Award:type_name -> webapi.VIPcfg.AwardEntry + 118, // 46: webapi.VIPcfg.Privilege1:type_name -> webapi.VIPcfg.Privilege1Entry + 119, // 47: webapi.VIPcfg.Privilege7:type_name -> webapi.VIPcfg.Privilege7Entry + 120, // 48: webapi.VIPcfg.Privilege9:type_name -> webapi.VIPcfg.Privilege9Entry 51, // 49: webapi.VIPcfgDataList.List:type_name -> webapi.VIPcfg 38, // 50: webapi.ChessRankConfig.Item:type_name -> webapi.WelfareDate 55, // 51: webapi.ChessRankcfgData.Datas:type_name -> webapi.ChessRankConfig - 118, // 52: webapi.ActInviteConfig.PayScore:type_name -> webapi.ActInviteConfig.PayScoreEntry + 121, // 52: webapi.ActInviteConfig.PayScore:type_name -> webapi.ActInviteConfig.PayScoreEntry 62, // 53: webapi.ActInviteConfig.Awards1:type_name -> webapi.RankAward 62, // 54: webapi.ActInviteConfig.Awards2:type_name -> webapi.RankAward 62, // 55: webapi.ActInviteConfig.Awards3:type_name -> webapi.RankAward @@ -12221,12 +12408,12 @@ var file_protocol_webapi_common_proto_depIdxs = []int32{ 69, // 66: webapi.DiamondLotteryData.Info:type_name -> webapi.DiamondLotteryInfo 70, // 67: webapi.DiamondLotteryData.Players:type_name -> webapi.DiamondLotteryPlayers 72, // 68: webapi.DiamondLotteryConfig.LotteryData:type_name -> webapi.DiamondLotteryData - 122, // 69: webapi.ItemConfig.Items:type_name -> server.DB_GameItem + 125, // 69: webapi.ItemConfig.Items:type_name -> server.DB_GameItem 32, // 70: webapi.RankAwardInfo.Item:type_name -> webapi.ItemInfo 75, // 71: webapi.RankTypeInfo.Award:type_name -> webapi.RankAwardInfo 76, // 72: webapi.RankTypeConfig.Info:type_name -> webapi.RankTypeInfo - 119, // 73: webapi.SkinLevel.UpItem:type_name -> webapi.SkinLevel.UpItemEntry - 120, // 74: webapi.SkinItem.UnlockParam:type_name -> webapi.SkinItem.UnlockParamEntry + 122, // 73: webapi.SkinLevel.UpItem:type_name -> webapi.SkinLevel.UpItemEntry + 123, // 74: webapi.SkinItem.UnlockParam:type_name -> webapi.SkinItem.UnlockParamEntry 78, // 75: webapi.SkinItem.Levels:type_name -> webapi.SkinLevel 79, // 76: webapi.SkinConfig.Items:type_name -> webapi.SkinItem 82, // 77: webapi.AwardLogConfig.AwardLog:type_name -> webapi.AwardLogData @@ -12249,13 +12436,16 @@ var file_protocol_webapi_common_proto_depIdxs = []int32{ 32, // 94: webapi.NianInfo.SignReward:type_name -> webapi.ItemInfo 32, // 95: webapi.NianInfo.BossDieReward:type_name -> webapi.ItemInfo 106, // 96: webapi.NianInfo.BossDieOtherReward:type_name -> webapi.NianDropInfo - 108, // 97: webapi.RedPacketConfig.List:type_name -> webapi.RedPacketInfo - 109, // 98: webapi.RedPacketInfo.RedList:type_name -> webapi.RedInfo - 99, // [99:99] is the sub-list for method output_type - 99, // [99:99] is the sub-list for method input_type - 99, // [99:99] is the sub-list for extension type_name - 99, // [99:99] is the sub-list for extension extendee - 0, // [0:99] is the sub-list for field type_name + 108, // 97: webapi.NianRankReward.RankData:type_name -> webapi.NianRankData + 109, // 98: webapi.NianRankData.RankInfo:type_name -> webapi.NianRankAwardInfo + 32, // 99: webapi.NianRankAwardInfo.Award:type_name -> webapi.ItemInfo + 111, // 100: webapi.RedPacketConfig.List:type_name -> webapi.RedPacketInfo + 112, // 101: webapi.RedPacketInfo.RedList:type_name -> webapi.RedInfo + 102, // [102:102] is the sub-list for method output_type + 102, // [102:102] is the sub-list for method input_type + 102, // [102:102] is the sub-list for extension type_name + 102, // [102:102] is the sub-list for extension extendee + 0, // [0:102] is the sub-list for field type_name } func init() { file_protocol_webapi_common_proto_init() } @@ -13549,7 +13739,7 @@ func file_protocol_webapi_common_proto_init() { } } file_protocol_webapi_common_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RedPacketConfig); i { + switch v := v.(*NianRankReward); i { case 0: return &v.state case 1: @@ -13561,7 +13751,7 @@ func file_protocol_webapi_common_proto_init() { } } file_protocol_webapi_common_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RedPacketInfo); i { + switch v := v.(*NianRankData); i { case 0: return &v.state case 1: @@ -13573,7 +13763,7 @@ func file_protocol_webapi_common_proto_init() { } } file_protocol_webapi_common_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RedInfo); i { + switch v := v.(*NianRankAwardInfo); i { case 0: return &v.state case 1: @@ -13585,6 +13775,42 @@ func file_protocol_webapi_common_proto_init() { } } file_protocol_webapi_common_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RedPacketConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protocol_webapi_common_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RedPacketInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protocol_webapi_common_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RedInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protocol_webapi_common_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConsumeConfig); i { case 0: return &v.state @@ -13603,7 +13829,7 @@ func file_protocol_webapi_common_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_protocol_webapi_common_proto_rawDesc, NumEnums: 0, - NumMessages: 121, + NumMessages: 124, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/webapi/common.proto b/protocol/webapi/common.proto index 113ae71..0ff98df 100644 --- a/protocol/webapi/common.proto +++ b/protocol/webapi/common.proto @@ -1120,6 +1120,20 @@ message NianDropInfo{ int32 DropRate = 4;//掉落概率 int32 DropUp = 5;//掉落上限 } +//年兽排行榜奖励 +//etcd /game/activity_nian_rank +message NianRankReward{ + string Platform = 1; // 平台 + repeated NianRankData RankData = 2; +} +message NianRankData{ + int32 TypeId = 1; //1-幸运榜 2-伤害榜 + repeated NianRankAwardInfo RankInfo = 2; +} +message NianRankAwardInfo{ + int32 RankId =1;//排名 + repeated ItemInfo Award = 2; //奖励 +} // etcd /game/act_redpacket message RedPacketConfig{ diff --git a/ranksrv/action_gatesrv.go b/ranksrv/action_gatesrv.go index 9576e91..5744dc8 100644 --- a/ranksrv/action_gatesrv.go +++ b/ranksrv/action_gatesrv.go @@ -32,6 +32,8 @@ func init() { com.Register(int(rankproto.Rank_PACKET_CSRoomAward), rankproto.CSRoomAward{}, CSRoomAward) // 竞技馆获奖记录 com.Register(int(rankproto.Rank_PACKET_CSLotteryHistory), rankproto.CSLotteryHistory{}, CSLotteryHistory) + //年兽排行榜 + com.Register(int(rankproto.Rank_PACKET_RANK_CSNian), rankproto.CSNian{}, CSNian) } func CSRankMatch(s *netlib.Session, d *rankproto.GateTransmit, packetId int, data interface{}, sid int64) error { @@ -646,3 +648,138 @@ func CSLotteryHistory(s *netlib.Session, d *rankproto.GateTransmit, packetId int }) return nil } +func CSNian(s *netlib.Session, d *rankproto.GateTransmit, packetId int, data interface{}, sid int64) error { + logger.Logger.Trace("CSNian data:", data) + msg, ok := data.(*rankproto.CSNian) + if !ok { + return nil + } + if msg.TypeId == 1 { + rank.NianLuckMgrInstance.Take(d.Platform, 0, func(list []*model.NianInfo, err error) { + if err != nil { + logger.Logger.Errorf("CSNian error: %v", err) + return + } + + page := msg.GetPage() + if page < 0 { + page = 0 + } + pageSize := msg.GetPageSize() + if pageSize < 1 { + pageSize = 10 + } + + start := page * pageSize + end := start + pageSize + if end >= int32(len(list)) { + end = int32(len(list)) + } + + var i int32 + var ranks []*rankproto.NianRankData + if end > start && int(start) < len(list) { + for _, v := range list[start:end] { + r := &rankproto.NianRankData{ + Snid: v.SnId, + Name: v.Name, + Score: v.Luck, + Rank: start + i, + ModId: v.ModId, + } + ranks = append(ranks, r) + i++ + } + } + + var me *rankproto.NianRankData + for k, v := range list { + if v.SnId == d.Snid { + me = &rankproto.NianRankData{ + Snid: v.SnId, + Name: v.Name, + Score: v.Luck, + Rank: int32(k), + ModId: v.ModId, + } + break + } + } + + pack := &rankproto.SCNian{ + Ranks: ranks, + Me: me, + Page: page, + PageSize: pageSize, + Total: int32(len(list)), + } + pack.TypeId = msg.TypeId + common.SendToGate(sid, int(rankproto.Rank_PACKET_RANK_SCNian), pack, s) + logger.Logger.Tracef("SCNian: %v", pack) + }) + } else if msg.TypeId == 2 { + rank.NianDamageMgrInstance.Take(d.Platform, 0, func(list []*model.NianInfo, err error) { + if err != nil { + logger.Logger.Errorf("CSNian error: %v", err) + return + } + + page := msg.GetPage() + if page < 0 { + page = 0 + } + pageSize := msg.GetPageSize() + if pageSize < 1 { + pageSize = 10 + } + + start := page * pageSize + end := start + pageSize + if end >= int32(len(list)) { + end = int32(len(list)) + } + + var i int32 + var ranks []*rankproto.NianRankData + if end > start && int(start) < len(list) { + for _, v := range list[start:end] { + r := &rankproto.NianRankData{ + Snid: v.SnId, + Name: v.Name, + Score: v.Damage, + Rank: start + i, + ModId: v.ModId, + } + ranks = append(ranks, r) + i++ + } + } + + var me *rankproto.NianRankData + for k, v := range list { + if v.SnId == d.Snid { + me = &rankproto.NianRankData{ + Snid: v.SnId, + Name: v.Name, + Score: v.Damage, + Rank: int32(k), + ModId: v.ModId, + } + break + } + } + + pack := &rankproto.SCNian{ + Ranks: ranks, + Me: me, + Page: page, + PageSize: pageSize, + Total: int32(len(list)), + } + pack.TypeId = msg.TypeId + common.SendToGate(sid, int(rankproto.Rank_PACKET_RANK_SCNian), pack, s) + logger.Logger.Tracef("SCCoin: %v", pack) + }) + } + return nil +} diff --git a/ranksrv/rank/niandamage.go b/ranksrv/rank/niandamage.go new file mode 100644 index 0000000..afcd3ab --- /dev/null +++ b/ranksrv/rank/niandamage.go @@ -0,0 +1,22 @@ +package rank + +import ( + "mongo.games.com/game/model" + "mongo.games.com/game/ranksrv/com" + "mongo.games.com/goserver/core/logger" +) + +var NianDamageMgrInstance = com.NewListMgr[*model.NianInfo]( + func() int64 { + return int64(model.GameParamData.RankTimeout) + }, + func(platform string, index int32) ([]*model.NianInfo, error) { + logger.Logger.Tracef("load rank nian luck platform:%s", platform) + list, err := model.FindDamageNianRankList(&model.FindNianListArgs{ + Platform: platform, + }) + if err != nil { + return nil, err + } + return list.List, nil + }) diff --git a/ranksrv/rank/nianluck.go b/ranksrv/rank/nianluck.go new file mode 100644 index 0000000..4ffbd7e --- /dev/null +++ b/ranksrv/rank/nianluck.go @@ -0,0 +1,22 @@ +package rank + +import ( + "mongo.games.com/game/model" + "mongo.games.com/game/ranksrv/com" + "mongo.games.com/goserver/core/logger" +) + +var NianLuckMgrInstance = com.NewListMgr[*model.NianInfo]( + func() int64 { + return int64(model.GameParamData.RankTimeout) + }, + func(platform string, index int32) ([]*model.NianInfo, error) { + logger.Logger.Tracef("load rank nian luck platform:%s", platform) + list, err := model.FindLuckNianRankList(&model.FindNianListArgs{ + Platform: platform, + }) + if err != nil { + return nil, err + } + return list.List, nil + }) diff --git a/srvdata/db_newyearrankreward.go b/srvdata/db_newyearrankreward.go deleted file mode 100644 index 38c579f..0000000 --- a/srvdata/db_newyearrankreward.go +++ /dev/null @@ -1,77 +0,0 @@ - -// Code generated by xlsx2proto. -// DO NOT EDIT! - -package srvdata - -import ( - "google.golang.org/protobuf/proto" - - "mongo.games.com/game/protocol/server" -) - -var PBDB_NewYearRankRewardMgr = &DB_NewYearRankRewardMgr{ - Datas: &server.DB_NewYearRankRewardArray{}, - pool: make(map[int32]*server.DB_NewYearRankReward), - -} - -type DB_NewYearRankRewardMgr struct { - Datas *server.DB_NewYearRankRewardArray - pool map[int32]*server.DB_NewYearRankReward - -} - -func (this *DB_NewYearRankRewardMgr) unmarshal(data []byte) error { - err := proto.Unmarshal(data, this.Datas) - if err == nil { - this.arrangeData() - } - return err -} - -func (this *DB_NewYearRankRewardMgr) reunmarshal(data []byte) error { - newDatas := &server.DB_NewYearRankRewardArray{} - err := proto.Unmarshal(data, newDatas) - if err == nil { - for _, item := range newDatas.Arr { - existItem := this.GetData(item.GetId()) - if existItem == nil { - this.pool[item.GetId()] = item - this.Datas.Arr = append(this.Datas.Arr, item) - - } else { - *existItem = *item - } - } - } - return err -} - -func (this *DB_NewYearRankRewardMgr) arrangeData() { - if this.Datas == nil { - return - } - - dataArr := this.Datas.GetArr() - if dataArr == nil { - return - } - - for _, data := range dataArr { - this.pool[data.GetId()] = data - - } -} - -func (this *DB_NewYearRankRewardMgr) GetData(id int32) *server.DB_NewYearRankReward { - if data, ok := this.pool[id]; ok { - return data - } - return nil -} - - -func init() { - DataMgr.register("DB_NewYearRankReward.dat", &ProtobufDataLoader{dh: PBDB_NewYearRankRewardMgr}) -} diff --git a/statistics/task/main.go b/statistics/task/main.go index b2172b4..8cae605 100644 --- a/statistics/task/main.go +++ b/statistics/task/main.go @@ -39,8 +39,8 @@ var ExcelMgrSingle *ExcelMgr func run() { if VP.GetBool("IsDatabaseMode") { - VP.Set("StartTime", common.HMSToTime(0, 0, 0).Format(time.RFC3339)) - VP.Set("EndTime", common.HMSToTime(0, 0, 0).AddDate(0, 0, 1).Format(time.RFC3339)) + VP.Set("StartTime", common.HMSToTime(0, 0, 0).AddDate(0, 0, -1).Format(time.RFC3339)) + VP.Set("EndTime", common.HMSToTime(0, 0, 0).Format(time.RFC3339)) } startTime, err := time.Parse(time.RFC3339, VP.GetString("StartTime")) diff --git a/worldsrv/action_nian.go b/worldsrv/action_nian.go index ca15794..8a6bf7d 100644 --- a/worldsrv/action_nian.go +++ b/worldsrv/action_nian.go @@ -4,6 +4,7 @@ import ( "math/rand" "mongo.games.com/game/common" "mongo.games.com/game/model" + "mongo.games.com/game/mq" "mongo.games.com/game/protocol/activity" "mongo.games.com/game/srvdata" "mongo.games.com/goserver/core/logger" @@ -30,7 +31,7 @@ func CSNianData(s *netlib.Session, packetid int, data interface{}, sid int64) er logger.Logger.Warn("CSNianData p == nil") return nil } - pool := PlatformMgrSingleton.GetConfig(p.Platform).ActivityNianConfig + pool := WelfareMgrSington.GetConfig(p.Platform).ActivityNianConfig if pool == nil || pool.List == nil || pool.Switch == model.WelfareClose { return nil } @@ -58,18 +59,101 @@ func CSNianData(s *netlib.Session, packetid int, data interface{}, sid int64) er if p.WelfData.NianData.BossHp == 0 { p.WelfData.NianData.BossHp = BossMaxHp } + //排行榜配置 + rankData := PlatformMgrSingleton.GetConfig(p.Platform).NianRankReward + if rankData == nil { + return nil + } pack := &activity.SCNianData{} + for _, info := range rankData.RankData { + rankInfo := &activity.NianRankData{} + rankInfo.TypeId = info.TypeId + for _, awardInfo := range info.RankInfo { + rank := &activity.NianRankInfo{} + rank.RankId = awardInfo.RankId + for _, itemInfo := range awardInfo.Award { + rankAwardData := &activity.RankAwardData{ + ItemId: itemInfo.ItemId, + ItemNum: itemInfo.ItemNum, + } + rank.Award = append(rank.Award, rankAwardData) + } + rankInfo.Data = append(rankInfo.Data, rank) + } + pack.RankData = append(pack.RankData, rankInfo) + } + + var intSlice []int + var shopNum []int + for _, value := range sData { + if value.Id == 17 { + str := value.PropValue + strSlice := strings.Split(str, ",") + // 转换每个字符串为 int + for _, s := range strSlice { + num, _ := strconv.Atoi(s) + intSlice = append(intSlice, num) + } + } + if value.Id == 18 { + str := value.PropValue + strSlice := strings.Split(str, ",") + // 转换每个字符串为 int + for _, s := range strSlice { + num, _ := strconv.Atoi(s) + shopNum = append(shopNum, num) + } + } + } + for pos, shopId := range intSlice { + num := shopNum[pos] + if num == 0 { + continue + } + shopInfo := &activity.ShopData{} + shopInfo.ShopId = int32(shopId) + shopInfo.ShopNum = p.WelfData.NianData.GiftShop[int32(shopId)] + shopInfo.MaxShopNum = int32(num) + pack.ShopData = append(pack.ShopData, shopInfo) + } + changeData := "" + for _, value := range sData { + if value.Id == 21 { + changeData = value.PropValue + break + } + } + signTime := int64(0) + if p.WelfData.NianData.SignAwardTime > 0 { + nextDay := time.Now().Add(24 * time.Hour).Truncate(24 * time.Hour) + signTime = nextDay.Unix() + } + for _, value := range sData { + if value.Id == 7 { + pack.LuckyRankNeed = value.PropValue + break + } + } + for _, value := range sData { + if value.Id == 8 { + pack.RankNeed = value.PropValue + break + } + } + StartTs := common.IntToTime(int(pool.List[0].BuffStartTime)).Unix() + EndTs := common.IntToTime(int(pool.List[0].BuffEndTime)).Unix() + pack.BuffStartTime = StartTs + pack.BuffEndTime = EndTs pack.BossHp = p.WelfData.NianData.BossHp pack.BossMaxHp = BossMaxHp - // pack.ActivityStartTime = timestamp - //pack.ActivityEndTime = endTimestamp - pack.ActivityStartTime = 0 - pack.ActivityEndTime = 0 + pack.ActivityStartTime = timestamp + pack.ActivityEndTime = endTimestamp pack.AwardTime = p.WelfData.NianData.SignAwardTime pack.BuffCount = p.WelfData.NianData.BuffCount pack.BuffStatus = p.WelfData.NianData.BuffStatus - pack.LuckData = nil - pack.SignAwardTime = p.WelfData.NianData.SignAwardTime + pack.SignAwardTime = signTime + pack.ChangeData = changeData + pack.Switch = pool.Switch logger.Logger.Trace("请求年兽活动信息 ", pack) p.SendToClient(int(activity.NianPacketID_PACKET_SCNianData), pack) } @@ -100,7 +184,7 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) logger.Logger.Warn("CSNianAttack p == nil") return nil } - pool := PlatformMgrSingleton.GetConfig(p.Platform).ActivityNianConfig + pool := WelfareMgrSington.GetConfig(p.Platform).ActivityNianConfig if pool == nil || pool.List == nil { return nil } @@ -136,15 +220,15 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) } else { return nil } - var items []*model.Item - items = append(items, &model.Item{ + var costItems []*model.Item + costItems = append(costItems, &model.Item{ ItemId: int32(itemId), - ItemNum: int64(itemNum), + ItemNum: int64(-itemNum), }) _, _, result := BagMgrSingleton.AddItems(&model.AddItemParam{ Platform: p.Platform, SnId: p.SnId, - Change: items, + Change: costItems, GainWay: common.GainWayNianCost, Operator: "system", Remark: "年兽活动消耗", @@ -154,6 +238,20 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) } //本次攻击总血量 AttackHp := int64(0) + LuckyRankNeed := int64(0) + RankNeed := int64(0) + for _, value := range sData { + if value.Id == 7 { + LuckyRankNeed, _ = strconv.ParseInt(value.PropValue, 10, 64) + break + } + } + for _, value := range sData { + if value.Id == 8 { + RankNeed, _ = strconv.ParseInt(value.PropValue, 10, 64) + break + } + } //伤害范围 var intSlice []int if typeId == 1 || typeId == 2 { @@ -216,10 +314,14 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) randomValue = randomValue + randomValue/2 p.WelfData.NianData.BuffCount -= 1 } + if p.WelfData.NianData.AttackMaxHp < randomValue { + p.WelfData.NianData.AttackMaxHp = randomValue + } AttackHp += randomValue if typeId == 3 { p.WelfData.NianData.BigHurt += 1 //判断是否掉落保底奖励 + var guaranteeItems []*model.Item if p.WelfData.NianData.BigHurt%int32(floorCount) == 0 { floorReward := &activity.RankAwardData{} for _, value := range sData { @@ -227,7 +329,7 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) strSlice := strings.Split(value.PropValue, ",") FloorItemId, _ := strconv.Atoi(strSlice[0]) FloorItemNum, _ := strconv.Atoi(strSlice[1]) - items = append(items, &model.Item{ + guaranteeItems = append(guaranteeItems, &model.Item{ ItemId: int32(FloorItemId), ItemNum: int64(FloorItemNum), }) @@ -238,6 +340,14 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) } } } + BagMgrSingleton.AddItems(&model.AddItemParam{ + Platform: p.Platform, + SnId: p.SnId, + Change: guaranteeItems, + GainWay: common.GainWayNianGain_Attack_BigGuarantee, + Operator: "system", + Remark: "年兽活动-大爆竹保底奖励", + }) //额外掉落 extraItemId := 0 extraItemNum := 0 @@ -265,10 +375,19 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) } //随机个数 extraItemNum = rand.Intn(intSlice1[1]-intSlice1[0]+1) + intSlice1[0] - items = append(items, &model.Item{ + var extraItems []*model.Item + extraItems = append(extraItems, &model.Item{ ItemId: int32(extraItemId), ItemNum: int64(extraItemNum), }) + BagMgrSingleton.AddItems(&model.AddItemParam{ + Platform: p.Platform, + SnId: p.SnId, + Change: extraItems, + GainWay: common.GainWayNianGain_Attack_BigOther, + Operator: "system", + Remark: "年兽活动-打爆竹额外活动奖励", + }) extraDrop := &activity.RankAwardData{} extraDrop.ItemId = int32(extraItemId) extraDrop.ItemNum = int64(extraItemNum) @@ -276,6 +395,7 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) } else { p.WelfData.NianData.LittleHurt += 1 //判断是否掉落保底奖励 + var guaranteeItems []*model.Item if p.WelfData.NianData.LittleHurt%int32(floorCount) == 0 { floorReward := &activity.RankAwardData{} for _, value := range sData { @@ -283,7 +403,7 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) strSlice := strings.Split(value.PropValue, ",") FloorItemId, _ := strconv.Atoi(strSlice[0]) FloorItemNum, _ := strconv.Atoi(strSlice[1]) - items = append(items, &model.Item{ + guaranteeItems = append(guaranteeItems, &model.Item{ ItemId: int32(FloorItemId), ItemNum: int64(FloorItemNum), }) @@ -294,11 +414,18 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) } } } + BagMgrSingleton.AddItems(&model.AddItemParam{ + Platform: p.Platform, + SnId: p.SnId, + Change: guaranteeItems, + GainWay: common.GainWayNianGain_Attack_LittleGuarantee, + Operator: "system", + Remark: "年兽活动-小爆竹额外掉落奖励", + }) } - //上榜 幸运榜 总榜 - } p.WelfData.NianData.BossHp -= AttackHp + p.WelfData.NianData.AttackSumHp += AttackHp isDie := false //是否死亡 //判断Boss是否死亡 var bossDieAward []*model.Item @@ -307,32 +434,27 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) p.WelfData.NianData.BossHp = BossMaxHp p.WelfData.NianData.BossDieCount += 1 //获取死亡奖励 - for _, value := range sData { - if value.Id == 6 { - str := value.PropValue - strSlice := strings.Split(str, ";") - for _, s := range strSlice { - strSlice1 := strings.Split(s, ",") - bossDieItemId, err := strconv.Atoi(strSlice1[0]) - if err != nil { - return nil - } - bossDieItemNum, err := strconv.ParseInt(strSlice1[1], 10, 64) - if err != nil { - return nil - } - bossDieAward = append(bossDieAward, &model.Item{ - ItemId: int32(bossDieItemId), - ItemNum: bossDieItemNum, - }) - items = append(items, &model.Item{ - ItemId: int32(bossDieItemId), - ItemNum: bossDieItemNum, - }) - } - break - } + var bossDieItems []*model.Item + for _, value := range pool.List[0].BossDieReward { + bossDieItemId := value.ItemId + bossDieItemNum := value.ItemNum + bossDieAward = append(bossDieAward, &model.Item{ + ItemId: bossDieItemId, + ItemNum: bossDieItemNum, + }) + bossDieItems = append(bossDieItems, &model.Item{ + ItemId: bossDieItemId, + ItemNum: bossDieItemNum, + }) } + BagMgrSingleton.AddItems(&model.AddItemParam{ + Platform: p.Platform, + SnId: p.SnId, + Change: bossDieItems, + GainWay: common.GainWayNianGain_BossDie, + Operator: "system", + Remark: "年兽活动-Boss死亡获得", + }) //年兽死亡额外掉落 BigHurtCount := 0 for _, value := range sData { @@ -344,21 +466,24 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) logger.Logger.Trace("年兽死亡额外掉落 当前已使用BigHurt :", p.WelfData.NianData.BigHurt, "BigHurtCount = ", BigHurtCount) if p.WelfData.NianData.BigHurt >= int32(BigHurtCount) { //后台配置额外掉落 + var bossDieOther []*model.Item for _, info := range pool.List[0].BossDieOtherReward { - //value.BossDieOtherReward if p.WelfData.NianData.OtherAwardNum[info.Id] >= info.DropUp { logger.Logger.Trace("BOSS死亡 额外掉落达到上限 id = ", info.Id, "数量:", p.WelfData.NianData.OtherAwardNum[info.Id]) continue } //随机 - if rand.Intn(100) < int(info.DropRate) { + if rand.Intn(100)+1 <= int(info.DropRate) { otherItemId := info.ItemId otherItemNum := info.ItemNum if int32(otherItemNum)+p.WelfData.NianData.OtherAwardNum[info.Id] > info.DropUp { otherItemNum = int64(info.DropUp - p.WelfData.NianData.OtherAwardNum[info.Id]) } + if p.WelfData.NianData.OtherAwardNum == nil { + p.WelfData.NianData.OtherAwardNum = make(map[int32]int32) + } p.WelfData.NianData.OtherAwardNum[info.Id] += int32(otherItemNum) - items = append(items, &model.Item{ + bossDieOther = append(bossDieOther, &model.Item{ ItemId: otherItemId, ItemNum: otherItemNum, }) @@ -366,20 +491,30 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) ItemId: otherItemId, ItemNum: otherItemNum, }) + } } + BagMgrSingleton.AddItems(&model.AddItemParam{ + Platform: p.Platform, + SnId: p.SnId, + Change: bossDieOther, + GainWay: common.GainWayNianGain_BossDieOther, + Operator: "system", + Remark: "年兽活动-攻击年兽额外获得", + }) } + TaskSubjectSingleton.Touch(common.TaskTypeNianBossKill, &TaskData{SnId: p.SnId, Num: 1}) // BOSS死亡 } - - items = append(items, &model.Item{ + coinItems := []*model.Item{} + coinItems = append(coinItems, &model.Item{ ItemId: common.ItemIDCoin, ItemNum: AttackHp, }) BagMgrSingleton.AddItems(&model.AddItemParam{ Platform: p.Platform, SnId: p.SnId, - Change: items, - GainWay: common.GainWayNianGain, + Change: coinItems, + GainWay: common.GainWayNianGain_Attack_Coin, Operator: "system", Remark: "年兽活动-攻击年兽获得", }) @@ -398,6 +533,33 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) } pack.BuffCount = p.WelfData.NianData.BuffCount p.SendToClient(int(activity.NianPacketID_PACKET_SCNianAttackData), pack) + TaskSubjectSingleton.Touch(common.TaskTypeNianBossDamage, &TaskData{SnId: p.SnId, Num: AttackHp}) // 对年兽造成伤害 + //更新年兽排行榜榜 + luckValue := p.WelfData.NianData.AttackMaxHp + luckTime := time.Now().Unix() + if luckValue < LuckyRankNeed { + luckValue = 0 + luckTime = 0 + } + damage := p.WelfData.NianData.AttackSumHp + if damage < RankNeed { + damage = 0 + } + if luckValue > 0 || damage > 0 { + log := &model.NianInfo{ + Platform: p.Platform, + SnId: p.SnId, + Name: p.Name, + Luck: luckValue, + Damage: damage, + ModId: p.Roles.ModId, + Ts: time.Now().Unix(), + } + if luckTime > 0 { + log.LuckTime = luckTime + } + mq.Write(log) + } } return nil } @@ -406,7 +568,6 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) func CSNianBuff(s *netlib.Session, packetid int, data interface{}, sid int64) error { if _, ok := data.(*activity.CSNianBuff); ok { p := PlayerMgrSington.GetOnlinePlayer(sid) - //yearActivity := &server.DB_NewYearActivity{} logger.Logger.Trace("客户端请求请求领取BUFF snid = ", p.SnId) if p == nil { return nil @@ -415,9 +576,13 @@ func CSNianBuff(s *netlib.Session, packetid int, data interface{}, sid int64) er p.WelfData.NianData = &model.NianData{} } if p.WelfData.NianData.BuffStatus { + pack := &activity.SCNianBuff{ + OpRetCode: activity.OpResultCode_Nian_OPRC_Error_Nian, + } + p.SendToClient(int(activity.NianPacketID_PACKET_SCNianBuff), pack) return nil } - pool := PlatformMgrSingleton.GetConfig(p.Platform).ActivityNianConfig + pool := WelfareMgrSington.GetConfig(p.Platform).ActivityNianConfig if pool == nil || pool.List == nil { return nil } @@ -425,8 +590,10 @@ func CSNianBuff(s *netlib.Session, packetid int, data interface{}, sid int64) er logger.Logger.Trace("CSNianSignAward 活动关闭!") return nil } + StartTs := common.IntToTime(int(pool.List[0].BuffStartTime)).Unix() + EndTs := common.IntToTime(int(pool.List[0].BuffEndTime)).Unix() //判断领取时间 - if time.Now().Hour() >= int(pool.List[0].BuffStartTime) && time.Now().Hour() <= int(pool.List[0].BuffEndTime) { + if time.Now().Unix() >= StartTs && time.Now().Unix() <= EndTs { sData := srvdata.PBDB_NewYearActivityMgr.Datas.GetArr() count := int64(0) for _, value := range sData { @@ -441,6 +608,14 @@ func CSNianBuff(s *netlib.Session, packetid int, data interface{}, sid int64) er BuffCount: p.WelfData.NianData.BuffCount, } p.SendToClient(int(activity.NianPacketID_PACKET_SCNianBuff), pack) + //统计领取BUff + mq.Write(model.GenerateActivityLog(p.SnId, p.Platform, model.ActivityLog_NianBuff, 1)) + } else { + logger.Logger.Trace("CSNianSignAward 活动时间未到!") + pack := &activity.SCNianBuff{ + OpRetCode: activity.OpResultCode_Nian_OPRC_Error_Nian, + } + p.SendToClient(int(activity.NianPacketID_PACKET_SCNianBuff), pack) } } return nil @@ -448,13 +623,13 @@ func CSNianBuff(s *netlib.Session, packetid int, data interface{}, sid int64) er // 领取签到奖励 func CSNianSignAward(s *netlib.Session, packetid int, data interface{}, sid int64) error { - if _, ok := data.(*activity.CSNianBuff); ok { + if _, ok := data.(*activity.CSNianSignAward); ok { p := PlayerMgrSington.GetOnlinePlayer(sid) - logger.Logger.Trace("客户端请求请求领取BUFF snid = ", p.SnId) + logger.Logger.Trace("领取签到奖励 snid = ", p.SnId) if p == nil { return nil } - pool := PlatformMgrSingleton.GetConfig(p.Platform).ActivityNianConfig + pool := WelfareMgrSington.GetConfig(p.Platform).ActivityNianConfig if pool == nil || pool.List == nil { return nil } @@ -462,15 +637,30 @@ func CSNianSignAward(s *netlib.Session, packetid int, data interface{}, sid int6 logger.Logger.Trace("CSNianSignAward 活动关闭!") return nil } + //判断活动时间 + startTime := pool.List[0].ActivityStart + endTime := pool.List[0].ActivityEnd + t, _ := time.Parse(time.DateTime, startTime) + // 转换为时间戳(以秒为单位) + timestamp := t.Unix() + end, _ := time.Parse(time.DateTime, endTime) + endTimestamp := end.Unix() + nowTime := time.Now().Unix() + if nowTime < timestamp || nowTime > endTimestamp { + return nil + } + + pack := &activity.SCNianSignAward{} if p.WelfData.NianData == nil { p.WelfData.NianData = &model.NianData{} } if p.WelfData.NianData.SignAwardTime > 0 { + pack.OpRetCode = activity.OpResultCode_Nian_OPRC_Error_Nian + p.SendToClient(int(activity.NianPacketID_PACKET_SCNianSignAward), pack) return nil } p.WelfData.NianData.SignAwardTime = time.Now().Unix() //奖励 - pack := &activity.SCNianSignAward{} pack.SignAwardTime = p.WelfData.NianData.SignAwardTime var items []*model.Item for _, info := range pool.List[0].SignReward { @@ -488,18 +678,104 @@ func CSNianSignAward(s *netlib.Session, packetid int, data interface{}, sid int6 Platform: p.Platform, SnId: p.SnId, Change: items, - GainWay: common.GainWayNianGain, + GainWay: common.GainWayNianGain_Sign, Operator: "system", Remark: "年兽活动-领取签到奖励获得", }) p.SendToClient(int(activity.NianPacketID_PACKET_SCNianSignAward), pack) + TaskSubjectSingleton.Touch(common.TaskTypeNianSign, &TaskData{SnId: p.SnId, Num: 1}) } return nil } +func CSNianChange(s *netlib.Session, packetid int, data interface{}, sid int64) error { + if msg, ok := data.(*activity.CSNianChange); ok { + p := PlayerMgrSington.GetOnlinePlayer(sid) + logger.Logger.Trace("客户端请求请求年兽兑换 snid = ", p.SnId) + if p == nil { + return nil + } + pool := WelfareMgrSington.GetConfig(p.Platform).ActivityNianConfig + if pool == nil || pool.List == nil { + return nil + } + if pool.Switch == model.WelfareClose { + logger.Logger.Trace("CSNianSignAward 活动关闭!") + return nil + } + //判断活动时间 + startTime := pool.List[0].ActivityStart + endTime := pool.List[0].ActivityEnd + t, _ := time.Parse(time.DateTime, startTime) + // 转换为时间戳(以秒为单位) + timestamp := t.Unix() + end, _ := time.Parse(time.DateTime, endTime) + endTimestamp := end.Unix() + nowTime := time.Now().Unix() + if nowTime < timestamp || nowTime > endTimestamp { + return nil + } + num := msg.Num + pack := &activity.SCNianChange{} + if num <= 0 || num > 99 { + pack.OpRetCode = activity.OpResultCode_Nian_OPRC_Error_Nian + p.SendToClient(int(activity.NianPacketID_PACKET_SCNianChange), pack) + return nil + } + + sData := srvdata.PBDB_NewYearActivityMgr.Datas.GetArr() + itemNum := 0 + coin := 0 + diamond := 0 + for _, value := range sData { + if value.Id == 21 { + strSlice := strings.Split(value.PropValue, ",") + diamond, _ = strconv.Atoi(strSlice[0]) + itemNum, _ = strconv.Atoi(strSlice[1]) + coin, _ = strconv.Atoi(strSlice[2]) + break + } + } + if p.Diamond < int64(diamond*int(num)) { + pack.OpRetCode = activity.OpResultCode_Nian_OPRC_Error_Nian + p.SendToClient(int(activity.NianPacketID_PACKET_SCNianChange), pack) + return nil + } + p.AddDiamond(int64(-diamond*int(num)), 0, common.GainWayNianCost, "sys", "年兽活动兑换道具") + var items []*model.Item + items = append(items, &model.Item{ + ItemId: common.ItemIDCoin, + ItemNum: int64(coin * int(num)), + }) + items = append(items, &model.Item{ + ItemId: common.ItemIDLittleGuaranteed, + ItemNum: int64(itemNum * int(num)), + }) + BagMgrSingleton.AddItems(&model.AddItemParam{ + Platform: p.Platform, + SnId: p.SnId, + Change: items, + GainWay: common.GainWayNianGain_Change, + Operator: "system", + Remark: "年兽活动-兑换", + }) + + pack.Num = num + for _, item := range items { + info := &activity.RankAwardData{ + ItemId: item.ItemId, + ItemNum: item.ItemNum, + } + pack.Award = append(pack.Award, info) + } + p.SendToClient(int(activity.NianPacketID_PACKET_SCNianChange), pack) + } + return nil +} func init() { common.Register(int(activity.NianPacketID_PACKET_CSNianData), activity.CSNianData{}, CSNianData) common.Register(int(activity.NianPacketID_PACKET_CSNianAttack), activity.CSNianAttack{}, CSNianAttack) common.Register(int(activity.NianPacketID_PACKET_CSNianBuff), activity.CSNianBuff{}, CSNianBuff) common.Register(int(activity.NianPacketID_PACKET_CSNianSignAward), activity.CSNianSignAward{}, CSNianSignAward) + common.Register(int(activity.NianPacketID_PACKET_CSNianChange), activity.CSNianChange{}, CSNianChange) } diff --git a/worldsrv/action_shop.go b/worldsrv/action_shop.go index f31bcbf..21f6bfa 100644 --- a/worldsrv/action_shop.go +++ b/worldsrv/action_shop.go @@ -1,6 +1,9 @@ package main import ( + "mongo.games.com/game/srvdata" + "strconv" + "strings" "time" "mongo.games.com/goserver/core/basic" @@ -188,6 +191,49 @@ func (this *CSVCPayShopHandler) Process(s *netlib.Session, packetid int, data in SendClient(shop.OpResultCode_OPRC_Error) return nil } + case ShopPageNian: + sData := srvdata.PBDB_NewYearActivityMgr.Datas.GetArr() + var intSlice []int + var shopNum []int + for _, value := range sData { + if value.Id == 17 { + str := value.PropValue + strSlice := strings.Split(str, ",") + // 转换每个字符串为 int + for _, s := range strSlice { + num, err := strconv.Atoi(s) + if err != nil { + return nil + } + intSlice = append(intSlice, num) + } + } + if value.Id == 18 { + str := value.PropValue + strSlice := strings.Split(str, ",") + // 转换每个字符串为 int + for _, s := range strSlice { + num, err := strconv.Atoi(s) + if err != nil { + return nil + } + shopNum = append(shopNum, num) + } + } + } + shopPos := 0 + for i, id := range intSlice { + if id == int(shopInfo.Id) { + shopPos = i + break + } + } + num := shopNum[shopPos] + if num > 0 { + if p.WelfData.NianData.GiftShop[shopInfo.Id] >= int32(num) { + return nil + } + } default: } @@ -474,6 +520,45 @@ func (this *CSPayInfoHandler) Process(s *netlib.Session, packetid int, data inte return nil } } + if shopInfo.Page == ShopPageNian { + sData := srvdata.PBDB_NewYearActivityMgr.Datas.GetArr() + var intSlice []int + var shopNum []int + for _, value := range sData { + if value.Id == 17 { + str := value.PropValue + strSlice := strings.Split(str, ",") + // 转换每个字符串为 int + for _, s := range strSlice { + num, _ := strconv.Atoi(s) + intSlice = append(intSlice, num) + } + } + if value.Id == 18 { + str := value.PropValue + strSlice := strings.Split(str, ",") + // 转换每个字符串为 int + for _, s := range strSlice { + num, _ := strconv.Atoi(s) + shopNum = append(shopNum, num) + } + } + } + shopPos := 0 + for i, id := range intSlice { + if id == int(shopInfo.Id) { + shopPos = i + break + } + } + num := shopNum[shopPos] + if num > 0 { + if p.WelfData.NianData.GiftShop[shopInfo.Id] >= int32(num) { + SendClient(shop.OpResultCode_OPRC_Error) + return nil + } + } + } ShopMgrSington.SendAPICreateOrder(p, msg.ConfigPayId, shopInfo, "shop_goods_xj") } else { diff --git a/worldsrv/action_task.go b/worldsrv/action_task.go index fe0795f..ba9435e 100644 --- a/worldsrv/action_task.go +++ b/worldsrv/action_task.go @@ -136,6 +136,7 @@ func CSTaskReward(s *netlib.Session, packetId int, data interface{}, sid int64) taskLog.TaskName = data.GetDes() taskLog.ActivityType = data.GetActivityType() taskLog.TaskType = data.GetTaskType() + taskLog.RemainDiamond = p.Diamond } mq.Write(taskLog) ret.OpCode = taskproto.OpResultCode_OPRC_Success diff --git a/worldsrv/etcd.go b/worldsrv/etcd.go index 4f7b904..4bd8f42 100644 --- a/worldsrv/etcd.go +++ b/worldsrv/etcd.go @@ -112,161 +112,11 @@ func init() { etcd.Register(etcd.ETCDKEY_PigBankProp, webapi.GamePigBankPropConfig{}, platformConfigEvent) //年兽配置 etcd.Register(etcd.ETCDKEY_NianConfig, webapi.ActivityNianConfig{}, platformConfigEvent) + etcd.Register(etcd.ETCDKEY_NianRankConfig, webapi.NianRankReward{}, platformConfigEvent) // 红包配置 etcd.Register(etcd.KeyRedPacket, webapi.RedPacketConfig{}, platformConfigEvent) // 累计消耗活动配置 etcd.Register(etcd.KeyActConsume, webapi.ConsumeConfig{}, platformConfigEvent) - - WelfareMgrSington.UpdateRedPacket(&webapi.RedPacketConfig{ - Platform: "1", - List: []*webapi.RedPacketInfo{ - { - Id: 1, - On: 1, - StartHMS: 90000, - EndHMS: 100000, - StayTs: 0, - MaxCount: 100, - LessCount: 5, - ItemId: 100001, - TotalNum: 100000, - RedList: []*webapi.RedInfo{ - { - Num: 1, - Rate: 5000, - }, - { - Num: 10, - Rate: 1000, - }, - { - Num: 20, - Rate: 1000, - }, - { - Num: 30, - Rate: 1000, - }, - }, - }, - { - Id: 2, - On: 1, - StartHMS: 100000, - EndHMS: 120000, - StayTs: 30, - MaxCount: 10000, - LessCount: 5, - ItemId: 100001, - TotalNum: 100000, - RedList: []*webapi.RedInfo{ - { - Num: 1, - Rate: 5000, - }, - { - Num: 10, - Rate: 1000, - }, - { - Num: 20, - Rate: 1000, - }, - { - Num: 30, - Rate: 1000, - }, - }, - }, - { - Id: 3, - On: 1, - StartHMS: 120000, - EndHMS: 150000, - StayTs: 0, - MaxCount: 10000, - LessCount: 5, - ItemId: 100001, - TotalNum: 100000, - RedList: []*webapi.RedInfo{ - { - Num: 1, - Rate: 5000, - }, - { - Num: 10, - Rate: 1000, - }, - { - Num: 20, - Rate: 1000, - }, - { - Num: 30, - Rate: 1000, - }, - }, - }, - { - Id: 4, - On: 1, - StartHMS: 150000, - EndHMS: 160000, - StayTs: 0, - MaxCount: 10000, - LessCount: 5, - ItemId: 100001, - TotalNum: 100000, - RedList: []*webapi.RedInfo{ - { - Num: 1, - Rate: 5000, - }, - { - Num: 10, - Rate: 1000, - }, - { - Num: 20, - Rate: 1000, - }, - { - Num: 30, - Rate: 1000, - }, - }, - }, - { - Id: 5, - On: 1, - StartHMS: 160000, - EndHMS: 180000, - StayTs: 0, - MaxCount: 10000, - LessCount: 5, - ItemId: 100001, - TotalNum: 100000, - RedList: []*webapi.RedInfo{ - { - Num: 1, - Rate: 5000, - }, - { - Num: 10, - Rate: 1000, - }, - { - Num: 20, - Rate: 1000, - }, - { - Num: 30, - Rate: 1000, - }, - }, - }, - }, - }, false) } func platformConfigEvent(ctx context.Context, completeKey string, isInit bool, event *clientv3.Event, data interface{}) { @@ -514,6 +364,8 @@ func platformConfigEvent(ctx context.Context, completeKey string, isInit bool, e PlatformMgrSingleton.GetConfig(config.Platform).GamePigBankPropConfig = config case *webapi.ActivityNianConfig: WelfareMgrSington.UpdateActivityNianStatus(config) + case *webapi.NianRankReward: + PlatformMgrSingleton.GetConfig(config.Platform).NianRankReward = config case *webapi.RedPacketConfig: WelfareMgrSington.UpdateRedPacket(config, isInit) case *webapi.ConsumeConfig: diff --git a/worldsrv/friendmgr.go b/worldsrv/friendmgr.go index 3c9c8af..1cd30a3 100644 --- a/worldsrv/friendmgr.go +++ b/worldsrv/friendmgr.go @@ -564,13 +564,69 @@ func (this *FriendMgr) FriendAgree(p *Player, destP *model.BindFriend) { } logger.Logger.Tracef(">>FriendAgree %d -> %d, %v", p.SnId, destP.SnId, pack) } + + // 删除申请者的申请列表 + delApplyListFunc := func(plt string, snid int32, applySnid int32) friend.OpResultCode { + // 删除被申请者的申请列表 + list1, err := model.QueryFriendApplyBySnid(plt, snid) + if err != nil { + logger.Logger.Errorf("QueryFriendApplyBySnid %v error: %v", snid, err) + return friend.OpResultCode_OPRC_Error + } + if list1 != nil { + k := 0 + for k < len(list1.ApplySnids) { + if list1.ApplySnids[k].SnId == applySnid { + list1.ApplySnids = append(list1.ApplySnids[:k], list1.ApplySnids[k+1:]...) + model.UpsertFriendApply(plt, snid, list1) + } else { + k++ + } + } + } + // 删除发起方的申请列表 + list2, err := model.QueryFriendApplyListBySnid(plt, applySnid) + if err != nil { + logger.Logger.Errorf("QueryFriendApplyListBySnid %v error: %v", applySnid, err) + return friend.OpResultCode_OPRC_Error + } + if list2 != nil { + k := 0 + for k < len(list2.List) { + if list2.List[k] == snid { + list2.List = append(list2.List[:k], list2.List[k+1:]...) + model.UpsertApplyList(plt, list2) + } else { + k++ + } + } + } + + if applySnid == destP.SnId && list2 != nil { + applyList = list2.List + } + + if applySnid == p.SnId && list2 != nil { + meApplyList = list2.List + } + + return friend.OpResultCode_OPRC_Sucess + } + me := FriendMgrSingleton.GetPlayer(p.Platform, p.SnId) if me == nil { SendToClick(friend.OpResultCode_OPRC_Error) return } if FriendMgrSingleton.IsFriend(p.Platform, p.SnId, destP.SnId) { //已经是好友了 - SendToClick(friend.OpResultCode_OPRC_Friend_AlreadyAdd) + // 删除申请者的申请列表 + task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { + delApplyListFunc(p.Platform, p.SnId, destP.SnId) + delApplyListFunc(p.Platform, destP.SnId, p.SnId) + return nil + }), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) { + SendToClick(friend.OpResultCode_OPRC_Friend_AlreadyAdd) + })).StartByFixExecutor(FriendWrite) return } //验证自己 @@ -612,54 +668,6 @@ func (this *FriendMgr) FriendAgree(p *Player, destP *model.BindFriend) { } } - // 删除申请者的申请列表 - delApplyListFunc := func(plt string, snid int32, applySnid int32) friend.OpResultCode { - // 删除被申请者的申请列表 - list1, err := model.QueryFriendApplyBySnid(plt, snid) - if err != nil { - logger.Logger.Errorf("QueryFriendApplyBySnid %v error: %v", snid, err) - return friend.OpResultCode_OPRC_Error - } - if list1 != nil { - k := 0 - for k < len(list1.ApplySnids) { - if list1.ApplySnids[k].SnId == applySnid { - list1.ApplySnids = append(list1.ApplySnids[:k], list1.ApplySnids[k+1:]...) - model.UpsertFriendApply(plt, snid, list1) - } else { - k++ - } - } - } - // 删除发起方的申请列表 - list2, err := model.QueryFriendApplyListBySnid(plt, applySnid) - if err != nil { - logger.Logger.Errorf("QueryFriendApplyListBySnid %v error: %v", applySnid, err) - return friend.OpResultCode_OPRC_Error - } - if list2 != nil { - k := 0 - for k < len(list2.List) { - if list2.List[k] == snid { - list2.List = append(list2.List[:k], list2.List[k+1:]...) - model.UpsertApplyList(plt, list2) - } else { - k++ - } - } - } - - if applySnid == destP.SnId && list2 != nil { - applyList = list2.List - } - - if applySnid == p.SnId && list2 != nil { - meApplyList = list2.List - } - - return friend.OpResultCode_OPRC_Sucess - } - //查看是否在申请列表 code := delApplyListFunc(p.Platform, p.SnId, destP.SnId) if code != friend.OpResultCode_OPRC_Sucess { diff --git a/worldsrv/mq.go b/worldsrv/mq.go index 36f0640..e2ab918 100644 --- a/worldsrv/mq.go +++ b/worldsrv/mq.go @@ -34,6 +34,8 @@ func init() { mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.BackSystemFreeGive, Data: &model.SystemFreeGive{}}) mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.DBLotteryCode, Data: &model.LotteryCode{}}) mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.DBLotteryLog, Data: &model.LotteryLog{}}) + mq.RegisterMessage(&mq.RegisterMessageParam{Name: model.MQRankNian, Data: &model.NianInfo{}}) + mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.NianPlayerRank, Data: &model.NianPlayerRankLog{}}) } func init() { diff --git a/worldsrv/player.go b/worldsrv/player.go index 28e3644..064d9ba 100644 --- a/worldsrv/player.go +++ b/worldsrv/player.go @@ -176,6 +176,14 @@ func (this *Player) init() bool { this.GuideData = make(map[int32]int32) } this.InitRolesAndPets() + // 数据修复 + if this.PlayerData != nil && this.PlayerData.WelfData != nil { + for k, v := range this.PlayerData.WelfData.Task { + if v == nil { + delete(this.PlayerData.WelfData.Task, k) + } + } + } return true } @@ -2893,6 +2901,13 @@ func (this *Player) DoShopInfo(info *model.DbShop, isLogin bool) { Num: 1, }) } + //年兽礼包 + if info.PageId == ShopPageNian { + if this.WelfData.NianData.GiftShop == nil { + this.WelfData.NianData.GiftShop = map[int32]int32{} + } + this.WelfData.NianData.GiftShop[info.ShopId] += 1 + } switch info.Remark { case "BlindBox": diff --git a/worldsrv/rankmatch.go b/worldsrv/rankmatch.go index b847046..7357426 100644 --- a/worldsrv/rankmatch.go +++ b/worldsrv/rankmatch.go @@ -647,6 +647,8 @@ func (r *RankMatchMgr) OnDayTimer() { logger.Logger.Info("(this *RankMatchMgr) OnDayTimer") //排行榜发奖 //r.RankAward() + //年兽排行榜发奖 + r.NianRankAward() for _, platform := range PlatformMgrSingleton.GetPlatforms() { if platform.IdStr == DefaultPlatform { continue @@ -930,6 +932,204 @@ func (r *RankMatchMgr) Save(platform string, snid int32, isSync, force bool) { })).StartByFixExecutor(fmt.Sprintf("platform%s", ret.Platform)) } +// 年兽排行榜发奖 +func (r *RankMatchMgr) NianRankAward() { + logger.Logger.Trace("年兽排行榜开始发奖!!!!") + for _, v := range PlatformMgrSingleton.GetPlatforms() { + platform := v.IdStr + rankConfig := PlatformMgrSingleton.GetConfig(platform).NianRankReward + if rankConfig == nil { + continue + } + pool := WelfareMgrSington.GetConfig(platform).ActivityNianConfig + if pool == nil || pool.List == nil { + return + } + if pool.Switch == model.WelfareClose { + return + } + startTime := pool.List[0].ActivityStart + endTime := pool.List[0].ActivityEnd + t, _ := time.Parse(time.DateTime, startTime) + // 转换为时间戳(以秒为单位) + timestamp := t.Unix() + end, _ := time.Parse(time.DateTime, endTime) + endTimestamp := end.Unix() + nowTime := time.Now().Unix() + if nowTime < timestamp || nowTime > endTimestamp { + return + } + log := &model.NianPlayerRankLog{} + log.Ts = time.Now().Unix() + log.Platform = platform + for _, info := range rankConfig.RankData { + if info.TypeId == 1 { + log.TypeId = info.TypeId + rankAward := info.RankInfo + if rankAward == nil { + continue + } + var players []*model.PlayerBaseInfo + list, err := model.FindLuckNianRankList(&model.FindNianListArgs{ + Platform: platform, + }) + task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { + for _, vv := range list.List { + player := PlayerMgrSington.GetPlayerBySnId(vv.SnId) + if player != nil { + players = append(players, &model.PlayerBaseInfo{ + SnId: player.SnId, + LastChannel: player.LastChannel, + }) + } else { + baseInfo := model.GetPlayerBaseInfo(platform, vv.SnId) + players = append(players, baseInfo) + } + } + return nil + }), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) { + if err != nil { + logger.Logger.Errorf("RankMatchMgr OnDayTimer FindLuckNianRankList err:%v", err) + return + } + rankId := int32(1) + for k, player := range players { + if player == nil { + logger.Logger.Errorf("RankMatchMgr OnDayTimer FindLuckNianRankList player is nil %v", list.List[k].SnId) + continue + } + var items []int64 + for _, award := range rankAward[rankId].Award { + items = append(items, int64(award.ItemId)) + items = append(items, award.ItemNum) + } + if len(items) == 0 { + break + } + // 发邮件 + var newMsg *model.Message + task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { + title := i18n.Tr("languages", "NianLuckTitle") + content := i18n.Tr("languages", "NianLuckAward", []int{int(rankId), int(rankId), int(rankId), int(rankId)}) + newMsg = model.NewMessage("", 0, "", player.SnId, model.MSGTYPE_RANK_REWARD, + title, content, 0, 0, model.MSGSTATE_UNREAD, time.Now().Unix(), 0, "", items, platform, model.HallTienlen, nil) + err := model.InsertMessage(platform, newMsg) + if err != nil { + logger.Logger.Errorf("发送邮件失败 snid:%v err:%v", player.SnId, err) + return err + } + return nil + }), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) { + p := PlayerMgrSington.GetPlayerBySnId(player.SnId) + if p != nil { + p.AddMessage(newMsg) + } + })).Start() + //记录log + rankData := &model.NianPlayerRankData{ + RankId: rankId, + Snid: player.SnId, + Score: list.List[rankId-1].Luck, + } + log.RankData = append(log.RankData, rankData) + rankId += 1 + } + mq.Write(log) + //清除幸运榜数值 + err := model.ClearNianRank(&model.FindNianListArgs{ + Platform: platform, + }) + if err != nil { + logger.Logger.Errorf("清除幸运榜数值失败 err:%v", err) + } + + })).StartByExecutor("NianLuck_Award") + } else if info.TypeId == 2 { + if time.Now().Day()-1 != end.Day() { + return + } + rankAward := info.RankInfo + if rankAward == nil { + continue + } + var players []*model.PlayerBaseInfo + log.TypeId = info.TypeId + list, err := model.FindDamageNianRankList(&model.FindNianListArgs{ + Platform: platform, + }) + task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { + for _, vv := range list.List { + player := PlayerMgrSington.GetPlayerBySnId(vv.SnId) + if player != nil { + players = append(players, &model.PlayerBaseInfo{ + SnId: player.SnId, + LastChannel: player.LastChannel, + }) + } else { + baseInfo := model.GetPlayerBaseInfo(platform, vv.SnId) + players = append(players, baseInfo) + } + } + return nil + }), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) { + if err != nil { + logger.Logger.Errorf("RankMatchMgr OnDayTimer FindLuckNianRankList err:%v", err) + return + } + rankId := int32(1) + for k, player := range players { + if player == nil { + logger.Logger.Errorf("RankMatchMgr OnDayTimer FindLuckNianRankList player is nil %v", list.List[k].SnId) + continue + } + var items []int64 + for _, award := range rankAward[rankId].Award { + items = append(items, int64(award.ItemId)) + items = append(items, award.ItemNum) + } + if len(items) == 0 { + break + } + // 发邮件 + var newMsg *model.Message + task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { + title := i18n.Tr("languages", "NianDamageTitle") + content := i18n.Tr("languages", "NianDamageAward", []int{int(rankId), int(rankId), int(rankId), int(rankId)}) + newMsg = model.NewMessage("", 0, "", player.SnId, model.MSGTYPE_RANK_REWARD, + title, content, 0, 0, model.MSGSTATE_UNREAD, time.Now().Unix(), 0, "", items, platform, model.HallTienlen, nil) + err := model.InsertMessage(platform, newMsg) + if err != nil { + logger.Logger.Errorf("发送邮件失败 snid:%v err:%v", player.SnId, err) + return err + } + return nil + }), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) { + p := PlayerMgrSington.GetPlayerBySnId(player.SnId) + if p != nil { + p.AddMessage(newMsg) + } + })).Start() + rankData := &model.NianPlayerRankData{ + RankId: rankId, + Snid: player.SnId, + Score: list.List[rankId-1].Damage, + } + log.RankData = append(log.RankData, rankData) + rankId += 1 + } + mq.Write(log) + //删除数据库数据 + err := model.DelNianRank(&model.FindNianListArgs{ + Platform: platform, + }) + if err != nil { + logger.Logger.Errorf("删除年兽排行榜数据库数据 err:%v", err) + } + })).StartByExecutor("NianDamage_Award") + } + } + } +} func (r *RankMatchMgr) Release(platform string, snid int32) { delete(r.playerSeasons, snid) } diff --git a/worldsrv/shopmgr.go b/worldsrv/shopmgr.go index a46f850..b076fc4 100644 --- a/worldsrv/shopmgr.go +++ b/worldsrv/shopmgr.go @@ -46,16 +46,16 @@ const ( // page类型 const ( - ShopPageCoin = 1 //金币页面 - ShopPageDiamond = 2 //钻石页面 - ShopPageItem = 3 //道具页面 - ShopPageVip = 4 //VIP页面 - ShopPagePrivilege = 5 //VIP特权礼包 - ShopPageGift = 7 //礼包页面 - ShopPageDiamondBank = 8 //钻石存储罐 - ShopPagePermit = 9 //赛季通行证 - ShopPageFangKa = 10 //房卡页面 - + ShopPageCoin = 1 //金币页面 + ShopPageDiamond = 2 //钻石页面 + ShopPageItem = 3 //道具页面 + ShopPageVip = 4 //VIP页面 + ShopPagePrivilege = 5 //VIP特权礼包 + ShopPageGift = 7 //礼包页面 + ShopPageDiamondBank = 8 //钻石存储罐 + ShopPagePermit = 9 //赛季通行证 + ShopPageFangKa = 10 //房卡页面 + ShopPageNian = 12 //年兽活动页面 ShopPagePhoneScore = 61 //手机积分商城 ShopPagePhoneScoreGoogle = 62 ShopPageBackend = 63 //并不是页面,是后台加币记录类型 diff --git a/worldsrv/taskmgr.go b/worldsrv/taskmgr.go index c66e450..ec6089c 100644 --- a/worldsrv/taskmgr.go +++ b/worldsrv/taskmgr.go @@ -200,7 +200,7 @@ func (t *TaskHandle) AllTask(id int, data any) { switch v.GetActivityType() { case common.TaskActivityTypeNianEveryDay, common.TaskActivityTypeNian: //判断是否在开启时间段内 - pool := PlatformMgrSingleton.GetConfig(p.Platform).ActivityNianConfig + pool := WelfareMgrSington.GetConfig(p.Platform).ActivityNianConfig if pool == nil || pool.List == nil { continue } @@ -340,7 +340,7 @@ func IsTaskReward(p *Player, id int32) bool { } return true case common.TaskActivityTypeNian: - pool := PlatformMgrSingleton.GetConfig(p.Platform).ActivityNianConfig + pool := WelfareMgrSington.GetConfig(p.Platform).ActivityNianConfig if pool == nil || pool.List == nil { return false } @@ -402,6 +402,14 @@ func SendTaskReward(p *Player, m map[int64]int64, tp int32) { case 6: gain = common.GainWayItemTaskPermit giveType = model.SystemFreeGive_GiveType_TaskPermit + case 8: + gain = common.GainWayNianGain_EveryDayTask + giveType = model.SystemFreeGive_NianEveryDayTask + case 9: + gain = common.GainWayNianGain_Task + giveType = model.SystemFreeGive_NianTask + case 10: + gain = common.GainWayConsume } BagMgrSingleton.AddItems(&model.AddItemParam{ Platform: p.Platform, @@ -463,6 +471,9 @@ func init() { TaskSubjectSingleton.Attach(common.TaskTypeRankMatchWinTimes, taskHandle) TaskSubjectSingleton.Attach(common.TaskTypeBuyPermit, taskHandle) TaskSubjectSingleton.Attach(common.TaskTypeBuyRedBag, taskHandle) + TaskSubjectSingleton.Attach(common.TaskTypeNianBossKill, taskHandle) + TaskSubjectSingleton.Attach(common.TaskTypeNianBossDamage, taskHandle) + TaskSubjectSingleton.Attach(common.TaskTypeNianSign, taskHandle) internal.RegisterPlayerListenerFunc(&internal.PlayerListenerFunc[*Player, *Scene]{ OnPlayerDayChangedFunc: func(p *Player, isLogin, isContinue bool) { diff --git a/worldsrv/trascate_webapi.go b/worldsrv/trascate_webapi.go index 4e22871..1792b46 100644 --- a/worldsrv/trascate_webapi.go +++ b/worldsrv/trascate_webapi.go @@ -2304,6 +2304,7 @@ func init() { return err } InviteTask(msg.Platform, psnid, info.SnId, common.InviteScoreTypePay, int64(info.ConsumeNum)) + return nil }), nil, "InvitePayTask").Start() } diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index eb48281..c9eea81 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -1017,6 +1017,13 @@ func (this *WelfareMgr) WelfareSwitch(p *Player, platform string, op int) { } else { pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareClose) } + // 累消活动 + consumeConfig := info.ConsumeConfig + if consumeConfig != nil { + pack.WelfareSwitch = append(pack.WelfareSwitch, consumeConfig.On) //累消活动开关 + } else { + pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareClose) + } if model.GameParamData.TestActSwitch { for k := range pack.WelfareSwitch { @@ -2215,8 +2222,9 @@ func (this *WelfareMgr) DayReserNian(p *Player) { p.WelfData.NianData.BuffCount = 0 p.WelfData.NianData.SignAwardTime = 0 p.WelfData.NianData.OtherAwardNum = make(map[int32]int32) + p.WelfData.NianData.AttackMaxHp = 0 + p.WelfData.NianData.GiftShop = make(map[int32]int32) } - } // 年兽活动结束清除数据 @@ -2224,10 +2232,15 @@ func (this *WelfareMgr) ClearActivityNianData(p *Player) { if p != nil && p.WelfData != nil && p.WelfData.NianData != nil { p.WelfData.NianData = nil //清除任务数据 - for id, _ := range p.WelfData.Task { - data := srvdata.PBDB_TaskMgr.GetData(id) - if data.ActivityType == common.TaskActivityTypeNianEveryDay || data.ActivityType == common.TaskActivityTypeNian { - p.WelfData.Task[id] = nil + if p.WelfData.Task != nil { + for id, _ := range p.WelfData.Task { + data := srvdata.PBDB_TaskMgr.GetData(id) + if data == nil { + continue + } + if data.ActivityType == common.TaskActivityTypeNianEveryDay || data.ActivityType == common.TaskActivityTypeNian { + delete(p.WelfData.Task, id) + } } } } @@ -2280,7 +2293,7 @@ func (this *WelfareMgr) SendRedPacketInfo(p *Player) *welfare.SCRedPacketInfo { continue } startTs, endTs := common.IntToTime(int(v.GetStartHMS())).Unix(), common.IntToTime(int(v.GetEndHMS())).Unix() - if now < startTs || now >= endTs { + if now >= endTs { continue } info := &welfare.RedPacketInfo{ @@ -2291,11 +2304,11 @@ func (this *WelfareMgr) SendRedPacketInfo(p *Player) *welfare.SCRedPacketInfo { } if p.WelfData != nil && p.WelfData.RedPacket != nil { if p.WelfData.RedPacket[v.GetId()] != nil { - info.IsJoin = p.WelfData.RedPacket[v.GetId()].JN > 0 + info.IsJoin = p.WelfData.RedPacket[v.GetId()].JN > 0 || p.WelfData.RedPacket[v.GetId()].N > 0 } } _, info.RemainCount = RedPacketMgrInst.GetRemainTimesByConfig(p, v) - if info.RemainCount > 0 { + if info.RemainCount > 0 || info.RemainCount == -1 { pack.Info = append(pack.Info, info) } } @@ -2323,6 +2336,10 @@ func (this *WelfareMgr) GetRedPacket(p *Player, id int64) *welfare.SCRedPacketDr return nil } + if p.WelfData.RedPacket == nil { + p.WelfData.RedPacket = make(map[int64]*model.RedPacketData) + } + if p.WelfData.RedPacket[id] == nil { p.WelfData.RedPacket[id] = &model.RedPacketData{} } @@ -2332,14 +2349,14 @@ func (this *WelfareMgr) GetRedPacket(p *Player, id int64) *welfare.SCRedPacketDr // 记录参与次数 if id == 0 { for _, v := range this.GetConfig(p.Platform).RedPacketConfig.GetList() { - if now >= common.IntToTime(int(v.GetStartHMS())).Unix() || now < common.IntToTime(int(v.GetEndHMS())).Unix() { + if v.GetOn() == common.On && now >= common.IntToTime(int(v.GetStartHMS())).Unix() || now < common.IntToTime(int(v.GetEndHMS())).Unix() { if p.WelfData.RedPacket[v.GetId()] == nil { p.WelfData.RedPacket[v.GetId()] = &model.RedPacketData{} } p.WelfData.RedPacket[v.GetId()].JN++ } } - Send(welfare.OpResultCode_OPRC_Sucess) + //Send(welfare.OpResultCode_OPRC_Sucess) return pack } @@ -2424,6 +2441,7 @@ func (this *WelfareMgr) GetRedPacket(p *Player, id int64) *welfare.SCRedPacketDr RedPacketMgrInst.AddUse(p.Platform, id, reward) if reward > 0 { data.RN++ + pack.Award = []*welfare.PropInfo{{ItemId: cfg.GetItemId(), ItemNum: reward}} BagMgrSingleton.AddItems(&model.AddItemParam{ Platform: p.Platform, SnId: p.GetSnId(), @@ -2434,15 +2452,35 @@ func (this *WelfareMgr) GetRedPacket(p *Player, id int64) *welfare.SCRedPacketDr }) } - //todo 抽奖记录 + mq.Write(&model.BackRedPacket{ + Platform: p.Platform, + Id: int32(id), + SnId: p.GetSnId(), + ItemId: cfg.GetItemId(), + ItemNum: reward, + Ts: now, + }, mq.BackRedPacket) _, pack.RemainCount = RedPacketMgrInst.GetRemainTimesByConfig(p, cfg) - p.SendToClient(int(welfare.SPacketID_PACKET_SCRedPacketDraw), pack) + Send(welfare.OpResultCode_OPRC_Sucess) return pack } func (this *WelfareMgr) UpdateConsumeConfig(conf *webapi_proto.ConsumeConfig) { + if model.GameParamData.TestActSwitch { + conf.On = model.WelfareOpen + } + s := int32(0) + info := this.GetConfig(conf.Platform) + if info.ConsumeConfig != nil { + s = info.ConsumeConfig.On + } this.GetConfig(conf.Platform).ConsumeConfig = conf + //更新活动时间 + // 打开关闭要广播给客户端 + if s != 0 && s != conf.On { + this.WelfareSwitch(nil, conf.Platform, model.OpConsume) + } } func (this *WelfareMgr) Update() { diff --git a/xlsx/DB_NewYearActivity.xlsx b/xlsx/DB_NewYearActivity.xlsx index c47938b..809217a 100644 Binary files a/xlsx/DB_NewYearActivity.xlsx and b/xlsx/DB_NewYearActivity.xlsx differ diff --git a/xlsx/DB_NewYearRankReward.xlsx b/xlsx/DB_NewYearRankReward.xlsx deleted file mode 100644 index 8aacb03..0000000 Binary files a/xlsx/DB_NewYearRankReward.xlsx and /dev/null differ diff --git a/xlsx/DB_Task.xlsx b/xlsx/DB_Task.xlsx index d7d8acf..2fe8af9 100644 Binary files a/xlsx/DB_Task.xlsx and b/xlsx/DB_Task.xlsx differ