Compare commits

..

No commits in common. "71b5e2599dbe0c04bdb52860a20317764a621ea0" and "df9ebec2e2872fdd3e59d174b5b22dd33a50a1da" have entirely different histories.

211 changed files with 19426 additions and 11728 deletions

1
.gitignore vendored
View File

@ -20,7 +20,6 @@ _cgo_gotypes.go
_cgo_export.*
_testmain.go
tools/xlsx2binary/agc.go
*.exe
*.exe~

View File

@ -313,9 +313,6 @@ const (
GainWay_TaskReward = 62 //62.任务奖励
GainWay_Interact = 63 //63.房间内互动效果
GainWay_Collect = 64 //64.集卡活动
GainWay_WeekCardAward = 65 //65.周卡每日奖励
GainWay_PigrankTakeCoin = 66 //66.存钱罐领取耗费钻石
GainWay_PigrankGainCoin = 67 //66.存钱罐打开获取金币
)
// 后台选择 金币变化类型 的充值 类型id号起始
@ -615,10 +612,6 @@ const (
ItemIDWeekScore = 100004 // 周活跃积分
ItemIDGiftBox = 50001 // 碎片礼盒
ItemIDCollectBox = 50002 // 集卡礼盒
ItemIDLike = 100007 // 点赞
ItemIDCoffee = 100008 // 咖啡
ItemIDBucket = 100009 // 水桶
ItemIDSlippers = 100010 // 拖鞋
)
func ToItemId(id int32) int32 {
@ -645,7 +638,6 @@ const (
ItemTypeVipExp = 10 //VIP经验
ItemTypeShopScore = 11 //积分
ItemTypeInteract = 12 // 互动表情
ItemTypeExpireTime = 15 // 时效类道具
)
func GetKeyNoviceGameId(gameId int) string {
@ -726,7 +718,6 @@ const (
TaskActivityTypeWeek = 2 // 每周任务
TaskActivityTypeNovice = 3 // 新手任务
TaskActivityTypeInvite = 4 // 邀请任务
TaskActivityTypeAchieve = 5 // 成就任务
)
const HeadRange = 3 // 机器人头像id范围

View File

@ -77,29 +77,3 @@
:<08><><18><EFBFBD><E998BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>俛樗(<28><EFBFBD>%0d8<64>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>H璞<48><E7929E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>P
;<08><><18><E99B89><E285A4><EFBFBD><EFBFBD> <20><><EFBFBD>(<28>蓁〆0d8<64>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>H璞<48><E7929E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>P
;<08><><18>跡球<E8B7A1><E79083><EFBFBD><EFBFBD> <20><EFBFBD><E58784>:(<28><><EFBFBD><EFBFBD><EFBFBD>0d8<64>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>H璞<48><E7929E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>P
ÑÛ·€›îÀ–± €ÚÄ XÈ` ÝŒ
ÒÛ·€ŽÎ€áë €„¯_XÈ`À¤ÿ
ÓÛ·€Æ†<C386>€åšw €”ëÜ`À¶üš
ÔÛ·€Œ<E282AC>ž€Êµî €¨Ö¹`€íøµ
᩸€›îÀ–± €ÚÄ XÈ` ÝŒ
⩸€ŽÎ€áë €„¯_XÈ`À¤ÿ
㩸€Æ†<C386>€åšw €”ëÜ`À¶üš
䩸€Œ<E282AC>ž€Êµî €¨Ö¹`€íøµ
ñ÷¸€›îÀ–± €ÚÄ XÈ` ÝŒ
ò÷¸€ŽÎ€áë €„¯_XÈ`À¤ÿ
ó÷¸€Æ†<C386>€åšw €”ëÜ`À¶üš
ô÷¸€Œ<E282AC>ž€Êµî €¨Ö¹`€íøµ
<08>ƹ€›îÀ–± €„¯_XÈ` ÝŒ
‚ƹ€Æ†<C386>€åšw €”ëÜ`À¶üš
ƒÆ¹€Œ<E282AC>ž€Êµî €¨Ö¹`€íøµ
‘”º€›îÀ–± €„¯_XÈ` ÝŒ
’”º€Æ†<C386>€åšw €”ëÜ`À¶üš
“”º€Œ<E282AC>ž€Êµî €¨Ö¹`€íøµ
¡âº€›îÀ–± €ÚÄ XÈ` ÝŒ
¢âº€ŽÎ€áë €„¯_XÈ`À¤ÿ
£âº€Æ†<C386>€åšw €”ëÜ`À¶üš
¤âº€Œ<E282AC>ž€Êµî €¨Ö¹`€íøµ
±°»€›îÀ–± €ÚÄ XÈ` ÝŒ
²°»€ŽÎ€áë €„¯_XÈ`À¤ÿ
³°»€Æ†<C386>€åšw €”ëÜ`À¶üš
´°»€Œ<E282AC>ž€Êµî €¨Ö¹`€íøµ

View File

@ -857,214 +857,6 @@
"LowerOdds": -100,
"LowerOddsMax": -800,
"ProfitRate": 20
},
{
"Id": 3010001,
"InitValue": 6000000,
"LowerLimit": 5000000,
"UpperLimit": 20000000,
"CtrlRate": 200,
"InitNovicValue": 6500000
},
{
"Id": 3010002,
"InitValue": 60000000,
"LowerLimit": 50000000,
"UpperLimit": 200000000,
"CtrlRate": 200,
"InitNovicValue": 65000000
},
{
"Id": 3010003,
"InitValue": 300000000,
"LowerLimit": 250000000,
"UpperLimit": 1000000000,
"CtrlRate": 200,
"InitNovicValue": 325000000
},
{
"Id": 3010004,
"InitValue": 600000000,
"LowerLimit": 500000000,
"UpperLimit": 2000000000,
"CtrlRate": 200,
"InitNovicValue": 650000000
},
{
"Id": 3020001,
"InitValue": 6000000,
"LowerLimit": 5000000,
"UpperLimit": 20000000,
"CtrlRate": 200,
"InitNovicValue": 6500000
},
{
"Id": 3020002,
"InitValue": 60000000,
"LowerLimit": 50000000,
"UpperLimit": 200000000,
"CtrlRate": 200,
"InitNovicValue": 65000000
},
{
"Id": 3020003,
"InitValue": 300000000,
"LowerLimit": 250000000,
"UpperLimit": 1000000000,
"CtrlRate": 200,
"InitNovicValue": 325000000
},
{
"Id": 3020004,
"InitValue": 600000000,
"LowerLimit": 500000000,
"UpperLimit": 2000000000,
"CtrlRate": 200,
"InitNovicValue": 650000000
},
{
"Id": 3030001,
"InitValue": 6000000,
"LowerLimit": 5000000,
"UpperLimit": 20000000,
"CtrlRate": 200,
"InitNovicValue": 6500000
},
{
"Id": 3030002,
"InitValue": 60000000,
"LowerLimit": 50000000,
"UpperLimit": 200000000,
"CtrlRate": 200,
"InitNovicValue": 65000000
},
{
"Id": 3030003,
"InitValue": 300000000,
"LowerLimit": 250000000,
"UpperLimit": 1000000000,
"CtrlRate": 200,
"InitNovicValue": 325000000
},
{
"Id": 3030004,
"InitValue": 600000000,
"LowerLimit": 500000000,
"UpperLimit": 2000000000,
"CtrlRate": 200,
"InitNovicValue": 650000000
},
{
"Id": 3040001,
"InitValue": 6000000,
"LowerLimit": 5000000,
"UpperLimit": 200000000,
"CtrlRate": 200,
"InitNovicValue": 6500000
},
{
"Id": 3040002,
"InitValue": 300000000,
"LowerLimit": 250000000,
"UpperLimit": 1000000000,
"CtrlRate": 200,
"InitNovicValue": 325000000
},
{
"Id": 3040003,
"InitValue": 600000000,
"LowerLimit": 500000000,
"UpperLimit": 2000000000,
"CtrlRate": 200,
"InitNovicValue": 650000000
},
{
"Id": 3050001,
"InitValue": 6000000,
"LowerLimit": 5000000,
"UpperLimit": 200000000,
"CtrlRate": 200,
"InitNovicValue": 6500000
},
{
"Id": 3050002,
"InitValue": 300000000,
"LowerLimit": 250000000,
"UpperLimit": 1000000000,
"CtrlRate": 200,
"InitNovicValue": 325000000
},
{
"Id": 3050003,
"InitValue": 600000000,
"LowerLimit": 500000000,
"UpperLimit": 2000000000,
"CtrlRate": 200,
"InitNovicValue": 650000000
},
{
"Id": 3060001,
"InitValue": 6000000,
"LowerLimit": 5000000,
"UpperLimit": 20000000,
"CtrlRate": 200,
"InitNovicValue": 6500000
},
{
"Id": 3060002,
"InitValue": 60000000,
"LowerLimit": 50000000,
"UpperLimit": 200000000,
"CtrlRate": 200,
"InitNovicValue": 65000000
},
{
"Id": 3060003,
"InitValue": 300000000,
"LowerLimit": 250000000,
"UpperLimit": 1000000000,
"CtrlRate": 200,
"InitNovicValue": 325000000
},
{
"Id": 3060004,
"InitValue": 600000000,
"LowerLimit": 500000000,
"UpperLimit": 2000000000,
"CtrlRate": 200,
"InitNovicValue": 650000000
},
{
"Id": 3070001,
"InitValue": 6000000,
"LowerLimit": 5000000,
"UpperLimit": 20000000,
"CtrlRate": 200,
"InitNovicValue": 6500000
},
{
"Id": 3070002,
"InitValue": 60000000,
"LowerLimit": 50000000,
"UpperLimit": 200000000,
"CtrlRate": 200,
"InitNovicValue": 65000000
},
{
"Id": 3070003,
"InitValue": 300000000,
"LowerLimit": 250000000,
"UpperLimit": 1000000000,
"CtrlRate": 200,
"InitNovicValue": 325000000
},
{
"Id": 3070004,
"InitValue": 600000000,
"LowerLimit": 500000000,
"UpperLimit": 2000000000,
"CtrlRate": 200,
"InitNovicValue": 650000000
}
]
}

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -1,20 +0,0 @@
{
"Arr": [
{
"Id": 1,
"ShopID": 970001,
"Name": "7日礼品卡",
"Rewards": {
"100001": 5000000,
"50001": 10
},
"DayRewards": {
"100001": 1000000
},
"Time": 7,
"Equity": [
0
]
}
]
}

View File

@ -1,4 +0,0 @@
 
 (
<18>チラ/ 2

View File

@ -1,22 +0,0 @@
{
"Arr": [
{
"Id": 1,
"BuyCountMin": 1,
"BuyCountMax": 1,
"CostDiamond": 30
},
{
"Id": 2,
"BuyCountMin": 2,
"BuyCountMax": 2,
"CostDiamond": 40
},
{
"Id": 3,
"BuyCountMin": 3,
"BuyCountMax": 99999999,
"CostDiamond": 50
}
]
}

View File

@ -1,4 +0,0 @@
 BankMaxCoinÀÓ
 WinCoinRate
 LoseCoinRate

View File

@ -1,19 +0,0 @@
{
"Arr": [
{
"Id": 1,
"PorpName": "BankMaxCoin",
"PropValue": 15000000
},
{
"Id": 2,
"PorpName": "WinCoinRate",
"PropValue": 5
},
{
"Id": 3,
"PorpName": "LoseCoinRate",
"PropValue": 10
}
]
}

View File

@ -1,5 +1,5 @@
6Ó†Ô†Õ†Ö†׆"¡<>À„=
.и<EFBFBD>й<>к<>л<EFBFBD>"Ё<>Р<>=
Wд<EFBFBD>е<>ж<>з<>л<>г<>и<>й<>к<EFBFBD>" Ё<><10>­т
]м<EFBFBD>д<>ж<>з<>и<>л<>г<>е<>й<>к<EFBFBD>"Ђ<>є
.к<EFBFBD>л<>и<>й<EFBFBD>"Ё<>Р<>=
Wг<EFBFBD>е<>к<>и<>й<>л<>д<>ж<>з<EFBFBD>" Ё<><10>­т
]з<EFBFBD>и<>й<>к<>л<>м<>д<>е<>г<>ж<EFBFBD>"Ђ<>є

Binary file not shown.

View File

@ -2,7 +2,6 @@
"Arr": [
{
"Id": 1,
"Order": 1,
"ActivityType": 1,
"TaskType": 1,
"TargetTimes": 1,
@ -18,7 +17,6 @@
},
{
"Id": 2,
"Order": 2,
"ActivityType": 1,
"TaskType": 2,
"TargetTimes": 1,
@ -34,7 +32,6 @@
},
{
"Id": 3,
"Order": 3,
"ActivityType": 1,
"TaskType": 3,
"TargetTimes": 1,
@ -46,7 +43,6 @@
},
{
"Id": 4,
"Order": 4,
"ActivityType": 1,
"TaskType": 4,
"TargetTimes": 1,
@ -59,7 +55,6 @@
},
{
"Id": 5,
"Order": 5,
"ActivityType": 1,
"TaskType": 5,
"TargetTimes": 10,
@ -72,7 +67,6 @@
},
{
"Id": 6,
"Order": 6,
"ActivityType": 1,
"TaskType": 6,
"TargetTimes": 1,
@ -85,7 +79,6 @@
},
{
"Id": 7,
"Order": 1,
"ActivityType": 2,
"TaskType": 14,
"TargetTimes": 200,
@ -96,7 +89,6 @@
},
{
"Id": 8,
"Order": 2,
"ActivityType": 2,
"TaskType": 14,
"TargetTimes": 300,
@ -107,7 +99,6 @@
},
{
"Id": 9,
"Order": 3,
"ActivityType": 2,
"TaskType": 14,
"TargetTimes": 400,
@ -118,7 +109,6 @@
},
{
"Id": 10,
"Order": 4,
"ActivityType": 2,
"TaskType": 14,
"TargetTimes": 500,
@ -129,7 +119,6 @@
},
{
"Id": 11,
"Order": 5,
"ActivityType": 2,
"TaskType": 14,
"TargetTimes": 600,
@ -140,7 +129,6 @@
},
{
"Id": 12,
"Order": 1,
"ActivityType": 3,
"TaskType": 10,
"TargetTimes": 1,
@ -152,7 +140,6 @@
},
{
"Id": 13,
"Order": 2,
"ActivityType": 3,
"TaskType": 5,
"TargetTimes": 10,
@ -165,7 +152,6 @@
},
{
"Id": 14,
"Order": 3,
"ActivityType": 3,
"TaskType": 11,
"TargetTimes": 10000000,
@ -176,7 +162,6 @@
},
{
"Id": 15,
"Order": 4,
"ActivityType": 3,
"TaskType": 4,
"TargetTimes": 10,
@ -189,7 +174,6 @@
},
{
"Id": 16,
"Order": 5,
"ActivityType": 3,
"TaskType": 16,
"TargetTimes": 3,
@ -201,10 +185,9 @@
},
{
"Id": 17,
"Order": 1,
"ActivityType": 4,
"TaskType": 13,
"TargetTimes": 10000,
"TargetTimes": 1000,
"FinishTimes": 1,
"Award": {
"100001": 1000000,
@ -213,10 +196,9 @@
},
{
"Id": 18,
"Order": 2,
"ActivityType": 4,
"TaskType": 13,
"TargetTimes": 50000,
"TargetTimes": 10000,
"FinishTimes": 1,
"Award": {
"100001": 10000000,
@ -225,10 +207,9 @@
},
{
"Id": 19,
"Order": 3,
"ActivityType": 4,
"TaskType": 13,
"TargetTimes": 200000,
"TargetTimes": 20000,
"FinishTimes": 1,
"Award": {
"100001": 20000000,
@ -237,495 +218,14 @@
},
{
"Id": 20,
"Order": 4,
"ActivityType": 4,
"TaskType": 13,
"TargetTimes": 1000000,
"TargetTimes": 50000,
"FinishTimes": 1,
"Award": {
"100001": 50000000,
"100002": 100
}
},
{
"Id": 10001,
"Order": 1,
"ActivityType": 5,
"TaskType": 11,
"TargetTimes": 100000000,
"FinishTimes": 1,
"Award": {
"100001": 1000000,
"100002": 10
},
"GameType": 1
},
{
"Id": 10002,
"Order": 7,
"ActivityType": 5,
"TaskType": 11,
"TargetTimes": 1000000000,
"FinishTimes": 1,
"Award": {
"100001": 2000000,
"100002": 20
},
"GameType": 1
},
{
"Id": 10003,
"Order": 13,
"ActivityType": 5,
"TaskType": 11,
"TargetTimes": 10000000000,
"FinishTimes": 1,
"Award": {
"100001": 3000000,
"100002": 30
},
"GameType": 1
},
{
"Id": 10004,
"Order": 19,
"ActivityType": 5,
"TaskType": 11,
"TargetTimes": 100000000000,
"FinishTimes": 1,
"Award": {
"100001": 5000000,
"100002": 50
},
"GameType": 1
},
{
"Id": 10005,
"Order": 25,
"ActivityType": 5,
"TaskType": 11,
"TargetTimes": 500000000000,
"FinishTimes": 1,
"Award": {
"100001": 10000000,
"100002": 100
},
"GameType": 1
},
{
"Id": 10006,
"Order": 31,
"ActivityType": 5,
"TaskType": 11,
"TargetTimes": 1000000000000,
"FinishTimes": 1,
"Award": {
"100001": 20000000,
"100002": 200
},
"GameType": 1
},
{
"Id": 20001,
"Order": 2,
"ActivityType": 5,
"TaskType": 5,
"TargetTimes": 100,
"FinishTimes": 1,
"Award": {
"100001": 1000000,
"100002": 10
},
"GameType": 1
},
{
"Id": 20002,
"Order": 8,
"ActivityType": 5,
"TaskType": 5,
"TargetTimes": 1000,
"FinishTimes": 1,
"Award": {
"100001": 2000000,
"100002": 20
},
"GameType": 1
},
{
"Id": 20003,
"Order": 14,
"ActivityType": 5,
"TaskType": 5,
"TargetTimes": 5000,
"FinishTimes": 1,
"Award": {
"100001": 3000000,
"100002": 30
},
"GameType": 1
},
{
"Id": 20004,
"Order": 20,
"ActivityType": 5,
"TaskType": 5,
"TargetTimes": 10000,
"FinishTimes": 1,
"Award": {
"100001": 5000000,
"100002": 50
},
"GameType": 1
},
{
"Id": 20005,
"Order": 26,
"ActivityType": 5,
"TaskType": 5,
"TargetTimes": 50000,
"FinishTimes": 1,
"Award": {
"100001": 10000000,
"100002": 100
},
"GameType": 1
},
{
"Id": 20006,
"Order": 32,
"ActivityType": 5,
"TaskType": 5,
"TargetTimes": 100000,
"FinishTimes": 1,
"Award": {
"100001": 20000000,
"100002": 200
},
"GameType": 1
},
{
"Id": 30001,
"Order": 3,
"ActivityType": 5,
"TaskType": 4,
"TargetTimes": 100,
"FinishTimes": 1,
"Award": {
"100001": 1000000,
"100002": 10
},
"GameType": 1
},
{
"Id": 30002,
"Order": 9,
"ActivityType": 5,
"TaskType": 4,
"TargetTimes": 1000,
"FinishTimes": 1,
"Award": {
"100001": 2000000,
"100002": 20
},
"GameType": 1
},
{
"Id": 30003,
"Order": 15,
"ActivityType": 5,
"TaskType": 4,
"TargetTimes": 5000,
"FinishTimes": 1,
"Award": {
"100001": 3000000,
"100002": 30
},
"GameType": 1
},
{
"Id": 30004,
"Order": 21,
"ActivityType": 5,
"TaskType": 4,
"TargetTimes": 10000,
"FinishTimes": 1,
"Award": {
"100001": 5000000,
"100002": 50
},
"GameType": 1
},
{
"Id": 30005,
"Order": 27,
"ActivityType": 5,
"TaskType": 4,
"TargetTimes": 50000,
"FinishTimes": 1,
"Award": {
"100001": 10000000,
"100002": 100
},
"GameType": 1
},
{
"Id": 30006,
"Order": 33,
"ActivityType": 5,
"TaskType": 4,
"TargetTimes": 100000,
"FinishTimes": 1,
"Award": {
"100001": 20000000,
"100002": 200
},
"GameType": 1
},
{
"Id": 40001,
"Order": 4,
"ActivityType": 5,
"TaskType": 6,
"TargetTimes": 100,
"FinishTimes": 1,
"Award": {
"100001": 1000000,
"100002": 10
},
"GameType": 1
},
{
"Id": 40002,
"Order": 10,
"ActivityType": 5,
"TaskType": 6,
"TargetTimes": 1000,
"FinishTimes": 1,
"Award": {
"100001": 2000000,
"100002": 20
},
"GameType": 1
},
{
"Id": 40003,
"Order": 16,
"ActivityType": 5,
"TaskType": 6,
"TargetTimes": 5000,
"FinishTimes": 1,
"Award": {
"100001": 3000000,
"100002": 30
},
"GameType": 1
},
{
"Id": 40004,
"Order": 22,
"ActivityType": 5,
"TaskType": 6,
"TargetTimes": 10000,
"FinishTimes": 1,
"Award": {
"100001": 5000000,
"100002": 50
},
"GameType": 1
},
{
"Id": 40005,
"Order": 28,
"ActivityType": 5,
"TaskType": 6,
"TargetTimes": 50000,
"FinishTimes": 1,
"Award": {
"100001": 10000000,
"100002": 100
},
"GameType": 1
},
{
"Id": 40006,
"Order": 34,
"ActivityType": 5,
"TaskType": 6,
"TargetTimes": 100000,
"FinishTimes": 1,
"Award": {
"100001": 20000000,
"100002": 200
},
"GameType": 1
},
{
"Id": 50001,
"Order": 5,
"ActivityType": 5,
"TaskType": 7,
"TargetTimes": 10,
"FinishTimes": 1,
"Award": {
"100001": 1000000,
"100002": 10
},
"Position": [
1,
1
]
},
{
"Id": 50002,
"Order": 11,
"ActivityType": 5,
"TaskType": 7,
"TargetTimes": 100,
"FinishTimes": 1,
"Award": {
"100001": 2000000,
"100002": 20
},
"Position": [
1,
1
]
},
{
"Id": 50003,
"Order": 17,
"ActivityType": 5,
"TaskType": 7,
"TargetTimes": 1000,
"FinishTimes": 1,
"Award": {
"100001": 3000000,
"100002": 30
},
"Position": [
1,
1
]
},
{
"Id": 50004,
"Order": 23,
"ActivityType": 5,
"TaskType": 7,
"TargetTimes": 10000,
"FinishTimes": 1,
"Award": {
"100001": 5000000,
"100002": 50
},
"Position": [
1,
1
]
},
{
"Id": 50005,
"Order": 29,
"ActivityType": 5,
"TaskType": 7,
"TargetTimes": 50000,
"FinishTimes": 1,
"Award": {
"100001": 10000000,
"100002": 100
},
"Position": [
1,
1
]
},
{
"Id": 50006,
"Order": 35,
"ActivityType": 5,
"TaskType": 7,
"TargetTimes": 100000,
"FinishTimes": 1,
"Award": {
"100001": 20000000,
"100002": 200
},
"Position": [
1,
1
]
},
{
"Id": 60001,
"Order": 6,
"ActivityType": 5,
"TaskType": 15,
"TargetTimes": 10,
"FinishTimes": 1,
"Award": {
"100001": 1000000,
"100002": 10
}
},
{
"Id": 60002,
"Order": 12,
"ActivityType": 5,
"TaskType": 15,
"TargetTimes": 20,
"FinishTimes": 1,
"Award": {
"100001": 2000000,
"100002": 20
}
},
{
"Id": 60003,
"Order": 18,
"ActivityType": 5,
"TaskType": 15,
"TargetTimes": 50,
"FinishTimes": 1,
"Award": {
"100001": 3000000,
"100002": 30
}
},
{
"Id": 60004,
"Order": 24,
"ActivityType": 5,
"TaskType": 15,
"TargetTimes": 100,
"FinishTimes": 1,
"Award": {
"100001": 5000000,
"100002": 50
}
},
{
"Id": 60005,
"Order": 30,
"ActivityType": 5,
"TaskType": 15,
"TargetTimes": 500,
"FinishTimes": 1,
"Award": {
"100001": 10000000,
"100002": 100
}
},
{
"Id": 60006,
"Order": 36,
"ActivityType": 5,
"TaskType": 15,
"TargetTimes": 1000,
"FinishTimes": 1,
"Award": {
"100001": 20000000,
"100002": 200
}
}
]
}

Binary file not shown.

View File

@ -23,6 +23,11 @@
],
"RewardOutlineID": [
1
],
"ParamName": [
"获得专属头像框",
"获得专属炮台",
"更多VIP功能正待开发"
]
},
{
@ -52,6 +57,11 @@
],
"RewardOutlineID": [
2
],
"ParamName": [
"获得专属头像框",
"获得专属炮台",
"更多VIP功能正待开发"
]
},
{
@ -81,6 +91,11 @@
],
"RewardOutlineID": [
2
],
"ParamName": [
"获得专属头像框",
"获得专属炮台",
"更多VIP功能正待开发"
]
},
{
@ -110,6 +125,11 @@
],
"RewardOutlineID": [
3
],
"ParamName": [
"获得专属头像框",
"获得专属炮台",
"更多VIP功能正待开发"
]
},
{
@ -139,6 +159,11 @@
],
"RewardOutlineID": [
3
],
"ParamName": [
"获得专属头像框",
"获得专属炮台",
"更多VIP功能正待开发"
]
},
{
@ -168,6 +193,11 @@
],
"RewardOutlineID": [
4
],
"ParamName": [
"获得专属头像框",
"获得专属炮台",
"更多VIP功能正待开发"
]
},
{
@ -197,6 +227,11 @@
],
"RewardOutlineID": [
4
],
"ParamName": [
"获得专属头像框",
"获得专属炮台",
"更多VIP功能正待开发"
]
},
{
@ -226,6 +261,11 @@
],
"RewardOutlineID": [
3
],
"ParamName": [
"获得专属头像框",
"获得专属炮台",
"更多VIP功能正待开发"
]
},
{
@ -255,6 +295,11 @@
],
"RewardOutlineID": [
3
],
"ParamName": [
"获得专属头像框",
"获得专属炮台",
"更多VIP功能正待开发"
]
},
{
@ -284,6 +329,11 @@
],
"RewardOutlineID": [
4
],
"ParamName": [
"获得专属头像框",
"获得专属炮台",
"更多VIP功能正待开发"
]
},
{
@ -313,6 +363,11 @@
],
"RewardOutlineID": [
4
],
"ParamName": [
"获得专属头像框",
"获得专属炮台",
"更多VIP功能正待开发"
]
},
{
@ -342,6 +397,11 @@
],
"RewardOutlineID": [
0
],
"ParamName": [
"获得专属头像框",
"获得专属炮台",
"更多VIP功能正待开发"
]
},
{
@ -371,6 +431,11 @@
],
"RewardOutlineID": [
0
],
"ParamName": [
"获得专属头像框",
"获得专属炮台",
"更多VIP功能正待开发"
]
},
{
@ -400,6 +465,11 @@
],
"RewardOutlineID": [
0
],
"ParamName": [
"获得专属头像框",
"获得专属炮台",
"更多VIP功能正待开发"
]
},
{
@ -429,6 +499,11 @@
],
"RewardOutlineID": [
0
],
"ParamName": [
"获得专属头像框",
"获得专属炮台",
"更多VIP功能正待开发"
]
},
{
@ -458,6 +533,11 @@
],
"RewardOutlineID": [
0
],
"ParamName": [
"获得专属头像框",
"获得专属炮台",
"更多VIP功能正待开发"
]
},
{
@ -487,6 +567,11 @@
],
"RewardOutlineID": [
0
],
"ParamName": [
"获得专属头像框",
"获得专属炮台",
"更多VIP功能正待开发"
]
},
{}

View File

@ -82,39 +82,4 @@ func init() {
}
return nil
}, broker.Queue(model.MQRankPlayerCoin), broker.DisableAutoAck(), rabbitmq.DurableQueue())
//等级榜
mq.RegisterSubscriber(model.MQRankPlayerLevel, func(e broker.Event) (err error) {
msg := e.Message()
if msg != nil {
defer func() {
if err != nil {
mq.BackUp(e, err)
}
e.Ack()
recover()
}()
var log model.PlayerLevelInfo
err = json.Unmarshal(msg.Body, &log)
if err != nil {
return
}
logger.Logger.Tracef("SubscriberRankPlayerLevel: %+v", log)
core.CoreObject().SendCommand(basic.CommandWrapper(func(o *basic.Object) error {
err := svc.RankPlayerLevelUpsert(&log)
if err != nil {
logger.Logger.Errorf("RankPlayerCoinUpsert err: %v", err)
}
return nil
}), true)
return
}
return nil
}, broker.Queue(model.MQRankPlayerLevel), broker.DisableAutoAck(), rabbitmq.DurableQueue())
}

View File

@ -1,72 +0,0 @@
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 (
RankPlayerLevelDBName = "log"
RankPlayerLevelCollName = "log_rankplayerlevel"
RankPlayerLevelColError = errors.New("RankPlayerLevel collection open failed")
)
func RankPlayerLevelCollection(plt string) *mongo.Collection {
s := mongo.MgoSessionMgrSington.GetPltMgoSession(plt, RankPlayerLevelDBName)
if s != nil {
c, first := s.DB().C(RankPlayerLevelCollName)
if first {
c.EnsureIndex(mgo.Index{Key: []string{"snid"}, Background: true, Sparse: true})
c.EnsureIndex(mgo.Index{Key: []string{"exp"}, Background: true, Sparse: true})
}
return c
}
return nil
}
func RankPlayerLevelUpsert(args *model.PlayerLevelInfo) error {
cc := RankPlayerLevelCollection(args.Platform)
if cc == nil {
return RankPlayerLevelColError
}
_, err := cc.Upsert(bson.M{"snid": args.SnId}, args)
if err != nil && !errors.Is(err, mgo.ErrNotFound) {
logger.Logger.Error("RankPlayerCoinSvc.Upsert is err: ", err)
return err
}
return nil
}
type RankPlayerLevelSvc struct {
}
func (svc *RankPlayerLevelSvc) Upsert(args *model.PlayerLevelInfo, ret *bool) error {
err := RankPlayerLevelUpsert(args)
if err != nil {
return err
}
*ret = true
return nil
}
func (svc *RankPlayerLevelSvc) Find(args *model.FindPlayerLevelListArgs, ret *model.FindPlayerLevelListReply) error {
fc := RankPlayerLevelCollection(args.Platform)
if fc == nil {
return RankPlayerCoinColError
}
err := fc.Find(bson.M{}).Sort("-exp").Limit(model.GameParamData.RankPlayerLevelMaxNum).All(&ret.List)
if err != nil && !errors.Is(err, mgo.ErrNotFound) {
logger.Logger.Error("QueryMatchSeason is err: ", err)
return err
}
return nil
}
func init() {
rpc.Register(new(RankPlayerLevelSvc))
}

View File

@ -7,7 +7,6 @@ import (
"fmt"
"io"
"net/rpc"
"strings"
"time"
"github.com/globalsign/mgo"
@ -60,11 +59,6 @@ func (svc *AccountSvc) AccountIsExist(args *model.AccIsExistArg, ret *model.AccR
}
acc := &model.Account{}
defer func() {
// 修改旧数据
// 补充渠道信息
svc.setParam(acc)
}()
switch args.LoginType {
case common.LoginTypeGuest:
@ -109,31 +103,11 @@ func (svc *AccountSvc) AccountIsExist(args *model.AccIsExistArg, ret *model.AccR
err := caccounts.Find(bson.M{"tel": args.Tel, "tagkey": args.TagKey}).One(acc)
if err != nil {
if errors.Is(err, mgo.ErrNotFound) {
// 兼容8550开头的手机号,8550和855算同一个区号
if strings.HasPrefix(args.Tel, "855") {
tel := make([]byte, len(args.Tel)+1)
copy(tel, "8550")
copy(tel[4:], args.Tel[3:])
err = caccounts.Find(bson.M{"tel": string(tel), "tagkey": args.TagKey}).One(acc)
if err != nil {
if errors.Is(err, mgo.ErrNotFound) {
ret.Tag = common.LoginNew
return nil
} else {
return err
}
} else {
acc.Tel = args.Tel
caccounts.Update(bson.M{"_id": acc.AccountId}, bson.D{{"$set", bson.D{{"tel", args.Tel}}}})
}
} else {
ret.Tag = common.LoginNew
return nil
}
} else {
return err
}
}
if args.CodeValid {
// 刷新密码和有效期
@ -255,35 +229,6 @@ func (svc *AccountSvc) AccountIsExist(args *model.AccIsExistArg, ret *model.AccR
return nil
}
func (svc *AccountSvc) setParam(acc *model.Account) {
if acc == nil || (acc.Channel != "" && acc.Channel != "0") {
return
}
c := PlayerDataCollection(acc.Platform)
if c == nil {
return
}
p := new(model.PlayerData)
err := c.Find(bson.M{"snid": acc.SnId}).One(p)
if err != nil {
logger.Logger.Errorf("setChannel error:%v", err)
return
}
c = AccountCollection(acc.Platform)
if c == nil {
return
}
acc.Channel = p.Channel
if acc.Channel != "" {
err = c.Update(bson.M{"_id": acc.AccountId}, bson.D{{"$set", bson.D{{"channel", acc.Channel}}}})
if err != nil {
logger.Logger.Errorf("setChannel error:%v", err)
}
}
}
func (svc *AccountSvc) AccountTelIsRegiste(args *model.AccIsExistArg, exist *bool) error {
caccounts := AccountCollection(args.Platform)
if caccounts != nil {
@ -501,22 +446,22 @@ func (svc *AccountSvc) EditAccountPwd(acc *model.Account, ret *model.AccRet) err
return caccounts.Update(bson.M{"_id": acc.AccountId}, bson.D{{"$set", bson.D{{"backpassword", acc.TelPassWord}, {"telpassword", hashsum}}}})
}
//func (svc *AccountSvc) ResetBackAccountPwd(args *model.AccIdArg, ret *model.AccRet) error {
// caccounts := AccountCollection(args.Platform)
// if caccounts == nil {
// return ErrAccDBNotOpen
// }
//
// var acc model.Account
// err := caccounts.Find(bson.M{"_id": bson.ObjectIdHex(args.AccId)}).One(&acc)
// if err != nil {
// return err
// }
// if len(acc.BackPassWord) > 0 {
// return caccounts.Update(bson.M{"_id": acc.AccountId}, bson.D{{"$set", bson.D{{"telpassword", acc.BackPassWord}}}})
// }
// return nil
//}
func (svc *AccountSvc) ResetBackAccountPwd(args *model.AccIdArg, ret *model.AccRet) error {
caccounts := AccountCollection(args.Platform)
if caccounts == nil {
return ErrAccDBNotOpen
}
var acc model.Account
err := caccounts.Find(bson.M{"_id": bson.ObjectIdHex(args.AccId)}).One(&acc)
if err != nil {
return err
}
if len(acc.BackPassWord) > 0 {
return caccounts.Update(bson.M{"_id": acc.AccountId}, bson.D{{"$set", bson.D{{"telpassword", acc.BackPassWord}}}})
}
return nil
}
/*
* 修改帐号密码
@ -561,7 +506,7 @@ func (svc *AccountSvc) UpdateAccountPlatformInfo(acc *model.Account, ret *model.
return caccounts.Update(bson.M{"_id": acc.AccountId},
bson.D{{"$set", bson.M{"platform": acc.Platform,
"channel": acc.Channel, "packegetag": acc.PackegeTag}}})
"channel": acc.Channel, "promoter": acc.Promoter, "inviterid": acc.InviterId, "packegetag": acc.PackegeTag, "promotertree": acc.PromoterTree}}})
}
func (svc *AccountSvc) GetRobotAccounts(limit int, accs *[]model.Account) error {

View File

@ -147,8 +147,8 @@ func (svc *PlayerDataSvc) GetPlayerData(args *model.GetPlayerDataArgs, ret *mode
name = "Guest"
}
pd = model.NewPlayerData(args.Acc, name, id, a.Channel, a.Platform, a.Params,
a.Tel, a.PackegeTag, dataParams.Ip, 0, dataParams.UnionId, a.DeviceInfo, a.TagKey, a.AccountType)
pd = model.NewPlayerData(args.Acc, name, id, a.Channel, a.Platform, a.Promoter, a.InviterId, a.PromoterTree, a.Params,
a.Tel, a.PackegeTag, dataParams.Ip, 0, dataParams.UnionId, a.DeviceInfo, a.SubPromoter, a.TagKey, a.AccountType)
if pd != nil {
err = cplayerdata.Insert(pd)
if err != nil {
@ -222,8 +222,8 @@ func (svc *PlayerDataSvc) CreatePlayerDataByThird(args *model.CreatePlayer, ret
}
var dataParams model.PlayerParams
json.Unmarshal([]byte(a.Params), &dataParams)
pd = model.NewPlayerDataThird(acc, name, args.HeadUrl, id, a.Channel, a.Platform, a.Params,
a.Tel, a.PackegeTag, dataParams.Ip, a.TagKey, a.AccountType, a.DeviceOs)
pd = model.NewPlayerDataThird(acc, name, args.HeadUrl, id, a.Channel, a.Platform, a.Promoter, a.InviterId,
a.PromoterTree, a.Params, a.Tel, a.PackegeTag, dataParams.Ip, a.SubPromoter, a.TagKey, a.AccountType, a.DeviceOs)
if pd != nil {
err = cplayerdata.Insert(pd)
if err != nil {
@ -292,8 +292,9 @@ func (svc *PlayerDataSvc) CreatePlayerDataOnRegister(args *model.PlayerDataArg,
}
var dataParams model.PlayerParams
json.Unmarshal([]byte(a.Params), &dataParams)
pd = model.NewPlayerData(acc, name, id, a.Channel, a.Platform, a.Params, a.Tel, a.PackegeTag,
dataParams.Ip, int64(args.AddCoin), "", a.DeviceInfo, a.TagKey, a.AccountType)
pd = model.NewPlayerData(acc, name, id, a.Channel, a.Platform, a.Promoter, a.InviterId,
a.PromoterTree, a.Params, a.Tel, a.PackegeTag, dataParams.Ip, int64(args.AddCoin),
"", a.DeviceInfo, a.SubPromoter, a.TagKey, a.AccountType)
pd.HeadUrl = args.HeadUrl
if pd != nil {
err = cplayerdata.Insert(pd)
@ -341,8 +342,8 @@ func (svc *PlayerDataSvc) GetPlayerDataBySnId(args *model.GetPlayerDataBySnIdArg
name = "Guest"
}
pd := model.NewPlayerData(a.AccountId.Hex(), name, a.SnId, a.Channel, a.Platform, a.Params,
a.Tel, a.PackegeTag, dataParams.Ip, 0, dataParams.UnionId, a.DeviceInfo, a.TagKey, a.AccountType)
pd := model.NewPlayerData(a.AccountId.Hex(), name, a.SnId, a.Channel, a.Platform, a.Promoter, a.InviterId, a.PromoterTree, a.Params,
a.Tel, a.PackegeTag, dataParams.Ip, 0, dataParams.UnionId, a.DeviceInfo, a.SubPromoter, a.TagKey, a.AccountType)
if pd != nil {
err = cplayerdata.Insert(pd)
if err != nil {

View File

@ -2987,32 +2987,3 @@ func GetASliceInt32NotInB(a []int32, b []int32) []int32 {
return c
}
func IsTwo(a []int32) bool {
if len(a) != 1 {
return false
}
return Value(a[0]) == 12 // 2
}
// IsBomb 是否炸弹
// isClass 是否经典版
func IsBomb(a []int32, isClass bool) bool {
var n int
var has bool
if isClass {
has, n = RulePopEnable(a)
} else {
has, n = RulePopEnable_yl(a)
}
if !has {
return false
}
switch n {
case Straight_Twin, Four_Bomb:
return true
}
return false
}

View File

@ -178,52 +178,63 @@ func (this *CSForceStartHandler) Process(s *netlib.Session, packetid int, data i
return nil
}
type CSPlayerSwitchFlagPacketFactory struct {
}
type CSPlayerSwitchFlagHandler struct {
}
func (this *CSPlayerSwitchFlagPacketFactory) CreatePacket() interface{} {
pack := &gamehall.CSPlayerSwithFlag{}
return pack
}
func (this *CSPlayerSwitchFlagHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSPlayerSwitchFlagHandler Process recv ", data)
if msg, ok := data.(*gamehall.CSPlayerSwithFlag); ok {
p := base.PlayerMgrSington.GetPlayer(sid)
if p == nil {
logger.Logger.Warn("CSPlayerSwitchFlagHandler p == nil")
return nil
}
flag := int(msg.GetFlag())
logger.Logger.Trace("CSPlayerSwitchFlagHandler Process recv SnId(%v) Mark is %v", p.SnId, msg.GetMark())
if msg.GetMark() == 0 { //0取消状态 1设置状态
oldFlag := p.GetFlag()
if p.IsMarkFlag(flag) {
p.UnmarkFlag(flag)
}
if flag == base.PlayerState_Leave {
if p.GetScene() != nil {
//重置下房间状态
p.GetScene().PlayerReturn(p, true)
}
}
if oldFlag != p.GetFlag() {
p.SyncFlag()
}
} else { //设置状态
if flag == base.PlayerState_Leave {
p.ActiveLeave = false //被动暂离
}
if !p.IsMarkFlag(flag) {
p.MarkFlag(flag)
p.SyncFlag()
}
}
}
return nil
}
//type CSPlayerSwitchFlagPacketFactory struct {
//}
//type CSPlayerSwitchFlagHandler struct {
//}
//
//func (this *CSPlayerSwitchFlagPacketFactory) CreatePacket() interface{} {
// pack := &gamehall.CSPlayerSwithFlag{}
// return pack
//}
//
//func (this *CSPlayerSwitchFlagHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
// logger.Logger.Trace("CSPlayerSwitchFlagHandler Process recv ", data)
// if msg, ok := data.(*gamehall.CSPlayerSwithFlag); ok {
// p := base.PlayerMgrSington.GetPlayer(sid)
// if p == nil {
// logger.Logger.Warn("CSPlayerSwitchFlagHandler p == nil")
// return nil
// }
// flag := int(msg.GetFlag())
// //flag = 1 << uint(flag)
// //if msg.Mark != nil {
// logger.Logger.Trace("CSPlayerSwitchFlagHandler Process recv SnId(%v) Mark is %v", p.SnId, msg.GetMark())
// if msg.GetMark() == 0 { //0取消状态 1设置状态
// oldFlag := p.GetFlag()
// if p.IsMarkFlag(flag) {
// p.UnmarkFlag(flag)
// }
// if flag == base.PlayerState_Leave {
// if p.GetScene() != nil {
// //重置下房间状态
// p.GetScene().PlayerReturn(p, true)
// }
// }
// if oldFlag != p.GetFlag() {
// p.SyncFlag()
// }
// } else { //设置状态
// if flag == base.PlayerState_Leave {
// p.ActiveLeave = false //被动暂离
// if p.GetScene() != nil {
// //todo dev fish 字游戏暂时被删除了 所以这里先注释掉
// //if p.GetScene().gameId == common.GameId_HFishing || p.GetScene().gameId == common.GameId_LFishing ||
// // p.GetScene().gameId == common.GameId_RFishing || p.GetScene().gameId == common.GameId_DFishing ||
// // p.GetScene().gameId == common.GameId_NFishing || p.GetScene().gameId == common.GameId_TFishing {
// // p.GetScene().sp.OnPlayerOp(p.GetScene(), p, FishingPlayerOpLeave, []int64{})
// //}
// }
// }
// if !p.IsMarkFlag(flag) {
// p.MarkFlag(flag)
// p.SyncFlag()
// }
// }
// //}
// }
// return nil
//}
func CSRoomEvent(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Tracef("CSRoomEvent %v", data)
@ -304,9 +315,9 @@ func init() {
common.RegisterHandler(int(gamehall.GameHallPacketID_PACKET_CS_FORCESTART), &CSForceStartHandler{})
netlib.RegisterFactory(int(gamehall.GameHallPacketID_PACKET_CS_FORCESTART), &CSForceStartPacketFactory{})
// 同步玩家状态,如暂离状态取消
common.RegisterHandler(int(gamehall.GameHallPacketID_PACKET_CS_PLAYER_SWITCHFLAG), &CSPlayerSwitchFlagHandler{})
netlib.RegisterFactory(int(gamehall.GameHallPacketID_PACKET_CS_PLAYER_SWITCHFLAG), &CSPlayerSwitchFlagPacketFactory{})
// 同步玩家状态
//common.RegisterHandler(int(gamehall.GameHallPacketID_PACKET_CS_PLAYER_SWITCHFLAG), &CSPlayerSwitchFlagHandler{})
//netlib.RegisterFactory(int(gamehall.GameHallPacketID_PACKET_CS_PLAYER_SWITCHFLAG), &CSPlayerSwitchFlagPacketFactory{})
// 房间事件
common.Register(int(gamehall.GameHallPacketID_PACKET_CSRoomEvent), gamehall.CSRoomEvent{}, CSRoomEvent)

View File

@ -427,7 +427,7 @@ func (this *SceneStateAvengersStart) OnPlayerOp(s *base.Scene, p *base.Player, o
//水池设置
coinPoolSetting := base.CoinPoolMgr.GetCoinPoolSetting(sceneEx.Platform, sceneEx.GetGameFreeId(), sceneEx.GroupId)
//baseRate := coinPoolSetting.GetBaseRate() //基础赔率
ctroRate := coinPoolSetting.GetCtrlRate() //调节赔率 暗税系数
ctroRate := 500 //调节赔率 暗税系数
//if baseRate >= 10000 || baseRate <= 0 || ctroRate < 0 || ctroRate >= 1000 || baseRate+ctroRate > 9900 {
// logger.Logger.Warnf("AvengersErrorBaseRate [%v][%v][%v][%v][%v]", sceneEx.GetGameFreeId(), playerEx.SnId, playerEx.spinID, baseRate, ctroRate)
// baseRate = 9700
@ -437,14 +437,14 @@ func (this *SceneStateAvengersStart) OnPlayerOp(s *base.Scene, p *base.Player, o
jackpotRate := ctroRate //奖池系数
logger.Logger.Tracef("AvengersRates [%v][%v][%v][%v][%v]", sceneEx.GetGameFreeId(), playerEx.SnId, playerEx.spinID, taxRate, ctroRate)
playerEx.IsFNovice(sceneEx.KeyGameId)
isFoolPlayer := playerEx.IsFoolPlayer[sceneEx.KeyGameId]
//playerEx.IsFNovice(sceneEx.KeyGameId)
isFoolPlayer := false
var gamePoolCoin int64
if isFoolPlayer {
gamePoolCoin = base.CoinPoolMgr.GetNoviceCoin(sceneEx.GetGameFreeId(), sceneEx.Platform, sceneEx.GroupId) // 当前水池金额
} else {
//if isFoolPlayer {
// gamePoolCoin = base.CoinPoolMgr.GetNoviceCoinPool(sceneEx.GetGameFreeId(), sceneEx.Platform, sceneEx.GroupId) // 当前水池金额
//} else {
gamePoolCoin = base.CoinPoolMgr.GetCoin(sceneEx.GetGameFreeId(), sceneEx.Platform, sceneEx.GroupId) // 当前水池金额
}
//}
prizeFund := gamePoolCoin - sceneEx.jackpot.VirtualJK // 除去奖池的水池剩余金额
// 奖池参数
@ -462,7 +462,7 @@ func (this *SceneStateAvengersStart) OnPlayerOp(s *base.Scene, p *base.Player, o
//p.Statics(sceneEx.KeyGameId, sceneEx.KeyGamefreeId, -totalBetValue, true)
if !p.IsRob && !sceneEx.Testing {
// 推送金币
sceneEx.PushCoinPool(prizeFundAdd, isFoolPlayer)
sceneEx.PushCoinPool(prizeFundAdd, false)
//base.CoinPoolMgr.PushCoin(sceneEx.GetGameFreeId(), sceneEx.GroupId, sceneEx.Platform, int64(float64(totalBetValue)*(float64(10000-ctroRate)/10000.0)))
}
@ -583,12 +583,8 @@ func (this *SceneStateAvengersStart) OnPlayerOp(s *base.Scene, p *base.Player, o
playerEx.taxCoin = spinRes.TotalTaxScore
playerEx.AddServiceFee(playerEx.taxCoin)
}
sceneEx.StaticsLaba(&base.StaticLabaParam{
SnId: playerEx.SnId,
Gain: totalWinScore + spinRes.BonusGame.GetTotalPrizeValue() + spinRes.TotalTaxScore,
GainTax: spinRes.TotalTaxScore,
IsAddTimes: true,
})
p.StaticsLaba(sceneEx.KeyGameId, sceneEx.KeyGamefreeId, totalBetValue, totalWinScore+spinRes.BonusGame.GetTotalPrizeValue()+spinRes.TotalTaxScore)
this.OnPlayerSToCOp(s, p, playerEx.Pos, opcode, avengers.OpResultCode_OPRC_Sucess, append(params[:1], playerEx.betLines...))
//免费次数
@ -908,10 +904,11 @@ func AvengersCheckAndSaveLog(sceneEx *AvengersSceneData, playerEx *AvengersPlaye
//统计金币变动
//log1
logger.Logger.Trace("AvengersCheckAndSaveLog Save ", playerEx.SnId)
//changeCoin := playerEx.Coin - playerEx.StartCoin
changeCoin := playerEx.winCoin - playerEx.taxCoin - playerEx.CurrentBet
startCoin := playerEx.Coin - changeCoin
//playerEx.SaveSceneCoinLog(startCoin, changeCoin,
// playerEx.Coin, playerEx.CurrentBet, playerEx.taxCoin, playerEx.winCoin, playerEx.jackpotWinCoin, playerEx.smallGameWinCoin)
playerEx.SaveSceneCoinLog(startCoin, changeCoin,
playerEx.Coin, playerEx.CurrentBet, playerEx.taxCoin, playerEx.winCoin, playerEx.jackpotWinCoin, playerEx.smallGameWinCoin)
//log2
playerEx.RollGameType.BaseResult.ChangeCoin = changeCoin
@ -970,8 +967,15 @@ func AvengersCheckAndSaveLog(sceneEx *AvengersSceneData, playerEx *AvengersPlaye
Bet: proto.Int64(playerEx.CurrentBet),
Gain: proto.Int64(playerEx.RollGameType.BaseResult.ChangeCoin),
Tax: proto.Int64(playerEx.taxCoin),
OtherTax: 0,
Coin: proto.Int64(playerEx.GetCoin()),
FlowCoin: 0,
Lottery: 0,
Kind: 0,
Card: nil,
GameCoinTs: proto.Int64(playerEx.GameCoinTs),
WBGain: 0,
WinState: 0,
}
gwPlayerBet := &server.GWPlayerData{
SceneId: proto.Int(sceneEx.SceneId),

View File

@ -31,7 +31,6 @@ const (
var CoinPoolMgr = &CoinPoolManager{
CoinPool: new(sync.Map),
ProfitPool: new(sync.Map),
NoviceCoinPool: new(sync.Map),
CoinPoolSetting: make(map[string]*webapi.CoinPoolSetting),
curRunTime: make(map[string]int64),
publicPond: new(sync.Map),
@ -56,9 +55,6 @@ type CoinPoolManager struct {
//收益池
ProfitPoolDBKey string
ProfitPool *sync.Map
//新手池
NoviceCoinPoolDBKey string
NoviceCoinPool *sync.Map
dirty bool
@ -119,8 +115,7 @@ func (this *CoinPoolManager) SplitKey(key string) (gameFreeId, groupId int32, pl
// AddProfitPool 增加收益池
func (this *CoinPoolManager) AddProfitPool(key string, coin int64) bool {
setting := this.getCoinPoolSetting(key)
if setting == nil || setting.GetSwitch() == 1 {
if this.getCoinPoolSetting(key).GetSwitch() == 1 {
return false
}
@ -183,25 +178,10 @@ func (this *CoinPoolManager) getCoinPoolCoin(key string) int64 {
return poolCoin
}
// 获取调控池水位
func (this *CoinPoolManager) getNoviceCoinPoolCoin(key string) int64 {
poolValue, ok := this.NoviceCoinPool.Load(key)
if !ok {
return 0
}
poolCoin, ok := poolValue.(int64)
if !ok {
logger.Logger.Errorf("Error type convert in coinpoolmanager GetNoviceCoin:%v-%v", key, poolValue)
return 0
}
return poolCoin
}
// 减少调控池水位
// 返回当前水位
func (this *CoinPoolManager) popCoin(key string, coin int64) (bool, int64) {
setting := this.getCoinPoolSetting(key)
if setting == nil || setting.GetSwitch() == 1 {
if this.getCoinPoolSetting(key).GetSwitch() == 1 {
return false, 0
}
@ -230,44 +210,10 @@ func (this *CoinPoolManager) popCoin(key string, coin int64) (bool, int64) {
return true, curValue
}
// 减少调控池水位
// 返回当前水位
func (this *CoinPoolManager) popNoviceCoin(key string, coin int64) (bool, int64) {
setting := this.getCoinPoolSetting(key)
if setting == nil || setting.GetSwitch() == 1 {
return false, 0
}
poolValue, ok := this.NoviceCoinPool.Load(key)
if !ok {
return false, 0
}
poolCoin, ok := poolValue.(int64)
if !ok {
logger.Logger.Errorf("Error type convert in coinpoolmanager popNoviceCoin:%v-%v", key, poolValue)
return false, 0
}
//if poolCoin < coin {
// return false
//}
curValue := poolCoin - coin
if curValue < -99999999 {
curValue = -99999999
}
this.NoviceCoinPool.Store(key, curValue)
this.dirty = true
logger.Logger.Infof("$$$$$$$$新手金币池 %v 取出 %v 金币,现有金币 %v.$$$$$$$$", key, coin, curValue)
return true, curValue
}
// 增加调控池水位
// 返回当前水位
func (this *CoinPoolManager) pushCoin(key string, coin int64) int64 {
setting := this.getCoinPoolSetting(key)
if setting == nil || setting.GetSwitch() == 1 {
if this.getCoinPoolSetting(key).GetSwitch() == 1 {
return 0
}
@ -290,33 +236,6 @@ func (this *CoinPoolManager) pushCoin(key string, coin int64) int64 {
return poolCoin
}
// 增加调控池水位
// 返回当前水位
func (this *CoinPoolManager) pushNoviceCoin(key string, coin int64) int64 {
setting := this.getCoinPoolSetting(key)
if setting == nil || setting.GetSwitch() == 1 {
return 0
}
poolValue, ok := this.NoviceCoinPool.Load(key)
if !ok {
this.NoviceCoinPool.Store(key, coin)
this.dirty = true
logger.Logger.Infof("$$$$$$$$新手金币池 %v 放入 %v 金币,现有金币 %v.$$$$$$$$", key, coin, coin)
return coin
}
poolCoin, ok := poolValue.(int64)
if !ok {
logger.Logger.Errorf("NoviceCoin pool push error type value:%v-%v", key, poolValue)
return 0
}
poolCoin += coin
this.NoviceCoinPool.Store(key, poolCoin)
this.dirty = true
logger.Logger.Infof("$$$$$$$$新手金币池 %v 放入 %v 金币,现有金币 %v.$$$$$$$$", key, coin, poolCoin)
return poolCoin
}
// PopCoin 减少调控池水位
func (this *CoinPoolManager) PopCoin(gameFreeId, groupId int32, platform string, coin int64) bool {
if coin == 0 {
@ -324,14 +243,10 @@ func (this *CoinPoolManager) PopCoin(gameFreeId, groupId int32, platform string,
}
key := this.GenKey(gameFreeId, platform, groupId)
setting := this.getCoinPoolSetting(key)
if setting == nil || setting.GetSwitch() == 1 {
return true
}
poolVal := coin
if coin < 0 { //负值为收益
setting := this.getCoinPoolSetting(key)
if setting != nil && setting.GetSwitch() == 0 {
rate := this.GetProfitRate(setting)
if rate != 0 { //负值也生效???
profit := coin * int64(rate) / 1000
@ -339,6 +254,7 @@ func (this *CoinPoolManager) PopCoin(gameFreeId, groupId int32, platform string,
poolVal = coin - profit
}
}
}
ok, _ := this.popCoin(key, poolVal)
if ok {
dbGameFree := srvdata.PBDB_GameFreeMgr.GetData(gameFreeId)
@ -351,7 +267,7 @@ func (this *CoinPoolManager) PopCoin(gameFreeId, groupId int32, platform string,
if ok {
poolCoin, ok := poolValue.(int64)
if ok {
if setting.GetLowerLimit() > poolCoin {
if int64(setting.GetLowerLimit()) > poolCoin {
WarningCoinPool(Warning_CoinPoolLow, gameFreeId)
}
@ -372,16 +288,11 @@ func (this *CoinPoolManager) PushCoin(gameFreeId, groupId int32, platform string
if coin == 0 {
return
}
key := this.GenKey(gameFreeId, platform, groupId)
setting := this.getCoinPoolSetting(key)
if setting == nil || setting.GetSwitch() == 1 {
return
}
poolVal := coin
if coin > 0 { //处理收益池
setting := this.getCoinPoolSetting(key)
if setting != nil && setting.GetSwitch() == 0 {
rate := this.GetProfitRate(setting)
if rate != 0 { //负值也生效???
profit := coin * int64(rate) / 1000
@ -389,6 +300,7 @@ func (this *CoinPoolManager) PushCoin(gameFreeId, groupId int32, platform string
poolVal = coin - profit
}
}
}
this.pushCoin(key, poolVal)
return
@ -427,15 +339,7 @@ func (this *CoinPoolManager) UpdateCoinPoolSetting(setting *webapi.CoinPoolSetti
if initValue != 0 { //初始化水池
_, ok := this.CoinPool.Load(key)
if !ok {
this.pushCoin(key, initValue)
}
}
// 新手调控池初始化
initValue = setting.GetInitNoviceValue()
if initValue != 0 { //初始化水池
_, ok := this.NoviceCoinPool.Load(key)
if !ok {
this.pushNoviceCoin(key, initValue)
this.pushCoin(key, int64(initValue))
}
}
}
@ -520,16 +424,12 @@ func (this *CoinPoolManager) GetCoinPoolSettingByGame(platform string, gameId, g
LowerOdds: setting.GetLowerOdds(),
LowerOddsMax: setting.GetLowerOddsMax(),
ProfitRate: setting.GetProfitRate(),
InitNoviceValue: setting.GetInitNoviceValue(),
CtrlRate: setting.GetCtrlRate(),
ResetTime: setting.GetResetTime(),
Switch: setting.GetSwitch(),
CoinValue: this.GetCoin(id, platform, groupId), // 当前水位
ProfitPool: this.GetProfitPoolCoin(id, platform, groupId), // 收益池水位
NoviceCoinValue: this.GetNoviceCoin(id, platform, groupId), // 新手池水位
}
settings = append(settings, s)
}
@ -579,18 +479,6 @@ func (this *CoinPoolManager) Init() {
} else {
logger.Logger.Error("Unmarshal coin pool error:", err)
}
// 新手调控池
this.NoviceCoinPoolDBKey = fmt.Sprintf("NoviceCoinPoolManager_Srv%v", common.GetSelfSrvId())
data = model.GetStrKVGameData(this.NoviceCoinPoolDBKey)
noviceCoinPool := make(map[string]int64)
err = json.Unmarshal([]byte(data), &noviceCoinPool)
if err == nil {
for key, value := range noviceCoinPool {
this.NoviceCoinPool.Store(key, value)
}
} else {
logger.Logger.Error("Unmarshal novice coin pool error:", err)
}
// 收益池
this.ProfitPoolDBKey = fmt.Sprintf("ProfitPoolManager_Srv%v", common.GetSelfSrvId())
data = model.GetStrKVGameData(this.ProfitPoolDBKey)
@ -637,24 +525,6 @@ func (this *CoinPoolManager) Save(asyn bool) {
} else {
logger.Logger.Error("Marshal coin pool error:", err)
}
// 新手调控池
coinPool = make(map[string]int64)
this.NoviceCoinPool.Range(func(key, value interface{}) bool {
coinPool[key.(string)] = value.(int64)
return true
})
buff, err = json.Marshal(coinPool)
if err == nil {
if asyn {
task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
return model.UptStrKVGameData(this.NoviceCoinPoolDBKey, string(buff))
}), nil, "UptStrKVGameData").Start()
} else {
model.UptStrKVGameData(this.NoviceCoinPoolDBKey, string(buff))
}
} else {
logger.Logger.Error("Marshal novice coin pool error:", err)
}
// 收益池
profitPool := make(map[string]int64)
this.ProfitPool.Range(func(key, value interface{}) bool {
@ -750,87 +620,29 @@ func (this *CoinPoolManager) GetCoinPoolStatesByPlatform(platform string, games
return
}
func (this *CoinPoolManager) pushCoinNovice(key string, coin int64) {
}
func (this *CoinPoolManager) popCoinNovice(key string, coin int64) {
}
// PushCoinNovice 增加新手池水位
func (this *CoinPoolManager) PushCoinNovice(gameFreeId, groupId int32, platform string, coin int64) {
if coin == 0 {
return
}
key := this.GenKey(gameFreeId, platform, groupId)
setting := this.getCoinPoolSetting(key)
if setting == nil || setting.GetSwitch() == 1 {
return
}
poolVal := coin
if coin > 0 { //处理收益池
rate := this.GetProfitRate(setting)
if rate != 0 { //负值也生效???
profit := coin * int64(rate) / 1000
this.AddProfitPool(key, profit)
poolVal = coin - profit
}
}
this.pushNoviceCoin(key, poolVal)
return
this.pushCoinNovice(key, coin)
}
// PopCoinNovice 减少新手池水位
func (this *CoinPoolManager) PopCoinNovice(gameFreeId, groupId int32, platform string, coin int64) bool {
if coin == 0 {
return true
}
key := this.GenKey(gameFreeId, platform, groupId)
setting := this.getCoinPoolSetting(key)
if setting == nil || setting.GetSwitch() == 1 {
return true
}
poolVal := coin
if coin < 0 { //负值为收益
rate := this.GetProfitRate(setting)
if rate != 0 { //负值也生效???
profit := coin * int64(rate) / 1000
this.AddProfitPool(key, -profit)
poolVal = coin - profit
}
}
ok, _ := this.popNoviceCoin(key, poolVal)
if ok {
dbGameFree := srvdata.PBDB_GameFreeMgr.GetData(gameFreeId)
if dbGameFree != nil && dbGameFree.GetSceneType() != -1 { //非试玩场
//保存数据
//this.ReportCoinPoolRecEvent(gameFreeId, groupId, platform, -coin, curPoolVal, false)
setting := this.GetCoinPoolSetting(platform, gameFreeId, groupId)
if setting != nil {
poolValue, ok := this.NoviceCoinPool.Load(key)
if ok {
poolCoin, ok := poolValue.(int64)
if ok {
if int64(setting.GetLowerLimit()) > poolCoin {
WarningCoinPool(Warning_CoinPoolLow, gameFreeId)
}
if poolCoin < 0 {
WarningCoinPool(Warning_CoinPoolZero, gameFreeId)
}
}
}
}
}
return true
}
return false
func (this *CoinPoolManager) PopCoinNovice(gameFreeId, groupId int32, platform string, coin int64) {
}
// GetNoviceCoin 获取新手池水位
func (this *CoinPoolManager) GetNoviceCoin(gameFreeId int32, platform string, groupId int32) int64 {
key := this.GenKey(gameFreeId, platform, groupId)
return this.getNoviceCoinPoolCoin(key)
return 0
}
// IsMaxOutHaveEnough 判定是否满足出分,out 为负值是出分,正值为收分

29
gamesrv/base/config.go Normal file
View File

@ -0,0 +1,29 @@
package base
import (
"mongo.games.com/goserver/core"
)
var (
ForwardConfig = ForwardConfiguration{}
)
type ForwardConfiguration struct {
ForwardMakeCards bool
}
func (this *ForwardConfiguration) Name() string {
return "forward"
}
func (this *ForwardConfiguration) Init() error {
return nil
}
func (this *ForwardConfiguration) Close() error {
return nil
}
func init() {
core.RegistePackage(&ForwardConfig)
}

13
gamesrv/base/constant.go Normal file
View File

@ -0,0 +1,13 @@
package base
import (
"mongo.games.com/game/common"
)
var BroadJackpotGame = []int{
common.GameId_IceAge,
common.GameId_TamQuoc,
common.GameId_CaiShen,
common.GameId_Avengers,
common.GameId_EasterIsland,
}

13
gamesrv/base/data.go Normal file
View File

@ -0,0 +1,13 @@
package base
type InterventionData struct {
Webuser string
Flag int32
NumOfGames int32
}
type InterventionResults struct {
Key string
Webuser string
Results string
}

View File

@ -0,0 +1,145 @@
package base
import (
"mongo.games.com/goserver/core/logger"
"mongo.games.com/goserver/core/utils"
"sync/atomic"
"time"
)
type ElementPool struct {
key int32
pool chan interface{}
}
type ElementProducer struct {
times int64
cnt int32
max int32
pool []*ElementPool
nf ProduceFunc //正常的生产函数
bf ProduceFunc //保底的生产函数
quit bool
}
type ProduceFunc func() (interface{}, int32)
type ElementProducerMgr struct {
producer map[int32]*ElementProducer
}
var ElementProducerMgrSington = &ElementProducerMgr{
producer: make(map[int32]*ElementProducer),
}
func CreateElementProducer(max int32, nf, bf ProduceFunc) *ElementProducer {
ep := &ElementProducer{
max: max,
nf: nf,
bf: bf,
pool: make([]*ElementPool, max, max),
}
return ep
}
func (ep *ElementProducer) Start() {
go _start_produce_routine(ep)
}
func (ep *ElementProducer) Stop() {
ep.quit = true
}
func (ep *ElementProducer) FetchOneElement(key int32) interface{} {
if key < 0 || key >= int32(len(ep.pool)) {
return nil
}
pool := ep.pool[key]
if pool != nil {
select {
case d, ok := <-pool.pool:
if ok {
atomic.AddInt32(&ep.cnt, -1)
return d
} else {
//向下取一个结果
for i := key - 1; i >= 0; i-- {
if ep.pool[i] != nil && len(ep.pool[i].pool) != 0 {
return ep.FetchOneElement(i)
}
}
d, _ := ep.bf()
return d
}
default:
}
}
//向下取一个结果
for i := key - 1; i >= 0; i-- {
if ep.pool[i] != nil && len(ep.pool[i].pool) != 0 {
return ep.FetchOneElement(i)
}
}
d, _ := ep.bf()
return d
}
func (ep *ElementProducer) Dump() {
logger.Logger.Tracef("[[[[[[[[[[[[[[[total=%v, calcu=%v]]]]]]]]]]]]]]]", ep.cnt, ep.times)
for i := 0; i < len(ep.pool); i++ {
epp := ep.pool[i]
if epp != nil && len(epp.pool) != 0 {
logger.Logger.Tracef("[key=%v] [count=%v]", i, len(epp.pool))
}
}
}
func _start_produce_routine(ep *ElementProducer) {
defer utils.DumpStackIfPanic("_start_produce_routine")
var idle = 0
for !ep.quit {
val, key := ep.nf()
atomic.AddInt64(&ep.times, 1)
if key >= 0 && key < int32(len(ep.pool)) {
epp := ep.pool[key]
if epp == nil {
epp = &ElementPool{key: key, pool: make(chan interface{}, 128)}
ep.pool[key] = epp
}
select {
case epp.pool <- val:
atomic.AddInt32(&ep.cnt, 1)
case <-time.After(time.Millisecond):
idle++
}
}
if idle >= 10000 {
idle = 0
//ep.Dump()
}
}
}
func (this *ElementProducerMgr) GetProducer(id int32) *ElementProducer {
if p, exist := this.producer[id]; exist {
return p
}
return nil
}
func (this *ElementProducerMgr) SetProducer(id int32, p *ElementProducer) {
if op, exist := this.producer[id]; exist {
if op != nil {
op.Stop()
}
}
this.producer[id] = p
}
func (this *ElementProducerMgr) StopAll() {
for _, p := range this.producer {
if p != nil {
p.Stop()
}
}
}

View File

@ -479,12 +479,6 @@ func (this *Player) AddCoin(num int64, gainWay int32, syncFlag int, oper, remark
this.scene.NewBigCoinNotice(this, int64(num), 5)
}
}
//增加玩家经验
if num > 0 {
exp := num / 100
this.AddPlayerExp(exp)
logger.Logger.Trace("玩家获取金币 增加玩家经验值:", exp)
}
if (syncFlag & SyncFlag_ToClient) != 0 {
pack := &player.SCPlayerCoinChange{
SnId: proto.Int32(this.SnId),
@ -867,6 +861,88 @@ func (this *Player) Statics(keyGameId string, keyGameFreeId string, gain int64,
////}
}
// 拉霸游戏 一局一条
func (this *Player) StaticsLaba(keyGameId string, keyGameFreeId string, totalIn, totalOut int64) {
if this.scene == nil || this.scene.Testing { //测试场|自建房和机器人不统计
return
}
if totalIn < 0 || totalOut < 0 {
return
}
if this.IsRob && !this.scene.IsRobFightGame() {
return
}
if this.TodayGameData == nil {
this.TodayGameData = &model.PlayerGameCtrlData{}
}
if this.TodayGameData.CtrlData == nil {
this.TodayGameData.CtrlData = make(map[string]*model.PlayerGameStatics)
}
statics := make([]*model.PlayerGameStatics, 0, 4)
//当天数据统计
//按场次分
if data, ok := this.TodayGameData.CtrlData[keyGameFreeId]; ok {
statics = append(statics, data)
} else {
gs := model.NewPlayerGameStatics()
this.TodayGameData.CtrlData[keyGameFreeId] = gs
statics = append(statics, gs)
}
//按游戏分
if data, ok := this.TodayGameData.CtrlData[keyGameId]; ok {
statics = append(statics, data)
} else {
data = model.NewPlayerGameStatics()
this.TodayGameData.CtrlData[keyGameId] = data
statics = append(statics, data)
}
//按游戏场次进行的统计
if data, ok := this.GDatas[keyGameFreeId]; ok {
statics = append(statics, &data.Statics)
} else {
data = &model.PlayerGameInfo{FirstTime: time.Now(), Statics: *model.NewPlayerGameStatics()}
this.GDatas[keyGameFreeId] = data
statics = append(statics, &data.Statics)
}
if data, ok := this.GDatas[keyGameId]; ok {
statics = append(statics, &data.Statics)
} else {
data = &model.PlayerGameInfo{FirstTime: time.Now(), Statics: *model.NewPlayerGameStatics()}
this.GDatas[keyGameId] = data
statics = append(statics, &data.Statics)
}
gain := totalOut - totalIn
for _, data := range statics {
if data != nil {
data.TotalIn += totalIn
data.TotalOut += totalOut
data.GameTimes++
if gain > 0 {
data.WinGameTimes++
} else if gain < 0 {
data.LoseGameTimes++
} else {
data.DrawGameTimes++
}
}
}
//玩家身上元数据
this.GameTimes++
if gain > 0 {
this.winTimes++
this.WinTimes++
} else if gain < 0 {
this.lostTimes++
this.FailTimes++
} else {
this.DrawTimes++
}
}
//func (this *Player) CheckType(gamefreeId, gameId int32) *server.DB_PlayerType {
// types := srvdata.PlayerTypeMgrSington.GetPlayerType(gamefreeId)
// cnt := len(types)
@ -1349,33 +1425,39 @@ func (this *Player) SetFishLevel(level int64) {
this.FishExp = int64(data.Exp)
}*/
// 增加玩家经验
// 增加捕鱼经验
func (this *Player) AddPlayerExp(exp int64) bool {
this.Exp += exp
if this.Exp >= int64(math.MaxInt64) {
this.Exp = int64(math.MaxInt64)
this.FishExp += exp
if this.FishExp >= int64(math.MaxInt64) {
this.FishExp = int64(math.MaxInt64)
}
maxExp := srvdata.PBDB_PlayerExpMgr.Datas.Arr[len(srvdata.PBDB_PlayerExpMgr.Datas.Arr)-1].Exp
if this.Exp > int64(maxExp) {
this.Exp = int64(maxExp)
if this.FishExp > int64(maxExp) {
this.FishExp = int64(maxExp)
}
//oldLevel := this.Level
oldLevel := this.FishLevel
//获取等级
for _, playerExp := range srvdata.PBDB_PlayerExpMgr.Datas.Arr {
if this.Exp >= int64(playerExp.Exp) {
this.Level = int64(playerExp.Id)
if this.FishExp >= int64(playerExp.Exp) {
this.FishLevel = int64(playerExp.Id)
} else {
break
}
}
//升级
if this.FishLevel != oldLevel {
////通知客户端
pack := &player.SCPlayerUpLevel{
Level: this.Level,
Exp: this.Exp,
Level: this.FishLevel,
Exp: this.FishExp,
}
//通知客户端玩家提升等级
this.SendToClient(int(player.PlayerPacketID_PACKET_SC_PlayerUpLevel), pack)
return true
}
return false
}
// 解锁炮倍
func (this *Player) UnPlayerPowerEx(power int64) {
@ -1406,21 +1488,3 @@ func (this *Player) UnPlayerPowerListEx(powerId int32) {
}
return
}
// 获取周卡权益
// typeId : 1-破产救济金领取翻倍 2-排位赛积分提升5%
func (this *Player) GetWeekCardPrivilege(typeId int32) bool {
logger.Logger.Trace("玩家请求获取周卡权益!")
now := time.Now().Unix()
for id, endTime := range this.WeekCardTime {
if endTime > now {
data := srvdata.PBDB_GiftCardMgr.GetData(id)
for _, equity := range data.GetEquity() {
if equity == typeId {
return true
}
}
}
}
return false
}

View File

@ -1,9 +1,11 @@
package base
import (
"bytes"
"fmt"
"math/rand"
"strconv"
"strings"
"time"
rawproto "google.golang.org/protobuf/proto"
@ -1723,6 +1725,13 @@ func GetSaveGamePlayerListLogParam(platform, channel, promoter, packageTag, logi
}
}
func IsFishGame(gameId int) bool {
if gameId == common.GameId_HFishing || gameId == common.GameId_TFishing {
return true
}
return false
}
func (this *Scene) SaveFriendRecord(snid int32, isWin int32, billCoin int64, baseScore int32) {
if this.SceneMode == common.SceneMode_Private {
return
@ -2025,7 +2034,6 @@ func (this *Scene) RobotLeaveHundred() {
}
}
}
func (this *Scene) RandInt(args ...int) int {
switch len(args) {
case 0:
@ -2071,6 +2079,208 @@ func (this *Scene) GetRecordId() string {
return fmt.Sprintf("%d%d%v%d", this.GameId, this.SceneId, this.GameNowTime.Format(ReplayIdTf), this.NumOfGames)
}
//func (this *Scene) TryUseMatchNextBaseData() {
// data := this.matchChgData
// if data != nil {
// this.matchChgData = nil
// this.SetParamEx(common.PARAMEX_MATCH_BASESCORE, data.NextBaseScore)
// this.SetParamEx(common.PARAMEX_MATCH_OUTSCORE, data.NextOutScore)
// this.DbGameFree.BaseScore = proto.Int32(data.NextBaseScore)
// //同步给玩家
// pack := &match.SCMatchBaseScoreChange{
// MatchId: proto.Int32(this.GetParamEx(common.PARAMEX_MATCH_COPYID)),
// BaseScore: proto.Int32(data.NextBaseScore),
// OutScore: proto.Int32(data.NextOutScore),
// }
// proto.SetDefaults(pack)
// this.Broadcast(int(match.MatchPacketID_PACKET_SC_MATCH_BASESCORECHANGE), pack, 0)
// }
//}
// ///////////////////////////////////////////////////////////////////
func (this *Scene) resultHistoryRemove(n int) {
var i int
for ; i < len(this.resultHistory); i++ {
for j := 1; j < len(this.resultHistory[i]); j++ {
if this.resultHistory[i][j] == n {
this.resultHistory[i] = append(this.resultHistory[i][:j], this.resultHistory[i][j+1:]...)
if len(this.resultHistory[i]) <= 1 {
this.resultHistory = append(this.resultHistory[:i], this.resultHistory[i+1:]...)
}
return
}
}
}
}
func (this *Scene) GetResultHistoryResult(n int) int {
for i := 0; i < len(this.resultHistory); i++ {
for j := 1; j < len(this.resultHistory[i]); j++ {
if this.resultHistory[i][j] == n {
return this.resultHistory[i][0]
}
}
}
return -1
}
func (this *Scene) GetResult() int {
return this.results[this.LoopNum]
}
func (this *Scene) resultCheck() {
logger.Logger.Tracef("历史记录: %v\n调控配置: %v", this.resultHistory, this.results)
for i := 0; i < len(this.resultHistory); i++ {
m := this.resultHistory[i][0]
for j := 1; j < len(this.resultHistory[i]); j++ {
if this.results[this.resultHistory[i][j]] != m {
logger.Logger.Errorf("不匹配 局数:%d 配置结果:%d 历史记录的结果:%d",
this.resultHistory[i][j], this.results[this.resultHistory[i][j]], m)
}
}
}
}
func (this *Scene) AddLoopNum() {
//defer this.resultCheck()
// 维护 resultHistory
this.resultHistoryRemove(this.LoopNum)
this.results[this.LoopNum] = common.DefaultResult
this.LoopNum++
if this.LoopNum == common.MaxLoopNum {
this.LoopNum = 0
}
}
func (this *Scene) ProtoResults() []*server.EResult {
ret := []*server.EResult{}
for i := 0; i < len(this.resultHistory); i++ {
if len(this.resultHistory[i]) <= 1 {
continue
}
temp := new(server.EResult)
temp.Result = proto.Int(this.resultHistory[i][0])
buf := bytes.NewBufferString("")
buf.WriteString(fmt.Sprint(this.resultHistory[i][1]))
for j := 2; j < len(this.resultHistory[i]); j++ {
buf.WriteString(fmt.Sprint(",", this.resultHistory[i][j]))
}
temp.Index = proto.String(buf.String())
ret = append(ret, temp)
}
return ret
}
func (this *Scene) ParserResults(str, user string) {
for _, v := range strings.Split(strings.TrimSpace(str), ",") {
ns := strings.Split(v, ":")
if len(ns) != 2 {
continue
}
i, err := strconv.Atoi(ns[0])
if err != nil {
continue
}
n, err := strconv.Atoi(ns[1])
if err != nil {
continue
}
if n < 0 || n >= len(this.results) {
continue
}
this.results[i] = n
}
this.WebUser = user
}
// ParserResults1 只能解析一种控制结果的设置
func (this *Scene) ParserResults1(str, user string) *server.GWRoomResults {
// 维护 resultHistory
ret := &server.GWRoomResults{
Code: proto.Int(0),
}
arr := strings.Split(strings.TrimSpace(str), ",")
if len(arr) == 0 {
ret.Code = proto.Int(3)
ret.Msg = proto.String("参数错误")
return ret
}
ns := strings.Split(arr[0], ":")
if len(ns) != 2 {
ret.Code = proto.Int(3)
ret.Msg = proto.String("参数错误")
return ret
}
n, err := strconv.Atoi(ns[1])
if err != nil {
ret.Code = proto.Int(3)
ret.Msg = proto.String("参数错误")
return ret
}
//logger.Logger.Tracef("控牌设置历史 %s", str)
//defer this.resultCheck()
var is []int
if n == common.DefaultResult {
for _, v := range arr {
ns := strings.Split(v, ":")
if len(ns) != 2 {
continue
}
// 局数
i, err := strconv.Atoi(ns[0])
if err != nil {
continue
}
if i < 0 || i >= len(this.results) {
ret.Code = proto.Int(2)
ret.Msg = proto.String(fmt.Sprintf("局数错误 第%d局", i))
return ret
}
is = append(is, i)
}
for _, v := range is {
this.resultHistoryRemove(v)
this.results[v] = common.DefaultResult
}
this.WebUser = user
return ret
}
// 设置
indexes := []int{n}
for _, v := range arr {
ns := strings.Split(v, ":")
if len(ns) != 2 {
continue
}
// 局数
i, err := strconv.Atoi(ns[0])
if err != nil {
continue
}
if i < 0 || i >= len(this.results) {
ret.Code = proto.Int(2)
ret.Msg = proto.String(fmt.Sprintf("局数错误 第%d局", i))
return ret
}
if this.results[i] != common.DefaultResult {
ret.Code = proto.Int(1)
ret.Msg = proto.String(fmt.Sprintf("重复设置第%d局", i))
return ret
}
is = append(is, i)
}
for _, v := range is {
this.results[v] = n
indexes = append(indexes, v)
}
this.resultHistory = append(this.resultHistory, indexes)
this.WebUser = user
return ret
}
func (this *Scene) RandTakeCoin(p *Player) (takeCoin, leaveCoin, gameTimes int64) {
if p.IsRob && p.IsLocal {
dbGameFree := this.DbGameFree
@ -2344,9 +2554,9 @@ func (this *Scene) SyncPlayerDatas(param *PlayerDataParam) int64 {
type StaticParam struct {
SnId int32 // 玩家id
Gain int64 // 赢金币(税后)
Gain int64 // 金币(税后)
GainTax int64 // 赢取金币时的税收
IsAddTimes bool // 是否统计游戏次数
IsAddTimes bool // 是否记录游戏次数
HasRobotGaming bool // 是否有机器人玩本局游戏
WinState int32 // 输赢状态 1 赢 2 输 3 和
}
@ -2357,7 +2567,6 @@ func (this *Scene) IsControl(hasRobotGaming bool) bool {
}
// Statistics 玩家游戏数据统计
// 包含水池统计,黑白名单统计,新手调控统计,个人水池统计
func (this *Scene) Statistics(param *StaticParam) {
if param == nil {
return
@ -2428,6 +2637,7 @@ func (this *Scene) Statistics(param *StaticParam) {
p.TodayGameData.CtrlData[keyGameId] = data
statics = append(statics, data)
}
// 按场次分
if data, ok := p.GDatas[keyGameFreeId]; ok {
if data.FirstTime.IsZero() {
@ -2544,13 +2754,9 @@ func (this *Scene) Statistics(param *StaticParam) {
}
// 玩家身上元数据
if param.IsAddTimes {
p.GameTimes++
}
if param.Gain > 0 {
if param.IsAddTimes {
p.WinTimes++
}
p.WinCoin += totalOut
p.TaxCoin += param.GainTax
if isPlayerPool && common.IsPlayerPool(this.GameId) {
@ -2558,18 +2764,14 @@ func (this *Scene) Statistics(param *StaticParam) {
p.PlayerTax += param.GainTax
}
} else if param.Gain < 0 {
if param.IsAddTimes {
p.FailTimes++
}
p.FailCoin += totalIn
if isPlayerPool && common.IsPlayerPool(this.GameId) {
p.TotalIn += totalIn
}
} else {
if param.IsAddTimes {
p.DrawTimes++
}
}
// 水池统计
if isControl && ((wbLevel == 0 && !isNovice) || addGain > 0) {
@ -2585,129 +2787,27 @@ func (this *Scene) Statistics(param *StaticParam) {
}
}
type StaticLabaParam struct {
SnId int32 // 玩家id
Gain int64 // 输赢金币(税后)
GainTax int64 // 赢取金币时的税收
IsAddTimes bool // 是否统计游戏次数
}
// StaticsLaba 拉霸游戏数据统计,一次下注记录一次
// 不含水池统计,黑白名单统计,在游戏中另外处理
func (this *Scene) StaticsLaba(param *StaticLabaParam) {
if param == nil {
return
}
p := this.GetPlayer(param.SnId)
if p == nil || p.IsRob {
return
}
// 比赛场,私人房不统计
if this.IsMatchScene() || this.IsPrivateScene() {
return
}
var totalIn int64
var totalOut int64
now := time.Now()
if param.Gain > 0 {
totalOut = param.Gain + param.GainTax
} else {
totalIn = -param.Gain
}
var statics []*model.PlayerGameStatics
keyGameId := strconv.Itoa(this.GetGameId())
keyGameFreeId := strconv.Itoa(int(this.GetGameFreeId()))
// 当天数据统计
// 按场次分
if data, ok := p.TodayGameData.CtrlData[keyGameFreeId]; ok {
statics = append(statics, data)
} else {
gs := model.NewPlayerGameStatics()
p.TodayGameData.CtrlData[keyGameFreeId] = gs
statics = append(statics, gs)
}
// 按游戏分
if data, ok := p.TodayGameData.CtrlData[keyGameId]; ok {
statics = append(statics, data)
} else {
data = model.NewPlayerGameStatics()
p.TodayGameData.CtrlData[keyGameId] = data
statics = append(statics, data)
}
// 按场次分
if data, ok := p.GDatas[keyGameFreeId]; ok {
if data.FirstTime.IsZero() {
data.FirstTime = now
}
statics = append(statics, &data.Statics)
} else {
data = &model.PlayerGameInfo{FirstTime: now}
p.GDatas[keyGameFreeId] = data
statics = append(statics, &data.Statics)
}
// 按游戏分
if data, ok := p.GDatas[keyGameId]; ok {
if data.FirstTime.IsZero() {
data.FirstTime = now
}
statics = append(statics, &data.Statics)
} else {
data = &model.PlayerGameInfo{FirstTime: now}
p.GDatas[keyGameId] = data
statics = append(statics, &data.Statics)
}
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
}
}
}
}
// 玩家身上元数据
if param.IsAddTimes {
p.GameTimes++
}
if param.Gain > 0 {
if param.IsAddTimes {
p.WinTimes++
}
p.WinCoin += totalOut
p.TaxCoin += param.GainTax
} else if param.Gain < 0 {
if param.IsAddTimes {
p.FailTimes++
}
p.FailCoin += totalIn
} else {
if param.IsAddTimes {
p.DrawTimes++
}
}
}
func (this *Scene) TryRelease() {
if !this.IsMatchScene() && this.realPlayerNum == 0 {
this.Destroy(true)
}
}
//type PlayerGamePoolParam struct {
// SnId int32
// HasRobotGaming bool // 是否有机器人玩本局游戏
// Gain int64 // 普通非黑白,非新手,非机器人的玩家输赢总额,需要扣税后的值(赢分扣税)
//}
// PushGamePool 将普通非黑白,新手,机器人的玩家输赢金额放入场次水池
//func (this *Scene) PushGamePool(param *PlayerGamePoolParam) {
// if this.IsMatchScene() || this.IsPrivateScene() || (this.IsFreePublic() && !param.HasRobotGaming) {
// return
// }
// p := this.GetPlayer(param.SnId)
// _, isNovice := p.NoviceOdds(this.GameId)
// if p == nil || p.IsRob || p.WBLevel != 0 || isNovice {
// return
// }
// CoinPoolMgr.PushCoin(this.GetGameFreeId(), this.GroupId, this.Platform, -param.Gain)
//}

View File

@ -430,18 +430,18 @@ func (this *SceneStateCaiShenStart) OnPlayerOp(s *base.Scene, p *base.Player, op
//水池设置
coinPoolSetting := base.CoinPoolMgr.GetCoinPoolSetting(sceneEx.Platform, sceneEx.GetGameFreeId(), sceneEx.GroupId)
//baseRate := coinPoolSetting.GetBaseRate() //基础赔率
ctroRate := coinPoolSetting.GetCtrlRate() //调节赔率 暗税系数
ctroRate := 500 //调节赔率 暗税系数
jackpotRate := ctroRate //奖池系数
logger.Logger.Tracef("CaiShenRates [%v][%v][%v][%v][%v]", sceneEx.GetGameFreeId(), playerEx.SnId, playerEx.spinID, taxRate, ctroRate)
playerEx.IsFNovice(sceneEx.KeyGameId)
isFoolPlayer := playerEx.IsFoolPlayer[sceneEx.KeyGameId]
isFoolPlayer := false
var gamePoolCoin int64
if isFoolPlayer {
gamePoolCoin = base.CoinPoolMgr.GetNoviceCoin(sceneEx.GetGameFreeId(), sceneEx.Platform, sceneEx.GroupId) // 当前水池金额
} else {
//if isFoolPlayer {
// gamePoolCoin = base.CoinPoolMgr.GetNoviceCoinPool(sceneEx.GetGameFreeId(), sceneEx.Platform, sceneEx.GroupId) // 当前水池金额
//} else {
gamePoolCoin = base.CoinPoolMgr.GetCoin(sceneEx.GetGameFreeId(), sceneEx.Platform, sceneEx.GroupId) // 当前水池金额
}
//}
prizeFund := gamePoolCoin - sceneEx.jackpot.VirtualJK // 除去奖池的水池剩余金额
// 奖池参数
@ -483,7 +483,7 @@ func (this *SceneStateCaiShenStart) OnPlayerOp(s *base.Scene, p *base.Player, op
var slotDataIsOk bool
for {
var symbolType rule.Symbol
if gamePoolCoin < coinPoolSetting.GetLowerLimit() { // userInfo.prizeFund < limit * roomId
if gamePoolCoin < int64(coinPoolSetting.GetLowerLimit()) { // userInfo.prizeFund < limit * roomId
symbolType = rule.SYMBOL1
} else {
symbolType = rule.SYMBOL2
@ -569,12 +569,8 @@ func (this *SceneStateCaiShenStart) OnPlayerOp(s *base.Scene, p *base.Player, op
playerEx.taxCoin = spinRes.TotalTaxScore
playerEx.AddServiceFee(playerEx.taxCoin)
}
sceneEx.StaticsLaba(&base.StaticLabaParam{
SnId: playerEx.SnId,
Gain: totalWinScore + spinRes.BonusGame.GetTotalPrizeValue() - totalBetValue,
GainTax: spinRes.TotalTaxScore,
IsAddTimes: true,
})
p.StaticsLaba(sceneEx.KeyGameId, sceneEx.KeyGamefreeId, totalBetValue, totalWinScore+spinRes.BonusGame.GetTotalPrizeValue()+spinRes.TotalTaxScore)
this.OnPlayerSToCOp(s, p, playerEx.Pos, opcode, caishen.OpResultCode_OPRC_Sucess, append(params[:1], playerEx.betLines...))
//免费次数
@ -999,8 +995,8 @@ func CaiShenCheckAndSaveLog(sceneEx *CaiShenSceneData, playerEx *CaiShenPlayerDa
//changeCoin := playerEx.Coin - playerEx.StartCoin
changeCoin := playerEx.winCoin - playerEx.taxCoin - playerEx.CurrentBet
startCoin := playerEx.Coin - changeCoin
//playerEx.SaveSceneCoinLog(startCoin, changeCoin,
// playerEx.Coin, playerEx.CurrentBet, playerEx.taxCoin, playerEx.winCoin, playerEx.jackpotWinCoin, playerEx.smallGameWinCoin)
playerEx.SaveSceneCoinLog(startCoin, changeCoin,
playerEx.Coin, playerEx.CurrentBet, playerEx.taxCoin, playerEx.winCoin, playerEx.jackpotWinCoin, playerEx.smallGameWinCoin)
//log2
playerEx.RollGameType.BaseResult.ChangeCoin = changeCoin
@ -1059,8 +1055,15 @@ func CaiShenCheckAndSaveLog(sceneEx *CaiShenSceneData, playerEx *CaiShenPlayerDa
Bet: proto.Int64(playerEx.CurrentBet),
Gain: proto.Int64(playerEx.RollGameType.BaseResult.ChangeCoin),
Tax: proto.Int64(playerEx.taxCoin),
OtherTax: 0,
Coin: proto.Int64(playerEx.GetCoin()),
FlowCoin: 0,
Lottery: 0,
Kind: 0,
Card: nil,
GameCoinTs: proto.Int64(playerEx.GameCoinTs),
WBGain: 0,
WinState: 0,
}
gwPlayerBet := &server.GWPlayerData{
SceneId: proto.Int(sceneEx.SceneId),

View File

@ -441,8 +441,6 @@ func CreatePlayerData(p *base.Player) *chesstitians.ChesstitiansPlayerData {
Pos: proto.Int(p.GetPos()),
ChessGrade: proto.Int64(p.ChessGrade),
IsRob: proto.Bool(p.IsRob),
Level: proto.Int64(p.Level),
Exp: proto.Int64(p.Exp),
}
ex, ok := p.GetExtraData().(*PlayerEx)
if ok {
@ -1315,6 +1313,10 @@ func (this *SceneStateBilled) OnEnter(s *base.Scene) {
if isSave {
// 牌局记录
sceneEx.SaveGameDetailedLog(logid, info, &base.GameDetailedParam{})
if !sceneEx.IsMatchScene() {
sceneEx.SetSystemCoinOut(sceneEx.SystemCoinOut())
base.CoinPoolMgr.PushCoin(sceneEx.GetCoinSceneTypeId(), sceneEx.GetGroupId(), sceneEx.GetPlatform(), sceneEx.GetSystemCoinOut())
}
}
}
sceneEx.NotifySceneRoundPause()

View File

@ -419,17 +419,17 @@ func (this *SceneStateEasterIslandStart) OnPlayerOp(s *base.Scene, p *base.Playe
taxRate = 500
}
coinPoolSetting := base.CoinPoolMgr.GetCoinPoolSetting(sceneEx.Platform, sceneEx.GetGameFreeId(), sceneEx.GroupId)
ctroRate := coinPoolSetting.GetCtrlRate() //调节赔率 暗税系数
ctroRate := 500 //调节赔率 暗税系数
logger.Logger.Tracef("EasterIslandRates [%v][%v][%v][%v][%v]", sceneEx.GetGameFreeId(), playerEx.SnId, playerEx.spinID, taxRate, ctroRate)
playerEx.IsFNovice(sceneEx.KeyGameId)
isFoolPlayer := playerEx.IsFoolPlayer[sceneEx.KeyGameId]
isFoolPlayer := false
var gamePoolCoin int64
if isFoolPlayer {
gamePoolCoin = base.CoinPoolMgr.GetNoviceCoin(sceneEx.GetGameFreeId(), sceneEx.Platform, sceneEx.GroupId) // 当前水池金额
} else {
//if isFoolPlayer {
// gamePoolCoin = base.CoinPoolMgr.GetNoviceCoinPool(sceneEx.GetGameFreeId(), sceneEx.Platform, sceneEx.GroupId) // 当前水池金额
//} else {
gamePoolCoin = base.CoinPoolMgr.GetCoin(sceneEx.GetGameFreeId(), sceneEx.Platform, sceneEx.GroupId) // 当前水池金额
}
//}
prizeFund := gamePoolCoin - sceneEx.jackpot.VirtualJK // 除去奖池的水池剩余金额
jackpotParams := sceneEx.DbGameFree.GetJackpot() // 奖池参数
var jackpotInit = int64(jackpotParams[rule.EL_JACKPOT_InitJackpot] * sceneEx.DbGameFree.GetBaseScore()) //奖池初始值
@ -466,7 +466,7 @@ func (this *SceneStateEasterIslandStart) OnPlayerOp(s *base.Scene, p *base.Playe
var slotDataIsOk bool
for {
var symbolType rule.Symbol
if gamePoolCoin < coinPoolSetting.GetLowerLimit() { // userInfo.prizeFund < limit * roomId
if gamePoolCoin < int64(coinPoolSetting.GetLowerLimit()) { // userInfo.prizeFund < limit * roomId
symbolType = rule.SYMBOL1
} else {
symbolType = rule.SYMBOL2
@ -547,12 +547,8 @@ func (this *SceneStateEasterIslandStart) OnPlayerOp(s *base.Scene, p *base.Playe
playerEx.taxCoin = spinRes.TotalTaxScore
playerEx.AddServiceFee(playerEx.taxCoin)
}
sceneEx.StaticsLaba(&base.StaticLabaParam{
SnId: playerEx.SnId,
Gain: totalWinScore + spinRes.BonusGame.GetTotalPrizeValue() - totalBetValue,
GainTax: spinRes.TotalTaxScore,
IsAddTimes: true,
})
p.StaticsLaba(sceneEx.KeyGameId, sceneEx.KeyGamefreeId, totalBetValue, totalWinScore+spinRes.BonusGame.GetTotalPrizeValue()+spinRes.TotalTaxScore)
this.OnPlayerSToCOp(s, p, playerEx.Pos, opcode, easterisland.OpResultCode_OPRC_Sucess, append(params[:1], playerEx.betLines...))
var isFreeFlag bool
@ -868,8 +864,8 @@ func EasterIslandCheckAndSaveLog(sceneEx *EasterIslandSceneData, playerEx *Easte
//changeCoin := playerEx.Coin - playerEx.StartCoin
changeCoin := playerEx.winCoin - playerEx.taxCoin - playerEx.CurrentBet
startCoin := playerEx.Coin - changeCoin
//playerEx.SaveSceneCoinLog(startCoin, changeCoin,
// playerEx.Coin, playerEx.CurrentBet, playerEx.taxCoin, playerEx.winCoin, playerEx.jackpotWinCoin, playerEx.smallGameWinCoin)
playerEx.SaveSceneCoinLog(startCoin, changeCoin,
playerEx.Coin, playerEx.CurrentBet, playerEx.taxCoin, playerEx.winCoin, playerEx.jackpotWinCoin, playerEx.smallGameWinCoin)
//log2
playerEx.RollGameType.BaseResult.ChangeCoin = changeCoin

View File

@ -942,11 +942,11 @@ func (this *FishingSceneData) fishSettlements(fishs []*Fish, player *FishingPlay
fishlogger.Infof("玩家:%v ,鱼死亡扣除金币池: %v ,当前金币池剩余:%v", player.SnId, coin, player.MoneyPond)
fishlogger.Infof("fishSettlements player %v coin %v dropCoin %v , moneyPond = %v", player.SnId, player.CoinCache, coin, player.MoneyPond)
pack.AddExp = sumExp
oldLevel := player.Level
oldLevel := player.FishLevel
player.AddPlayerExp(int64(sumExp))
if oldLevel != player.Level {
if oldLevel != player.FishLevel {
//触发炮倍解锁事件
player.PlayerEvent(fishing.Event_Player_UpLevel, player.Level)
player.PlayerEvent(fishing.Event_Player_UpLevel, player.FishLevel)
}
pack.CurrentPlayerCoin = proto.Int64(player.CoinCache)
proto.SetDefaults(pack)

View File

@ -1,6 +1,7 @@
package fishing
import (
"math"
"mongo.games.com/game/common"
"mongo.games.com/game/gamerule/fishing"
"mongo.games.com/game/gamesrv/base"
@ -98,8 +99,8 @@ func (this *ScenePolicyFishing) OnPlayerLeave(s *base.Scene, p *base.Player, rea
if playerEx.GetCurrentCoin() == 0 {
playerEx.SetCurrentCoin(playerEx.GetTakeCoin())
}
//playerEx.SaveSceneCoinLog(playerEx.GetCurrentCoin(), int64(playerEx.CoinCache-playerEx.GetCurrentCoin()),
// playerEx.GetCoin(), 0, int64(math.Floor(playerEx.taxCoin+0.5)), playerEx.winCoin, 0, 0)
playerEx.SaveSceneCoinLog(playerEx.GetCurrentCoin(), int64(playerEx.CoinCache-playerEx.GetCurrentCoin()),
playerEx.GetCoin(), 0, int64(math.Floor(playerEx.taxCoin+0.5)), playerEx.winCoin, 0, 0)
playerEx.SetCurrentCoin(playerEx.GetCoin())
}
}
@ -220,8 +221,8 @@ func FishingSendRoomInfo(p *base.Player, sceneEx *FishingSceneData) {
NiceId: proto.Int32(pp.NiceId),
UnMaxPower: proto.Int64(pp.UnMaxPower),
UnPowerList: pp.PowerList,
Level: proto.Int64(pp.Level),
Exp: proto.Int64(pp.Exp),
FishLevel: proto.Int64(pp.FishLevel),
FishExp: proto.Int64(pp.FishExp),
}
for _, v := range pp.RobotSnIds {
pd.RobotSnIds = append(pd.RobotSnIds, v)
@ -585,8 +586,8 @@ func (this *SceneBaseStateFishing) OnPlayerEvent(s *base.Scene, p *base.Player,
NiceId: proto.Int32(playerEx.NiceId),
UnMaxPower: proto.Int64(playerEx.UnMaxPower),
UnPowerList: playerEx.PowerList,
Level: proto.Int64(playerEx.Level),
Exp: proto.Int64(playerEx.Exp),
FishLevel: proto.Int64(playerEx.FishLevel),
FishExp: proto.Int64(playerEx.FishExp),
},
}
for _, v := range playerEx.RobotSnIds {

View File

@ -397,7 +397,7 @@ func (this *SceneStateIceAgeStart) OnPlayerOp(s *base.Scene, p *base.Player, opc
//水池设置
coinPoolSetting := base.GetCoinPoolMgr().GetCoinPoolSetting(sceneEx.GetPlatform(), sceneEx.GetGameFreeId(), sceneEx.GetGroupId())
//baseRate := coinPoolSetting.GetBaseRate() //基础赔率
ctroRate := coinPoolSetting.GetCtrlRate() //调节赔率 暗税系数
ctroRate := 500 //调节赔率 暗税系数
//if baseRate >= 10000 || baseRate <= 0 || ctroRate < 0 || ctroRate >= 1000 || baseRate+ctroRate > 9900 {
// logger.Logger.Warnf("IceAgeErrorBaseRate [%v][%v][%v][%v][%v]", sceneEx.GetGameFreeId(), playerEx.SnId, playerEx.spinID, baseRate, ctroRate)
// baseRate = 9700
@ -408,13 +408,13 @@ func (this *SceneStateIceAgeStart) OnPlayerOp(s *base.Scene, p *base.Player, opc
logger.Logger.Tracef("IceAgeRates [%v][%v][%v][%v][%v]", sceneEx.GetGameFreeId(), playerEx.SnId, playerEx.spinID, taxRate, ctroRate)
playerEx.IsFNovice(sceneEx.KeyGameId)
isFoolPlayer := playerEx.IsFoolPlayer[sceneEx.KeyGameId]
isFoolPlayer := false
var gamePoolCoin int64
if isFoolPlayer {
gamePoolCoin = base.CoinPoolMgr.GetNoviceCoin(sceneEx.GetGameFreeId(), sceneEx.Platform, sceneEx.GroupId) // 当前水池金额
} else {
//if isFoolPlayer {
// gamePoolCoin = base.CoinPoolMgr.GetNoviceCoinPool(sceneEx.GetGameFreeId(), sceneEx.Platform, sceneEx.GroupId) // 当前水池金额
//} else {
gamePoolCoin = base.CoinPoolMgr.GetCoin(sceneEx.GetGameFreeId(), sceneEx.Platform, sceneEx.GroupId) // 当前水池金额
}
//}
prizeFund := gamePoolCoin - sceneEx.jackpot.VirtualJK // 除去奖池的水池剩余金额
var jackpotParam = sceneEx.GetDBGameFree().GetJackpot() // 奖池参数
@ -579,12 +579,7 @@ func (this *SceneStateIceAgeStart) OnPlayerOp(s *base.Scene, p *base.Player, opc
playerEx.taxCoin = spinRes.TotalTaxScore
playerEx.AddServiceFee(playerEx.taxCoin)
}
sceneEx.StaticsLaba(&base.StaticLabaParam{
SnId: playerEx.SnId,
Gain: spinRes.TotalPrizeLine + spinRes.TotalPrizeBonus - totalBetValue,
GainTax: spinRes.TotalTaxScore,
IsAddTimes: true,
})
p.StaticsLaba(sceneEx.KeyGameId, sceneEx.KeyGamefreeId, totalBetValue, spinRes.TotalPrizeLine+spinRes.TotalPrizeBonus+spinRes.TotalTaxScore)
var isFreeFlag bool
//免费次数
@ -918,8 +913,8 @@ func IceAgeCheckAndSaveLog(sceneEx *IceAgeSceneData, playerEx *IceAgePlayerData)
//changeCoin := playerEx.GetCoin() - playerEx.GetStartCoin()
changeCoin := playerEx.winCoin - playerEx.taxCoin - playerEx.CurrentBet
startCoin := playerEx.Coin - changeCoin
//playerEx.SaveSceneCoinLog(startCoin, changeCoin,
// playerEx.GetCoin(), playerEx.GetCurrentBet(), playerEx.taxCoin, playerEx.winCoin, playerEx.jackpotWinCoin, playerEx.smallGameWinCoin)
playerEx.SaveSceneCoinLog(startCoin, changeCoin,
playerEx.GetCoin(), playerEx.GetCurrentBet(), playerEx.taxCoin, playerEx.winCoin, playerEx.jackpotWinCoin, playerEx.smallGameWinCoin)
//log2
playerEx.RollGameType.BaseResult.ChangeCoin = changeCoin

View File

@ -444,12 +444,9 @@ func (s *RichBlessedSceneData) SendPlayerBet(p *RichBlessedPlayerData) {
Bet: proto.Int64(betCoin),
Gain: proto.Int64(p.Coin - p.startCoin),
Tax: proto.Int64(p.taxCoin),
Coin: p.Coin,
GameCoinTs: p.GameCoinTs,
}
gwPlayerBet := &server.GWPlayerData{
GameFreeId: proto.Int32(s.DbGameFree.GetId()),
SceneId: int32(s.SceneId),
}
gwPlayerBet.Datas = append(gwPlayerBet.Datas, playerBet)
s.SyncPlayerDatas(&base.PlayerDataParam{

View File

@ -1126,6 +1126,14 @@ func (this *StateBilled) OnEnter(s *base.Scene) {
// 本局下注才记录
if sceneEx.logic.IsCurRoundBet(playerEx.CurBetData) {
sceneEx.Statistics(&base.StaticParam{
SnId: playerEx.SnId,
Gain: playerEx.gainCoin,
GainTax: playerEx.taxCoin,
IsAddTimes: true,
HasRobotGaming: sceneEx.robotNum > 0,
})
logger.Logger.Trace("SmallRocketSaveLog Save ", playerEx.SnId)
TotalBetValue := sceneEx.logic.GetRoundBetCoin(playerEx.CurBetData)
@ -1134,13 +1142,7 @@ func (this *StateBilled) OnEnter(s *base.Scene) {
changeCoin := playerEx.gainCoin - playerEx.taxCoin - int64(TotalBetValue)
startCoin := playerEx.Coin - changeCoin
sceneEx.StaticsLaba(&base.StaticLabaParam{
SnId: playerEx.SnId,
Gain: changeCoin,
GainTax: playerEx.taxCoin,
IsAddTimes: true,
})
//playerEx.SaveSceneCoinLog(startCoin, changeCoin, playerEx.GetCoin(), int64(TotalBetValue), playerEx.taxCoin, playerEx.gainCoin, 0, 0)
playerEx.SaveSceneCoinLog(startCoin, changeCoin, playerEx.GetCoin(), int64(TotalBetValue), playerEx.taxCoin, playerEx.gainCoin, 0, 0)
//GainTotalBetVal := sceneEx.logic.GetRoundGainCoin(playerEx.betData, )
LogBaseResult := model.SmallRocketBaseResultType{}
@ -1209,20 +1211,22 @@ func (this *StateBilled) OnEnter(s *base.Scene) {
// 提前离开的
for _, playerEx := range sceneEx.PlayerBackup {
if playerEx != nil && playerEx.isBilled {
if sceneEx.logic.IsCurRoundBet(playerEx.CurBetData) {
sceneEx.Statistics(&base.StaticParam{
SnId: playerEx.SnId,
Gain: playerEx.gainCoin,
GainTax: playerEx.taxCoin,
IsAddTimes: true,
HasRobotGaming: sceneEx.robotNum > 0,
})
}
TotalBetValue := sceneEx.logic.GetRoundBetCoin(playerEx.CurBetData)
// 统计金币变动
changeCoin := playerEx.gainCoin - playerEx.taxCoin - int64(TotalBetValue)
startCoin := playerEx.Coin - changeCoin
if sceneEx.logic.IsCurRoundBet(playerEx.CurBetData) {
sceneEx.StaticsLaba(&base.StaticLabaParam{
SnId: playerEx.SnId,
Gain: changeCoin,
GainTax: playerEx.taxCoin,
IsAddTimes: true,
})
}
// playerEx.SaveSceneCoinLog(startCoin, changeCoin, playerEx.Coin, int64(TotalBetValue), playerEx.taxCoin, playerEx.gainCoin, 0, 0)
LogBaseResult := model.SmallRocketBaseResultType{}

View File

@ -395,18 +395,18 @@ func (this *SceneStateTamQuocStart) OnPlayerOp(s *base.Scene, p *base.Player, op
}
//水池设置
coinPoolSetting := base.CoinPoolMgr.GetCoinPoolSetting(sceneEx.Platform, sceneEx.GetGameFreeId(), sceneEx.GroupId)
ctroRate := coinPoolSetting.GetCtrlRate() //调节赔率 暗税系数
ctroRate := 500 //调节赔率 暗税系数
jackpotRate := ctroRate //奖池系数
logger.Logger.Tracef("TamQuocRates [%v][%v][%v][%v][%v]", sceneEx.GetGameFreeId(), playerEx.SnId, playerEx.spinID, taxRate, ctroRate)
playerEx.IsFNovice(sceneEx.KeyGameId)
isFoolPlayer := playerEx.IsFoolPlayer[sceneEx.KeyGameId]
isFoolPlayer := false
var gamePoolCoin int64
if isFoolPlayer {
gamePoolCoin = base.CoinPoolMgr.GetNoviceCoin(sceneEx.GetGameFreeId(), sceneEx.Platform, sceneEx.GroupId) // 当前水池金额
} else {
//if isFoolPlayer {
// gamePoolCoin = base.CoinPoolMgr.GetNoviceCoinPool(sceneEx.GetGameFreeId(), sceneEx.Platform, sceneEx.GroupId) // 当前水池金额
//} else {
gamePoolCoin = base.CoinPoolMgr.GetCoin(sceneEx.GetGameFreeId(), sceneEx.Platform, sceneEx.GroupId) // 当前水池金额
}
//}
prizeFund := gamePoolCoin - sceneEx.jackpot.VirtualJK // 除去奖池的水池剩余金额
// 奖池参数
@ -442,7 +442,7 @@ func (this *SceneStateTamQuocStart) OnPlayerOp(s *base.Scene, p *base.Player, op
}
var symbolType rule.Symbol
if gamePoolCoin <= coinPoolSetting.GetLowerLimit() { // 水池不足
if gamePoolCoin <= int64(coinPoolSetting.GetLowerLimit()) { // 水池不足
symbolType = rule.SYMBOL1
} else {
symbolType = rule.SYMBOL2
@ -553,12 +553,7 @@ func (this *SceneStateTamQuocStart) OnPlayerOp(s *base.Scene, p *base.Player, op
playerEx.taxCoin = spinRes.TotalTaxScore
playerEx.AddServiceFee(playerEx.taxCoin)
}
sceneEx.StaticsLaba(&base.StaticLabaParam{
SnId: playerEx.SnId,
Gain: totalWinScore + spinRes.BonusGame.GetTotalPrizeValue() - totalBetValue,
GainTax: spinRes.TotalTaxScore,
IsAddTimes: true,
})
p.StaticsLaba(sceneEx.KeyGameId, sceneEx.KeyGamefreeId, totalBetValue, totalWinScore+spinRes.BonusGame.GetTotalPrizeValue()+spinRes.TotalTaxScore)
this.OnPlayerSToCOp(s, p, playerEx.Pos, opcode, tamquoc.OpResultCode_OPRC_Sucess, append(params[:1], playerEx.betLines...))
@ -754,8 +749,8 @@ func TamQuocCheckAndSaveLog(sceneEx *TamQuocSceneData, playerEx *TamQuocPlayerDa
//changeCoin := playerEx.Coin - playerEx.StartCoin
changeCoin := playerEx.winCoin - playerEx.taxCoin - playerEx.CurrentBet
startCoin := playerEx.Coin - changeCoin
//playerEx.SaveSceneCoinLog(startCoin, changeCoin,
// playerEx.Coin, playerEx.CurrentBet, playerEx.taxCoin, playerEx.winCoin, playerEx.jackpotWinCoin, playerEx.smallGameWinCoin)
playerEx.SaveSceneCoinLog(startCoin, changeCoin,
playerEx.Coin, playerEx.CurrentBet, playerEx.taxCoin, playerEx.winCoin, playerEx.jackpotWinCoin, playerEx.smallGameWinCoin)
//log2
playerEx.RollGameType.BaseResult.ChangeCoin = changeCoin

View File

@ -198,8 +198,6 @@ func (this *SceneEx) ThirteenWaterCreateRoomInfoPacket(s *base.Scene, p *base.Pl
IsStand: proto.Bool(playerEx.isStand),
IsConfirm: proto.Bool(playerEx.deterMine),
RoleId: playerEx.PlayerData.GetRoleId(),
Level: proto.Int64(playerEx.PlayerData.Level),
Exp: proto.Int64(playerEx.PlayerData.Exp),
}
ppp := &thirteen.Poker{}
ppp.IndexType = -1

View File

@ -109,8 +109,6 @@ func (this *PolicyThirteen) OnPlayerEnter(s *base.Scene, p *base.Player) {
HeadOutLine: proto.Int32(p.HeadOutLine),
VIP: proto.Int32(p.VIP),
RoleId: p.PlayerData.GetRoleId(),
Level: proto.Int64(p.Level),
Exp: proto.Int64(p.Exp),
},
}
proto.SetDefaults(pack)
@ -340,8 +338,6 @@ func (this *PolicyThirteen) OnAudienceSit(s *base.Scene, p *base.Player) {
HeadOutLine: proto.Int32(p.HeadOutLine),
VIP: proto.Int32(p.VIP),
RoleId: p.PlayerData.GetRoleId(),
Level: proto.Int64(p.Level),
Exp: proto.Int64(p.Exp),
},
}
proto.SetDefaults(pack)
@ -1224,6 +1220,13 @@ func (this *StateBilled) OnEnter(s *base.Scene) {
if playerEx.score[6] > 0 {
playerEx.AddCoin(playerEx.score[6]*int64(sceneEx.GetBaseScore()), common.GainWay_LeaveCombat, base.SyncFlag_ToClient, "system", s.GetSceneName())
}
sceneEx.Statistics(&base.StaticParam{
SnId: playerEx.SnId,
Gain: playerEx.gainCoin,
GainTax: playerEx.taxCoin,
IsAddTimes: true,
HasRobotGaming: sceneEx.robotNum > 0,
})
billed = append(billed, &thirteen.Billed{
Pos: proto.Int32(int32(playerEx.Pos)),
Coin: proto.Int64(playerEx.Coin),
@ -1313,13 +1316,6 @@ func (this *StateBilled) OnEnter(s *base.Scene) {
person = append(person, p)
///
if !o_player.IsRob {
sceneEx.Statistics(&base.StaticParam{
SnId: o_player.SnId,
Gain: o_player.gainCoin,
GainTax: o_player.taxCoin,
IsAddTimes: true,
HasRobotGaming: sceneEx.robotNum > 0,
})
//有真人 存真人的映射表
totalin, totalout := int64(0), int64(0)
if o_player.CurIsWin > 0 {

View File

@ -1,9 +1,7 @@
package tienlen
import (
"math"
"math/rand"
"mongo.games.com/game/protocol/player"
"strconv"
"time"
@ -11,8 +9,6 @@ import (
"mongo.games.com/game/gamesrv/base"
"mongo.games.com/game/proto"
"mongo.games.com/game/protocol/tienlen"
"mongo.games.com/game/srvdata"
"mongo.games.com/goserver/core/logger"
)
// 玩家身上的额外数据
@ -213,58 +209,3 @@ func (this *TienLenPlayerData) LeaveAutoState(s *base.Scene) {
//logger.Logger.Trace("(this *TienLenPlayerData) LeaveAutoState", " player:", this.SnId, " Flag=", this.GetFlag())
}
}
// 能否用记牌器
func (this *TienLenPlayerData) CanUseRecordItem() bool {
if this.ItemRecExpireTime >= time.Now().Unix() {
return true
}
return false
}
// 更新玩家存钱罐
func (this *TienLenPlayerData) UpdatePigbankCoin(gainTexCoin int64) {
if this.IsRobot() {
return
}
if this.PlayerData.WelfData == nil || this.PlayerData.WelfData.PigBank == nil {
return
}
fGetPropValue := func(propName string) int64 {
pool := srvdata.PBDB_Pigbank_PropMgr.Datas.GetArr()
for _, PropItem := range pool {
if PropItem.PorpName == propName {
return int64(PropItem.PropValue)
}
}
return 0
}
BankCoinMax := fGetPropValue("BankMaxCoin")
pack := &player.SCPigBankCoin{}
if gainTexCoin < 0 {
LoseCoinRate := fGetPropValue("LoseCoinRate")
pack.AddBankCoin = int64(math.Abs(math.Ceil(float64(gainTexCoin) * float64(LoseCoinRate) / 100.0)))
}
if gainTexCoin > 0 {
WinCoinRate := fGetPropValue("WinCoinRate")
pack.AddBankCoin = int64(math.Ceil(float64(gainTexCoin) * float64(WinCoinRate) / 100.0))
}
this.WelfData.PigBank.BankCoin += pack.AddBankCoin
if this.WelfData.PigBank.BankCoin > BankCoinMax {
this.WelfData.PigBank.BankCoin = BankCoinMax
}
pack.BankCoinMax = BankCoinMax
pack.BankCoin = this.WelfData.PigBank.BankCoin
logger.Logger.Trace("-------(this *TienLenPlayerData) UpdatePigbankCoin player SnId:", this.SnId, ";pack: ", pack, ";gainTexCoin: ", gainTexCoin)
this.SendToClient(int(player.PlayerPacketID_PACKET_SCPigBankCoin), pack)
}

View File

@ -611,8 +611,6 @@ func (this *TienLenSceneData) SendHandCard_Match() {
for j := int32(0); j < rule.HandCardNum; j++ {
pack.Cards = append(pack.Cards, seat.cards[j])
}
pack.IsOutRecord = seat.CanUseRecordItem()
proto.SetDefaults(pack)
seat.SendToClient(int(tienlen.TienLenPacketID_PACKET_SCTienLenCard), pack)
logger.Logger.Trace("SnId: ", seat.SnId, ";SCTienLenCard: ", pack.Cards)
@ -645,7 +643,6 @@ func (this *TienLenSceneData) SendHandCard_Match() {
for j := int32(0); j < rule.HandCardNum; j++ {
pack.Cards = append(pack.Cards, seat.cards[j])
}
pack.IsOutRecord = seat.CanUseRecordItem()
proto.SetDefaults(pack)
seat.SendToClient(int(tienlen.TienLenPacketID_PACKET_SCTienLenCard), pack)
logger.Logger.Trace("SnId: ", seat.SnId, ";SCTienLenCard: ", pack.Cards)
@ -1096,7 +1093,6 @@ func (this *TienLenSceneData) SendHandCardOdds() {
for j := int32(0); j < rule.HandCardNum; j++ {
pack.Cards = append(pack.Cards, p.cards[j])
}
pack.IsOutRecord = p.CanUseRecordItem()
proto.SetDefaults(pack)
p.SendToClient(int(tienlen.TienLenPacketID_PACKET_SCTienLenCard), pack)
logger.Logger.Trace("SnId: ", p.SnId, ";SCTienLenCard: ", pack)
@ -1721,8 +1717,6 @@ func (this *TienLenSceneData) SendHandCardTest() {
for j := int32(0); j < rule.HandCardNum; j++ {
pack.Cards = append(pack.Cards, int32(seatPlayerEx.cards[j]))
}
pack.IsOutRecord = seatPlayerEx.CanUseRecordItem()
proto.SetDefaults(pack)
seatPlayerEx.SendToClient(int(tienlen.TienLenPacketID_PACKET_SCTienLenCard), pack)
logger.Logger.Trace("player_id", seatPlayerEx.SnId, ";SCTienLenCard", pack.Cards)

View File

@ -363,8 +363,6 @@ func TienLenCreatePlayerData(p *base.Player, rankScore int64) *tienlen.TienLenPl
NiceId: proto.Int32(p.NiceId),
Pos: proto.Int(p.GetPos()),
RankScore: rankScore,
Level: proto.Int64(p.Level),
Exp: proto.Int64(p.Exp),
}
if playerEx != nil {
pd.ThinkLongCnt = playerEx.ThinkLongCnt
@ -384,10 +382,6 @@ func TienLenCreatePlayerData(p *base.Player, rankScore int64) *tienlen.TienLenPl
if len(p.MatchParams) > 1 {
pd.Lv = p.MatchParams[1]
}
if p.WelfData != nil && p.WelfData.PigBank != nil {
pd.PigBankCoin = p.WelfData.PigBank.BankCoin
}
logger.Logger.Trace("TienLenCreatePlayerData pd : ", pd)
return pd
@ -508,17 +502,6 @@ func TienLenCreateRoomInfoPacket(s *base.Scene, p *base.Player, sceneEx *TienLen
pack.LastDelCards = append(pack.LastDelCards, lastDelCard)
insertNum++
}
for _, cards := range sceneEx.card_play_action_seq_int32 {
for _, card := range cards {
if card >= 0 {
pack.OutCardRecord = append(pack.OutCardRecord, card)
}
}
}
pack.IsOutRecord = playerEx.CanUseRecordItem()
pack.ItemRecExpireTime = playerEx.ItemRecExpireTime
proto.SetDefaults(pack)
return pack
}
@ -1663,7 +1646,6 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
var sceneTypeScore int64 // 场次额外积分
var vipScore int64 // vip加成
var roleScore int64 // 角色加成
var weekCardScore int64 // 周卡加成
var roleAdd int32
var otherScore int64 // 额外总加分
oldRankScore := losePlayer.GetRankScore(sceneEx.GetDBGameFree().GetRankType())
@ -1700,12 +1682,8 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
// 角色加成分
_, roleAdd = srvdata.RolePetMgrSington.GetRoleAdd(&losePlayer.PlayerData, common.RoleAddRankScore)
roleScore = int64(math.Ceil(float64(rankScore) * float64(roleAdd) / 100.0))
//周卡加成
if losePlayer.GetWeekCardPrivilege(2) {
weekCardScore = int64(math.Ceil(float64(rankScore) * float64(5) / 100.0))
}
}
otherScore = sceneTypeScore + vipScore + roleScore + weekCardScore
otherScore = sceneTypeScore + vipScore + roleScore
losePlayer.AddRankScore(sceneEx.GetDBGameFree().GetRankType(), rankScore+otherScore) // 炸弹分一起算
}
losePlayer.winCoin -= gainScore
@ -1741,13 +1719,6 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
Addition: roleAdd,
Score: roleScore,
})
// 周卡加成
billData.AddItems = append(billData.AddItems, &tienlen.AddItem{
ItemType: 6,
ItemId: 0,
Addition: 5,
Score: weekCardScore,
})
}
isWin := int32(0)
billCoin := losePlayer.bombScore - gainScore
@ -1825,7 +1796,6 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
var rankScore int64 // 排位积分
var sceneTypeScore int64 // 场次额外积分
var vipScore int64 // vip加成
var weekCardScore int64 // 周卡加成
var otherScore int64 // 额外总加分
oldRankScore := lastWinPlayer.GetRankScore(sceneEx.GetDBGameFree().GetRankType())
lastWinScore := rule.GetLoseScore(lastWinPlayer.cards, true)
@ -1860,14 +1830,9 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
vipScore = int64(math.Ceil(float64(rankScore) * float64(lastWinPlayer.VipExtra) / 100.0))
// 角色加成分
_, roleAdd = srvdata.RolePetMgrSington.GetRoleAdd(&lastWinPlayer.PlayerData, common.RoleAddRankScore)
//周卡加成
if lastWinPlayer.GetWeekCardPrivilege(2) {
weekCardScore = int64(math.Ceil(float64(rankScore) * float64(5) / 100.0))
}
roleScore = int64(math.Ceil(float64(rankScore) * float64(roleAdd) / 100.0))
}
otherScore = sceneTypeScore + vipScore + roleScore + weekCardScore
otherScore = sceneTypeScore + vipScore + roleScore
lastWinPlayer.AddRankScore(sceneEx.GetDBGameFree().GetRankType(), rankScore+otherScore) // 炸弹分一起算
}
lastWinPlayer.winCoin -= astWinGainScore
@ -1903,13 +1868,6 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
Addition: roleAdd,
Score: roleScore,
})
// 周卡加成
billData.AddItems = append(billData.AddItems, &tienlen.AddItem{
ItemType: 6,
ItemId: 0,
Addition: 5,
Score: weekCardScore,
})
}
isWin := int32(0)
billCoin := lastWinPlayer.bombScore - astWinGainScore
@ -1965,7 +1923,6 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
var rankScore int64 // 排位积分
var sceneTypeScore int64 // 场次额外积分
var vipScore int64 // vip加成
var weekCardScore int64 // 周卡加成
var otherScore int64 // 额外总加分
oldRankScore := playerEx.GetRankScore(sceneEx.GetDBGameFree().GetRankType())
rankScore = loseRankScore
@ -1992,12 +1949,8 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
// 角色加成分
_, roleAdd = srvdata.RolePetMgrSington.GetRoleAdd(&playerEx.PlayerData, common.RoleAddRankScore)
roleScore = int64(math.Ceil(float64(rankScore) * float64(roleAdd) / 100.0))
//周卡加成
if playerEx.GetWeekCardPrivilege(2) {
weekCardScore = int64(math.Ceil(float64(rankScore) * float64(5) / 100.0))
}
}
otherScore = sceneTypeScore + vipScore + roleScore + weekCardScore
otherScore = sceneTypeScore + vipScore + roleScore
playerEx.AddRankScore(sceneEx.GetDBGameFree().GetRankType(), rankScore+otherScore) // 炸弹分一起算
}
playerEx.winCoin += gainScore
@ -2033,13 +1986,6 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
Addition: roleAdd,
Score: roleScore,
})
// 周卡加成
billData.AddItems = append(billData.AddItems, &tienlen.AddItem{
ItemType: 6,
ItemId: 0,
Addition: 5,
Score: weekCardScore,
})
}
isWin := int32(0)
billCoin := playerEx.bombScore + gainScore
@ -2094,7 +2040,6 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
var rankScore int64 // 排位积分
var sceneTypeScore int64 // 场次额外积分
var vipScore int64 // vip加成
var weekCardScore int64 // 周卡加成
var otherScore int64 // 额外总加分
oldRankScore := playerEx.GetRankScore(sceneEx.GetDBGameFree().GetRankType())
rankScore = lastWinPlayerRankScore
@ -2116,12 +2061,8 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
// 角色加成分
_, roleAdd = srvdata.RolePetMgrSington.GetRoleAdd(&playerEx.PlayerData, common.RoleAddRankScore)
roleScore = int64(math.Ceil(float64(rankScore) * float64(roleAdd) / 100.0))
//周卡加成
if playerEx.GetWeekCardPrivilege(2) {
weekCardScore = int64(math.Ceil(float64(rankScore) * float64(5) / 100.0))
}
}
otherScore = sceneTypeScore + vipScore + roleScore + weekCardScore
otherScore = sceneTypeScore + vipScore + roleScore
playerEx.AddRankScore(sceneEx.GetDBGameFree().GetRankType(), rankScore+otherScore) // 炸弹分一起算
}
playerEx.winCoin += gainScore
@ -2157,13 +2098,6 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
Addition: roleAdd,
Score: roleScore,
})
// 周卡加成
billData.AddItems = append(billData.AddItems, &tienlen.AddItem{
ItemType: 6,
ItemId: 0,
Addition: 5,
Score: weekCardScore,
})
}
isWin := int32(0)
billCoin := playerEx.bombScore + gainScore
@ -2219,7 +2153,6 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
var rankScore int64 // 排位积分
var sceneTypeScore int64 // 场次额外积分
var vipScore int64 // vip加成
var weekCardScore int64 // 周卡加成
var roleScore int64 // 角色加成
var roleAdd int32
var otherScore int64 // 额外总加分
@ -2286,12 +2219,8 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
// 角色加成分
_, roleAdd = srvdata.RolePetMgrSington.GetRoleAdd(&playerEx.PlayerData, common.RoleAddRankScore)
roleScore = int64(math.Ceil(float64(rankScore) * float64(roleAdd) / 100.0))
//周卡加成
if playerEx.GetWeekCardPrivilege(2) {
weekCardScore = int64(math.Ceil(float64(rankScore) * float64(5) / 100.0))
}
}
otherScore = sceneTypeScore + vipScore + roleScore + weekCardScore
otherScore = sceneTypeScore + vipScore + roleScore
playerEx.AddRankScore(sceneEx.GetDBGameFree().GetRankType(), rankScore+otherScore) // 炸弹分一起算
}
playerEx.winCoin -= gainScore
@ -2328,13 +2257,6 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
Addition: roleAdd,
Score: roleScore,
})
// 周卡加成
billData.AddItems = append(billData.AddItems, &tienlen.AddItem{
ItemType: 6,
ItemId: 0,
Addition: 5,
Score: weekCardScore,
})
}
isWin := int32(0)
@ -2416,7 +2338,6 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
var sceneTypeScore int64 // 场次额外积分
var vipScore int64 // vip加成
var roleScore int64 // 角色加成
var weekCardScore int64 // 周卡加成
var roleAdd int32
var otherScore int64 // 额外总加分
playerEx := sceneEx.players[winSnid]
@ -2439,11 +2360,7 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
// 角色加成分
_, roleAdd = srvdata.RolePetMgrSington.GetRoleAdd(&playerEx.PlayerData, common.RoleAddRankScore)
roleScore = int64(math.Ceil(float64(rankScore) * float64(roleAdd) / 100.0))
//周卡加成
if playerEx.GetWeekCardPrivilege(2) {
weekCardScore = int64(math.Ceil(float64(rankScore) * float64(5) / 100.0))
}
otherScore = sceneTypeScore + vipScore + roleScore + weekCardScore
otherScore = sceneTypeScore + vipScore + roleScore
playerEx.AddRankScore(sceneEx.GetDBGameFree().GetRankType(), rankScore+otherScore)
}
playerEx.winCoin += gainScore
@ -2478,13 +2395,6 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
Addition: roleAdd,
Score: roleScore,
})
// 周卡加成
billData.AddItems = append(billData.AddItems, &tienlen.AddItem{
ItemType: 6,
ItemId: 0,
Addition: 5,
Score: weekCardScore,
})
isWin := int32(0)
billCoin := playerEx.bombScore + gainScore
@ -2580,12 +2490,6 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
totalout += (o_player.BombCoin + o_player.BombTaxCoin)
}
// 刷新存钱罐
playerEx, _ := s.GetPlayer(o_player.UserId).GetExtraData().(*TienLenPlayerData)
if playerEx != nil && (!(s.IsFreePublic() || s.IsMatchScene())) {
playerEx.UpdatePigbankCoin(o_player.GainCoin)
}
validFlow := totalin + totalout
validBet := common.AbsI64(totalin - totalout)
sceneEx.SaveFriendRecord(o_player.UserId, o_player.IsWin, o_player.BillCoin, sceneEx.GetBaseScore())

View File

@ -14,6 +14,4 @@ for /d %%s in (,*) do (
)
cd ..
)
pause

View File

@ -23,8 +23,13 @@ type Account struct {
PassWord string //昵称密码
TelPassWord string //帐号密码
BackPassWord string //备份账号密码
//VIP int32 //VIP帐号 等级
Platform string //平台
Channel string //渠道
Promoter string //推广员
SubPromoter string //子推广员
InviterId int32 //邀请人ID
PromoterTree int32 //推广树ID
Tel string //电话号码
Params string //其他参数
DeviceOs string //系统
@ -123,7 +128,11 @@ func InsertAccount(userName, passWord, platform, channel, promoter, params, devi
acc.Platform = platform
acc.Channel = channel
acc.Params = params
acc.SubPromoter = subPromoter
acc.DeviceOs = deviceOs
acc.Promoter = promoter
acc.InviterId = inviterId
acc.PromoterTree = promoterTree
acc.LastLoginTime = tCur
acc.RegisteTime = tCur
acc.LoginTimes = 1
@ -157,7 +166,10 @@ func InsertTelAccount(userName, passWord, platform, channel, promoter, params st
acc.TelPassWord = telpassword
acc.Platform = platform
acc.Channel = channel
acc.Promoter = promoter
acc.Params = params
acc.InviterId = inviterId
acc.PromoterTree = promoterTree
acc.LastLoginTime = tCur
acc.RegisteTime = tCur
acc.LoginTimes = 1
@ -484,6 +496,9 @@ func UpdateAccountPlatformInfo(account string, platform, channel, promoter, invi
AccountId: bson.ObjectIdHex(account),
Platform: strconv.Itoa(int(platform)),
Channel: strconv.Itoa(int(channel)),
Promoter: strconv.Itoa(int(promoter)),
PromoterTree: promoterTree,
InviterId: inviterid,
PackegeTag: packTag,
}
ret := &AccRet{}

View File

@ -3,11 +3,15 @@ package model
import "time"
import "github.com/globalsign/mgo/bson"
// 破产次数统计
var (
BankruptLogCollName = "log_bankrupt"
)
// 破产次数统计
type BankruptLog struct {
LogId bson.ObjectId `bson:"_id"`
SnId int32 //玩家id
Channel string // 渠道
Platform string //平台名称
GameId int //游戏id
GameFreeID int32 //房间id
@ -22,11 +26,10 @@ func NewBankruptLog() *BankruptLog {
return log
}
func NewBankruptLogEx(snid int32, gamefreeid int32, createtime, usecoin int64, platform, channel string, gameId int) *BankruptLog {
func NewBankruptLogEx(snid int32, gamefreeid int32, createtime, usecoin int64, platform string, gameId int) *BankruptLog {
cl := NewBankruptLog()
cl.SnId = snid
cl.Platform = platform
cl.Channel = channel
cl.GameId = gameId
cl.GameFreeID = gamefreeid

View File

@ -34,8 +34,6 @@ type CoinPoolSetting struct {
LowerOdds int32 // 下线初始概率
LowerOddsMax int32 // 下线最大概率
ProfitRate int32 // 收益抽取比例
CtrlRate int32 // 调节赔率
InitNoviceValue int64 // 新手初始库存值
// 扩展参数
ResetTime int64 // 重置时间
UptTime time.Time // 更新时间
@ -59,8 +57,6 @@ func NewCoinPoolSetting(platform string, groupId, gamefreeid, srverId int32, db
cl.ProfitRate = db.ProfitRate
cl.ResetTime = time.Now().Unix()
cl.UptTime = time.Now()
cl.CtrlRate = db.CtrlRate
cl.InitNoviceValue = db.InitNovicValue
return cl
}

View File

@ -6,13 +6,14 @@ import (
const (
DATASOURCE_NIL = iota
DATASOURCE_HUNDRED //1:百人场
DATASOURCE_FIGHT //2.对战场
DATASOURCE_ROLL //3.拉霸
DATASOURCE_HUNDRED //1:百人场 百人牛牛、红黑、龙虎 奔驰宝马 森林舞会 红包 德州牛仔 鱼虾蟹
DATASOURCE_FIGHT //2.对战场 经典牛牛、抢庄牛牛、推饼、赢三张、德州、十三水 斗地主、跑得快 二人麻将 十点半
DATASOURCE_ROLL //3.拉霸 水浒装 水果机 足球英豪 女赌神 世界杯 绝地求生 皇家老虎机 财神到 冰河世纪 财神 百战成神 复仇者联盟 复活岛
DATASOURCE_FISH //4.捕鱼
DATASOURCE_MINI //5.小游戏 candy、caothap、minipoker、luckydice
)
// 百人场数据类型
// 百人场数据类型 ;百人牛牛、红黑、龙虎 奔驰宝马 森林舞会
func MarshalGameNoteByHUNDRED(hundRed interface{}) (data string, err error) {
raw := &RabbitMQDataRaw{
Source: DATASOURCE_HUNDRED,
@ -35,7 +36,7 @@ func UnMarshalGameNoteByHUNDRED(data string) (roll interface{}, err error) {
return
}
// 对战场数据类型
// 对战场数据类型 经典牛牛、抢庄牛牛、推饼、赢三张、德州、十三水 二人麻将、梭哈
func MarshalGameNoteByFIGHT(fight interface{}) (data string, err error) {
raw := &RabbitMQDataRaw{
Source: DATASOURCE_FIGHT,
@ -63,6 +64,120 @@ func MarshalGameNoteByROLL(roll interface{}) (data string, err error) {
return
}
// 小游戏
func MarshalGameNoteByMini(mini interface{}) (data string, err error) {
raw := &RabbitMQDataRaw{
Source: DATASOURCE_MINI,
Data: mini,
}
d, e := json.Marshal(raw)
if e == nil {
data = string(d[:])
}
err = e
return
}
// 冰河世纪游戏记录
func UnMarshalIceAgeGameNote(data string) (roll interface{}, err error) {
gnd := &IceAgeGameNoteData{}
if err := json.Unmarshal([]byte(data), gnd); err != nil {
return nil, err
}
roll = gnd.Data
return
}
// 复仇者联盟游戏记录
func UnMarshalAvengersGameNote(data string) (roll interface{}, err error) {
gnd := &AvengersGameNoteData{}
if err := json.Unmarshal([]byte(data), gnd); err != nil {
return nil, err
}
roll = gnd.Data
return
}
//// 复仇者联盟游戏记录
//func UnMarshalAvengersGameNote(data string) (roll interface{}, err error) {
// gnd := &AvengersGameNoteData{}
// if err := json.Unmarshal([]byte(data), gnd); err != nil {
// return nil, err
// }
// roll = gnd.Data
// return
//}
// 财神游戏记录
func UnMarshalCaiShenGameNote(data string) (roll interface{}, err error) {
gnd := &CaiShenGameNoteData{}
if err := json.Unmarshal([]byte(data), gnd); err != nil {
return nil, err
}
roll = gnd.Data
return
}
// 财神游戏记录
func UnMarshalTamQuocGameNote(data string) (roll interface{}, err error) {
gnd := &TamQuocGameNoteData{}
if err := json.Unmarshal([]byte(data), gnd); err != nil {
return nil, err
}
roll = gnd.Data
return
}
// 复活岛游戏记录
func UnMarshalEasterIslandGameNote(data string) (roll interface{}, err error) {
gnd := &EasterIslandGameNoteData{}
if err := json.Unmarshal([]byte(data), gnd); err != nil {
return nil, err
}
roll = gnd.Data
return
}
// 糖果游戏记录
func UnMarshalCandyGameNote(data string) (roll interface{}, err error) {
gnd := &CandyGameNoteData{}
if err := json.Unmarshal([]byte(data), gnd); err != nil {
return nil, err
}
roll = gnd.Data
return
}
// MiniPoker游戏记录
func UnMarshalMiniPokerGameNote(data string) (roll interface{}, err error) {
gnd := &MiniPokerGameNoteData{}
if err := json.Unmarshal([]byte(data), gnd); err != nil {
return nil, err
}
roll = gnd.Data
return
}
// CaoThap游戏记录
func UnMarshalCaoThapGameNote(data string) (roll interface{}, err error) {
gnd := &CaoThapGameNoteData{}
if err := json.Unmarshal([]byte(data), gnd); err != nil {
return nil, err
}
roll = gnd.Data
return
}
// 幸运骰子游戏记录
func UnMarshalLuckyDiceGameNote(data string) (roll interface{}, err error) {
gnd := &LuckyDiceGameNoteData{}
if err := json.Unmarshal([]byte(data), gnd); err != nil {
return nil, err
}
roll = gnd.Data
return
}
// 捕鱼
func MarshalGameNoteByFISH(fish interface{}) (data string, err error) {
raw := &RabbitMQDataRaw{

View File

@ -86,7 +86,6 @@ type GameParam struct {
RankWinCoinMaxNum int // 收入榜最大人数
RankInviteMaxNum int32 // 邀请排行榜最大人数
TestActSwitch bool // 开启所有活动开关
RankPlayerLevelMaxNum int //等级榜最大人数
}
var GameParamPath = "../data/gameparam.json"
@ -234,7 +233,4 @@ func InitGameParam() {
if GameParamData.WinCoinUpdateTime == 0 {
GameParamData.WinCoinUpdateTime = 21
}
if GameParamData.RankPlayerLevelMaxNum == 0 {
GameParamData.RankPlayerLevelMaxNum = 100
}
}

View File

@ -437,8 +437,8 @@ type PlayerData struct {
MoneyPond int64 //捕鱼个人金币池
UnMaxPower int64 //捕鱼解锁最大炮倍数
PowerList []int32 //解锁的炮台列表
Level int64 //玩家等级
Exp int64 //玩家经验值
FishLevel int64 //捕鱼玩家等级
FishExp int64 //捕鱼经验值
VipShopData map[int32]*ShopData //玩家vip商店信息
VipShopRefreshCount int32 //vip当前已使用免费刷新次数
VipExtra int32 //VIP赛季加成
@ -453,9 +453,6 @@ type PlayerData struct {
InviteSnId int32 // 邀请人
InviteScore int64 // 邀请积分
OtherCode string // 绑定的邀请码
WeekCardTime map[int32]int64 // 周卡结束时间 key:类型 value结束时间
WeekCardAward map[int32]bool //周卡奖励领取状态false-未领取true已领取
ItemRecExpireTime int64 // 记牌器到期时间
}
// 七日签到数据
@ -465,7 +462,6 @@ type NewSignData struct {
AddupIndex []int32 //领取累计奖励
TurnplateIdx []int32 //领取转盘下标
VideoTicket int64 // 领取视频奖励时间戳
}
type TaskData struct {
@ -473,11 +469,6 @@ type TaskData struct {
Ts int64 // 任务完成时间戳
}
type PigBankData struct {
TakeTimes int32
BankCoin int64
}
type WelfareData struct {
ReliefFundTimes int32 //救济金领取次数
Sign7 *NewSignData //七日签到
@ -490,7 +481,6 @@ type WelfareData struct {
VIPBag map[int32]map[int32]int32 //VIP充值礼包 key1-vipLevel key2 - shopId value- shopType (每日礼包 shopId的写死为0 value = 1)
Task map[int32]*TaskData // 任务
PhoneLotteryTask map[int32]*TaskData // 抽手机任务
PigBank *PigBankData // 存钱罐
}
func NewWelfareData() *WelfareData {
@ -499,7 +489,6 @@ func NewWelfareData() *WelfareData {
VIPBag: make(map[int32]map[int32]int32),
Task: make(map[int32]*TaskData),
PhoneLotteryTask: make(map[int32]*TaskData),
PigBank: &PigBankData{},
}
}
@ -720,9 +709,9 @@ func (this *PlayerData) GetPlayerDataEncoder() (bytes.Buffer, error) {
return buf, err
}
func NewPlayerData(acc string, name string, id int32, channel, platform string, params, tel string,
packTag, ip string, addCoin int64, unionid, deviceInfo string,
tagkey, accountType int32) *PlayerData {
func NewPlayerData(acc string, name string, id int32, channel, platform, promoter string, inviterId,
promoterTree int32, params, tel string, packTag, ip string, addCoin int64, unionid, deviceInfo string,
subPromoter string, tagkey, accountType int32) *PlayerData {
if len(name) == 0 {
logger.Logger.Trace("New player name is empty.")
return nil
@ -744,12 +733,16 @@ func NewPlayerData(acc string, name string, id int32, channel, platform string,
Channel: channel,
Platform: platform,
SnId: id,
InviterId: inviterId,
PromoterTree: promoterTree,
Head: rand.Int31n(common.HeadRange),
//Coin: int64(GameParamData.NewPlayerCoin) + addCoin,
SafeBoxPassword: pwd,
Ip: ip,
RegIp: ip,
Params: params,
Tel: tel,
SubBeUnderAgentCode: subPromoter,
AgentType: 0,
LastLoginTime: tNow.Local(),
LastLogoutTime: tNow.AddDate(0, 0, -1).Local(),
@ -760,6 +753,7 @@ func NewPlayerData(acc string, name string, id int32, channel, platform string,
CoinPayTotal: 0,
MoneyPayTotal: 0,
IsRob: isRobot,
BeUnderAgentCode: promoter,
PackageID: packTag,
WBLevel: 0,
WBCoinTotalOut: 0,
@ -776,9 +770,6 @@ func NewPlayerData(acc string, name string, id int32, channel, platform string,
//测试数据
PowerList: []int32{1}, //默认炮台
UnMaxPower: 10, //初始化炮倍最小倍数
WeekCardTime: make(map[int32]int64),
WeekCardAward: make(map[int32]bool),
WelfData: NewWelfareData(),
}
if tel != "" {
@ -790,8 +781,8 @@ func NewPlayerData(acc string, name string, id int32, channel, platform string,
return pd
}
func NewPlayerDataThird(acc string, name, headUrl string, id int32, channel, platform string, params, tel string,
packTag, ip string, tagkey, accountType int32, deviceOS string) *PlayerData {
func NewPlayerDataThird(acc string, name, headUrl string, id int32, channel, platform, promoter string, inviterId,
promoterTree int32, params, tel string, packTag, ip string, subPromoter string, tagkey, accountType int32, deviceOS string) *PlayerData {
if len(name) == 0 {
logger.Logger.Trace("New player name is empty.")
return nil
@ -804,6 +795,8 @@ func NewPlayerDataThird(acc string, name, headUrl string, id int32, channel, pla
Channel: channel,
Platform: platform,
SnId: id,
InviterId: inviterId,
PromoterTree: promoterTree,
Head: rand.Int31n(common.HeadRange),
HeadUrl: headUrl,
//Coin: int64(GameParamData.NewPlayerCoin),
@ -811,12 +804,14 @@ func NewPlayerDataThird(acc string, name, headUrl string, id int32, channel, pla
RegIp: ip,
Params: params,
Tel: tel,
SubBeUnderAgentCode: subPromoter,
LastLoginTime: tNow.Local(),
LastLogoutTime: tNow.AddDate(0, 0, -1).Local(),
CreateTime: tNow.Local(),
Ver: VER_PLAYER_MAX - 1,
HeadOutLine: 1,
IsRob: false,
BeUnderAgentCode: promoter,
PackageID: packTag,
YesterdayGameData: NewPlayerGameCtrlData(),
TodayGameData: NewPlayerGameCtrlData(),

View File

@ -8,9 +8,14 @@ import (
)
// GenerateOnline 在线统计
func GenerateOnline(online map[string]map[string]int) *RabbitMQData {
func GenerateOnline(online map[string]int) *RabbitMQData {
m := map[int]int{} // 平台:真人数
for k, v := range online {
i, _ := strconv.Atoi(k)
m[i] = v
}
params := make(map[string]interface{})
params["Online"] = online
params["Online"] = m
params["Time"] = time.Now().Unix()
return NewRabbitMQData(mq.BackOnline, params)
}
@ -26,10 +31,9 @@ func GenerateGameEvent(o *PlayerGameRecEvent) *RabbitMQData {
}
// GenerateSystemFreeGive 系统免费赠送
func GenerateSystemFreeGive(snid int32, name, platform, channel string, givetype, cointype int32, count int64) *RabbitMQData {
func GenerateSystemFreeGive(snid int32, name, platform string, givetype, cointype int32, count int64) *RabbitMQData {
params := make(map[string]string)
params["snid"] = strconv.Itoa(int(snid))
params["Channel"] = channel
params["name"] = name
params["platform"] = platform
params["givetype"] = strconv.Itoa(int(givetype)) //0创号赠送 1签到赠送转盘、签到、累签 2商城观看视频赠送 3破产补助 4vip领取

View File

@ -10,7 +10,6 @@ const (
MQRankSeason = "log_rankplayerscore"
MQRankPlayerCoin = "log_rankplayercoin"
MQRankPlayerInvite = "log_rankplayerinvite"
MQRankPlayerLevel = "log_rankplayerlevel"
)
type PlayerRankScore struct {
@ -209,57 +208,3 @@ func FindWinCoinTienlen(args *FindWinCoinArgs) (*FindWinCoinReply, error) {
}
return ret, nil
}
// 等级榜
type PlayerLevelInfo struct {
Platform string
SnId int32
Name string
Level int64
Exp int64
ModId int32 //头像
}
type FindPlayerLevelArgs struct {
Platform string
StartTs, EndTs int64
SnId int32
}
type FindPlayerLevelListArgs struct {
Platform string
StartTs, EndTs int64
}
type FindPlayerLevelListReply struct {
List []*PlayerLevelInfo
}
type FindPlayerLevelReply struct {
List *PlayerLevelInfo
}
func FindPlayerLevel(args *FindPlayerLevelArgs) (*FindPlayerLevelReply, error) {
if rpcCli == nil {
logger.Logger.Error("model.FindPlayerLevel rpcCli == nil")
return nil, nil
}
ret := new(FindPlayerLevelReply)
err := rpcCli.CallWithTimeout("GamePlayerListSvc.FindPlayerLevel", args, ret, time.Second*30)
if err != nil {
logger.Logger.Error("FindPlayerLevel error:", err)
return ret, err
}
return ret, nil
}
func FindPlayerLevelList(args *FindPlayerLevelListArgs) (*FindPlayerLevelListReply, error) {
if rpcCli == nil {
logger.Logger.Error("model.FindPlayerLevelList rpcCli == nil")
return nil, nil
}
ret := new(FindPlayerLevelListReply)
err := rpcCli.CallWithTimeout("RankPlayerLevelSvc.Find", args, ret, time.Second*30)
if err != nil {
logger.Logger.Error("GetPlayerLevelList error:", err)
return ret, err
}
return ret, nil
}

View File

@ -3,12 +3,16 @@ package model
import "time"
import "github.com/globalsign/mgo/bson"
// 破产金领取详情
var (
ReliefFundLogCollName = "log_relieffund"
)
// 破产金领取详情
type ReliefFundLog struct {
LogId bson.ObjectId `bson:"_id"`
SnId int32 //玩家id
Platform string //平台名称
Channel string // 渠道
CreateTime int64 // 注册时间
Ts int64 // 领取时间
@ -22,11 +26,10 @@ func NewReliefFundLog() *ReliefFundLog {
return log
}
func NewReliefFundLogEx(snid int32, gettype, cointype int32, getamount, createtime int64, platform, channel string) *ReliefFundLog {
func NewReliefFundLogEx(snid int32, gettype, cointype int32, getamount, createtime int64, platform string) *ReliefFundLog {
cl := NewReliefFundLog()
cl.SnId = snid
cl.Platform = platform
cl.Channel = channel
now := time.Now()
cl.Ts = now.Unix()

View File

@ -203,8 +203,6 @@ type ChesstitiansPlayerData struct {
WinCoin int64 `protobuf:"varint,33,opt,name=WinCoin,proto3" json:"WinCoin,omitempty"` // 本局输赢金币
OldChessGrade int64 `protobuf:"varint,34,opt,name=OldChessGrade,proto3" json:"OldChessGrade,omitempty"` // 原来的象棋积分
TotalTime int32 `protobuf:"varint,35,opt,name=TotalTime,proto3" json:"TotalTime,omitempty"` // 下棋总时长,单位秒
Level int64 `protobuf:"varint,36,opt,name=Level,proto3" json:"Level,omitempty"` //玩家等级
Exp int64 `protobuf:"varint,37,opt,name=Exp,proto3" json:"Exp,omitempty"` //玩家经验值
}
func (x *ChesstitiansPlayerData) Reset() {
@ -484,20 +482,6 @@ func (x *ChesstitiansPlayerData) GetTotalTime() int32 {
return 0
}
func (x *ChesstitiansPlayerData) GetLevel() int64 {
if x != nil {
return x.Level
}
return 0
}
func (x *ChesstitiansPlayerData) GetExp() int64 {
if x != nil {
return x.Exp
}
return 0
}
type LastDelCard struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@ -2154,7 +2138,7 @@ var File_chesstitians_proto protoreflect.FileDescriptor
var file_chesstitians_proto_rawDesc = []byte{
0x0a, 0x12, 0x63, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x63, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61,
0x6e, 0x73, 0x22, 0xaf, 0x08, 0x0a, 0x16, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69,
0x6e, 0x73, 0x22, 0x87, 0x08, 0x0a, 0x16, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69,
0x61, 0x6e, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a,
0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d,
0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
@ -2215,320 +2199,317 @@ var file_chesstitians_proto_rawDesc = []byte{
0x22, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x4f, 0x6c, 0x64, 0x43, 0x68, 0x65, 0x73, 0x73, 0x47,
0x72, 0x61, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x69, 0x6d,
0x65, 0x18, 0x23, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x69,
0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x24, 0x20, 0x01, 0x28,
0x03, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x78, 0x70, 0x18,
0x25, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x45, 0x78, 0x70, 0x1a, 0x38, 0x0a, 0x0a, 0x49, 0x74,
0x65, 0x6d, 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, 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, 0xd1, 0x09, 0x0a, 0x16, 0x53, 0x43,
0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 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, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43,
0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64,
0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1a,
0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05,
0x52, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61,
0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61,
0x6d, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x6e, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x18,
0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x42, 0x61, 0x6e, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x73,
0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52,
0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x75,
0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x75, 0x74,
0x12, 0x3e, 0x0a, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x24, 0x2e, 0x63, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73,
0x2e, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x50, 0x6c, 0x61,
0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73,
0x12, 0x20, 0x0a, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x18,
0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x4e,
0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x75, 0x72, 0x4f, 0x70, 0x49, 0x64, 0x78, 0x18, 0x0c,
0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x75, 0x72, 0x4f, 0x70, 0x49, 0x64, 0x78, 0x12, 0x3d,
0x0a, 0x0c, 0x4c, 0x61, 0x73, 0x74, 0x44, 0x65, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x0d,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69,
0x61, 0x6e, 0x73, 0x2e, 0x4c, 0x61, 0x73, 0x74, 0x44, 0x65, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x52,
0x0c, 0x4c, 0x61, 0x73, 0x74, 0x44, 0x65, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x1e, 0x0a,
0x0a, 0x4e, 0x75, 0x6d, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28,
0x05, 0x52, 0x0a, 0x4e, 0x75, 0x6d, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x22, 0x0a,
0x0c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0f, 0x20,
0x01, 0x28, 0x05, 0x52, 0x0c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65,
0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x18,
0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69,
0x64, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x11,
0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x42, 0x61, 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12,
0x22, 0x0a, 0x0c, 0x4d, 0x61, 0x78, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18,
0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4d, 0x61, 0x78, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72,
0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x6e, 0x69, 0x64, 0x73, 0x18,
0x13, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x6e, 0x69, 0x64, 0x73, 0x12,
0x18, 0x0a, 0x07, 0x49, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05,
0x52, 0x07, 0x49, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75,
0x6e, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12,
0x22, 0x0a, 0x0c, 0x43, 0x75, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18,
0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x43, 0x75, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72,
0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x65, 0x78, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x18,
0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x65, 0x78, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x12,
0x20, 0x0a, 0x0b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x73, 0x18, 0x1a,
0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x69, 0x6e, 0x61, 0x6c,
0x73, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x68, 0x65, 0x73, 0x73, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x09,
0x52, 0x05, 0x43, 0x68, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x61, 0x73, 0x74, 0x4d,
0x6f, 0x76, 0x65, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4c, 0x61, 0x73, 0x74, 0x4d,
0x6f, 0x76, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x41, 0x63, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09,
0x52, 0x03, 0x41, 0x63, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x61, 0x73, 0x74, 0x6c, 0x69, 0x6e,
0x67, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x08, 0x52, 0x08, 0x43, 0x61, 0x73, 0x74, 0x6c, 0x69, 0x6e,
0x67, 0x12, 0x1c, 0x0a, 0x09, 0x45, 0x6e, 0x70, 0x61, 0x73, 0x73, 0x61, 0x6e, 0x74, 0x18, 0x1f,
0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x45, 0x6e, 0x70, 0x61, 0x73, 0x73, 0x61, 0x6e, 0x74, 0x12,
0x1e, 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x20, 0x20,
0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12,
0x18, 0x0a, 0x07, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x18, 0x21, 0x20, 0x01, 0x28, 0x05,
0x52, 0x07, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x43, 0x61, 0x6d,
0x62, 0x6f, 0x64, 0x69, 0x61, 0x6e, 0x4d, 0x6f, 0x76, 0x65, 0x18, 0x22, 0x20, 0x03, 0x28, 0x08,
0x52, 0x0d, 0x43, 0x61, 0x6d, 0x62, 0x6f, 0x64, 0x69, 0x61, 0x6e, 0x4d, 0x6f, 0x76, 0x65, 0x12,
0x14, 0x0a, 0x05, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x23, 0x20, 0x03, 0x28, 0x08, 0x52, 0x05,
0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x6d, 0x61,
0x74, 0x65, 0x18, 0x24, 0x20, 0x03, 0x28, 0x08, 0x52, 0x09, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x6d,
0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x65, 0x70, 0x53, 0x6e, 0x49, 0x64, 0x18,
0x25, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x74, 0x65, 0x70, 0x53, 0x6e, 0x49, 0x64, 0x12,
0x18, 0x0a, 0x07, 0x53, 0x74, 0x65, 0x70, 0x4e, 0x75, 0x6d, 0x18, 0x26, 0x20, 0x01, 0x28, 0x03,
0x52, 0x07, 0x53, 0x74, 0x65, 0x70, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x65,
0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x27, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x53, 0x74,
0x65, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x72, 0x61, 0x77, 0x53,
0x6e, 0x49, 0x64, 0x18, 0x28, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, 0x72, 0x61, 0x77, 0x53,
0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x65, 0x78, 0x74, 0x53, 0x6e, 0x49, 0x64, 0x18,
0x29, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x65, 0x78, 0x74, 0x53, 0x6e, 0x49, 0x64, 0x12,
0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x2a, 0x20,
0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12,
0x1c, 0x0a, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x2b, 0x20, 0x01,
0x28, 0x05, 0x52, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x47, 0x0a,
0x17, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 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, 0x4a, 0x0a, 0x16, 0x43, 0x53, 0x43, 0x68, 0x65, 0x73,
0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 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, 0xbe, 0x02, 0x0a, 0x16, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69,
0x74, 0x69, 0x61, 0x6e, 0x73, 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, 0x38, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65,
0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x63, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69,
0x74, 0x69, 0x61, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f,
0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a,
0x05, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x03, 0x28, 0x08, 0x52, 0x05, 0x43, 0x68,
0x65, 0x63, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x6d, 0x61, 0x74, 0x65,
0x18, 0x06, 0x20, 0x03, 0x28, 0x08, 0x52, 0x09, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x6d, 0x61, 0x74,
0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x65, 0x70, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x07, 0x20,
0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x74, 0x65, 0x70, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a,
0x07, 0x53, 0x74, 0x65, 0x70, 0x4e, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07,
0x53, 0x74, 0x65, 0x70, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x65, 0x70, 0x4c,
0x69, 0x6d, 0x69, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x53, 0x74, 0x65, 0x70,
0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x69,
0x6d, 0x65, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x54,
0x69, 0x6d, 0x65, 0x22, 0x55, 0x0a, 0x19, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69,
0x74, 0x69, 0x61, 0x6e, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72,
0x12, 0x38, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24,
0x2e, 0x63, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x2e, 0x43, 0x68,
0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72,
0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x2d, 0x0a, 0x19, 0x53, 0x43,
0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 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, 0xc4, 0x02, 0x0a, 0x1c, 0x43, 0x68,
0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 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, 0x1a, 0x0a, 0x08, 0x57, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01,
0x28, 0x05, 0x52, 0x08, 0x57, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a,
0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05,
0x52, 0x0a, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08,
0x4e, 0x65, 0x78, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08,
0x4e, 0x65, 0x78, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72,
0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1a,
0x0a, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05,
0x52, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x4f, 0x6c,
0x64, 0x43, 0x68, 0x65, 0x73, 0x73, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28,
0x03, 0x52, 0x0d, 0x4f, 0x6c, 0x64, 0x43, 0x68, 0x65, 0x73, 0x73, 0x47, 0x72, 0x61, 0x64, 0x65,
0x22, 0x5c, 0x0a, 0x18, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61,
0x6e, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x40, 0x0a, 0x05,
0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x68,
0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x2e, 0x43, 0x68, 0x65, 0x73, 0x73,
0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x61, 0x6d,
0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x52, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x22, 0xc9,
0x01, 0x0a, 0x1d, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e,
0x73, 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, 0x86, 0x02, 0x0a, 0x12, 0x53,
0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 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, 0x14, 0x0a, 0x05, 0x43, 0x68, 0x65, 0x73, 0x73,
0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x43, 0x68, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a,
0x03, 0x41, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x41, 0x63, 0x74, 0x12,
0x1a, 0x0a, 0x08, 0x43, 0x61, 0x73, 0x74, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x03, 0x28,
0x08, 0x52, 0x08, 0x43, 0x61, 0x73, 0x74, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x45,
0x6e, 0x70, 0x61, 0x73, 0x73, 0x61, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09,
0x45, 0x6e, 0x70, 0x61, 0x73, 0x73, 0x61, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x68, 0x65,
0x73, 0x73, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43,
0x68, 0x65, 0x73, 0x73, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x43, 0x61, 0x6d,
0x62, 0x6f, 0x64, 0x69, 0x61, 0x6e, 0x4d, 0x6f, 0x76, 0x65, 0x18, 0x07, 0x20, 0x03, 0x28, 0x08,
0x52, 0x0d, 0x43, 0x61, 0x6d, 0x62, 0x6f, 0x64, 0x69, 0x61, 0x6e, 0x4d, 0x6f, 0x76, 0x65, 0x12,
0x14, 0x0a, 0x05, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x08, 0x20, 0x03, 0x28, 0x08, 0x52, 0x05,
0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x6d, 0x61,
0x74, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x08, 0x52, 0x09, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x6d,
0x61, 0x74, 0x65, 0x22, 0x83, 0x02, 0x0a, 0x16, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74,
0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x43, 0x61, 0x72, 0x64, 0x54, 0x65, 0x73, 0x74, 0x12, 0x48,
0x0a, 0x06, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30,
0x2e, 0x63, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x2e, 0x53, 0x43,
0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 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, 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, 0x70, 0x0a, 0x16, 0x53, 0x43, 0x43,
0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 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, 0x22, 0x40, 0x0a, 0x1e, 0x53,
0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 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, 0x43, 0x0a,
0x1f, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 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, 0x9d, 0x05, 0x0a, 0x14, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69,
0x74, 0x69, 0x61, 0x6e, 0x73, 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, 0x22, 0x2c, 0x0a, 0x18, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74,
0x69, 0x61, 0x6e, 0x73, 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, 0x6f, 0x0a, 0x19, 0x43, 0x53, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61,
0x6e, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x65, 0x76, 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, 0x1e, 0x0a, 0x0a, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d,
0x53, 0x74, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x4f, 0x70, 0x50, 0x61, 0x72,
0x61, 0x6d, 0x53, 0x74, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x75, 0x72, 0x4f, 0x70, 0x49, 0x64,
0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x75, 0x72, 0x4f, 0x70, 0x49, 0x64,
0x78, 0x2a, 0x2f, 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, 0x2a, 0xb6, 0x05, 0x0a, 0x14, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69,
0x61, 0x6e, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x1b, 0x0a, 0x17, 0x50,
0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61,
0x6e, 0x73, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b,
0x45, 0x54, 0x5f, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e,
0x73, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xde, 0x2a, 0x12, 0x23, 0x0a, 0x1e,
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69,
0x74, 0x69, 0x61, 0x6e, 0x73, 0x52, 0x6f, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, 0xdf,
0x2a, 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x43, 0x68,
0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72,
0x4f, 0x70, 0x10, 0xe0, 0x2a, 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x50, 0x6c,
0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x10, 0xe1, 0x2a, 0x12, 0x25, 0x0a, 0x20, 0x50, 0x41, 0x43,
0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61,
0x6e, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x10, 0xe2, 0x2a,
0x12, 0x25, 0x0a, 0x20, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x43, 0x68, 0x65,
0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c,
0x65, 0x61, 0x76, 0x65, 0x10, 0xe3, 0x2a, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45,
0x54, 0x5f, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73,
0x43, 0x61, 0x72, 0x64, 0x10, 0xe4, 0x2a, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45,
0x54, 0x5f, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73,
0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x10, 0xe5, 0x2a, 0x12, 0x22, 0x0a,
0x1d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74,
0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x43, 0x75, 0x72, 0x4f, 0x70, 0x50, 0x6f, 0x73, 0x10, 0xe6,
0x2a, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x43, 0x68,
0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x47,
0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x10, 0xe7, 0x2a, 0x12, 0x2a, 0x0a, 0x25,
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69,
0x74, 0x69, 0x61, 0x6e, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x74, 0x65,
0x72, 0x53, 0x6e, 0x69, 0x64, 0x10, 0xe8, 0x2a, 0x12, 0x2b, 0x0a, 0x26, 0x50, 0x41, 0x43, 0x4b,
0x45, 0x54, 0x5f, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e,
0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x4e,
0x75, 0x6d, 0x10, 0xe9, 0x2a, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x41, 0x49,
0x10, 0xea, 0x2a, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43,
0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x46, 0x69, 0x72, 0x73,
0x74, 0x4f, 0x70, 0x50, 0x6f, 0x73, 0x10, 0xeb, 0x2a, 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43,
0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61,
0x6e, 0x73, 0x43, 0x61, 0x72, 0x64, 0x54, 0x65, 0x73, 0x74, 0x10, 0xec, 0x2a, 0x12, 0x25, 0x0a,
0x20, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74,
0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x65, 0x76, 0x4f,
0x70, 0x10, 0xed, 0x2a, 0x12, 0x25, 0x0a, 0x20, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53,
0x6d, 0x65, 0x1a, 0x38, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 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, 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, 0xd1, 0x09, 0x0a, 0x16, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74,
0x69, 0x61, 0x6e, 0x73, 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, 0x6f, 0x72, 0x18,
0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x16,
0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06,
0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f,
0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f,
0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03,
0x28, 0x05, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61,
0x6e, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x42,
0x61, 0x6e, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74,
0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18,
0x0a, 0x07, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x75, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52,
0x07, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x75, 0x74, 0x12, 0x3e, 0x0a, 0x07, 0x50, 0x6c, 0x61, 0x79,
0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x68, 0x65, 0x73,
0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x2e, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69,
0x74, 0x69, 0x61, 0x6e, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52,
0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x75, 0x64, 0x69,
0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x41,
0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x75,
0x72, 0x4f, 0x70, 0x49, 0x64, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x75,
0x72, 0x4f, 0x70, 0x49, 0x64, 0x78, 0x12, 0x3d, 0x0a, 0x0c, 0x4c, 0x61, 0x73, 0x74, 0x44, 0x65,
0x6c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63,
0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x2e, 0x4c, 0x61, 0x73, 0x74,
0x44, 0x65, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x52, 0x0c, 0x4c, 0x61, 0x73, 0x74, 0x44, 0x65, 0x6c,
0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x4e, 0x75, 0x6d, 0x4f, 0x66, 0x47, 0x61,
0x6d, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4e, 0x75, 0x6d, 0x4f, 0x66,
0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x66,
0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x54, 0x6f, 0x74,
0x61, 0x6c, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x73,
0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d,
0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x73,
0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x42, 0x61,
0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x4d, 0x61, 0x78, 0x50, 0x6c,
0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4d,
0x61, 0x78, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x57,
0x69, 0x6e, 0x53, 0x6e, 0x69, 0x64, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x57,
0x69, 0x6e, 0x53, 0x6e, 0x69, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x73, 0x4d, 0x61, 0x74,
0x63, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x49, 0x73, 0x4d, 0x61, 0x74, 0x63,
0x68, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05,
0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x75, 0x72, 0x50, 0x6c,
0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x43,
0x75, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x4e,
0x65, 0x78, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4e,
0x65, 0x78, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4d, 0x61, 0x74, 0x63, 0x68,
0x46, 0x69, 0x6e, 0x61, 0x6c, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x4d, 0x61,
0x74, 0x63, 0x68, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x68, 0x65,
0x73, 0x73, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x43, 0x68, 0x65, 0x73, 0x73, 0x12,
0x1a, 0x0a, 0x08, 0x4c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x76, 0x65, 0x18, 0x1c, 0x20, 0x03, 0x28,
0x05, 0x52, 0x08, 0x4c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x76, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x41,
0x63, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x41, 0x63, 0x74, 0x12, 0x1a, 0x0a,
0x08, 0x43, 0x61, 0x73, 0x74, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x08, 0x52,
0x08, 0x43, 0x61, 0x73, 0x74, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x45, 0x6e, 0x70,
0x61, 0x73, 0x73, 0x61, 0x6e, 0x74, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x45, 0x6e,
0x70, 0x61, 0x73, 0x73, 0x61, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x73, 0x73,
0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x20, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x68, 0x65,
0x73, 0x73, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x56, 0x61, 0x72, 0x69, 0x61,
0x6e, 0x74, 0x18, 0x21, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e,
0x74, 0x12, 0x24, 0x0a, 0x0d, 0x43, 0x61, 0x6d, 0x62, 0x6f, 0x64, 0x69, 0x61, 0x6e, 0x4d, 0x6f,
0x76, 0x65, 0x18, 0x22, 0x20, 0x03, 0x28, 0x08, 0x52, 0x0d, 0x43, 0x61, 0x6d, 0x62, 0x6f, 0x64,
0x69, 0x61, 0x6e, 0x4d, 0x6f, 0x76, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x68, 0x65, 0x63, 0x6b,
0x18, 0x23, 0x20, 0x03, 0x28, 0x08, 0x52, 0x05, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x1c, 0x0a,
0x09, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x6d, 0x61, 0x74, 0x65, 0x18, 0x24, 0x20, 0x03, 0x28, 0x08,
0x52, 0x09, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x6d, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53,
0x74, 0x65, 0x70, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x25, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53,
0x74, 0x65, 0x70, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x74, 0x65, 0x70, 0x4e,
0x75, 0x6d, 0x18, 0x26, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x53, 0x74, 0x65, 0x70, 0x4e, 0x75,
0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x65, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x27,
0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x53, 0x74, 0x65, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12,
0x1a, 0x0a, 0x08, 0x44, 0x72, 0x61, 0x77, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x28, 0x20, 0x01, 0x28,
0x05, 0x52, 0x08, 0x44, 0x72, 0x61, 0x77, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4e,
0x65, 0x78, 0x74, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x29, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4e,
0x65, 0x78, 0x74, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46,
0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d,
0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65,
0x54, 0x79, 0x70, 0x65, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x63, 0x65, 0x6e,
0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x47, 0x0a, 0x17, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73,
0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 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, 0x4a,
0x0a, 0x16, 0x43, 0x53, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73,
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, 0xbe, 0x02, 0x0a, 0x16, 0x53,
0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x50, 0x6c, 0x61,
0x79, 0x65, 0x72, 0x44, 0x65, 0x76, 0x4f, 0x70, 0x10, 0xee, 0x2a, 0x42, 0x2c, 0x5a, 0x2a, 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, 0x63, 0x68, 0x65,
0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x33,
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, 0x38, 0x0a, 0x09, 0x4f,
0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a,
0x2e, 0x63, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x2e, 0x4f, 0x70,
0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65,
0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x05,
0x20, 0x03, 0x28, 0x08, 0x52, 0x05, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x43,
0x68, 0x65, 0x63, 0x6b, 0x6d, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x08, 0x52, 0x09,
0x43, 0x68, 0x65, 0x63, 0x6b, 0x6d, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x65,
0x70, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x74, 0x65,
0x70, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x74, 0x65, 0x70, 0x4e, 0x75, 0x6d,
0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x53, 0x74, 0x65, 0x70, 0x4e, 0x75, 0x6d, 0x12,
0x1c, 0x0a, 0x09, 0x53, 0x74, 0x65, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x09, 0x20, 0x01,
0x28, 0x03, 0x52, 0x09, 0x53, 0x74, 0x65, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1c, 0x0a,
0x09, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x05,
0x52, 0x09, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x55, 0x0a, 0x19, 0x53,
0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x50, 0x6c, 0x61,
0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69,
0x74, 0x69, 0x61, 0x6e, 0x73, 0x2e, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61,
0x6e, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x44, 0x61,
0x74, 0x61, 0x22, 0x2d, 0x0a, 0x19, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74,
0x69, 0x61, 0x6e, 0x73, 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, 0xc4, 0x02, 0x0a, 0x1c, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61,
0x6e, 0x73, 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, 0x1a, 0x0a, 0x08, 0x57, 0x69, 0x6e, 0x54,
0x69, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x57, 0x69, 0x6e, 0x54,
0x69, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x63, 0x6f,
0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53,
0x63, 0x6f, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x65, 0x78, 0x74, 0x52, 0x61, 0x6e, 0x6b,
0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x65, 0x78, 0x74, 0x52, 0x61, 0x6e, 0x6b,
0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52,
0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x63, 0x6f,
0x72, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x63, 0x6f,
0x72, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x4f, 0x6c, 0x64, 0x43, 0x68, 0x65, 0x73, 0x73, 0x47, 0x72,
0x61, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x4f, 0x6c, 0x64, 0x43, 0x68,
0x65, 0x73, 0x73, 0x47, 0x72, 0x61, 0x64, 0x65, 0x22, 0x5c, 0x0a, 0x18, 0x53, 0x43, 0x43, 0x68,
0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69,
0x6c, 0x6c, 0x65, 0x64, 0x12, 0x40, 0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x01, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61,
0x6e, 0x73, 0x2e, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x50,
0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x52,
0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x22, 0xc9, 0x01, 0x0a, 0x1d, 0x53, 0x43, 0x43, 0x68, 0x65,
0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 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, 0x86, 0x02, 0x0a, 0x12, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69,
0x74, 0x69, 0x61, 0x6e, 0x73, 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,
0x14, 0x0a, 0x05, 0x43, 0x68, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05,
0x43, 0x68, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x41, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01,
0x28, 0x09, 0x52, 0x03, 0x41, 0x63, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x61, 0x73, 0x74, 0x6c,
0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x03, 0x28, 0x08, 0x52, 0x08, 0x43, 0x61, 0x73, 0x74, 0x6c,
0x69, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x45, 0x6e, 0x70, 0x61, 0x73, 0x73, 0x61, 0x6e, 0x74,
0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x45, 0x6e, 0x70, 0x61, 0x73, 0x73, 0x61, 0x6e,
0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18,
0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x6f, 0x75, 0x6e,
0x64, 0x12, 0x24, 0x0a, 0x0d, 0x43, 0x61, 0x6d, 0x62, 0x6f, 0x64, 0x69, 0x61, 0x6e, 0x4d, 0x6f,
0x76, 0x65, 0x18, 0x07, 0x20, 0x03, 0x28, 0x08, 0x52, 0x0d, 0x43, 0x61, 0x6d, 0x62, 0x6f, 0x64,
0x69, 0x61, 0x6e, 0x4d, 0x6f, 0x76, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x68, 0x65, 0x63, 0x6b,
0x18, 0x08, 0x20, 0x03, 0x28, 0x08, 0x52, 0x05, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x1c, 0x0a,
0x09, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x6d, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x08,
0x52, 0x09, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x6d, 0x61, 0x74, 0x65, 0x22, 0x83, 0x02, 0x0a, 0x16,
0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x43, 0x61,
0x72, 0x64, 0x54, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x06, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73,
0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69,
0x74, 0x69, 0x61, 0x6e, 0x73, 0x2e, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74,
0x69, 0x61, 0x6e, 0x73, 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, 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, 0x70, 0x0a, 0x16, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69,
0x61, 0x6e, 0x73, 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, 0x22, 0x40, 0x0a, 0x1e, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69,
0x74, 0x69, 0x61, 0x6e, 0x73, 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, 0x43, 0x0a, 0x1f, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73,
0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 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, 0x9d, 0x05, 0x0a, 0x14, 0x53,
0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 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, 0x22, 0x2c, 0x0a, 0x18, 0x53, 0x43,
0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 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, 0x6f, 0x0a, 0x19, 0x43, 0x53, 0x43, 0x68,
0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72,
0x44, 0x65, 0x76, 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, 0x1e, 0x0a,
0x0a, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x53, 0x74, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28,
0x09, 0x52, 0x0a, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x53, 0x74, 0x72, 0x12, 0x1a, 0x0a,
0x08, 0x63, 0x75, 0x72, 0x4f, 0x70, 0x49, 0x64, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52,
0x08, 0x63, 0x75, 0x72, 0x4f, 0x70, 0x49, 0x64, 0x78, 0x2a, 0x2f, 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, 0x2a, 0xb6, 0x05, 0x0a, 0x14, 0x43,
0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65,
0x74, 0x49, 0x44, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x68,
0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00,
0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x43, 0x68, 0x65,
0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66,
0x6f, 0x10, 0xde, 0x2a, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53,
0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x52, 0x6f, 0x6f,
0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, 0xdf, 0x2a, 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43,
0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61,
0x6e, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x10, 0xe0, 0x2a, 0x12, 0x22, 0x0a,
0x1d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74,
0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x10, 0xe1,
0x2a, 0x12, 0x25, 0x0a, 0x20, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x43, 0x68,
0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72,
0x45, 0x6e, 0x74, 0x65, 0x72, 0x10, 0xe2, 0x2a, 0x12, 0x25, 0x0a, 0x20, 0x50, 0x41, 0x43, 0x4b,
0x45, 0x54, 0x5f, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e,
0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x10, 0xe3, 0x2a, 0x12,
0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73,
0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x43, 0x61, 0x72, 0x64, 0x10, 0xe4, 0x2a, 0x12,
0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73,
0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c,
0x65, 0x64, 0x10, 0xe5, 0x2a, 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x43, 0x75,
0x72, 0x4f, 0x70, 0x50, 0x6f, 0x73, 0x10, 0xe6, 0x2a, 0x12, 0x29, 0x0a, 0x24, 0x50, 0x41, 0x43,
0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61,
0x6e, 0x73, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65,
0x64, 0x10, 0xe7, 0x2a, 0x12, 0x2a, 0x0a, 0x25, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53,
0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x55, 0x70, 0x64,
0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x10, 0xe8, 0x2a,
0x12, 0x2b, 0x0a, 0x26, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x43, 0x68, 0x65,
0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41,
0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x10, 0xe9, 0x2a, 0x12, 0x1c, 0x0a,
0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74,
0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x41, 0x49, 0x10, 0xea, 0x2a, 0x12, 0x24, 0x0a, 0x1f, 0x50,
0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74,
0x69, 0x61, 0x6e, 0x73, 0x46, 0x69, 0x72, 0x73, 0x74, 0x4f, 0x70, 0x50, 0x6f, 0x73, 0x10, 0xeb,
0x2a, 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x43, 0x68,
0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x43, 0x61, 0x72, 0x64, 0x54, 0x65,
0x73, 0x74, 0x10, 0xec, 0x2a, 0x12, 0x25, 0x0a, 0x20, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
0x43, 0x53, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e, 0x73, 0x50, 0x6c,
0x61, 0x79, 0x65, 0x72, 0x44, 0x65, 0x76, 0x4f, 0x70, 0x10, 0xed, 0x2a, 0x12, 0x25, 0x0a, 0x20,
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x43, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69,
0x74, 0x69, 0x61, 0x6e, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x65, 0x76, 0x4f, 0x70,
0x10, 0xee, 0x2a, 0x42, 0x2c, 0x5a, 0x2a, 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, 0x63, 0x68, 0x65, 0x73, 0x73, 0x74, 0x69, 0x74, 0x69, 0x61, 0x6e,
0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (

View File

@ -67,8 +67,6 @@ message ChesstitiansPlayerData {
int64 WinCoin = 33; //
int64 OldChessGrade = 34; //
int32 TotalTime = 35; // ,
int64 Level = 36; //
int64 Exp = 37; //
}
message LastDelCard {

View File

@ -359,8 +359,8 @@ type FishingPlayerData struct {
RobotSnIds []int32 `protobuf:"varint,21,rep,packed,name=RobotSnIds,proto3" json:"RobotSnIds,omitempty"` //代理的机器人们
UnMaxPower int64 `protobuf:"varint,22,opt,name=UnMaxPower,proto3" json:"UnMaxPower,omitempty"` //解锁的最大炮倍
UnPowerList []int32 `protobuf:"varint,23,rep,packed,name=UnPowerList,proto3" json:"UnPowerList,omitempty"` //解锁的炮台
Level int64 `protobuf:"varint,24,opt,name=Level,proto3" json:"Level,omitempty"` //捕鱼等级
Exp int64 `protobuf:"varint,25,opt,name=Exp,proto3" json:"Exp,omitempty"` //捕鱼经验
FishLevel int64 `protobuf:"varint,24,opt,name=FishLevel,proto3" json:"FishLevel,omitempty"` //捕鱼等级
FishExp int64 `protobuf:"varint,25,opt,name=FishExp,proto3" json:"FishExp,omitempty"` //捕鱼经验
}
func (x *FishingPlayerData) Reset() {
@ -556,16 +556,16 @@ func (x *FishingPlayerData) GetUnPowerList() []int32 {
return nil
}
func (x *FishingPlayerData) GetLevel() int64 {
func (x *FishingPlayerData) GetFishLevel() int64 {
if x != nil {
return x.Level
return x.FishLevel
}
return 0
}
func (x *FishingPlayerData) GetExp() int64 {
func (x *FishingPlayerData) GetFishExp() int64 {
if x != nil {
return x.Exp
return x.FishExp
}
return 0
}
@ -3882,7 +3882,7 @@ var File_fishing_proto protoreflect.FileDescriptor
var file_fishing_proto_rawDesc = []byte{
0x0a, 0x0d, 0x66, 0x69, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
0x07, 0x66, 0x69, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x22, 0x85, 0x05, 0x0a, 0x11, 0x46, 0x69, 0x73,
0x07, 0x66, 0x69, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x22, 0x95, 0x05, 0x0a, 0x11, 0x46, 0x69, 0x73,
0x68, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12,
0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61,
0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
@ -3920,9 +3920,10 @@ var file_fishing_proto_rawDesc = []byte{
0x6f, 0x77, 0x65, 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x55, 0x6e, 0x4d, 0x61,
0x78, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x55, 0x6e, 0x50, 0x6f, 0x77, 0x65,
0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x17, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x55, 0x6e, 0x50,
0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65,
0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x10,
0x0a, 0x03, 0x45, 0x78, 0x70, 0x18, 0x19, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x45, 0x78, 0x70,
0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x46, 0x69, 0x73, 0x68,
0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x46, 0x69, 0x73,
0x68, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x46, 0x69, 0x73, 0x68, 0x45, 0x78,
0x70, 0x18, 0x19, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x46, 0x69, 0x73, 0x68, 0x45, 0x78, 0x70,
0x22, 0x85, 0x05, 0x0a, 0x11, 0x53, 0x43, 0x46, 0x69, 0x73, 0x68, 0x69, 0x6e, 0x67, 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,

View File

@ -95,8 +95,8 @@ message FishingPlayerData {
repeated int32 RobotSnIds = 21; //
int64 UnMaxPower = 22;//
repeated int32 UnPowerList= 23;//
int64 Level = 24;//
int64 Exp = 25;//
int64 FishLevel = 24;//
int64 FishExp = 25;//
}
//

File diff suppressed because it is too large Load Diff

View File

@ -203,8 +203,6 @@ enum PlayerPacketID {
PACKET_SC_PhoneLotteryCount = 2820;//
PACKET_CSADV = 2821; // 广
PACKET_SCADV = 2822; // 广
PACKET_SCGetWeekCardAwary = 2823;//
PACKET_SCPigBankCoin = 2824;//
}
//
@ -307,19 +305,11 @@ message PlayerData {
map<int32,int64> RankScore =40;//
int64 UnMaxPower =41; //
repeated int32 PowerList =42; //
int64 Level =43; //
int64 Exp =44; //
int64 FishLevel =43; //
int64 FishExp =44; //
int32 VipShopRefreshCount =45; //vip当前已使用免费刷新次数
string Signature = 46; //
int32 Age = 47; //
repeated WeekInfo WeekCard = 48;//
}
//
message WeekInfo{
int32 Id =1;
int64 WeekCardTime =2; //
bool weekCardAward = 3;//
}
//线 LogicId
message MiniGameInfo{
@ -1161,19 +1151,3 @@ message CSADV {
message SCADV {
repeated int32 Param = 1; // 0广
}
//
//PACKET_SCGetWeekCardAwary
message SCGetWeekCardAwary{
int32 id = 1;
repeated PayItem Items =2;
bool weekCardAward = 3;
WeekInfo WeekCard = 4;//
}
//
// PACKET_SCPigBankCoin
message SCPigBankCoin {
int64 BankCoin = 1;
int64 BankCoinMax = 2;
int64 AddBankCoin = 3;
}

View File

@ -39,9 +39,6 @@ const (
// 收入榜
Rank_PACKET_RANK_CSWinCoin Rank = 10008
Rank_PACKET_RANK_SCWinCoin Rank = 10009
//等级榜
Rank_PACKET_RANK_CSLevel Rank = 10010
Rank_PACKET_RANK_SCLevel Rank = 10011
)
// Enum value maps for Rank.
@ -58,8 +55,6 @@ var (
10007: "PACKET_SCInviteLog",
10008: "PACKET_RANK_CSWinCoin",
10009: "PACKET_RANK_SCWinCoin",
10010: "PACKET_RANK_CSLevel",
10011: "PACKET_RANK_SCLevel",
}
Rank_value = map[string]int32{
"PACKET_RANK_ZERO": 0,
@ -73,8 +68,6 @@ var (
"PACKET_SCInviteLog": 10007,
"PACKET_RANK_CSWinCoin": 10008,
"PACKET_RANK_SCWinCoin": 10009,
"PACKET_RANK_CSLevel": 10010,
"PACKET_RANK_SCLevel": 10011,
}
)
@ -1356,214 +1349,6 @@ func (x *SCWinCoin) GetLimit() int32 {
return 0
}
//等级排行榜
//RACKET_CSLevelRank
type CSPlayerLevelRank struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Skip int32 `protobuf:"varint,1,opt,name=Skip,proto3" json:"Skip,omitempty"`
Limit int32 `protobuf:"varint,2,opt,name=Limit,proto3" json:"Limit,omitempty"`
}
func (x *CSPlayerLevelRank) Reset() {
*x = CSPlayerLevelRank{}
if protoimpl.UnsafeEnabled {
mi := &file_rank_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CSPlayerLevelRank) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CSPlayerLevelRank) ProtoMessage() {}
func (x *CSPlayerLevelRank) ProtoReflect() protoreflect.Message {
mi := &file_rank_proto_msgTypes[16]
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 CSPlayerLevelRank.ProtoReflect.Descriptor instead.
func (*CSPlayerLevelRank) Descriptor() ([]byte, []int) {
return file_rank_proto_rawDescGZIP(), []int{16}
}
func (x *CSPlayerLevelRank) GetSkip() int32 {
if x != nil {
return x.Skip
}
return 0
}
func (x *CSPlayerLevelRank) GetLimit() int32 {
if x != nil {
return x.Limit
}
return 0
}
type PlayerLevelRankInfo 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"` // 昵称
Level int64 `protobuf:"varint,3,opt,name=Level,proto3" json:"Level,omitempty"` // 等级
Rank int32 `protobuf:"varint,4,opt,name=Rank,proto3" json:"Rank,omitempty"` //排名
ModId int32 `protobuf:"varint,6,opt,name=ModId,proto3" json:"ModId,omitempty"` // 头像模型
}
func (x *PlayerLevelRankInfo) Reset() {
*x = PlayerLevelRankInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_rank_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PlayerLevelRankInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PlayerLevelRankInfo) ProtoMessage() {}
func (x *PlayerLevelRankInfo) ProtoReflect() protoreflect.Message {
mi := &file_rank_proto_msgTypes[17]
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 PlayerLevelRankInfo.ProtoReflect.Descriptor instead.
func (*PlayerLevelRankInfo) Descriptor() ([]byte, []int) {
return file_rank_proto_rawDescGZIP(), []int{17}
}
func (x *PlayerLevelRankInfo) GetSnId() int32 {
if x != nil {
return x.SnId
}
return 0
}
func (x *PlayerLevelRankInfo) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *PlayerLevelRankInfo) GetLevel() int64 {
if x != nil {
return x.Level
}
return 0
}
func (x *PlayerLevelRankInfo) GetRank() int32 {
if x != nil {
return x.Rank
}
return 0
}
func (x *PlayerLevelRankInfo) GetModId() int32 {
if x != nil {
return x.ModId
}
return 0
}
//RACKET_SCLevelRank
type SCPlayerLevelRank struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Ranks []*PlayerLevelRankInfo `protobuf:"bytes,1,rep,name=Ranks,proto3" json:"Ranks,omitempty"` // 排行榜
Me *PlayerLevelRankInfo `protobuf:"bytes,2,opt,name=Me,proto3" json:"Me,omitempty"` // 玩家自己的排行信息
Skip int32 `protobuf:"varint,3,opt,name=Skip,proto3" json:"Skip,omitempty"` // 页数
Limit int32 `protobuf:"varint,4,opt,name=Limit,proto3" json:"Limit,omitempty"` // 每页数量
}
func (x *SCPlayerLevelRank) Reset() {
*x = SCPlayerLevelRank{}
if protoimpl.UnsafeEnabled {
mi := &file_rank_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SCPlayerLevelRank) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SCPlayerLevelRank) ProtoMessage() {}
func (x *SCPlayerLevelRank) ProtoReflect() protoreflect.Message {
mi := &file_rank_proto_msgTypes[18]
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 SCPlayerLevelRank.ProtoReflect.Descriptor instead.
func (*SCPlayerLevelRank) Descriptor() ([]byte, []int) {
return file_rank_proto_rawDescGZIP(), []int{18}
}
func (x *SCPlayerLevelRank) GetRanks() []*PlayerLevelRankInfo {
if x != nil {
return x.Ranks
}
return nil
}
func (x *SCPlayerLevelRank) GetMe() *PlayerLevelRankInfo {
if x != nil {
return x.Me
}
return nil
}
func (x *SCPlayerLevelRank) GetSkip() int32 {
if x != nil {
return x.Skip
}
return 0
}
func (x *SCPlayerLevelRank) GetLimit() int32 {
if x != nil {
return x.Limit
}
return 0
}
var File_rank_proto protoreflect.FileDescriptor
var file_rank_proto_rawDesc = []byte{
@ -1686,61 +1471,36 @@ var file_rank_proto_rawDesc = []byte{
0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x02, 0x4d, 0x65, 0x12, 0x12, 0x0a, 0x04,
0x53, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6b, 0x69, 0x70,
0x12, 0x14, 0x0a, 0x05, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52,
0x05, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x3d, 0x0a, 0x11, 0x43, 0x53, 0x50, 0x6c, 0x61, 0x79,
0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x53,
0x6b, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6b, 0x69, 0x70, 0x12,
0x14, 0x0a, 0x05, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05,
0x4c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x7d, 0x0a, 0x13, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c,
0x65, 0x76, 0x65, 0x6c, 0x52, 0x61, 0x6e, 0x6b, 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, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20,
0x01, 0x28, 0x03, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4d,
0x6f, 0x64, 0x49, 0x64, 0x22, 0x99, 0x01, 0x0a, 0x11, 0x53, 0x43, 0x50, 0x6c, 0x61, 0x79, 0x65,
0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x2f, 0x0a, 0x05, 0x52, 0x61,
0x6e, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x72, 0x61, 0x6e, 0x6b,
0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x61, 0x6e, 0x6b,
0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x29, 0x0a, 0x02, 0x4d,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x72, 0x61, 0x6e, 0x6b, 0x2e, 0x50,
0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e,
0x66, 0x6f, 0x52, 0x02, 0x4d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6b, 0x69, 0x70, 0x18, 0x03,
0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x69,
0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x69, 0x6d, 0x69, 0x74,
0x2a, 0xde, 0x02, 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, 0x2a, 0x76, 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, 0x12, 0x0a, 0x0e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54,
0x79, 0x70, 0x65, 0x5f, 0x4d, 0x61, 0x78, 0x10, 0x04, 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,
0x05, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x2a, 0xaa, 0x02, 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, 0x2a, 0x76, 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, 0x12, 0x0a, 0x0e, 0x49, 0x6e, 0x76, 0x69, 0x74,
0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4d, 0x61, 0x78, 0x10, 0x04, 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 (
@ -1756,7 +1516,7 @@ func file_rank_proto_rawDescGZIP() []byte {
}
var file_rank_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_rank_proto_msgTypes = make([]protoimpl.MessageInfo, 19)
var file_rank_proto_msgTypes = make([]protoimpl.MessageInfo, 16)
var file_rank_proto_goTypes = []interface{}{
(Rank)(0), // 0: rank.Rank
(RankInvite)(0), // 1: rank.RankInvite
@ -1776,9 +1536,6 @@ var file_rank_proto_goTypes = []interface{}{
(*CSWinCoin)(nil), // 15: rank.CSWinCoin
(*WinCoinInfo)(nil), // 16: rank.WinCoinInfo
(*SCWinCoin)(nil), // 17: rank.SCWinCoin
(*CSPlayerLevelRank)(nil), // 18: rank.CSPlayerLevelRank
(*PlayerLevelRankInfo)(nil), // 19: rank.PlayerLevelRankInfo
(*SCPlayerLevelRank)(nil), // 20: rank.SCPlayerLevelRank
}
var file_rank_proto_depIdxs = []int32{
3, // 0: rank.SCRankMatch.Ranks:type_name -> rank.SeasonRank
@ -1790,13 +1547,11 @@ var file_rank_proto_depIdxs = []int32{
12, // 6: rank.SCInviteLog.List:type_name -> rank.InviteInfo
16, // 7: rank.SCWinCoin.Ranks:type_name -> rank.WinCoinInfo
16, // 8: rank.SCWinCoin.Me:type_name -> rank.WinCoinInfo
19, // 9: rank.SCPlayerLevelRank.Ranks:type_name -> rank.PlayerLevelRankInfo
19, // 10: rank.SCPlayerLevelRank.Me:type_name -> rank.PlayerLevelRankInfo
11, // [11:11] is the sub-list for method output_type
11, // [11:11] is the sub-list for method input_type
11, // [11:11] is the sub-list for extension type_name
11, // [11:11] is the sub-list for extension extendee
0, // [0:11] is the sub-list for field type_name
9, // [9:9] is the sub-list for method output_type
9, // [9:9] is the sub-list for method input_type
9, // [9:9] is the sub-list for extension type_name
9, // [9:9] is the sub-list for extension extendee
0, // [0:9] is the sub-list for field type_name
}
func init() { file_rank_proto_init() }
@ -1997,42 +1752,6 @@ func file_rank_proto_init() {
return nil
}
}
file_rank_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CSPlayerLevelRank); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rank_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PlayerLevelRankInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_rank_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SCPlayerLevelRank); 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{
@ -2040,7 +1759,7 @@ func file_rank_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_rank_proto_rawDesc,
NumEnums: 2,
NumMessages: 19,
NumMessages: 16,
NumExtensions: 0,
NumServices: 0,
},

View File

@ -19,9 +19,6 @@ enum Rank{
//
PACKET_RANK_CSWinCoin = 10008;
PACKET_RANK_SCWinCoin = 10009;
//
PACKET_RANK_CSLevel = 10010;
PACKET_RANK_SCLevel = 10011;
}
//
@ -160,24 +157,3 @@ message SCWinCoin{
int32 Skip = 3; //
int32 Limit = 4; //
}
//
//RACKET_CSLevelRank
message CSPlayerLevelRank{
int32 Skip = 1;
int32 Limit = 2;
}
message PlayerLevelRankInfo{
int32 SnId = 1; // id
string Name = 2; //
int64 Level = 3; //
int32 Rank = 4; //
int32 ModId = 6; //
}
//RACKET_SCLevelRank
message SCPlayerLevelRank{
repeated PlayerLevelRankInfo Ranks = 1; //
PlayerLevelRankInfo Me = 2; //
int32 Skip = 3; //
int32 Limit = 4; //
}

File diff suppressed because it is too large Load Diff

View File

@ -681,10 +681,6 @@ message DB_GameCoinPool {
int32 ProfitRate = 10;
int32 CtrlRate = 11;
int64 InitNovicValue = 12;
}
message DB_GameCoinPoolArray {
@ -1055,28 +1051,6 @@ message DB_GiftBoxArray {
repeated DB_GiftBox Arr = 1;
}
message DB_GiftCard {
int32 Id = 1;
int32 ShopID = 2;
string Name = 3;
map<int64, int64> Rewards = 4;
map<int64, int64> DayRewards = 5;
int32 Time = 6;
repeated int32 Equity = 7;
}
message DB_GiftCardArray {
repeated DB_GiftCard Arr = 1;
}
message DB_IceAgeElementRate {
int32 Id = 1;
@ -1267,36 +1241,6 @@ message DB_PhoneLotteryArray {
repeated DB_PhoneLottery Arr = 1;
}
message DB_PigBank_Diamond {
int32 Id = 1;
int32 BuyCountMin = 2;
int32 BuyCountMax = 3;
int32 CostDiamond = 4;
}
message DB_PigBank_DiamondArray {
repeated DB_PigBank_Diamond Arr = 1;
}
message DB_Pigbank_Prop {
int32 Id = 1;
string PorpName = 2;
int32 PropValue = 3;
}
message DB_Pigbank_PropArray {
repeated DB_Pigbank_Prop Arr = 1;
}
message DB_PlayerExp {
int32 Id = 1;
@ -1535,21 +1479,19 @@ message DB_Task {
int32 Id = 1;
int32 Order = 2;
int32 ActivityType = 2;
int32 ActivityType = 3;
int32 TaskType = 3;
int32 TaskType = 4;
int64 TargetTimes = 4;
int64 TargetTimes = 5;
int64 FinishTimes = 5;
int64 FinishTimes = 6;
map<int64, int64> Award = 6;
map<int64, int64> Award = 7;
int32 GameType = 7;
int32 GameType = 8;
repeated int32 Position = 9;
repeated int32 Position = 8;
}
@ -1631,6 +1573,8 @@ message DB_VIP {
map<int64, int64> Award = 18;
repeated string ParamName = 19;
}
message DB_VIPArray {

File diff suppressed because it is too large Load Diff

View File

@ -594,16 +594,21 @@ message GWPlayerForceLeave{
//PACKET_GW_PLAYERDATA
message PlayerData {
int32 SnId = 1;//id
int64 Bet = 2; //
int64 Bet = 2;//()
int64 Gain = 3;//,
int64 Tax = 4;// Gain的税收
int64 Coin = 5; //
int64 GameCoinTs = 6; //
int64 WBGain = 7; // ,
int32 WinState = 8; // 1: 2: 3:, Gain区分不了输赢的游戏必传这个参数
int64 OtherTax = 5;//(:)
int64 Coin = 6;//
int64 FlowCoin = 7;//
int64 Lottery = 8;//
int32 Kind = 9;//
repeated int32 Card = 10;//
int64 GameCoinTs = 11;//
int64 WBGain = 12; //
int32 WinState = 13; // 1: 2: 3:
}
message GWPlayerData {
repeated PlayerData Datas = 1;//
repeated PlayerData Datas = 1;//
int32 GameFreeId = 2;//id
int32 SceneId = 4; //id
}

View File

@ -227,7 +227,7 @@ type CSTaskList struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Tp int32 `protobuf:"varint,1,opt,name=Tp,proto3" json:"Tp,omitempty"` // 任务类型 1:日常任务 2:周活跃任务 3:新手任务 4:邀请任务 5:成就系统
Tp int32 `protobuf:"varint,1,opt,name=Tp,proto3" json:"Tp,omitempty"` // 任务类型 1:日常任务 2:周活跃任务 3:新手任务 4:邀请任务
}
func (x *CSTaskList) Reset() {
@ -275,7 +275,7 @@ type SCTaskList struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Tp int32 `protobuf:"varint,1,opt,name=Tp,proto3" json:"Tp,omitempty"` // 任务类型 1:日常任务 2:周活跃任务 3:新手任务 4:邀请任务 5:成就系统
Tp int32 `protobuf:"varint,1,opt,name=Tp,proto3" json:"Tp,omitempty"` // 任务类型 1:日常任务 2:周活跃任务 3:新手任务 4:邀请任务
List []*TaskData `protobuf:"bytes,2,rep,name=List,proto3" json:"List,omitempty"` // 任务列表
}
@ -332,7 +332,7 @@ type CSTaskReward struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Tp int32 `protobuf:"varint,1,opt,name=Tp,proto3" json:"Tp,omitempty"` // 任务类型 1:日常任务 2:周活跃任务 3:新手任务 4:邀请任务 5:成就系统
Tp int32 `protobuf:"varint,1,opt,name=Tp,proto3" json:"Tp,omitempty"` // 任务类型 1:日常任务 2:周活跃任务 3:新手任务 4:邀请任务
Id int32 `protobuf:"varint,2,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id
}
@ -453,7 +453,7 @@ type SCTaskChange struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Tp int32 `protobuf:"varint,1,opt,name=Tp,proto3" json:"Tp,omitempty"` // 任务类型 1:日常任务 2:周活跃任务 3:新手任务 4:邀请任务 5:成就系统
Tp int32 `protobuf:"varint,1,opt,name=Tp,proto3" json:"Tp,omitempty"` // 任务类型 1:日常任务 2:周活跃任务 3:新手任务 4:邀请任务
List []*TaskData `protobuf:"bytes,2,rep,name=List,proto3" json:"List,omitempty"` // 任务列表
}
@ -508,7 +508,7 @@ type CSTaskDebugInc struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Tp int32 `protobuf:"varint,1,opt,name=Tp,proto3" json:"Tp,omitempty"` // 任务类型 1:日常任务 2:周活跃任务 3:新手任务 4:邀请任务 5:成就系统
Tp int32 `protobuf:"varint,1,opt,name=Tp,proto3" json:"Tp,omitempty"` // 任务类型 1:日常任务 2:周活跃任务 3:新手任务 4:邀请任务
Id int32 `protobuf:"varint,2,opt,name=Id,proto3" json:"Id,omitempty"` // 任务id
AddNum int32 `protobuf:"varint,3,opt,name=AddNum,proto3" json:"AddNum,omitempty"` // 直接增加次数
}

View File

@ -33,18 +33,18 @@ message TaskData{
//
// PACKET_CSTaskList
message CSTaskList{
int32 Tp = 1; // 1: 2: 3: 4: 5:
int32 Tp = 1; // 1: 2: 3: 4:
}
// PACKET_SCTaskList
message SCTaskList{
int32 Tp = 1; // 1: 2: 3: 4: 5:
int32 Tp = 1; // 1: 2: 3: 4:
repeated TaskData List = 2; //
}
//
// PACKET_CSTaskReward
message CSTaskReward{
int32 Tp = 1; // 1: 2: 3: 4: 5:
int32 Tp = 1; // 1: 2: 3: 4:
int32 Id = 2; // id
}
// PACKET_SCTaskReward
@ -57,12 +57,12 @@ message SCTaskReward{
//
// PACKET_SCTaskChange
message SCTaskChange{
int32 Tp = 1; // 1: 2: 3: 4: 5:
int32 Tp = 1; // 1: 2: 3: 4:
repeated TaskData List = 2; //
}
message CSTaskDebugInc{
int32 Tp = 1; // 1: 2: 3: 4: 5:
int32 Tp = 1; // 1: 2: 3: 4:
int32 Id = 2; // id
int32 AddNum = 3; //
}

View File

@ -553,8 +553,6 @@ type ThirteenPlayerData struct {
IsConfirm bool `protobuf:"varint,25,opt,name=IsConfirm,proto3" json:"IsConfirm,omitempty"` // 是否确认牌型
IsLeave bool `protobuf:"varint,26,opt,name=IsLeave,proto3" json:"IsLeave,omitempty"` // 已经离场
RoleId int32 `protobuf:"varint,27,opt,name=RoleId,proto3" json:"RoleId,omitempty"` //使用中的角色id
Level int64 `protobuf:"varint,28,opt,name=Level,proto3" json:"Level,omitempty"` //玩家等级
Exp int64 `protobuf:"varint,29,opt,name=Exp,proto3" json:"Exp,omitempty"` //玩家经验
}
func (x *ThirteenPlayerData) Reset() {
@ -778,20 +776,6 @@ func (x *ThirteenPlayerData) GetRoleId() int32 {
return 0
}
func (x *ThirteenPlayerData) GetLevel() int64 {
if x != nil {
return x.Level
}
return 0
}
func (x *ThirteenPlayerData) GetExp() int64 {
if x != nil {
return x.Exp
}
return 0
}
//玩家进入
//PACKET_SCThirteenPlayerEnter
type SCThirteenPlayerEnter struct {
@ -1409,7 +1393,7 @@ var file_thirteen_proto_rawDesc = []byte{
0x03, 0x50, 0x6f, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12,
0x25, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f,
0x2e, 0x74, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x2e, 0x50, 0x6f, 0x6b, 0x65, 0x72, 0x52,
0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x22, 0xf6, 0x05, 0x0a, 0x12, 0x54, 0x68, 0x69, 0x72, 0x74,
0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x22, 0xce, 0x05, 0x0a, 0x12, 0x54, 0x68, 0x69, 0x72, 0x74,
0x65, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a,
0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d,
0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
@ -1454,107 +1438,104 @@ var file_thirteen_proto_rawDesc = []byte{
0x6e, 0x66, 0x69, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x73, 0x4c, 0x65, 0x61, 0x76, 0x65,
0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x49, 0x73, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12,
0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52,
0x06, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c,
0x18, 0x1c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x10, 0x0a,
0x03, 0x45, 0x78, 0x70, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x45, 0x78, 0x70, 0x22,
0x49, 0x0a, 0x15, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x50, 0x6c, 0x61,
0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65,
0x6e, 0x2e, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72,
0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x29, 0x0a, 0x15, 0x53, 0x43,
0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 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, 0xd4, 0x04, 0x0a, 0x12, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72,
0x74, 0x65, 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, 0x6f, 0x72, 0x18,
0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x16,
0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06,
0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f,
0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f,
0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03,
0x28, 0x05, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x4e, 0x75,
0x6d, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a,
0x4e, 0x75, 0x6d, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61,
0x6e, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x42,
0x61, 0x6e, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74,
0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18,
0x0a, 0x07, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x75, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52,
0x07, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x75, 0x74, 0x12, 0x36, 0x0a, 0x07, 0x50, 0x6c, 0x61, 0x79,
0x65, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x68, 0x69, 0x72,
0x74, 0x65, 0x65, 0x6e, 0x2e, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x50, 0x6c, 0x61,
0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73,
0x12, 0x1e, 0x0a, 0x0a, 0x44, 0x69, 0x73, 0x62, 0x61, 0x6e, 0x64, 0x47, 0x65, 0x6e, 0x18, 0x0b,
0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x44, 0x69, 0x73, 0x62, 0x61, 0x6e, 0x64, 0x47, 0x65, 0x6e,
0x12, 0x20, 0x0a, 0x0b, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x61, 0x72, 0x64, 0x50, 0x6f, 0x73, 0x18,
0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x61, 0x72, 0x64, 0x50,
0x6f, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x0d, 0x20,
0x01, 0x28, 0x05, 0x52, 0x07, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08,
0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x78, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08,
0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x63, 0x65, 0x6e,
0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x63, 0x65,
0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x73, 0x65, 0x53, 0x63,
0x6f, 0x72, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x42, 0x61, 0x73, 0x65, 0x53,
0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x66, 0x47,
0x61, 0x6d, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x54, 0x6f, 0x74, 0x61,
0x6c, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4c, 0x65, 0x61, 0x76,
0x65, 0x44, 0x65, 0x64, 0x75, 0x63, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x4c,
0x65, 0x61, 0x76, 0x65, 0x44, 0x65, 0x64, 0x75, 0x63, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x4c, 0x65,
0x61, 0x76, 0x65, 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52,
0x0b, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x22, 0x43, 0x0a, 0x13,
0x06, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x22, 0x49, 0x0a, 0x15, 0x53, 0x43, 0x54, 0x68, 0x69,
0x72, 0x74, 0x65, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72,
0x12, 0x30, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c,
0x2e, 0x74, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x2e, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65,
0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x44, 0x61,
0x74, 0x61, 0x22, 0x29, 0x0a, 0x15, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 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, 0xd4, 0x04,
0x0a, 0x12, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 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, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43,
0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64,
0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1a,
0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05,
0x52, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61,
0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61,
0x6d, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x4e, 0x75, 0x6d, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73,
0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4e, 0x75, 0x6d, 0x4f, 0x66, 0x47, 0x61, 0x6d,
0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x6e, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x18,
0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x42, 0x61, 0x6e, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x73,
0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52,
0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x75,
0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x75, 0x74,
0x12, 0x36, 0x0a, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x2e, 0x54, 0x68, 0x69,
0x72, 0x74, 0x65, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52,
0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x44, 0x69, 0x73, 0x62,
0x61, 0x6e, 0x64, 0x47, 0x65, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x44, 0x69,
0x73, 0x62, 0x61, 0x6e, 0x64, 0x47, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x68, 0x6f, 0x77,
0x43, 0x61, 0x72, 0x64, 0x50, 0x6f, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53,
0x68, 0x6f, 0x77, 0x43, 0x61, 0x72, 0x64, 0x50, 0x6f, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x67,
0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x41, 0x67, 0x65,
0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x78,
0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x78,
0x12, 0x1c, 0x0a, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20,
0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c,
0x0a, 0x09, 0x42, 0x61, 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28,
0x05, 0x52, 0x09, 0x42, 0x61, 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c,
0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01,
0x28, 0x05, 0x52, 0x0c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73,
0x12, 0x20, 0x0a, 0x0b, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x44, 0x65, 0x64, 0x75, 0x63, 0x74, 0x18,
0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x44, 0x65, 0x64, 0x75,
0x63, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x6f, 0x6d, 0x62, 0x61,
0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x6f,
0x6d, 0x62, 0x61, 0x74, 0x22, 0x43, 0x0a, 0x13, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65,
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,
0x05, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x5a, 0x0a, 0x13, 0x53, 0x43, 0x54,
0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x61, 0x72, 0x64, 0x73,
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, 0x2b, 0x0a, 0x08, 0x41, 0x6c, 0x6c, 0x43,
0x61, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x68, 0x69,
0x72, 0x74, 0x65, 0x65, 0x6e, 0x2e, 0x50, 0x6f, 0x6b, 0x65, 0x72, 0x52, 0x08, 0x41, 0x6c, 0x6c,
0x43, 0x61, 0x72, 0x64, 0x73, 0x22, 0x68, 0x0a, 0x06, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12,
0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f,
0x73, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52,
0x04, 0x43, 0x6f, 0x69, 0x6e, 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,
0x1e, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20,
0x01, 0x28, 0x03, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x22,
0x42, 0x0a, 0x10, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x42, 0x69, 0x6c,
0x6c, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x09, 0x41, 0x6c, 0x6c, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64,
0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65,
0x6e, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x52, 0x09, 0x41, 0x6c, 0x6c, 0x42, 0x69, 0x6c,
0x6c, 0x65, 0x64, 0x22, 0x24, 0x0a, 0x0e, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65,
0x6e, 0x54, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x2a, 0xee, 0x02, 0x0a, 0x0d, 0x54, 0x57,
0x4d, 0x6d, 0x6f, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x14, 0x50,
0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x54, 0x48, 0x49, 0x52, 0x54, 0x45, 0x45, 0x4e, 0x5f, 0x5a,
0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e,
0x66, 0x6f, 0x10, 0xc2, 0x2b, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
0x43, 0x53, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72,
0x4f, 0x70, 0x10, 0xc3, 0x2b, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 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, 0x05, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d,
0x73, 0x22, 0x5a, 0x0a, 0x13, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x53,
0x68, 0x6f, 0x77, 0x43, 0x61, 0x72, 0x64, 0x73, 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, 0x2b, 0x0a, 0x08, 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x2e, 0x50, 0x6f,
0x6b, 0x65, 0x72, 0x52, 0x08, 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x22, 0x68, 0x0a,
0x06, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x01,
0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69,
0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 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, 0x1e, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x62, 0x61,
0x74, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x43, 0x6f, 0x6d,
0x62, 0x61, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x42, 0x0a, 0x10, 0x53, 0x43, 0x54, 0x68, 0x69,
0x72, 0x74, 0x65, 0x65, 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x09, 0x41,
0x6c, 0x6c, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10,
0x2e, 0x74, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64,
0x52, 0x09, 0x41, 0x6c, 0x6c, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x22, 0x24, 0x0a, 0x0e, 0x53,
0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a,
0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74,
0x61, 0x2a, 0xee, 0x02, 0x0a, 0x0d, 0x54, 0x57, 0x4d, 0x6d, 0x6f, 0x50, 0x61, 0x63, 0x6b, 0x65,
0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x54, 0x48,
0x49, 0x52, 0x54, 0x45, 0x45, 0x4e, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x1e, 0x0a,
0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65,
0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xc2, 0x2b, 0x12, 0x1e, 0x0a,
0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65,
0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x10, 0xc3, 0x2b, 0x12, 0x1f, 0x0a,
0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65,
0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, 0xc4, 0x2b, 0x12, 0x21,
0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74,
0x65, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x10, 0xc5,
0x2b, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x68,
0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76,
0x65, 0x10, 0xc6, 0x2b, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53,
0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43,
0x61, 0x72, 0x64, 0x73, 0x10, 0xc7, 0x2b, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45,
0x54, 0x5f, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79,
0x65, 0x72, 0x4f, 0x70, 0x10, 0xc8, 0x2b, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45,
0x54, 0x5f, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x53, 0x68, 0x6f, 0x77,
0x43, 0x61, 0x72, 0x64, 0x73, 0x10, 0xc9, 0x2b, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b,
0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x42, 0x69, 0x6c,
0x6c, 0x65, 0x64, 0x10, 0xca, 0x2b, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
0x5f, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x10,
0xcb, 0x2b, 0x2a, 0x2f, 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, 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, 0x74, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x62, 0x06, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x33,
0x61, 0x74, 0x65, 0x10, 0xc4, 0x2b, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
0x5f, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65,
0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x10, 0xc5, 0x2b, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43,
0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65, 0x6e, 0x50, 0x6c,
0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x10, 0xc6, 0x2b, 0x12, 0x21, 0x0a, 0x1c,
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74, 0x65, 0x65,
0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, 0x73, 0x10, 0xc7, 0x2b, 0x12,
0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72,
0x74, 0x65, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x10, 0xc8, 0x2b, 0x12,
0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72,
0x74, 0x65, 0x65, 0x6e, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x61, 0x72, 0x64, 0x73, 0x10, 0xc9, 0x2b,
0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x68, 0x69,
0x72, 0x74, 0x65, 0x65, 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x10, 0xca, 0x2b, 0x12, 0x1a,
0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x68, 0x69, 0x72, 0x74,
0x65, 0x65, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x10, 0xcb, 0x2b, 0x2a, 0x2f, 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, 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, 0x74, 0x68, 0x69,
0x72, 0x74, 0x65, 0x65, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (

View File

@ -125,8 +125,6 @@ message ThirteenPlayerData {
bool IsConfirm = 25; //
bool IsLeave = 26; //
int32 RoleId = 27; //使id
int64 Level = 28; //
int64 Exp = 29; //
}
//

View File

@ -194,9 +194,6 @@ type TienLenPlayerData struct {
CopyRoleId int32 `protobuf:"varint,24,opt,name=CopyRoleId,proto3" json:"CopyRoleId,omitempty"` //比赛场机器人假角色
RankScore int64 `protobuf:"varint,25,opt,name=RankScore,proto3" json:"RankScore,omitempty"` // 排位积分
ThinkLongCnt int32 `protobuf:"varint,26,opt,name=ThinkLongCnt,proto3" json:"ThinkLongCnt,omitempty"` // 长考次数
Level int64 `protobuf:"varint,27,opt,name=Level,proto3" json:"Level,omitempty"` //玩家等级
Exp int64 `protobuf:"varint,28,opt,name=Exp,proto3" json:"Exp,omitempty"` //玩家经验
PigBankCoin int64 `protobuf:"varint,29,opt,name=PigBankCoin,proto3" json:"PigBankCoin,omitempty"` //存钱罐金币
}
func (x *TienLenPlayerData) Reset() {
@ -413,27 +410,6 @@ func (x *TienLenPlayerData) GetThinkLongCnt() int32 {
return 0
}
func (x *TienLenPlayerData) GetLevel() int64 {
if x != nil {
return x.Level
}
return 0
}
func (x *TienLenPlayerData) GetExp() int64 {
if x != nil {
return x.Exp
}
return 0
}
func (x *TienLenPlayerData) GetPigBankCoin() int64 {
if x != nil {
return x.PigBankCoin
}
return 0
}
type LastDelCard struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@ -515,9 +491,6 @@ type SCTienLenRoomInfo struct {
RankType int32 `protobuf:"varint,27,opt,name=RankType,proto3" json:"RankType,omitempty"` // 排位类型
SceneAdd int32 `protobuf:"varint,28,opt,name=SceneAdd,proto3" json:"SceneAdd,omitempty"` // 场次加成(百分比)
RecordId string `protobuf:"bytes,29,opt,name=RecordId,proto3" json:"RecordId,omitempty"` // 牌局ID
OutCardRecord []int32 `protobuf:"varint,30,rep,packed,name=OutCardRecord,proto3" json:"OutCardRecord,omitempty"` //已打出去的牌
IsOutRecord bool `protobuf:"varint,31,opt,name=IsOutRecord,proto3" json:"IsOutRecord,omitempty"` //是否能用记牌器
ItemRecExpireTime int64 `protobuf:"varint,32,opt,name=ItemRecExpireTime,proto3" json:"ItemRecExpireTime,omitempty"` //记牌器到期时间
}
func (x *SCTienLenRoomInfo) Reset() {
@ -734,27 +707,6 @@ func (x *SCTienLenRoomInfo) GetRecordId() string {
return ""
}
func (x *SCTienLenRoomInfo) GetOutCardRecord() []int32 {
if x != nil {
return x.OutCardRecord
}
return nil
}
func (x *SCTienLenRoomInfo) GetIsOutRecord() bool {
if x != nil {
return x.IsOutRecord
}
return false
}
func (x *SCTienLenRoomInfo) GetItemRecExpireTime() int64 {
if x != nil {
return x.ItemRecExpireTime
}
return 0
}
//房间状态更新
type SCTienLenRoomState struct {
state protoimpl.MessageState
@ -1039,7 +991,7 @@ type AddItem struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ItemType int32 `protobuf:"varint,1,opt,name=ItemType,proto3" json:"ItemType,omitempty"` // 类型; 1场次加成 2道具 3宠物 4角色 5vip加成 6周卡加成
ItemType int32 `protobuf:"varint,1,opt,name=ItemType,proto3" json:"ItemType,omitempty"` // 类型; 1场次加成 2道具 3宠物 4角色 5vip加成
ItemId int32 `protobuf:"varint,2,opt,name=ItemId,proto3" json:"ItemId,omitempty"` // ID
Addition int32 `protobuf:"varint,3,opt,name=Addition,proto3" json:"Addition,omitempty"` // 加成(百分比)
Score int64 `protobuf:"varint,4,opt,name=Score,proto3" json:"Score,omitempty"` // 加成分数
@ -1367,7 +1319,6 @@ type SCTienLenCard struct {
unknownFields protoimpl.UnknownFields
Cards []int32 `protobuf:"varint,1,rep,packed,name=Cards,proto3" json:"Cards,omitempty"` //手牌
IsOutRecord bool `protobuf:"varint,2,opt,name=IsOutRecord,proto3" json:"IsOutRecord,omitempty"` // 是否有出牌记录
}
func (x *SCTienLenCard) Reset() {
@ -1409,13 +1360,6 @@ func (x *SCTienLenCard) GetCards() []int32 {
return nil
}
func (x *SCTienLenCard) GetIsOutRecord() bool {
if x != nil {
return x.IsOutRecord
}
return false
}
//测试数据
type SCTienLenCardTest struct {
state protoimpl.MessageState
@ -2033,7 +1977,7 @@ var File_tienlen_proto protoreflect.FileDescriptor
var file_tienlen_proto_rawDesc = []byte{
0x0a, 0x0d, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
0x07, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x22, 0xcc, 0x06, 0x0a, 0x11, 0x54, 0x69, 0x65,
0x07, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x22, 0x82, 0x06, 0x0a, 0x11, 0x54, 0x69, 0x65,
0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12,
0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61,
0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
@ -2078,76 +2022,64 @@ var file_tienlen_proto_rawDesc = []byte{
0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12,
0x22, 0x0a, 0x0c, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, 0x74, 0x18,
0x1a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67,
0x43, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x1b, 0x20, 0x01,
0x28, 0x03, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x78, 0x70,
0x18, 0x1c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x45, 0x78, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x50,
0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x03,
0x52, 0x0b, 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x69, 0x6e, 0x1a, 0x38, 0x0a,
0x0a, 0x49, 0x74, 0x65, 0x6d, 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, 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, 0xab, 0x07, 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, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x72, 0x65,
0x61, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x03,
0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08,
0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08,
0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61,
0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73,
0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x6e, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x18, 0x06, 0x20,
0x01, 0x28, 0x05, 0x52, 0x09, 0x42, 0x61, 0x6e, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x12, 0x14,
0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53,
0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x75, 0x74, 0x18,
0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x75, 0x74, 0x12, 0x34,
0x0a, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 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, 0x07, 0x50, 0x6c, 0x61,
0x79, 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65,
0x4e, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x65,
0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x75, 0x72, 0x4f, 0x70, 0x49,
0x64, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x75, 0x72, 0x4f, 0x70, 0x49,
0x64, 0x78, 0x12, 0x38, 0x0a, 0x0c, 0x4c, 0x61, 0x73, 0x74, 0x44, 0x65, 0x6c, 0x43, 0x61, 0x72,
0x64, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c,
0x65, 0x6e, 0x2e, 0x4c, 0x61, 0x73, 0x74, 0x44, 0x65, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x52, 0x0c,
0x4c, 0x61, 0x73, 0x74, 0x44, 0x65, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x1e, 0x0a, 0x0a,
0x4e, 0x75, 0x6d, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05,
0x52, 0x0a, 0x4e, 0x75, 0x6d, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c,
0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01,
0x28, 0x05, 0x52, 0x0c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73,
0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x10,
0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64,
0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x11, 0x20,
0x01, 0x28, 0x05, 0x52, 0x09, 0x42, 0x61, 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x22,
0x0a, 0x0c, 0x4d, 0x61, 0x78, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x12,
0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4d, 0x61, 0x78, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e,
0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x6e, 0x69, 0x64, 0x73, 0x18, 0x13,
0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x6e, 0x69, 0x64, 0x73, 0x12, 0x18,
0x0a, 0x07, 0x49, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52,
0x07, 0x49, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e,
0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x22,
0x0a, 0x0c, 0x43, 0x75, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x18,
0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x43, 0x75, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e,
0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x65, 0x78, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x18, 0x19,
0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x65, 0x78, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x12, 0x20,
0x0a, 0x0b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x73, 0x18, 0x1a, 0x20,
0x01, 0x28, 0x05, 0x52, 0x0b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x73,
0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x1b, 0x20, 0x01,
0x28, 0x05, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08,
0x53, 0x63, 0x65, 0x6e, 0x65, 0x41, 0x64, 0x64, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08,
0x53, 0x63, 0x65, 0x6e, 0x65, 0x41, 0x64, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x63, 0x6f,
0x72, 0x64, 0x49, 0x64, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x52, 0x65, 0x63, 0x6f,
0x72, 0x64, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x4f, 0x75, 0x74, 0x43, 0x61, 0x72, 0x64, 0x52,
0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x4f, 0x75, 0x74,
0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73,
0x4f, 0x75, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x52,
0x0b, 0x49, 0x73, 0x4f, 0x75, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x2c, 0x0a, 0x11,
0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x63, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d,
0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x63,
0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x42, 0x0a, 0x12, 0x53, 0x43,
0x43, 0x6e, 0x74, 0x1a, 0x38, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 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, 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, 0xb5, 0x06, 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, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28,
0x05, 0x52, 0x07, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61,
0x6d, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65,
0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x04,
0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x16,
0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06,
0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x6e, 0x6b, 0x65, 0x72,
0x50, 0x6f, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x42, 0x61, 0x6e, 0x6b, 0x65,
0x72, 0x50, 0x6f, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20,
0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x69,
0x6d, 0x65, 0x4f, 0x75, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x54, 0x69, 0x6d,
0x65, 0x4f, 0x75, 0x74, 0x12, 0x34, 0x0a, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18,
0x09, 0x20, 0x03, 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, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x75,
0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52,
0x0b, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08,
0x43, 0x75, 0x72, 0x4f, 0x70, 0x49, 0x64, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08,
0x43, 0x75, 0x72, 0x4f, 0x70, 0x49, 0x64, 0x78, 0x12, 0x38, 0x0a, 0x0c, 0x4c, 0x61, 0x73, 0x74,
0x44, 0x65, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14,
0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x4c, 0x61, 0x73, 0x74, 0x44, 0x65, 0x6c,
0x43, 0x61, 0x72, 0x64, 0x52, 0x0c, 0x4c, 0x61, 0x73, 0x74, 0x44, 0x65, 0x6c, 0x43, 0x61, 0x72,
0x64, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x4e, 0x75, 0x6d, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73,
0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4e, 0x75, 0x6d, 0x4f, 0x66, 0x47, 0x61, 0x6d,
0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x66, 0x47, 0x61, 0x6d,
0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4f,
0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72,
0x53, 0x6e, 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x73, 0x74,
0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x73, 0x65, 0x53, 0x63,
0x6f, 0x72, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x42, 0x61, 0x73, 0x65, 0x53,
0x63, 0x6f, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x4d, 0x61, 0x78, 0x50, 0x6c, 0x61, 0x79, 0x65,
0x72, 0x4e, 0x75, 0x6d, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4d, 0x61, 0x78, 0x50,
0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x69, 0x6e, 0x53,
0x6e, 0x69, 0x64, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x57, 0x69, 0x6e, 0x53,
0x6e, 0x69, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x18,
0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x49, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x14,
0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x52,
0x6f, 0x75, 0x6e, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x75, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65,
0x72, 0x4e, 0x75, 0x6d, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x43, 0x75, 0x72, 0x50,
0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x65, 0x78, 0x74,
0x4e, 0x65, 0x65, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x65, 0x78, 0x74,
0x4e, 0x65, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x69, 0x6e,
0x61, 0x6c, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x4d, 0x61, 0x74, 0x63, 0x68,
0x46, 0x69, 0x6e, 0x61, 0x6c, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79,
0x70, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79,
0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x41, 0x64, 0x64, 0x18, 0x1c,
0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x41, 0x64, 0x64, 0x12, 0x1a,
0x0a, 0x08, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x64, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09,
0x52, 0x08, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 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,
@ -2216,154 +2148,152 @@ var file_tienlen_proto_rawDesc = []byte{
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, 0x47, 0x0a, 0x0d, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c,
0x65, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x25, 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, 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,
0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 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, 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, 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, 0xb6, 0x04, 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,
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, 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,
0xb6, 0x04, 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, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x10, 0xfe, 0x29, 0x12, 0x20, 0x0a, 0x1b,
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,
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, 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,
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, 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 (

View File

@ -59,9 +59,6 @@ message TienLenPlayerData {
int32 CopyRoleId = 24;//
int64 RankScore = 25; //
int32 ThinkLongCnt = 26; //
int64 Level = 27; //
int64 Exp = 28; //
int64 PigBankCoin = 29; //
}
message LastDelCard {
@ -98,10 +95,6 @@ message SCTienLenRoomInfo {
int32 RankType = 27; //
int32 SceneAdd = 28; //
string RecordId = 29; // ID
repeated int32 OutCardRecord = 30 ;//
bool IsOutRecord = 31;//
int64 ItemRecExpireTime = 32; //
}
//
@ -133,7 +126,7 @@ message SCTienLenPlayerLeave {
}
message AddItem {
int32 ItemType = 1; // ; 1 2 3 4 5vip加成 6
int32 ItemType = 1; // ; 1 2 3 4 5vip加成
int32 ItemId = 2; // ID
int32 Addition = 3; //
int64 Score = 4; //
@ -170,7 +163,6 @@ message SCTienLenSmallGameBilled {
//
message SCTienLenCard {
repeated int32 Cards = 1; //
bool IsOutRecord = 2; //
}
//

View File

@ -2212,13 +2212,12 @@ type CoinPoolSetting struct {
LowerOdds int32 `protobuf:"varint,11,opt,name=LowerOdds,proto3" json:"LowerOdds,omitempty"` // 下线初始概率
LowerOddsMax int32 `protobuf:"varint,12,opt,name=LowerOddsMax,proto3" json:"LowerOddsMax,omitempty"` // 下线最大概率
ProfitRate int32 `protobuf:"varint,13,opt,name=ProfitRate,proto3" json:"ProfitRate,omitempty"` //营收比例,千分比
// 新增配置
ResetTime int64 `protobuf:"varint,14,opt,name=ResetTime,proto3" json:"ResetTime,omitempty"` // 重置时间
Switch int32 `protobuf:"varint,15,opt,name=Switch,proto3" json:"Switch,omitempty"` // 开关 0开启 1关闭
// 水池状态
CoinValue int64 `protobuf:"varint,16,opt,name=CoinValue,proto3" json:"CoinValue,omitempty"` // 当前水位
ProfitPool int64 `protobuf:"varint,17,opt,name=ProfitPool,proto3" json:"ProfitPool,omitempty"` // 收益池水位
CtrlRate int32 `protobuf:"varint,18,opt,name=CtrlRate,proto3" json:"CtrlRate,omitempty"` //调节赔率,万分比
InitNoviceValue int64 `protobuf:"varint,19,opt,name=InitNoviceValue,proto3" json:"InitNoviceValue,omitempty"` // 新手池初始库存值
NoviceCoinValue int64 `protobuf:"varint,20,opt,name=NoviceCoinValue,proto3" json:"NoviceCoinValue,omitempty"` // 新手池水位
}
func (x *CoinPoolSetting) Reset() {
@ -2372,27 +2371,6 @@ func (x *CoinPoolSetting) GetProfitPool() int64 {
return 0
}
func (x *CoinPoolSetting) GetCtrlRate() int32 {
if x != nil {
return x.CtrlRate
}
return 0
}
func (x *CoinPoolSetting) GetInitNoviceValue() int64 {
if x != nil {
return x.InitNoviceValue
}
return 0
}
func (x *CoinPoolSetting) GetNoviceCoinValue() int64 {
if x != nil {
return x.NoviceCoinValue
}
return 0
}
//邮件
type MessageInfo struct {
state protoimpl.MessageState
@ -6101,7 +6079,7 @@ var file_common_proto_rawDesc = []byte{
0x74, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4e, 0x75, 0x6d,
0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4e, 0x75, 0x6d,
0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
0x44, 0x61, 0x74, 0x61, 0x22, 0xfd, 0x04, 0x0a, 0x0f, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6f, 0x6f,
0x44, 0x61, 0x74, 0x61, 0x22, 0x8d, 0x04, 0x0a, 0x0f, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6f, 0x6f,
0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 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, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18,
@ -6134,14 +6112,7 @@ var file_common_proto_rawDesc = []byte{
0x6c, 0x75, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x43, 0x6f, 0x69, 0x6e, 0x56,
0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x50, 0x6f,
0x6f, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74,
0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x74, 0x72, 0x6c, 0x52, 0x61, 0x74, 0x65,
0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x74, 0x72, 0x6c, 0x52, 0x61, 0x74, 0x65,
0x12, 0x28, 0x0a, 0x0f, 0x49, 0x6e, 0x69, 0x74, 0x4e, 0x6f, 0x76, 0x69, 0x63, 0x65, 0x56, 0x61,
0x6c, 0x75, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x49, 0x6e, 0x69, 0x74, 0x4e,
0x6f, 0x76, 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x4e, 0x6f,
0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x14, 0x20,
0x01, 0x28, 0x03, 0x52, 0x0f, 0x4e, 0x6f, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x56,
0x61, 0x6c, 0x75, 0x65, 0x22, 0xb5, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
0x50, 0x6f, 0x6f, 0x6c, 0x22, 0xb5, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x05, 0x52, 0x05, 0x4d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69,

View File

@ -268,13 +268,12 @@ message CoinPoolSetting{
int32 LowerOdds = 11; // 线
int32 LowerOddsMax = 12; // 线
int32 ProfitRate = 13;//
//
int64 ResetTime = 14; //
int32 Switch =15; // 0 1
//
int64 CoinValue = 16; //
int64 ProfitPool = 17; //
int32 CtrlRate = 18; //
int64 InitNoviceValue = 19; //
int64 NoviceCoinValue = 20; //
}
//
message MessageInfo {

View File

@ -7172,7 +7172,6 @@ type SACreateOrder struct {
OrderId string `protobuf:"bytes,12,opt,name=OrderId,proto3" json:"OrderId,omitempty"`
Ts int64 `protobuf:"varint,13,opt,name=Ts,proto3" json:"Ts,omitempty"`
ExchangeOrderId string `protobuf:"bytes,14,opt,name=ExchangeOrderId,proto3" json:"ExchangeOrderId,omitempty"` //兑换订单号
Channel string `protobuf:"bytes,15,opt,name=Channel,proto3" json:"Channel,omitempty"` // 渠道
}
func (x *SACreateOrder) Reset() {
@ -7305,13 +7304,6 @@ func (x *SACreateOrder) GetExchangeOrderId() string {
return ""
}
func (x *SACreateOrder) GetChannel() string {
if x != nil {
return x.Channel
}
return ""
}
type ASCreateOrder struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@ -9143,7 +9135,7 @@ var file_webapi_proto_rawDesc = []byte{
0x79, 0x65, 0x72, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x21, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x61,
0x67, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x03, 0x54, 0x61, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73,
0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0xbd, 0x03, 0x0a,
0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0xa3, 0x03, 0x0a,
0x0d, 0x53, 0x41, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x12,
0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e,
0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01,
@ -9170,113 +9162,111 @@ var file_webapi_proto_rawDesc = []byte{
0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x54, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x45, 0x78, 0x63, 0x68,
0x61, 0x6e, 0x67, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28,
0x09, 0x52, 0x0f, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72,
0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x0f, 0x20,
0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0x45, 0x0a, 0x0d,
0x41, 0x53, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x10, 0x0a,
0x03, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x54, 0x61, 0x67, 0x12,
0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73,
0x67, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
0x55, 0x72, 0x6c, 0x22, 0x54, 0x0a, 0x12, 0x53, 0x41, 0x57, 0x65, 0x62, 0x41, 0x50, 0x49, 0x53,
0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x61, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72,
0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d,
0x73, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x42, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x06, 0x43, 0x42, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18,
0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x54, 0x73, 0x22, 0x66, 0x0a, 0x12, 0x41, 0x53, 0x57,
0x49, 0x64, 0x22, 0x45, 0x0a, 0x0d, 0x41, 0x53, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72,
0x64, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
0x52, 0x03, 0x54, 0x61, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x72, 0x6c, 0x18, 0x03,
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x72, 0x6c, 0x22, 0x54, 0x0a, 0x12, 0x53, 0x41, 0x57,
0x65, 0x62, 0x41, 0x50, 0x49, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x61, 0x73, 0x73, 0x12,
0x1c, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01,
0x28, 0x05, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a,
0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45,
0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x22, 0x5f, 0x0a, 0x11, 0x41, 0x53, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x50,
0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64,
0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x14, 0x0a, 0x05,
0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61,
0x74, 0x65, 0x22, 0x48, 0x0a, 0x11, 0x53, 0x41, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b,
0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x61,
0x67, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x03, 0x54, 0x61, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73,
0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x1e, 0x0a, 0x0a,
0x41, 0x53, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73,
0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x41, 0x0a, 0x0a,
0x53, 0x41, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x03, 0x54, 0x61,
0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69,
0x2e, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x03, 0x54, 0x61, 0x67, 0x12, 0x10, 0x0a,
0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22,
0x7d, 0x0a, 0x09, 0x41, 0x53, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04,
0x53, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64,
0x12, 0x14, 0x0a, 0x05, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x05, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03,
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c,
0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c,
0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x44,
0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x22, 0x40,
0x0a, 0x09, 0x53, 0x41, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x6d, 0x73, 0x12, 0x21, 0x0a, 0x03, 0x54,
0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70,
0x69, 0x2e, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x03, 0x54, 0x61, 0x67, 0x12, 0x10,
0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67,
0x22, 0x85, 0x01, 0x0a, 0x13, 0x41, 0x53, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41,
0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74,
0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74,
0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d,
0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x44,
0x12, 0x14, 0x0a, 0x05, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52,
0x05, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x65, 0x6c, 0x18, 0x05, 0x20,
0x01, 0x28, 0x09, 0x52, 0x03, 0x54, 0x65, 0x6c, 0x22, 0x74, 0x0a, 0x13, 0x53, 0x41, 0x47, 0x65,
0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x12,
0x21, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x77,
0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x03, 0x54,
0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x18,
0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03,
0x4d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x4f,
0x0a, 0x0b, 0x41, 0x53, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6c, 0x12, 0x1a, 0x0a,
0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x69,
0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x10, 0x0a,
0x03, 0x54, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x54, 0x65, 0x6c, 0x22,
0x42, 0x0a, 0x0b, 0x53, 0x41, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6c, 0x12, 0x21,
0x0a, 0x03, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x77, 0x65,
0x62, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x03, 0x54, 0x61,
0x67, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
0x4d, 0x73, 0x67, 0x22, 0x22, 0x0a, 0x0e, 0x41, 0x53, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x67, 0x56,
0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x03, 0x54, 0x65, 0x6c, 0x22, 0x77, 0x0a, 0x0e, 0x53, 0x41, 0x47, 0x65, 0x74,
0x49, 0x6d, 0x67, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x21, 0x0a, 0x03, 0x54, 0x61, 0x67,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e,
0x54, 0x61, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x03, 0x54, 0x61, 0x67, 0x12, 0x1c, 0x0a, 0x09,
0x49, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x09, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f,
0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10,
0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67,
0x22, 0x40, 0x0a, 0x0e, 0x41, 0x53, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65,
0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12,
0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e,
0x69, 0x64, 0x22, 0x45, 0x0a, 0x0e, 0x53, 0x41, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x65,
0x6c, 0x65, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28,
0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x42, 0x44, 0x61, 0x74,
0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x43, 0x42, 0x44, 0x61, 0x74, 0x61, 0x12,
0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x54, 0x73, 0x22,
0x66, 0x0a, 0x12, 0x41, 0x53, 0x57, 0x65, 0x62, 0x41, 0x50, 0x49, 0x53, 0x79, 0x73, 0x74, 0x65,
0x6d, 0x50, 0x61, 0x73, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f,
0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43,
0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5f, 0x0a, 0x11, 0x41, 0x53, 0x43, 0x61, 0x6c,
0x6c, 0x62, 0x61, 0x63, 0x6b, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07,
0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4f,
0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f,
0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f,
0x72, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x48, 0x0a, 0x11, 0x53, 0x41, 0x43, 0x61,
0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a,
0x03, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62,
0x61, 0x70, 0x69, 0x2e, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x03, 0x54, 0x61, 0x67,
0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d,
0x73, 0x67, 0x22, 0x1e, 0x0a, 0x0a, 0x41, 0x53, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d,
0x73, 0x67, 0x22, 0x41, 0x0a, 0x0a, 0x53, 0x41, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
0x12, 0x21, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e,
0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x03,
0x54, 0x61, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x7d, 0x0a, 0x09, 0x41, 0x53, 0x53, 0x65, 0x6e, 0x64, 0x53,
0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18,
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x12, 0x0a, 0x04,
0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65,
0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01,
0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06,
0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79,
0x70, 0x65, 0x49, 0x44, 0x22, 0x40, 0x0a, 0x09, 0x53, 0x41, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x6d,
0x73, 0x12, 0x21, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f,
0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x52,
0x03, 0x54, 0x61, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x85, 0x01, 0x0a, 0x13, 0x41, 0x53, 0x47, 0x65, 0x74,
0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a,
0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e,
0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x16,
0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06,
0x49, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x18,
0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03,
0x54, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x54, 0x65, 0x6c, 0x22, 0x74,
0x0a, 0x13, 0x53, 0x41, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x77, 0x61, 0x72,
0x64, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01,
0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x61, 0x67, 0x43,
0x6f, 0x64, 0x65, 0x52, 0x03, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05,
0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4d, 0x6f, 0x6e,
0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
0x03, 0x4d, 0x73, 0x67, 0x22, 0x4f, 0x0a, 0x0b, 0x41, 0x53, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
0x54, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12,
0x12, 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53,
0x6e, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
0x52, 0x03, 0x54, 0x65, 0x6c, 0x22, 0x42, 0x0a, 0x0b, 0x53, 0x41, 0x55, 0x70, 0x64, 0x61, 0x74,
0x65, 0x54, 0x65, 0x6c, 0x12, 0x21, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28,
0x0e, 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x61, 0x67, 0x43, 0x6f,
0x64, 0x65, 0x52, 0x03, 0x54, 0x61, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x2a, 0xce, 0x01, 0x0a, 0x07, 0x54, 0x61,
0x67, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e,
0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12,
0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x53,
0x49, 0x47, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x50,
0x52, 0x4f, 0x54, 0x4f, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10,
0x04, 0x12, 0x12, 0x0a, 0x0e, 0x4a, 0x59, 0x42, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x45, 0x52,
0x52, 0x4f, 0x52, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x4a, 0x59, 0x42, 0x5f, 0x43, 0x4f, 0x44,
0x45, 0x5f, 0x45, 0x58, 0x49, 0x53, 0x54, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x6c, 0x61,
0x79, 0x5f, 0x4e, 0x6f, 0x74, 0x45, 0x58, 0x49, 0x53, 0x54, 0x10, 0x07, 0x12, 0x09, 0x0a, 0x05,
0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0x08, 0x12, 0x0c, 0x0a, 0x08, 0x54, 0x65, 0x6c, 0x45, 0x78,
0x69, 0x73, 0x74, 0x10, 0x09, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x0a, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x65,
0x6c, 0x4e, 0x6f, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x10, 0x0b, 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,
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x22, 0x0a, 0x0e, 0x41, 0x53, 0x47,
0x65, 0x74, 0x49, 0x6d, 0x67, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x54,
0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x54, 0x65, 0x6c, 0x22, 0x77, 0x0a,
0x0e, 0x53, 0x41, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x67, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12,
0x21, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x77,
0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x03, 0x54,
0x61, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x18,
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61,
0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28,
0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x40, 0x0a, 0x0e, 0x41, 0x53, 0x50, 0x6c, 0x61, 0x79,
0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74,
0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74,
0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x22, 0x45, 0x0a, 0x0e, 0x53, 0x41, 0x50, 0x6c,
0x61, 0x79, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x03, 0x54, 0x61,
0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69,
0x2e, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x03, 0x54, 0x61, 0x67, 0x12, 0x10, 0x0a,
0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x2a,
0xce, 0x01, 0x0a, 0x07, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55,
0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43,
0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10,
0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10,
0x03, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f,
0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x4a, 0x59, 0x42, 0x5f, 0x44,
0x41, 0x54, 0x41, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x4a,
0x59, 0x42, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x58, 0x49, 0x53, 0x54, 0x10, 0x06, 0x12,
0x11, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x79, 0x5f, 0x4e, 0x6f, 0x74, 0x45, 0x58, 0x49, 0x53, 0x54,
0x10, 0x07, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0x08, 0x12, 0x0c, 0x0a,
0x08, 0x54, 0x65, 0x6c, 0x45, 0x78, 0x69, 0x73, 0x74, 0x10, 0x09, 0x12, 0x13, 0x0a, 0x0f, 0x41,
0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x0a,
0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x65, 0x6c, 0x4e, 0x6f, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x10, 0x0b,
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 (

View File

@ -797,7 +797,6 @@ message SACreateOrder {
string OrderId = 12;
int64 Ts = 13;
string ExchangeOrderId = 14; //
string Channel = 15; //
}
message ASCreateOrder {
int32 Tag = 1; //0. 1.

View File

@ -33,8 +33,6 @@ const (
OpResultCode_OPRC_BindSelf OpResultCode = 6 // 邀请人不能是自己
OpResultCode_OPRC_MyInvite OpResultCode = 7 // 邀请人不能是我邀请的人
OpResultCode_OPRC_NotExist OpResultCode = 8 // 邀请人不存在
OpResultCode_OPRC_DiamondLess OpResultCode = 9 // 钻石不足
OpResultCode_OPRC_PigbankNotFull OpResultCode = 10 // 存钱罐未满
)
// Enum value maps for OpResultCode.
@ -49,8 +47,6 @@ var (
6: "OPRC_BindSelf",
7: "OPRC_MyInvite",
8: "OPRC_NotExist",
9: "OPRC_DiamondLess",
10: "OPRC_PigbankNotFull",
}
OpResultCode_value = map[string]int32{
"OPRC_Sucess": 0,
@ -62,8 +58,6 @@ var (
"OPRC_BindSelf": 6,
"OPRC_MyInvite": 7,
"OPRC_NotExist": 8,
"OPRC_DiamondLess": 9,
"OPRC_PigbankNotFull": 10,
}
)
@ -127,10 +121,6 @@ const (
SPacketID_PACKET_SCInviteInfo SPacketID = 2903 //邀请信息
SPacketID_PACKET_CSBindInvite SPacketID = 2904 //绑定邀请人
SPacketID_PACKET_SCBindInvite SPacketID = 2905 //绑定邀请人
SPacketID_PACKET_CSPigbankGetInfo SPacketID = 2910 // 存钱罐信息获取
SPacketID_PACKET_SCPigbankGetInfo SPacketID = 2911 // 存钱罐信息获取
SPacketID_PACKET_CSPigbankTakeCoin SPacketID = 2912 // 存钱罐领取金币
SPacketID_PACKET_SCPigbankTakeCoin SPacketID = 2913 // 存钱罐领取金币
)
// Enum value maps for SPacketID.
@ -163,10 +153,6 @@ var (
2903: "PACKET_SCInviteInfo",
2904: "PACKET_CSBindInvite",
2905: "PACKET_SCBindInvite",
2910: "PACKET_CSPigbankGetInfo",
2911: "PACKET_SCPigbankGetInfo",
2912: "PACKET_CSPigbankTakeCoin",
2913: "PACKET_SCPigbankTakeCoin",
}
SPacketID_value = map[string]int32{
"PACKET_SHOP_ZERO": 0,
@ -196,10 +182,6 @@ var (
"PACKET_SCInviteInfo": 2903,
"PACKET_CSBindInvite": 2904,
"PACKET_SCBindInvite": 2905,
"PACKET_CSPigbankGetInfo": 2910,
"PACKET_SCPigbankGetInfo": 2911,
"PACKET_CSPigbankTakeCoin": 2912,
"PACKET_SCPigbankTakeCoin": 2913,
}
)
@ -2138,248 +2120,6 @@ func (x *SCBindInvite) GetOpRetCode() OpResultCode {
return OpResultCode_OPRC_Sucess
}
// 存钱罐信息
//PACKET_CSPigbankGetInfo
type CSPigbankGetInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *CSPigbankGetInfo) Reset() {
*x = CSPigbankGetInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_welfare_proto_msgTypes[32]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CSPigbankGetInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CSPigbankGetInfo) ProtoMessage() {}
func (x *CSPigbankGetInfo) ProtoReflect() protoreflect.Message {
mi := &file_welfare_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 CSPigbankGetInfo.ProtoReflect.Descriptor instead.
func (*CSPigbankGetInfo) Descriptor() ([]byte, []int) {
return file_welfare_proto_rawDescGZIP(), []int{32}
}
// 存钱罐信息
//PACKET_SCPigbankGetInfo
type SCPigbankGetInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=welfare.OpResultCode" json:"OpRetCode,omitempty"` //结果
BankCoin int64 `protobuf:"varint,2,opt,name=BankCoin,proto3" json:"BankCoin,omitempty"` // 当前已存金额
TakeTimes int32 `protobuf:"varint,3,opt,name=TakeTimes,proto3" json:"TakeTimes,omitempty"` // 领取次数
CostDiamond int64 `protobuf:"varint,4,opt,name=CostDiamond,proto3" json:"CostDiamond,omitempty"` // 耗费钻石
BankMaxCoin int64 `protobuf:"varint,5,opt,name=BankMaxCoin,proto3" json:"BankMaxCoin,omitempty"` // 存钱罐最储存值
}
func (x *SCPigbankGetInfo) Reset() {
*x = SCPigbankGetInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_welfare_proto_msgTypes[33]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SCPigbankGetInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SCPigbankGetInfo) ProtoMessage() {}
func (x *SCPigbankGetInfo) ProtoReflect() protoreflect.Message {
mi := &file_welfare_proto_msgTypes[33]
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 SCPigbankGetInfo.ProtoReflect.Descriptor instead.
func (*SCPigbankGetInfo) Descriptor() ([]byte, []int) {
return file_welfare_proto_rawDescGZIP(), []int{33}
}
func (x *SCPigbankGetInfo) GetOpRetCode() OpResultCode {
if x != nil {
return x.OpRetCode
}
return OpResultCode_OPRC_Sucess
}
func (x *SCPigbankGetInfo) GetBankCoin() int64 {
if x != nil {
return x.BankCoin
}
return 0
}
func (x *SCPigbankGetInfo) GetTakeTimes() int32 {
if x != nil {
return x.TakeTimes
}
return 0
}
func (x *SCPigbankGetInfo) GetCostDiamond() int64 {
if x != nil {
return x.CostDiamond
}
return 0
}
func (x *SCPigbankGetInfo) GetBankMaxCoin() int64 {
if x != nil {
return x.BankMaxCoin
}
return 0
}
// 存钱罐领取金币
//PACKET_CSPigbankTakeCoin
type CSPigbankTakeCoin struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *CSPigbankTakeCoin) Reset() {
*x = CSPigbankTakeCoin{}
if protoimpl.UnsafeEnabled {
mi := &file_welfare_proto_msgTypes[34]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CSPigbankTakeCoin) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CSPigbankTakeCoin) ProtoMessage() {}
func (x *CSPigbankTakeCoin) ProtoReflect() protoreflect.Message {
mi := &file_welfare_proto_msgTypes[34]
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 CSPigbankTakeCoin.ProtoReflect.Descriptor instead.
func (*CSPigbankTakeCoin) Descriptor() ([]byte, []int) {
return file_welfare_proto_rawDescGZIP(), []int{34}
}
// 存钱罐领取金币
//PACKET_SCPigbankTakeCoin
type SCPigbankTakeCoin struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
OpRetCode OpResultCode `protobuf:"varint,1,opt,name=OpRetCode,proto3,enum=welfare.OpResultCode" json:"OpRetCode,omitempty"` // 结果
TakeCoinNum int64 `protobuf:"varint,2,opt,name=TakeCoinNum,proto3" json:"TakeCoinNum,omitempty"` // 领取金币数量
TakeTimes int32 `protobuf:"varint,3,opt,name=TakeTimes,proto3" json:"TakeTimes,omitempty"` // 领取次数
CostDiamond int64 `protobuf:"varint,4,opt,name=CostDiamond,proto3" json:"CostDiamond,omitempty"` // 耗费钻石
BankMaxCoin int64 `protobuf:"varint,5,opt,name=BankMaxCoin,proto3" json:"BankMaxCoin,omitempty"` // 存钱罐最储存值
}
func (x *SCPigbankTakeCoin) Reset() {
*x = SCPigbankTakeCoin{}
if protoimpl.UnsafeEnabled {
mi := &file_welfare_proto_msgTypes[35]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SCPigbankTakeCoin) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SCPigbankTakeCoin) ProtoMessage() {}
func (x *SCPigbankTakeCoin) ProtoReflect() protoreflect.Message {
mi := &file_welfare_proto_msgTypes[35]
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 SCPigbankTakeCoin.ProtoReflect.Descriptor instead.
func (*SCPigbankTakeCoin) Descriptor() ([]byte, []int) {
return file_welfare_proto_rawDescGZIP(), []int{35}
}
func (x *SCPigbankTakeCoin) GetOpRetCode() OpResultCode {
if x != nil {
return x.OpRetCode
}
return OpResultCode_OPRC_Sucess
}
func (x *SCPigbankTakeCoin) GetTakeCoinNum() int64 {
if x != nil {
return x.TakeCoinNum
}
return 0
}
func (x *SCPigbankTakeCoin) GetTakeTimes() int32 {
if x != nil {
return x.TakeTimes
}
return 0
}
func (x *SCPigbankTakeCoin) GetCostDiamond() int64 {
if x != nil {
return x.CostDiamond
}
return 0
}
func (x *SCPigbankTakeCoin) GetBankMaxCoin() int64 {
if x != nil {
return x.BankMaxCoin
}
return 0
}
var File_welfare_proto protoreflect.FileDescriptor
var file_welfare_proto_rawDesc = []byte{
@ -2576,35 +2316,7 @@ var file_welfare_proto_rawDesc = []byte{
0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
0x32, 0x15, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 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, 0x12, 0x0a, 0x10, 0x43, 0x53, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x47,
0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xc5, 0x01, 0x0a, 0x10, 0x53, 0x43, 0x50, 0x69, 0x67,
0x62, 0x61, 0x6e, 0x6b, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x33, 0x0a, 0x09, 0x4f,
0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15,
0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c,
0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65,
0x12, 0x1a, 0x0a, 0x08, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01,
0x28, 0x03, 0x52, 0x08, 0x42, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09,
0x54, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52,
0x09, 0x54, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f,
0x73, 0x74, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52,
0x0b, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x20, 0x0a, 0x0b,
0x42, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28,
0x03, 0x52, 0x0b, 0x42, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x13,
0x0a, 0x11, 0x43, 0x53, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x6b, 0x65, 0x43,
0x6f, 0x69, 0x6e, 0x22, 0xcc, 0x01, 0x0a, 0x11, 0x53, 0x43, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e,
0x6b, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x33, 0x0a, 0x09, 0x4f, 0x70, 0x52,
0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x77,
0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43,
0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20,
0x0a, 0x0b, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20,
0x01, 0x28, 0x03, 0x52, 0x0b, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x4e, 0x75, 0x6d,
0x12, 0x1c, 0x0a, 0x09, 0x54, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20,
0x01, 0x28, 0x05, 0x52, 0x09, 0x54, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x20,
0x0a, 0x0b, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x04, 0x20,
0x01, 0x28, 0x03, 0x52, 0x0b, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64,
0x12, 0x20, 0x0a, 0x0b, 0x42, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x18,
0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x78, 0x43, 0x6f,
0x69, 0x6e, 0x2a, 0xe7, 0x01, 0x0a, 0x0c, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43,
0x64, 0x65, 0x2a, 0xb8, 0x01, 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, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x6f, 0x54,
@ -2615,74 +2327,64 @@ var file_welfare_proto_rawDesc = []byte{
0x6e, 0x64, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x69, 0x6e,
0x64, 0x53, 0x65, 0x6c, 0x66, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x50, 0x52, 0x43, 0x5f,
0x4d, 0x79, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x50,
0x52, 0x43, 0x5f, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x10, 0x08, 0x12, 0x14, 0x0a,
0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4c, 0x65, 0x73,
0x73, 0x10, 0x09, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x69, 0x67, 0x62,
0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x10, 0x0a, 0x2a, 0xcd, 0x07, 0x0a,
0x09, 0x53, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x41,
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x48, 0x4f, 0x50, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00,
0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45,
0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x52, 0x45, 0x4c, 0x49, 0x45, 0x46, 0x46, 0x55, 0x4e, 0x44,
0x10, 0x94, 0x14, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43,
0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x52, 0x45, 0x4c, 0x49, 0x45, 0x46, 0x46,
0x55, 0x4e, 0x44, 0x10, 0x95, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x54, 0x55, 0x52, 0x4e,
0x50, 0x4c, 0x41, 0x54, 0x45, 0x10, 0x96, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b,
0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x54, 0x55,
0x52, 0x4e, 0x50, 0x4c, 0x41, 0x54, 0x45, 0x10, 0x97, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41,
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54,
0x41, 0x44, 0x44, 0x55, 0x50, 0x53, 0x49, 0x47, 0x4e, 0x10, 0x98, 0x14, 0x12, 0x20, 0x0a, 0x1b,
0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47,
0x45, 0x54, 0x41, 0x44, 0x44, 0x55, 0x50, 0x53, 0x49, 0x47, 0x4e, 0x10, 0x99, 0x14, 0x12, 0x1f,
0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46,
0x5f, 0x57, 0x45, 0x4c, 0x46, 0x41, 0x52, 0x45, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x9a, 0x14, 0x12,
0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c,
0x46, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x41, 0x52, 0x45, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x9b, 0x14,
0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45,
0x4c, 0x46, 0x5f, 0x42, 0x4c, 0x49, 0x4e, 0x42, 0x4f, 0x58, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x9c,
0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57,
0x52, 0x43, 0x5f, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x10, 0x08, 0x2a, 0xd3, 0x06,
0x0a, 0x09, 0x53, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x10, 0x50,
0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x48, 0x4f, 0x50, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10,
0x00, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57,
0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x52, 0x45, 0x4c, 0x49, 0x45, 0x46, 0x46, 0x55, 0x4e,
0x44, 0x10, 0x94, 0x14, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53,
0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x52, 0x45, 0x4c, 0x49, 0x45, 0x46,
0x46, 0x55, 0x4e, 0x44, 0x10, 0x95, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45,
0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x54, 0x55, 0x52,
0x4e, 0x50, 0x4c, 0x41, 0x54, 0x45, 0x10, 0x96, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43,
0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x54,
0x55, 0x52, 0x4e, 0x50, 0x4c, 0x41, 0x54, 0x45, 0x10, 0x97, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50,
0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45,
0x54, 0x41, 0x44, 0x44, 0x55, 0x50, 0x53, 0x49, 0x47, 0x4e, 0x10, 0x98, 0x14, 0x12, 0x20, 0x0a,
0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f,
0x47, 0x45, 0x54, 0x41, 0x44, 0x44, 0x55, 0x50, 0x53, 0x49, 0x47, 0x4e, 0x10, 0x99, 0x14, 0x12,
0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c,
0x46, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x41, 0x52, 0x45, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x9a, 0x14,
0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45,
0x4c, 0x46, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x41, 0x52, 0x45, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x9b,
0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57,
0x45, 0x4c, 0x46, 0x5f, 0x42, 0x4c, 0x49, 0x4e, 0x42, 0x4f, 0x58, 0x49, 0x4e, 0x46, 0x4f, 0x10,
0x9d, 0x14, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f,
0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x42, 0x4c, 0x49, 0x4e, 0x42, 0x4f, 0x58, 0x10,
0x9e, 0x14, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f,
0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x42, 0x4c, 0x49, 0x4e, 0x42, 0x4f, 0x58, 0x10,
0x9f, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f,
0x57, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x50, 0x41, 0x59, 0x49, 0x4e, 0x46,
0x4f, 0x10, 0xa0, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53,
0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x50, 0x41, 0x59, 0x49,
0x4e, 0x46, 0x4f, 0x10, 0xa1, 0x14, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x50, 0x41,
0x59, 0x10, 0xa2, 0x14, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53,
0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x50, 0x41, 0x59, 0x10,
0xa3, 0x14, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f,
0x57, 0x45, 0x4c, 0x46, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x49, 0x4e, 0x50, 0x41, 0x59, 0x49, 0x4e,
0x46, 0x4f, 0x10, 0xa4, 0x14, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x49, 0x4e, 0x50, 0x41,
0x59, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xa5, 0x14, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b,
0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x49,
0x4e, 0x50, 0x41, 0x59, 0x10, 0xa6, 0x14, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45,
0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x49, 0x4e,
0x50, 0x41, 0x59, 0x10, 0xa7, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
0x5f, 0x43, 0x53, 0x57, 0x65, 0x6c, 0x66, 0x52, 0x65, 0x6c, 0x69, 0x65, 0x66, 0x10, 0xd4, 0x16,
0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x57, 0x65, 0x6c,
0x66, 0x52, 0x65, 0x6c, 0x69, 0x65, 0x66, 0x10, 0xd5, 0x16, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41,
0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x66,
0x6f, 0x10, 0xd6, 0x16, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53,
0x43, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xd7, 0x16, 0x12, 0x18,
0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x42, 0x69, 0x6e, 0x64, 0x49,
0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, 0xd8, 0x16, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b,
0x45, 0x54, 0x5f, 0x53, 0x43, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10,
0xd9, 0x16, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x50,
0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xde, 0x16,
0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x50, 0x69, 0x67,
0x62, 0x61, 0x6e, 0x6b, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xdf, 0x16, 0x12, 0x1d,
0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x50, 0x69, 0x67, 0x62, 0x61,
0x6e, 0x6b, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0xe0, 0x16, 0x12, 0x1d, 0x0a,
0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e,
0x6b, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0xe1, 0x16, 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, 0x77, 0x65,
0x6c, 0x66, 0x61, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x9c, 0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f,
0x57, 0x45, 0x4c, 0x46, 0x5f, 0x42, 0x4c, 0x49, 0x4e, 0x42, 0x4f, 0x58, 0x49, 0x4e, 0x46, 0x4f,
0x10, 0x9d, 0x14, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53,
0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x42, 0x4c, 0x49, 0x4e, 0x42, 0x4f, 0x58,
0x10, 0x9e, 0x14, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43,
0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x47, 0x45, 0x54, 0x42, 0x4c, 0x49, 0x4e, 0x42, 0x4f, 0x58,
0x10, 0x9f, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53,
0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x50, 0x41, 0x59, 0x49, 0x4e,
0x46, 0x4f, 0x10, 0xa0, 0x14, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x50, 0x41, 0x59,
0x49, 0x4e, 0x46, 0x4f, 0x10, 0xa1, 0x14, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45,
0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x50,
0x41, 0x59, 0x10, 0xa2, 0x14, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x50, 0x41, 0x59,
0x10, 0xa3, 0x14, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53,
0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x49, 0x4e, 0x50, 0x41, 0x59, 0x49,
0x4e, 0x46, 0x4f, 0x10, 0xa4, 0x14, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x49, 0x4e, 0x50,
0x41, 0x59, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xa5, 0x14, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43,
0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x43, 0x4f, 0x4e, 0x54,
0x49, 0x4e, 0x50, 0x41, 0x59, 0x10, 0xa6, 0x14, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b,
0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x57, 0x45, 0x4c, 0x46, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x49,
0x4e, 0x50, 0x41, 0x59, 0x10, 0xa7, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45,
0x54, 0x5f, 0x43, 0x53, 0x57, 0x65, 0x6c, 0x66, 0x52, 0x65, 0x6c, 0x69, 0x65, 0x66, 0x10, 0xd4,
0x16, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x57, 0x65,
0x6c, 0x66, 0x52, 0x65, 0x6c, 0x69, 0x65, 0x66, 0x10, 0xd5, 0x16, 0x12, 0x18, 0x0a, 0x13, 0x50,
0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e,
0x66, 0x6f, 0x10, 0xd6, 0x16, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
0x53, 0x43, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xd7, 0x16, 0x12,
0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x42, 0x69, 0x6e, 0x64,
0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, 0xd8, 0x16, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43,
0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65,
0x10, 0xd9, 0x16, 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, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x33,
}
var (
@ -2698,7 +2400,7 @@ func file_welfare_proto_rawDescGZIP() []byte {
}
var file_welfare_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_welfare_proto_msgTypes = make([]protoimpl.MessageInfo, 36)
var file_welfare_proto_msgTypes = make([]protoimpl.MessageInfo, 32)
var file_welfare_proto_goTypes = []interface{}{
(OpResultCode)(0), // 0: welfare.OpResultCode
(SPacketID)(0), // 1: welfare.SPacketID
@ -2734,10 +2436,6 @@ var file_welfare_proto_goTypes = []interface{}{
(*SCInviteInfo)(nil), // 31: welfare.SCInviteInfo
(*CSBindInvite)(nil), // 32: welfare.CSBindInvite
(*SCBindInvite)(nil), // 33: welfare.SCBindInvite
(*CSPigbankGetInfo)(nil), // 34: welfare.CSPigbankGetInfo
(*SCPigbankGetInfo)(nil), // 35: welfare.SCPigbankGetInfo
(*CSPigbankTakeCoin)(nil), // 36: welfare.CSPigbankTakeCoin
(*SCPigbankTakeCoin)(nil), // 37: welfare.SCPigbankTakeCoin
}
var file_welfare_proto_depIdxs = []int32{
0, // 0: welfare.SCGetReliefFund.OpRetCode:type_name -> welfare.OpResultCode
@ -2762,13 +2460,11 @@ var file_welfare_proto_depIdxs = []int32{
19, // 19: welfare.SCWelfareContinuousPayData.List:type_name -> welfare.WelfareSpree
0, // 20: welfare.SCWelfareContinuousPay.OpRetCode:type_name -> welfare.OpResultCode
0, // 21: welfare.SCBindInvite.OpRetCode:type_name -> welfare.OpResultCode
0, // 22: welfare.SCPigbankGetInfo.OpRetCode:type_name -> welfare.OpResultCode
0, // 23: welfare.SCPigbankTakeCoin.OpRetCode:type_name -> welfare.OpResultCode
24, // [24:24] is the sub-list for method output_type
24, // [24:24] is the sub-list for method input_type
24, // [24:24] is the sub-list for extension type_name
24, // [24:24] is the sub-list for extension extendee
0, // [0:24] is the sub-list for field type_name
22, // [22:22] is the sub-list for method output_type
22, // [22:22] is the sub-list for method input_type
22, // [22:22] is the sub-list for extension type_name
22, // [22:22] is the sub-list for extension extendee
0, // [0:22] is the sub-list for field type_name
}
func init() { file_welfare_proto_init() }
@ -3161,54 +2857,6 @@ func file_welfare_proto_init() {
return nil
}
}
file_welfare_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CSPigbankGetInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_welfare_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SCPigbankGetInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_welfare_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CSPigbankTakeCoin); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_welfare_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SCPigbankTakeCoin); 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{
@ -3216,7 +2864,7 @@ func file_welfare_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_welfare_proto_rawDesc,
NumEnums: 2,
NumMessages: 36,
NumMessages: 32,
NumExtensions: 0,
NumServices: 0,
},

View File

@ -12,9 +12,6 @@ enum OpResultCode {
OPRC_BindSelf = 6; //
OPRC_MyInvite = 7; //
OPRC_NotExist = 8; //
OPRC_DiamondLess = 9; //
OPRC_PigbankNotFull = 10; //
}
//
enum SPacketID {
@ -48,11 +45,6 @@ enum SPacketID {
PACKET_SCInviteInfo = 2903;//
PACKET_CSBindInvite = 2904;//
PACKET_SCBindInvite = 2905;//
PACKET_CSPigbankGetInfo = 2910;//
PACKET_SCPigbankGetInfo = 2911;//
PACKET_CSPigbankTakeCoin = 2912;//
PACKET_SCPigbankTakeCoin = 2913;//
}
//
@ -263,34 +255,3 @@ message CSBindInvite{
message SCBindInvite{
OpResultCode OpRetCode = 1; //
}
//
//PACKET_CSPigbankGetInfo
message CSPigbankGetInfo{
}
//
//PACKET_SCPigbankGetInfo
message SCPigbankGetInfo{
OpResultCode OpRetCode = 1; //
int64 BankCoin = 2; //
int32 TakeTimes = 3; //
int64 CostDiamond = 4; //
int64 BankMaxCoin = 5; //
}
//
//PACKET_CSPigbankTakeCoin
message CSPigbankTakeCoin{
}
//
//PACKET_SCPigbankTakeCoin
message SCPigbankTakeCoin{
OpResultCode OpRetCode = 1; //
int64 TakeCoinNum = 2; //
int32 TakeTimes = 3; //
int64 CostDiamond = 4; //
int64 BankMaxCoin = 5; //
}

2
public

@ -1 +1 @@
Subproject commit a7fc5af077865e1daf27c8e04ff3247aa643a815
Subproject commit b069a50a51c0cdcdc46071062cfb711bc1398cb3

View File

@ -24,8 +24,6 @@ func init() {
com.Register(int(rankproto.Rank_PACKET_CSInviteLog), rankproto.CSInviteLog{}, CSInviteLog)
// 收入榜
com.Register(int(rankproto.Rank_PACKET_RANK_CSWinCoin), rankproto.CSWinCoin{}, CSWinCoin)
//等级榜
com.Register(int(rankproto.Rank_PACKET_RANK_CSLevel), rankproto.CSPlayerLevelRank{}, CSPlayerLevelRank)
}
func CSRankMatch(s *netlib.Session, d *rankproto.GateTransmit, packetId int, data interface{}, sid int64) error {
@ -383,97 +381,3 @@ func CSWinCoin(s *netlib.Session, d *rankproto.GateTransmit, packetId int, data
})
return nil
}
// 玩家等级榜
func CSPlayerLevelRank(s *netlib.Session, d *rankproto.GateTransmit, packetId int, data interface{}, sid int64) error {
logger.Logger.Trace("CSPlayerLevelRank data:", data)
msg, ok := data.(*rankproto.CSPlayerLevelRank)
if !ok {
return nil
}
ret := &rankproto.SCPlayerLevelRank{}
var ranks []*rankproto.PlayerLevelRankInfo
var me *rankproto.PlayerLevelRankInfo
send := func() {
ret.Ranks = ranks
ret.Me = me
common.SendToGate(sid, int(rankproto.Rank_PACKET_RANK_SCLevel), ret, s)
logger.Logger.Tracef("SCWinCoin: %v", ret)
}
rank.PlayerLevelMgrInstance.Take(d.Platform, 0, func(list []*model.PlayerLevelInfo, err error) {
if err != nil {
logger.Logger.Errorf("CSPlayerLevelRank error: %v", err)
return
}
start, end := com.SkipLimitToStartEnd(msg.GetSkip(), msg.GetLimit(), len(list))
ret.Skip = start
ret.Limit = msg.GetLimit()
var i int32
for _, v := range list[start:end] {
r := &rankproto.PlayerLevelRankInfo{
SnId: v.SnId,
Name: v.Name,
Level: v.Level,
ModId: v.ModId,
Rank: i,
}
ranks = append(ranks, r)
i++
if v.SnId == d.Snid {
me = r
}
}
if len(list) > 0 && me == nil {
for k, v := range list {
if v.SnId == d.Snid {
me = &rankproto.PlayerLevelRankInfo{
SnId: v.SnId,
Name: v.Name,
Level: v.Level,
Rank: int32(k),
ModId: v.ModId,
}
break
}
}
}
if me == nil {
var err error
var ret *model.FindPlayerLevelReply
task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
startTs, endTs := rank.StartEndTs()
ret, err = model.FindPlayerLevel(&model.FindPlayerLevelArgs{
Platform: d.Platform,
StartTs: startTs,
EndTs: endTs,
SnId: d.Snid,
})
if err != nil {
logger.Logger.Errorf("FindWinCoinTienlen error: %v", err)
}
return nil
}), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) {
if err == nil && ret.List != nil {
me = &rankproto.PlayerLevelRankInfo{
SnId: ret.List.SnId,
Name: ret.List.Name,
Rank: -1,
Level: ret.List.Level,
ModId: ret.List.ModId,
}
}
send()
})).Start()
} else {
send()
}
})
return nil
}

View File

@ -1,22 +0,0 @@
package rank
import (
"mongo.games.com/game/model"
"mongo.games.com/game/ranksrv/com"
"mongo.games.com/goserver/core/logger"
)
var PlayerLevelMgrInstance = com.NewListMgr[*model.PlayerLevelInfo](
func() int64 {
return int64(model.GameParamData.RankTimeout)
},
func(platform string, index int32) ([]*model.PlayerLevelInfo, error) {
logger.Logger.Tracef("load rank player level platform:%s", platform)
list, err := model.FindPlayerLevelList(&model.FindPlayerLevelListArgs{
Platform: platform,
})
if err != nil {
return nil, err
}
return list.List, nil
})

View File

@ -2,15 +2,13 @@ package base
import (
"mongo.games.com/goserver/core"
"mongo.games.com/goserver/core/logger"
"mongo.games.com/goserver/core/netlib"
)
var Config = &Configuration{}
var Config = Configuration{}
type Configuration struct {
Count int // 机器人总数
MatchCount int // 比赛机器人总数
AppId string // appID
Connects netlib.SessionConfig // 网络连接配置
}
@ -20,10 +18,7 @@ func (this *Configuration) Name() string {
}
func (this *Configuration) Init() error {
logger.Logger.Tracef("%+v", *this)
if this.Count == 0 {
this.Count = 20
}
//logger.Logger.Tracef("%+v", *this)
return nil
}
@ -32,5 +27,5 @@ func (this *Configuration) Close() error {
}
func init() {
core.RegistePackage(Config)
core.RegistePackage(&Config)
}

View File

@ -1,58 +0,0 @@
package base
import (
"math/rand"
"mongo.games.com/game/protocol/gamehall"
"mongo.games.com/goserver/core/netlib"
)
// 机器人互动操作
const (
none = -1
weixiao_01 = iota - 1
kaixin_02
kuqi_03
nanweiren_04
aini_05
dengyan_06
ganga_07
dahan_08
fahuo_09
maren_10
mihu_11
wulianxiao_12
shuashuai_13
haixiu_14
aixin_15
buai_16
zan_17
daozan_18
woshou_19
ok_20
fo_21
)
var (
Emote1 = []int{fahuo_09, dahan_08, nanweiren_04, dengyan_06, mihu_11, none}
Emote2 = []int{weixiao_01, dengyan_06, mihu_11, mihu_11, none}
Emote3 = []int{dengyan_06, fahuo_09, ganga_07, none}
Emote4 = []int{aini_05, wulianxiao_12, shuashuai_13, none}
Emote5 = []int{shuashuai_13, wulianxiao_12, none}
)
// SendEmote 随机表情
func SendEmote(s *netlib.Session, arr []int) {
e := arr[rand.Intn(len(arr))] // 随机一个表情
if e == -1 {
return
}
pack := &gamehall.CSRoomEvent{
Tp: 2,
Content: "",
Param: []int32{int32(e)},
}
DelaySendSecond(s, int(gamehall.GameHallPacketID_PACKET_CSRoomEvent), pack, 3, 5)
}

View File

@ -21,16 +21,20 @@ type PlayerMgr struct {
playersMapSnId map[int32]*player_proto.SCPlayerData // 玩家id:玩家信息
playersSession map[int32]*netlib.Session // 非比赛场; 玩家id:session
playersMatchSession map[int32]*netlib.Session // 比赛场玩家id:session
playerEnterType bool
}
func (pm *PlayerMgr) AddPlayer(data *player_proto.SCPlayerData, s *netlib.Session) {
snid := data.GetData().GetSnId()
pm.playersMapSnId[snid] = data
if Config.Count-Config.MatchCount > len(pm.playersSession) {
pm.playersSession[snid] = s
} else {
// 给比赛场预留50%的机器人
if pm.playerEnterType {
pm.playerEnterType = false
pm.playersMatchSession[snid] = s
} else {
pm.playerEnterType = true
pm.playersSession[snid] = s
}
}

View File

@ -47,13 +47,6 @@ func (sm *SceneMgr) GetSceneDBGameFree(sceneId, gamefreeId int32) *server_proto.
return srvdata.PBDB_GameFreeMgr.GetData(gamefreeId)
}
func (sm *SceneMgr) IsFreeMode(sceneId int32) bool {
if data, exist := sm.sceneDBGameFree[sceneId]; exist {
return data.GetFreeMode() == 1
}
return false
}
// //////////////////////////////////////////////////////////////////
// / Module Implement [beg]
// //////////////////////////////////////////////////////////////////

View File

@ -8,7 +8,6 @@ import (
"mongo.games.com/game/common"
"mongo.games.com/game/gamerule/tienlen"
"mongo.games.com/game/proto"
"mongo.games.com/game/protocol/gamehall"
proto_tienlen "mongo.games.com/game/protocol/tienlen"
"mongo.games.com/game/robot/base"
"mongo.games.com/goserver/core/basic"
@ -20,15 +19,6 @@ import (
"strings"
)
func SendEmote(s *netlib.Session, scene *TienLenScene, p *TienLenPlayer, arr []int, tp int) {
if !base.SceneMgrSingleton.IsFreeMode(scene.GetRoomId()) && !scene.IsMatchScene() {
if p.EmoteTimes[tp] == 0 {
base.SendEmote(s, arr)
}
p.EmoteTimes[tp]++
}
}
type SCTienLenRoomInfoPacketFactory struct {
}
@ -89,35 +79,16 @@ func (this *SCTienLenPlayerOpHandler) Process(s *netlib.Session, packid int, pac
if int(scTienLenOp.GetOpRetCode()) == 0 {
switch scTienLenOp.GetOpCode() {
case tienlen.TienLenPlayerOpPlay:
delC := []int32{}
delCards := scTienLenOp.GetOpParam()
for _, delcard := range delCards {
for i, card := range me.Cards {
if card != tienlen.InvalideCard && card == int32(delcard) {
me.Cards[i] = tienlen.InvalideCard
delC = append(delC, card)
}
}
}
lastPlayer := scene.GetPlayerBySnid(scene.LastOpSnid)
if lastPlayer != nil && lastPlayer.IsRobot() && me.SnId != lastPlayer.GetSnId() &&
(tienlen.IsTwo(scene.LastCards) || tienlen.IsBomb(scene.LastCards, !common.IsTienLenYuLe(int(scene.GetGameId())))) {
// 机器人出2/炸弹被压制
SendEmote(base.PlayerMgrSingleton.GetPlayerSession(scene.LastOpSnid), scene, lastPlayer.(*TienLenPlayer), base.Emote1, 1)
}
scene.LastCards = delC
scene.LastOpSnid = me.SnId
me.PassTimes = 0
case tienlen.TienLenPlayerOpPass:
me.PassTimes++
if me.PassTimes >= 2 {
me.PassTimes = 0
// 机器人过牌两次
SendEmote(s, scene, me, base.Emote2, 2)
}
}
} else { //操作失败
switch scTienLenOp.GetOpCode() {
case tienlen.TienLenPlayerOpPlay: //出牌操作失败,改为过
@ -469,10 +440,6 @@ func (this *SCTienLenCurOpPosHandler) Process(s *netlib.Session, packid int, pac
exDelayTs = notExDelayTs
minS = notExDelayminS
maxS = notExDelaymaxS
if scene.FirstWinSnid == 0 {
SendEmote(s, scene, me, base.Emote5, 5)
scene.FirstWinSnid = me.SnId
}
}
base.DelaySendMillisecond(s, int(proto_tienlen.TienLenPacketID_PACKET_CSTienLenPlayerOp), packOp, []int{exDelayTs + minS, exDelayTs + maxS}...)
}
@ -606,45 +573,6 @@ func (this *SCTienLenAIHandler) Process(s *netlib.Session, packid int, pack inte
return nil
}
func SCRoomEvent(s *netlib.Session, packid int, pack interface{}) error {
logger.Logger.Tracef("SCRoomEvent %v", pack)
msg, ok := pack.(*gamehall.SCRoomEvent)
if !ok {
return nil
}
if msg.Content == "" || len(msg.Param) == 0 {
return nil
}
scene, ok := base.GetScene(s).(*TienLenScene)
if !ok {
return nil
}
p := scene.GetMe(s)
if p == nil {
return nil
}
pos, err := strconv.Atoi(msg.GetContent())
if err != nil {
return nil
}
if p.GetPos() != int32(pos) {
return nil
}
switch msg.Param[0] {
case common.ItemIDBucket, common.ItemIDSlippers:
SendEmote(s, scene, p.(*TienLenPlayer), base.Emote3, 3)
case common.ItemIDLike, common.ItemIDCoffee:
SendEmote(s, scene, p.(*TienLenPlayer), base.Emote4, 3)
}
return nil
}
func init() {
//SCTienLenRoomInfo
netlib.RegisterHandler(int(proto_tienlen.TienLenPacketID_PACKET_SCTienLenRoomInfo), &SCTienLenRoomInfoHandler{})
@ -670,6 +598,4 @@ func init() {
//SCTienLenAIData
netlib.RegisterHandler(int(proto_tienlen.TienLenPacketID_PACKET_SCTienLenAI), &SCTienLenAIHandler{})
netlib.RegisterFactory(int(proto_tienlen.TienLenPacketID_PACKET_SCTienLenAI), &SCTienLenAIPacketFactory{})
// SCRoomEvent
netlib.Register(int(gamehall.GameHallPacketID_PACKET_SCRoomEvent), gamehall.SCRoomEvent{}, SCRoomEvent)
}

View File

@ -13,15 +13,10 @@ type TienLenPlayer struct {
base.BasePlayer
*proto_tienlen.TienLenPlayerData
data *tienlenApi.PredictRequest
PassTimes int
EmoteTimes map[int]int // 事件触发次数
}
func NewTienLenPlayer(data *proto_tienlen.TienLenPlayerData) *TienLenPlayer {
p := &TienLenPlayer{
TienLenPlayerData: data,
EmoteTimes: make(map[int]int),
}
p := &TienLenPlayer{TienLenPlayerData: data}
p.Init()
return p
}
@ -31,8 +26,7 @@ func (p *TienLenPlayer) Init() {
}
func (p *TienLenPlayer) Clear() {
p.PassTimes = 0
p.EmoteTimes = make(map[int]int)
}
func (p *TienLenPlayer) MarkFlag(flag int32) {

View File

@ -14,9 +14,6 @@ type TienLenScene struct {
base.BaseScene
*proto_tienlen.SCTienLenRoomInfo
players map[int32]*TienLenPlayer
LastCards []int32 // 上一个机器人出的牌
LastOpSnid int32 // 上一个出牌的机器人
FirstWinSnid int32 // 第一个出完牌的玩家id
}
type filterFunc func(*TienLenScene, *TienLenPlayer, []int32, []int32, []int32, bool) (bool, []int32)
@ -50,7 +47,6 @@ func (s *TienLenScene) GetIsAllAi() bool {
return i == 4
}
func (s *TienLenScene) Clear() {
s.FirstWinSnid = 0
for _, p := range s.players {
p.Clear()
}

23
shell/build.sh Normal file
View File

@ -0,0 +1,23 @@
#!/bin/bash
workDir=""
cd $workDir
# 编译
cd ../dbproxy
go build
cd ../mgrsrv
go build
cd ../gatesrv
go build
cd ../worldsrv
go build
cd ../gamesrv
go build
cd ../robot
go build

11
shell/build_copy.sh Normal file
View File

@ -0,0 +1,11 @@
#!/bin/bash
targetDir="/home/win88"
targetPrefix="win88"
#cp -f ../dbproxy targetDir/dbproxy/$targetPrefix_dbproxy
#cp -f ../mgrsrv targetDir/mgrsrv/$targetPrefix_mgrsrv
#cp -f ../gatesrv targetDir/gatesrv/$targetPrefix_gatesrv
cp -f ../worldsrv targetDir/worldsrv/$targetPrefix_worldsrv
cp -f ../gamesrv targetDir/gamesrv/$targetPrefix_gamesrv
cp -f ../robot targetDir/robot/$targetPrefix_robot

37
shell/close.sh Normal file
View File

@ -0,0 +1,37 @@
#!/bin/bash
workDir="/home/win88"
pkill -9 win88_gatesrv
pkill -9 win88_mgrsrv
pkill -9 win88_robot
pkill -2 win88_gamesrv
echo "================ gamesrv ==================="
echo "check gamesrv srv close state"
ps -ef | grep "win88"
echo "try close gamesrv..."
tail -f workDirgamesrv/all.log | awk '/shutdown/ {if(NR%10==0) {exit}; print}'
echo "Kill gamesrv"
pkill -2 win88_worldsrv
echo "================ worldsrv ==================="
echo "check worldsrv srv close state"
ps -ef | grep "win88"
echo "try close worldsrv..."
tail -f worldsrv/all.log | awk '/shutdown/ {if(NR%20==0) {exit}; print}'
echo "Kill worldsrv"
pkill -2 win88_dbproxy
echo "================ dbproxy ==================="
echo "check dbproxy srv close state"
ps -ef | grep "win88"
echo "try close dbproxy..."
tail -f dbproxy/all.log | awk '/shutdown/ {if(NR%1==0) {exit}; print}'
echo "Kill dbproxy"
pkill -9 win88_gamesrv
pkill -9 win88_worldsrv
pkill -9 win88_dbproxy
echo "check srv close state"
ps -ef | grep "win88"

22
shell/start.sh Normal file
View File

@ -0,0 +1,22 @@
#!/bin/bash
workDir="/home/win88"
cd $workDir
cd dbproxy
nohup ./win88_dbproxy >/dev/null &
cd $workDir/mgrsrv
nohup ./win88_mgrsrv >/dev/null &
cd $workDir/gatesrv
nohup ./win88_gatesrv >/dev/null &
cd $workDir/gamesrv
nohup ./win88_gamesrv >/dev/null &
cd $workDir/worldsrv
nohup ./win88_worldsrv >/dev/null &
echo "启动完毕 等待3秒 启动AI."
sleep 3
cd $workDir/robot
nohup ./win88_robot >/dev/null &
echo "check srv states..."
ps -ef | grep win88

View File

@ -2,10 +2,6 @@ package srvdata
import "encoding/json"
func init() {
DataMgr.RegisterLoader("DB_ClientVer.dat", ClientVersSingeton)
}
type ClientVer struct {
MinApkVer int32
LatestApkVer int32
@ -23,16 +19,6 @@ type ClientVers struct {
gameVers map[string]map[string]ClientVer
}
func (c *ClientVers) Load(fileFullPath string) error {
updateClientVers()
return nil
}
func (c *ClientVers) Reload(fileFullPath string) error {
updateClientVers()
return nil
}
func updateClientVers() error {
packVers := make(map[string]map[string]ClientVer)
gameVers := make(map[string]map[string]ClientVer)

View File

@ -22,12 +22,39 @@ func (fmc *DatFileModifiedCommand) Done(o *basic.Object) error {
logger.Logger.Info("modified file name ======", fn)
// loader
for k, v := range DataMgr.GetLoader(fn) {
loader := DataMgr.GetLoader(fn)
if loader != nil {
err := loader.Reload(fmc.fileName)
if err != nil {
logger.Logger.Warn(fn, " loader err:", err)
}
}
// loaderAfter
loaderAfter := DataMgrAfter.GetLoader(fn)
if loaderAfter != nil {
for _, v := range loaderAfter {
err := v.Reload(fmc.fileName)
if err != nil {
logger.Logger.Warnf("%v loader %v err: %v", fn, k, err)
logger.Logger.Warn(fn, " loaderAfter err:", err)
}
}
}
//todo 实现DataLoader
switch fn {
case "DB_ClientVer.dat":
err := updateClientVers()
if err != nil {
return err
}
case "DB_Createroom.dat":
CreateRoomMgrSington.Init()
case "DB_Game_Drop.dat":
GameDropMgrSington.Init()
case "DB_Game_Role.dat", "DB_Game_Pet.dat":
RolePetMgrSington.Init()
}
return nil
}
@ -140,16 +167,45 @@ func (this *Configuration) Init() error {
// 使用 DataLoader 加载
for _, fileName := range loaderFiles {
for k, v := range DataMgr.GetLoader(fileName) {
// loader
loader := DataMgr.GetLoader(fileName)
if loader != nil {
fullPath := filepath.Join(this.RootPath, fileName)
err := loader.Load(fullPath)
if err != nil {
logger.Logger.Warnf("%v loader err: %v", fileName, err)
} else {
logger.Logger.Infof("%v loader success", fileName)
}
} else {
logger.Logger.Warnf("%v no loader", fileName)
}
// loaderAfter 依赖xlsx数据
loaderAfter := DataMgrAfter.GetLoader(fileName)
if loaderAfter != nil {
fullPath := filepath.Join(this.RootPath, fileName)
for _, v := range loaderAfter {
err := v.Load(fullPath)
if err != nil {
logger.Logger.Warnf("%v loader %v err: %v", fileName, k, err)
logger.Logger.Warnf("%v loaderAfter err: %v", fileName, err)
} else {
logger.Logger.Infof("%v loader %v success", fileName, k)
logger.Logger.Infof("%v loaderAfter success", fileName)
}
}
}
}
//todo 实现DataLoader
err = updateClientVers()
if err != nil {
return err
}
//DB_Createroom
CreateRoomMgrSington.Init()
GameDropMgrSington.Init()
//role pet
RolePetMgrSington.Init()
return nil
}

View File

@ -4,10 +4,6 @@ import (
"mongo.games.com/game/protocol/server"
)
func init() {
DataMgr.RegisterLoader("DB_Createroom.dat", CreateRoomMgrSington)
}
var CreateRoomMgrSington = &CreateRoomMgr{
GameIdDatas: make(map[int32][]*server.DB_Createroom),
Datas: make(map[int32][]*server.DB_Createroom),
@ -18,16 +14,6 @@ type CreateRoomMgr struct {
Datas map[int32][]*server.DB_Createroom
}
func (this *CreateRoomMgr) Load(fileFullPath string) error {
CreateRoomMgrSington.Init()
return nil
}
func (this *CreateRoomMgr) Reload(fileFullPath string) error {
CreateRoomMgrSington.Init()
return nil
}
func (this *CreateRoomMgr) Init() {
this.Datas = make(map[int32][]*server.DB_Createroom)
this.GameIdDatas = make(map[int32][]*server.DB_Createroom)

View File

@ -5,7 +5,6 @@ import (
"encoding/hex"
"errors"
"os"
"strings"
)
var fileSignMap = make(map[string]string)
@ -121,58 +120,3 @@ func (this *ProtobufDataLoader) Reload(fileFullPath string) error {
return err
}
var DataMgr = &dataMgr{
loaders: make(map[string]DataLoader),
afterLoaders: make(map[string][]DataLoader),
cacheGameFreeId: make(map[int32]CacheGameType),
}
type dataMgr struct {
loaders map[string]DataLoader
afterLoaders map[string][]DataLoader
cacheGameFreeId map[int32]CacheGameType
}
type CacheGameType struct {
Ids []int32
GameType int32
}
// register 注册数据加载器,这个应该只是自动生产的代码中会用到,其它地方用不到
func (this *dataMgr) register(name string, loader DataLoader) {
this.loaders[strings.ToLower(name)] = loader
}
// RegisterLoader 注册数据加载器,如果需要依赖配置表再生成新结构的数据用这个
// loader的方法调用会在配置表加载之后调用
func (this *dataMgr) RegisterLoader(name string, loader DataLoader) {
this.afterLoaders[strings.ToLower(name)] = append(this.afterLoaders[strings.ToLower(name)], loader)
}
func (this *dataMgr) GetLoader(name string) []DataLoader {
var ret []DataLoader
if loader, exist := this.loaders[strings.ToLower(name)]; exist {
ret = append(ret, loader)
}
if loader, exist := this.afterLoaders[strings.ToLower(name)]; exist {
ret = append(ret, loader...)
}
return ret
}
func (this *dataMgr) GetGameFreeIds(gameId, gameMode int32) (ids []int32, gameType int32) {
key := gameId<<16 | gameMode
if data, exist := this.cacheGameFreeId[key]; exist {
return data.Ids, data.GameType
} else {
for _, dbGameFree := range PBDB_GameFreeMgr.Datas.Arr {
if dbGameFree.GetGameId() == gameId && dbGameFree.GetGameMode() == gameMode {
ids = append(ids, dbGameFree.GetId())
gameType = dbGameFree.GetGameType()
}
}
this.cacheGameFreeId[key] = CacheGameType{Ids: ids, GameType: gameType}
}
return
}

66
srvdata/datamgr.go Normal file
View File

@ -0,0 +1,66 @@
package srvdata
import (
"strings"
)
var DataMgr = &dataMgr{
loaders: make(map[string]DataLoader),
cacheGameFreeId: make(map[int32]CacheGameType),
}
type dataMgr struct {
loaders map[string]DataLoader
cacheGameFreeId map[int32]CacheGameType
}
type CacheGameType struct {
Ids []int32
GameType int32
}
func (this *dataMgr) RegisteLoader(name string, loader DataLoader) {
this.loaders[strings.ToLower(name)] = loader
}
func (this *dataMgr) GetLoader(name string) DataLoader {
if loader, exist := this.loaders[strings.ToLower(name)]; exist {
return loader
}
return nil
}
func (this *dataMgr) GetGameFreeIds(gameId, gameMode int32) (ids []int32, gameType int32) {
key := gameId<<16 | gameMode
if data, exist := this.cacheGameFreeId[key]; exist {
return data.Ids, data.GameType
} else {
for _, dbGameFree := range PBDB_GameFreeMgr.Datas.Arr {
if dbGameFree.GetGameId() == gameId && dbGameFree.GetGameMode() == gameMode {
ids = append(ids, dbGameFree.GetId())
gameType = dbGameFree.GetGameType()
}
}
this.cacheGameFreeId[key] = CacheGameType{Ids: ids, GameType: gameType}
}
return
}
// DataMgrAfter 配置文件监听器这个加载数据会在DataMgr之后
var DataMgrAfter = &dataMgrAfter{
loaders: make(map[string][]DataLoader),
}
type dataMgrAfter struct {
loaders map[string][]DataLoader
}
func (this *dataMgrAfter) RegisterLoader(name string, loader DataLoader) {
this.loaders[strings.ToLower(name)] = append(this.loaders[strings.ToLower(name)], loader)
}
func (this *dataMgrAfter) GetLoader(name string) []DataLoader {
if loader, exist := this.loaders[strings.ToLower(name)]; exist {
return loader
}
return nil
}

View File

@ -10,16 +10,11 @@ import (
"mongo.games.com/game/protocol/server"
)
var PBDB_Activity1Mgr = &DB_Activity1Mgr{
Datas: &server.DB_Activity1Array{},
pool: make(map[int32]*server.DB_Activity1),
}
var PBDB_Activity1Mgr = &DB_Activity1Mgr{pool: make(map[int32]*server.DB_Activity1), Datas: &server.DB_Activity1Array{}}
type DB_Activity1Mgr struct {
Datas *server.DB_Activity1Array
pool map[int32]*server.DB_Activity1
}
func (this *DB_Activity1Mgr) unmarshal(data []byte) error {
@ -39,7 +34,6 @@ func (this *DB_Activity1Mgr) reunmarshal(data []byte) error {
if existItem == nil {
this.pool[item.GetId()] = item
this.Datas.Arr = append(this.Datas.Arr, item)
} else {
*existItem = *item
}
@ -60,7 +54,6 @@ func (this *DB_Activity1Mgr) arrangeData() {
for _, data := range dataArr {
this.pool[data.GetId()] = data
}
}
@ -71,7 +64,6 @@ func (this *DB_Activity1Mgr) GetData(id int32) *server.DB_Activity1 {
return nil
}
func init() {
DataMgr.register("DB_Activity1.dat", &ProtobufDataLoader{dh: PBDB_Activity1Mgr})
DataMgr.RegisteLoader("DB_Activity1.dat", &ProtobufDataLoader{dh: PBDB_Activity1Mgr})
}

View File

@ -10,16 +10,11 @@ import (
"mongo.games.com/game/protocol/server"
)
var PBDB_ActSignMgr = &DB_ActSignMgr{
Datas: &server.DB_ActSignArray{},
pool: make(map[int32]*server.DB_ActSign),
}
var PBDB_ActSignMgr = &DB_ActSignMgr{pool: make(map[int32]*server.DB_ActSign), Datas: &server.DB_ActSignArray{}}
type DB_ActSignMgr struct {
Datas *server.DB_ActSignArray
pool map[int32]*server.DB_ActSign
}
func (this *DB_ActSignMgr) unmarshal(data []byte) error {
@ -39,7 +34,6 @@ func (this *DB_ActSignMgr) reunmarshal(data []byte) error {
if existItem == nil {
this.pool[item.GetId()] = item
this.Datas.Arr = append(this.Datas.Arr, item)
} else {
*existItem = *item
}
@ -60,7 +54,6 @@ func (this *DB_ActSignMgr) arrangeData() {
for _, data := range dataArr {
this.pool[data.GetId()] = data
}
}
@ -71,7 +64,6 @@ func (this *DB_ActSignMgr) GetData(id int32) *server.DB_ActSign {
return nil
}
func init() {
DataMgr.register("DB_ActSign.dat", &ProtobufDataLoader{dh: PBDB_ActSignMgr})
DataMgr.RegisteLoader("DB_ActSign.dat", &ProtobufDataLoader{dh: PBDB_ActSignMgr})
}

Some files were not shown because too many files have changed in this diff Show More