From ef59d75ac579270c25c1b5f3ccc0d5136b688f1d Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Thu, 30 May 2024 17:33:31 +0800 Subject: [PATCH] =?UTF-8?q?vip=E6=B7=BB=E5=8A=A0=E6=AF=94=E8=B5=9B?= =?UTF-8?q?=E5=9C=BA=E5=85=8D=E8=B4=B9=E6=AC=A1=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/DB_PropExchange.dat | Bin 384 -> 384 bytes data/DB_Task.dat | Bin 2198 -> 2198 bytes protocol/server/pbdata.pb.go | 42 ++++--- protocol/server/pbdata.proto | 2 + protocol/webapi/common.pb.go | 221 ++++++++++++++++++----------------- protocol/webapi/common.proto | 1 + public | 2 +- worldsrv/action_player.go | 2 +- worldsrv/player.go | 12 +- worldsrv/tournament.go | 2 +- xlsx/DB_VIP.xlsx | Bin 20105 -> 20235 bytes 11 files changed, 154 insertions(+), 130 deletions(-) diff --git a/data/DB_PropExchange.dat b/data/DB_PropExchange.dat index aff4e3e1f9f685e3215db135f691d752871b3e4f..13a118614580b018a035d3533c99f93ed9ecce2b 100644 GIT binary patch literal 384 zcmd-w<6snElw#w!-o^~3FGJ}oQ2HvAz6PR|I5-yevI!h$vE|a^U;?YZ0hPZArEfv$ z+i2>;IUwevn1^I9Odq=a=;lMrEhutRVe3^U*k)M4lrV0Sn>$0DFd Lzc6z#&=vv!W5PT& literal 384 zcmd-w<6snElw#w!+{O&1uR!UmQ2H8_z7C?5I5-yevI!h$vE|a^U;?YZ0hPZArEfv$ z+i2>;IZ(|>P`L9{s}1#XwsK0Ajj4H2?qr diff --git a/data/DB_Task.dat b/data/DB_Task.dat index 3ee2049f68227aab6cb8c9063568ee9639d1667c..096091711a38b82ad8f6d8dcf91e0619d3a02910 100644 GIT binary patch delta 561 zcmZvYKT88a5XITM+r9B3W)ts7P|yQIa-Dx72ob?jEYkS_1QCn$iiI2~!GOWYYOoND zQ3Q(=>K6!DY7t2~D^m$J77AkJ+}z!|=+qCQV7 z7bvGm;!@9=Ai0njQADlGB*8dCf_VgqP>Vl`wGSSy#0{}UiR@(=JQj7X<@)4;+Wj%H zMj^o=sk>bIhab)AwTAM5HN=88Ij#85FRI2C<{IJ=)Wy9Q6W1!?+ebtZwrFS@aRzm4 zvZB8I=huXo(U--x;iNNgnCF8@>P9@j^>p{H$$9}k_2Y&yL|b1C;%CR8enK!Q#Y@PI zp|!0F`=w1hMGDRl8j#R#MvR+|I5K8ae^NBM2C`|mMAnroo=b3JSVZZTirkyw_LLS# zDm*Oi!Gb|bdr>2SOB=5gLl+Zc3Eyx$HSgd&A?KC+|J4fSS~hfT?#wCI;IQ3}&ihdr N_3U3^PfuaO{x>H`iMRj& delta 486 zcmbOxI8AUuxjhHR!d^Ck3vJ9+Y#d8~EG`E|E(H!&0agh{1y&6%14b)|iUqxFP!)1u z6>I`*Kox8g^~5HgSvmPBo8aU&#(rZ?uxSfU&tL>9zSzbrz{DlbAuhln!K@$vHVh)l zVg*rnVA@8e$sSCGCJJ!p9Q5SCz7;MQokaQpBVrpbA15|ghnC(A=razTA| zpv4yGBV~?7a~OdRWmRCEtiUG2xfsaf1M?DDWhc*KF`GPtO Award = 18; + int32 MatchFreeTimes = 19; + } message DB_VIPArray { diff --git a/protocol/webapi/common.pb.go b/protocol/webapi/common.pb.go index 08ddcf6..8908fa2 100644 --- a/protocol/webapi/common.pb.go +++ b/protocol/webapi/common.pb.go @@ -4904,6 +4904,7 @@ type VIPcfg struct { RewardOutlineID []int32 `protobuf:"varint,14,rep,packed,name=RewardOutlineID,proto3" json:"RewardOutlineID,omitempty"` ShopId2 int32 `protobuf:"varint,15,opt,name=ShopId2,proto3" json:"ShopId2,omitempty"` ShopId7 int32 `protobuf:"varint,16,opt,name=ShopId7,proto3" json:"ShopId7,omitempty"` + MatchFreeTimes int32 `protobuf:"varint,17,opt,name=MatchFreeTimes,proto3" json:"MatchFreeTimes,omitempty"` // vip比赛场免费次数 } func (x *VIPcfg) Reset() { @@ -5050,6 +5051,13 @@ func (x *VIPcfg) GetShopId7() int32 { return 0 } +func (x *VIPcfg) GetMatchFreeTimes() int32 { + if x != nil { + return x.MatchFreeTimes + } + return 0 +} + // etcd /game/VIPcfg VIP配置 type VIPcfgDataList struct { state protoimpl.MessageState @@ -6615,7 +6623,7 @@ var file_common_proto_rawDesc = []byte{ 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x42, - 0x72, 0x65, 0x61, 0x6b, 0x22, 0x9c, 0x05, 0x0a, 0x06, 0x56, 0x49, 0x50, 0x63, 0x66, 0x67, 0x12, + 0x72, 0x65, 0x61, 0x6b, 0x22, 0xc4, 0x05, 0x0a, 0x06, 0x56, 0x49, 0x50, 0x63, 0x66, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x69, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x69, 0x70, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x49, @@ -6649,110 +6657,113 @@ var file_common_proto_rawDesc = []byte{ 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x77, - 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, - 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x22, 0x70, 0x0a, 0x0e, 0x56, 0x49, 0x50, 0x63, 0x66, 0x67, 0x44, 0x61, 0x74, - 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x49, 0x50, - 0x63, 0x66, 0x67, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 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, 0x1e, 0x0a, 0x0a, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x61, - 0x74, 0x69, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x4d, 0x6f, 0x6e, 0x65, 0x79, - 0x52, 0x61, 0x74, 0x69, 0x6f, 0x22, 0x95, 0x01, 0x0a, 0x09, 0x57, 0x62, 0x43, 0x74, 0x72, 0x6c, - 0x43, 0x66, 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, - 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x61, 0x6c, 0x43, 0x74, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x08, 0x52, 0x65, 0x61, 0x6c, 0x43, 0x74, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x4e, - 0x6f, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x4e, 0x6f, 0x76, - 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x12, 0x1e, 0x0a, - 0x0a, 0x4b, 0x69, 0x6c, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0a, 0x4b, 0x69, 0x6c, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22, 0x57, 0x0a, - 0x0b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 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, 0x14, 0x0a, 0x05, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, - 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x03, 0x28, 0x08, 0x52, 0x06, - 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0x64, 0x0a, 0x0f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, - 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, - 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x22, 0x75, 0x0a, 0x10, - 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x63, 0x66, 0x67, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x2d, 0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, - 0x6e, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 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, 0x16, 0x0a, 0x06, 0x47, - 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, - 0x65, 0x49, 0x64, 0x22, 0xb4, 0x03, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, - 0x6f, 0x6c, 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, 0x1e, - 0x0a, 0x0a, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0a, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1e, - 0x0a, 0x0a, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0a, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, - 0x0a, 0x04, 0x51, 0x75, 0x44, 0x75, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x51, 0x75, - 0x44, 0x75, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, - 0x12, 0x22, 0x0a, 0x0c, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, - 0x73, 0x4d, 0x61, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, - 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, 0x64, - 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, - 0x61, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, - 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x46, 0x69, 0x67, 0x68, 0x74, 0x55, - 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x46, 0x69, 0x67, 0x68, 0x74, 0x55, 0x70, - 0x12, 0x1c, 0x0a, 0x09, 0x46, 0x69, 0x67, 0x68, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x09, 0x46, 0x69, 0x67, 0x68, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x12, 0x14, - 0x0a, 0x05, 0x50, 0x61, 0x79, 0x55, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x50, - 0x61, 0x79, 0x55, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x50, 0x61, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x50, 0x61, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x12, 0x1e, - 0x0a, 0x0a, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0a, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x52, 0x61, 0x74, 0x65, 0x12, 0x2a, - 0x0a, 0x10, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0xc8, 0x01, 0x0a, 0x0a, 0x47, - 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x16, 0x0a, - 0x06, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, - 0x69, 0x61, 0x6e, 0x48, 0x75, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x69, 0x4b, 0x75, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x69, 0x4b, 0x75, 0x12, 0x16, 0x0a, 0x06, 0x46, - 0x65, 0x6e, 0x43, 0x68, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x46, 0x65, 0x6e, - 0x43, 0x68, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x46, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x46, 0x65, 0x6e, 0x43, 0x68, 0x61, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x6f, 0x6f, 0x64, 0x46, 0x65, 0x6e, - 0x43, 0x68, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x6f, 0x6f, 0x64, 0x46, - 0x65, 0x6e, 0x43, 0x68, 0x61, 0x22, 0x4f, 0x0a, 0x19, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, - 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 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, 0x16, - 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0x4a, 0x0a, 0x14, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, - 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, - 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, - 0x69, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x22, 0x67, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x70, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x54, 0x70, 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, 0x24, 0x0a, 0x0d, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x4f, 0x6e, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x26, 0x5a, 0x24, 0x6d, - 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, - 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x77, 0x65, 0x62, - 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, + 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x70, 0x0a, 0x0e, 0x56, + 0x49, 0x50, 0x63, 0x66, 0x67, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x0a, + 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x77, 0x65, + 0x62, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x49, 0x50, 0x63, 0x66, 0x67, 0x52, 0x04, 0x4c, 0x69, 0x73, + 0x74, 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, 0x1e, 0x0a, + 0x0a, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x0a, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x22, 0x95, 0x01, + 0x0a, 0x09, 0x57, 0x62, 0x43, 0x74, 0x72, 0x6c, 0x43, 0x66, 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, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x61, 0x6c, 0x43, + 0x74, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x52, 0x65, 0x61, 0x6c, 0x43, + 0x74, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x4e, 0x6f, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x06, 0x4e, 0x6f, 0x76, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x57, + 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x57, 0x65, + 0x6c, 0x66, 0x61, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4b, 0x69, 0x6c, 0x6c, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x4b, 0x69, 0x6c, 0x6c, 0x50, + 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22, 0x57, 0x0a, 0x0b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x53, 0x77, + 0x69, 0x74, 0x63, 0x68, 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, 0x14, 0x0a, 0x05, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x08, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0x64, + 0x0a, 0x0f, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x49, + 0x74, 0x65, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x65, 0x62, 0x61, + 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, + 0x49, 0x74, 0x65, 0x6d, 0x22, 0x75, 0x0a, 0x10, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, + 0x6b, 0x63, 0x66, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2d, 0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, + 0x2e, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 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, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x22, 0xb4, 0x03, 0x0a, 0x0a, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 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, 0x1e, 0x0a, 0x0a, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x55, 0x70, 0x70, 0x65, + 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x4c, 0x6f, 0x77, 0x65, + 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x51, 0x75, 0x44, 0x75, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x51, 0x75, 0x44, 0x75, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, + 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x55, + 0x70, 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x55, 0x70, 0x70, 0x65, + 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, + 0x55, 0x70, 0x70, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x12, 0x1c, 0x0a, 0x09, + 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x09, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x6f, + 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0c, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4f, 0x64, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x12, 0x18, + 0x0a, 0x07, 0x46, 0x69, 0x67, 0x68, 0x74, 0x55, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x46, 0x69, 0x67, 0x68, 0x74, 0x55, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x46, 0x69, 0x67, 0x68, + 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x46, 0x69, 0x67, + 0x68, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x79, 0x55, 0x70, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x79, 0x55, 0x70, 0x12, 0x18, 0x0a, 0x07, + 0x50, 0x61, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x50, + 0x61, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, + 0x52, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x54, 0x69, 0x61, 0x6e, + 0x48, 0x75, 0x52, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x10, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x22, 0xc8, 0x01, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, + 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x53, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x12, 0x14, 0x0a, + 0x05, 0x50, 0x61, 0x69, 0x4b, 0x75, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, + 0x69, 0x4b, 0x75, 0x12, 0x16, 0x0a, 0x06, 0x46, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x46, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x46, + 0x65, 0x6e, 0x43, 0x68, 0x61, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0b, 0x46, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, + 0x0a, 0x47, 0x6f, 0x6f, 0x64, 0x46, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x47, 0x6f, 0x6f, 0x64, 0x46, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x22, 0x4f, 0x0a, + 0x19, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, + 0x74, 0x65, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 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, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0x4a, + 0x0a, 0x14, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0x67, 0x0a, 0x13, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x54, + 0x70, 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, 0x24, 0x0a, + 0x0d, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, + 0x61, 0x6d, 0x65, 0x42, 0x26, 0x5a, 0x24, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, + 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( diff --git a/protocol/webapi/common.proto b/protocol/webapi/common.proto index 0990d9a..1b6daf3 100644 --- a/protocol/webapi/common.proto +++ b/protocol/webapi/common.proto @@ -563,6 +563,7 @@ message VIPcfg { repeated int32 RewardOutlineID = 14; int32 ShopId2 = 15; int32 ShopId7 = 16; + int32 MatchFreeTimes = 17; // vip比赛场免费次数 } // etcd /game/VIPcfg VIP配置 diff --git a/public b/public index 72ee52b..8f954ba 160000 --- a/public +++ b/public @@ -1 +1 @@ -Subproject commit 72ee52bb07872df0cce4aba7d084ce1165996773 +Subproject commit 8f954ba7b1938774586ea07acdfa5bbbffa998e5 diff --git a/worldsrv/action_player.go b/worldsrv/action_player.go index 54cb14e..6c3901a 100644 --- a/worldsrv/action_player.go +++ b/worldsrv/action_player.go @@ -1777,7 +1777,7 @@ func (this *CSVIPPrivilegeInfoHandler) Process(s *netlib.Session, packetid int, } switch code { case 1: //1.VIP比赛场免费次数 - pack.Value = p.GetVIPPrivilege1() + pack.Value = p.GetMatchFreeTimes() pack.NowValue = p.VipMatchTimes } p.SendToClient(int(player_proto.PlayerPacketID_PACKET_SC_VIPPrivilegeInfo), pack) diff --git a/worldsrv/player.go b/worldsrv/player.go index 488d5a2..73ef0f8 100644 --- a/worldsrv/player.go +++ b/worldsrv/player.go @@ -3809,12 +3809,12 @@ func (this *Player) GetMaxVIPLevel() int32 { return 0 } -// 特权1 VIP比赛场免费次数 策划说暂时没了 -func (this *Player) GetVIPPrivilege1() int32 { - /* cfg := VipMgrSington.GetVIPLevelCfg(this.Platform, this.VIP) - if cfg != nil { - return cfg.Privilege1 - }*/ +// GetMatchFreeTimes 比赛场免费次数 +func (this *Player) GetMatchFreeTimes() int32 { + cfg := VipMgrSington.GetVIPLevelCfg(this.Platform, this.VIP) + if cfg != nil { + return cfg.GetMatchFreeTimes() + } return 0 } diff --git a/worldsrv/tournament.go b/worldsrv/tournament.go index c3dddeb..4be91fb 100644 --- a/worldsrv/tournament.go +++ b/worldsrv/tournament.go @@ -399,7 +399,7 @@ func (this *Tournament) signUpCost(p *Player, tmId int32, cost bool) (bool, int3 // VIP比赛场 if gmd.MatchType == MatchTypeVIP { - freeTimes := p.GetVIPPrivilege1() // VIP比赛场免费次数 + freeTimes := p.GetMatchFreeTimes() // VIP比赛场免费次数 logger.Logger.Trace("报名费用免费次数: freeTimes: ", freeTimes, " p.VipMatchTimes: ", p.VipMatchTimes) if freeTimes > 0 { if cost { diff --git a/xlsx/DB_VIP.xlsx b/xlsx/DB_VIP.xlsx index 65f038c1edd73d72637fa640b5b9eacf173c61f1..83897317d36208e641a3b9c5c1d27abb835bdc9b 100644 GIT binary patch delta 10358 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