From 6985bc0437906ab90de0c7734b4d73acba7f5199 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Mon, 24 Jun 2024 09:29:56 +0800 Subject: [PATCH 01/49] =?UTF-8?q?=E7=B4=AF=E8=AE=A1=E7=AD=BE=E5=88=B0?= =?UTF-8?q?=E8=BF=9B=E9=98=B6=E5=A5=96=E5=8A=B1=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/constant.go | 1 + model/player.go | 11 +- protocol/webapi/common.pb.go | 765 +++++++++-------- protocol/webapi/common.proto | 8 + protocol/welfare/welfare.pb.go | 1403 ++++++++++++++++++++------------ protocol/welfare/welfare.proto | 28 + worldsrv/action_welfare.go | 27 + worldsrv/welfmgr.go | 121 ++- 8 files changed, 1502 insertions(+), 862 deletions(-) diff --git a/common/constant.go b/common/constant.go index ec91584..7948e0b 100644 --- a/common/constant.go +++ b/common/constant.go @@ -272,6 +272,7 @@ const ( GainWayBuyItem = 86 // 商城购买道具 GainWayBuyWeekCard = 87 // 商城购买周卡 GainWayVipBuyCoin = 88 // vip商城购买金币 + GainWaySign7 = 89 // 连续签到7天进阶消耗 ) // 后台选择 金币变化类型 的充值 类型id号起始 diff --git a/model/player.go b/model/player.go index d3b13bd..c44d16a 100644 --- a/model/player.go +++ b/model/player.go @@ -463,11 +463,12 @@ type PlayerData struct { // 七日签到数据 type NewSignData struct { - SignIndex int32 //签到次数 - SignTickets int64 //签到时间 时间戳 - AddupIndex []int32 //领取累计奖励 - TurnplateIdx []int32 //领取转盘下标 - VideoTicket int64 // 领取视频奖励时间戳 + SignIndex int32 //签到次数 + SignTickets int64 //签到时间 时间戳 + AddupIndex []int32 //领取累计奖励 + TurnplateIdx []int32 //领取转盘下标 + VideoTicket int64 // 领取视频奖励时间戳 + Addup2Data map[int32]map[int32]int64 // 进阶奖励key1 - day key2-次数 value-结束领取时间戳(-1代表已领取) } diff --git a/protocol/webapi/common.pb.go b/protocol/webapi/common.pb.go index a44dde2..139b664 100644 --- a/protocol/webapi/common.pb.go +++ b/protocol/webapi/common.pb.go @@ -4453,20 +4453,85 @@ func (x *AddUpWelfareDate) GetAddUpDate() []*WelfareDate { return nil } +type AddUpDate2TypeData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Day int32 `protobuf:"varint,1,opt,name=Day,proto3" json:"Day,omitempty"` + Id int32 `protobuf:"varint,2,opt,name=Id,proto3" json:"Id,omitempty"` + Num int32 `protobuf:"varint,3,opt,name=Num,proto3" json:"Num,omitempty"` +} + +func (x *AddUpDate2TypeData) Reset() { + *x = AddUpDate2TypeData{} + if protoimpl.UnsafeEnabled { + mi := &file_common_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddUpDate2TypeData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddUpDate2TypeData) ProtoMessage() {} + +func (x *AddUpDate2TypeData) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[40] + 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 AddUpDate2TypeData.ProtoReflect.Descriptor instead. +func (*AddUpDate2TypeData) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{40} +} + +func (x *AddUpDate2TypeData) GetDay() int32 { + if x != nil { + return x.Day + } + return 0 +} + +func (x *AddUpDate2TypeData) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *AddUpDate2TypeData) GetNum() int32 { + if x != nil { + return x.Num + } + return 0 +} + type Welfare7SignDate struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Day int32 `protobuf:"varint,1,opt,name=Day,proto3" json:"Day,omitempty"` // 第几天 - Date []*WelfareDate `protobuf:"bytes,2,rep,name=Date,proto3" json:"Date,omitempty"` // 奖励 - AddUpDate []*AddUpWelfareDate `protobuf:"bytes,3,rep,name=AddUpDate,proto3" json:"AddUpDate,omitempty"` // 累计奖励 + Day int32 `protobuf:"varint,1,opt,name=Day,proto3" json:"Day,omitempty"` // 第几天 + Date []*WelfareDate `protobuf:"bytes,2,rep,name=Date,proto3" json:"Date,omitempty"` // 奖励 + AddUpDate []*AddUpWelfareDate `protobuf:"bytes,3,rep,name=AddUpDate,proto3" json:"AddUpDate,omitempty"` // 累计奖励 + AddUpDate2 []*AddUpWelfareDate `protobuf:"bytes,4,rep,name=AddUpDate2,proto3" json:"AddUpDate2,omitempty"` //进阶奖励 + AddUpDate2Type []*AddUpDate2TypeData `protobuf:"bytes,5,rep,name=AddUpDate2Type,proto3" json:"AddUpDate2Type,omitempty"` //进阶奖励领取条件 } func (x *Welfare7SignDate) Reset() { *x = Welfare7SignDate{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[40] + mi := &file_common_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4479,7 +4544,7 @@ func (x *Welfare7SignDate) String() string { func (*Welfare7SignDate) ProtoMessage() {} func (x *Welfare7SignDate) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[40] + mi := &file_common_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4492,7 +4557,7 @@ func (x *Welfare7SignDate) ProtoReflect() protoreflect.Message { // Deprecated: Use Welfare7SignDate.ProtoReflect.Descriptor instead. func (*Welfare7SignDate) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{40} + return file_common_proto_rawDescGZIP(), []int{41} } func (x *Welfare7SignDate) GetDay() int32 { @@ -4516,6 +4581,20 @@ func (x *Welfare7SignDate) GetAddUpDate() []*AddUpWelfareDate { return nil } +func (x *Welfare7SignDate) GetAddUpDate2() []*AddUpWelfareDate { + if x != nil { + return x.AddUpDate2 + } + return nil +} + +func (x *Welfare7SignDate) GetAddUpDate2Type() []*AddUpDate2TypeData { + if x != nil { + return x.AddUpDate2Type + } + return nil +} + // etcd /game/act_7sign 7日签到 type Welfare7SignDateList struct { state protoimpl.MessageState @@ -4530,7 +4609,7 @@ type Welfare7SignDateList struct { func (x *Welfare7SignDateList) Reset() { *x = Welfare7SignDateList{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[41] + mi := &file_common_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4543,7 +4622,7 @@ func (x *Welfare7SignDateList) String() string { func (*Welfare7SignDateList) ProtoMessage() {} func (x *Welfare7SignDateList) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[41] + mi := &file_common_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4556,7 +4635,7 @@ func (x *Welfare7SignDateList) ProtoReflect() protoreflect.Message { // Deprecated: Use Welfare7SignDateList.ProtoReflect.Descriptor instead. func (*Welfare7SignDateList) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{41} + return file_common_proto_rawDescGZIP(), []int{42} } func (x *Welfare7SignDateList) GetList() []*Welfare7SignDate { @@ -4599,7 +4678,7 @@ type BlindBoxData struct { func (x *BlindBoxData) Reset() { *x = BlindBoxData{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[42] + mi := &file_common_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4612,7 +4691,7 @@ func (x *BlindBoxData) String() string { func (*BlindBoxData) ProtoMessage() {} func (x *BlindBoxData) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[42] + mi := &file_common_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4625,7 +4704,7 @@ func (x *BlindBoxData) ProtoReflect() protoreflect.Message { // Deprecated: Use BlindBoxData.ProtoReflect.Descriptor instead. func (*BlindBoxData) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{42} + return file_common_proto_rawDescGZIP(), []int{43} } func (x *BlindBoxData) GetId() int32 { @@ -4707,7 +4786,7 @@ type WelfareBlindBoxDataList struct { func (x *WelfareBlindBoxDataList) Reset() { *x = WelfareBlindBoxDataList{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[43] + mi := &file_common_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4720,7 +4799,7 @@ func (x *WelfareBlindBoxDataList) String() string { func (*WelfareBlindBoxDataList) ProtoMessage() {} func (x *WelfareBlindBoxDataList) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[43] + mi := &file_common_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4733,7 +4812,7 @@ func (x *WelfareBlindBoxDataList) ProtoReflect() protoreflect.Message { // Deprecated: Use WelfareBlindBoxDataList.ProtoReflect.Descriptor instead. func (*WelfareBlindBoxDataList) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{43} + return file_common_proto_rawDescGZIP(), []int{44} } func (x *WelfareBlindBoxDataList) GetList() []*BlindBoxData { @@ -4788,7 +4867,7 @@ type WelfareSpree struct { func (x *WelfareSpree) Reset() { *x = WelfareSpree{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[44] + mi := &file_common_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4801,7 +4880,7 @@ func (x *WelfareSpree) String() string { func (*WelfareSpree) ProtoMessage() {} func (x *WelfareSpree) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[44] + mi := &file_common_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4814,7 +4893,7 @@ func (x *WelfareSpree) ProtoReflect() protoreflect.Message { // Deprecated: Use WelfareSpree.ProtoReflect.Descriptor instead. func (*WelfareSpree) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{44} + return file_common_proto_rawDescGZIP(), []int{45} } func (x *WelfareSpree) GetDay() int32 { @@ -4881,7 +4960,7 @@ type WelfareFirstPayDataList struct { func (x *WelfareFirstPayDataList) Reset() { *x = WelfareFirstPayDataList{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[45] + mi := &file_common_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4894,7 +4973,7 @@ func (x *WelfareFirstPayDataList) String() string { func (*WelfareFirstPayDataList) ProtoMessage() {} func (x *WelfareFirstPayDataList) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[45] + mi := &file_common_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4907,7 +4986,7 @@ func (x *WelfareFirstPayDataList) ProtoReflect() protoreflect.Message { // Deprecated: Use WelfareFirstPayDataList.ProtoReflect.Descriptor instead. func (*WelfareFirstPayDataList) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{45} + return file_common_proto_rawDescGZIP(), []int{46} } func (x *WelfareFirstPayDataList) GetList() []*WelfareSpree { @@ -4954,7 +5033,7 @@ type WelfareContinuousPayDataList struct { func (x *WelfareContinuousPayDataList) Reset() { *x = WelfareContinuousPayDataList{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[46] + mi := &file_common_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4967,7 +5046,7 @@ func (x *WelfareContinuousPayDataList) String() string { func (*WelfareContinuousPayDataList) ProtoMessage() {} func (x *WelfareContinuousPayDataList) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[46] + mi := &file_common_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4980,7 +5059,7 @@ func (x *WelfareContinuousPayDataList) ProtoReflect() protoreflect.Message { // Deprecated: Use WelfareContinuousPayDataList.ProtoReflect.Descriptor instead. func (*WelfareContinuousPayDataList) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{46} + return file_common_proto_rawDescGZIP(), []int{47} } func (x *WelfareContinuousPayDataList) GetList() []*WelfareSpree { @@ -5045,7 +5124,7 @@ type VIPcfg struct { func (x *VIPcfg) Reset() { *x = VIPcfg{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[47] + mi := &file_common_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5058,7 +5137,7 @@ func (x *VIPcfg) String() string { func (*VIPcfg) ProtoMessage() {} func (x *VIPcfg) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[47] + mi := &file_common_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5071,7 +5150,7 @@ func (x *VIPcfg) ProtoReflect() protoreflect.Message { // Deprecated: Use VIPcfg.ProtoReflect.Descriptor instead. func (*VIPcfg) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{47} + return file_common_proto_rawDescGZIP(), []int{48} } func (x *VIPcfg) GetVipId() int32 { @@ -5207,7 +5286,7 @@ type VIPcfgDataList struct { func (x *VIPcfgDataList) Reset() { *x = VIPcfgDataList{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[48] + mi := &file_common_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5220,7 +5299,7 @@ func (x *VIPcfgDataList) String() string { func (*VIPcfgDataList) ProtoMessage() {} func (x *VIPcfgDataList) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[48] + mi := &file_common_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5233,7 +5312,7 @@ func (x *VIPcfgDataList) ProtoReflect() protoreflect.Message { // Deprecated: Use VIPcfgDataList.ProtoReflect.Descriptor instead. func (*VIPcfgDataList) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{48} + return file_common_proto_rawDescGZIP(), []int{49} } func (x *VIPcfgDataList) GetList() []*VIPcfg { @@ -5272,7 +5351,7 @@ type WbCtrlCfg struct { func (x *WbCtrlCfg) Reset() { *x = WbCtrlCfg{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[49] + mi := &file_common_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5285,7 +5364,7 @@ func (x *WbCtrlCfg) String() string { func (*WbCtrlCfg) ProtoMessage() {} func (x *WbCtrlCfg) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[49] + mi := &file_common_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5298,7 +5377,7 @@ func (x *WbCtrlCfg) ProtoReflect() protoreflect.Message { // Deprecated: Use WbCtrlCfg.ProtoReflect.Descriptor instead. func (*WbCtrlCfg) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{49} + return file_common_proto_rawDescGZIP(), []int{50} } func (x *WbCtrlCfg) GetPlatform() string { @@ -5351,7 +5430,7 @@ type EntrySwitch struct { func (x *EntrySwitch) Reset() { *x = EntrySwitch{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[50] + mi := &file_common_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5364,7 +5443,7 @@ func (x *EntrySwitch) String() string { func (*EntrySwitch) ProtoMessage() {} func (x *EntrySwitch) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[50] + mi := &file_common_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5377,7 +5456,7 @@ func (x *EntrySwitch) ProtoReflect() protoreflect.Message { // Deprecated: Use EntrySwitch.ProtoReflect.Descriptor instead. func (*EntrySwitch) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{50} + return file_common_proto_rawDescGZIP(), []int{51} } func (x *EntrySwitch) GetPlatform() string { @@ -5414,7 +5493,7 @@ type ChessRankConfig struct { func (x *ChessRankConfig) Reset() { *x = ChessRankConfig{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[51] + mi := &file_common_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5427,7 +5506,7 @@ func (x *ChessRankConfig) String() string { func (*ChessRankConfig) ProtoMessage() {} func (x *ChessRankConfig) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[51] + mi := &file_common_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5440,7 +5519,7 @@ func (x *ChessRankConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use ChessRankConfig.ProtoReflect.Descriptor instead. func (*ChessRankConfig) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{51} + return file_common_proto_rawDescGZIP(), []int{52} } func (x *ChessRankConfig) GetName() string { @@ -5477,7 +5556,7 @@ type ChessRankcfgData struct { func (x *ChessRankcfgData) Reset() { *x = ChessRankcfgData{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[52] + mi := &file_common_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5490,7 +5569,7 @@ func (x *ChessRankcfgData) String() string { func (*ChessRankcfgData) ProtoMessage() {} func (x *ChessRankcfgData) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[52] + mi := &file_common_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5503,7 +5582,7 @@ func (x *ChessRankcfgData) ProtoReflect() protoreflect.Message { // Deprecated: Use ChessRankcfgData.ProtoReflect.Descriptor instead. func (*ChessRankcfgData) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{52} + return file_common_proto_rawDescGZIP(), []int{53} } func (x *ChessRankcfgData) GetDatas() []*ChessRankConfig { @@ -5551,7 +5630,7 @@ type PlayerPool struct { func (x *PlayerPool) Reset() { *x = PlayerPool{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[53] + mi := &file_common_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5564,7 +5643,7 @@ func (x *PlayerPool) String() string { func (*PlayerPool) ProtoMessage() {} func (x *PlayerPool) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[53] + mi := &file_common_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5577,7 +5656,7 @@ func (x *PlayerPool) ProtoReflect() protoreflect.Message { // Deprecated: Use PlayerPool.ProtoReflect.Descriptor instead. func (*PlayerPool) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{53} + return file_common_proto_rawDescGZIP(), []int{54} } func (x *PlayerPool) GetPlatform() string { @@ -5695,7 +5774,7 @@ type GameConfig struct { func (x *GameConfig) Reset() { *x = GameConfig{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[54] + mi := &file_common_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5708,7 +5787,7 @@ func (x *GameConfig) String() string { func (*GameConfig) ProtoMessage() {} func (x *GameConfig) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[54] + mi := &file_common_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5721,7 +5800,7 @@ func (x *GameConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use GameConfig.ProtoReflect.Descriptor instead. func (*GameConfig) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{54} + return file_common_proto_rawDescGZIP(), []int{55} } func (x *GameConfig) GetPlatform() string { @@ -5786,7 +5865,7 @@ type WelfarePhoneLotteryStatus struct { func (x *WelfarePhoneLotteryStatus) Reset() { *x = WelfarePhoneLotteryStatus{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[55] + mi := &file_common_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5799,7 +5878,7 @@ func (x *WelfarePhoneLotteryStatus) String() string { func (*WelfarePhoneLotteryStatus) ProtoMessage() {} func (x *WelfarePhoneLotteryStatus) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[55] + mi := &file_common_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5812,7 +5891,7 @@ func (x *WelfarePhoneLotteryStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use WelfarePhoneLotteryStatus.ProtoReflect.Descriptor instead. func (*WelfarePhoneLotteryStatus) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{55} + return file_common_proto_rawDescGZIP(), []int{56} } func (x *WelfarePhoneLotteryStatus) GetPlatform() string { @@ -5842,7 +5921,7 @@ type WelfareCollectConfig struct { func (x *WelfareCollectConfig) Reset() { *x = WelfareCollectConfig{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[56] + mi := &file_common_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5855,7 +5934,7 @@ func (x *WelfareCollectConfig) String() string { func (*WelfareCollectConfig) ProtoMessage() {} func (x *WelfareCollectConfig) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[56] + mi := &file_common_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5868,7 +5947,7 @@ func (x *WelfareCollectConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use WelfareCollectConfig.ProtoReflect.Descriptor instead. func (*WelfareCollectConfig) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{56} + return file_common_proto_rawDescGZIP(), []int{57} } func (x *WelfareCollectConfig) GetPlatform() string { @@ -5899,7 +5978,7 @@ type ChannelSwitchConfig struct { func (x *ChannelSwitchConfig) Reset() { *x = ChannelSwitchConfig{} if protoimpl.UnsafeEnabled { - mi := &file_common_proto_msgTypes[57] + mi := &file_common_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5912,7 +5991,7 @@ func (x *ChannelSwitchConfig) String() string { func (*ChannelSwitchConfig) ProtoMessage() {} func (x *ChannelSwitchConfig) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[57] + mi := &file_common_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5925,7 +6004,7 @@ func (x *ChannelSwitchConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use ChannelSwitchConfig.ProtoReflect.Descriptor instead. func (*ChannelSwitchConfig) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{57} + return file_common_proto_rawDescGZIP(), []int{58} } func (x *ChannelSwitchConfig) GetTp() int32 { @@ -6698,219 +6777,232 @@ var file_common_proto_rawDesc = []byte{ 0x55, 0x70, 0x44, 0x61, 0x79, 0x12, 0x31, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x18, 0x02, 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, 0x09, 0x41, - 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x10, 0x57, 0x65, 0x6c, - 0x66, 0x61, 0x72, 0x65, 0x37, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, 0x79, 0x12, - 0x27, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x02, 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, 0x44, 0x61, 0x74, 0x65, 0x12, 0x36, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x55, - 0x70, 0x44, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x65, - 0x62, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x70, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, - 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x09, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, - 0x22, 0x78, 0x0a, 0x14, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x37, 0x53, 0x69, 0x67, 0x6e, - 0x44, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, - 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x37, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x65, - 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, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0xdb, 0x01, 0x0a, 0x0c, 0x42, - 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, - 0x73, 0x75, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x73, - 0x75, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x31, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, - 0x72, 0x69, 0x63, 0x65, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, - 0x63, 0x65, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x17, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x5f, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x22, 0xa3, 0x01, 0x0a, 0x17, 0x57, 0x65, 0x6c, - 0x66, 0x61, 0x72, 0x65, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x69, 0x6e, - 0x64, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, + 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x22, 0x48, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x55, + 0x70, 0x44, 0x61, 0x74, 0x65, 0x32, 0x54, 0x79, 0x70, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, + 0x0a, 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, 0x79, + 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, + 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, + 0x75, 0x6d, 0x22, 0x83, 0x02, 0x0a, 0x10, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x37, 0x53, + 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x04, 0x44, 0x61, 0x74, + 0x65, 0x18, 0x02, 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, 0x44, 0x61, + 0x74, 0x65, 0x12, 0x36, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x41, + 0x64, 0x64, 0x55, 0x70, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, + 0x09, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x0a, 0x41, 0x64, + 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x32, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x70, 0x57, 0x65, 0x6c, + 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, + 0x61, 0x74, 0x65, 0x32, 0x12, 0x42, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, + 0x65, 0x32, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x77, + 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x32, + 0x54, 0x79, 0x70, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, + 0x61, 0x74, 0x65, 0x32, 0x54, 0x79, 0x70, 0x65, 0x22, 0x78, 0x0a, 0x14, 0x57, 0x65, 0x6c, 0x66, + 0x61, 0x72, 0x65, 0x37, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x2c, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x37, + 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x65, 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, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 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, 0x4d, 0x69, 0x6e, 0x49, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4d, 0x69, 0x6e, 0x49, 0x64, 0x22, 0xc5, - 0x01, 0x0a, 0x0c, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x53, 0x70, 0x72, 0x65, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, - 0x79, 0x12, 0x27, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x02, 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, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x49, - 0x50, 0x45, 0x58, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x49, 0x50, 0x45, 0x58, - 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, - 0x69, 0x63, 0x65, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, - 0x65, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x69, - 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x44, 0x69, - 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x17, 0x57, 0x65, 0x6c, 0x66, 0x61, - 0x72, 0x65, 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, 0x61, 0x79, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, - 0x65, 0x53, 0x70, 0x72, 0x65, 0x65, 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, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 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, 0x22, 0xa8, 0x01, 0x0a, 0x1c, 0x57, 0x65, 0x6c, 0x66, 0x61, - 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x50, 0x61, 0x79, 0x44, - 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, - 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x53, 0x70, 0x72, 0x65, 0x65, 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, 0x16, 0x0a, - 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 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, 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, 0x50, 0x63, 0x66, - 0x67, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, - 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x69, 0x70, 0x45, 0x78, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x56, 0x69, 0x70, 0x45, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, - 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x12, - 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x12, - 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x12, - 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x12, - 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x12, - 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x12, - 0x3e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x18, 0x0b, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x49, 0x50, - 0x63, 0x66, 0x67, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x12, - 0x28, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, - 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, - 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x18, 0x0e, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 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, 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, + 0x63, 0x68, 0x22, 0xdb, 0x01, 0x0a, 0x0c, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, 0x78, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x47, + 0x72, 0x61, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, + 0x63, 0x65, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x44, + 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x44, + 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x5f, + 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, + 0x22, 0xa3, 0x01, 0x0a, 0x17, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x42, 0x6c, 0x69, 0x6e, + 0x64, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, + 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x62, + 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, + 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, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 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, 0x4d, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x4d, 0x69, 0x6e, 0x49, 0x64, 0x22, 0xc5, 0x01, 0x0a, 0x0c, 0x57, 0x65, 0x6c, 0x66, 0x61, + 0x72, 0x65, 0x53, 0x70, 0x72, 0x65, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x04, 0x49, 0x74, 0x65, + 0x6d, 0x18, 0x02, 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, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x49, 0x50, 0x45, 0x58, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x56, 0x49, 0x50, 0x45, 0x58, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x31, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, + 0x69, 0x63, 0x65, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, + 0x65, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, + 0x01, 0x0a, 0x17, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, + 0x61, 0x79, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x4c, 0x69, + 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, + 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x53, 0x70, 0x72, 0x65, 0x65, 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, 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, + 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 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, 0x22, 0xa8, + 0x01, 0x0a, 0x1c, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, + 0x75, 0x6f, 0x75, 0x73, 0x50, 0x61, 0x79, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x28, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x53, 0x70, + 0x72, 0x65, 0x65, 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, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 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, 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, 0x50, 0x63, 0x66, 0x67, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x56, + 0x69, 0x70, 0x45, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x69, 0x70, 0x45, + 0x78, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, + 0x6c, 0x65, 0x67, 0x65, 0x31, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, + 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, + 0x6c, 0x65, 0x67, 0x65, 0x32, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, + 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, + 0x6c, 0x65, 0x67, 0x65, 0x33, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, + 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, + 0x6c, 0x65, 0x67, 0x65, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, + 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, + 0x6c, 0x65, 0x67, 0x65, 0x35, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, + 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, + 0x6c, 0x65, 0x67, 0x65, 0x36, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, + 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x12, 0x3e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, + 0x6c, 0x65, 0x67, 0x65, 0x37, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x77, 0x65, + 0x62, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x49, 0x50, 0x63, 0x66, 0x67, 0x2e, 0x50, 0x72, 0x69, 0x76, + 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x50, 0x72, 0x69, + 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x12, 0x28, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, + 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, + 0x38, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, + 0x6e, 0x65, 0x49, 0x44, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x4f, 0x75, 0x74, 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, 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 ( @@ -6925,7 +7017,7 @@ func file_common_proto_rawDescGZIP() []byte { return file_common_proto_rawDescData } -var file_common_proto_msgTypes = make([]protoimpl.MessageInfo, 63) +var file_common_proto_msgTypes = make([]protoimpl.MessageInfo, 64) var file_common_proto_goTypes = []interface{}{ (*MysqlDbSetting)(nil), // 0: webapi.MysqlDbSetting (*MongoDbSetting)(nil), // 1: webapi.MongoDbSetting @@ -6967,50 +7059,51 @@ var file_common_proto_goTypes = []interface{}{ (*WelfareTurnplateRate)(nil), // 37: webapi.WelfareTurnplateRate (*WelfareTurnplateDateList)(nil), // 38: webapi.WelfareTurnplateDateList (*AddUpWelfareDate)(nil), // 39: webapi.AddUpWelfareDate - (*Welfare7SignDate)(nil), // 40: webapi.Welfare7SignDate - (*Welfare7SignDateList)(nil), // 41: webapi.Welfare7SignDateList - (*BlindBoxData)(nil), // 42: webapi.BlindBoxData - (*WelfareBlindBoxDataList)(nil), // 43: webapi.WelfareBlindBoxDataList - (*WelfareSpree)(nil), // 44: webapi.WelfareSpree - (*WelfareFirstPayDataList)(nil), // 45: webapi.WelfareFirstPayDataList - (*WelfareContinuousPayDataList)(nil), // 46: webapi.WelfareContinuousPayDataList - (*VIPcfg)(nil), // 47: webapi.VIPcfg - (*VIPcfgDataList)(nil), // 48: webapi.VIPcfgDataList - (*WbCtrlCfg)(nil), // 49: webapi.WbCtrlCfg - (*EntrySwitch)(nil), // 50: webapi.EntrySwitch - (*ChessRankConfig)(nil), // 51: webapi.ChessRankConfig - (*ChessRankcfgData)(nil), // 52: webapi.ChessRankcfgData - (*PlayerPool)(nil), // 53: webapi.PlayerPool - (*GameConfig)(nil), // 54: webapi.GameConfig - (*WelfarePhoneLotteryStatus)(nil), // 55: webapi.WelfarePhoneLotteryStatus - (*WelfareCollectConfig)(nil), // 56: webapi.WelfareCollectConfig - (*ChannelSwitchConfig)(nil), // 57: webapi.ChannelSwitchConfig - nil, // 58: webapi.Platform.BindTelRewardEntry - nil, // 59: webapi.PlayerData.RankScoreEntry - nil, // 60: webapi.ItemShop.AwardEntry - nil, // 61: webapi.VIPcfg.AwardEntry - nil, // 62: webapi.VIPcfg.Privilege7Entry - (*server.DB_GameFree)(nil), // 63: server.DB_GameFree + (*AddUpDate2TypeData)(nil), // 40: webapi.AddUpDate2TypeData + (*Welfare7SignDate)(nil), // 41: webapi.Welfare7SignDate + (*Welfare7SignDateList)(nil), // 42: webapi.Welfare7SignDateList + (*BlindBoxData)(nil), // 43: webapi.BlindBoxData + (*WelfareBlindBoxDataList)(nil), // 44: webapi.WelfareBlindBoxDataList + (*WelfareSpree)(nil), // 45: webapi.WelfareSpree + (*WelfareFirstPayDataList)(nil), // 46: webapi.WelfareFirstPayDataList + (*WelfareContinuousPayDataList)(nil), // 47: webapi.WelfareContinuousPayDataList + (*VIPcfg)(nil), // 48: webapi.VIPcfg + (*VIPcfgDataList)(nil), // 49: webapi.VIPcfgDataList + (*WbCtrlCfg)(nil), // 50: webapi.WbCtrlCfg + (*EntrySwitch)(nil), // 51: webapi.EntrySwitch + (*ChessRankConfig)(nil), // 52: webapi.ChessRankConfig + (*ChessRankcfgData)(nil), // 53: webapi.ChessRankcfgData + (*PlayerPool)(nil), // 54: webapi.PlayerPool + (*GameConfig)(nil), // 55: webapi.GameConfig + (*WelfarePhoneLotteryStatus)(nil), // 56: webapi.WelfarePhoneLotteryStatus + (*WelfareCollectConfig)(nil), // 57: webapi.WelfareCollectConfig + (*ChannelSwitchConfig)(nil), // 58: webapi.ChannelSwitchConfig + nil, // 59: webapi.Platform.BindTelRewardEntry + nil, // 60: webapi.PlayerData.RankScoreEntry + nil, // 61: webapi.ItemShop.AwardEntry + nil, // 62: webapi.VIPcfg.AwardEntry + nil, // 63: webapi.VIPcfg.Privilege7Entry + (*server.DB_GameFree)(nil), // 64: server.DB_GameFree } var file_common_proto_depIdxs = []int32{ 2, // 0: webapi.Platform.Leaderboard:type_name -> webapi.RankSwitch 3, // 1: webapi.Platform.ClubConfig:type_name -> webapi.ClubConfig 4, // 2: webapi.Platform.ThirdGameMerchant:type_name -> webapi.ThirdGame - 58, // 3: webapi.Platform.BindTelReward:type_name -> webapi.Platform.BindTelRewardEntry + 59, // 3: webapi.Platform.BindTelReward:type_name -> webapi.Platform.BindTelRewardEntry 6, // 4: webapi.GameConfigGlobal.GameStatus:type_name -> webapi.GameStatus - 63, // 5: webapi.GameFree.DbGameFree:type_name -> server.DB_GameFree + 64, // 5: webapi.GameFree.DbGameFree:type_name -> server.DB_GameFree 8, // 6: webapi.PlatformGameConfig.DbGameFrees:type_name -> webapi.GameFree 0, // 7: webapi.PlatformDbConfig.Mysql:type_name -> webapi.MysqlDbSetting 1, // 8: webapi.PlatformDbConfig.MongoDb:type_name -> webapi.MongoDbSetting 1, // 9: webapi.PlatformDbConfig.MongoDbLog:type_name -> webapi.MongoDbSetting - 63, // 10: webapi.GameConfigGroup.DbGameFree:type_name -> server.DB_GameFree - 59, // 11: webapi.PlayerData.RankScore:type_name -> webapi.PlayerData.RankScoreEntry + 64, // 10: webapi.GameConfigGroup.DbGameFree:type_name -> server.DB_GameFree + 60, // 11: webapi.PlayerData.RankScore:type_name -> webapi.PlayerData.RankScoreEntry 29, // 12: webapi.PlayerData.Items:type_name -> webapi.ItemInfo 20, // 13: webapi.OnlineReport.GameCount:type_name -> webapi.OnlineGameCnt 22, // 14: webapi.CommonNoticeList.List:type_name -> webapi.CommonNotice 25, // 15: webapi.ExchangeShop.ExType:type_name -> webapi.ExchangeType 24, // 16: webapi.ExchangeShopList.List:type_name -> webapi.ExchangeShop - 60, // 17: webapi.ItemShop.Award:type_name -> webapi.ItemShop.AwardEntry + 61, // 17: webapi.ItemShop.Award:type_name -> webapi.ItemShop.AwardEntry 27, // 18: webapi.ItemShopList.List:type_name -> webapi.ItemShop 29, // 19: webapi.MatchInfoAward.ItemId:type_name -> webapi.ItemInfo 30, // 20: webapi.GameMatchDate.Award:type_name -> webapi.MatchInfoAward @@ -7023,21 +7116,23 @@ var file_common_proto_depIdxs = []int32{ 35, // 27: webapi.AddUpWelfareDate.AddUpDate:type_name -> webapi.WelfareDate 35, // 28: webapi.Welfare7SignDate.Date:type_name -> webapi.WelfareDate 39, // 29: webapi.Welfare7SignDate.AddUpDate:type_name -> webapi.AddUpWelfareDate - 40, // 30: webapi.Welfare7SignDateList.List:type_name -> webapi.Welfare7SignDate - 42, // 31: webapi.WelfareBlindBoxDataList.List:type_name -> webapi.BlindBoxData - 35, // 32: webapi.WelfareSpree.Item:type_name -> webapi.WelfareDate - 44, // 33: webapi.WelfareFirstPayDataList.List:type_name -> webapi.WelfareSpree - 44, // 34: webapi.WelfareContinuousPayDataList.List:type_name -> webapi.WelfareSpree - 61, // 35: webapi.VIPcfg.Award:type_name -> webapi.VIPcfg.AwardEntry - 62, // 36: webapi.VIPcfg.Privilege7:type_name -> webapi.VIPcfg.Privilege7Entry - 47, // 37: webapi.VIPcfgDataList.List:type_name -> webapi.VIPcfg - 35, // 38: webapi.ChessRankConfig.Item:type_name -> webapi.WelfareDate - 51, // 39: webapi.ChessRankcfgData.Datas:type_name -> webapi.ChessRankConfig - 40, // [40:40] is the sub-list for method output_type - 40, // [40:40] is the sub-list for method input_type - 40, // [40:40] is the sub-list for extension type_name - 40, // [40:40] is the sub-list for extension extendee - 0, // [0:40] is the sub-list for field type_name + 39, // 30: webapi.Welfare7SignDate.AddUpDate2:type_name -> webapi.AddUpWelfareDate + 40, // 31: webapi.Welfare7SignDate.AddUpDate2Type:type_name -> webapi.AddUpDate2TypeData + 41, // 32: webapi.Welfare7SignDateList.List:type_name -> webapi.Welfare7SignDate + 43, // 33: webapi.WelfareBlindBoxDataList.List:type_name -> webapi.BlindBoxData + 35, // 34: webapi.WelfareSpree.Item:type_name -> webapi.WelfareDate + 45, // 35: webapi.WelfareFirstPayDataList.List:type_name -> webapi.WelfareSpree + 45, // 36: webapi.WelfareContinuousPayDataList.List:type_name -> webapi.WelfareSpree + 62, // 37: webapi.VIPcfg.Award:type_name -> webapi.VIPcfg.AwardEntry + 63, // 38: webapi.VIPcfg.Privilege7:type_name -> webapi.VIPcfg.Privilege7Entry + 48, // 39: webapi.VIPcfgDataList.List:type_name -> webapi.VIPcfg + 35, // 40: webapi.ChessRankConfig.Item:type_name -> webapi.WelfareDate + 52, // 41: webapi.ChessRankcfgData.Datas:type_name -> webapi.ChessRankConfig + 42, // [42:42] is the sub-list for method output_type + 42, // [42:42] is the sub-list for method input_type + 42, // [42:42] is the sub-list for extension type_name + 42, // [42:42] is the sub-list for extension extendee + 0, // [0:42] is the sub-list for field type_name } func init() { file_common_proto_init() } @@ -7527,7 +7622,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Welfare7SignDate); i { + switch v := v.(*AddUpDate2TypeData); i { case 0: return &v.state case 1: @@ -7539,7 +7634,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Welfare7SignDateList); i { + switch v := v.(*Welfare7SignDate); i { case 0: return &v.state case 1: @@ -7551,7 +7646,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlindBoxData); i { + switch v := v.(*Welfare7SignDateList); i { case 0: return &v.state case 1: @@ -7563,7 +7658,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WelfareBlindBoxDataList); i { + switch v := v.(*BlindBoxData); i { case 0: return &v.state case 1: @@ -7575,7 +7670,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WelfareSpree); i { + switch v := v.(*WelfareBlindBoxDataList); i { case 0: return &v.state case 1: @@ -7587,7 +7682,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WelfareFirstPayDataList); i { + switch v := v.(*WelfareSpree); i { case 0: return &v.state case 1: @@ -7599,7 +7694,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WelfareContinuousPayDataList); i { + switch v := v.(*WelfareFirstPayDataList); i { case 0: return &v.state case 1: @@ -7611,7 +7706,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VIPcfg); i { + switch v := v.(*WelfareContinuousPayDataList); i { case 0: return &v.state case 1: @@ -7623,7 +7718,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VIPcfgDataList); i { + switch v := v.(*VIPcfg); i { case 0: return &v.state case 1: @@ -7635,7 +7730,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WbCtrlCfg); i { + switch v := v.(*VIPcfgDataList); i { case 0: return &v.state case 1: @@ -7647,7 +7742,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EntrySwitch); i { + switch v := v.(*WbCtrlCfg); i { case 0: return &v.state case 1: @@ -7659,7 +7754,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChessRankConfig); i { + switch v := v.(*EntrySwitch); i { case 0: return &v.state case 1: @@ -7671,7 +7766,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChessRankcfgData); i { + switch v := v.(*ChessRankConfig); i { case 0: return &v.state case 1: @@ -7683,7 +7778,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PlayerPool); i { + switch v := v.(*ChessRankcfgData); i { case 0: return &v.state case 1: @@ -7695,7 +7790,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GameConfig); i { + switch v := v.(*PlayerPool); i { case 0: return &v.state case 1: @@ -7707,7 +7802,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WelfarePhoneLotteryStatus); i { + switch v := v.(*GameConfig); i { case 0: return &v.state case 1: @@ -7719,7 +7814,7 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WelfareCollectConfig); i { + switch v := v.(*WelfarePhoneLotteryStatus); i { case 0: return &v.state case 1: @@ -7731,6 +7826,18 @@ func file_common_proto_init() { } } file_common_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WelfareCollectConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_common_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ChannelSwitchConfig); i { case 0: return &v.state @@ -7749,7 +7856,7 @@ func file_common_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_common_proto_rawDesc, NumEnums: 0, - NumMessages: 63, + NumMessages: 64, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/webapi/common.proto b/protocol/webapi/common.proto index 3a131bd..63e744c 100644 --- a/protocol/webapi/common.proto +++ b/protocol/webapi/common.proto @@ -496,11 +496,19 @@ message AddUpWelfareDate { int32 AddUpDay = 1; // 累计几天 repeated WelfareDate AddUpDate = 2; // 累计奖励 } +message AddUpDate2TypeData { + int32 Day = 1; + int32 Id = 2; + int32 Num = 3; +} + message Welfare7SignDate { int32 Day = 1; // 第几天 repeated WelfareDate Date = 2; // 奖励 repeated AddUpWelfareDate AddUpDate = 3; // 累计奖励 + repeated AddUpWelfareDate AddUpDate2 = 4; //进阶奖励 + repeated AddUpDate2TypeData AddUpDate2Type = 5; //进阶奖励领取条件 } diff --git a/protocol/welfare/welfare.pb.go b/protocol/welfare/welfare.pb.go index 2bef3c9..786c83b 100644 --- a/protocol/welfare/welfare.pb.go +++ b/protocol/welfare/welfare.pb.go @@ -101,27 +101,29 @@ func (OpResultCode) EnumDescriptor() ([]byte, []int) { type SPacketID int32 const ( - SPacketID_PACKET_SHOP_ZERO SPacketID = 0 // 弃用消息号 - SPacketID_PACKET_CS_WELF_GETRELIEFFUND SPacketID = 2580 //领取救济金 - SPacketID_PACKET_SC_WELF_GETRELIEFFUND SPacketID = 2581 //领取救济金 - SPacketID_PACKET_CS_WELF_GETTURNPLATE SPacketID = 2582 //转动转盘 - SPacketID_PACKET_SC_WELF_GETTURNPLATE SPacketID = 2583 //转动转盘 - SPacketID_PACKET_CS_WELF_GETADDUPSIGN SPacketID = 2584 //累计签到 - SPacketID_PACKET_SC_WELF_GETADDUPSIGN SPacketID = 2585 //累计签到 - SPacketID_PACKET_CS_WELF_WELFAREINFO SPacketID = 2586 //福利信息 - SPacketID_PACKET_SC_WELF_WELFAREINFO SPacketID = 2587 //福利信息 - SPacketID_PACKET_CS_WELF_BLINBOXINFO SPacketID = 2588 //转动盲盒 - SPacketID_PACKET_SC_WELF_BLINBOXINFO SPacketID = 2589 //转动盲盒 - SPacketID_PACKET_CS_WELF_GETBLINBOX SPacketID = 2590 //领取盲盒 - SPacketID_PACKET_SC_WELF_GETBLINBOX SPacketID = 2591 //领取盲盒 - SPacketID_PACKET_CS_WELF_FIRSTPAYINFO SPacketID = 2592 //首充礼包信息 - SPacketID_PACKET_SC_WELF_FIRSTPAYINFO SPacketID = 2593 //首充礼包信息 - SPacketID_PACKET_CS_WELF_FIRSTPAY SPacketID = 2594 //领取(购买)首充 后期走充值回调 - SPacketID_PACKET_SC_WELF_FIRSTPAY SPacketID = 2595 //领取首充 - SPacketID_PACKET_CS_WELF_CONTINPAYINFO SPacketID = 2596 //连续充值信息 - SPacketID_PACKET_SC_WELF_CONTINPAYINFO SPacketID = 2597 //连续充值信息 - SPacketID_PACKET_CS_WELF_CONTINPAY SPacketID = 2598 //领取(购买)连续充值 后期走充值回调 - SPacketID_PACKET_SC_WELF_CONTINPAY SPacketID = 2599 //领取连续充值 + SPacketID_PACKET_SHOP_ZERO SPacketID = 0 // 弃用消息号 + SPacketID_PACKET_CS_WELF_GETRELIEFFUND SPacketID = 2580 //领取救济金 + SPacketID_PACKET_SC_WELF_GETRELIEFFUND SPacketID = 2581 //领取救济金 + SPacketID_PACKET_CS_WELF_GETTURNPLATE SPacketID = 2582 //转动转盘 + SPacketID_PACKET_SC_WELF_GETTURNPLATE SPacketID = 2583 //转动转盘 + SPacketID_PACKET_CS_WELF_GETADDUPSIGN SPacketID = 2584 //累计签到 + SPacketID_PACKET_SC_WELF_GETADDUPSIGN SPacketID = 2585 //累计签到 + SPacketID_PACKET_CS_WELF_WELFAREINFO SPacketID = 2586 //福利信息 + SPacketID_PACKET_SC_WELF_WELFAREINFO SPacketID = 2587 //福利信息 + SPacketID_PACKET_CS_WELF_BLINBOXINFO SPacketID = 2588 //转动盲盒 + SPacketID_PACKET_SC_WELF_BLINBOXINFO SPacketID = 2589 //转动盲盒 + SPacketID_PACKET_CS_WELF_GETBLINBOX SPacketID = 2590 //领取盲盒 + SPacketID_PACKET_SC_WELF_GETBLINBOX SPacketID = 2591 //领取盲盒 + SPacketID_PACKET_CS_WELF_FIRSTPAYINFO SPacketID = 2592 //首充礼包信息 + SPacketID_PACKET_SC_WELF_FIRSTPAYINFO SPacketID = 2593 //首充礼包信息 + SPacketID_PACKET_CS_WELF_FIRSTPAY SPacketID = 2594 //领取(购买)首充 后期走充值回调 + SPacketID_PACKET_SC_WELF_FIRSTPAY SPacketID = 2595 //领取首充 + SPacketID_PACKET_CS_WELF_CONTINPAYINFO SPacketID = 2596 //连续充值信息 + SPacketID_PACKET_SC_WELF_CONTINPAYINFO SPacketID = 2597 //连续充值信息 + SPacketID_PACKET_CS_WELF_CONTINPAY SPacketID = 2598 //领取(购买)连续充值 后期走充值回调 + SPacketID_PACKET_SC_WELF_CONTINPAY SPacketID = 2599 //领取连续充值 + SPacketID_PACKET_CS_SignDay_Addup2Award SPacketID = 2600 //领取七日签到进阶奖励 + SPacketID_PACKET_SC_SignDay_Addup2Award SPacketID = 2601 //返回七日签到进阶奖励 // 2900~2999 SPacketID_PACKET_CSWelfRelief SPacketID = 2900 //救济金信息 SPacketID_PACKET_SCWelfRelief SPacketID = 2901 //救济金信息 @@ -160,6 +162,8 @@ var ( 2597: "PACKET_SC_WELF_CONTINPAYINFO", 2598: "PACKET_CS_WELF_CONTINPAY", 2599: "PACKET_SC_WELF_CONTINPAY", + 2600: "PACKET_CS_SignDay_Addup2Award", + 2601: "PACKET_SC_SignDay_Addup2Award", 2900: "PACKET_CSWelfRelief", 2901: "PACKET_SCWelfRelief", 2902: "PACKET_CSInviteInfo", @@ -172,37 +176,39 @@ var ( 2913: "PACKET_SCPigbankTakeCoin", } SPacketID_value = map[string]int32{ - "PACKET_SHOP_ZERO": 0, - "PACKET_CS_WELF_GETRELIEFFUND": 2580, - "PACKET_SC_WELF_GETRELIEFFUND": 2581, - "PACKET_CS_WELF_GETTURNPLATE": 2582, - "PACKET_SC_WELF_GETTURNPLATE": 2583, - "PACKET_CS_WELF_GETADDUPSIGN": 2584, - "PACKET_SC_WELF_GETADDUPSIGN": 2585, - "PACKET_CS_WELF_WELFAREINFO": 2586, - "PACKET_SC_WELF_WELFAREINFO": 2587, - "PACKET_CS_WELF_BLINBOXINFO": 2588, - "PACKET_SC_WELF_BLINBOXINFO": 2589, - "PACKET_CS_WELF_GETBLINBOX": 2590, - "PACKET_SC_WELF_GETBLINBOX": 2591, - "PACKET_CS_WELF_FIRSTPAYINFO": 2592, - "PACKET_SC_WELF_FIRSTPAYINFO": 2593, - "PACKET_CS_WELF_FIRSTPAY": 2594, - "PACKET_SC_WELF_FIRSTPAY": 2595, - "PACKET_CS_WELF_CONTINPAYINFO": 2596, - "PACKET_SC_WELF_CONTINPAYINFO": 2597, - "PACKET_CS_WELF_CONTINPAY": 2598, - "PACKET_SC_WELF_CONTINPAY": 2599, - "PACKET_CSWelfRelief": 2900, - "PACKET_SCWelfRelief": 2901, - "PACKET_CSInviteInfo": 2902, - "PACKET_SCInviteInfo": 2903, - "PACKET_CSBindInvite": 2904, - "PACKET_SCBindInvite": 2905, - "PACKET_CSPigbankGetInfo": 2910, - "PACKET_SCPigbankGetInfo": 2911, - "PACKET_CSPigbankTakeCoin": 2912, - "PACKET_SCPigbankTakeCoin": 2913, + "PACKET_SHOP_ZERO": 0, + "PACKET_CS_WELF_GETRELIEFFUND": 2580, + "PACKET_SC_WELF_GETRELIEFFUND": 2581, + "PACKET_CS_WELF_GETTURNPLATE": 2582, + "PACKET_SC_WELF_GETTURNPLATE": 2583, + "PACKET_CS_WELF_GETADDUPSIGN": 2584, + "PACKET_SC_WELF_GETADDUPSIGN": 2585, + "PACKET_CS_WELF_WELFAREINFO": 2586, + "PACKET_SC_WELF_WELFAREINFO": 2587, + "PACKET_CS_WELF_BLINBOXINFO": 2588, + "PACKET_SC_WELF_BLINBOXINFO": 2589, + "PACKET_CS_WELF_GETBLINBOX": 2590, + "PACKET_SC_WELF_GETBLINBOX": 2591, + "PACKET_CS_WELF_FIRSTPAYINFO": 2592, + "PACKET_SC_WELF_FIRSTPAYINFO": 2593, + "PACKET_CS_WELF_FIRSTPAY": 2594, + "PACKET_SC_WELF_FIRSTPAY": 2595, + "PACKET_CS_WELF_CONTINPAYINFO": 2596, + "PACKET_SC_WELF_CONTINPAYINFO": 2597, + "PACKET_CS_WELF_CONTINPAY": 2598, + "PACKET_SC_WELF_CONTINPAY": 2599, + "PACKET_CS_SignDay_Addup2Award": 2600, + "PACKET_SC_SignDay_Addup2Award": 2601, + "PACKET_CSWelfRelief": 2900, + "PACKET_SCWelfRelief": 2901, + "PACKET_CSInviteInfo": 2902, + "PACKET_SCInviteInfo": 2903, + "PACKET_CSBindInvite": 2904, + "PACKET_SCBindInvite": 2905, + "PACKET_CSPigbankGetInfo": 2910, + "PACKET_SCPigbankGetInfo": 2911, + "PACKET_CSPigbankTakeCoin": 2912, + "PACKET_SCPigbankTakeCoin": 2913, } ) @@ -417,6 +423,69 @@ func (x *WelfareDate) GetItem_Id() int32 { return 0 } +type AddUp2TypeDate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Day int32 `protobuf:"varint,1,opt,name=Day,proto3" json:"Day,omitempty"` + Id int32 `protobuf:"varint,2,opt,name=Id,proto3" json:"Id,omitempty"` // 1,代表观看视频 2,代表钻石类型 + Num int32 `protobuf:"varint,3,opt,name=Num,proto3" json:"Num,omitempty"` //数量 +} + +func (x *AddUp2TypeDate) Reset() { + *x = AddUp2TypeDate{} + if protoimpl.UnsafeEnabled { + mi := &file_welfare_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddUp2TypeDate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddUp2TypeDate) ProtoMessage() {} + +func (x *AddUp2TypeDate) ProtoReflect() protoreflect.Message { + mi := &file_welfare_proto_msgTypes[3] + 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 AddUp2TypeDate.ProtoReflect.Descriptor instead. +func (*AddUp2TypeDate) Descriptor() ([]byte, []int) { + return file_welfare_proto_rawDescGZIP(), []int{3} +} + +func (x *AddUp2TypeDate) GetDay() int32 { + if x != nil { + return x.Day + } + return 0 +} + +func (x *AddUp2TypeDate) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *AddUp2TypeDate) GetNum() int32 { + if x != nil { + return x.Num + } + return 0 +} + //转动转盘 //PACKET_CS_WELF_GETTURNPLATE type CSGetTurnplate struct { @@ -430,7 +499,7 @@ type CSGetTurnplate struct { func (x *CSGetTurnplate) Reset() { *x = CSGetTurnplate{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[3] + mi := &file_welfare_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -443,7 +512,7 @@ func (x *CSGetTurnplate) String() string { func (*CSGetTurnplate) ProtoMessage() {} func (x *CSGetTurnplate) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[3] + mi := &file_welfare_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -456,7 +525,7 @@ func (x *CSGetTurnplate) ProtoReflect() protoreflect.Message { // Deprecated: Use CSGetTurnplate.ProtoReflect.Descriptor instead. func (*CSGetTurnplate) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{3} + return file_welfare_proto_rawDescGZIP(), []int{4} } func (x *CSGetTurnplate) GetIsVideo() bool { @@ -482,7 +551,7 @@ type SCGetTurnplate struct { func (x *SCGetTurnplate) Reset() { *x = SCGetTurnplate{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[4] + mi := &file_welfare_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -495,7 +564,7 @@ func (x *SCGetTurnplate) String() string { func (*SCGetTurnplate) ProtoMessage() {} func (x *SCGetTurnplate) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[4] + mi := &file_welfare_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -508,7 +577,7 @@ func (x *SCGetTurnplate) ProtoReflect() protoreflect.Message { // Deprecated: Use SCGetTurnplate.ProtoReflect.Descriptor instead. func (*SCGetTurnplate) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{4} + return file_welfare_proto_rawDescGZIP(), []int{5} } func (x *SCGetTurnplate) GetOpRetCode() OpResultCode { @@ -551,14 +620,16 @@ type AddUpWelfareDate struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - AddUpDay int32 `protobuf:"varint,1,opt,name=AddUpDay,proto3" json:"AddUpDay,omitempty"` // 累计几天 - AddUpDate []*WelfareDate `protobuf:"bytes,2,rep,name=AddUpDate,proto3" json:"AddUpDate,omitempty"` // 累计奖励 + AddUpDay int32 `protobuf:"varint,1,opt,name=AddUpDay,proto3" json:"AddUpDay,omitempty"` // 累计几天 + AddUpDate []*WelfareDate `protobuf:"bytes,2,rep,name=AddUpDate,proto3" json:"AddUpDate,omitempty"` // 累计奖励 + AddUp2Date []*WelfareDate `protobuf:"bytes,3,rep,name=AddUp2Date,proto3" json:"AddUp2Date,omitempty"` //进阶奖励 + AddUp2Type []*AddUp2TypeDate `protobuf:"bytes,4,rep,name=AddUp2Type,proto3" json:"AddUp2Type,omitempty"` //进阶奖励领取条件 } func (x *AddUpWelfareDate) Reset() { *x = AddUpWelfareDate{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[5] + mi := &file_welfare_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -571,7 +642,7 @@ func (x *AddUpWelfareDate) String() string { func (*AddUpWelfareDate) ProtoMessage() {} func (x *AddUpWelfareDate) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[5] + mi := &file_welfare_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -584,7 +655,7 @@ func (x *AddUpWelfareDate) ProtoReflect() protoreflect.Message { // Deprecated: Use AddUpWelfareDate.ProtoReflect.Descriptor instead. func (*AddUpWelfareDate) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{5} + return file_welfare_proto_rawDescGZIP(), []int{6} } func (x *AddUpWelfareDate) GetAddUpDay() int32 { @@ -601,6 +672,20 @@ func (x *AddUpWelfareDate) GetAddUpDate() []*WelfareDate { return nil } +func (x *AddUpWelfareDate) GetAddUp2Date() []*WelfareDate { + if x != nil { + return x.AddUp2Date + } + return nil +} + +func (x *AddUpWelfareDate) GetAddUp2Type() []*AddUp2TypeDate { + if x != nil { + return x.AddUp2Type + } + return nil +} + //累计签到 //PACKET_CS_WELF_GETADDUPSIGN type CSGetAddupSign struct { @@ -614,7 +699,7 @@ type CSGetAddupSign struct { func (x *CSGetAddupSign) Reset() { *x = CSGetAddupSign{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[6] + mi := &file_welfare_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -627,7 +712,7 @@ func (x *CSGetAddupSign) String() string { func (*CSGetAddupSign) ProtoMessage() {} func (x *CSGetAddupSign) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[6] + mi := &file_welfare_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -640,7 +725,7 @@ func (x *CSGetAddupSign) ProtoReflect() protoreflect.Message { // Deprecated: Use CSGetAddupSign.ProtoReflect.Descriptor instead. func (*CSGetAddupSign) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{6} + return file_welfare_proto_rawDescGZIP(), []int{7} } func (x *CSGetAddupSign) GetAddUpDay() int32 { @@ -664,7 +749,7 @@ type SCGetAddupSign struct { func (x *SCGetAddupSign) Reset() { *x = SCGetAddupSign{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[7] + mi := &file_welfare_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -677,7 +762,7 @@ func (x *SCGetAddupSign) String() string { func (*SCGetAddupSign) ProtoMessage() {} func (x *SCGetAddupSign) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[7] + mi := &file_welfare_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -690,7 +775,7 @@ func (x *SCGetAddupSign) ProtoReflect() protoreflect.Message { // Deprecated: Use SCGetAddupSign.ProtoReflect.Descriptor instead. func (*SCGetAddupSign) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{7} + return file_welfare_proto_rawDescGZIP(), []int{8} } func (x *SCGetAddupSign) GetOpRetCode() OpResultCode { @@ -725,7 +810,7 @@ type CSWelfaredInfo struct { func (x *CSWelfaredInfo) Reset() { *x = CSWelfaredInfo{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[8] + mi := &file_welfare_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -738,7 +823,7 @@ func (x *CSWelfaredInfo) String() string { func (*CSWelfaredInfo) ProtoMessage() {} func (x *CSWelfaredInfo) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[8] + mi := &file_welfare_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -751,7 +836,7 @@ func (x *CSWelfaredInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use CSWelfaredInfo.ProtoReflect.Descriptor instead. func (*CSWelfaredInfo) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{8} + return file_welfare_proto_rawDescGZIP(), []int{9} } type WelfareTurnplateDate struct { @@ -766,7 +851,7 @@ type WelfareTurnplateDate struct { func (x *WelfareTurnplateDate) Reset() { *x = WelfareTurnplateDate{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[9] + mi := &file_welfare_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -779,7 +864,7 @@ func (x *WelfareTurnplateDate) String() string { func (*WelfareTurnplateDate) ProtoMessage() {} func (x *WelfareTurnplateDate) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[9] + mi := &file_welfare_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -792,7 +877,7 @@ func (x *WelfareTurnplateDate) ProtoReflect() protoreflect.Message { // Deprecated: Use WelfareTurnplateDate.ProtoReflect.Descriptor instead. func (*WelfareTurnplateDate) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{9} + return file_welfare_proto_rawDescGZIP(), []int{10} } func (x *WelfareTurnplateDate) GetId() int32 { @@ -822,7 +907,7 @@ type Welfare7SignDate struct { func (x *Welfare7SignDate) Reset() { *x = Welfare7SignDate{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[10] + mi := &file_welfare_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -835,7 +920,7 @@ func (x *Welfare7SignDate) String() string { func (*Welfare7SignDate) ProtoMessage() {} func (x *Welfare7SignDate) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[10] + mi := &file_welfare_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -848,7 +933,7 @@ func (x *Welfare7SignDate) ProtoReflect() protoreflect.Message { // Deprecated: Use Welfare7SignDate.ProtoReflect.Descriptor instead. func (*Welfare7SignDate) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{10} + return file_welfare_proto_rawDescGZIP(), []int{11} } func (x *Welfare7SignDate) GetDay() int32 { @@ -872,6 +957,69 @@ func (x *Welfare7SignDate) GetAddUpDate() []*AddUpWelfareDate { return nil } +type Addup2Data struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Day int32 `protobuf:"varint,1,opt,name=Day,proto3" json:"Day,omitempty"` //天数 + Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` //任务次数 + EndTime int64 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //结束时间戳 -1代表已领取 +} + +func (x *Addup2Data) Reset() { + *x = Addup2Data{} + if protoimpl.UnsafeEnabled { + mi := &file_welfare_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Addup2Data) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Addup2Data) ProtoMessage() {} + +func (x *Addup2Data) ProtoReflect() protoreflect.Message { + mi := &file_welfare_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Addup2Data.ProtoReflect.Descriptor instead. +func (*Addup2Data) Descriptor() ([]byte, []int) { + return file_welfare_proto_rawDescGZIP(), []int{12} +} + +func (x *Addup2Data) GetDay() int32 { + if x != nil { + return x.Day + } + return 0 +} + +func (x *Addup2Data) GetNum() int32 { + if x != nil { + return x.Num + } + return 0 +} + +func (x *Addup2Data) GetEndTime() int64 { + if x != nil { + return x.EndTime + } + return 0 +} + //PACKET_SC_WELF_WELFAREINFO type SCWelfaredInfo struct { state protoimpl.MessageState @@ -885,12 +1033,13 @@ type SCWelfaredInfo struct { AddUpSignDay []int32 `protobuf:"varint,5,rep,packed,name=AddUpSignDay,proto3" json:"AddUpSignDay,omitempty"` // 已领取累计奖励天数 TurnplateIdx []int32 `protobuf:"varint,6,rep,packed,name=TurnplateIdx,proto3" json:"TurnplateIdx,omitempty"` // 已领取转盘奖励下标0开始 Switch int32 `protobuf:"varint,7,opt,name=Switch,proto3" json:"Switch,omitempty"` // 1.开启 2.关闭 + Addup2 []*Addup2Data `protobuf:"bytes,8,rep,name=Addup2,proto3" json:"Addup2,omitempty"` //七日签到进阶奖励数据 } func (x *SCWelfaredInfo) Reset() { *x = SCWelfaredInfo{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[11] + mi := &file_welfare_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -903,7 +1052,7 @@ func (x *SCWelfaredInfo) String() string { func (*SCWelfaredInfo) ProtoMessage() {} func (x *SCWelfaredInfo) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[11] + mi := &file_welfare_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -916,7 +1065,7 @@ func (x *SCWelfaredInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use SCWelfaredInfo.ProtoReflect.Descriptor instead. func (*SCWelfaredInfo) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{11} + return file_welfare_proto_rawDescGZIP(), []int{13} } func (x *SCWelfaredInfo) GetTlist() []*WelfareTurnplateDate { @@ -968,6 +1117,126 @@ func (x *SCWelfaredInfo) GetSwitch() int32 { return 0 } +func (x *SCWelfaredInfo) GetAddup2() []*Addup2Data { + if x != nil { + return x.Addup2 + } + return nil +} + +//领取7日签到累计进阶奖励 +//PACKET_CS_SignDay_Addup2Award +type CSSignDayAddup2Award struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Day int32 `protobuf:"varint,1,opt,name=Day,proto3" json:"Day,omitempty"` +} + +func (x *CSSignDayAddup2Award) Reset() { + *x = CSSignDayAddup2Award{} + if protoimpl.UnsafeEnabled { + mi := &file_welfare_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSSignDayAddup2Award) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSSignDayAddup2Award) ProtoMessage() {} + +func (x *CSSignDayAddup2Award) ProtoReflect() protoreflect.Message { + mi := &file_welfare_proto_msgTypes[14] + 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 CSSignDayAddup2Award.ProtoReflect.Descriptor instead. +func (*CSSignDayAddup2Award) Descriptor() ([]byte, []int) { + return file_welfare_proto_rawDescGZIP(), []int{14} +} + +func (x *CSSignDayAddup2Award) GetDay() int32 { + if x != nil { + return x.Day + } + return 0 +} + +//PACKET_SC_SignDay_Addup2Award +type SCSignDayAddup2Award struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Day int32 `protobuf:"varint,1,opt,name=Day,proto3" json:"Day,omitempty"` //天数 + Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` //任务次数 + EndTime int64 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //结束时间戳 -1代表已领取 +} + +func (x *SCSignDayAddup2Award) Reset() { + *x = SCSignDayAddup2Award{} + if protoimpl.UnsafeEnabled { + mi := &file_welfare_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCSignDayAddup2Award) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCSignDayAddup2Award) ProtoMessage() {} + +func (x *SCSignDayAddup2Award) ProtoReflect() protoreflect.Message { + mi := &file_welfare_proto_msgTypes[15] + 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 SCSignDayAddup2Award.ProtoReflect.Descriptor instead. +func (*SCSignDayAddup2Award) Descriptor() ([]byte, []int) { + return file_welfare_proto_rawDescGZIP(), []int{15} +} + +func (x *SCSignDayAddup2Award) GetDay() int32 { + if x != nil { + return x.Day + } + return 0 +} + +func (x *SCSignDayAddup2Award) GetNum() int32 { + if x != nil { + return x.Num + } + return 0 +} + +func (x *SCSignDayAddup2Award) GetEndTime() int64 { + if x != nil { + return x.EndTime + } + return 0 +} + type BlindBoxData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -987,7 +1256,7 @@ type BlindBoxData struct { func (x *BlindBoxData) Reset() { *x = BlindBoxData{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[12] + mi := &file_welfare_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1000,7 +1269,7 @@ func (x *BlindBoxData) String() string { func (*BlindBoxData) ProtoMessage() {} func (x *BlindBoxData) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[12] + mi := &file_welfare_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1013,7 +1282,7 @@ func (x *BlindBoxData) ProtoReflect() protoreflect.Message { // Deprecated: Use BlindBoxData.ProtoReflect.Descriptor instead. func (*BlindBoxData) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{12} + return file_welfare_proto_rawDescGZIP(), []int{16} } func (x *BlindBoxData) GetId() int32 { @@ -1092,7 +1361,7 @@ type CSBlindBoxInfo struct { func (x *CSBlindBoxInfo) Reset() { *x = CSBlindBoxInfo{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[13] + mi := &file_welfare_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1105,7 +1374,7 @@ func (x *CSBlindBoxInfo) String() string { func (*CSBlindBoxInfo) ProtoMessage() {} func (x *CSBlindBoxInfo) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[13] + mi := &file_welfare_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1118,7 +1387,7 @@ func (x *CSBlindBoxInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use CSBlindBoxInfo.ProtoReflect.Descriptor instead. func (*CSBlindBoxInfo) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{13} + return file_welfare_proto_rawDescGZIP(), []int{17} } func (x *CSBlindBoxInfo) GetId() int32 { @@ -1144,7 +1413,7 @@ type SCBlindBoxInfo struct { func (x *SCBlindBoxInfo) Reset() { *x = SCBlindBoxInfo{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[14] + mi := &file_welfare_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1157,7 +1426,7 @@ func (x *SCBlindBoxInfo) String() string { func (*SCBlindBoxInfo) ProtoMessage() {} func (x *SCBlindBoxInfo) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[14] + mi := &file_welfare_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1170,7 +1439,7 @@ func (x *SCBlindBoxInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use SCBlindBoxInfo.ProtoReflect.Descriptor instead. func (*SCBlindBoxInfo) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{14} + return file_welfare_proto_rawDescGZIP(), []int{18} } func (x *SCBlindBoxInfo) GetOpRetCode() OpResultCode { @@ -1221,7 +1490,7 @@ type CSGetBlindBox struct { func (x *CSGetBlindBox) Reset() { *x = CSGetBlindBox{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[15] + mi := &file_welfare_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1234,7 +1503,7 @@ func (x *CSGetBlindBox) String() string { func (*CSGetBlindBox) ProtoMessage() {} func (x *CSGetBlindBox) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[15] + mi := &file_welfare_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1247,7 +1516,7 @@ func (x *CSGetBlindBox) ProtoReflect() protoreflect.Message { // Deprecated: Use CSGetBlindBox.ProtoReflect.Descriptor instead. func (*CSGetBlindBox) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{15} + return file_welfare_proto_rawDescGZIP(), []int{19} } func (x *CSGetBlindBox) GetId() int32 { @@ -1269,7 +1538,7 @@ type SCGetBlindBox struct { func (x *SCGetBlindBox) Reset() { *x = SCGetBlindBox{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[16] + mi := &file_welfare_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1282,7 +1551,7 @@ func (x *SCGetBlindBox) String() string { func (*SCGetBlindBox) ProtoMessage() {} func (x *SCGetBlindBox) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[16] + mi := &file_welfare_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1295,7 +1564,7 @@ func (x *SCGetBlindBox) ProtoReflect() protoreflect.Message { // Deprecated: Use SCGetBlindBox.ProtoReflect.Descriptor instead. func (*SCGetBlindBox) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{16} + return file_welfare_proto_rawDescGZIP(), []int{20} } func (x *SCGetBlindBox) GetOpRetCode() OpResultCode { @@ -1322,7 +1591,7 @@ type WelfareSpree struct { func (x *WelfareSpree) Reset() { *x = WelfareSpree{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[17] + mi := &file_welfare_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1335,7 +1604,7 @@ func (x *WelfareSpree) String() string { func (*WelfareSpree) ProtoMessage() {} func (x *WelfareSpree) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[17] + mi := &file_welfare_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1348,7 +1617,7 @@ func (x *WelfareSpree) ProtoReflect() protoreflect.Message { // Deprecated: Use WelfareSpree.ProtoReflect.Descriptor instead. func (*WelfareSpree) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{17} + return file_welfare_proto_rawDescGZIP(), []int{21} } func (x *WelfareSpree) GetDay() int32 { @@ -1410,7 +1679,7 @@ type CSWelfareFirstPayData struct { func (x *CSWelfareFirstPayData) Reset() { *x = CSWelfareFirstPayData{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[18] + mi := &file_welfare_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1423,7 +1692,7 @@ func (x *CSWelfareFirstPayData) String() string { func (*CSWelfareFirstPayData) ProtoMessage() {} func (x *CSWelfareFirstPayData) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[18] + mi := &file_welfare_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1436,7 +1705,7 @@ func (x *CSWelfareFirstPayData) ProtoReflect() protoreflect.Message { // Deprecated: Use CSWelfareFirstPayData.ProtoReflect.Descriptor instead. func (*CSWelfareFirstPayData) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{18} + return file_welfare_proto_rawDescGZIP(), []int{22} } //PACKET_SC_WELF_FIRSTPAYINFO @@ -1455,7 +1724,7 @@ type SCWelfareFirstPayData struct { func (x *SCWelfareFirstPayData) Reset() { *x = SCWelfareFirstPayData{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[19] + mi := &file_welfare_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1468,7 +1737,7 @@ func (x *SCWelfareFirstPayData) String() string { func (*SCWelfareFirstPayData) ProtoMessage() {} func (x *SCWelfareFirstPayData) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[19] + mi := &file_welfare_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1481,7 +1750,7 @@ func (x *SCWelfareFirstPayData) ProtoReflect() protoreflect.Message { // Deprecated: Use SCWelfareFirstPayData.ProtoReflect.Descriptor instead. func (*SCWelfareFirstPayData) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{19} + return file_welfare_proto_rawDescGZIP(), []int{23} } func (x *SCWelfareFirstPayData) GetOpRetCode() OpResultCode { @@ -1529,7 +1798,7 @@ type CSWelfareFirstPay struct { func (x *CSWelfareFirstPay) Reset() { *x = CSWelfareFirstPay{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[20] + mi := &file_welfare_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1542,7 +1811,7 @@ func (x *CSWelfareFirstPay) String() string { func (*CSWelfareFirstPay) ProtoMessage() {} func (x *CSWelfareFirstPay) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[20] + mi := &file_welfare_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1555,7 +1824,7 @@ func (x *CSWelfareFirstPay) ProtoReflect() protoreflect.Message { // Deprecated: Use CSWelfareFirstPay.ProtoReflect.Descriptor instead. func (*CSWelfareFirstPay) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{20} + return file_welfare_proto_rawDescGZIP(), []int{24} } //PACKET_SC_WELF_FIRSTPAY @@ -1570,7 +1839,7 @@ type SCWelfareFirstPay struct { func (x *SCWelfareFirstPay) Reset() { *x = SCWelfareFirstPay{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[21] + mi := &file_welfare_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1583,7 +1852,7 @@ func (x *SCWelfareFirstPay) String() string { func (*SCWelfareFirstPay) ProtoMessage() {} func (x *SCWelfareFirstPay) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[21] + mi := &file_welfare_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1596,7 +1865,7 @@ func (x *SCWelfareFirstPay) ProtoReflect() protoreflect.Message { // Deprecated: Use SCWelfareFirstPay.ProtoReflect.Descriptor instead. func (*SCWelfareFirstPay) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{21} + return file_welfare_proto_rawDescGZIP(), []int{25} } func (x *SCWelfareFirstPay) GetOpRetCode() OpResultCode { @@ -1616,7 +1885,7 @@ type CSWelfareContinuousPayData struct { func (x *CSWelfareContinuousPayData) Reset() { *x = CSWelfareContinuousPayData{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[22] + mi := &file_welfare_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1629,7 +1898,7 @@ func (x *CSWelfareContinuousPayData) String() string { func (*CSWelfareContinuousPayData) ProtoMessage() {} func (x *CSWelfareContinuousPayData) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[22] + mi := &file_welfare_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1642,7 +1911,7 @@ func (x *CSWelfareContinuousPayData) ProtoReflect() protoreflect.Message { // Deprecated: Use CSWelfareContinuousPayData.ProtoReflect.Descriptor instead. func (*CSWelfareContinuousPayData) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{22} + return file_welfare_proto_rawDescGZIP(), []int{26} } //PACKET_SC_WELF_CONTINPAYINFO @@ -1662,7 +1931,7 @@ type SCWelfareContinuousPayData struct { func (x *SCWelfareContinuousPayData) Reset() { *x = SCWelfareContinuousPayData{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[23] + mi := &file_welfare_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1675,7 +1944,7 @@ func (x *SCWelfareContinuousPayData) String() string { func (*SCWelfareContinuousPayData) ProtoMessage() {} func (x *SCWelfareContinuousPayData) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[23] + mi := &file_welfare_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1688,7 +1957,7 @@ func (x *SCWelfareContinuousPayData) ProtoReflect() protoreflect.Message { // Deprecated: Use SCWelfareContinuousPayData.ProtoReflect.Descriptor instead. func (*SCWelfareContinuousPayData) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{23} + return file_welfare_proto_rawDescGZIP(), []int{27} } func (x *SCWelfareContinuousPayData) GetOpRetCode() OpResultCode { @@ -1743,7 +2012,7 @@ type CSWelfareContinuousPay struct { func (x *CSWelfareContinuousPay) Reset() { *x = CSWelfareContinuousPay{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[24] + mi := &file_welfare_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1756,7 +2025,7 @@ func (x *CSWelfareContinuousPay) String() string { func (*CSWelfareContinuousPay) ProtoMessage() {} func (x *CSWelfareContinuousPay) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[24] + mi := &file_welfare_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1769,7 +2038,7 @@ func (x *CSWelfareContinuousPay) ProtoReflect() protoreflect.Message { // Deprecated: Use CSWelfareContinuousPay.ProtoReflect.Descriptor instead. func (*CSWelfareContinuousPay) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{24} + return file_welfare_proto_rawDescGZIP(), []int{28} } //PACKET_SC_WELF_CONTINPAY @@ -1784,7 +2053,7 @@ type SCWelfareContinuousPay struct { func (x *SCWelfareContinuousPay) Reset() { *x = SCWelfareContinuousPay{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[25] + mi := &file_welfare_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1797,7 +2066,7 @@ func (x *SCWelfareContinuousPay) String() string { func (*SCWelfareContinuousPay) ProtoMessage() {} func (x *SCWelfareContinuousPay) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[25] + mi := &file_welfare_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1810,7 +2079,7 @@ func (x *SCWelfareContinuousPay) ProtoReflect() protoreflect.Message { // Deprecated: Use SCWelfareContinuousPay.ProtoReflect.Descriptor instead. func (*SCWelfareContinuousPay) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{25} + return file_welfare_proto_rawDescGZIP(), []int{29} } func (x *SCWelfareContinuousPay) GetOpRetCode() OpResultCode { @@ -1831,7 +2100,7 @@ type CSWelfareRelief struct { func (x *CSWelfareRelief) Reset() { *x = CSWelfareRelief{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[26] + mi := &file_welfare_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1844,7 +2113,7 @@ func (x *CSWelfareRelief) String() string { func (*CSWelfareRelief) ProtoMessage() {} func (x *CSWelfareRelief) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[26] + mi := &file_welfare_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1857,7 +2126,7 @@ func (x *CSWelfareRelief) ProtoReflect() protoreflect.Message { // Deprecated: Use CSWelfareRelief.ProtoReflect.Descriptor instead. func (*CSWelfareRelief) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{26} + return file_welfare_proto_rawDescGZIP(), []int{30} } // PACKET_SCWelfRelief @@ -1874,7 +2143,7 @@ type SCWelfareRelief struct { func (x *SCWelfareRelief) Reset() { *x = SCWelfareRelief{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[27] + mi := &file_welfare_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1887,7 +2156,7 @@ func (x *SCWelfareRelief) String() string { func (*SCWelfareRelief) ProtoMessage() {} func (x *SCWelfareRelief) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[27] + mi := &file_welfare_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1900,7 +2169,7 @@ func (x *SCWelfareRelief) ProtoReflect() protoreflect.Message { // Deprecated: Use SCWelfareRelief.ProtoReflect.Descriptor instead. func (*SCWelfareRelief) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{27} + return file_welfare_proto_rawDescGZIP(), []int{31} } func (x *SCWelfareRelief) GetLimitNum() int32 { @@ -1935,7 +2204,7 @@ type CSInviteInfo struct { func (x *CSInviteInfo) Reset() { *x = CSInviteInfo{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[28] + mi := &file_welfare_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1948,7 +2217,7 @@ func (x *CSInviteInfo) String() string { func (*CSInviteInfo) ProtoMessage() {} func (x *CSInviteInfo) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[28] + mi := &file_welfare_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1961,7 +2230,7 @@ func (x *CSInviteInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use CSInviteInfo.ProtoReflect.Descriptor instead. func (*CSInviteInfo) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{28} + return file_welfare_proto_rawDescGZIP(), []int{32} } // PACKET_SCInviteInfo @@ -1980,7 +2249,7 @@ type SCInviteInfo struct { func (x *SCInviteInfo) Reset() { *x = SCInviteInfo{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[29] + mi := &file_welfare_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1993,7 +2262,7 @@ func (x *SCInviteInfo) String() string { func (*SCInviteInfo) ProtoMessage() {} func (x *SCInviteInfo) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[29] + mi := &file_welfare_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2006,7 +2275,7 @@ func (x *SCInviteInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use SCInviteInfo.ProtoReflect.Descriptor instead. func (*SCInviteInfo) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{29} + return file_welfare_proto_rawDescGZIP(), []int{33} } func (x *SCInviteInfo) GetNum() int32 { @@ -2057,7 +2326,7 @@ type CSBindInvite struct { func (x *CSBindInvite) Reset() { *x = CSBindInvite{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[30] + mi := &file_welfare_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2070,7 +2339,7 @@ func (x *CSBindInvite) String() string { func (*CSBindInvite) ProtoMessage() {} func (x *CSBindInvite) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[30] + mi := &file_welfare_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2083,7 +2352,7 @@ func (x *CSBindInvite) ProtoReflect() protoreflect.Message { // Deprecated: Use CSBindInvite.ProtoReflect.Descriptor instead. func (*CSBindInvite) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{30} + return file_welfare_proto_rawDescGZIP(), []int{34} } func (x *CSBindInvite) GetCode() string { @@ -2105,7 +2374,7 @@ type SCBindInvite struct { func (x *SCBindInvite) Reset() { *x = SCBindInvite{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[31] + mi := &file_welfare_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2118,7 +2387,7 @@ func (x *SCBindInvite) String() string { func (*SCBindInvite) ProtoMessage() {} func (x *SCBindInvite) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[31] + mi := &file_welfare_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2131,7 +2400,7 @@ func (x *SCBindInvite) ProtoReflect() protoreflect.Message { // Deprecated: Use SCBindInvite.ProtoReflect.Descriptor instead. func (*SCBindInvite) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{31} + return file_welfare_proto_rawDescGZIP(), []int{35} } func (x *SCBindInvite) GetOpRetCode() OpResultCode { @@ -2152,7 +2421,7 @@ type CSPigbankGetInfo struct { func (x *CSPigbankGetInfo) Reset() { *x = CSPigbankGetInfo{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[32] + mi := &file_welfare_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2165,7 +2434,7 @@ func (x *CSPigbankGetInfo) String() string { func (*CSPigbankGetInfo) ProtoMessage() {} func (x *CSPigbankGetInfo) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[32] + mi := &file_welfare_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2178,7 +2447,7 @@ func (x *CSPigbankGetInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use CSPigbankGetInfo.ProtoReflect.Descriptor instead. func (*CSPigbankGetInfo) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{32} + return file_welfare_proto_rawDescGZIP(), []int{36} } // 存钱罐信息 @@ -2199,7 +2468,7 @@ type SCPigbankGetInfo struct { func (x *SCPigbankGetInfo) Reset() { *x = SCPigbankGetInfo{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[33] + mi := &file_welfare_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2212,7 +2481,7 @@ func (x *SCPigbankGetInfo) String() string { func (*SCPigbankGetInfo) ProtoMessage() {} func (x *SCPigbankGetInfo) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[33] + mi := &file_welfare_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2225,7 +2494,7 @@ func (x *SCPigbankGetInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use SCPigbankGetInfo.ProtoReflect.Descriptor instead. func (*SCPigbankGetInfo) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{33} + return file_welfare_proto_rawDescGZIP(), []int{37} } func (x *SCPigbankGetInfo) GetOpRetCode() OpResultCode { @@ -2281,7 +2550,7 @@ type CSPigbankTakeCoin struct { func (x *CSPigbankTakeCoin) Reset() { *x = CSPigbankTakeCoin{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[34] + mi := &file_welfare_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2294,7 +2563,7 @@ func (x *CSPigbankTakeCoin) String() string { func (*CSPigbankTakeCoin) ProtoMessage() {} func (x *CSPigbankTakeCoin) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[34] + mi := &file_welfare_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2307,7 +2576,7 @@ func (x *CSPigbankTakeCoin) ProtoReflect() protoreflect.Message { // Deprecated: Use CSPigbankTakeCoin.ProtoReflect.Descriptor instead. func (*CSPigbankTakeCoin) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{34} + return file_welfare_proto_rawDescGZIP(), []int{38} } // 存钱罐领取金币 @@ -2328,7 +2597,7 @@ type SCPigbankTakeCoin struct { func (x *SCPigbankTakeCoin) Reset() { *x = SCPigbankTakeCoin{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[35] + mi := &file_welfare_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2341,7 +2610,7 @@ func (x *SCPigbankTakeCoin) String() string { func (*SCPigbankTakeCoin) ProtoMessage() {} func (x *SCPigbankTakeCoin) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[35] + mi := &file_welfare_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2354,7 +2623,7 @@ func (x *SCPigbankTakeCoin) ProtoReflect() protoreflect.Message { // Deprecated: Use SCPigbankTakeCoin.ProtoReflect.Descriptor instead. func (*SCPigbankTakeCoin) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{35} + return file_welfare_proto_rawDescGZIP(), []int{39} } func (x *SCPigbankTakeCoin) GetOpRetCode() OpResultCode { @@ -2419,296 +2688,327 @@ var file_welfare_proto_rawDesc = []byte{ 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x5f, 0x49, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x22, 0x2a, 0x0a, - 0x0e, 0x43, 0x53, 0x47, 0x65, 0x74, 0x54, 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x49, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x07, 0x49, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x22, 0xb5, 0x01, 0x0a, 0x0e, 0x53, 0x43, - 0x47, 0x65, 0x74, 0x54, 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x33, 0x0a, 0x09, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x22, 0x44, 0x0a, + 0x0e, 0x41, 0x64, 0x64, 0x55, 0x70, 0x32, 0x54, 0x79, 0x70, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, + 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, + 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x4e, 0x75, 0x6d, 0x22, 0x2a, 0x0a, 0x0e, 0x43, 0x53, 0x47, 0x65, 0x74, 0x54, 0x75, 0x72, 0x6e, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x49, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x22, + 0xb5, 0x01, 0x0a, 0x0e, 0x53, 0x43, 0x47, 0x65, 0x74, 0x54, 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, + 0x74, 0x65, 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, 0x28, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, + 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x44, 0x61, 0x74, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x49, 0x64, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x49, 0x64, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x12, 0x18, 0x0a, + 0x07, 0x49, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x49, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x22, 0xd1, 0x01, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x55, + 0x70, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x79, 0x12, 0x32, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x55, + 0x70, 0x44, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, + 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, + 0x65, 0x52, 0x09, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x0a, + 0x41, 0x64, 0x64, 0x55, 0x70, 0x32, 0x44, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, + 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x41, 0x64, 0x64, 0x55, 0x70, 0x32, 0x44, 0x61, + 0x74, 0x65, 0x12, 0x37, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x55, 0x70, 0x32, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, + 0x2e, 0x41, 0x64, 0x64, 0x55, 0x70, 0x32, 0x54, 0x79, 0x70, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, + 0x0a, 0x41, 0x64, 0x64, 0x55, 0x70, 0x32, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2c, 0x0a, 0x0e, 0x43, + 0x53, 0x47, 0x65, 0x74, 0x41, 0x64, 0x64, 0x75, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x1a, 0x0a, + 0x08, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x79, 0x22, 0x98, 0x01, 0x0a, 0x0e, 0x53, 0x43, + 0x47, 0x65, 0x74, 0x41, 0x64, 0x64, 0x75, 0x70, 0x53, 0x69, 0x67, 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, 0x28, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, - 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x49, - 0x64, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x49, 0x64, 0x78, 0x12, 0x18, 0x0a, + 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x70, 0x57, + 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, + 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x55, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x41, 0x64, 0x64, 0x55, 0x70, 0x53, 0x69, 0x67, + 0x6e, 0x44, 0x61, 0x79, 0x22, 0x10, 0x0a, 0x0e, 0x43, 0x53, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, + 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x50, 0x0a, 0x14, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, + 0x65, 0x54, 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x28, + 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, + 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, + 0x74, 0x65, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x10, 0x57, 0x65, 0x6c, + 0x66, 0x61, 0x72, 0x65, 0x37, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, 0x79, 0x12, + 0x28, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, + 0x61, 0x74, 0x65, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x09, 0x41, 0x64, 0x64, + 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x77, + 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x70, 0x57, 0x65, 0x6c, 0x66, + 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x09, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, + 0x74, 0x65, 0x22, 0x4a, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x75, 0x70, 0x32, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x10, 0x0a, 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, + 0x61, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xc3, + 0x02, 0x0a, 0x0e, 0x53, 0x43, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x33, 0x0a, 0x05, 0x54, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, + 0x72, 0x65, 0x54, 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, + 0x05, 0x54, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x05, 0x53, 0x6c, 0x69, 0x73, 0x74, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, + 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x37, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x65, + 0x52, 0x05, 0x53, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x72, 0x61, 0x77, 0x54, + 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, + 0x44, 0x72, 0x61, 0x77, 0x54, 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x73, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x49, 0x73, 0x56, 0x69, 0x64, 0x65, - 0x6f, 0x22, 0x62, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x55, 0x70, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, - 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, - 0x79, 0x12, 0x32, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x57, - 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x09, 0x41, 0x64, 0x64, 0x55, - 0x70, 0x44, 0x61, 0x74, 0x65, 0x22, 0x2c, 0x0a, 0x0e, 0x43, 0x53, 0x47, 0x65, 0x74, 0x41, 0x64, - 0x64, 0x75, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x55, 0x70, - 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x64, 0x64, 0x55, 0x70, - 0x44, 0x61, 0x79, 0x22, 0x98, 0x01, 0x0a, 0x0e, 0x53, 0x43, 0x47, 0x65, 0x74, 0x41, 0x64, 0x64, - 0x75, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x33, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, + 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x55, 0x70, + 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x41, + 0x64, 0x64, 0x55, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x54, + 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x78, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x0c, 0x54, 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x78, 0x12, + 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x2b, 0x0a, 0x06, 0x41, 0x64, 0x64, 0x75, 0x70, + 0x32, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, + 0x65, 0x2e, 0x41, 0x64, 0x64, 0x75, 0x70, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x41, 0x64, + 0x64, 0x75, 0x70, 0x32, 0x22, 0x28, 0x0a, 0x14, 0x43, 0x53, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, + 0x79, 0x41, 0x64, 0x64, 0x75, 0x70, 0x32, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, + 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, 0x79, 0x22, 0x54, + 0x0a, 0x14, 0x53, 0x43, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x41, 0x64, 0x64, 0x75, 0x70, + 0x32, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, 0x6e, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x22, 0xdb, 0x01, 0x0a, 0x0c, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, + 0x78, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, + 0x61, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x12, 0x1a, 0x0a, + 0x08, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x08, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x49, 0x74, 0x65, + 0x6d, 0x5f, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, + 0x49, 0x64, 0x22, 0x20, 0x0a, 0x0e, 0x43, 0x53, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, 0x78, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x22, 0xb0, 0x01, 0x0a, 0x0e, 0x53, 0x43, 0x42, 0x6c, 0x69, 0x6e, 0x64, + 0x42, 0x6f, 0x78, 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, 0x29, 0x0a, 0x04, + 0x44, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x77, 0x65, 0x6c, + 0x66, 0x61, 0x72, 0x65, 0x2e, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x69, 0x6e, 0x49, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4d, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x44, 0x72, 0x61, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x44, 0x72, 0x61, + 0x77, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x22, 0x1f, 0x0a, 0x0d, 0x43, 0x53, 0x47, 0x65, 0x74, + 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, 0x78, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x44, 0x0a, 0x0d, 0x53, 0x43, 0x47, 0x65, + 0x74, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, 0x78, 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, 0x22, 0xc6, + 0x01, 0x0a, 0x0c, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x53, 0x70, 0x72, 0x65, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, + 0x79, 0x12, 0x28, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, + 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x56, + 0x49, 0x50, 0x45, 0x58, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x49, 0x50, 0x45, + 0x58, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, + 0x63, 0x65, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x44, + 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x44, + 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x17, 0x0a, 0x15, 0x43, 0x53, 0x57, 0x65, 0x6c, + 0x66, 0x61, 0x72, 0x65, 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, 0x61, 0x79, 0x44, 0x61, 0x74, 0x61, + 0x22, 0xb9, 0x01, 0x0a, 0x15, 0x53, 0x43, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x46, 0x69, + 0x72, 0x73, 0x74, 0x50, 0x61, 0x79, 0x44, 0x61, 0x74, 0x61, 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, + 0x29, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x53, + 0x70, 0x72, 0x65, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 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, 0x12, 0x0a, 0x04, 0x44, 0x72, 0x61, 0x77, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x44, 0x72, 0x61, 0x77, 0x22, 0x13, 0x0a, 0x11, + 0x43, 0x53, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, 0x61, + 0x79, 0x22, 0x48, 0x0a, 0x11, 0x53, 0x43, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x46, 0x69, + 0x72, 0x73, 0x74, 0x50, 0x61, 0x79, 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, 0x2d, 0x0a, 0x04, 0x44, - 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x77, 0x65, 0x6c, 0x66, - 0x61, 0x72, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x70, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, - 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x64, - 0x64, 0x55, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x0c, 0x41, 0x64, 0x64, 0x55, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x22, 0x10, - 0x0a, 0x0e, 0x43, 0x53, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, - 0x22, 0x50, 0x0a, 0x14, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x54, 0x75, 0x72, 0x6e, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, - 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x44, 0x61, - 0x74, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x10, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x37, 0x53, - 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, 0x79, 0x12, 0x28, 0x0a, 0x04, 0x44, 0x61, 0x74, - 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, - 0x65, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x44, - 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, - 0x2e, 0x41, 0x64, 0x64, 0x55, 0x70, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, - 0x65, 0x52, 0x09, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x22, 0x96, 0x02, 0x0a, - 0x0e, 0x53, 0x43, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x33, 0x0a, 0x05, 0x54, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, - 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, - 0x54, 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x05, 0x54, - 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x05, 0x53, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x57, 0x65, - 0x6c, 0x66, 0x61, 0x72, 0x65, 0x37, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x05, - 0x53, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x72, 0x61, 0x77, 0x54, 0x75, 0x72, - 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x44, 0x72, - 0x61, 0x77, 0x54, 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, - 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x69, - 0x67, 0x6e, 0x44, 0x61, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x55, 0x70, 0x53, 0x69, - 0x67, 0x6e, 0x44, 0x61, 0x79, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x41, 0x64, 0x64, - 0x55, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x75, 0x72, - 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x78, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, - 0x0c, 0x54, 0x75, 0x72, 0x6e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x78, 0x12, 0x16, 0x0a, - 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0xdb, 0x01, 0x0a, 0x0c, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, - 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, - 0x72, 0x61, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, - 0x70, 0x72, 0x69, 0x63, 0x65, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x12, 0x1a, - 0x0a, 0x08, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, - 0x52, 0x08, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x49, 0x74, - 0x65, 0x6d, 0x5f, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, - 0x6d, 0x49, 0x64, 0x22, 0x20, 0x0a, 0x0e, 0x43, 0x53, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, - 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0xb0, 0x01, 0x0a, 0x0e, 0x53, 0x43, 0x42, 0x6c, 0x69, 0x6e, - 0x64, 0x42, 0x6f, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x33, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, + 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x1c, 0x0a, 0x1a, 0x43, + 0x53, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, + 0x75, 0x73, 0x50, 0x61, 0x79, 0x44, 0x61, 0x74, 0x61, 0x22, 0xd0, 0x01, 0x0a, 0x1a, 0x53, 0x43, + 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, + 0x73, 0x50, 0x61, 0x79, 0x44, 0x61, 0x74, 0x61, 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, 0x29, 0x0a, - 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x77, 0x65, - 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, 0x78, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x69, 0x6e, 0x49, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4d, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x44, 0x72, 0x61, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x44, 0x72, - 0x61, 0x77, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x22, 0x1f, 0x0a, 0x0d, 0x43, 0x53, 0x47, 0x65, - 0x74, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, 0x78, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x44, 0x0a, 0x0d, 0x53, 0x43, 0x47, - 0x65, 0x74, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, 0x78, 0x12, 0x33, 0x0a, 0x09, 0x4f, 0x70, + 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x77, 0x65, + 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x53, 0x70, 0x72, + 0x65, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 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, 0x12, 0x0a, 0x04, 0x44, 0x72, 0x61, 0x77, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x44, 0x72, 0x61, 0x77, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x61, + 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, 0x79, 0x22, 0x18, 0x0a, 0x16, + 0x43, 0x53, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, + 0x6f, 0x75, 0x73, 0x50, 0x61, 0x79, 0x22, 0x4d, 0x0a, 0x16, 0x53, 0x43, 0x57, 0x65, 0x6c, 0x66, + 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x50, 0x61, 0x79, + 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, 0x22, 0x11, 0x0a, 0x0f, 0x43, 0x53, 0x57, 0x65, 0x6c, 0x66, 0x61, + 0x72, 0x65, 0x52, 0x65, 0x6c, 0x69, 0x65, 0x66, 0x22, 0x55, 0x0a, 0x0f, 0x53, 0x43, 0x57, 0x65, + 0x6c, 0x66, 0x61, 0x72, 0x65, 0x52, 0x65, 0x6c, 0x69, 0x65, 0x66, 0x12, 0x1a, 0x0a, 0x08, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x47, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x22, + 0x0e, 0x0a, 0x0c, 0x43, 0x53, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, + 0x86, 0x01, 0x0a, 0x0c, 0x53, 0x43, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, + 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x49, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x4f, 0x74, + 0x68, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4f, + 0x74, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x22, 0x0a, 0x0c, 0x43, 0x53, 0x42, 0x69, + 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x43, 0x0a, 0x0c, + 0x53, 0x43, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 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, 0x22, 0x12, 0x0a, 0x10, 0x43, 0x53, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x47, 0x65, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xe9, 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, 0x22, - 0xc6, 0x01, 0x0a, 0x0c, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x53, 0x70, 0x72, 0x65, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, - 0x61, 0x79, 0x12, 0x28, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, - 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x14, 0x0a, 0x05, - 0x56, 0x49, 0x50, 0x45, 0x58, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x49, 0x50, - 0x45, 0x58, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x70, 0x72, 0x69, 0x63, 0x65, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, - 0x69, 0x63, 0x65, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x12, 0x1a, 0x0a, 0x08, - 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, - 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x17, 0x0a, 0x15, 0x43, 0x53, 0x57, 0x65, - 0x6c, 0x66, 0x61, 0x72, 0x65, 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, 0x61, 0x79, 0x44, 0x61, 0x74, - 0x61, 0x22, 0xb9, 0x01, 0x0a, 0x15, 0x53, 0x43, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x46, - 0x69, 0x72, 0x73, 0x74, 0x50, 0x61, 0x79, 0x44, 0x61, 0x74, 0x61, 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, 0x29, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, - 0x53, 0x70, 0x72, 0x65, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x53, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 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, 0x12, 0x0a, 0x04, 0x44, 0x72, 0x61, - 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x44, 0x72, 0x61, 0x77, 0x22, 0x13, 0x0a, - 0x11, 0x43, 0x53, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, - 0x61, 0x79, 0x22, 0x48, 0x0a, 0x11, 0x53, 0x43, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x46, - 0x69, 0x72, 0x73, 0x74, 0x50, 0x61, 0x79, 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, 0x22, 0x1c, 0x0a, 0x1a, - 0x43, 0x53, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, - 0x6f, 0x75, 0x73, 0x50, 0x61, 0x79, 0x44, 0x61, 0x74, 0x61, 0x22, 0xd0, 0x01, 0x0a, 0x1a, 0x53, - 0x43, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, - 0x75, 0x73, 0x50, 0x61, 0x79, 0x44, 0x61, 0x74, 0x61, 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, 0x29, - 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x77, - 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x53, 0x70, - 0x72, 0x65, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 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, 0x12, 0x0a, 0x04, 0x44, 0x72, 0x61, 0x77, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x44, 0x72, 0x61, 0x77, 0x12, 0x10, 0x0a, 0x03, 0x44, - 0x61, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, 0x79, 0x22, 0x18, 0x0a, - 0x16, 0x43, 0x53, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, - 0x75, 0x6f, 0x75, 0x73, 0x50, 0x61, 0x79, 0x22, 0x4d, 0x0a, 0x16, 0x53, 0x43, 0x57, 0x65, 0x6c, - 0x66, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x50, 0x61, - 0x79, 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, 0x22, 0x11, 0x0a, 0x0f, 0x43, 0x53, 0x57, 0x65, 0x6c, 0x66, - 0x61, 0x72, 0x65, 0x52, 0x65, 0x6c, 0x69, 0x65, 0x66, 0x22, 0x55, 0x0a, 0x0f, 0x53, 0x43, 0x57, - 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x52, 0x65, 0x6c, 0x69, 0x65, 0x66, 0x12, 0x1a, 0x0a, 0x08, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x47, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x22, 0x0e, 0x0a, 0x0c, 0x43, 0x53, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x22, 0x86, 0x01, 0x0a, 0x0c, 0x53, 0x43, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, - 0x4e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x4f, - 0x74, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x4f, 0x74, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x22, 0x0a, 0x0c, 0x43, 0x53, 0x42, - 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x43, 0x0a, - 0x0c, 0x53, 0x43, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 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, 0x22, 0x12, 0x0a, 0x10, 0x43, 0x53, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x47, - 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xe9, 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, 0x12, 0x22, - 0x0a, 0x0c, 0x44, 0x61, 0x79, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x44, 0x61, 0x79, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, - 0x6e, 0x74, 0x22, 0x13, 0x0a, 0x11, 0x43, 0x53, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x54, - 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0xf0, 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, 0x12, 0x22, 0x0a, 0x0c, 0x44, 0x61, 0x79, 0x42, 0x75, 0x79, - 0x4d, 0x61, 0x78, 0x43, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x44, 0x61, - 0x79, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6e, 0x74, 0x2a, 0x86, 0x02, 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, 0x69, 0x6d, 0x65, 0x73, 0x10, 0x02, 0x12, 0x14, - 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x43, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x6f, 0x4d, 0x6f, - 0x72, 0x65, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, - 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x41, - 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x42, 0x69, 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, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x69, 0x67, - 0x62, 0x61, 0x6e, 0x6b, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x10, 0x0b, 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, 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, + 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, 0x12, 0x22, 0x0a, + 0x0c, 0x44, 0x61, 0x79, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0c, 0x44, 0x61, 0x79, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6e, + 0x74, 0x22, 0x13, 0x0a, 0x11, 0x43, 0x53, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x54, 0x61, + 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0xf0, 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, 0x12, 0x22, 0x0a, 0x0c, 0x44, 0x61, 0x79, 0x42, 0x75, 0x79, 0x4d, + 0x61, 0x78, 0x43, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x44, 0x61, 0x79, + 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6e, 0x74, 0x2a, 0x86, 0x02, 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, 0x69, 0x6d, 0x65, 0x73, 0x10, 0x02, 0x12, 0x14, 0x0a, + 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x43, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x6f, 0x4d, 0x6f, 0x72, + 0x65, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x43, + 0x6f, 0x69, 0x6e, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x41, 0x6c, + 0x72, 0x65, 0x61, 0x64, 0x79, 0x42, 0x69, 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, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x69, 0x67, 0x62, + 0x61, 0x6e, 0x6b, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x10, 0x0b, 0x2a, 0x95, 0x08, 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, 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, 0x22, 0x0a, 0x1d, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, + 0x79, 0x5f, 0x41, 0x64, 0x64, 0x75, 0x70, 0x32, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xa8, 0x14, + 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x69, + 0x67, 0x6e, 0x44, 0x61, 0x79, 0x5f, 0x41, 0x64, 0x64, 0x75, 0x70, 0x32, 0x41, 0x77, 0x61, 0x72, + 0x64, 0x10, 0xa9, 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, } var ( @@ -2724,77 +3024,84 @@ 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, 40) var file_welfare_proto_goTypes = []interface{}{ (OpResultCode)(0), // 0: welfare.OpResultCode (SPacketID)(0), // 1: welfare.SPacketID (*CSGetReliefFund)(nil), // 2: welfare.CSGetReliefFund (*SCGetReliefFund)(nil), // 3: welfare.SCGetReliefFund (*WelfareDate)(nil), // 4: welfare.WelfareDate - (*CSGetTurnplate)(nil), // 5: welfare.CSGetTurnplate - (*SCGetTurnplate)(nil), // 6: welfare.SCGetTurnplate - (*AddUpWelfareDate)(nil), // 7: welfare.AddUpWelfareDate - (*CSGetAddupSign)(nil), // 8: welfare.CSGetAddupSign - (*SCGetAddupSign)(nil), // 9: welfare.SCGetAddupSign - (*CSWelfaredInfo)(nil), // 10: welfare.CSWelfaredInfo - (*WelfareTurnplateDate)(nil), // 11: welfare.WelfareTurnplateDate - (*Welfare7SignDate)(nil), // 12: welfare.Welfare7SignDate - (*SCWelfaredInfo)(nil), // 13: welfare.SCWelfaredInfo - (*BlindBoxData)(nil), // 14: welfare.BlindBoxData - (*CSBlindBoxInfo)(nil), // 15: welfare.CSBlindBoxInfo - (*SCBlindBoxInfo)(nil), // 16: welfare.SCBlindBoxInfo - (*CSGetBlindBox)(nil), // 17: welfare.CSGetBlindBox - (*SCGetBlindBox)(nil), // 18: welfare.SCGetBlindBox - (*WelfareSpree)(nil), // 19: welfare.WelfareSpree - (*CSWelfareFirstPayData)(nil), // 20: welfare.CSWelfareFirstPayData - (*SCWelfareFirstPayData)(nil), // 21: welfare.SCWelfareFirstPayData - (*CSWelfareFirstPay)(nil), // 22: welfare.CSWelfareFirstPay - (*SCWelfareFirstPay)(nil), // 23: welfare.SCWelfareFirstPay - (*CSWelfareContinuousPayData)(nil), // 24: welfare.CSWelfareContinuousPayData - (*SCWelfareContinuousPayData)(nil), // 25: welfare.SCWelfareContinuousPayData - (*CSWelfareContinuousPay)(nil), // 26: welfare.CSWelfareContinuousPay - (*SCWelfareContinuousPay)(nil), // 27: welfare.SCWelfareContinuousPay - (*CSWelfareRelief)(nil), // 28: welfare.CSWelfareRelief - (*SCWelfareRelief)(nil), // 29: welfare.SCWelfareRelief - (*CSInviteInfo)(nil), // 30: welfare.CSInviteInfo - (*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 + (*AddUp2TypeDate)(nil), // 5: welfare.AddUp2TypeDate + (*CSGetTurnplate)(nil), // 6: welfare.CSGetTurnplate + (*SCGetTurnplate)(nil), // 7: welfare.SCGetTurnplate + (*AddUpWelfareDate)(nil), // 8: welfare.AddUpWelfareDate + (*CSGetAddupSign)(nil), // 9: welfare.CSGetAddupSign + (*SCGetAddupSign)(nil), // 10: welfare.SCGetAddupSign + (*CSWelfaredInfo)(nil), // 11: welfare.CSWelfaredInfo + (*WelfareTurnplateDate)(nil), // 12: welfare.WelfareTurnplateDate + (*Welfare7SignDate)(nil), // 13: welfare.Welfare7SignDate + (*Addup2Data)(nil), // 14: welfare.Addup2Data + (*SCWelfaredInfo)(nil), // 15: welfare.SCWelfaredInfo + (*CSSignDayAddup2Award)(nil), // 16: welfare.CSSignDayAddup2Award + (*SCSignDayAddup2Award)(nil), // 17: welfare.SCSignDayAddup2Award + (*BlindBoxData)(nil), // 18: welfare.BlindBoxData + (*CSBlindBoxInfo)(nil), // 19: welfare.CSBlindBoxInfo + (*SCBlindBoxInfo)(nil), // 20: welfare.SCBlindBoxInfo + (*CSGetBlindBox)(nil), // 21: welfare.CSGetBlindBox + (*SCGetBlindBox)(nil), // 22: welfare.SCGetBlindBox + (*WelfareSpree)(nil), // 23: welfare.WelfareSpree + (*CSWelfareFirstPayData)(nil), // 24: welfare.CSWelfareFirstPayData + (*SCWelfareFirstPayData)(nil), // 25: welfare.SCWelfareFirstPayData + (*CSWelfareFirstPay)(nil), // 26: welfare.CSWelfareFirstPay + (*SCWelfareFirstPay)(nil), // 27: welfare.SCWelfareFirstPay + (*CSWelfareContinuousPayData)(nil), // 28: welfare.CSWelfareContinuousPayData + (*SCWelfareContinuousPayData)(nil), // 29: welfare.SCWelfareContinuousPayData + (*CSWelfareContinuousPay)(nil), // 30: welfare.CSWelfareContinuousPay + (*SCWelfareContinuousPay)(nil), // 31: welfare.SCWelfareContinuousPay + (*CSWelfareRelief)(nil), // 32: welfare.CSWelfareRelief + (*SCWelfareRelief)(nil), // 33: welfare.SCWelfareRelief + (*CSInviteInfo)(nil), // 34: welfare.CSInviteInfo + (*SCInviteInfo)(nil), // 35: welfare.SCInviteInfo + (*CSBindInvite)(nil), // 36: welfare.CSBindInvite + (*SCBindInvite)(nil), // 37: welfare.SCBindInvite + (*CSPigbankGetInfo)(nil), // 38: welfare.CSPigbankGetInfo + (*SCPigbankGetInfo)(nil), // 39: welfare.SCPigbankGetInfo + (*CSPigbankTakeCoin)(nil), // 40: welfare.CSPigbankTakeCoin + (*SCPigbankTakeCoin)(nil), // 41: welfare.SCPigbankTakeCoin } var file_welfare_proto_depIdxs = []int32{ 0, // 0: welfare.SCGetReliefFund.OpRetCode:type_name -> welfare.OpResultCode 0, // 1: welfare.SCGetTurnplate.OpRetCode:type_name -> welfare.OpResultCode 4, // 2: welfare.SCGetTurnplate.Date:type_name -> welfare.WelfareDate 4, // 3: welfare.AddUpWelfareDate.AddUpDate:type_name -> welfare.WelfareDate - 0, // 4: welfare.SCGetAddupSign.OpRetCode:type_name -> welfare.OpResultCode - 7, // 5: welfare.SCGetAddupSign.Date:type_name -> welfare.AddUpWelfareDate - 4, // 6: welfare.WelfareTurnplateDate.Date:type_name -> welfare.WelfareDate - 4, // 7: welfare.Welfare7SignDate.Date:type_name -> welfare.WelfareDate - 7, // 8: welfare.Welfare7SignDate.AddUpDate:type_name -> welfare.AddUpWelfareDate - 11, // 9: welfare.SCWelfaredInfo.Tlist:type_name -> welfare.WelfareTurnplateDate - 12, // 10: welfare.SCWelfaredInfo.Slist:type_name -> welfare.Welfare7SignDate - 0, // 11: welfare.SCBlindBoxInfo.OpRetCode:type_name -> welfare.OpResultCode - 14, // 12: welfare.SCBlindBoxInfo.Date:type_name -> welfare.BlindBoxData - 0, // 13: welfare.SCGetBlindBox.OpRetCode:type_name -> welfare.OpResultCode - 4, // 14: welfare.WelfareSpree.Item:type_name -> welfare.WelfareDate - 0, // 15: welfare.SCWelfareFirstPayData.OpRetCode:type_name -> welfare.OpResultCode - 19, // 16: welfare.SCWelfareFirstPayData.List:type_name -> welfare.WelfareSpree - 0, // 17: welfare.SCWelfareFirstPay.OpRetCode:type_name -> welfare.OpResultCode - 0, // 18: welfare.SCWelfareContinuousPayData.OpRetCode:type_name -> welfare.OpResultCode - 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 + 4, // 4: welfare.AddUpWelfareDate.AddUp2Date:type_name -> welfare.WelfareDate + 5, // 5: welfare.AddUpWelfareDate.AddUp2Type:type_name -> welfare.AddUp2TypeDate + 0, // 6: welfare.SCGetAddupSign.OpRetCode:type_name -> welfare.OpResultCode + 8, // 7: welfare.SCGetAddupSign.Date:type_name -> welfare.AddUpWelfareDate + 4, // 8: welfare.WelfareTurnplateDate.Date:type_name -> welfare.WelfareDate + 4, // 9: welfare.Welfare7SignDate.Date:type_name -> welfare.WelfareDate + 8, // 10: welfare.Welfare7SignDate.AddUpDate:type_name -> welfare.AddUpWelfareDate + 12, // 11: welfare.SCWelfaredInfo.Tlist:type_name -> welfare.WelfareTurnplateDate + 13, // 12: welfare.SCWelfaredInfo.Slist:type_name -> welfare.Welfare7SignDate + 14, // 13: welfare.SCWelfaredInfo.Addup2:type_name -> welfare.Addup2Data + 0, // 14: welfare.SCBlindBoxInfo.OpRetCode:type_name -> welfare.OpResultCode + 18, // 15: welfare.SCBlindBoxInfo.Date:type_name -> welfare.BlindBoxData + 0, // 16: welfare.SCGetBlindBox.OpRetCode:type_name -> welfare.OpResultCode + 4, // 17: welfare.WelfareSpree.Item:type_name -> welfare.WelfareDate + 0, // 18: welfare.SCWelfareFirstPayData.OpRetCode:type_name -> welfare.OpResultCode + 23, // 19: welfare.SCWelfareFirstPayData.List:type_name -> welfare.WelfareSpree + 0, // 20: welfare.SCWelfareFirstPay.OpRetCode:type_name -> welfare.OpResultCode + 0, // 21: welfare.SCWelfareContinuousPayData.OpRetCode:type_name -> welfare.OpResultCode + 23, // 22: welfare.SCWelfareContinuousPayData.List:type_name -> welfare.WelfareSpree + 0, // 23: welfare.SCWelfareContinuousPay.OpRetCode:type_name -> welfare.OpResultCode + 0, // 24: welfare.SCBindInvite.OpRetCode:type_name -> welfare.OpResultCode + 0, // 25: welfare.SCPigbankGetInfo.OpRetCode:type_name -> welfare.OpResultCode + 0, // 26: welfare.SCPigbankTakeCoin.OpRetCode:type_name -> welfare.OpResultCode + 27, // [27:27] is the sub-list for method output_type + 27, // [27:27] is the sub-list for method input_type + 27, // [27:27] is the sub-list for extension type_name + 27, // [27:27] is the sub-list for extension extendee + 0, // [0:27] is the sub-list for field type_name } func init() { file_welfare_proto_init() } @@ -2840,7 +3147,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSGetTurnplate); i { + switch v := v.(*AddUp2TypeDate); i { case 0: return &v.state case 1: @@ -2852,7 +3159,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCGetTurnplate); i { + switch v := v.(*CSGetTurnplate); i { case 0: return &v.state case 1: @@ -2864,7 +3171,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddUpWelfareDate); i { + switch v := v.(*SCGetTurnplate); i { case 0: return &v.state case 1: @@ -2876,7 +3183,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSGetAddupSign); i { + switch v := v.(*AddUpWelfareDate); i { case 0: return &v.state case 1: @@ -2888,7 +3195,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCGetAddupSign); i { + switch v := v.(*CSGetAddupSign); i { case 0: return &v.state case 1: @@ -2900,7 +3207,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSWelfaredInfo); i { + switch v := v.(*SCGetAddupSign); i { case 0: return &v.state case 1: @@ -2912,7 +3219,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WelfareTurnplateDate); i { + switch v := v.(*CSWelfaredInfo); i { case 0: return &v.state case 1: @@ -2924,7 +3231,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Welfare7SignDate); i { + switch v := v.(*WelfareTurnplateDate); i { case 0: return &v.state case 1: @@ -2936,7 +3243,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCWelfaredInfo); i { + switch v := v.(*Welfare7SignDate); i { case 0: return &v.state case 1: @@ -2948,7 +3255,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlindBoxData); i { + switch v := v.(*Addup2Data); i { case 0: return &v.state case 1: @@ -2960,7 +3267,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSBlindBoxInfo); i { + switch v := v.(*SCWelfaredInfo); i { case 0: return &v.state case 1: @@ -2972,7 +3279,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCBlindBoxInfo); i { + switch v := v.(*CSSignDayAddup2Award); i { case 0: return &v.state case 1: @@ -2984,7 +3291,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSGetBlindBox); i { + switch v := v.(*SCSignDayAddup2Award); i { case 0: return &v.state case 1: @@ -2996,7 +3303,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCGetBlindBox); i { + switch v := v.(*BlindBoxData); i { case 0: return &v.state case 1: @@ -3008,7 +3315,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WelfareSpree); i { + switch v := v.(*CSBlindBoxInfo); i { case 0: return &v.state case 1: @@ -3020,7 +3327,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSWelfareFirstPayData); i { + switch v := v.(*SCBlindBoxInfo); i { case 0: return &v.state case 1: @@ -3032,7 +3339,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCWelfareFirstPayData); i { + switch v := v.(*CSGetBlindBox); i { case 0: return &v.state case 1: @@ -3044,7 +3351,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSWelfareFirstPay); i { + switch v := v.(*SCGetBlindBox); i { case 0: return &v.state case 1: @@ -3056,7 +3363,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCWelfareFirstPay); i { + switch v := v.(*WelfareSpree); i { case 0: return &v.state case 1: @@ -3068,7 +3375,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSWelfareContinuousPayData); i { + switch v := v.(*CSWelfareFirstPayData); i { case 0: return &v.state case 1: @@ -3080,7 +3387,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCWelfareContinuousPayData); i { + switch v := v.(*SCWelfareFirstPayData); i { case 0: return &v.state case 1: @@ -3092,7 +3399,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSWelfareContinuousPay); i { + switch v := v.(*CSWelfareFirstPay); i { case 0: return &v.state case 1: @@ -3104,7 +3411,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCWelfareContinuousPay); i { + switch v := v.(*SCWelfareFirstPay); i { case 0: return &v.state case 1: @@ -3116,7 +3423,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSWelfareRelief); i { + switch v := v.(*CSWelfareContinuousPayData); i { case 0: return &v.state case 1: @@ -3128,7 +3435,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCWelfareRelief); i { + switch v := v.(*SCWelfareContinuousPayData); i { case 0: return &v.state case 1: @@ -3140,7 +3447,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSInviteInfo); i { + switch v := v.(*CSWelfareContinuousPay); i { case 0: return &v.state case 1: @@ -3152,7 +3459,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCInviteInfo); i { + switch v := v.(*SCWelfareContinuousPay); i { case 0: return &v.state case 1: @@ -3164,7 +3471,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSBindInvite); i { + switch v := v.(*CSWelfareRelief); i { case 0: return &v.state case 1: @@ -3176,7 +3483,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCBindInvite); i { + switch v := v.(*SCWelfareRelief); i { case 0: return &v.state case 1: @@ -3188,7 +3495,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSPigbankGetInfo); i { + switch v := v.(*CSInviteInfo); i { case 0: return &v.state case 1: @@ -3200,7 +3507,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCPigbankGetInfo); i { + switch v := v.(*SCInviteInfo); i { case 0: return &v.state case 1: @@ -3212,7 +3519,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSPigbankTakeCoin); i { + switch v := v.(*CSBindInvite); i { case 0: return &v.state case 1: @@ -3224,6 +3531,54 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCBindInvite); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_welfare_proto_msgTypes[36].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[37].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[38].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[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCPigbankTakeCoin); i { case 0: return &v.state @@ -3242,7 +3597,7 @@ func file_welfare_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_welfare_proto_rawDesc, NumEnums: 2, - NumMessages: 36, + NumMessages: 40, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/welfare/welfare.proto b/protocol/welfare/welfare.proto index 0ac6416..944e4ec 100644 --- a/protocol/welfare/welfare.proto +++ b/protocol/welfare/welfare.proto @@ -40,6 +40,8 @@ enum SPacketID { PACKET_SC_WELF_CONTINPAYINFO = 2597;//连续充值信息 PACKET_CS_WELF_CONTINPAY = 2598;//领取(购买)连续充值 后期走充值回调 PACKET_SC_WELF_CONTINPAY = 2599;//领取连续充值 + PACKET_CS_SignDay_Addup2Award = 2600;//领取七日签到进阶奖励 + PACKET_SC_SignDay_Addup2Award = 2601;//返回七日签到进阶奖励 // 2900~2999 PACKET_CSWelfRelief = 2900;//救济金信息 @@ -76,6 +78,11 @@ message WelfareDate { int32 Item_Id = 4; // 道具id } +message AddUp2TypeDate{ + int32 Day = 1; + int32 Id = 2; // 1,代表观看视频 2,代表钻石类型 + int32 Num = 3; //数量 +} //转动转盘 //PACKET_CS_WELF_GETTURNPLATE @@ -95,6 +102,8 @@ message SCGetTurnplate{ message AddUpWelfareDate { int32 AddUpDay = 1; // 累计几天 repeated WelfareDate AddUpDate = 2; // 累计奖励 + repeated WelfareDate AddUp2Date =3; //进阶奖励 + repeated AddUp2TypeDate AddUp2Type = 4; //进阶奖励领取条件 } //累计签到 @@ -124,6 +133,12 @@ message Welfare7SignDate { int32 Day = 1; // 第几天 repeated WelfareDate Date = 2; // 奖励 repeated AddUpWelfareDate AddUpDate = 3; // 累计奖励 + +} +message Addup2Data{ + int32 Day = 1; //天数 + int32 Num = 2; //任务次数 + int64 EndTime = 3;//结束时间戳 -1代表已领取 } //PACKET_SC_WELF_WELFAREINFO @@ -135,6 +150,19 @@ message SCWelfaredInfo{ repeated int32 AddUpSignDay = 5; // 已领取累计奖励天数 repeated int32 TurnplateIdx = 6; // 已领取转盘奖励下标0开始 int32 Switch = 7; // 1.开启 2.关闭 + repeated Addup2Data Addup2 = 8; //七日签到进阶奖励数据 +} + +//领取7日签到累计进阶奖励 +//PACKET_CS_SignDay_Addup2Award +message CSSignDayAddup2Award{ + int32 Day = 1; +} +//PACKET_SC_SignDay_Addup2Award +message SCSignDayAddup2Award{ + int32 Day = 1; //天数 + int32 Num = 2; //任务次数 + int64 EndTime = 3;//结束时间戳 -1代表已领取 } message BlindBoxData { diff --git a/worldsrv/action_welfare.go b/worldsrv/action_welfare.go index b01042a..895715d 100644 --- a/worldsrv/action_welfare.go +++ b/worldsrv/action_welfare.go @@ -487,6 +487,30 @@ func (this *CSPigBankTakeCoinHandler) Process(s *netlib.Session, packetid int, d return nil } +// GetAddUp2Award +type CSSignDayAddup2AwardPacketFactory struct { +} + +type CSSignDayAddup2AwardHandler struct { +} + +func (this *CSSignDayAddup2AwardPacketFactory) CreatePacket() interface{} { + pack := &welfare.CSPigbankTakeCoin{} + return pack +} + +func (this *CSSignDayAddup2AwardHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { + logger.Logger.Trace("CSSignDayAddup2Award Process recv ", data) + if msg, ok := data.(*welfare.CSSignDayAddup2Award); ok { + p := PlayerMgrSington.GetPlayer(sid) + if p == nil { + logger.Logger.Warnf("CSPigBankTakeCoinHandler p == nil") + return nil + } + WelfareMgrSington.GetAddUp2Award(p, msg.Day) + } + return nil +} func init() { // 领取救济金 common.RegisterHandler(int(welfare.SPacketID_PACKET_CS_WELF_GETRELIEFFUND), &CSGetReliefFundHandler{}) @@ -531,4 +555,7 @@ func init() { //领取存钱罐金币 common.RegisterHandler(int(welfare.SPacketID_PACKET_CSPigbankTakeCoin), &CSPigBankTakeCoinHandler{}) netlib.RegisterFactory(int(welfare.SPacketID_PACKET_CSPigbankTakeCoin), &CSPigBankTakeCoinPacketFactory{}) + //领取七日签到进阶奖励 + common.RegisterHandler(int(welfare.SPacketID_PACKET_CS_SignDay_Addup2Award), &CSSignDayAddup2AwardHandler{}) + netlib.RegisterFactory(int(welfare.SPacketID_PACKET_CS_SignDay_Addup2Award), &CSSignDayAddup2AwardPacketFactory{}) } diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index 4f3cfed..272c62b 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -665,6 +665,7 @@ func (this *WelfareMgr) WelfaredInfo(p *Player) { data := &welfare.Welfare7SignDate{ Day: v.Day, } + ad := &welfare.AddUpWelfareDate{} for _, d := range v.Date { data.Date = append(data.Date, &welfare.WelfareDate{ Grade: d.Grade, @@ -674,9 +675,7 @@ func (this *WelfareMgr) WelfaredInfo(p *Player) { }) } for _, d := range v.AddUpDate { // 累计奖励 - ad := &welfare.AddUpWelfareDate{ - AddUpDay: d.AddUpDay, - } + ad.AddUpDay = d.AddUpDay for _, d1 := range d.AddUpDate { ad.AddUpDate = append(ad.AddUpDate, &welfare.WelfareDate{ Grade: d1.Grade, @@ -685,8 +684,28 @@ func (this *WelfareMgr) WelfaredInfo(p *Player) { Item_Id: d1.Item_Id, }) } - data.AddUpDate = append(data.AddUpDate, ad) } + //进阶数据 + for _, d2 := range v.AddUpDate2 { + for _, value := range d2.AddUpDate { + ad.AddUp2Date = append(ad.AddUp2Date, &welfare.WelfareDate{ + Grade: value.Grade, + Type: value.Type, + Name: value.Name, + Item_Id: value.Item_Id, + }) + } + + } + //进阶奖励领取条件 + for _, value := range v.AddUpDate2Type { + ad.AddUp2Type = append(ad.AddUp2Type, &welfare.AddUp2TypeDate{ + Day: value.Day, + Id: value.Id, + Num: value.Num, + }) + } + data.AddUpDate = append(data.AddUpDate, ad) pack.Slist = append(pack.Slist, data) } pack.TurnplateIdx = append(pack.TurnplateIdx, p.WelfData.Sign7.TurnplateIdx...) @@ -699,11 +718,105 @@ func (this *WelfareMgr) WelfaredInfo(p *Player) { pack.SignDay = signIndex pack.AddUpSignDay = append(pack.AddUpSignDay, p.WelfData.Sign7.AddupIndex...) } + //七日签到进阶奖励数据 + // 进阶奖励key1 - day key2-次数 value-结束领取时间戳(-1代表已领取) + for day, value := range p.WelfData.Sign7.Addup2Data { + addUp2 := &welfare.Addup2Data{} + addUp2.Day = day + for num, endTime := range value { + addUp2.Num = num + addUp2.EndTime = endTime + } + pack.Addup2 = append(pack.Addup2, addUp2) + } } logger.Logger.Tracef("WelfaredInfo snid: %v pack: %v", p.SnId, pack) p.SendToClient(int(welfare.SPacketID_PACKET_SC_WELF_WELFAREINFO), pack) } +// 更新进阶奖励时间 +func (this *WelfareMgr) UpdateAddUp2Date(p *Player, day int32, endTime int64) { + if p.WelfData.Sign7.Addup2Data == nil { + p.WelfData.Sign7.Addup2Data = make(map[int32]map[int32]int64) + } + //p.WelfData.Sign7.Addup2Data[day][1] = time.Now().Unix() + 3600 + p.WelfData.Sign7.Addup2Data[day][1] = endTime + //通知客户端 + pack := &welfare.SCSignDayAddup2Award{} + pack.Day = day + pack.Num = 1 + pack.EndTime = p.WelfData.Sign7.Addup2Data[day][1] + logger.Logger.Trace("通知客户端更新进阶奖励时间!!!!!!!!") + p.SendToClient(int(welfare.SPacketID_PACKET_SC_SignDay_Addup2Award), pack) +} + +// 领取进阶奖励 +func (this *WelfareMgr) GetAddUp2Award(p *Player, day int32) { + // 判断是否已经领取 + Num := int32(0) + EndTime := int64(-1) + for num, endTime := range p.WelfData.Sign7.Addup2Data[day] { + if endTime == -1 { + return + } + if endTime < time.Now().Unix() { + return + } + Num = num + EndTime = endTime + } + //获取配置 + info := this.GetConfig(p.Platform) + if info == nil { + return + } + sign7 := info.Welfare7SignDateList + if sign7 == nil { + return + } + list := sign7.List + if list == nil { + return + } + + addUpDate2 := list[day-1].AddUpDate2 + addUpDate2Type := list[day-1].AddUpDate2Type + if addUpDate2Type == nil { + return + } + typeId := addUpDate2Type[0].Id + addUpDate2Num := addUpDate2Type[0].Num + if typeId == 1 { + Num += 1 + } else { + //扣除钻石 + if p.Diamond < int64(addUpDate2Num) { + return + } + p.AddDiamond(int64(-addUpDate2Num), 0, common.GainWaySign7, "system", "累计签到进阶奖励钻石消耗") + logger.Logger.Trace("累计签到进阶奖励,扣除钻石uid = ", p.SnId) + EndTime = -1 + } + p.WelfData.Sign7.Addup2Data[day] = make(map[int32]int64) + p.WelfData.Sign7.Addup2Data[day][Num+1] = EndTime + if typeId == 1 && Num >= addUpDate2Num { + EndTime = -1 + } + if EndTime == -1 { + //发奖 + var items []*Item + item := &Item{ + ItemId: addUpDate2[0].AddUpDate[0].Item_Id, + ItemNum: int64(addUpDate2[0].AddUpDate[0].Grade), + } + items = append(items, item) + BagMgrSingleton.AddItems(p, items, 0, common.GainWaySign7, "system", "累计签到进阶奖励钻石消耗", 0, 0, false) + } + //通知客户端 + this.UpdateAddUp2Date(p, day, EndTime) + +} + // WelfareSwitch 通知活动开关状态 func (this *WelfareMgr) WelfareSwitch(p *Player, platform string, op int) { pack := &player_proto.SCEasyWelfaredInfo{} From a6d76b3f9408630f01f37ded8f51189a35f61798 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Mon, 24 Jun 2024 09:42:37 +0800 Subject: [PATCH 02/49] =?UTF-8?q?=E7=B4=AF=E8=AE=A1=E7=AD=BE=E5=88=B0?= =?UTF-8?q?=E8=BF=9B=E9=98=B6=E5=A5=96=E5=8A=B1=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/action_welfare.go | 2 ++ worldsrv/welfmgr.go | 23 ++++++++++++++++++++--- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/worldsrv/action_welfare.go b/worldsrv/action_welfare.go index 895715d..e8cd16e 100644 --- a/worldsrv/action_welfare.go +++ b/worldsrv/action_welfare.go @@ -3,6 +3,7 @@ package main import ( "encoding/base64" "fmt" + "time" "mongo.games.com/goserver/core/basic" "mongo.games.com/goserver/core/logger" @@ -95,6 +96,7 @@ func (this *CSGetAddupSignHandler) Process(s *netlib.Session, packetid int, data } WelfareMgrSington.GetAddupSign(p, msg.GetAddUpDay()) + WelfareMgrSington.UpdateAddUp2Date(p, msg.GetAddUpDay(), time.Now().Unix()+3600) } return nil } diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index 272c62b..512db11 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -740,12 +740,29 @@ func (this *WelfareMgr) UpdateAddUp2Date(p *Player, day int32, endTime int64) { p.WelfData.Sign7.Addup2Data = make(map[int32]map[int32]int64) } //p.WelfData.Sign7.Addup2Data[day][1] = time.Now().Unix() + 3600 - p.WelfData.Sign7.Addup2Data[day][1] = endTime + info := this.GetConfig(p.Platform) + if info == nil { + return + } + sign7 := info.Welfare7SignDateList + if sign7 == nil { + return + } + list := sign7.List + if list == nil { + return + } + addUpDate2Type := list[day-1].AddUpDate2Type + if addUpDate2Type == nil { + return + } + typeId := addUpDate2Type[0].Id + p.WelfData.Sign7.Addup2Data[day][typeId] = endTime //通知客户端 pack := &welfare.SCSignDayAddup2Award{} pack.Day = day pack.Num = 1 - pack.EndTime = p.WelfData.Sign7.Addup2Data[day][1] + pack.EndTime = p.WelfData.Sign7.Addup2Data[day][typeId] logger.Logger.Trace("通知客户端更新进阶奖励时间!!!!!!!!") p.SendToClient(int(welfare.SPacketID_PACKET_SC_SignDay_Addup2Award), pack) } @@ -754,7 +771,7 @@ func (this *WelfareMgr) UpdateAddUp2Date(p *Player, day int32, endTime int64) { func (this *WelfareMgr) GetAddUp2Award(p *Player, day int32) { // 判断是否已经领取 Num := int32(0) - EndTime := int64(-1) + EndTime := int64(0) for num, endTime := range p.WelfData.Sign7.Addup2Data[day] { if endTime == -1 { return From c61c88266b4ccd0072819ebf472fb45a11705ffb Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Tue, 25 Jun 2024 10:48:36 +0800 Subject: [PATCH 03/49] =?UTF-8?q?=E7=B4=AF=E8=AE=A1=E7=AD=BE=E5=88=B0?= =?UTF-8?q?=E8=BF=9B=E9=98=B6=E5=A5=96=E5=8A=B1=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- protocol/welfare/welfare.pb.go | 2 +- protocol/welfare/welfare.proto | 2 +- worldsrv/welfmgr.go | 6 ++++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/protocol/welfare/welfare.pb.go b/protocol/welfare/welfare.pb.go index 786c83b..43b8942 100644 --- a/protocol/welfare/welfare.pb.go +++ b/protocol/welfare/welfare.pb.go @@ -430,7 +430,7 @@ type AddUp2TypeDate struct { Day int32 `protobuf:"varint,1,opt,name=Day,proto3" json:"Day,omitempty"` Id int32 `protobuf:"varint,2,opt,name=Id,proto3" json:"Id,omitempty"` // 1,代表观看视频 2,代表钻石类型 - Num int32 `protobuf:"varint,3,opt,name=Num,proto3" json:"Num,omitempty"` //数量 + Num int32 `protobuf:"varint,3,opt,name=Num,proto3" json:"Num,omitempty"` //完成次数 } func (x *AddUp2TypeDate) Reset() { diff --git a/protocol/welfare/welfare.proto b/protocol/welfare/welfare.proto index 944e4ec..2e988e9 100644 --- a/protocol/welfare/welfare.proto +++ b/protocol/welfare/welfare.proto @@ -81,7 +81,7 @@ message WelfareDate { message AddUp2TypeDate{ int32 Day = 1; int32 Id = 2; // 1,代表观看视频 2,代表钻石类型 - int32 Num = 3; //数量 + int32 Num = 3; //完成次数 } //转动转盘 diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index 512db11..0004ab0 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -757,6 +757,9 @@ func (this *WelfareMgr) UpdateAddUp2Date(p *Player, day int32, endTime int64) { return } typeId := addUpDate2Type[0].Id + if p.WelfData.Sign7.Addup2Data[day] == nil { + p.WelfData.Sign7.Addup2Data[day] = make(map[int32]int64) + } p.WelfData.Sign7.Addup2Data[day][typeId] = endTime //通知客户端 pack := &welfare.SCSignDayAddup2Award{} @@ -772,6 +775,9 @@ func (this *WelfareMgr) GetAddUp2Award(p *Player, day int32) { // 判断是否已经领取 Num := int32(0) EndTime := int64(0) + if p.WelfData.Sign7.Addup2Data[day] == nil { + return + } for num, endTime := range p.WelfData.Sign7.Addup2Data[day] { if endTime == -1 { return From 11d78d2386ffb587740d4f3d60f91ada79bb87ee Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Sun, 30 Jun 2024 18:10:52 +0800 Subject: [PATCH 04/49] =?UTF-8?q?=E7=B4=AF=E8=AE=A1=E7=AD=BE=E5=88=B0?= =?UTF-8?q?=E8=BF=9B=E9=98=B6=E5=A5=96=E5=8A=B1=E4=BF=AE=E6=94=B9=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0google=E6=B8=A0=E9=81=93=E5=8C=BA=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- protocol/webapi/common.pb.go | 465 ++++++++++++++++++----------------- protocol/webapi/common.proto | 3 +- worldsrv/action_welfare.go | 2 +- worldsrv/welfmgr.go | 50 ++-- 4 files changed, 278 insertions(+), 242 deletions(-) diff --git a/protocol/webapi/common.pb.go b/protocol/webapi/common.pb.go index 139b664..5c02575 100644 --- a/protocol/webapi/common.pb.go +++ b/protocol/webapi/common.pb.go @@ -4521,11 +4521,12 @@ type Welfare7SignDate struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Day int32 `protobuf:"varint,1,opt,name=Day,proto3" json:"Day,omitempty"` // 第几天 - Date []*WelfareDate `protobuf:"bytes,2,rep,name=Date,proto3" json:"Date,omitempty"` // 奖励 - AddUpDate []*AddUpWelfareDate `protobuf:"bytes,3,rep,name=AddUpDate,proto3" json:"AddUpDate,omitempty"` // 累计奖励 - AddUpDate2 []*AddUpWelfareDate `protobuf:"bytes,4,rep,name=AddUpDate2,proto3" json:"AddUpDate2,omitempty"` //进阶奖励 - AddUpDate2Type []*AddUpDate2TypeData `protobuf:"bytes,5,rep,name=AddUpDate2Type,proto3" json:"AddUpDate2Type,omitempty"` //进阶奖励领取条件 + Day int32 `protobuf:"varint,1,opt,name=Day,proto3" json:"Day,omitempty"` // 第几天 + Date []*WelfareDate `protobuf:"bytes,2,rep,name=Date,proto3" json:"Date,omitempty"` // 奖励 + AddUpDate []*AddUpWelfareDate `protobuf:"bytes,3,rep,name=AddUpDate,proto3" json:"AddUpDate,omitempty"` // 累计奖励 + AddUpDate2 []*AddUpWelfareDate `protobuf:"bytes,4,rep,name=AddUpDate2,proto3" json:"AddUpDate2,omitempty"` //进阶奖励 + AddUpDate2Google []*AddUpWelfareDate `protobuf:"bytes,5,rep,name=AddUpDate2Google,proto3" json:"AddUpDate2Google,omitempty"` //谷歌渠道进阶奖励 + AddUpDate2Type []*AddUpDate2TypeData `protobuf:"bytes,6,rep,name=AddUpDate2Type,proto3" json:"AddUpDate2Type,omitempty"` //进阶奖励领取条件 } func (x *Welfare7SignDate) Reset() { @@ -4588,6 +4589,13 @@ func (x *Welfare7SignDate) GetAddUpDate2() []*AddUpWelfareDate { return nil } +func (x *Welfare7SignDate) GetAddUpDate2Google() []*AddUpWelfareDate { + if x != nil { + return x.AddUpDate2Google + } + return nil +} + func (x *Welfare7SignDate) GetAddUpDate2Type() []*AddUpDate2TypeData { if x != nil { return x.AddUpDate2Type @@ -6782,7 +6790,7 @@ var file_common_proto_rawDesc = []byte{ 0x0a, 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, - 0x75, 0x6d, 0x22, 0x83, 0x02, 0x0a, 0x10, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x37, 0x53, + 0x75, 0x6d, 0x22, 0xc9, 0x02, 0x0a, 0x10, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x37, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, @@ -6794,215 +6802,219 @@ var file_common_proto_rawDesc = []byte{ 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x32, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x70, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, - 0x61, 0x74, 0x65, 0x32, 0x12, 0x42, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, - 0x65, 0x32, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x77, - 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x32, - 0x54, 0x79, 0x70, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, - 0x61, 0x74, 0x65, 0x32, 0x54, 0x79, 0x70, 0x65, 0x22, 0x78, 0x0a, 0x14, 0x57, 0x65, 0x6c, 0x66, - 0x61, 0x72, 0x65, 0x37, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x2c, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, - 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x37, - 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x65, 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, 0x16, 0x0a, 0x06, 0x53, 0x77, - 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x22, 0xdb, 0x01, 0x0a, 0x0c, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, 0x78, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x47, - 0x72, 0x61, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, - 0x72, 0x69, 0x63, 0x65, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, - 0x63, 0x65, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x44, - 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x44, - 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x5f, - 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, - 0x22, 0xa3, 0x01, 0x0a, 0x17, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x42, 0x6c, 0x69, 0x6e, - 0x64, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, - 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x62, - 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, - 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, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 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, 0x4d, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x4d, 0x69, 0x6e, 0x49, 0x64, 0x22, 0xc5, 0x01, 0x0a, 0x0c, 0x57, 0x65, 0x6c, 0x66, 0x61, - 0x72, 0x65, 0x53, 0x70, 0x72, 0x65, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x04, 0x49, 0x74, 0x65, - 0x6d, 0x18, 0x02, 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, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x49, 0x50, 0x45, 0x58, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x56, 0x49, 0x50, 0x45, 0x58, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x73, - 0x75, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, - 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x31, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, - 0x69, 0x63, 0x65, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, - 0x65, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, - 0x01, 0x0a, 0x17, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, - 0x61, 0x79, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x4c, 0x69, - 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, - 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x53, 0x70, 0x72, 0x65, 0x65, 0x52, 0x04, + 0x61, 0x74, 0x65, 0x32, 0x12, 0x44, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, + 0x65, 0x32, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x70, 0x57, 0x65, 0x6c, + 0x66, 0x61, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x52, 0x10, 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, + 0x61, 0x74, 0x65, 0x32, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x12, 0x42, 0x0a, 0x0e, 0x41, 0x64, + 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x32, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x64, 0x64, 0x55, + 0x70, 0x44, 0x61, 0x74, 0x65, 0x32, 0x54, 0x79, 0x70, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, + 0x41, 0x64, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x32, 0x54, 0x79, 0x70, 0x65, 0x22, 0x78, + 0x0a, 0x14, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x37, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, + 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, + 0x6c, 0x66, 0x61, 0x72, 0x65, 0x37, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x74, 0x65, 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, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 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, 0x22, 0xa8, - 0x01, 0x0a, 0x1c, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, - 0x75, 0x6f, 0x75, 0x73, 0x50, 0x61, 0x79, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x28, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x53, 0x70, - 0x72, 0x65, 0x65, 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, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 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, 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, 0x50, 0x63, 0x66, 0x67, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x56, - 0x69, 0x70, 0x45, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x69, 0x70, 0x45, - 0x78, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, - 0x6c, 0x65, 0x67, 0x65, 0x31, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, - 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, - 0x6c, 0x65, 0x67, 0x65, 0x32, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, - 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, - 0x6c, 0x65, 0x67, 0x65, 0x33, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, - 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, - 0x6c, 0x65, 0x67, 0x65, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, - 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, - 0x6c, 0x65, 0x67, 0x65, 0x35, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, - 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, - 0x6c, 0x65, 0x67, 0x65, 0x36, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, - 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x12, 0x3e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, - 0x6c, 0x65, 0x67, 0x65, 0x37, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x77, 0x65, - 0x62, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x49, 0x50, 0x63, 0x66, 0x67, 0x2e, 0x50, 0x72, 0x69, 0x76, - 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x50, 0x72, 0x69, - 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x12, 0x28, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, - 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, - 0x38, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, - 0x6e, 0x65, 0x49, 0x44, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x4f, 0x75, 0x74, 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, 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, + 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0xdb, 0x01, 0x0a, 0x0c, 0x42, 0x6c, 0x69, + 0x6e, 0x64, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, + 0x63, 0x65, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, + 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x08, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x17, 0x0a, + 0x07, 0x49, 0x74, 0x65, 0x6d, 0x5f, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x22, 0xa3, 0x01, 0x0a, 0x17, 0x57, 0x65, 0x6c, 0x66, 0x61, + 0x72, 0x65, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, + 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x42, + 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, 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, 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, + 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 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, 0x4d, 0x69, 0x6e, 0x49, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4d, 0x69, 0x6e, 0x49, 0x64, 0x22, 0xc5, 0x01, 0x0a, + 0x0c, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x53, 0x70, 0x72, 0x65, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x44, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, 0x79, 0x12, + 0x27, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x02, 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, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x49, 0x50, 0x45, + 0x58, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x49, 0x50, 0x45, 0x58, 0x12, 0x18, + 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, + 0x65, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x31, + 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x69, 0x73, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x44, 0x69, 0x73, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x17, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, + 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, 0x61, 0x79, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x28, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x53, + 0x70, 0x72, 0x65, 0x65, 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, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 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, 0x22, 0xa8, 0x01, 0x0a, 0x1c, 0x57, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, + 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x50, 0x61, 0x79, 0x44, 0x61, 0x74, + 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x65, 0x6c, + 0x66, 0x61, 0x72, 0x65, 0x53, 0x70, 0x72, 0x65, 0x65, 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, 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, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 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, + 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, 0x50, 0x63, 0x66, 0x67, 0x2e, + 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x69, 0x70, 0x45, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x56, 0x69, 0x70, 0x45, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, + 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x12, 0x1e, 0x0a, + 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x12, 0x1e, 0x0a, + 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x12, 0x1e, 0x0a, + 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x12, 0x1e, 0x0a, + 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x12, 0x1e, 0x0a, + 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x12, 0x3e, 0x0a, + 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x18, 0x0b, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x56, 0x49, 0x50, 0x63, 0x66, + 0x67, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x12, 0x28, 0x0a, + 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, + 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, + 0x6c, 0x65, 0x67, 0x65, 0x38, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, + 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 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, 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 ( @@ -7117,22 +7129,23 @@ var file_common_proto_depIdxs = []int32{ 35, // 28: webapi.Welfare7SignDate.Date:type_name -> webapi.WelfareDate 39, // 29: webapi.Welfare7SignDate.AddUpDate:type_name -> webapi.AddUpWelfareDate 39, // 30: webapi.Welfare7SignDate.AddUpDate2:type_name -> webapi.AddUpWelfareDate - 40, // 31: webapi.Welfare7SignDate.AddUpDate2Type:type_name -> webapi.AddUpDate2TypeData - 41, // 32: webapi.Welfare7SignDateList.List:type_name -> webapi.Welfare7SignDate - 43, // 33: webapi.WelfareBlindBoxDataList.List:type_name -> webapi.BlindBoxData - 35, // 34: webapi.WelfareSpree.Item:type_name -> webapi.WelfareDate - 45, // 35: webapi.WelfareFirstPayDataList.List:type_name -> webapi.WelfareSpree - 45, // 36: webapi.WelfareContinuousPayDataList.List:type_name -> webapi.WelfareSpree - 62, // 37: webapi.VIPcfg.Award:type_name -> webapi.VIPcfg.AwardEntry - 63, // 38: webapi.VIPcfg.Privilege7:type_name -> webapi.VIPcfg.Privilege7Entry - 48, // 39: webapi.VIPcfgDataList.List:type_name -> webapi.VIPcfg - 35, // 40: webapi.ChessRankConfig.Item:type_name -> webapi.WelfareDate - 52, // 41: webapi.ChessRankcfgData.Datas:type_name -> webapi.ChessRankConfig - 42, // [42:42] is the sub-list for method output_type - 42, // [42:42] is the sub-list for method input_type - 42, // [42:42] is the sub-list for extension type_name - 42, // [42:42] is the sub-list for extension extendee - 0, // [0:42] is the sub-list for field type_name + 39, // 31: webapi.Welfare7SignDate.AddUpDate2Google:type_name -> webapi.AddUpWelfareDate + 40, // 32: webapi.Welfare7SignDate.AddUpDate2Type:type_name -> webapi.AddUpDate2TypeData + 41, // 33: webapi.Welfare7SignDateList.List:type_name -> webapi.Welfare7SignDate + 43, // 34: webapi.WelfareBlindBoxDataList.List:type_name -> webapi.BlindBoxData + 35, // 35: webapi.WelfareSpree.Item:type_name -> webapi.WelfareDate + 45, // 36: webapi.WelfareFirstPayDataList.List:type_name -> webapi.WelfareSpree + 45, // 37: webapi.WelfareContinuousPayDataList.List:type_name -> webapi.WelfareSpree + 62, // 38: webapi.VIPcfg.Award:type_name -> webapi.VIPcfg.AwardEntry + 63, // 39: webapi.VIPcfg.Privilege7:type_name -> webapi.VIPcfg.Privilege7Entry + 48, // 40: webapi.VIPcfgDataList.List:type_name -> webapi.VIPcfg + 35, // 41: webapi.ChessRankConfig.Item:type_name -> webapi.WelfareDate + 52, // 42: webapi.ChessRankcfgData.Datas:type_name -> webapi.ChessRankConfig + 43, // [43:43] is the sub-list for method output_type + 43, // [43:43] is the sub-list for method input_type + 43, // [43:43] is the sub-list for extension type_name + 43, // [43:43] is the sub-list for extension extendee + 0, // [0:43] is the sub-list for field type_name } func init() { file_common_proto_init() } diff --git a/protocol/webapi/common.proto b/protocol/webapi/common.proto index 63e744c..4fc8c71 100644 --- a/protocol/webapi/common.proto +++ b/protocol/webapi/common.proto @@ -508,7 +508,8 @@ message Welfare7SignDate { repeated WelfareDate Date = 2; // 奖励 repeated AddUpWelfareDate AddUpDate = 3; // 累计奖励 repeated AddUpWelfareDate AddUpDate2 = 4; //进阶奖励 - repeated AddUpDate2TypeData AddUpDate2Type = 5; //进阶奖励领取条件 + repeated AddUpWelfareDate AddUpDate2Google = 5; //谷歌渠道进阶奖励 + repeated AddUpDate2TypeData AddUpDate2Type = 6; //进阶奖励领取条件 } diff --git a/worldsrv/action_welfare.go b/worldsrv/action_welfare.go index e8cd16e..ec6e1b4 100644 --- a/worldsrv/action_welfare.go +++ b/worldsrv/action_welfare.go @@ -497,7 +497,7 @@ type CSSignDayAddup2AwardHandler struct { } func (this *CSSignDayAddup2AwardPacketFactory) CreatePacket() interface{} { - pack := &welfare.CSPigbankTakeCoin{} + pack := &welfare.CSSignDayAddup2Award{} return pack } diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index 0004ab0..f6da905 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -354,6 +354,8 @@ func (this *WelfareMgr) GetTurnplate(p *Player) { p.WelfData.Sign7.SignTickets = ts // 签到 if len(p.WelfData.Sign7.TurnplateIdx) >= len(turnplate.RateList) { p.WelfData.Sign7.TurnplateIdx = nil + p.WelfData.Sign7.Addup2Data = make(map[int32]map[int32]int64) + p.WelfData.Sign7.AddupIndex = []int32{} } p.WelfData.Sign7.TurnplateIdx = append(p.WelfData.Sign7.TurnplateIdx, int32(idx)) // 获取领取转盘下标 p.WelfData.Sign7.SignIndex += 1 @@ -686,16 +688,30 @@ func (this *WelfareMgr) WelfaredInfo(p *Player) { } } //进阶数据 - for _, d2 := range v.AddUpDate2 { - for _, value := range d2.AddUpDate { - ad.AddUp2Date = append(ad.AddUp2Date, &welfare.WelfareDate{ - Grade: value.Grade, - Type: value.Type, - Name: value.Name, - Item_Id: value.Item_Id, - }) - } + if p.AppChannel == common.ChannelGooglePlay { + for _, d2 := range v.AddUpDate2Google { + for _, value := range d2.AddUpDate { + ad.AddUp2Date = append(ad.AddUp2Date, &welfare.WelfareDate{ + Grade: value.Grade, + Type: value.Type, + Name: value.Name, + Item_Id: value.Item_Id, + }) + } + } + } else { + for _, d2 := range v.AddUpDate2 { + for _, value := range d2.AddUpDate { + ad.AddUp2Date = append(ad.AddUp2Date, &welfare.WelfareDate{ + Grade: value.Grade, + Type: value.Type, + Name: value.Name, + Item_Id: value.Item_Id, + }) + } + + } } //进阶奖励领取条件 for _, value := range v.AddUpDate2Type { @@ -801,8 +817,10 @@ func (this *WelfareMgr) GetAddUp2Award(p *Player, day int32) { if list == nil { return } - addUpDate2 := list[day-1].AddUpDate2 + if p.AppChannel == common.ChannelGooglePlay { + addUpDate2 = list[day-1].AddUpDate2Google + } addUpDate2Type := list[day-1].AddUpDate2Type if addUpDate2Type == nil { return @@ -828,11 +846,15 @@ func (this *WelfareMgr) GetAddUp2Award(p *Player, day int32) { if EndTime == -1 { //发奖 var items []*Item - item := &Item{ - ItemId: addUpDate2[0].AddUpDate[0].Item_Id, - ItemNum: int64(addUpDate2[0].AddUpDate[0].Grade), + for _, d2 := range addUpDate2 { + for _, value := range d2.AddUpDate { + item := &Item{ + ItemId: value.Item_Id, + ItemNum: int64(value.Grade), + } + items = append(items, item) + } } - items = append(items, item) BagMgrSingleton.AddItems(p, items, 0, common.GainWaySign7, "system", "累计签到进阶奖励钻石消耗", 0, 0, false) } //通知客户端 From da249ec436fda2983a8414b6dc137041d2b179ad Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Tue, 25 Jun 2024 17:31:41 +0800 Subject: [PATCH 05/49] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E8=A1=A8+=E9=92=BB?= =?UTF-8?q?=E7=9F=B3=E5=AD=98=E5=82=A8=E7=BD=90=E5=8A=9F=E8=83=BD=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0+=E4=B8=83=E6=97=A5=E7=AD=BE=E5=88=B0=E8=BF=9B?= =?UTF-8?q?=E9=98=B6=E5=A5=96=E5=8A=B1=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/constant.go | 1 + data/DB_GameItem.dat | Bin 7952 -> 8437 bytes data/DB_GameItem.json | 112 +++ data/DB_Game_Drop.dat | 107 ++- data/DB_Game_Drop.json | 166 ++-- data/DB_PigBank_Diamond.dat | 6 +- data/DB_PigBank_Diamond.json | 24 +- data/DB_Pigbank_Prop.dat | 10 +- data/DB_Pigbank_Prop.json | 22 +- data/DB_PropExchange.dat | Bin 384 -> 384 bytes data/DB_Task.dat | Bin 2198 -> 2161 bytes data/DB_Task.json | 190 ++-- data/DB_VIP.dat | Bin 839 -> 887 bytes data/DB_VIP.json | 48 +- model/player.go | 15 +- protocol/server/pbdata.pb.go | 1544 ++++++++++++++++++++------------ protocol/server/pbdata.proto | 54 ++ protocol/welfare/welfare.pb.go | 531 +++++++---- protocol/welfare/welfare.proto | 26 + worldsrv/action_shop.go | 19 + worldsrv/action_welfare.go | 59 +- worldsrv/shopmgr.go | 1 + worldsrv/trascate_webapi.go | 4 + worldsrv/welfmgr.go | 182 +++- xlsx/DB_GameItem.xlsx | Bin 22751 -> 23215 bytes xlsx/DB_Game_Drop.xlsx | Bin 12821 -> 12807 bytes xlsx/DB_PigBank_Diamond.xlsx | Bin 10506 -> 10818 bytes xlsx/DB_Pigbank_Prop.xlsx | Bin 13722 -> 13793 bytes xlsx/DB_Task.xlsx | Bin 20527 -> 20513 bytes xlsx/DB_VIP.xlsx | Bin 20235 -> 20287 bytes 30 files changed, 2122 insertions(+), 999 deletions(-) diff --git a/common/constant.go b/common/constant.go index 7948e0b..21442dc 100644 --- a/common/constant.go +++ b/common/constant.go @@ -273,6 +273,7 @@ const ( GainWayBuyWeekCard = 87 // 商城购买周卡 GainWayVipBuyCoin = 88 // vip商城购买金币 GainWaySign7 = 89 // 连续签到7天进阶消耗 + GainWay_PigrankGainDiamond = 90 //存钱罐打开获取钻石 ) // 后台选择 金币变化类型 的充值 类型id号起始 diff --git a/data/DB_GameItem.dat b/data/DB_GameItem.dat index 28afb8c5ebd28f2a214d1cc9c3d7a3cfdbdf0537..f49b1b26b397acfb24f99a92d29ec0eda4a11c6a 100644 GIT binary patch delta 353 zcmbPW_tkNOfV??ZImeDyj6%YOPg|Q`te^X0%g*Psw>)i~__Sk(6cZz(5;Fq>gNC3H zGb00o6^Mvn%wjYsa+rLcStIbtj^=06mp81wZbSo=Y1;=insUn63q#G-R(^xJ5eiNE> delta 7 OcmezBIKgg%fII*WR|4b! diff --git a/data/DB_GameItem.json b/data/DB_GameItem.json index d142ae9..8c618d7 100644 --- a/data/DB_GameItem.json +++ b/data/DB_GameItem.json @@ -2503,6 +2503,118 @@ "Location": "0", "Describe": "可联系客服兑换实物奖励", "Entity": 9 + }, + { + "Id": 30008, + "Name": "1元话费直兑券", + "ShowLocation": [ + 1, + 1 + ], + "Classify": [ + 0, + 0, + 0 + ], + "Type": 17, + "Effect0": [ + 1, + 0, + 0 + ], + "Effect": [ + 1, + 0, + 0 + ], + "CompositionMax": 1, + "Location": "0", + "Describe": "用途:话费兑换码\n产出途径:七日累签进阶奖励", + "Num": 1 + }, + { + "Id": 30009, + "Name": "2元话费直兑券", + "ShowLocation": [ + 1, + 1 + ], + "Classify": [ + 0, + 0, + 0 + ], + "Type": 17, + "Effect0": [ + 1, + 0, + 0 + ], + "Effect": [ + 1, + 0, + 0 + ], + "CompositionMax": 1, + "Location": "0", + "Describe": "用途:话费兑换码\n产出途径:七日累签进阶奖励", + "Num": 2 + }, + { + "Id": 30010, + "Name": "5元话费直兑券", + "ShowLocation": [ + 1, + 1 + ], + "Classify": [ + 0, + 0, + 0 + ], + "Type": 17, + "Effect0": [ + 1, + 0, + 0 + ], + "Effect": [ + 1, + 0, + 0 + ], + "CompositionMax": 1, + "Location": "0", + "Describe": "用途:话费兑换码\n产出途径:七日累签进阶奖励", + "Num": 5 + }, + { + "Id": 30011, + "Name": "10元话费直兑券", + "ShowLocation": [ + 1, + 1 + ], + "Classify": [ + 0, + 0, + 0 + ], + "Type": 17, + "Effect0": [ + 1, + 0, + 0 + ], + "Effect": [ + 1, + 0, + 0 + ], + "CompositionMax": 1, + "Location": "0", + "Describe": "用途:话费兑换码\n产出途径:七日累签进阶奖励", + "Num": 10 } ] } \ No newline at end of file diff --git a/data/DB_Game_Drop.dat b/data/DB_Game_Drop.dat index 8fb0166..d510ec8 100644 --- a/data/DB_Game_Drop.dat +++ b/data/DB_Game_Drop.dat @@ -1,56 +1,55 @@ - (2 -' (J2 -N (2 -u (2 - (2 - (2 - (2 - (2 -  (2 + (2 +' (12 +N (c2 +u (2 + (2 + (2 + (2 + (2 +  (2  - (2 - І (2 - ح (2 -  (2 - (2 - (2 - (2 - ( 2 - ( 2 - ( -2 - ( 2 - ( 2 - (2 - (2 - (2 - ("2 - ((2 - (.2 -л (42 - (:2 -! (?2 -$ (E2 - ' (K2 -!* (N2 -"- (N2 -#0 (N2 -$3 (N2 -%6 (N2 -&9 (N2 -'= (N2 -(z (N2 -) (N2 -* (N2  -+Ó (N2 -, (N2 -- (N2#' -. (N2+/ -/ (N226 -0 (N29= -1ʺ (N2AE -2 (N2HL -3/ (N2 -4G (N2 -5_ (N2 \ No newline at end of file + (2 + І (2 + ح (2 +  (2 + (2 + (2 + (2 + (2 + (2 + (2 + (2 + (2 + ( 2 + (2 + (2 + (2 + (2 + (2 +л ("2 + (&2 +! (*2 +$ (.2 + ' (22 +!* (32 +"- (52 +#0 (62 +$3 (82 +%6 (:2 +&9 (;2 +'= (=2 +(z (>2 +) (@2 +* (N2 ++Ó (N2 +, (N2 +- (N2 +. (N2$ +/ (N2$* +0 (N2)0 +1ʺ (N2.6 +2 (N23< +3/ (N2e{ +4G (N2 +5_ (N2 \ No newline at end of file diff --git a/data/DB_Game_Drop.json b/data/DB_Game_Drop.json index c1f90b4..121160a 100644 --- a/data/DB_Game_Drop.json +++ b/data/DB_Game_Drop.json @@ -4,7 +4,7 @@ "Id": 1, "Bet": 2000, "ItemId1": 30001, - "Rate1": 30, + "Rate1": 20, "Amount1": [ 1, 1 @@ -14,7 +14,7 @@ "Id": 2, "Bet": 5000, "ItemId1": 30001, - "Rate1": 74, + "Rate1": 49, "Amount1": [ 1, 1 @@ -24,7 +24,7 @@ "Id": 3, "Bet": 10000, "ItemId1": 30001, - "Rate1": 149, + "Rate1": 99, "Amount1": [ 1, 1 @@ -34,7 +34,7 @@ "Id": 4, "Bet": 15000, "ItemId1": 30001, - "Rate1": 223, + "Rate1": 149, "Amount1": [ 1, 1 @@ -44,7 +44,7 @@ "Id": 5, "Bet": 20000, "ItemId1": 30001, - "Rate1": 297, + "Rate1": 198, "Amount1": [ 1, 1 @@ -54,7 +54,7 @@ "Id": 6, "Bet": 25000, "ItemId1": 30001, - "Rate1": 371, + "Rate1": 247, "Amount1": [ 1, 1 @@ -64,7 +64,7 @@ "Id": 7, "Bet": 30000, "ItemId1": 30001, - "Rate1": 446, + "Rate1": 297, "Amount1": [ 1, 1 @@ -74,7 +74,7 @@ "Id": 8, "Bet": 35000, "ItemId1": 30001, - "Rate1": 520, + "Rate1": 347, "Amount1": [ 1, 1 @@ -84,7 +84,7 @@ "Id": 9, "Bet": 40000, "ItemId1": 30001, - "Rate1": 594, + "Rate1": 396, "Amount1": [ 1, 1 @@ -94,7 +94,7 @@ "Id": 10, "Bet": 45000, "ItemId1": 30001, - "Rate1": 668, + "Rate1": 445, "Amount1": [ 1, 1 @@ -104,7 +104,7 @@ "Id": 11, "Bet": 50000, "ItemId1": 30001, - "Rate1": 743, + "Rate1": 495, "Amount1": [ 1, 1 @@ -114,7 +114,7 @@ "Id": 12, "Bet": 55000, "ItemId1": 30001, - "Rate1": 817, + "Rate1": 545, "Amount1": [ 1, 1 @@ -124,7 +124,7 @@ "Id": 13, "Bet": 60000, "ItemId1": 30001, - "Rate1": 891, + "Rate1": 594, "Amount1": [ 1, 1 @@ -134,7 +134,7 @@ "Id": 14, "Bet": 65000, "ItemId1": 30001, - "Rate1": 965, + "Rate1": 643, "Amount1": [ 1, 1 @@ -144,7 +144,7 @@ "Id": 15, "Bet": 70000, "ItemId1": 30001, - "Rate1": 1040, + "Rate1": 693, "Amount1": [ 1, 1 @@ -154,7 +154,7 @@ "Id": 16, "Bet": 75000, "ItemId1": 30001, - "Rate1": 1114, + "Rate1": 743, "Amount1": [ 1, 1 @@ -164,7 +164,7 @@ "Id": 17, "Bet": 80000, "ItemId1": 30001, - "Rate1": 1188, + "Rate1": 792, "Amount1": [ 1, 1 @@ -174,7 +174,7 @@ "Id": 18, "Bet": 85000, "ItemId1": 30001, - "Rate1": 1262, + "Rate1": 841, "Amount1": [ 1, 1 @@ -184,7 +184,7 @@ "Id": 19, "Bet": 90000, "ItemId1": 30001, - "Rate1": 1337, + "Rate1": 891, "Amount1": [ 1, 1 @@ -194,7 +194,7 @@ "Id": 20, "Bet": 95000, "ItemId1": 30001, - "Rate1": 1411, + "Rate1": 941, "Amount1": [ 1, 1 @@ -204,7 +204,7 @@ "Id": 21, "Bet": 100000, "ItemId1": 30001, - "Rate1": 1485, + "Rate1": 990, "Amount1": [ 1, 1 @@ -214,7 +214,7 @@ "Id": 22, "Bet": 150000, "ItemId1": 30001, - "Rate1": 2228, + "Rate1": 1485, "Amount1": [ 1, 1 @@ -224,7 +224,7 @@ "Id": 23, "Bet": 200000, "ItemId1": 30001, - "Rate1": 2970, + "Rate1": 1980, "Amount1": [ 1, 1 @@ -234,7 +234,7 @@ "Id": 24, "Bet": 250000, "ItemId1": 30001, - "Rate1": 3713, + "Rate1": 2475, "Amount1": [ 1, 1 @@ -244,170 +244,170 @@ "Id": 25, "Bet": 300000, "ItemId1": 30001, - "Rate1": 4455, + "Rate1": 2970, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 26, "Bet": 350000, "ItemId1": 30001, - "Rate1": 5198, + "Rate1": 3465, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 27, "Bet": 400000, "ItemId1": 30001, - "Rate1": 5940, + "Rate1": 3960, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 28, "Bet": 450000, "ItemId1": 30001, - "Rate1": 6683, + "Rate1": 4455, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 29, "Bet": 500000, "ItemId1": 30001, - "Rate1": 7425, + "Rate1": 4950, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 30, "Bet": 550000, "ItemId1": 30001, - "Rate1": 8168, + "Rate1": 5445, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 31, "Bet": 600000, "ItemId1": 30001, - "Rate1": 8910, + "Rate1": 5940, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 32, "Bet": 650000, "ItemId1": 30001, - "Rate1": 9653, + "Rate1": 6435, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 33, "Bet": 700000, "ItemId1": 30001, - "Rate1": 10000, + "Rate1": 6635, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 34, "Bet": 750000, "ItemId1": 30001, - "Rate1": 10000, + "Rate1": 6835, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 35, "Bet": 800000, "ItemId1": 30001, - "Rate1": 10000, + "Rate1": 7035, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 36, "Bet": 850000, "ItemId1": 30001, - "Rate1": 10000, + "Rate1": 7235, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 37, "Bet": 900000, "ItemId1": 30001, - "Rate1": 10000, + "Rate1": 7435, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 38, "Bet": 950000, "ItemId1": 30001, - "Rate1": 10000, + "Rate1": 7635, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 39, "Bet": 1000000, "ItemId1": 30001, - "Rate1": 10000, + "Rate1": 7835, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 40, "Bet": 2000000, "ItemId1": 30001, - "Rate1": 10000, + "Rate1": 8035, "Amount1": [ 1, - 5 + 3 ] }, { "Id": 41, "Bet": 5000000, "ItemId1": 30001, - "Rate1": 10000, + "Rate1": 8235, "Amount1": [ - 5, - 9 + 4, + 6 ] }, { @@ -416,8 +416,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 13, - 17 + 11, + 13 ] }, { @@ -426,8 +426,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 20, - 24 + 16, + 18 ] }, { @@ -436,8 +436,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 28, - 32 + 21, + 24 ] }, { @@ -446,8 +446,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 35, - 39 + 24, + 29 ] }, { @@ -456,8 +456,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 43, - 47 + 31, + 36 ] }, { @@ -466,8 +466,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 50, - 54 + 36, + 42 ] }, { @@ -476,8 +476,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 57, - 61 + 41, + 48 ] }, { @@ -486,8 +486,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 65, - 69 + 46, + 54 ] }, { @@ -496,8 +496,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 72, - 76 + 51, + 60 ] }, { @@ -506,8 +506,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 147, - 151 + 101, + 123 ] }, { @@ -516,8 +516,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 221, - 225 + 150, + 164 ] }, { @@ -526,8 +526,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 295, - 299 + 199, + 246 ] } ] diff --git a/data/DB_PigBank_Diamond.dat b/data/DB_PigBank_Diamond.dat index 75bdd9f..4ff07c7 100644 --- a/data/DB_PigBank_Diamond.dat +++ b/data/DB_PigBank_Diamond.dat @@ -1,4 +1,4 @@ -  - ( - / 2 \ No newline at end of file + (08@dHPc + ((08@dHP +/ 2(08@dHP \ No newline at end of file diff --git a/data/DB_PigBank_Diamond.json b/data/DB_PigBank_Diamond.json index ab24207..e6d4f7b 100644 --- a/data/DB_PigBank_Diamond.json +++ b/data/DB_PigBank_Diamond.json @@ -4,19 +4,37 @@ "Id": 1, "BuyCountMin": 1, "BuyCountMax": 1, - "CostDiamond": 30 + "CostDiamond": 30, + "MaxGold": 10000000, + "MaxDiamond": 150, + "DiamondId": 98001, + "CoinPrice": 100, + "DiamondPrice": 150, + "DiamondNowPrice": 99 }, { "Id": 2, "BuyCountMin": 2, "BuyCountMax": 2, - "CostDiamond": 40 + "CostDiamond": 40, + "MaxGold": 10000000, + "MaxDiamond": 300, + "DiamondId": 98002, + "CoinPrice": 100, + "DiamondPrice": 300, + "DiamondNowPrice": 199 }, { "Id": 3, "BuyCountMin": 3, "BuyCountMax": 99999999, - "CostDiamond": 50 + "CostDiamond": 50, + "MaxGold": 10000000, + "MaxDiamond": 750, + "DiamondId": 98003, + "CoinPrice": 100, + "DiamondPrice": 750, + "DiamondNowPrice": 499 } ] } \ No newline at end of file diff --git a/data/DB_Pigbank_Prop.dat b/data/DB_Pigbank_Prop.dat index 0ec5d89..c071c30 100644 --- a/data/DB_Pigbank_Prop.dat +++ b/data/DB_Pigbank_Prop.dat @@ -1,6 +1,8 @@ - BankMaxCoin - WinCoinRate - LoseCoinRate + WinCoinRate + LoseCoinRate - DayBuyMaxCnt \ No newline at end of file + DayBuyMaxCnt +WinCoinRateDiamond +LoseCoinRateDiamond +DayBuyMaxCntDiamond \ No newline at end of file diff --git a/data/DB_Pigbank_Prop.json b/data/DB_Pigbank_Prop.json index f340c30..25da528 100644 --- a/data/DB_Pigbank_Prop.json +++ b/data/DB_Pigbank_Prop.json @@ -2,23 +2,31 @@ "Arr": [ { "Id": 1, - "PorpName": "BankMaxCoin", - "PropValue": 10000000 - }, - { - "Id": 2, "PorpName": "WinCoinRate", "PropValue": 5 }, { - "Id": 3, + "Id": 2, "PorpName": "LoseCoinRate", "PropValue": 10 }, { - "Id": 4, + "Id": 3, "PorpName": "DayBuyMaxCnt", "PropValue": 3 + }, + { + "Id": 4, + "PorpName": "WinCoinRateDiamond" + }, + { + "Id": 5, + "PorpName": "LoseCoinRateDiamond" + }, + { + "Id": 6, + "PorpName": "DayBuyMaxCntDiamond", + "PropValue": 3 } ] } \ No newline at end of file diff --git a/data/DB_PropExchange.dat b/data/DB_PropExchange.dat index 13a118614580b018a035d3533c99f93ed9ecce2b..d3d5d36c62a356f352e6476de9eb7a383a21c791 100644 GIT binary patch literal 384 zcmd-w<6snElw#w!*2WB`uS4m}Q2Gj#z6zq1I5-yevI!h$vE|a^U;?YZ0hPZArEfv$ z+i2>;IUwf4%!AnjRtK~nW*^udB==x7Ux^d!j)t|5Sh!+2SilZ}IRM>2n1wKdVGg_l Xbtt;W!4@j9b1VXS^b0c=18pGyWcoZc 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& diff --git a/data/DB_Task.dat b/data/DB_Task.dat index 096091711a38b82ad8f6d8dcf91e0619d3a02910..a8e8a419f5000713cc32b39db00b7b9e32c8f556 100644 GIT binary patch literal 2161 zcmaKtO;1xn6o$R`_O_?f(hj9SLAhMo3wEb*NkZb9nEncXg)0_>=z^pw5<^@R1a+Y? z_!XB}ln~t@;zyzj#g7=>@&kP5%-j!R+f|b}&&<59~xp*7-uqq+=Ym@;r<`-S?hvZIl?E0@F|5iF>}eVb2zyWmJ$ zR45D8YPsoPIm@=UmN#u|5YVeCN2-!0wZX-54kFd^rxY)*Atw*+^SIaX#ed3FU3u%n z^^WnDRL*rMAE5%2IDW1^_ux<+9YNS!gcJwS>0o$ET*qdQBvd)RtSha0=hplTRO{4d|sreuQ3NScZHnMjA42LlTc(A5TnxT;a@k7uHbVks6HGD+7O zNR+9izhCqOvCgnND|yDQH)Nm2b|1DTBTg-~70ZQR)7PHVIVhM3{r zndw`}n}ci|RHNH~3JhI7-Nj{%)&Z3nO7{4e#eg;djWVSBth*RKB`}Kn0=fgrX9{w= z+S~kNVIo|7S>5eD0+VH?hrP#uiVU$modKF>GH^J9Cx8YSVtdEOuhsTg_)|b98R|U7 zs(%4J12w@^FMBVZ+ZbmT?`3y;Z7_nF9`?2YNrrmZdkJWWp&s3P1?Ut*z3lCPsxsBx zUZ7uOP#J#J%m=}L2mI>sUspi;c&lb3T1LaPWS+ezCJtyljUc@=TPYX-~KW@f}2oiE|N=FbLuY khzb*NQW#5b%7 literal 2198 zcmaKt%}*0S7{=Y*Zu@o$?Er-q)UuRP_NL)TLgJZ2{|f#JPdyN#hbC2#7~`QJc+wdB zK2|_N^n!>VQ7_;}j9ffmVm$fGJKNm>X-`dNe*4bzJnzg~Q6x)RdCRkW>%27?r{!8) zx|2kU_}!j!rftg-MY5$0#x|I2z%**{Y5SBV3gk!!jAJmFsE+U`CS%x-8T%sIzhHrI zr3=FKMX00@ox((1#zDlnhSrGl1Jzj&IZD8d?WO%KWk(~`%NIpI5iF>UyEa#UJ?BVU zQxK_^Kg4)>2{{$uz6<9%o-mX(XQ%L) z+86NFjpLobo0etlL-`=3p~Uf0e)ZnIDjh=jI0GpTqEo?y>#gGWc$g$qIiB<*7phDP zfxdnu=XkwFiTYwDu%!wN$OIQ~L$h`eN8{BE1>__#pfp4|1r=fd@-oRM%!GjYG5~D2 z7?gqm4pf(D{Q2t!gbHa$rkMDV2x~Nd{Z0i$7Kij8=9t&**DD~7N0AjH)Qg-IfV&&k zFrrXMAA(j$^JZ6seB4Ol7}c!_AXx;?$m|ply*?AzuI?S=M2W6cAjMVvT6=%)1Tg}A z8KbKeQwv-Y%gdI8)x%~xcf=C(hrAL^UT znvIq)c)cPAHCTVSvzZPn8d1yu^l70Yhc(!kU#XpqKov-W1KF}b7HRR8g=}5iVb$T| z*(Bj;TG!PTB8D{0hQ=Bpfp35#!*Q_g_Z+YW@;H!mMQM_kt@fRL5f;MgXPD~faT8dPu}&UKdRT)?1pg)K!nFQvFn9T1twcK*=_#h7B#f8IRGHp@ z>S4+pOGYaLZWmmRxi-yYZk*nNJIh=;D&tA@L1Jfe~ZMn?naf;yaiUGe)3Q HbKd*|CHvk9 diff --git a/data/DB_Task.json b/data/DB_Task.json index 2480fa0..998d30a 100644 --- a/data/DB_Task.json +++ b/data/DB_Task.json @@ -146,8 +146,8 @@ "TargetTimes": 1, "FinishTimes": 1, "Award": { - "100001": 1000000, - "100002": 10 + "100001": 100000, + "100002": 1 } }, { @@ -158,8 +158,8 @@ "TargetTimes": 10, "FinishTimes": 1, "Award": { - "100001": 1000000, - "100002": 10 + "100001": 100000, + "100002": 1 }, "GameType": 1 }, @@ -171,7 +171,7 @@ "TargetTimes": 10000000, "FinishTimes": 1, "Award": { - "100001": 1000000 + "100001": 100000 } }, { @@ -182,8 +182,8 @@ "TargetTimes": 10, "FinishTimes": 1, "Award": { - "100001": 1000000, - "100002": 10 + "100001": 100000, + "100002": 1 }, "GameType": 1 }, @@ -195,8 +195,8 @@ "TargetTimes": 3, "FinishTimes": 1, "Award": { - "100001": 10000000, - "100002": 10 + "100001": 1000000, + "100002": 1 } }, { @@ -207,7 +207,7 @@ "TargetTimes": 10, "FinishTimes": 1, "Award": { - "100001": 250000, + "100001": 25000, "50001": 1 } }, @@ -219,7 +219,7 @@ "TargetTimes": 5, "FinishTimes": 1, "Award": { - "100001": 2500000, + "100001": 250000, "50001": 2 } }, @@ -231,7 +231,7 @@ "TargetTimes": 10, "FinishTimes": 1, "Award": { - "100001": 5000000, + "100001": 500000, "50001": 4 } }, @@ -243,7 +243,7 @@ "TargetTimes": 100, "FinishTimes": 1, "Award": { - "100001": 2500000, + "100001": 250000, "50001": 2 } }, @@ -255,7 +255,7 @@ "TargetTimes": 500, "FinishTimes": 1, "Award": { - "100001": 12500000, + "100001": 1250000, "50001": 10 } }, @@ -267,7 +267,7 @@ "TargetTimes": 1000, "FinishTimes": 1, "Award": { - "100001": 25000000, + "100001": 2500000, "50001": 20 } }, @@ -279,8 +279,8 @@ "TargetTimes": 10000, "FinishTimes": 1, "Award": { - "100001": 1000000, - "100002": 20 + "100001": 100000, + "100002": 2 } }, { @@ -291,8 +291,8 @@ "TargetTimes": 50000, "FinishTimes": 1, "Award": { - "100001": 10000000, - "100002": 20 + "100001": 1000000, + "100002": 2 } }, { @@ -303,8 +303,8 @@ "TargetTimes": 200000, "FinishTimes": 1, "Award": { - "100001": 20000000, - "100002": 50 + "100001": 2000000, + "100002": 5 } }, { @@ -315,8 +315,8 @@ "TargetTimes": 1000000, "FinishTimes": 1, "Award": { - "100001": 50000000, - "100002": 100 + "100001": 5000000, + "100002": 10 } }, { @@ -327,8 +327,8 @@ "TargetTimes": 100000000, "FinishTimes": 1, "Award": { - "100001": 1000000, - "100002": 10 + "100001": 100000, + "100002": 1 }, "GameType": 1 }, @@ -340,8 +340,8 @@ "TargetTimes": 1000000000, "FinishTimes": 1, "Award": { - "100001": 2000000, - "100002": 20 + "100001": 200000, + "100002": 2 }, "GameType": 1 }, @@ -353,8 +353,8 @@ "TargetTimes": 10000000000, "FinishTimes": 1, "Award": { - "100001": 3000000, - "100002": 30 + "100001": 300000, + "100002": 3 }, "GameType": 1 }, @@ -366,8 +366,8 @@ "TargetTimes": 100000000000, "FinishTimes": 1, "Award": { - "100001": 5000000, - "100002": 50 + "100001": 500000, + "100002": 5 }, "GameType": 1 }, @@ -379,8 +379,8 @@ "TargetTimes": 500000000000, "FinishTimes": 1, "Award": { - "100001": 10000000, - "100002": 100 + "100001": 1000000, + "100002": 10 }, "GameType": 1 }, @@ -392,8 +392,8 @@ "TargetTimes": 1000000000000, "FinishTimes": 1, "Award": { - "100001": 20000000, - "100002": 200 + "100001": 2000000, + "100002": 20 }, "GameType": 1 }, @@ -405,8 +405,8 @@ "TargetTimes": 100, "FinishTimes": 1, "Award": { - "100001": 1000000, - "100002": 10 + "100001": 100000, + "100002": 1 }, "GameType": 1 }, @@ -418,8 +418,8 @@ "TargetTimes": 1000, "FinishTimes": 1, "Award": { - "100001": 2000000, - "100002": 20 + "100001": 200000, + "100002": 2 }, "GameType": 1 }, @@ -431,8 +431,8 @@ "TargetTimes": 5000, "FinishTimes": 1, "Award": { - "100001": 3000000, - "100002": 30 + "100001": 300000, + "100002": 3 }, "GameType": 1 }, @@ -444,8 +444,8 @@ "TargetTimes": 10000, "FinishTimes": 1, "Award": { - "100001": 5000000, - "100002": 50 + "100001": 500000, + "100002": 5 }, "GameType": 1 }, @@ -457,8 +457,8 @@ "TargetTimes": 50000, "FinishTimes": 1, "Award": { - "100001": 10000000, - "100002": 100 + "100001": 1000000, + "100002": 10 }, "GameType": 1 }, @@ -470,8 +470,8 @@ "TargetTimes": 100000, "FinishTimes": 1, "Award": { - "100001": 20000000, - "100002": 200 + "100001": 2000000, + "100002": 20 }, "GameType": 1 }, @@ -483,8 +483,8 @@ "TargetTimes": 100, "FinishTimes": 1, "Award": { - "100001": 1000000, - "100002": 10 + "100001": 100000, + "100002": 1 }, "GameType": 1 }, @@ -496,8 +496,8 @@ "TargetTimes": 1000, "FinishTimes": 1, "Award": { - "100001": 2000000, - "100002": 20 + "100001": 200000, + "100002": 2 }, "GameType": 1 }, @@ -509,8 +509,8 @@ "TargetTimes": 5000, "FinishTimes": 1, "Award": { - "100001": 3000000, - "100002": 30 + "100001": 300000, + "100002": 3 }, "GameType": 1 }, @@ -522,8 +522,8 @@ "TargetTimes": 10000, "FinishTimes": 1, "Award": { - "100001": 5000000, - "100002": 50 + "100001": 500000, + "100002": 5 }, "GameType": 1 }, @@ -535,8 +535,8 @@ "TargetTimes": 50000, "FinishTimes": 1, "Award": { - "100001": 10000000, - "100002": 100 + "100001": 1000000, + "100002": 10 }, "GameType": 1 }, @@ -548,8 +548,8 @@ "TargetTimes": 100000, "FinishTimes": 1, "Award": { - "100001": 20000000, - "100002": 200 + "100001": 2000000, + "100002": 20 }, "GameType": 1 }, @@ -561,8 +561,8 @@ "TargetTimes": 100, "FinishTimes": 1, "Award": { - "100001": 1000000, - "100002": 10 + "100001": 100000, + "100002": 1 }, "GameType": 1 }, @@ -574,8 +574,8 @@ "TargetTimes": 1000, "FinishTimes": 1, "Award": { - "100001": 2000000, - "100002": 20 + "100001": 200000, + "100002": 2 }, "GameType": 1 }, @@ -587,8 +587,8 @@ "TargetTimes": 5000, "FinishTimes": 1, "Award": { - "100001": 3000000, - "100002": 30 + "100001": 300000, + "100002": 3 }, "GameType": 1 }, @@ -600,8 +600,8 @@ "TargetTimes": 10000, "FinishTimes": 1, "Award": { - "100001": 5000000, - "100002": 50 + "100001": 500000, + "100002": 5 }, "GameType": 1 }, @@ -613,8 +613,8 @@ "TargetTimes": 50000, "FinishTimes": 1, "Award": { - "100001": 10000000, - "100002": 100 + "100001": 1000000, + "100002": 10 }, "GameType": 1 }, @@ -626,8 +626,8 @@ "TargetTimes": 100000, "FinishTimes": 1, "Award": { - "100001": 20000000, - "100002": 200 + "100001": 2000000, + "100002": 20 }, "GameType": 1 }, @@ -639,8 +639,8 @@ "TargetTimes": 10, "FinishTimes": 1, "Award": { - "100001": 1000000, - "100002": 10 + "100001": 100000, + "100002": 1 }, "Position": [ 1, @@ -655,8 +655,8 @@ "TargetTimes": 100, "FinishTimes": 1, "Award": { - "100001": 2000000, - "100002": 20 + "100001": 200000, + "100002": 2 }, "Position": [ 1, @@ -671,8 +671,8 @@ "TargetTimes": 1000, "FinishTimes": 1, "Award": { - "100001": 3000000, - "100002": 30 + "100001": 300000, + "100002": 3 }, "Position": [ 1, @@ -687,8 +687,8 @@ "TargetTimes": 10000, "FinishTimes": 1, "Award": { - "100001": 5000000, - "100002": 50 + "100001": 500000, + "100002": 5 }, "Position": [ 1, @@ -703,8 +703,8 @@ "TargetTimes": 50000, "FinishTimes": 1, "Award": { - "100001": 10000000, - "100002": 100 + "100001": 1000000, + "100002": 10 }, "Position": [ 1, @@ -719,8 +719,8 @@ "TargetTimes": 100000, "FinishTimes": 1, "Award": { - "100001": 20000000, - "100002": 200 + "100001": 2000000, + "100002": 20 }, "Position": [ 1, @@ -735,8 +735,8 @@ "TargetTimes": 10, "FinishTimes": 1, "Award": { - "100001": 1000000, - "100002": 10 + "100001": 100000, + "100002": 1 } }, { @@ -747,8 +747,8 @@ "TargetTimes": 20, "FinishTimes": 1, "Award": { - "100001": 2000000, - "100002": 20 + "100001": 200000, + "100002": 2 } }, { @@ -759,8 +759,8 @@ "TargetTimes": 50, "FinishTimes": 1, "Award": { - "100001": 3000000, - "100002": 30 + "100001": 300000, + "100002": 3 } }, { @@ -771,8 +771,8 @@ "TargetTimes": 100, "FinishTimes": 1, "Award": { - "100001": 5000000, - "100002": 50 + "100001": 500000, + "100002": 5 } }, { @@ -783,8 +783,8 @@ "TargetTimes": 500, "FinishTimes": 1, "Award": { - "100001": 10000000, - "100002": 100 + "100001": 1000000, + "100002": 10 } }, { @@ -795,8 +795,8 @@ "TargetTimes": 1000, "FinishTimes": 1, "Award": { - "100001": 20000000, - "100002": 200 + "100001": 2000000, + "100002": 20 } } ] diff --git a/data/DB_VIP.dat b/data/DB_VIP.dat index 6c97414e5f67bacd1e30c5dafef831fadbc6b450..cd82553912ff22f9959f2044d5a2f7408f3c0a4d 100644 GIT binary patch delta 163 zcmX@k_ML5l7Nh<|Z5`GbjEr0c6C-tj3??9>1H@nkGPZ*lEL=ttpXmb`tXxKu#Th{? zHXzFb%wh+!D#0ucAZrzv#mQwn`8J~gP#qVL#mfX@adVkYwr4T|vUs@6CKodq16jO4 X)(S9-56HR;X7K}ALd+mp0WJmrMmHo% delta 115 zcmey)cARa37NgEYZ5<{q-H9=}AhHik9srX16F=z#$;oPrU@8hi^+BjZAj)9!H%0>x hrOgDSj3y^A88LAgPoB server.DB_ActSign @@ -11627,7 +12001,7 @@ var file_pbdata_proto_depIdxs = []int32{ 18, // 9: server.DB_ChessMatchRulesArray.Arr:type_name -> server.DB_ChessMatchRules 20, // 10: server.DB_ChessRankArray.Arr:type_name -> server.DB_ChessRank 22, // 11: server.DB_ClientVerArray.Arr:type_name -> server.DB_ClientVer - 132, // 12: server.DB_CollectBox.ItemID:type_name -> server.DB_CollectBox.ItemIDEntry + 136, // 12: server.DB_CollectBox.ItemID:type_name -> server.DB_CollectBox.ItemIDEntry 24, // 13: server.DB_CollectBoxArray.Arr:type_name -> server.DB_CollectBox 26, // 14: server.DB_CollectBoxGainArray.Arr:type_name -> server.DB_CollectBoxGain 28, // 15: server.DB_CrashSearchArray.Arr:type_name -> server.DB_CrashSearch @@ -11652,10 +12026,10 @@ var file_pbdata_proto_depIdxs = []int32{ 66, // 34: server.DB_Game_IntroductionArray.Arr:type_name -> server.DB_Game_Introduction 68, // 35: server.DB_Game_PetArray.Arr:type_name -> server.DB_Game_Pet 70, // 36: server.DB_Game_RoleArray.Arr:type_name -> server.DB_Game_Role - 133, // 37: server.DB_GiftBox.ItemID:type_name -> server.DB_GiftBox.ItemIDEntry + 137, // 37: server.DB_GiftBox.ItemID:type_name -> server.DB_GiftBox.ItemIDEntry 72, // 38: server.DB_GiftBoxArray.Arr:type_name -> server.DB_GiftBox - 134, // 39: server.DB_GiftCard.Rewards:type_name -> server.DB_GiftCard.RewardsEntry - 135, // 40: server.DB_GiftCard.DayRewards:type_name -> server.DB_GiftCard.DayRewardsEntry + 138, // 39: server.DB_GiftCard.Rewards:type_name -> server.DB_GiftCard.RewardsEntry + 139, // 40: server.DB_GiftCard.DayRewards:type_name -> server.DB_GiftCard.DayRewardsEntry 74, // 41: server.DB_GiftCardArray.Arr:type_name -> server.DB_GiftCard 76, // 42: server.DB_IceAgeElementRateArray.Arr:type_name -> server.DB_IceAgeElementRate 78, // 43: server.DB_Legend_OddsArray.Arr:type_name -> server.DB_Legend_Odds @@ -11667,34 +12041,36 @@ var file_pbdata_proto_depIdxs = []int32{ 90, // 49: server.DB_NameBoyArray.Arr:type_name -> server.DB_NameBoy 92, // 50: server.DB_NameGirlArray.Arr:type_name -> server.DB_NameGirl 94, // 51: server.DB_NewPlayerArray.Arr:type_name -> server.DB_NewPlayer - 96, // 52: server.DB_PhoneLotteryArray.Arr:type_name -> server.DB_PhoneLottery - 98, // 53: server.DB_PigBank_DiamondArray.Arr:type_name -> server.DB_PigBank_Diamond - 100, // 54: server.DB_Pigbank_PropArray.Arr:type_name -> server.DB_Pigbank_Prop - 102, // 55: server.DB_PlayerExpArray.Arr:type_name -> server.DB_PlayerExp - 104, // 56: server.DB_PlayerInfoArray.Arr:type_name -> server.DB_PlayerInfo - 106, // 57: server.DB_PlayerTypeArray.Arr:type_name -> server.DB_PlayerType - 108, // 58: server.DB_PotOddArray.Arr:type_name -> server.DB_PotOdd - 136, // 59: server.DB_PropExchange.Cost:type_name -> server.DB_PropExchange.CostEntry - 137, // 60: server.DB_PropExchange.Gain:type_name -> server.DB_PropExchange.GainEntry - 110, // 61: server.DB_PropExchangeArray.Arr:type_name -> server.DB_PropExchange - 112, // 62: server.DB_RankCycleArray.Arr:type_name -> server.DB_RankCycle - 114, // 63: server.DB_RankLevelArray.Arr:type_name -> server.DB_RankLevel - 116, // 64: server.DB_RankRewardArray.Arr:type_name -> server.DB_RankReward - 118, // 65: server.DB_Sensitive_WordsArray.Arr:type_name -> server.DB_Sensitive_Words - 120, // 66: server.DB_SlotRateWeightArray.Arr:type_name -> server.DB_SlotRateWeight - 122, // 67: server.DB_SystemChanceArray.Arr:type_name -> server.DB_SystemChance - 138, // 68: server.DB_Task.Award:type_name -> server.DB_Task.AwardEntry - 124, // 69: server.DB_TaskArray.Arr:type_name -> server.DB_Task - 126, // 70: server.DB_ThirdPlatformGameMappingArray.Arr:type_name -> server.DB_ThirdPlatformGameMapping - 128, // 71: server.DB_TipsArray.Arr:type_name -> server.DB_Tips - 139, // 72: server.DB_VIP.Privilege7:type_name -> server.DB_VIP.Privilege7Entry - 140, // 73: server.DB_VIP.Award:type_name -> server.DB_VIP.AwardEntry - 130, // 74: server.DB_VIPArray.Arr:type_name -> server.DB_VIP - 75, // [75:75] is the sub-list for method output_type - 75, // [75:75] is the sub-list for method input_type - 75, // [75:75] is the sub-list for extension type_name - 75, // [75:75] is the sub-list for extension extendee - 0, // [0:75] is the sub-list for field type_name + 96, // 52: server.DB_PetSkillArray.Arr:type_name -> server.DB_PetSkill + 98, // 53: server.DB_PetSkillDesArray.Arr:type_name -> server.DB_PetSkillDes + 100, // 54: server.DB_PhoneLotteryArray.Arr:type_name -> server.DB_PhoneLottery + 102, // 55: server.DB_PigBank_DiamondArray.Arr:type_name -> server.DB_PigBank_Diamond + 104, // 56: server.DB_Pigbank_PropArray.Arr:type_name -> server.DB_Pigbank_Prop + 106, // 57: server.DB_PlayerExpArray.Arr:type_name -> server.DB_PlayerExp + 108, // 58: server.DB_PlayerInfoArray.Arr:type_name -> server.DB_PlayerInfo + 110, // 59: server.DB_PlayerTypeArray.Arr:type_name -> server.DB_PlayerType + 112, // 60: server.DB_PotOddArray.Arr:type_name -> server.DB_PotOdd + 140, // 61: server.DB_PropExchange.Cost:type_name -> server.DB_PropExchange.CostEntry + 141, // 62: server.DB_PropExchange.Gain:type_name -> server.DB_PropExchange.GainEntry + 114, // 63: server.DB_PropExchangeArray.Arr:type_name -> server.DB_PropExchange + 116, // 64: server.DB_RankCycleArray.Arr:type_name -> server.DB_RankCycle + 118, // 65: server.DB_RankLevelArray.Arr:type_name -> server.DB_RankLevel + 120, // 66: server.DB_RankRewardArray.Arr:type_name -> server.DB_RankReward + 122, // 67: server.DB_Sensitive_WordsArray.Arr:type_name -> server.DB_Sensitive_Words + 124, // 68: server.DB_SlotRateWeightArray.Arr:type_name -> server.DB_SlotRateWeight + 126, // 69: server.DB_SystemChanceArray.Arr:type_name -> server.DB_SystemChance + 142, // 70: server.DB_Task.Award:type_name -> server.DB_Task.AwardEntry + 128, // 71: server.DB_TaskArray.Arr:type_name -> server.DB_Task + 130, // 72: server.DB_ThirdPlatformGameMappingArray.Arr:type_name -> server.DB_ThirdPlatformGameMapping + 132, // 73: server.DB_TipsArray.Arr:type_name -> server.DB_Tips + 143, // 74: server.DB_VIP.Privilege7:type_name -> server.DB_VIP.Privilege7Entry + 144, // 75: server.DB_VIP.Award:type_name -> server.DB_VIP.AwardEntry + 134, // 76: server.DB_VIPArray.Arr:type_name -> server.DB_VIP + 77, // [77:77] is the sub-list for method output_type + 77, // [77:77] is the sub-list for method input_type + 77, // [77:77] is the sub-list for extension type_name + 77, // [77:77] is the sub-list for extension extendee + 0, // [0:77] is the sub-list for field type_name } func init() { file_pbdata_proto_init() } @@ -12856,7 +13232,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PhoneLottery); i { + switch v := v.(*DB_PetSkill); i { case 0: return &v.state case 1: @@ -12868,7 +13244,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PhoneLotteryArray); i { + switch v := v.(*DB_PetSkillArray); i { case 0: return &v.state case 1: @@ -12880,7 +13256,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PigBank_Diamond); i { + switch v := v.(*DB_PetSkillDes); i { case 0: return &v.state case 1: @@ -12892,7 +13268,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PigBank_DiamondArray); i { + switch v := v.(*DB_PetSkillDesArray); i { case 0: return &v.state case 1: @@ -12904,7 +13280,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Pigbank_Prop); i { + switch v := v.(*DB_PhoneLottery); i { case 0: return &v.state case 1: @@ -12916,7 +13292,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Pigbank_PropArray); i { + switch v := v.(*DB_PhoneLotteryArray); i { case 0: return &v.state case 1: @@ -12928,7 +13304,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PlayerExp); i { + switch v := v.(*DB_PigBank_Diamond); i { case 0: return &v.state case 1: @@ -12940,7 +13316,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PlayerExpArray); i { + switch v := v.(*DB_PigBank_DiamondArray); i { case 0: return &v.state case 1: @@ -12952,7 +13328,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PlayerInfo); i { + switch v := v.(*DB_Pigbank_Prop); i { case 0: return &v.state case 1: @@ -12964,7 +13340,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PlayerInfoArray); i { + switch v := v.(*DB_Pigbank_PropArray); i { case 0: return &v.state case 1: @@ -12976,7 +13352,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PlayerType); i { + switch v := v.(*DB_PlayerExp); i { case 0: return &v.state case 1: @@ -12988,7 +13364,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PlayerTypeArray); i { + switch v := v.(*DB_PlayerExpArray); i { case 0: return &v.state case 1: @@ -13000,7 +13376,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PotOdd); i { + switch v := v.(*DB_PlayerInfo); i { case 0: return &v.state case 1: @@ -13012,7 +13388,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PotOddArray); i { + switch v := v.(*DB_PlayerInfoArray); i { case 0: return &v.state case 1: @@ -13024,7 +13400,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PropExchange); i { + switch v := v.(*DB_PlayerType); i { case 0: return &v.state case 1: @@ -13036,7 +13412,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PropExchangeArray); i { + switch v := v.(*DB_PlayerTypeArray); i { case 0: return &v.state case 1: @@ -13048,7 +13424,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_RankCycle); i { + switch v := v.(*DB_PotOdd); i { case 0: return &v.state case 1: @@ -13060,7 +13436,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_RankCycleArray); i { + switch v := v.(*DB_PotOddArray); i { case 0: return &v.state case 1: @@ -13072,7 +13448,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_RankLevel); i { + switch v := v.(*DB_PropExchange); i { case 0: return &v.state case 1: @@ -13084,7 +13460,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_RankLevelArray); i { + switch v := v.(*DB_PropExchangeArray); i { case 0: return &v.state case 1: @@ -13096,7 +13472,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_RankReward); i { + switch v := v.(*DB_RankCycle); i { case 0: return &v.state case 1: @@ -13108,7 +13484,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_RankRewardArray); i { + switch v := v.(*DB_RankCycleArray); i { case 0: return &v.state case 1: @@ -13120,7 +13496,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Sensitive_Words); i { + switch v := v.(*DB_RankLevel); i { case 0: return &v.state case 1: @@ -13132,7 +13508,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Sensitive_WordsArray); i { + switch v := v.(*DB_RankLevelArray); i { case 0: return &v.state case 1: @@ -13144,7 +13520,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_SlotRateWeight); i { + switch v := v.(*DB_RankReward); i { case 0: return &v.state case 1: @@ -13156,7 +13532,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_SlotRateWeightArray); i { + switch v := v.(*DB_RankRewardArray); i { case 0: return &v.state case 1: @@ -13168,7 +13544,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_SystemChance); i { + switch v := v.(*DB_Sensitive_Words); i { case 0: return &v.state case 1: @@ -13180,7 +13556,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_SystemChanceArray); i { + switch v := v.(*DB_Sensitive_WordsArray); i { case 0: return &v.state case 1: @@ -13192,7 +13568,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Task); i { + switch v := v.(*DB_SlotRateWeight); i { case 0: return &v.state case 1: @@ -13204,7 +13580,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_TaskArray); i { + switch v := v.(*DB_SlotRateWeightArray); i { case 0: return &v.state case 1: @@ -13216,7 +13592,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_ThirdPlatformGameMapping); i { + switch v := v.(*DB_SystemChance); i { case 0: return &v.state case 1: @@ -13228,7 +13604,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_ThirdPlatformGameMappingArray); i { + switch v := v.(*DB_SystemChanceArray); i { case 0: return &v.state case 1: @@ -13240,7 +13616,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_Tips); i { + switch v := v.(*DB_Task); i { case 0: return &v.state case 1: @@ -13252,7 +13628,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_TipsArray); i { + switch v := v.(*DB_TaskArray); i { case 0: return &v.state case 1: @@ -13264,7 +13640,7 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_VIP); i { + switch v := v.(*DB_ThirdPlatformGameMapping); i { case 0: return &v.state case 1: @@ -13276,6 +13652,54 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DB_ThirdPlatformGameMappingArray); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbdata_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DB_Tips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbdata_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DB_TipsArray); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbdata_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DB_VIP); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbdata_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_VIPArray); i { case 0: return &v.state @@ -13294,7 +13718,7 @@ func file_pbdata_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pbdata_proto_rawDesc, NumEnums: 0, - NumMessages: 141, + NumMessages: 145, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/server/pbdata.proto b/protocol/server/pbdata.proto index b8e9622..ce88410 100644 --- a/protocol/server/pbdata.proto +++ b/protocol/server/pbdata.proto @@ -1237,6 +1237,48 @@ message DB_NewPlayerArray { repeated DB_NewPlayer Arr = 1; } +message DB_PetSkill { + + int32 ID = 1; + + int32 PetId = 2; + + string SkillName = 3; + + string SKillDes = 4; + + int32 SKillLevel = 5; + + int32 SKillUnlockType = 6; + + string SKillUnlockTakes = 7; + +} + +message DB_PetSkillArray { + repeated DB_PetSkill Arr = 1; +} + +message DB_PetSkillDes { + + int32 ID = 1; + + int32 SkillId = 2; + + int32 SkillLevel = 3; + + string SKillValue = 4; + + int32 Fragment = 5; + + int32 Amount = 6; + +} + +message DB_PetSkillDesArray { + repeated DB_PetSkillDes Arr = 1; +} + message DB_PhoneLottery { int32 Id = 1; @@ -1279,6 +1321,18 @@ message DB_PigBank_Diamond { int32 CostDiamond = 4; + int32 MaxGold = 5; + + int32 MaxDiamond = 6; + + int32 DiamondId = 7; + + int32 CoinPrice = 8; + + int32 DiamondPrice = 9; + + int32 DiamondNowPrice = 10; + } message DB_PigBank_DiamondArray { diff --git a/protocol/welfare/welfare.pb.go b/protocol/welfare/welfare.pb.go index 43b8942..029c793 100644 --- a/protocol/welfare/welfare.pb.go +++ b/protocol/welfare/welfare.pb.go @@ -128,14 +128,18 @@ const ( SPacketID_PACKET_CSWelfRelief SPacketID = 2900 //救济金信息 SPacketID_PACKET_SCWelfRelief SPacketID = 2901 //救济金信息 // 邀请活动 - SPacketID_PACKET_CSInviteInfo SPacketID = 2902 //邀请信息 - 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 // 存钱罐领取金币 + SPacketID_PACKET_CSInviteInfo SPacketID = 2902 //邀请信息 + 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 // 存钱罐领取金币 + SPacketID_PACKET_CSDiamondBankGetInfo SPacketID = 2914 //钻石存钱罐信息获取 + SPacketID_PACKET_SCDiamondBankGetInfo SPacketID = 2915 //钻石存钱罐信息返回 + SPacketID_PACKET_CSDiamondBankTakeDiamond SPacketID = 2916 //钻石存钱罐领取 + SPacketID_PACKET_SCDiamondBankTakeDiamond SPacketID = 2917 //钻石存钱罐领取返回 ) // Enum value maps for SPacketID. @@ -174,41 +178,49 @@ var ( 2911: "PACKET_SCPigbankGetInfo", 2912: "PACKET_CSPigbankTakeCoin", 2913: "PACKET_SCPigbankTakeCoin", + 2914: "PACKET_CSDiamondBankGetInfo", + 2915: "PACKET_SCDiamondBankGetInfo", + 2916: "PACKET_CSDiamondBankTakeDiamond", + 2917: "PACKET_SCDiamondBankTakeDiamond", } SPacketID_value = map[string]int32{ - "PACKET_SHOP_ZERO": 0, - "PACKET_CS_WELF_GETRELIEFFUND": 2580, - "PACKET_SC_WELF_GETRELIEFFUND": 2581, - "PACKET_CS_WELF_GETTURNPLATE": 2582, - "PACKET_SC_WELF_GETTURNPLATE": 2583, - "PACKET_CS_WELF_GETADDUPSIGN": 2584, - "PACKET_SC_WELF_GETADDUPSIGN": 2585, - "PACKET_CS_WELF_WELFAREINFO": 2586, - "PACKET_SC_WELF_WELFAREINFO": 2587, - "PACKET_CS_WELF_BLINBOXINFO": 2588, - "PACKET_SC_WELF_BLINBOXINFO": 2589, - "PACKET_CS_WELF_GETBLINBOX": 2590, - "PACKET_SC_WELF_GETBLINBOX": 2591, - "PACKET_CS_WELF_FIRSTPAYINFO": 2592, - "PACKET_SC_WELF_FIRSTPAYINFO": 2593, - "PACKET_CS_WELF_FIRSTPAY": 2594, - "PACKET_SC_WELF_FIRSTPAY": 2595, - "PACKET_CS_WELF_CONTINPAYINFO": 2596, - "PACKET_SC_WELF_CONTINPAYINFO": 2597, - "PACKET_CS_WELF_CONTINPAY": 2598, - "PACKET_SC_WELF_CONTINPAY": 2599, - "PACKET_CS_SignDay_Addup2Award": 2600, - "PACKET_SC_SignDay_Addup2Award": 2601, - "PACKET_CSWelfRelief": 2900, - "PACKET_SCWelfRelief": 2901, - "PACKET_CSInviteInfo": 2902, - "PACKET_SCInviteInfo": 2903, - "PACKET_CSBindInvite": 2904, - "PACKET_SCBindInvite": 2905, - "PACKET_CSPigbankGetInfo": 2910, - "PACKET_SCPigbankGetInfo": 2911, - "PACKET_CSPigbankTakeCoin": 2912, - "PACKET_SCPigbankTakeCoin": 2913, + "PACKET_SHOP_ZERO": 0, + "PACKET_CS_WELF_GETRELIEFFUND": 2580, + "PACKET_SC_WELF_GETRELIEFFUND": 2581, + "PACKET_CS_WELF_GETTURNPLATE": 2582, + "PACKET_SC_WELF_GETTURNPLATE": 2583, + "PACKET_CS_WELF_GETADDUPSIGN": 2584, + "PACKET_SC_WELF_GETADDUPSIGN": 2585, + "PACKET_CS_WELF_WELFAREINFO": 2586, + "PACKET_SC_WELF_WELFAREINFO": 2587, + "PACKET_CS_WELF_BLINBOXINFO": 2588, + "PACKET_SC_WELF_BLINBOXINFO": 2589, + "PACKET_CS_WELF_GETBLINBOX": 2590, + "PACKET_SC_WELF_GETBLINBOX": 2591, + "PACKET_CS_WELF_FIRSTPAYINFO": 2592, + "PACKET_SC_WELF_FIRSTPAYINFO": 2593, + "PACKET_CS_WELF_FIRSTPAY": 2594, + "PACKET_SC_WELF_FIRSTPAY": 2595, + "PACKET_CS_WELF_CONTINPAYINFO": 2596, + "PACKET_SC_WELF_CONTINPAYINFO": 2597, + "PACKET_CS_WELF_CONTINPAY": 2598, + "PACKET_SC_WELF_CONTINPAY": 2599, + "PACKET_CS_SignDay_Addup2Award": 2600, + "PACKET_SC_SignDay_Addup2Award": 2601, + "PACKET_CSWelfRelief": 2900, + "PACKET_SCWelfRelief": 2901, + "PACKET_CSInviteInfo": 2902, + "PACKET_SCInviteInfo": 2903, + "PACKET_CSBindInvite": 2904, + "PACKET_SCBindInvite": 2905, + "PACKET_CSPigbankGetInfo": 2910, + "PACKET_SCPigbankGetInfo": 2911, + "PACKET_CSPigbankTakeCoin": 2912, + "PACKET_SCPigbankTakeCoin": 2913, + "PACKET_CSDiamondBankGetInfo": 2914, + "PACKET_SCDiamondBankGetInfo": 2915, + "PACKET_CSDiamondBankTakeDiamond": 2916, + "PACKET_SCDiamondBankTakeDiamond": 2917, } ) @@ -2463,6 +2475,7 @@ type SCPigbankGetInfo struct { CostDiamond int64 `protobuf:"varint,4,opt,name=CostDiamond,proto3" json:"CostDiamond,omitempty"` // 耗费钻石 BankMaxCoin int64 `protobuf:"varint,5,opt,name=BankMaxCoin,proto3" json:"BankMaxCoin,omitempty"` // 存钱罐最储存值 DayBuyMaxCnt int32 `protobuf:"varint,6,opt,name=DayBuyMaxCnt,proto3" json:"DayBuyMaxCnt,omitempty"` // 今日最大可购买次数 + Price int64 `protobuf:"varint,7,opt,name=Price,proto3" json:"Price,omitempty"` //消耗钻石原价 } func (x *SCPigbankGetInfo) Reset() { @@ -2539,6 +2552,13 @@ func (x *SCPigbankGetInfo) GetDayBuyMaxCnt() int32 { return 0 } +func (x *SCPigbankGetInfo) GetPrice() int64 { + if x != nil { + return x.Price + } + return 0 +} + // 存钱罐领取金币 //PACKET_CSPigbankTakeCoin type CSPigbankTakeCoin struct { @@ -2592,6 +2612,7 @@ type SCPigbankTakeCoin struct { CostDiamond int64 `protobuf:"varint,4,opt,name=CostDiamond,proto3" json:"CostDiamond,omitempty"` // 耗费钻石 BankMaxCoin int64 `protobuf:"varint,5,opt,name=BankMaxCoin,proto3" json:"BankMaxCoin,omitempty"` // 存钱罐最储存值 DayBuyMaxCnt int32 `protobuf:"varint,6,opt,name=DayBuyMaxCnt,proto3" json:"DayBuyMaxCnt,omitempty"` // 今日最大可购买次数 + Price int64 `protobuf:"varint,7,opt,name=Price,proto3" json:"Price,omitempty"` //消耗钻石原价 } func (x *SCPigbankTakeCoin) Reset() { @@ -2668,6 +2689,158 @@ func (x *SCPigbankTakeCoin) GetDayBuyMaxCnt() int32 { return 0 } +func (x *SCPigbankTakeCoin) GetPrice() int64 { + if x != nil { + return x.Price + } + return 0 +} + +// 钻石存钱罐信息 +//PACKET_CSDiamondBankGetInfo +type CSDiamondBankGetInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CSDiamondBankGetInfo) Reset() { + *x = CSDiamondBankGetInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_welfare_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSDiamondBankGetInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSDiamondBankGetInfo) ProtoMessage() {} + +func (x *CSDiamondBankGetInfo) ProtoReflect() protoreflect.Message { + mi := &file_welfare_proto_msgTypes[40] + 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 CSDiamondBankGetInfo.ProtoReflect.Descriptor instead. +func (*CSDiamondBankGetInfo) Descriptor() ([]byte, []int) { + return file_welfare_proto_rawDescGZIP(), []int{40} +} + +// 钻石存钱罐信息 +//PACKET_SCDiamondBankGetInfo +type SCDiamondBankGetInfo 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"` //结果 + BankDiamond float64 `protobuf:"fixed64,2,opt,name=BankDiamond,proto3" json:"BankDiamond,omitempty"` // 当前已存钻石 + TakeTimes int32 `protobuf:"varint,3,opt,name=TakeTimes,proto3" json:"TakeTimes,omitempty"` // 领取次数 + BankMaxCoin int64 `protobuf:"varint,4,opt,name=BankMaxCoin,proto3" json:"BankMaxCoin,omitempty"` // 存钱罐最大储存值 + DayBuyMaxCnt int32 `protobuf:"varint,5,opt,name=DayBuyMaxCnt,proto3" json:"DayBuyMaxCnt,omitempty"` // 今日最大可购买次数 + Price int64 `protobuf:"varint,6,opt,name=Price,proto3" json:"Price,omitempty"` //原价 + NowPrice int64 `protobuf:"varint,7,opt,name=NowPrice,proto3" json:"NowPrice,omitempty"` //现价 + ShopId int32 `protobuf:"varint,8,opt,name=ShopId,proto3" json:"ShopId,omitempty"` //商城ID +} + +func (x *SCDiamondBankGetInfo) Reset() { + *x = SCDiamondBankGetInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_welfare_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCDiamondBankGetInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCDiamondBankGetInfo) ProtoMessage() {} + +func (x *SCDiamondBankGetInfo) ProtoReflect() protoreflect.Message { + mi := &file_welfare_proto_msgTypes[41] + 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 SCDiamondBankGetInfo.ProtoReflect.Descriptor instead. +func (*SCDiamondBankGetInfo) Descriptor() ([]byte, []int) { + return file_welfare_proto_rawDescGZIP(), []int{41} +} + +func (x *SCDiamondBankGetInfo) GetOpRetCode() OpResultCode { + if x != nil { + return x.OpRetCode + } + return OpResultCode_OPRC_Sucess +} + +func (x *SCDiamondBankGetInfo) GetBankDiamond() float64 { + if x != nil { + return x.BankDiamond + } + return 0 +} + +func (x *SCDiamondBankGetInfo) GetTakeTimes() int32 { + if x != nil { + return x.TakeTimes + } + return 0 +} + +func (x *SCDiamondBankGetInfo) GetBankMaxCoin() int64 { + if x != nil { + return x.BankMaxCoin + } + return 0 +} + +func (x *SCDiamondBankGetInfo) GetDayBuyMaxCnt() int32 { + if x != nil { + return x.DayBuyMaxCnt + } + return 0 +} + +func (x *SCDiamondBankGetInfo) GetPrice() int64 { + if x != nil { + return x.Price + } + return 0 +} + +func (x *SCDiamondBankGetInfo) GetNowPrice() int64 { + if x != nil { + return x.NowPrice + } + return 0 +} + +func (x *SCDiamondBankGetInfo) GetShopId() int32 { + if x != nil { + return x.ShopId + } + return 0 +} + var File_welfare_proto protoreflect.FileDescriptor var file_welfare_proto_rawDesc = []byte{ @@ -2892,7 +3065,7 @@ var file_welfare_proto_rawDesc = []byte{ 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, 0xe9, 0x01, 0x0a, 0x10, 0x53, 0x43, 0x50, 0x69, 0x67, 0x62, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xff, 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, @@ -2907,108 +3080,139 @@ var file_welfare_proto_rawDesc = []byte{ 0x52, 0x0b, 0x42, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x44, 0x61, 0x79, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x44, 0x61, 0x79, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6e, - 0x74, 0x22, 0x13, 0x0a, 0x11, 0x43, 0x53, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x54, 0x61, - 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0xf0, 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, 0x12, 0x22, 0x0a, 0x0c, 0x44, 0x61, 0x79, 0x42, 0x75, 0x79, 0x4d, - 0x61, 0x78, 0x43, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x44, 0x61, 0x79, - 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6e, 0x74, 0x2a, 0x86, 0x02, 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, 0x69, 0x6d, 0x65, 0x73, 0x10, 0x02, 0x12, 0x14, 0x0a, - 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x43, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x6f, 0x4d, 0x6f, 0x72, - 0x65, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x43, - 0x6f, 0x69, 0x6e, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x41, 0x6c, - 0x72, 0x65, 0x61, 0x64, 0x79, 0x42, 0x69, 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, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x69, 0x67, 0x62, - 0x61, 0x6e, 0x6b, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x10, 0x0b, 0x2a, 0x95, 0x08, 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, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0x13, 0x0a, 0x11, 0x43, 0x53, 0x50, 0x69, 0x67, + 0x62, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x86, 0x02, 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, 0x12, 0x22, 0x0a, 0x0c, 0x44, + 0x61, 0x79, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0c, 0x44, 0x61, 0x79, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6e, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x43, 0x53, 0x44, 0x69, 0x61, 0x6d, 0x6f, + 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x9b, 0x02, + 0x0a, 0x14, 0x53, 0x43, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x42, 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, 0x20, 0x0a, 0x0b, 0x42, + 0x61, 0x6e, 0x6b, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x0b, 0x42, 0x61, 0x6e, 0x6b, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 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, 0x42, + 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0b, 0x42, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x22, 0x0a, + 0x0c, 0x44, 0x61, 0x79, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0c, 0x44, 0x61, 0x79, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6e, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x77, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x4e, 0x6f, 0x77, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x2a, 0x86, 0x02, 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, 0x69, 0x6d, 0x65, 0x73, 0x10, 0x02, 0x12, + 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x43, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x6f, 0x4d, + 0x6f, 0x72, 0x65, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, + 0x72, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, + 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x42, 0x69, 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, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x69, + 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x10, 0x0b, 0x2a, 0xa5, 0x09, 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, 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, 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, 0x22, 0x0a, 0x1d, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, - 0x79, 0x5f, 0x41, 0x64, 0x64, 0x75, 0x70, 0x32, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xa8, 0x14, - 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x69, - 0x67, 0x6e, 0x44, 0x61, 0x79, 0x5f, 0x41, 0x64, 0x64, 0x75, 0x70, 0x32, 0x41, 0x77, 0x61, 0x72, - 0x64, 0x10, 0xa9, 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, + 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, 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, 0x22, + 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x53, 0x69, 0x67, 0x6e, + 0x44, 0x61, 0x79, 0x5f, 0x41, 0x64, 0x64, 0x75, 0x70, 0x32, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, + 0xa8, 0x14, 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, + 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x5f, 0x41, 0x64, 0x64, 0x75, 0x70, 0x32, 0x41, 0x77, + 0x61, 0x72, 0x64, 0x10, 0xa9, 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, 0x12, 0x20, 0x0a, 0x1b, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, + 0x42, 0x61, 0x6e, 0x6b, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xe2, 0x16, 0x12, 0x20, + 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x44, 0x69, 0x61, 0x6d, 0x6f, + 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xe3, 0x16, + 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x44, 0x69, 0x61, + 0x6d, 0x6f, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x6b, 0x65, 0x44, 0x69, 0x61, 0x6d, + 0x6f, 0x6e, 0x64, 0x10, 0xe4, 0x16, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x53, 0x43, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, + 0x6b, 0x65, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x10, 0xe5, 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 ( @@ -3024,7 +3228,7 @@ func file_welfare_proto_rawDescGZIP() []byte { } var file_welfare_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_welfare_proto_msgTypes = make([]protoimpl.MessageInfo, 40) +var file_welfare_proto_msgTypes = make([]protoimpl.MessageInfo, 42) var file_welfare_proto_goTypes = []interface{}{ (OpResultCode)(0), // 0: welfare.OpResultCode (SPacketID)(0), // 1: welfare.SPacketID @@ -3068,6 +3272,8 @@ var file_welfare_proto_goTypes = []interface{}{ (*SCPigbankGetInfo)(nil), // 39: welfare.SCPigbankGetInfo (*CSPigbankTakeCoin)(nil), // 40: welfare.CSPigbankTakeCoin (*SCPigbankTakeCoin)(nil), // 41: welfare.SCPigbankTakeCoin + (*CSDiamondBankGetInfo)(nil), // 42: welfare.CSDiamondBankGetInfo + (*SCDiamondBankGetInfo)(nil), // 43: welfare.SCDiamondBankGetInfo } var file_welfare_proto_depIdxs = []int32{ 0, // 0: welfare.SCGetReliefFund.OpRetCode:type_name -> welfare.OpResultCode @@ -3097,11 +3303,12 @@ var file_welfare_proto_depIdxs = []int32{ 0, // 24: welfare.SCBindInvite.OpRetCode:type_name -> welfare.OpResultCode 0, // 25: welfare.SCPigbankGetInfo.OpRetCode:type_name -> welfare.OpResultCode 0, // 26: welfare.SCPigbankTakeCoin.OpRetCode:type_name -> welfare.OpResultCode - 27, // [27:27] is the sub-list for method output_type - 27, // [27:27] is the sub-list for method input_type - 27, // [27:27] is the sub-list for extension type_name - 27, // [27:27] is the sub-list for extension extendee - 0, // [0:27] is the sub-list for field type_name + 0, // 27: welfare.SCDiamondBankGetInfo.OpRetCode:type_name -> welfare.OpResultCode + 28, // [28:28] is the sub-list for method output_type + 28, // [28:28] is the sub-list for method input_type + 28, // [28:28] is the sub-list for extension type_name + 28, // [28:28] is the sub-list for extension extendee + 0, // [0:28] is the sub-list for field type_name } func init() { file_welfare_proto_init() } @@ -3590,6 +3797,30 @@ func file_welfare_proto_init() { return nil } } + file_welfare_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSDiamondBankGetInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_welfare_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCDiamondBankGetInfo); 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{ @@ -3597,7 +3828,7 @@ func file_welfare_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_welfare_proto_rawDesc, NumEnums: 2, - NumMessages: 40, + NumMessages: 42, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/welfare/welfare.proto b/protocol/welfare/welfare.proto index 2e988e9..9e87adf 100644 --- a/protocol/welfare/welfare.proto +++ b/protocol/welfare/welfare.proto @@ -56,6 +56,13 @@ enum SPacketID { PACKET_SCPigbankGetInfo = 2911;// 存钱罐信息获取 PACKET_CSPigbankTakeCoin = 2912;// 存钱罐领取金币 PACKET_SCPigbankTakeCoin = 2913;// 存钱罐领取金币 + + PACKET_CSDiamondBankGetInfo = 2914; //钻石存钱罐信息获取 + PACKET_SCDiamondBankGetInfo = 2915; //钻石存钱罐信息返回 + PACKET_CSDiamondBankTakeDiamond = 2916; //钻石存钱罐领取 + PACKET_SCDiamondBankTakeDiamond = 2917; //钻石存钱罐领取返回 + + } //救济金领取 @@ -307,6 +314,7 @@ message SCPigbankGetInfo{ int64 CostDiamond = 4; // 耗费钻石 int64 BankMaxCoin = 5; // 存钱罐最储存值 int32 DayBuyMaxCnt = 6; // 今日最大可购买次数 + int64 Price = 7; //消耗钻石原价 } @@ -324,5 +332,23 @@ message SCPigbankTakeCoin{ int64 CostDiamond = 4; // 耗费钻石 int64 BankMaxCoin = 5; // 存钱罐最储存值 int32 DayBuyMaxCnt = 6; // 今日最大可购买次数 + int64 Price = 7; //消耗钻石原价 +} +// 钻石存钱罐信息 +//PACKET_CSDiamondBankGetInfo +message CSDiamondBankGetInfo{ +} + +// 钻石存钱罐信息 +//PACKET_SCDiamondBankGetInfo +message SCDiamondBankGetInfo{ + OpResultCode OpRetCode = 1; //结果 + double BankDiamond = 2; // 当前已存钻石 + int32 TakeTimes = 3; // 领取次数 + int64 BankMaxCoin = 4; // 存钱罐最大储存值 + int32 DayBuyMaxCnt = 5; // 今日最大可购买次数 + int64 Price = 6; //原价 + int64 NowPrice = 7; //现价 + int32 ShopId = 8; //商城ID } \ No newline at end of file diff --git a/worldsrv/action_shop.go b/worldsrv/action_shop.go index 3e732bf..90ce8a8 100644 --- a/worldsrv/action_shop.go +++ b/worldsrv/action_shop.go @@ -1,6 +1,7 @@ package main import ( + "mongo.games.com/game/srvdata" "time" "mongo.games.com/goserver/core/basic" @@ -384,6 +385,24 @@ func (this *CSPayInfoHandler) Process(s *netlib.Session, packetid int, data inte if shopInfo.Page == ShopPageGift { if !p.CheckWeekCard(shopInfo.Id) { SendClient(shop.OpResultCode_OPRC_Error) + return nil + } + } + if shopInfo.Page == ShopPageDiamondBank { + // 检查每日领取次数 + fGetPropValue := func(propName string) int32 { + pool := srvdata.PBDB_Pigbank_PropMgr.Datas.GetArr() + for _, PropItem := range pool { + if PropItem.PorpName == propName { + return PropItem.PropValue + } + } + return 0 + } + DayBuyMaxCnt := fGetPropValue("DayBuyMaxCnt") + if p.WelfData.DiamondBank.DayBuyTimes >= DayBuyMaxCnt { + SendClient(shop.OpResultCode_OPRC_Error) + return nil } } if shopInfo.Page == ShopPageVip { diff --git a/worldsrv/action_welfare.go b/worldsrv/action_welfare.go index ec6e1b4..ec3bd13 100644 --- a/worldsrv/action_welfare.go +++ b/worldsrv/action_welfare.go @@ -96,7 +96,7 @@ func (this *CSGetAddupSignHandler) Process(s *netlib.Session, packetid int, data } WelfareMgrSington.GetAddupSign(p, msg.GetAddUpDay()) - WelfareMgrSington.UpdateAddUp2Date(p, msg.GetAddUpDay(), time.Now().Unix()+3600) + WelfareMgrSington.UpdateAddUp2Date(p, 0, msg.GetAddUpDay(), time.Now().Unix()+3600) } return nil } @@ -513,6 +513,56 @@ func (this *CSSignDayAddup2AwardHandler) Process(s *netlib.Session, packetid int } return nil } + +type CSDiamondBankGetInfoPacketFactory struct { +} + +type CSDiamondBankGetInfoHandler struct { +} + +func (this *CSDiamondBankGetInfoPacketFactory) CreatePacket() interface{} { + pack := &welfare.CSDiamondBankGetInfo{} + return pack +} + +func (this *CSDiamondBankGetInfoHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { + logger.Logger.Trace("CSDiamondBankGetInfo Process recv ", data) + if _, ok := data.(*welfare.CSDiamondBankGetInfo); ok { + p := PlayerMgrSington.GetPlayer(sid) + if p == nil { + logger.Logger.Warnf("CSPigBankTakeCoinHandler p == nil") + return nil + } + WelfareMgrSington.DiamondBankGetInfo(p) + } + return nil +} + +/*// 钻石储存罐 +type CSDiamondBankTakeDiamondPacketFactory struct { +} + +type CSDiamondBankTakeDiamondHandler struct { +} + +func (this *CSDiamondBankTakeDiamondPacketFactory) CreatePacket() interface{} { + pack := &welfare.CSDiamondBankTakeDiamond{} + return pack +} + +func (this *CSDiamondBankTakeDiamondHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { + logger.Logger.Trace("CSDiamondBankGetInfo Process recv ", data) + if _, ok := data.(*welfare.CSDiamondBankTakeDiamond); ok { + p := PlayerMgrSington.GetPlayer(sid) + if p == nil { + logger.Logger.Warnf("CSPigBankTakeCoinHandler p == nil") + return nil + } + WelfareMgrSington.DiamondBankTakeCoin(p) + } + return nil +}*/ + func init() { // 领取救济金 common.RegisterHandler(int(welfare.SPacketID_PACKET_CS_WELF_GETRELIEFFUND), &CSGetReliefFundHandler{}) @@ -560,4 +610,11 @@ func init() { //领取七日签到进阶奖励 common.RegisterHandler(int(welfare.SPacketID_PACKET_CS_SignDay_Addup2Award), &CSSignDayAddup2AwardHandler{}) netlib.RegisterFactory(int(welfare.SPacketID_PACKET_CS_SignDay_Addup2Award), &CSSignDayAddup2AwardPacketFactory{}) + //钻石储存罐信息 + common.RegisterHandler(int(welfare.SPacketID_PACKET_CSDiamondBankGetInfo), &CSDiamondBankGetInfoHandler{}) + netlib.RegisterFactory(int(welfare.SPacketID_PACKET_CSDiamondBankGetInfo), &CSDiamondBankGetInfoPacketFactory{}) + + //领取钻石储存罐 + /* common.RegisterHandler(int(welfare.SPacketID_PACKET_CSDiamondBankTakeDiamond), &CSDiamondBankTakeDiamondHandler{}) + netlib.RegisterFactory(int(welfare.SPacketID_PACKET_CSDiamondBankTakeDiamond), &CSDiamondBankTakeDiamondPacketFactory{})*/ } diff --git a/worldsrv/shopmgr.go b/worldsrv/shopmgr.go index 83974d4..0865332 100644 --- a/worldsrv/shopmgr.go +++ b/worldsrv/shopmgr.go @@ -50,6 +50,7 @@ const ( ShopPagePhoneScore = 61 //手机积分商城 ShopPagePhoneScoreGoogle = 62 ShopPageGift = 7 //礼包页面 + ShopPageDiamondBank = 8 //钻石存储罐 ) // 商品类型 diff --git a/worldsrv/trascate_webapi.go b/worldsrv/trascate_webapi.go index 96d40ec..aa4afbf 100644 --- a/worldsrv/trascate_webapi.go +++ b/worldsrv/trascate_webapi.go @@ -4105,6 +4105,10 @@ func init() { } } BagMgrSingleton.AddItems(player, items, 0, info.GainWay, "Callback", info.Remark, 0, 0, false) + //钻石存储罐 + if info.PageId == ShopPageDiamondBank { + WelfareMgrSington.DiamondBankTakeCoin(player) + } switch info.Remark { case "BlindBox": if len(info.OtherParams) > 0 { diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index f6da905..24038f3 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -2,6 +2,7 @@ package main import ( "fmt" + "math" "time" "mongo.games.com/goserver/core/logger" @@ -751,7 +752,7 @@ func (this *WelfareMgr) WelfaredInfo(p *Player) { } // 更新进阶奖励时间 -func (this *WelfareMgr) UpdateAddUp2Date(p *Player, day int32, endTime int64) { +func (this *WelfareMgr) UpdateAddUp2Date(p *Player, count, day int32, endTime int64) { if p.WelfData.Sign7.Addup2Data == nil { p.WelfData.Sign7.Addup2Data = make(map[int32]map[int32]int64) } @@ -772,18 +773,18 @@ func (this *WelfareMgr) UpdateAddUp2Date(p *Player, day int32, endTime int64) { if addUpDate2Type == nil { return } - typeId := addUpDate2Type[0].Id - if p.WelfData.Sign7.Addup2Data[day] == nil { - p.WelfData.Sign7.Addup2Data[day] = make(map[int32]int64) - } - p.WelfData.Sign7.Addup2Data[day][typeId] = endTime + p.WelfData.Sign7.Addup2Data[day] = make(map[int32]int64) + p.WelfData.Sign7.Addup2Data[day][count] = endTime //通知客户端 pack := &welfare.SCSignDayAddup2Award{} pack.Day = day - pack.Num = 1 - pack.EndTime = p.WelfData.Sign7.Addup2Data[day][typeId] + pack.Num = count + pack.EndTime = p.WelfData.Sign7.Addup2Data[day][count] logger.Logger.Trace("通知客户端更新进阶奖励时间!!!!!!!!") p.SendToClient(int(welfare.SPacketID_PACKET_SC_SignDay_Addup2Award), pack) + if !this.Welfareturnplate(p, 0) { + p.SendShowRed(hall_proto.ShowRedCode_Welfare, 0, 1) // 0 轮盘红点 + } } // 领取进阶奖励 @@ -858,7 +859,7 @@ func (this *WelfareMgr) GetAddUp2Award(p *Player, day int32) { BagMgrSingleton.AddItems(p, items, 0, common.GainWaySign7, "system", "累计签到进阶奖励钻石消耗", 0, 0, false) } //通知客户端 - this.UpdateAddUp2Date(p, day, EndTime) + this.UpdateAddUp2Date(p, Num, day, EndTime) } @@ -964,6 +965,7 @@ func (this *WelfareMgr) WelfareSwitch(p *Player, platform string, op int) { // Welfareturnplate 转盘红点 func (this *WelfareMgr) Welfareturnplate(p *Player, op int32) bool { // 0 红点提示 1全部领取 + p.AddDiamond(10000, 0, common.GainWay_Shop_Buy, "system", "") var isShow bool info := this.GetConfig(p.Platform) turnplate := info.WelfareTurnplateDateList @@ -1009,7 +1011,15 @@ func (this *WelfareMgr) Welfareturnplate(p *Player, op int32) bool { // 0 红点 } } } - + //进阶奖励key1 - day key2-次数 value-结束领取时间戳(-1代表已领取) + for _, data := range p.WelfData.Sign7.Addup2Data { + for _, endTime := range data { + if time.Now().Unix() < endTime && endTime != -1 { + isShow = false // 有未领取进阶奖励 + break + } + } + } } return isShow } @@ -1635,7 +1645,7 @@ func (this *WelfareMgr) PigbankGetInfo(p *Player) { return 0 } - fGetCostDiamond := func(taketimes int32) int64 { + /* fGetCostDiamond := func(taketimes int32) int64 { pool := srvdata.PBDB_PigBank_DiamondMgr.Datas.GetArr() for _, data := range pool { if taketimes >= data.BuyCountMin && taketimes <= data.BuyCountMax { @@ -1643,16 +1653,31 @@ func (this *WelfareMgr) PigbankGetInfo(p *Player) { } } return 0 + }*/ + pool := srvdata.PBDB_PigBank_DiamondMgr.Datas.GetArr() + infoData := pool[0] + for _, data := range pool { + if p.WelfData.PigBank.DayBuyTimes+1+1 >= data.BuyCountMin && p.WelfData.PigBank.DayBuyTimes+1 <= data.BuyCountMax { + infoData = data + break + } } + BankMaxCoin := int64(0) + for _, data := range srvdata.PBDB_PigBank_DiamondMgr.Datas.GetArr() { + if p.WelfData.PigBank.DayBuyTimes+1 >= data.BuyCountMin && p.WelfData.PigBank.DayBuyTimes+1 <= data.BuyCountMax { + BankMaxCoin = int64(data.MaxGold) + break + } + } if p.WelfData != nil && p.WelfData.PigBank != nil { pack.OpRetCode = welfare.OpResultCode_OPRC_Sucess pack.BankCoin = p.WelfData.PigBank.BankCoin pack.TakeTimes = p.WelfData.PigBank.DayBuyTimes - pack.CostDiamond = fGetCostDiamond(p.WelfData.PigBank.DayBuyTimes + 1) - pack.BankMaxCoin = int64(fGetPropValue("BankMaxCoin")) + pack.CostDiamond = int64(infoData.CostDiamond) + pack.BankMaxCoin = BankMaxCoin pack.DayBuyMaxCnt = fGetPropValue("DayBuyMaxCnt") - + pack.Price = int64(infoData.CoinPrice) logger.Logger.Tracef("PigbankGetInfo snid: %v pack: %v", p.SnId, pack) p.SendToClient(int(welfare.SPacketID_PACKET_SCPigbankGetInfo), pack) } @@ -1674,7 +1699,7 @@ func (this *WelfareMgr) PigbankTakeCoin(p *Player) { return 0 } - fGetCostDiamond := func(taketimes int32) int64 { + /* fGetCostDiamond := func(taketimes int32) int64 { pool := srvdata.PBDB_PigBank_DiamondMgr.Datas.GetArr() for _, data := range pool { if taketimes >= data.BuyCountMin && taketimes <= data.BuyCountMax { @@ -1682,14 +1707,29 @@ func (this *WelfareMgr) PigbankTakeCoin(p *Player) { } } return 0 + }*/ + pool := srvdata.PBDB_PigBank_DiamondMgr.Datas.GetArr() + infoData := pool[0] + for _, data := range pool { + if p.WelfData.PigBank.DayBuyTimes+1+1 >= data.BuyCountMin && p.WelfData.PigBank.DayBuyTimes+1 <= data.BuyCountMax { + infoData = data + break + } + } + + BankMaxCoin := int64(0) + for _, data := range srvdata.PBDB_PigBank_DiamondMgr.Datas.GetArr() { + if p.WelfData.PigBank.DayBuyTimes+1 >= data.BuyCountMin && p.WelfData.PigBank.DayBuyTimes+1 <= data.BuyCountMax { + BankMaxCoin = int64(data.MaxGold) + break + } } - BankMaxCoin := int64(fGetPropValue("BankMaxCoin")) DayBuyMaxCnt := fGetPropValue("DayBuyMaxCnt") if p.WelfData != nil && p.WelfData.PigBank != nil { - pack.CostDiamond = fGetCostDiamond(p.WelfData.PigBank.DayBuyTimes + 1) + pack.CostDiamond = int64(infoData.CostDiamond) pack.BankMaxCoin = BankMaxCoin // 检查每日领取次数 @@ -1709,7 +1749,7 @@ func (this *WelfareMgr) PigbankTakeCoin(p *Player) { } // 先扣钻石 - costDiamond := fGetCostDiamond(p.WelfData.PigBank.DayBuyTimes + 1) + costDiamond := int64(infoData.CostDiamond) if p.Diamond >= costDiamond { logger.Logger.Trace("开存钱罐消耗钻石", costDiamond) p.AddDiamond(-costDiamond, 0, common.GainWay_PigrankTakeCoin, "system", "-开存钱罐消耗钻石") @@ -1732,9 +1772,9 @@ func (this *WelfareMgr) PigbankTakeCoin(p *Player) { p.WelfData.PigBank.DayBuyTimes++ pack.TakeTimes = p.WelfData.PigBank.DayBuyTimes - pack.CostDiamond = fGetCostDiamond(p.WelfData.PigBank.DayBuyTimes + 1) + pack.CostDiamond = int64(infoData.CostDiamond) pack.DayBuyMaxCnt = DayBuyMaxCnt - + pack.Price = int64(infoData.CoinPrice) logger.Logger.Tracef("PigbankTakeCoin snid: %v pack: %v", p.SnId, pack) p.SendToClient(int(welfare.SPacketID_PACKET_SCPigbankTakeCoin), pack) } @@ -1749,6 +1789,108 @@ func (this *WelfareMgr) DayResetPigrank(p *Player) { this.PigbankGetInfo(p) } + if p != nil && p.WelfData != nil && p.WelfData.DiamondBank != nil { + p.WelfData.DiamondBank.DayBuyTimes = 0 + this.DiamondBankGetInfo(p) + } +} + +// 钻石储存罐信息 +func (this *WelfareMgr) DiamondBankGetInfo(p *Player) { + pack := &welfare.SCDiamondBankGetInfo{ + OpRetCode: welfare.OpResultCode_OPRC_Error, + } + fGetPropValue := func(propName string) int32 { + pool := srvdata.PBDB_Pigbank_PropMgr.Datas.GetArr() + for _, PropItem := range pool { + if PropItem.PorpName == propName { + return PropItem.PropValue + } + } + return 0 + } + + pool := srvdata.PBDB_PigBank_DiamondMgr.Datas.GetArr() + infoData := pool[0] + for _, data := range pool { + if p.WelfData.DiamondBank.DayBuyTimes+1 >= data.BuyCountMin && p.WelfData.DiamondBank.DayBuyTimes+1 <= data.BuyCountMax { + infoData = data + break + } + } + + BankMaxCoin := infoData.MaxDiamond + if p.WelfData != nil && p.WelfData.DiamondBank != nil { + pack.OpRetCode = welfare.OpResultCode_OPRC_Sucess + pack.BankDiamond = p.WelfData.DiamondBank.BankDiamond + pack.TakeTimes = p.WelfData.DiamondBank.DayBuyTimes + pack.BankMaxCoin = int64(BankMaxCoin) + pack.DayBuyMaxCnt = fGetPropValue("DayBuyMaxCntDiamond") + pack.Price = int64(infoData.DiamondPrice) + pack.NowPrice = int64(infoData.DiamondNowPrice) + pack.ShopId = infoData.DiamondId + logger.Logger.Tracef("DiamondBankGetInfo snid: %v pack: %v", p.SnId, pack) + p.SendToClient(int(welfare.SPacketID_PACKET_SCDiamondBankGetInfo), pack) + } +} + +// DiamondBankTakeCoin 钻石存钱罐领取钻石 +func (this *WelfareMgr) DiamondBankTakeCoin(p *Player) { + pack := &welfare.SCDiamondBankTakeDiamond{ + OpRetCode: welfare.OpResultCode_OPRC_Error, + } + fGetPropValue := func(propName string) int32 { + pool := srvdata.PBDB_Pigbank_PropMgr.Datas.GetArr() + for _, PropItem := range pool { + if PropItem.PorpName == propName { + return PropItem.PropValue + } + } + return 0 + } + pool := srvdata.PBDB_PigBank_DiamondMgr.Datas.GetArr() + infoData := pool[0] + for _, data := range pool { + if p.WelfData.DiamondBank.DayBuyTimes+1 >= data.BuyCountMin && p.WelfData.DiamondBank.DayBuyTimes+1 <= data.BuyCountMax { + infoData = data + break + } + } + + BankMaxDiamond := int64(infoData.MaxDiamond) + DayBuyMaxCnt := fGetPropValue("DayBuyMaxCnt") + + if p.WelfData != nil && p.WelfData.PigBank != nil { + pack.BankMaxDiamond = BankMaxDiamond + // 检查每日领取次数 + /* if p.WelfData.DiamondBank.DayBuyTimes >= DayBuyMaxCnt { + pack.OpRetCode = welfare.OpResultCode_OPRC_PigbankOverTakeTimes + logger.Logger.Trace("存钱罐领取次数已打上限!") + p.SendToClient(int(welfare.SPacketID_PACKET_SCDiamondBankTakeDiamond), pack) + return + }*/ + + if p.WelfData.DiamondBank.BankDiamond >= float64(BankMaxDiamond) { + p.WelfData.DiamondBank.BankDiamond = float64(BankMaxDiamond) + } + pack.OpRetCode = welfare.OpResultCode_OPRC_Sucess + addDiamond := int64(math.Ceil(p.WelfData.DiamondBank.BankDiamond)) + p.AddDiamond(addDiamond, 0, common.GainWay_PigrankGainDiamond, "sys", "存钱罐领取钻石") + + // 领取完之后 设置为0 + p.WelfData.DiamondBank.BankDiamond = 0.0 + p.WelfData.DiamondBank.TakeTimes++ + p.WelfData.DiamondBank.DayBuyTimes++ + + pack.TakeTimes = p.WelfData.DiamondBank.DayBuyTimes + pack.DayBuyMaxCnt = DayBuyMaxCnt + pack.TakeDiamondNum = float64(addDiamond) + pack.Price = int64(infoData.DiamondPrice) + pack.NowPrice = int64(infoData.DiamondNowPrice) + pack.ShopId = infoData.DiamondId + logger.Logger.Tracef("DiamondBankTakeCoin snid: %v pack: %v", p.SnId, pack) + p.SendToClient(int(welfare.SPacketID_PACKET_SCDiamondBankTakeDiamond), pack) + } } func (this *WelfareMgr) Update() { diff --git a/xlsx/DB_GameItem.xlsx b/xlsx/DB_GameItem.xlsx index fcc533a4a70e4c60021873435c620efdabb5ded3..928c317196bf6f99edc2ceea2a1c6fe118300ab5 100644 GIT binary patch delta 14320 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 SX2?MVpdKwuczBJc6Z}8!Y0Mn} delta 13752 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 YWCa6Q*-`MZ!f|j};W)dO+#jL;0bEdGZ2$lO diff --git a/xlsx/DB_PigBank_Diamond.xlsx b/xlsx/DB_PigBank_Diamond.xlsx index 41036db4aa9770b3bab529e8cbf4ea133be23868..dec1e346485b6201106849963de86944c91850d1 100644 GIT binary patch delta 4696 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 diff --git a/xlsx/DB_Task.xlsx b/xlsx/DB_Task.xlsx index 0008809d6bf38f585077ab4ffb8652707e8ee01b..466a32be8781572f748f0b8df58110eb931ab901 100644 GIT binary patch delta 8395 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 pQv(1NNdN%lpBs_a|1L-Q71+ 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 From 7e05717d2e527a1c53beb58e7925f4eb38a90022 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Tue, 25 Jun 2024 17:48:10 +0800 Subject: [PATCH 06/49] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/DB_PetSkill.dat | 3 + data/DB_PetSkill.json | 13 ++ data/DB_PetSkillDes.dat | 13 ++ data/DB_PetSkillDes.json | 82 ++++++++ data/DB_PropExchange.dat | Bin 384 -> 384 bytes data/DB_Task.dat | Bin 2161 -> 2161 bytes model/player.go | 1 + protocol/server/pbdata.pb.go | 18 +- protocol/server/pbdata.proto | 4 +- protocol/welfare/welfare.pb.go | 347 +++++++++++++++++++++++---------- protocol/welfare/welfare.proto | 15 +- srvdata/db_petskill.go | 77 ++++++++ srvdata/db_petskilldes.go | 77 ++++++++ worldsrv/welfmgr.go | 5 + xlsx/DB_PetSkill.xlsx | Bin 0 -> 12417 bytes xlsx/DB_PetSkillDes.xlsx | Bin 0 -> 10809 bytes 16 files changed, 535 insertions(+), 120 deletions(-) create mode 100644 data/DB_PetSkill.dat create mode 100644 data/DB_PetSkill.json create mode 100644 data/DB_PetSkillDes.dat create mode 100644 data/DB_PetSkillDes.json create mode 100644 srvdata/db_petskill.go create mode 100644 srvdata/db_petskilldes.go create mode 100644 xlsx/DB_PetSkill.xlsx create mode 100644 xlsx/DB_PetSkillDes.xlsx diff --git a/data/DB_PetSkill.dat b/data/DB_PetSkill.dat new file mode 100644 index 0000000..fd8655f --- /dev/null +++ b/data/DB_PetSkill.dat @@ -0,0 +1,3 @@ + +VN= 金鸡守卫"0在被炸弹明确攻击时{0}概率完全免疫( +0: 100013,20 \ No newline at end of file diff --git a/data/DB_PetSkill.json b/data/DB_PetSkill.json new file mode 100644 index 0000000..c47b15c --- /dev/null +++ b/data/DB_PetSkill.json @@ -0,0 +1,13 @@ +{ + "Arr": [ + { + "Id": 10001, + "PetId": 1000001, + "SkillName": "金鸡守卫", + "SKillDes": "在被炸弹明确攻击时{0}概率完全免疫", + "SKillLevel": 10, + "SKillUnlockType": 1, + "SKillUnlockTakes": "100013,20" + } + ] +} \ No newline at end of file diff --git a/data/DB_PetSkillDes.dat b/data/DB_PetSkillDes.dat new file mode 100644 index 0000000..bf7e7e1 --- /dev/null +++ b/data/DB_PetSkillDes.dat @@ -0,0 +1,13 @@ + +N"5(0 +N"6(0 +N"7(0 +N"8(02 +N"9(02 +N"10(02 +N"11(02 +N"12(02 + N "13(02 +  +N +"14 \ No newline at end of file diff --git a/data/DB_PetSkillDes.json b/data/DB_PetSkillDes.json new file mode 100644 index 0000000..ee6ef7a --- /dev/null +++ b/data/DB_PetSkillDes.json @@ -0,0 +1,82 @@ +{ + "Arr": [ + { + "Id": 1, + "SkillId": 10001, + "SkillLevel": 1, + "SKillValue": "5", + "Fragment": 100013, + "Amount": 20 + }, + { + "Id": 2, + "SkillId": 10001, + "SkillLevel": 2, + "SKillValue": "6", + "Fragment": 100013, + "Amount": 20 + }, + { + "Id": 3, + "SkillId": 10001, + "SkillLevel": 3, + "SKillValue": "7", + "Fragment": 100013, + "Amount": 20 + }, + { + "Id": 4, + "SkillId": 10001, + "SkillLevel": 4, + "SKillValue": "8", + "Fragment": 100013, + "Amount": 50 + }, + { + "Id": 5, + "SkillId": 10001, + "SkillLevel": 5, + "SKillValue": "9", + "Fragment": 100013, + "Amount": 50 + }, + { + "Id": 6, + "SkillId": 10001, + "SkillLevel": 6, + "SKillValue": "10", + "Fragment": 100013, + "Amount": 50 + }, + { + "Id": 7, + "SkillId": 10001, + "SkillLevel": 7, + "SKillValue": "11", + "Fragment": 100013, + "Amount": 50 + }, + { + "Id": 8, + "SkillId": 10001, + "SkillLevel": 8, + "SKillValue": "12", + "Fragment": 100013, + "Amount": 50 + }, + { + "Id": 9, + "SkillId": 10001, + "SkillLevel": 9, + "SKillValue": "13", + "Fragment": 100013, + "Amount": 50 + }, + { + "Id": 10, + "SkillId": 10001, + "SkillLevel": 10, + "SKillValue": "14" + } + ] +} \ No newline at end of file diff --git a/data/DB_PropExchange.dat b/data/DB_PropExchange.dat index d3d5d36c62a356f352e6476de9eb7a383a21c791..0a0ae963741e23ec0945e1dc13e3da82d9dc8fed 100644 GIT binary patch literal 384 zcmd-w<6snElw#w!+{O&1uR!UmQ2H8_z7C?5I5-yevI!h$vE|a^U;?YZ0hPZArEfv$ z+i2>;IUwf4>;anxv=^6tT<(CF%L#Tz!`eqIT(KN1V28jQjBYTBgRpoM=0TVT?tmT6 P&anvS(J#zg477y+WI{YO literal 384 zcmd-w<6snElw#w!*2WB`uS4m}Q2Gj#z6zq1I5-yevI!h$vE|a^U;?YZ0hPZArEfv$ z+i2>;IUwf4%!AnjRtK~nW*^udB==x7Ux^d!j)t|5Sh!+2SilZ}IRM>2n1wKdVGg_l Xbtt;W!4@j9b1VXS^b0c=18pGyWcoZc diff --git a/data/DB_Task.dat b/data/DB_Task.dat index a8e8a419f5000713cc32b39db00b7b9e32c8f556..6abcc6554a4d081ec83897ebd3f3d51da647e9fb 100644 GIT binary patch delta 267 zcmew;@KIpG?uo{N6VE)GT*@di`52>~00+myUN(UhhZ(KdI4-s^3ruEV`e6bQZ0M{4 z3N8XlvvMhNhzPJquqg0q9B8pM04WBEb6IhMwI7(ak!i94v(@Av77-s+j>&!kyb`Pm z+!_rh)-O;6s)m^NV7U-fAF~4^mm0?uKLKHgvJ1Ble_?`~$_iD#;E>$pQ_O28hp~!H y?qxBZoW?FV`7%qKAjEDasHy|Acs4t+rZ7TH5yK=U!V$94N<}jHSfW4AqPe-HI6BM0>Thw7j7T^!UR+Yb=o00 zs1DZ2rEI0sy_BRV)Ai diff --git a/model/player.go b/model/player.go index 9eaa6a4..ce2a28f 100644 --- a/model/player.go +++ b/model/player.go @@ -514,6 +514,7 @@ func NewWelfareData() *WelfareData { Task: make(map[int32]*TaskData), PhoneLotteryTask: make(map[int32]*TaskData), PigBank: &PigBankData{}, + DiamondBank: &DiamondBankData{}, } } diff --git a/protocol/server/pbdata.pb.go b/protocol/server/pbdata.pb.go index 53cfd57..1675359 100644 --- a/protocol/server/pbdata.pb.go +++ b/protocol/server/pbdata.pb.go @@ -7548,7 +7548,7 @@ type DB_PetSkill struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ID int32 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` PetId int32 `protobuf:"varint,2,opt,name=PetId,proto3" json:"PetId,omitempty"` SkillName string `protobuf:"bytes,3,opt,name=SkillName,proto3" json:"SkillName,omitempty"` SKillDes string `protobuf:"bytes,4,opt,name=SKillDes,proto3" json:"SKillDes,omitempty"` @@ -7589,9 +7589,9 @@ func (*DB_PetSkill) Descriptor() ([]byte, []int) { return file_pbdata_proto_rawDescGZIP(), []int{96} } -func (x *DB_PetSkill) GetID() int32 { +func (x *DB_PetSkill) GetId() int32 { if x != nil { - return x.ID + return x.Id } return 0 } @@ -7690,7 +7690,7 @@ type DB_PetSkillDes struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ID int32 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` SkillId int32 `protobuf:"varint,2,opt,name=SkillId,proto3" json:"SkillId,omitempty"` SkillLevel int32 `protobuf:"varint,3,opt,name=SkillLevel,proto3" json:"SkillLevel,omitempty"` SKillValue string `protobuf:"bytes,4,opt,name=SKillValue,proto3" json:"SKillValue,omitempty"` @@ -7730,9 +7730,9 @@ func (*DB_PetSkillDes) Descriptor() ([]byte, []int) { return file_pbdata_proto_rawDescGZIP(), []int{98} } -func (x *DB_PetSkillDes) GetID() int32 { +func (x *DB_PetSkillDes) GetId() int32 { if x != nil { - return x.ID + return x.Id } return 0 } @@ -11438,8 +11438,8 @@ var file_pbdata_proto_rawDesc = []byte{ 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x4e, 0x65, 0x77, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xe3, 0x01, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x50, - 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x65, 0x74, 0x49, 0x64, + 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x65, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x50, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, @@ -11457,7 +11457,7 @@ var file_pbdata_proto_rawDesc = []byte{ 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xae, 0x01, 0x0a, 0x0e, 0x44, 0x42, 0x5f, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, diff --git a/protocol/server/pbdata.proto b/protocol/server/pbdata.proto index ce88410..915bff5 100644 --- a/protocol/server/pbdata.proto +++ b/protocol/server/pbdata.proto @@ -1239,7 +1239,7 @@ message DB_NewPlayerArray { message DB_PetSkill { - int32 ID = 1; + int32 Id = 1; int32 PetId = 2; @@ -1261,7 +1261,7 @@ message DB_PetSkillArray { message DB_PetSkillDes { - int32 ID = 1; + int32 Id = 1; int32 SkillId = 2; diff --git a/protocol/welfare/welfare.pb.go b/protocol/welfare/welfare.pb.go index 029c793..9e48b95 100644 --- a/protocol/welfare/welfare.pb.go +++ b/protocol/welfare/welfare.pb.go @@ -138,8 +138,7 @@ const ( SPacketID_PACKET_SCPigbankTakeCoin SPacketID = 2913 // 存钱罐领取金币 SPacketID_PACKET_CSDiamondBankGetInfo SPacketID = 2914 //钻石存钱罐信息获取 SPacketID_PACKET_SCDiamondBankGetInfo SPacketID = 2915 //钻石存钱罐信息返回 - SPacketID_PACKET_CSDiamondBankTakeDiamond SPacketID = 2916 //钻石存钱罐领取 - SPacketID_PACKET_SCDiamondBankTakeDiamond SPacketID = 2917 //钻石存钱罐领取返回 + SPacketID_PACKET_SCDiamondBankTakeDiamond SPacketID = 2916 //钻石存钱罐领取返回 ) // Enum value maps for SPacketID. @@ -180,8 +179,7 @@ var ( 2913: "PACKET_SCPigbankTakeCoin", 2914: "PACKET_CSDiamondBankGetInfo", 2915: "PACKET_SCDiamondBankGetInfo", - 2916: "PACKET_CSDiamondBankTakeDiamond", - 2917: "PACKET_SCDiamondBankTakeDiamond", + 2916: "PACKET_SCDiamondBankTakeDiamond", } SPacketID_value = map[string]int32{ "PACKET_SHOP_ZERO": 0, @@ -219,8 +217,7 @@ var ( "PACKET_SCPigbankTakeCoin": 2913, "PACKET_CSDiamondBankGetInfo": 2914, "PACKET_SCDiamondBankGetInfo": 2915, - "PACKET_CSDiamondBankTakeDiamond": 2916, - "PACKET_SCDiamondBankTakeDiamond": 2917, + "PACKET_SCDiamondBankTakeDiamond": 2916, } ) @@ -2841,6 +2838,111 @@ func (x *SCDiamondBankGetInfo) GetShopId() int32 { return 0 } +// 钻石存钱罐领取金币 +//PACKET_SCDiamondBankTakeDiamond +type SCDiamondBankTakeDiamond 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"` // 结果 + TakeDiamondNum float64 `protobuf:"fixed64,2,opt,name=TakeDiamondNum,proto3" json:"TakeDiamondNum,omitempty"` // 领取钻石数量 + TakeTimes int32 `protobuf:"varint,3,opt,name=TakeTimes,proto3" json:"TakeTimes,omitempty"` // 领取次数 + BankMaxDiamond int64 `protobuf:"varint,4,opt,name=BankMaxDiamond,proto3" json:"BankMaxDiamond,omitempty"` // 存钱罐最大储存值 + DayBuyMaxCnt int32 `protobuf:"varint,5,opt,name=DayBuyMaxCnt,proto3" json:"DayBuyMaxCnt,omitempty"` // 今日最大可购买次数 + Price int64 `protobuf:"varint,6,opt,name=Price,proto3" json:"Price,omitempty"` //原价 + NowPrice int64 `protobuf:"varint,7,opt,name=NowPrice,proto3" json:"NowPrice,omitempty"` //现价 + ShopId int32 `protobuf:"varint,8,opt,name=ShopId,proto3" json:"ShopId,omitempty"` //商城ID +} + +func (x *SCDiamondBankTakeDiamond) Reset() { + *x = SCDiamondBankTakeDiamond{} + if protoimpl.UnsafeEnabled { + mi := &file_welfare_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCDiamondBankTakeDiamond) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCDiamondBankTakeDiamond) ProtoMessage() {} + +func (x *SCDiamondBankTakeDiamond) ProtoReflect() protoreflect.Message { + mi := &file_welfare_proto_msgTypes[42] + 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 SCDiamondBankTakeDiamond.ProtoReflect.Descriptor instead. +func (*SCDiamondBankTakeDiamond) Descriptor() ([]byte, []int) { + return file_welfare_proto_rawDescGZIP(), []int{42} +} + +func (x *SCDiamondBankTakeDiamond) GetOpRetCode() OpResultCode { + if x != nil { + return x.OpRetCode + } + return OpResultCode_OPRC_Sucess +} + +func (x *SCDiamondBankTakeDiamond) GetTakeDiamondNum() float64 { + if x != nil { + return x.TakeDiamondNum + } + return 0 +} + +func (x *SCDiamondBankTakeDiamond) GetTakeTimes() int32 { + if x != nil { + return x.TakeTimes + } + return 0 +} + +func (x *SCDiamondBankTakeDiamond) GetBankMaxDiamond() int64 { + if x != nil { + return x.BankMaxDiamond + } + return 0 +} + +func (x *SCDiamondBankTakeDiamond) GetDayBuyMaxCnt() int32 { + if x != nil { + return x.DayBuyMaxCnt + } + return 0 +} + +func (x *SCDiamondBankTakeDiamond) GetPrice() int64 { + if x != nil { + return x.Price + } + return 0 +} + +func (x *SCDiamondBankTakeDiamond) GetNowPrice() int64 { + if x != nil { + return x.NowPrice + } + return 0 +} + +func (x *SCDiamondBankTakeDiamond) GetShopId() int32 { + if x != nil { + return x.ShopId + } + return 0 +} + var File_welfare_proto protoreflect.FileDescriptor var file_welfare_proto_rawDesc = []byte{ @@ -3118,101 +3220,118 @@ var file_welfare_proto_rawDesc = []byte{ 0x52, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x2a, 0x86, 0x02, 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, 0x69, 0x6d, 0x65, 0x73, 0x10, 0x02, 0x12, - 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x43, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x6f, 0x4d, - 0x6f, 0x72, 0x65, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, - 0x72, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, - 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x42, 0x69, 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, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x69, - 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x10, 0x0b, 0x2a, 0xa5, 0x09, 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, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x22, 0xab, 0x02, 0x0a, 0x18, + 0x53, 0x43, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x6b, + 0x65, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 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, 0x26, 0x0a, + 0x0e, 0x54, 0x61, 0x6b, 0x65, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x54, 0x61, 0x6b, 0x65, 0x44, 0x69, 0x61, 0x6d, 0x6f, + 0x6e, 0x64, 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, 0x26, 0x0a, 0x0e, 0x42, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x78, 0x44, 0x69, + 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x42, 0x61, 0x6e, + 0x6b, 0x4d, 0x61, 0x78, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x44, + 0x61, 0x79, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0c, 0x44, 0x61, 0x79, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6e, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x2a, 0x86, 0x02, 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, 0x69, 0x6d, 0x65, 0x73, 0x10, 0x02, 0x12, 0x14, 0x0a, + 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x43, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x6f, 0x4d, 0x6f, 0x72, + 0x65, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x43, + 0x6f, 0x69, 0x6e, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x41, 0x6c, + 0x72, 0x65, 0x61, 0x64, 0x79, 0x42, 0x69, 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, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x69, 0x67, 0x62, + 0x61, 0x6e, 0x6b, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x10, 0x0b, 0x2a, 0xff, 0x08, 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, 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, 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, 0x22, - 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x53, 0x69, 0x67, 0x6e, - 0x44, 0x61, 0x79, 0x5f, 0x41, 0x64, 0x64, 0x75, 0x70, 0x32, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, - 0xa8, 0x14, 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, - 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, 0x79, 0x5f, 0x41, 0x64, 0x64, 0x75, 0x70, 0x32, 0x41, 0x77, - 0x61, 0x72, 0x64, 0x10, 0xa9, 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, 0x12, 0x20, 0x0a, 0x1b, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, - 0x42, 0x61, 0x6e, 0x6b, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xe2, 0x16, 0x12, 0x20, - 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x44, 0x69, 0x61, 0x6d, 0x6f, - 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xe3, 0x16, - 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x44, 0x69, 0x61, - 0x6d, 0x6f, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x6b, 0x65, 0x44, 0x69, 0x61, 0x6d, - 0x6f, 0x6e, 0x64, 0x10, 0xe4, 0x16, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x53, 0x43, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, - 0x6b, 0x65, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x10, 0xe5, 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, + 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, 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, 0x22, 0x0a, 0x1d, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x61, + 0x79, 0x5f, 0x41, 0x64, 0x64, 0x75, 0x70, 0x32, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xa8, 0x14, + 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x69, + 0x67, 0x6e, 0x44, 0x61, 0x79, 0x5f, 0x41, 0x64, 0x64, 0x75, 0x70, 0x32, 0x41, 0x77, 0x61, 0x72, + 0x64, 0x10, 0xa9, 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, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x42, 0x61, + 0x6e, 0x6b, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xe2, 0x16, 0x12, 0x20, 0x0a, 0x1b, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, + 0x42, 0x61, 0x6e, 0x6b, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xe3, 0x16, 0x12, 0x24, + 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x44, 0x69, 0x61, 0x6d, 0x6f, + 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x6b, 0x65, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, + 0x64, 0x10, 0xe4, 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 ( @@ -3228,7 +3347,7 @@ func file_welfare_proto_rawDescGZIP() []byte { } var file_welfare_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_welfare_proto_msgTypes = make([]protoimpl.MessageInfo, 42) +var file_welfare_proto_msgTypes = make([]protoimpl.MessageInfo, 43) var file_welfare_proto_goTypes = []interface{}{ (OpResultCode)(0), // 0: welfare.OpResultCode (SPacketID)(0), // 1: welfare.SPacketID @@ -3274,6 +3393,7 @@ var file_welfare_proto_goTypes = []interface{}{ (*SCPigbankTakeCoin)(nil), // 41: welfare.SCPigbankTakeCoin (*CSDiamondBankGetInfo)(nil), // 42: welfare.CSDiamondBankGetInfo (*SCDiamondBankGetInfo)(nil), // 43: welfare.SCDiamondBankGetInfo + (*SCDiamondBankTakeDiamond)(nil), // 44: welfare.SCDiamondBankTakeDiamond } var file_welfare_proto_depIdxs = []int32{ 0, // 0: welfare.SCGetReliefFund.OpRetCode:type_name -> welfare.OpResultCode @@ -3304,11 +3424,12 @@ var file_welfare_proto_depIdxs = []int32{ 0, // 25: welfare.SCPigbankGetInfo.OpRetCode:type_name -> welfare.OpResultCode 0, // 26: welfare.SCPigbankTakeCoin.OpRetCode:type_name -> welfare.OpResultCode 0, // 27: welfare.SCDiamondBankGetInfo.OpRetCode:type_name -> welfare.OpResultCode - 28, // [28:28] is the sub-list for method output_type - 28, // [28:28] is the sub-list for method input_type - 28, // [28:28] is the sub-list for extension type_name - 28, // [28:28] is the sub-list for extension extendee - 0, // [0:28] is the sub-list for field type_name + 0, // 28: welfare.SCDiamondBankTakeDiamond.OpRetCode:type_name -> welfare.OpResultCode + 29, // [29:29] is the sub-list for method output_type + 29, // [29:29] is the sub-list for method input_type + 29, // [29:29] is the sub-list for extension type_name + 29, // [29:29] is the sub-list for extension extendee + 0, // [0:29] is the sub-list for field type_name } func init() { file_welfare_proto_init() } @@ -3821,6 +3942,18 @@ func file_welfare_proto_init() { return nil } } + file_welfare_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCDiamondBankTakeDiamond); 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{ @@ -3828,7 +3961,7 @@ func file_welfare_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_welfare_proto_rawDesc, NumEnums: 2, - NumMessages: 42, + NumMessages: 43, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/welfare/welfare.proto b/protocol/welfare/welfare.proto index 9e87adf..4bf4d78 100644 --- a/protocol/welfare/welfare.proto +++ b/protocol/welfare/welfare.proto @@ -59,8 +59,7 @@ enum SPacketID { PACKET_CSDiamondBankGetInfo = 2914; //钻石存钱罐信息获取 PACKET_SCDiamondBankGetInfo = 2915; //钻石存钱罐信息返回 - PACKET_CSDiamondBankTakeDiamond = 2916; //钻石存钱罐领取 - PACKET_SCDiamondBankTakeDiamond = 2917; //钻石存钱罐领取返回 + PACKET_SCDiamondBankTakeDiamond = 2916; //钻石存钱罐领取返回 } @@ -351,4 +350,16 @@ message SCDiamondBankGetInfo{ int64 Price = 6; //原价 int64 NowPrice = 7; //现价 int32 ShopId = 8; //商城ID +} +// 钻石存钱罐领取金币 +//PACKET_SCDiamondBankTakeDiamond +message SCDiamondBankTakeDiamond{ + OpResultCode OpRetCode = 1; // 结果 + double TakeDiamondNum = 2; // 领取钻石数量 + int32 TakeTimes = 3; // 领取次数 + int64 BankMaxDiamond = 4; // 存钱罐最大储存值 + int32 DayBuyMaxCnt = 5; // 今日最大可购买次数 + int64 Price = 6; //原价 + int64 NowPrice = 7; //现价 + int32 ShopId = 8; //商城ID } \ No newline at end of file diff --git a/srvdata/db_petskill.go b/srvdata/db_petskill.go new file mode 100644 index 0000000..1ada54f --- /dev/null +++ b/srvdata/db_petskill.go @@ -0,0 +1,77 @@ + +// Code generated by xlsx2proto. +// DO NOT EDIT! + +package srvdata + +import ( + "google.golang.org/protobuf/proto" + + "mongo.games.com/game/protocol/server" +) + +var PBDB_PetSkillMgr = &DB_PetSkillMgr{ + Datas: &server.DB_PetSkillArray{}, + pool: make(map[int32]*server.DB_PetSkill), + +} + +type DB_PetSkillMgr struct { + Datas *server.DB_PetSkillArray + pool map[int32]*server.DB_PetSkill + +} + +func (this *DB_PetSkillMgr) unmarshal(data []byte) error { + err := proto.Unmarshal(data, this.Datas) + if err == nil { + this.arrangeData() + } + return err +} + +func (this *DB_PetSkillMgr) reunmarshal(data []byte) error { + newDatas := &server.DB_PetSkillArray{} + err := proto.Unmarshal(data, newDatas) + if err == nil { + for _, item := range newDatas.Arr { + existItem := this.GetData(item.GetId()) + if existItem == nil { + this.pool[item.GetId()] = item + this.Datas.Arr = append(this.Datas.Arr, item) + + } else { + *existItem = *item + } + } + } + return err +} + +func (this *DB_PetSkillMgr) arrangeData() { + if this.Datas == nil { + return + } + + dataArr := this.Datas.GetArr() + if dataArr == nil { + return + } + + for _, data := range dataArr { + this.pool[data.GetId()] = data + + } +} + +func (this *DB_PetSkillMgr) GetData(id int32) *server.DB_PetSkill { + if data, ok := this.pool[id]; ok { + return data + } + return nil +} + + +func init() { + DataMgr.register("DB_PetSkill.dat", &ProtobufDataLoader{dh: PBDB_PetSkillMgr}) +} diff --git a/srvdata/db_petskilldes.go b/srvdata/db_petskilldes.go new file mode 100644 index 0000000..928996b --- /dev/null +++ b/srvdata/db_petskilldes.go @@ -0,0 +1,77 @@ + +// Code generated by xlsx2proto. +// DO NOT EDIT! + +package srvdata + +import ( + "google.golang.org/protobuf/proto" + + "mongo.games.com/game/protocol/server" +) + +var PBDB_PetSkillDesMgr = &DB_PetSkillDesMgr{ + Datas: &server.DB_PetSkillDesArray{}, + pool: make(map[int32]*server.DB_PetSkillDes), + +} + +type DB_PetSkillDesMgr struct { + Datas *server.DB_PetSkillDesArray + pool map[int32]*server.DB_PetSkillDes + +} + +func (this *DB_PetSkillDesMgr) unmarshal(data []byte) error { + err := proto.Unmarshal(data, this.Datas) + if err == nil { + this.arrangeData() + } + return err +} + +func (this *DB_PetSkillDesMgr) reunmarshal(data []byte) error { + newDatas := &server.DB_PetSkillDesArray{} + err := proto.Unmarshal(data, newDatas) + if err == nil { + for _, item := range newDatas.Arr { + existItem := this.GetData(item.GetId()) + if existItem == nil { + this.pool[item.GetId()] = item + this.Datas.Arr = append(this.Datas.Arr, item) + + } else { + *existItem = *item + } + } + } + return err +} + +func (this *DB_PetSkillDesMgr) arrangeData() { + if this.Datas == nil { + return + } + + dataArr := this.Datas.GetArr() + if dataArr == nil { + return + } + + for _, data := range dataArr { + this.pool[data.GetId()] = data + + } +} + +func (this *DB_PetSkillDesMgr) GetData(id int32) *server.DB_PetSkillDes { + if data, ok := this.pool[id]; ok { + return data + } + return nil +} + + +func init() { + DataMgr.register("DB_PetSkillDes.dat", &ProtobufDataLoader{dh: PBDB_PetSkillDesMgr}) +} diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index 24038f3..9ef6dd1 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -289,6 +289,8 @@ func (this *WelfareMgr) MonitorWelfData(player *Player) { player.WelfData.VIPBag = make(map[int32]map[int32]int32) } else if player.WelfData.PigBank == nil { player.WelfData.PigBank = &model.PigBankData{} + } else if player.WelfData.DiamondBank == nil { + player.WelfData.DiamondBank = &model.DiamondBankData{} } } @@ -1812,6 +1814,9 @@ func (this *WelfareMgr) DiamondBankGetInfo(p *Player) { pool := srvdata.PBDB_PigBank_DiamondMgr.Datas.GetArr() infoData := pool[0] + if p.WelfData.DiamondBank == nil { + p.WelfData.DiamondBank = &model.DiamondBankData{} + } for _, data := range pool { if p.WelfData.DiamondBank.DayBuyTimes+1 >= data.BuyCountMin && p.WelfData.DiamondBank.DayBuyTimes+1 <= data.BuyCountMax { infoData = data diff --git a/xlsx/DB_PetSkill.xlsx b/xlsx/DB_PetSkill.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..10fa4775d79803d8c2fbf3a980fb919b31a27ca7 GIT binary patch literal 12417 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 HXYKz3fP&N3 literal 0 HcmV?d00001 From f24d6c740bd3fb2fd35f9fbc6b0c487ffe7c3d14 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Tue, 25 Jun 2024 17:52:12 +0800 Subject: [PATCH 07/49] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/welfmgr.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index 9ef6dd1..dcbf424 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -967,7 +967,6 @@ func (this *WelfareMgr) WelfareSwitch(p *Player, platform string, op int) { // Welfareturnplate 转盘红点 func (this *WelfareMgr) Welfareturnplate(p *Player, op int32) bool { // 0 红点提示 1全部领取 - p.AddDiamond(10000, 0, common.GainWay_Shop_Buy, "system", "") var isShow bool info := this.GetConfig(p.Platform) turnplate := info.WelfareTurnplateDateList @@ -1897,6 +1896,11 @@ func (this *WelfareMgr) DiamondBankTakeCoin(p *Player) { p.SendToClient(int(welfare.SPacketID_PACKET_SCDiamondBankTakeDiamond), pack) } } + +// 更新数据 +func (this *WelfareMgr) UpdateDiamondBankData(p *Player) { + +} func (this *WelfareMgr) Update() { } From 8eb9a7c7a1fcab2626ae06e23b9552727e4fba03 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Fri, 21 Jun 2024 10:12:15 +0800 Subject: [PATCH 08/49] =?UTF-8?q?=E6=96=B0=E7=89=88=E9=82=80=E8=AF=B7?= =?UTF-8?q?=E6=B4=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/constant.go | 25 +- common/time.go | 36 +++ data/DB_GameItem.dat | Bin 7952 -> 8437 bytes data/DB_GameItem.json | 112 +++++++ data/DB_Game_Drop.dat | 107 ++++--- data/DB_Game_Drop.json | 166 +++++----- data/DB_PropExchange.dat | Bin 384 -> 384 bytes data/DB_Task.dat | Bin 2198 -> 2161 bytes data/DB_Task.json | 190 +++++------ data/gameparam.json | 2 +- dbproxy/mq/c_invite.go | 195 ++++++++++-- dbproxy/svc/l_invitescore.go | 326 +++++++++++++++++++ dbproxy/svc/l_rankinvite.go | 55 ++++ dbproxy/svc/l_rankplayercoin.go | 2 +- dbproxy/svc/l_rankplayerlevel.go | 2 +- dbproxy/svc/l_rankseasion.go | 2 +- dbproxy/svc/u_invitecode.go | 15 +- dbproxy/svc/u_invitescore.go | 429 ------------------------- dbproxy/svc/u_player.go | 227 +++++++++----- etcd/keyconf.go | 1 + model/baginfo.go | 8 +- model/config.go | 2 + model/invitecode.go | 94 ++---- model/player.go | 35 +-- model/rank.go | 8 +- mq/keyconf.go | 1 - protocol/rank/rank.pb.go | 48 +-- protocol/rank/rank.proto | 3 +- protocol/webapi/common.pb.go | 274 ++++++++++++++-- protocol/webapi/common.proto | 18 ++ protocol/welfare/welfare.pb.go | 519 ++++++++++++++++++++----------- protocol/welfare/welfare.proto | 14 + public | 2 +- worldsrv/action_player.go | 5 +- worldsrv/action_welfare.go | 114 ++++--- worldsrv/bagmgr.go | 4 +- worldsrv/etcd.go | 5 +- worldsrv/invitecode.go | 128 ++------ worldsrv/logchannel.go | 3 +- worldsrv/mq_coinlog.go | 33 +- worldsrv/player.go | 100 ++---- worldsrv/taskmgr.go | 6 +- worldsrv/trascate_webapi.go | 4 +- xlsx/DB_GameItem.xlsx | Bin 22751 -> 23215 bytes xlsx/DB_Game_Drop.xlsx | Bin 12821 -> 12807 bytes xlsx/DB_Task.xlsx | Bin 20527 -> 20513 bytes 46 files changed, 1955 insertions(+), 1365 deletions(-) create mode 100644 dbproxy/svc/l_invitescore.go create mode 100644 dbproxy/svc/l_rankinvite.go delete mode 100644 dbproxy/svc/u_invitescore.go diff --git a/common/constant.go b/common/constant.go index ec91584..3076249 100644 --- a/common/constant.go +++ b/common/constant.go @@ -660,15 +660,15 @@ const ( TaskTypePay = 7 // 充值金额 TaskTypeWinOrLose = 8 // 游戏输赢金币数量 TaskTypeTienlenCount = 9 // tienlen游戏场次 - TaskTypeBindInviter = 10 // 绑定邀请人数量 + TaskTypeBindInviter = 10 // 绑定邀请人数量* TaskTypeWinCoin = 11 // 赢取金币数量 TaskTypeTienlenWinTimes = 12 // tienlen游戏赢取次数 - TaskTypeInviteScore = 13 // 邀请积分 + TaskTypeInviteScore = 13 // 邀请积分* TaskTypeActivityScore = 14 // 周活跃积分数量 TaskTypeFirstLogin = 15 // 每日首次登录 - TaskTypeInviteNum = 16 // 邀请绑定数量 + TaskTypeInviteNum = 16 // 邀请绑定数量* TaskTypeTurnplate = 17 // 转盘抽奖次数 - TaskTypeInviteRecharge = 18 // 被邀请人充值金额 + TaskTypeInviteRecharge = 18 // 被邀请人充值金额* ) const ( @@ -689,17 +689,12 @@ const ( const HeadRange = 3 // 机器人头像id范围 const ( - InviteScoreTypeBind = 1 // 绑定邀请码 - InviteScoreTypeLogin = 2 // 每日登录 - InviteScoreTypePlayTimes = 3 // 每日参与任意游戏 - InviteScoreTypeRecharge = 4 // 充值 - InviteScoreTypeGameTimes = 5 // 每局游戏 + InviteScoreCheckWeek = -1 // 跨周 + InviteScoreTypeBind = 1 // 绑定邀请码 + InviteScoreTypePay = 2 // 充值 + InviteScoreTypeRecharge = 3 // 充值完成 ) -const TaskIDInvitePlayGame = 1000001 -const TaskIDInviteRecharge = 1000002 -const TaskIDInviteFirstLogin = 1000003 - func InMatchChannel(ls []string, n string) bool { if n == "" || len(ls) == 0 { return false @@ -749,10 +744,6 @@ const ( var PetIDs = []int32{PetIDChicken} -const ( - InviteScoreRecharge = 10000 // 用户每充值$1邀请人获得积分 -) - const ( ChannelSwitchExchange = 1 ChannelSwitchDropItem = 2 diff --git a/common/time.go b/common/time.go index d6156c0..64f93df 100644 --- a/common/time.go +++ b/common/time.go @@ -143,3 +143,39 @@ func InTimeRange(beginHour, beginMinute, endHour, endMinute, checkHour, checkMin checkTime := checkHour*100 + checkMinute return beginTime <= checkTime && checkTime <= endTime } + +func GetWeekTimestamp() []int64 { + now := time.Now().Local() + year, month, day := now.Date() + today := time.Date(year, month, day, 0, 0, 0, 0, time.Local) + // 本周起始日期(周日) + st := today.AddDate(0, 0, -int(today.Weekday())).Unix() + et := today.AddDate(0, 0, 7-int(today.Weekday())).Unix() + return []int64{st, et} +} + +func GetWeekStartTs(ts int64) int64 { + now := time.Unix(ts, 0).Local() + year, month, day := now.Date() + today := time.Date(year, month, day, 0, 0, 0, 0, time.Local) + // 本周起始日期(周日) + st := today.AddDate(0, 0, -int(today.Weekday())).Unix() + return st +} + +func GetMonthTimestamp() []int64 { + now := time.Now().Local() + year, month, _ := now.Date() + // 本月起始日期 + st := time.Date(year, month, 1, 0, 0, 0, 0, time.Local).Unix() + // 计算下个月的年和月 + if month == time.December { + year = year + 1 + month = time.January + } else { + month = month + 1 + } + // 构建下个月的第一天的时间 + et := time.Date(year, month, 1, 0, 0, 0, 0, now.Location()).Unix() + return []int64{st, et} +} diff --git a/data/DB_GameItem.dat b/data/DB_GameItem.dat index 28afb8c5ebd28f2a214d1cc9c3d7a3cfdbdf0537..f49b1b26b397acfb24f99a92d29ec0eda4a11c6a 100644 GIT binary patch delta 353 zcmbPW_tkNOfV??ZImeDyj6%YOPg|Q`te^X0%g*Psw>)i~__Sk(6cZz(5;Fq>gNC3H zGb00o6^Mvn%wjYsa+rLcStIbtj^=06mp81wZbSo=Y1;=insUn63q#G-R(^xJ5eiNE> delta 7 OcmezBIKgg%fII*WR|4b! diff --git a/data/DB_GameItem.json b/data/DB_GameItem.json index d142ae9..8c618d7 100644 --- a/data/DB_GameItem.json +++ b/data/DB_GameItem.json @@ -2503,6 +2503,118 @@ "Location": "0", "Describe": "可联系客服兑换实物奖励", "Entity": 9 + }, + { + "Id": 30008, + "Name": "1元话费直兑券", + "ShowLocation": [ + 1, + 1 + ], + "Classify": [ + 0, + 0, + 0 + ], + "Type": 17, + "Effect0": [ + 1, + 0, + 0 + ], + "Effect": [ + 1, + 0, + 0 + ], + "CompositionMax": 1, + "Location": "0", + "Describe": "用途:话费兑换码\n产出途径:七日累签进阶奖励", + "Num": 1 + }, + { + "Id": 30009, + "Name": "2元话费直兑券", + "ShowLocation": [ + 1, + 1 + ], + "Classify": [ + 0, + 0, + 0 + ], + "Type": 17, + "Effect0": [ + 1, + 0, + 0 + ], + "Effect": [ + 1, + 0, + 0 + ], + "CompositionMax": 1, + "Location": "0", + "Describe": "用途:话费兑换码\n产出途径:七日累签进阶奖励", + "Num": 2 + }, + { + "Id": 30010, + "Name": "5元话费直兑券", + "ShowLocation": [ + 1, + 1 + ], + "Classify": [ + 0, + 0, + 0 + ], + "Type": 17, + "Effect0": [ + 1, + 0, + 0 + ], + "Effect": [ + 1, + 0, + 0 + ], + "CompositionMax": 1, + "Location": "0", + "Describe": "用途:话费兑换码\n产出途径:七日累签进阶奖励", + "Num": 5 + }, + { + "Id": 30011, + "Name": "10元话费直兑券", + "ShowLocation": [ + 1, + 1 + ], + "Classify": [ + 0, + 0, + 0 + ], + "Type": 17, + "Effect0": [ + 1, + 0, + 0 + ], + "Effect": [ + 1, + 0, + 0 + ], + "CompositionMax": 1, + "Location": "0", + "Describe": "用途:话费兑换码\n产出途径:七日累签进阶奖励", + "Num": 10 } ] } \ No newline at end of file diff --git a/data/DB_Game_Drop.dat b/data/DB_Game_Drop.dat index 8fb0166..d510ec8 100644 --- a/data/DB_Game_Drop.dat +++ b/data/DB_Game_Drop.dat @@ -1,56 +1,55 @@ - (2 -' (J2 -N (2 -u (2 - (2 - (2 - (2 - (2 -  (2 + (2 +' (12 +N (c2 +u (2 + (2 + (2 + (2 + (2 +  (2  - (2 - І (2 - ح (2 -  (2 - (2 - (2 - (2 - ( 2 - ( 2 - ( -2 - ( 2 - ( 2 - (2 - (2 - (2 - ("2 - ((2 - (.2 -л (42 - (:2 -! (?2 -$ (E2 - ' (K2 -!* (N2 -"- (N2 -#0 (N2 -$3 (N2 -%6 (N2 -&9 (N2 -'= (N2 -(z (N2 -) (N2 -* (N2  -+Ó (N2 -, (N2 -- (N2#' -. (N2+/ -/ (N226 -0 (N29= -1ʺ (N2AE -2 (N2HL -3/ (N2 -4G (N2 -5_ (N2 \ No newline at end of file + (2 + І (2 + ح (2 +  (2 + (2 + (2 + (2 + (2 + (2 + (2 + (2 + (2 + ( 2 + (2 + (2 + (2 + (2 + (2 +л ("2 + (&2 +! (*2 +$ (.2 + ' (22 +!* (32 +"- (52 +#0 (62 +$3 (82 +%6 (:2 +&9 (;2 +'= (=2 +(z (>2 +) (@2 +* (N2 ++Ó (N2 +, (N2 +- (N2 +. (N2$ +/ (N2$* +0 (N2)0 +1ʺ (N2.6 +2 (N23< +3/ (N2e{ +4G (N2 +5_ (N2 \ No newline at end of file diff --git a/data/DB_Game_Drop.json b/data/DB_Game_Drop.json index c1f90b4..121160a 100644 --- a/data/DB_Game_Drop.json +++ b/data/DB_Game_Drop.json @@ -4,7 +4,7 @@ "Id": 1, "Bet": 2000, "ItemId1": 30001, - "Rate1": 30, + "Rate1": 20, "Amount1": [ 1, 1 @@ -14,7 +14,7 @@ "Id": 2, "Bet": 5000, "ItemId1": 30001, - "Rate1": 74, + "Rate1": 49, "Amount1": [ 1, 1 @@ -24,7 +24,7 @@ "Id": 3, "Bet": 10000, "ItemId1": 30001, - "Rate1": 149, + "Rate1": 99, "Amount1": [ 1, 1 @@ -34,7 +34,7 @@ "Id": 4, "Bet": 15000, "ItemId1": 30001, - "Rate1": 223, + "Rate1": 149, "Amount1": [ 1, 1 @@ -44,7 +44,7 @@ "Id": 5, "Bet": 20000, "ItemId1": 30001, - "Rate1": 297, + "Rate1": 198, "Amount1": [ 1, 1 @@ -54,7 +54,7 @@ "Id": 6, "Bet": 25000, "ItemId1": 30001, - "Rate1": 371, + "Rate1": 247, "Amount1": [ 1, 1 @@ -64,7 +64,7 @@ "Id": 7, "Bet": 30000, "ItemId1": 30001, - "Rate1": 446, + "Rate1": 297, "Amount1": [ 1, 1 @@ -74,7 +74,7 @@ "Id": 8, "Bet": 35000, "ItemId1": 30001, - "Rate1": 520, + "Rate1": 347, "Amount1": [ 1, 1 @@ -84,7 +84,7 @@ "Id": 9, "Bet": 40000, "ItemId1": 30001, - "Rate1": 594, + "Rate1": 396, "Amount1": [ 1, 1 @@ -94,7 +94,7 @@ "Id": 10, "Bet": 45000, "ItemId1": 30001, - "Rate1": 668, + "Rate1": 445, "Amount1": [ 1, 1 @@ -104,7 +104,7 @@ "Id": 11, "Bet": 50000, "ItemId1": 30001, - "Rate1": 743, + "Rate1": 495, "Amount1": [ 1, 1 @@ -114,7 +114,7 @@ "Id": 12, "Bet": 55000, "ItemId1": 30001, - "Rate1": 817, + "Rate1": 545, "Amount1": [ 1, 1 @@ -124,7 +124,7 @@ "Id": 13, "Bet": 60000, "ItemId1": 30001, - "Rate1": 891, + "Rate1": 594, "Amount1": [ 1, 1 @@ -134,7 +134,7 @@ "Id": 14, "Bet": 65000, "ItemId1": 30001, - "Rate1": 965, + "Rate1": 643, "Amount1": [ 1, 1 @@ -144,7 +144,7 @@ "Id": 15, "Bet": 70000, "ItemId1": 30001, - "Rate1": 1040, + "Rate1": 693, "Amount1": [ 1, 1 @@ -154,7 +154,7 @@ "Id": 16, "Bet": 75000, "ItemId1": 30001, - "Rate1": 1114, + "Rate1": 743, "Amount1": [ 1, 1 @@ -164,7 +164,7 @@ "Id": 17, "Bet": 80000, "ItemId1": 30001, - "Rate1": 1188, + "Rate1": 792, "Amount1": [ 1, 1 @@ -174,7 +174,7 @@ "Id": 18, "Bet": 85000, "ItemId1": 30001, - "Rate1": 1262, + "Rate1": 841, "Amount1": [ 1, 1 @@ -184,7 +184,7 @@ "Id": 19, "Bet": 90000, "ItemId1": 30001, - "Rate1": 1337, + "Rate1": 891, "Amount1": [ 1, 1 @@ -194,7 +194,7 @@ "Id": 20, "Bet": 95000, "ItemId1": 30001, - "Rate1": 1411, + "Rate1": 941, "Amount1": [ 1, 1 @@ -204,7 +204,7 @@ "Id": 21, "Bet": 100000, "ItemId1": 30001, - "Rate1": 1485, + "Rate1": 990, "Amount1": [ 1, 1 @@ -214,7 +214,7 @@ "Id": 22, "Bet": 150000, "ItemId1": 30001, - "Rate1": 2228, + "Rate1": 1485, "Amount1": [ 1, 1 @@ -224,7 +224,7 @@ "Id": 23, "Bet": 200000, "ItemId1": 30001, - "Rate1": 2970, + "Rate1": 1980, "Amount1": [ 1, 1 @@ -234,7 +234,7 @@ "Id": 24, "Bet": 250000, "ItemId1": 30001, - "Rate1": 3713, + "Rate1": 2475, "Amount1": [ 1, 1 @@ -244,170 +244,170 @@ "Id": 25, "Bet": 300000, "ItemId1": 30001, - "Rate1": 4455, + "Rate1": 2970, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 26, "Bet": 350000, "ItemId1": 30001, - "Rate1": 5198, + "Rate1": 3465, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 27, "Bet": 400000, "ItemId1": 30001, - "Rate1": 5940, + "Rate1": 3960, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 28, "Bet": 450000, "ItemId1": 30001, - "Rate1": 6683, + "Rate1": 4455, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 29, "Bet": 500000, "ItemId1": 30001, - "Rate1": 7425, + "Rate1": 4950, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 30, "Bet": 550000, "ItemId1": 30001, - "Rate1": 8168, + "Rate1": 5445, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 31, "Bet": 600000, "ItemId1": 30001, - "Rate1": 8910, + "Rate1": 5940, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 32, "Bet": 650000, "ItemId1": 30001, - "Rate1": 9653, + "Rate1": 6435, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 33, "Bet": 700000, "ItemId1": 30001, - "Rate1": 10000, + "Rate1": 6635, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 34, "Bet": 750000, "ItemId1": 30001, - "Rate1": 10000, + "Rate1": 6835, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 35, "Bet": 800000, "ItemId1": 30001, - "Rate1": 10000, + "Rate1": 7035, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 36, "Bet": 850000, "ItemId1": 30001, - "Rate1": 10000, + "Rate1": 7235, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 37, "Bet": 900000, "ItemId1": 30001, - "Rate1": 10000, + "Rate1": 7435, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 38, "Bet": 950000, "ItemId1": 30001, - "Rate1": 10000, + "Rate1": 7635, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 39, "Bet": 1000000, "ItemId1": 30001, - "Rate1": 10000, + "Rate1": 7835, "Amount1": [ 1, - 2 + 1 ] }, { "Id": 40, "Bet": 2000000, "ItemId1": 30001, - "Rate1": 10000, + "Rate1": 8035, "Amount1": [ 1, - 5 + 3 ] }, { "Id": 41, "Bet": 5000000, "ItemId1": 30001, - "Rate1": 10000, + "Rate1": 8235, "Amount1": [ - 5, - 9 + 4, + 6 ] }, { @@ -416,8 +416,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 13, - 17 + 11, + 13 ] }, { @@ -426,8 +426,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 20, - 24 + 16, + 18 ] }, { @@ -436,8 +436,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 28, - 32 + 21, + 24 ] }, { @@ -446,8 +446,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 35, - 39 + 24, + 29 ] }, { @@ -456,8 +456,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 43, - 47 + 31, + 36 ] }, { @@ -466,8 +466,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 50, - 54 + 36, + 42 ] }, { @@ -476,8 +476,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 57, - 61 + 41, + 48 ] }, { @@ -486,8 +486,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 65, - 69 + 46, + 54 ] }, { @@ -496,8 +496,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 72, - 76 + 51, + 60 ] }, { @@ -506,8 +506,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 147, - 151 + 101, + 123 ] }, { @@ -516,8 +516,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 221, - 225 + 150, + 164 ] }, { @@ -526,8 +526,8 @@ "ItemId1": 30001, "Rate1": 10000, "Amount1": [ - 295, - 299 + 199, + 246 ] } ] diff --git a/data/DB_PropExchange.dat b/data/DB_PropExchange.dat index 13a118614580b018a035d3533c99f93ed9ecce2b..76bd54381623e0ee0f9f8c8c1ae160b5be25a5f5 100644 GIT binary patch delta 73 zcmZo*ZeV8NGUH&J$fGo|j$@*pv-0IOW&uViHjXP$`WlqJ3Z<{NF;BEnp156jG83cd O#Pi0CS0@WI<^lk9XcBw? 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& diff --git a/data/DB_Task.dat b/data/DB_Task.dat index 096091711a38b82ad8f6d8dcf91e0619d3a02910..1ba525b6021b289ee9e48561a266723839b2fbcc 100644 GIT binary patch literal 2161 zcmaKtO;1xn6o$R`_O_?f(hj9SK`ocIV0RjqBqXkh>96otxMD$wE}B$DVu*`^pe{59 zzv2=>3DFHAek8h3{D{#lKfrg+oz9&qy{ntddFIS{-#K%xsE{L_k`p*}=ZrIzq}66p z`cp*9`0mboGp^%^3c1n+<62BnGwo(_#y#eUGI`Pi<5^5T$|C|w$OPgED=wn=IR}I< zeGqZnrthh&QP`(}S@Ij>c_h!0ERxK+VsS;rHImt>mrUpR9A7>!85aW*q7 zaChyzP9Pw0RAw0Xl|qK_9@?*ObV@9WG3tlIiJ-6EYM3)3i(RBBz+wfUZ4D8*pojrj ztcZ=JtRc`H+9zL(QxQ%xF*j}MQ2n40A!>A`fkJ$BQJWu5n>0}=4lZPZt~TH(Qwx7S zTlFkubt;#!YYo{KVmlAo6DHf2I|Yq-z$R&-AqPTi_tVy)>R{aldVoTm|JYfv5;#otTj&>E;6GCu0qQ<9hmB)Z=;LtR$8SMFvJYso$kIaomIL8 zD96yHQ|7d8l~q~=RAk7$<1UFcS_3r7(9!p-1lH&_sDLSyYYzNZ-uiC`9pU3;^_KS# zOq!V(d5-|)8H$nj7|yr-bXnTnJ5{F#e(_AxJe%i9Dan2C|M1xPX! zBku*EA%VQ7_;}j9ffmVm$fGJKNm>X-`dNe*4bzJnzg~Q6x)RdCRkW>%27?r{!8) zx|2kU_}!j!rftg-MY5$0#x|I2z%**{Y5SBV3gk!!jAJmFsE+U`CS%x-8T%sIzhHrI zr3=FKMX00@ox((1#zDlnhSrGl1Jzj&IZD8d?WO%KWk(~`%NIpI5iF>UyEa#UJ?BVU zQxK_^Kg4)>2{{$uz6<9%o-mX(XQ%L) z+86NFjpLobo0etlL-`=3p~Uf0e)ZnIDjh=jI0GpTqEo?y>#gGWc$g$qIiB<*7phDP zfxdnu=XkwFiTYwDu%!wN$OIQ~L$h`eN8{BE1>__#pfp4|1r=fd@-oRM%!GjYG5~D2 z7?gqm4pf(D{Q2t!gbHa$rkMDV2x~Nd{Z0i$7Kij8=9t&**DD~7N0AjH)Qg-IfV&&k zFrrXMAA(j$^JZ6seB4Ol7}c!_AXx;?$m|ply*?AzuI?S=M2W6cAjMVvT6=%)1Tg}A z8KbKeQwv-Y%gdI8)x%~xcf=C(hrAL^UT znvIq)c)cPAHCTVSvzZPn8d1yu^l70Yhc(!kU#XpqKov-W1KF}b7HRR8g=}5iVb$T| z*(Bj;TG!PTB8D{0hQ=Bpfp35#!*Q_g_Z+YW@;H!mMQM_kt@fRL5f;MgXPD~faT8dPu}&UKdRT)?1pg)K!nFQvFn9T1twcK*=_#h7B#f8IRGHp@ z>S4+pOGYaLZWmmRxi-yYZk*nNJIh=;D&tA@L1Jfe~ZMn?naf;yaiUGe)3Q HbKd*|CHvk9 diff --git a/data/DB_Task.json b/data/DB_Task.json index 2480fa0..998d30a 100644 --- a/data/DB_Task.json +++ b/data/DB_Task.json @@ -146,8 +146,8 @@ "TargetTimes": 1, "FinishTimes": 1, "Award": { - "100001": 1000000, - "100002": 10 + "100001": 100000, + "100002": 1 } }, { @@ -158,8 +158,8 @@ "TargetTimes": 10, "FinishTimes": 1, "Award": { - "100001": 1000000, - "100002": 10 + "100001": 100000, + "100002": 1 }, "GameType": 1 }, @@ -171,7 +171,7 @@ "TargetTimes": 10000000, "FinishTimes": 1, "Award": { - "100001": 1000000 + "100001": 100000 } }, { @@ -182,8 +182,8 @@ "TargetTimes": 10, "FinishTimes": 1, "Award": { - "100001": 1000000, - "100002": 10 + "100001": 100000, + "100002": 1 }, "GameType": 1 }, @@ -195,8 +195,8 @@ "TargetTimes": 3, "FinishTimes": 1, "Award": { - "100001": 10000000, - "100002": 10 + "100001": 1000000, + "100002": 1 } }, { @@ -207,7 +207,7 @@ "TargetTimes": 10, "FinishTimes": 1, "Award": { - "100001": 250000, + "100001": 25000, "50001": 1 } }, @@ -219,7 +219,7 @@ "TargetTimes": 5, "FinishTimes": 1, "Award": { - "100001": 2500000, + "100001": 250000, "50001": 2 } }, @@ -231,7 +231,7 @@ "TargetTimes": 10, "FinishTimes": 1, "Award": { - "100001": 5000000, + "100001": 500000, "50001": 4 } }, @@ -243,7 +243,7 @@ "TargetTimes": 100, "FinishTimes": 1, "Award": { - "100001": 2500000, + "100001": 250000, "50001": 2 } }, @@ -255,7 +255,7 @@ "TargetTimes": 500, "FinishTimes": 1, "Award": { - "100001": 12500000, + "100001": 1250000, "50001": 10 } }, @@ -267,7 +267,7 @@ "TargetTimes": 1000, "FinishTimes": 1, "Award": { - "100001": 25000000, + "100001": 2500000, "50001": 20 } }, @@ -279,8 +279,8 @@ "TargetTimes": 10000, "FinishTimes": 1, "Award": { - "100001": 1000000, - "100002": 20 + "100001": 100000, + "100002": 2 } }, { @@ -291,8 +291,8 @@ "TargetTimes": 50000, "FinishTimes": 1, "Award": { - "100001": 10000000, - "100002": 20 + "100001": 1000000, + "100002": 2 } }, { @@ -303,8 +303,8 @@ "TargetTimes": 200000, "FinishTimes": 1, "Award": { - "100001": 20000000, - "100002": 50 + "100001": 2000000, + "100002": 5 } }, { @@ -315,8 +315,8 @@ "TargetTimes": 1000000, "FinishTimes": 1, "Award": { - "100001": 50000000, - "100002": 100 + "100001": 5000000, + "100002": 10 } }, { @@ -327,8 +327,8 @@ "TargetTimes": 100000000, "FinishTimes": 1, "Award": { - "100001": 1000000, - "100002": 10 + "100001": 100000, + "100002": 1 }, "GameType": 1 }, @@ -340,8 +340,8 @@ "TargetTimes": 1000000000, "FinishTimes": 1, "Award": { - "100001": 2000000, - "100002": 20 + "100001": 200000, + "100002": 2 }, "GameType": 1 }, @@ -353,8 +353,8 @@ "TargetTimes": 10000000000, "FinishTimes": 1, "Award": { - "100001": 3000000, - "100002": 30 + "100001": 300000, + "100002": 3 }, "GameType": 1 }, @@ -366,8 +366,8 @@ "TargetTimes": 100000000000, "FinishTimes": 1, "Award": { - "100001": 5000000, - "100002": 50 + "100001": 500000, + "100002": 5 }, "GameType": 1 }, @@ -379,8 +379,8 @@ "TargetTimes": 500000000000, "FinishTimes": 1, "Award": { - "100001": 10000000, - "100002": 100 + "100001": 1000000, + "100002": 10 }, "GameType": 1 }, @@ -392,8 +392,8 @@ "TargetTimes": 1000000000000, "FinishTimes": 1, "Award": { - "100001": 20000000, - "100002": 200 + "100001": 2000000, + "100002": 20 }, "GameType": 1 }, @@ -405,8 +405,8 @@ "TargetTimes": 100, "FinishTimes": 1, "Award": { - "100001": 1000000, - "100002": 10 + "100001": 100000, + "100002": 1 }, "GameType": 1 }, @@ -418,8 +418,8 @@ "TargetTimes": 1000, "FinishTimes": 1, "Award": { - "100001": 2000000, - "100002": 20 + "100001": 200000, + "100002": 2 }, "GameType": 1 }, @@ -431,8 +431,8 @@ "TargetTimes": 5000, "FinishTimes": 1, "Award": { - "100001": 3000000, - "100002": 30 + "100001": 300000, + "100002": 3 }, "GameType": 1 }, @@ -444,8 +444,8 @@ "TargetTimes": 10000, "FinishTimes": 1, "Award": { - "100001": 5000000, - "100002": 50 + "100001": 500000, + "100002": 5 }, "GameType": 1 }, @@ -457,8 +457,8 @@ "TargetTimes": 50000, "FinishTimes": 1, "Award": { - "100001": 10000000, - "100002": 100 + "100001": 1000000, + "100002": 10 }, "GameType": 1 }, @@ -470,8 +470,8 @@ "TargetTimes": 100000, "FinishTimes": 1, "Award": { - "100001": 20000000, - "100002": 200 + "100001": 2000000, + "100002": 20 }, "GameType": 1 }, @@ -483,8 +483,8 @@ "TargetTimes": 100, "FinishTimes": 1, "Award": { - "100001": 1000000, - "100002": 10 + "100001": 100000, + "100002": 1 }, "GameType": 1 }, @@ -496,8 +496,8 @@ "TargetTimes": 1000, "FinishTimes": 1, "Award": { - "100001": 2000000, - "100002": 20 + "100001": 200000, + "100002": 2 }, "GameType": 1 }, @@ -509,8 +509,8 @@ "TargetTimes": 5000, "FinishTimes": 1, "Award": { - "100001": 3000000, - "100002": 30 + "100001": 300000, + "100002": 3 }, "GameType": 1 }, @@ -522,8 +522,8 @@ "TargetTimes": 10000, "FinishTimes": 1, "Award": { - "100001": 5000000, - "100002": 50 + "100001": 500000, + "100002": 5 }, "GameType": 1 }, @@ -535,8 +535,8 @@ "TargetTimes": 50000, "FinishTimes": 1, "Award": { - "100001": 10000000, - "100002": 100 + "100001": 1000000, + "100002": 10 }, "GameType": 1 }, @@ -548,8 +548,8 @@ "TargetTimes": 100000, "FinishTimes": 1, "Award": { - "100001": 20000000, - "100002": 200 + "100001": 2000000, + "100002": 20 }, "GameType": 1 }, @@ -561,8 +561,8 @@ "TargetTimes": 100, "FinishTimes": 1, "Award": { - "100001": 1000000, - "100002": 10 + "100001": 100000, + "100002": 1 }, "GameType": 1 }, @@ -574,8 +574,8 @@ "TargetTimes": 1000, "FinishTimes": 1, "Award": { - "100001": 2000000, - "100002": 20 + "100001": 200000, + "100002": 2 }, "GameType": 1 }, @@ -587,8 +587,8 @@ "TargetTimes": 5000, "FinishTimes": 1, "Award": { - "100001": 3000000, - "100002": 30 + "100001": 300000, + "100002": 3 }, "GameType": 1 }, @@ -600,8 +600,8 @@ "TargetTimes": 10000, "FinishTimes": 1, "Award": { - "100001": 5000000, - "100002": 50 + "100001": 500000, + "100002": 5 }, "GameType": 1 }, @@ -613,8 +613,8 @@ "TargetTimes": 50000, "FinishTimes": 1, "Award": { - "100001": 10000000, - "100002": 100 + "100001": 1000000, + "100002": 10 }, "GameType": 1 }, @@ -626,8 +626,8 @@ "TargetTimes": 100000, "FinishTimes": 1, "Award": { - "100001": 20000000, - "100002": 200 + "100001": 2000000, + "100002": 20 }, "GameType": 1 }, @@ -639,8 +639,8 @@ "TargetTimes": 10, "FinishTimes": 1, "Award": { - "100001": 1000000, - "100002": 10 + "100001": 100000, + "100002": 1 }, "Position": [ 1, @@ -655,8 +655,8 @@ "TargetTimes": 100, "FinishTimes": 1, "Award": { - "100001": 2000000, - "100002": 20 + "100001": 200000, + "100002": 2 }, "Position": [ 1, @@ -671,8 +671,8 @@ "TargetTimes": 1000, "FinishTimes": 1, "Award": { - "100001": 3000000, - "100002": 30 + "100001": 300000, + "100002": 3 }, "Position": [ 1, @@ -687,8 +687,8 @@ "TargetTimes": 10000, "FinishTimes": 1, "Award": { - "100001": 5000000, - "100002": 50 + "100001": 500000, + "100002": 5 }, "Position": [ 1, @@ -703,8 +703,8 @@ "TargetTimes": 50000, "FinishTimes": 1, "Award": { - "100001": 10000000, - "100002": 100 + "100001": 1000000, + "100002": 10 }, "Position": [ 1, @@ -719,8 +719,8 @@ "TargetTimes": 100000, "FinishTimes": 1, "Award": { - "100001": 20000000, - "100002": 200 + "100001": 2000000, + "100002": 20 }, "Position": [ 1, @@ -735,8 +735,8 @@ "TargetTimes": 10, "FinishTimes": 1, "Award": { - "100001": 1000000, - "100002": 10 + "100001": 100000, + "100002": 1 } }, { @@ -747,8 +747,8 @@ "TargetTimes": 20, "FinishTimes": 1, "Award": { - "100001": 2000000, - "100002": 20 + "100001": 200000, + "100002": 2 } }, { @@ -759,8 +759,8 @@ "TargetTimes": 50, "FinishTimes": 1, "Award": { - "100001": 3000000, - "100002": 30 + "100001": 300000, + "100002": 3 } }, { @@ -771,8 +771,8 @@ "TargetTimes": 100, "FinishTimes": 1, "Award": { - "100001": 5000000, - "100002": 50 + "100001": 500000, + "100002": 5 } }, { @@ -783,8 +783,8 @@ "TargetTimes": 500, "FinishTimes": 1, "Award": { - "100001": 10000000, - "100002": 100 + "100001": 1000000, + "100002": 10 } }, { @@ -795,8 +795,8 @@ "TargetTimes": 1000, "FinishTimes": 1, "Award": { - "100001": 20000000, - "100002": 200 + "100001": 2000000, + "100002": 20 } } ] diff --git a/data/gameparam.json b/data/gameparam.json index b0d94cd..ac32d61 100644 --- a/data/gameparam.json +++ b/data/gameparam.json @@ -23,5 +23,5 @@ "ClosePreCreateRoom": true, "AgoraAddress": "http://47.105.78.29:8081", "InviteUrl": "http://47.105.78.29:8000/", - "RankTimeout": 5 + "RankTimeout": 2 } \ No newline at end of file diff --git a/dbproxy/mq/c_invite.go b/dbproxy/mq/c_invite.go index 053ed4b..3369430 100644 --- a/dbproxy/mq/c_invite.go +++ b/dbproxy/mq/c_invite.go @@ -2,65 +2,204 @@ package mq import ( "encoding/json" - "fmt" + "errors" "time" - "github.com/astaxie/beego/cache" "mongo.games.com/goserver/core/broker" "mongo.games.com/goserver/core/broker/rabbitmq" "mongo.games.com/goserver/core/logger" + "mongo.games.com/game/common" "mongo.games.com/game/dbproxy/svc" "mongo.games.com/game/model" "mongo.games.com/game/mq" - rankproto "mongo.games.com/game/protocol/rank" ) -var InviteNumCache = cache.NewMemoryCache() - func init() { - mq.RegisterSubscriber(model.EvtBindInvite, func(e broker.Event) (err error) { + mq.RegisterSubscriber(model.EvtInvite, func(e broker.Event) (err error) { msg := e.Message() if msg != nil { defer func() { e.Ack() }() - var log model.BindInvite + var log model.EvtInviteMsg err = json.Unmarshal(msg.Body, &log) if err != nil { + logger.Logger.Errorf("EvtInvite json.Unmarshal error:%v msg:%v", err, string(msg.Body)) return } + logger.Logger.Tracef("EvtInvite log:%+v", log) - // 绑定 - err = svc.BindInviteSnId(log.Platform, log.SnId, log.InviteSnId, log.Ts) - if err != nil { - logger.Logger.Errorf("BindInviteSnId error:%v", err) - return err + now := time.Unix(log.Ts, 0).Local() // 数据创建时间 + + get := func(snid int32) (*model.EvtInviteAckMsg, error) { + if snid == 0 { + return nil, errors.New("not found") + } + n := new(model.EvtInviteAckMsg) + n.Platform = log.Platform + n.Snid = snid + n.Score, n.Num, n.Money, _, err = svc.GetInviteData(log.Platform, snid) + return n, err } - name := fmt.Sprintf("%v", log.InviteSnId) - b := InviteNumCache.Get(name) - n, _ := b.(int32) - if n > 0 { - n++ - } else { - n, err = svc.GetInviteNum(log.Platform, log.InviteSnId, int32(rankproto.RankInvite_InviteType_Total)) + // 增加积分 + add := func(snid int32, score, money, rate int64) error { + if snid == 0 { + return nil + } + err = svc.AddInviteScore(log.Platform, snid, score*rate/10000, money, now) if err != nil { - logger.Logger.Errorf("BindInviteSnId error:%v", err) + logger.Logger.Errorf("EvtInvite add error:%v snid:%v score:%v rate:%v", err, snid, score, rate) + return err + } + msg, err := get(snid) + if err != nil { + logger.Logger.Errorf("EvtInvite add find error:%v snid:%v score:%v rate:%v", err, snid, score, rate) + return err + } + mq.Send(model.EvtInviteAck, msg) + return nil + } + + // 重置积分 + reset := func(snid int32) error { + if snid == 0 { + return nil + } + _, _, _, ts, err := svc.GetInviteData(log.Platform, snid) // 上次更新时间 + if err != nil { + logger.Logger.Errorf("EvtInvite GetInviteData error:%v snid:%v", err, snid) + return err + } + inSameWeek := common.InSameWeek(ts, now) + if !inSameWeek { + err = svc.ClearInviteScore(log.Platform, snid, now) + if err != nil { + logger.Logger.Errorf("EvtInvite ClearInviteScore error:%v snid:%v", err, snid) + return err + } + msg, err := get(snid) + if err != nil { + logger.Logger.Errorf("EvtInvite get error:%v snid:%v", err, snid) + return err + } + msg.Score = 0 + mq.Send(model.EvtInviteAck, msg) + } + return nil + } + + // 当前玩家积分是否跨周重置 + err = reset(log.SnId) + if err != nil { + logger.Logger.Errorf("EvtInvite reset 1 error:%v snid:%v", err, log.SnId) + return err + } + // 父节点积分是否跨周重置 + // 一级 + err = reset(log.InviteSnId) + if err != nil { + logger.Logger.Errorf("EvtInvite reset 2 error:%v snid:%v", err, log.InviteSnId) + return err + } + // 二级 + ppsnid, err := svc.GetPSnId(log.Platform, log.InviteSnId) + if err != nil { + logger.Logger.Errorf("EvtInvite GetPSnId 1 error:%v snid:%v", err, log.InviteSnId) + return err + } + if ppsnid > 0 { + err = reset(ppsnid) + if err != nil { + logger.Logger.Errorf("EvtInvite reset 3 error:%v snid:%v", err, ppsnid) return err } } - InviteNumCache.Put(name, n, int64(time.Hour.Seconds())) - // 更新绑定数量 - mq.Send(model.AckBindNum, &model.BindNum{ - SnId: log.InviteSnId, - Num: n, - }) + if log.Tp != common.InviteScoreCheckWeek { + err = svc.SaveInviteScore(&log.InviteScore, log.RechargeScore) + if err != nil { + logger.Logger.Errorf("EvtInvite SaveInviteScore error:%v msg:%+v %+v", err, log.InviteScore, log) + return err + } + } - return + switch log.Tp { + case common.InviteScoreTypeBind: + code, err := svc.GetCodeBySnId(log.Platform, log.InviteSnId) + if err != nil { + logger.Logger.Errorf("EvtInvite GetCodeBySnId error:%v %v", err, log.InviteSnId) + return err + } + // 绑定关系 + err = svc.BindInviteSnId(log.Platform, log.SnId, log.InviteSnId, code) + if err != nil { + logger.Logger.Errorf("EvtInvite BindInviteSnId error:%v msg:%+v", err, log.InviteScore) + return err + } + // 更新绑定数量 + // 更新邀请积分 + // 1.邀请人增加积分 + add(log.InviteSnId, log.Score, 0, 10000) + // 2.上级增加积分 + var psnid int32 + if len(log.Rate) > 0 { + psnid, err = svc.GetPSnId(log.Platform, log.InviteSnId) + if err != nil { + logger.Logger.Errorf("EvtInvite GetPSnId 2 error:%v snid:%v", err, log.InviteSnId) + return err + } + if psnid > 0 { + add(psnid, log.Score, 0, log.Rate[0]) + } + } + if len(log.Rate) > 1 && psnid > 0 { + psnid, err = svc.GetPSnId(log.Platform, psnid) + if err != nil { + logger.Logger.Errorf("EvtInvite GetPSnId 2 error:%v snid:%v", err, log.InviteSnId) + return err + } + if psnid > 0 { + add(psnid, log.Score, 0, log.Rate[1]) + } + } + + case common.InviteScoreTypePay: + // 更新充值积分,上级积分增加 + var psnid int32 + if len(log.Rate) > 0 { + add(log.InviteSnId, log.Score, log.Money, log.Rate[0]) + psnid, err = svc.GetPSnId(log.Platform, log.InviteSnId) + if err != nil { + logger.Logger.Errorf("EvtInvite GetPSnId 3 error:%v snid:%v", err, log.InviteSnId) + return err + } + } + if len(log.Rate) > 1 && psnid > 0 { + add(psnid, log.Score, 0, log.Rate[1]) + psnid, err = svc.GetPSnId(log.Platform, psnid) + if err != nil { + logger.Logger.Errorf("EvtInvite GetPSnId 4 error:%v snid:%v", err, psnid) + return err + } + } + if len(log.Rate) > 2 && psnid > 0 { + add(psnid, log.Score, 0, log.Rate[2]) + } + + case common.InviteScoreTypeRecharge: + // 更新自己的积分 + add(log.SnId, log.Score, log.Money, 10000) + + case common.InviteScoreCheckWeek: + + default: + logger.Logger.Errorf("EvtInvite tp error, %v", log.Tp) + return err + } } return nil - }, broker.Queue(model.EvtBindInvite), broker.DisableAutoAck(), rabbitmq.DurableQueue()) + }, broker.Queue(model.EvtInvite), broker.DisableAutoAck(), rabbitmq.DurableQueue()) } diff --git a/dbproxy/svc/l_invitescore.go b/dbproxy/svc/l_invitescore.go new file mode 100644 index 0000000..2e1cba5 --- /dev/null +++ b/dbproxy/svc/l_invitescore.go @@ -0,0 +1,326 @@ +package svc + +import ( + "errors" + "net/rpc" + "sort" + "time" + + "github.com/globalsign/mgo" + "github.com/globalsign/mgo/bson" + "mongo.games.com/goserver/core/logger" + + "mongo.games.com/game/common" + "mongo.games.com/game/dbproxy/mongo" + "mongo.games.com/game/model" +) + +var ( + InviteScoreDBName = "log" + InviteScoreCollName = "log_invitescore" + InviteScoreColError = errors.New("InviteScore collection open failed") +) + +func InviteScoreCollection(plt string) *mongo.Collection { + s := mongo.MgoSessionMgrSington.GetPltMgoSession(plt, InviteScoreDBName) + if s != nil { + c, first := s.DB().C(InviteScoreCollName) + if first { + c.EnsureIndex(mgo.Index{Key: []string{"snid"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"invitesnid"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"tp"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"ts"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"-ts"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"money"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"score"}, Background: true, Sparse: true}) + } + return c + } + + return nil +} + +type BindScoreSvc struct { +} + +func SaveInviteScore(req *model.InviteScore, rechargeScore int64) error { + logger.Logger.Tracef("SaveInviteScore req:%+v", *req) + if req.InviteSnId == 0 || req.SnId == 0 { + return nil + } + + req.Id = bson.NewObjectId() + u := PlayerDataCollection(req.Platform) + if u == nil { + return PlayerColError + } + + c := InviteScoreCollection(req.Platform) + if c == nil { + return InviteScoreColError + } + + // 不能重复绑定 + var err error + if req.Tp == common.InviteScoreTypeBind { + a := &model.InviteScore{} + err = c.Find(bson.M{"snid": req.SnId, "tp": common.InviteScoreTypeBind}).One(a) + if err != nil && !errors.Is(err, mgo.ErrNotFound) { + return errors.New("find error") + } + if err == nil && a.InviteSnId > 0 { + // 已经绑定 + return errors.New("already bind") + } + } + + // 必须已经绑定 + if req.Tp != common.InviteScoreTypeBind { + a := &model.InviteScore{} + err = c.Find(bson.M{"snid": req.SnId, "tp": common.InviteScoreTypeBind}).One(a) + if err != nil { + // 还没有绑定上级 + logger.Logger.Errorf("GetInviteScore Find BindTime error:%v", err) + return err + } + } + + // 充值成功记录 + if req.Tp == common.InviteScoreTypePay || req.Tp == common.InviteScoreTypeRecharge { + // 是否已经记录过 + a := &model.InviteScore{} + err = c.Find(bson.M{"snid": req.SnId, "tp": common.InviteScoreTypeRecharge}).One(a) + if err != nil && !errors.Is(err, mgo.ErrNotFound) { + return errors.New("find error") + } + if err == nil && a.InviteSnId > 0 { + // 已有记录 + if req.Tp == common.InviteScoreTypeRecharge { + + } else { + err = c.Insert(req) + if err != nil { + logger.Logger.Errorf("SaveInviteScore Insert 1 error:%v", err) + return err + } + } + } else { + // 没有充值成功记录 + err = c.Insert(req) + if err != nil { + logger.Logger.Errorf("SaveInviteScore Insert 2 error:%v", err) + return err + } + + req.Tp = common.InviteScoreTypeRecharge + req.Score = rechargeScore + err = c.Insert(req) + if err != nil { + logger.Logger.Errorf("SaveInviteScore InviteScoreTypeRecharge Insert error:%v", err) + return err + } + } + } else { + err = c.Insert(req) + if err != nil { + logger.Logger.Errorf("SaveInviteScore Insert 3 error:%v", err) + return err + } + } + + return nil +} + +// GetInviteRankList 获取周榜 +func (b *BindScoreSvc) GetInviteRankList(req *model.FindPlayerRankInviteListArgs, ret *model.FindPlayerRankInviteListReply) error { + c := RankInviteCollection(req.Platform) + if c == nil { + return RankInviteColError + } + + ret.RankType = req.RankType + + var st int64 + switch req.RankType { + case 1: //todo 总榜 + return nil + case 2: // 本周榜 + st = common.GetWeekStartTs(time.Now().Unix()) + case 3: //todo 月榜 + return nil + case 4: // 上周榜 + st = common.GetWeekStartTs(time.Now().Unix()) + st -= 7 * 24 * 3600 + } + var list []*model.RankInvite + err := c.Find(bson.M{"week": st}).Sort("-score").Limit(int(model.GameParamData.RankInviteMaxNum)).All(&list) + if err != nil { + logger.Logger.Errorf("GetInviteRankList error: %v", err) + return err + } + + var conds []int32 + if len(list) > 0 { + type PInfo struct { + SnId int32 + Name string // 昵称 + Roles *model.RolePetInfo + } + var retPlayerList []PInfo + cplayerdata := PlayerDataCollection(req.Platform) + if cplayerdata == nil { + return err + } + + for i := 0; i < len(list); i++ { + conds = append(conds, list[i].SnId) + } + + selecter := bson.M{"snid": bson.M{"$in": conds}} + err = cplayerdata.Find(selecter).Select(bson.M{"snid": 1, "name": 1, "roles": 1}).All(&retPlayerList) + if err != nil { + logger.Logger.Error("GetInviteRankList find player is error", err) + return err + } + + for _, inviteInfo := range list { + for _, playerData := range retPlayerList { + if inviteInfo.SnId == playerData.SnId { + var RankInvite model.PlayerRankInvite + RankInvite.Name = playerData.Name + RankInvite.Score = inviteInfo.Score + RankInvite.SnId = inviteInfo.SnId + + // 头像模型ID + roleId := common.DefaultRoleId + if playerData.Roles != nil { + roleId = int(playerData.Roles.ModId) + } + RankInvite.ModId = int32(roleId) + + RankInvite.InviteNum = int32(inviteInfo.Num) + ret.List = append(ret.List, &RankInvite) + break + } + } + } + } + + return nil +} + +// GetInviteScoreByType 获取玩家排行信息 +func (b *BindScoreSvc) GetInviteScoreByType(req *model.FindPlayerRankInviteScoreArgs, ret *model.FindPlayerRankInviteScoreReply) error { + c := RankInviteCollection(req.Platform) + if c == nil { + return RankInviteColError + } + + ret.RankType = req.RankType + + var st int64 + switch req.RankType { + case 1: //todo 总榜 + return nil + case 2: // 本周榜 + st = common.GetWeekStartTs(time.Now().Unix()) + case 3: //todo 月榜 + return nil + case 4: // 上周榜 + st = common.GetWeekStartTs(time.Now().Unix()) + st -= 7 * 24 * 3600 + } + res := new(model.RankInvite) + err := c.Find(bson.M{"week": st, "snid": req.SnId}).One(res) + if err != nil && !errors.Is(err, mgo.ErrNotFound) { + logger.Logger.Warnf("GetInviteScoreByType error: %v", err) + return err + } + + type PInfo struct { + SnId int32 + Name string // 昵称 + Roles *model.RolePetInfo + } + + var retPlayer PInfo + u := PlayerDataCollection(req.Platform) + if u == nil { + return PlayerColError + } + err = u.Find(bson.M{"snid": req.SnId}).Select(bson.M{"snid": 1, "name": 1, "roles": 1}).One(&retPlayer) + if err != nil { + logger.Logger.Error("GetInviteScoreByType find player is error", err) + return err + } + + // 头像模型ID + roleId := common.DefaultRoleId + if retPlayer.Roles != nil { + roleId = int(retPlayer.Roles.ModId) + } + ret.Data = model.PlayerRankInvite{ + SnId: req.SnId, + Score: res.Score, + InviteNum: int32(res.Num), + Name: retPlayer.Name, + ModId: int32(roleId), + } + return nil +} + +// GetInviteList 获取邀请列表 +func (b *BindScoreSvc) GetInviteList(req *model.InviteLisArgs, ret *model.InviteListRet) error { + c := PlayerDataCollection(req.Platform) + if c == nil { + return InviteScoreColError + } + + type M struct { + Name string + Roles *model.RolePetInfo + CreateTime time.Time + SnId int32 + IScore int64 + IScoreTs time.Time + } + + var res []*M + + err := c.Find(bson.M{"psnid": req.SnId}).Select(bson.M{"snid": 1, "iscore": 1, "iscorets": 1, "name": 1, "createtime": 1, "roles": 1}).All(&res) + if err != nil { + logger.Logger.Errorf("GetInviteList error:%v", err) + return err + } + + now := time.Now().Local() + for _, v := range res { + if !common.InSameWeek(now, v.IScoreTs) { + v.IScore = 0 + } + roleId := common.DefaultRoleId + if v.Roles != nil && v.Roles.ModId != 0 { + roleId = int(v.Roles.ModId) + } + ret.List = append(ret.List, &model.InviteInfo{ + Name: v.Name, + SnId: v.SnId, + CreateTs: v.CreateTime.Unix(), + Score: v.IScore, + ModId: int32(roleId), + }) + } + sort.Slice(ret.List, func(i, j int) bool { + return ret.List[i].Score > ret.List[j].Score + }) + + return nil +} + +//todo 每周清理数据,绑定关系不能删除 + +var GlobalBindScoreSvc = new(BindScoreSvc) + +func init() { + rpc.Register(GlobalBindScoreSvc) +} diff --git a/dbproxy/svc/l_rankinvite.go b/dbproxy/svc/l_rankinvite.go new file mode 100644 index 0000000..36a30b6 --- /dev/null +++ b/dbproxy/svc/l_rankinvite.go @@ -0,0 +1,55 @@ +package svc + +import ( + "errors" + + "github.com/globalsign/mgo" + "github.com/globalsign/mgo/bson" + "mongo.games.com/goserver/core/logger" + + "mongo.games.com/game/common" + "mongo.games.com/game/dbproxy/mongo" + "mongo.games.com/game/model" +) + +var ( + RankInviteDBName = "log" + RankInviteCollName = "log_rankinvite" + RankInviteColError = errors.New("RankInvite collection open failed") +) + +func RankInviteCollection(plt string) *mongo.Collection { + s := mongo.MgoSessionMgrSington.GetPltMgoSession(plt, RankInviteDBName) + if s != nil { + c, first := s.DB().C(RankInviteCollName) + if first { + c.EnsureIndex(mgo.Index{Key: []string{"snid"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"num"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"-score"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"score"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"ts"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"week", "-score"}, Background: true, Sparse: true}) + } + return c + } + + return nil +} + +func SaveRankInvite(data *model.RankInvite) error { + c := RankInviteCollection(data.Platform) + if c == nil { + return RankInviteColError + } + + data.Week = common.GetWeekStartTs(data.Ts) + + _, err := c.Upsert(bson.M{"snid": data.SnId, "week": data.Week}, data) + if err != nil { + logger.Logger.Tracef("SaveRankInvite error:%v", err) + return err + } + return nil +} + +//todo 每周清理数据 diff --git a/dbproxy/svc/l_rankplayercoin.go b/dbproxy/svc/l_rankplayercoin.go index 5050030..d3da869 100644 --- a/dbproxy/svc/l_rankplayercoin.go +++ b/dbproxy/svc/l_rankplayercoin.go @@ -23,7 +23,7 @@ func RankPlayerCoinCollection(plt string) *mongo.Collection { c, first := s.DB().C(RankPlayerCoinCollName) if first { c.EnsureIndex(mgo.Index{Key: []string{"snid"}, Background: true, Sparse: true}) - c.EnsureIndex(mgo.Index{Key: []string{"coin"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"-coin"}, Background: true, Sparse: true}) } return c } diff --git a/dbproxy/svc/l_rankplayerlevel.go b/dbproxy/svc/l_rankplayerlevel.go index 006746f..42699ab 100644 --- a/dbproxy/svc/l_rankplayerlevel.go +++ b/dbproxy/svc/l_rankplayerlevel.go @@ -22,7 +22,7 @@ func RankPlayerLevelCollection(plt string) *mongo.Collection { 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}) + c.EnsureIndex(mgo.Index{Key: []string{"-exp"}, Background: true, Sparse: true}) } return c } diff --git a/dbproxy/svc/l_rankseasion.go b/dbproxy/svc/l_rankseasion.go index 3e8364f..1cdaf16 100644 --- a/dbproxy/svc/l_rankseasion.go +++ b/dbproxy/svc/l_rankseasion.go @@ -26,7 +26,7 @@ func RankSeasonCollection(plt string, rankType int32) *mongo.Collection { c, first := s.DB().C(fmt.Sprintf("%s_%d", RankSeasonCollName, rankType)) if first { c.EnsureIndex(mgo.Index{Key: []string{"snid"}, Background: true, Sparse: true}) - c.EnsureIndex(mgo.Index{Key: []string{"isrobot", "seasonid", "score"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"isrobot", "seasonid", "-score"}, Background: true, Sparse: true}) } return c } diff --git a/dbproxy/svc/u_invitecode.go b/dbproxy/svc/u_invitecode.go index d2f0beb..b303c58 100644 --- a/dbproxy/svc/u_invitecode.go +++ b/dbproxy/svc/u_invitecode.go @@ -21,7 +21,7 @@ import ( var ( InviteCodeDBName = "user" - InviteCodeCollName = "user_invitecode" + InviteCodeCollName = "user_icode" InviteCodeColError = errors.New("InviteCode collection open failed") InviteCodeMutex = sync.Mutex{} ) @@ -105,6 +105,19 @@ func (i *InviteCodeSvc) GetSnIdByCode(req *model.InviteSnIdReq, ret *model.Invit return nil } +func GetCodeBySnId(platform string, snid int32) (string, error) { + c := InviteCodeCollection(platform) + if c == nil { + return "", InviteCodeColError + } + col := new(model.InviteCode) + err := c.Find(bson.M{"snid": snid}).One(col) + if err != nil && !errors.Is(err, mgo.ErrNotFound) { + return "", err + } + return col.Code, err +} + func init() { rpc.Register(new(InviteCodeSvc)) } diff --git a/dbproxy/svc/u_invitescore.go b/dbproxy/svc/u_invitescore.go deleted file mode 100644 index c8eca1f..0000000 --- a/dbproxy/svc/u_invitescore.go +++ /dev/null @@ -1,429 +0,0 @@ -package svc - -import ( - "errors" - "net/rpc" - "time" - - "github.com/globalsign/mgo" - "github.com/globalsign/mgo/bson" - "mongo.games.com/goserver/core/logger" - - "mongo.games.com/game/common" - "mongo.games.com/game/dbproxy/mongo" - "mongo.games.com/game/model" - rankproto "mongo.games.com/game/protocol/rank" -) - -var ( - InviteScoreDBName = "user" - InviteScoreCollName = "user_invitescore" - InviteScoreColError = errors.New("InviteScore collection open failed") -) - -func InviteScoreCollection(plt string) *mongo.Collection { - s := mongo.MgoSessionMgrSington.GetPltMgoSession(plt, InviteScoreDBName) - if s != nil { - c, first := s.DB().C(InviteScoreCollName) - if first { - c.EnsureIndex(mgo.Index{Key: []string{"snid"}, Background: true, Sparse: true}) - c.EnsureIndex(mgo.Index{Key: []string{"invitesnid"}, Background: true, Sparse: true}) - c.EnsureIndex(mgo.Index{Key: []string{"tp"}, Background: true, Sparse: true}) - c.EnsureIndex(mgo.Index{Key: []string{"ts"}, Background: true, Sparse: true}) - c.EnsureIndex(mgo.Index{Key: []string{"-ts"}, Background: true, Sparse: true}) - c.EnsureIndex(mgo.Index{Key: []string{"weekindex"}, Background: true, Sparse: true}) - c.EnsureIndex(mgo.Index{Key: []string{"monthindex"}, Background: true, Sparse: true}) - } - return c - } - - return nil -} - -type BindScoreSvc struct { -} - -func (b *BindScoreSvc) GetInviteScore(req *model.InviteScoreReq, ret *model.InviteScoreRet) error { - c := InviteScoreCollection(req.Platform) - if c == nil { - return InviteScoreColError - } - - type M struct { - Score int64 - Money int64 - } - - var tc []M - err := c.Pipe([]bson.M{ - {"$match": bson.M{ - "invitesnid": req.SnId, - }}, - {"$group": bson.M{ - "_id": nil, - "score": bson.M{"$sum": "$score"}, - "money": bson.M{"$sum": "$money"}, - }}, - }).AllowDiskUse().All(&tc) - if err != nil { - logger.Logger.Error("GetInviteScore AllowDiskUse is error", err) - return err - } - - if len(tc) > 0 { - ret.Score = tc[0].Score - ret.Money = tc[0].Money - c := PlayerDataCollection(req.Platform) - if c == nil { - return PlayerColError - } - err = c.Update(bson.M{"snid": req.SnId}, bson.M{"$set": bson.M{"invitescore": tc[0].Score}}) - if err != nil { - logger.Logger.Error("GetInviteScore update invitescore is error", err) - return err - } - } - - tc = tc[:0] - err = c.Pipe([]bson.M{ - {"$match": bson.M{ - "invitesnid": req.SnId, - "score": bson.M{"$gt": 0}, - }}, - {"$group": bson.M{ - "_id": nil, - "score": bson.M{"$sum": "$score"}, - }}, - }).AllowDiskUse().All(&tc) - if err != nil { - logger.Logger.Error("GetInviteScore z AllowDiskUse is error", err) - return err - } - - if len(tc) > 0 { - ret.ZScore = tc[0].Score - } - - return nil -} - -func (b *BindScoreSvc) SaveInviteScore(req *model.InviteScore, ret *bool) error { - logger.Logger.Tracef("SaveInviteScore req:%+v", *req) - if req.InviteSnId == 0 { - return nil - } - req.Id = bson.NewObjectId() - u := PlayerDataCollection(req.Platform) - if u == nil { - return PlayerColError - } - - type M struct { - InviteScore int64 - } - r := new(M) - err := u.Find(bson.M{"snid": req.InviteSnId}).Select(bson.M{"invitescore": 1}).One(r) - if err != nil && !errors.Is(err, mgo.ErrNotFound) { - logger.Logger.Errorf("GetInviteScore Find error:%v", err) - return err - } - - if req.Score < 0 { - if -req.Score > r.InviteScore { - req.Score = -r.InviteScore - } - } - - c := InviteScoreCollection(req.Platform) - if c == nil { - return InviteScoreColError - } - - ts := req.Ts - if req.Tp != common.InviteScoreTypeBind { - a := &model.InviteScore{} - err = c.Find(bson.M{"snid": req.SnId, "tp": common.InviteScoreTypeBind}).One(a) - if err != nil && !errors.Is(err, mgo.ErrNotFound) { - logger.Logger.Errorf("GetInviteScore Find BindTime error:%v", err) - return err - } - ts = a.Ts - } - - bindTime := time.Unix(0, ts).Local() - year, month, day := bindTime.Date() - today := time.Date(year, month, day, 0, 0, 0, 0, time.Local) - // 本周起始日期(周日) - req.WeekIndex = today.AddDate(0, 0, -int(today.Weekday())).Unix() - // 本月起始日期 - req.MonthIndex = time.Date(year, month, 1, 0, 0, 0, 0, time.Local).Unix() - - err = c.Insert(req) - if err != nil { - logger.Logger.Errorf("SaveInviteScore Insert error:%v", err) - return err - } - - err = u.Update(bson.M{"snid": req.InviteSnId}, bson.M{"$inc": bson.M{"invitescore": req.Score}}) - if err != nil { - logger.Logger.Errorf("inc InviteScore error:%v", err) - return err - } - - *ret = true - return nil -} - -func (b *BindScoreSvc) GetInviteRankList(req *model.FindPlayerRankInviteListArgs, ret *model.FindPlayerRankInviteListReply) error { - c := InviteScoreCollection(req.Platform) - if c == nil { - return InviteScoreColError - } - - matchParam := bson.M{ - "score": bson.M{"$gt": 0}, - } - now := time.Now().Local() - startTime := now.AddDate(-100, 0, 0).UnixNano() - year, month, day := now.Date() - today := time.Date(year, month, day, 0, 0, 0, 0, time.Local) - if req.RankType == int32(rankproto.RankInvite_InviteType_Week) { - // 本周起始日期(周日) - matchParam["weekindex"] = today.AddDate(0, 0, -int(today.Weekday())).Unix() - } else if req.RankType == int32(rankproto.RankInvite_InviteType_Month) { - // 本月起始日期 - matchParam["monthindex"] = time.Date(year, month, 1, 0, 0, 0, 0, time.Local).Unix() - } else { - matchParam["ts"] = bson.M{"$gte": startTime, "$lte": now.UnixNano()} - } - - type M struct { - InviteSnId int32 // 邀请人id - Score int64 // 积分 - } - - var tc []M - err := c.Pipe([]bson.M{ - {"$match": matchParam}, - {"$group": bson.M{ - "_id": bson.M{ - "invitesnid": "$invitesnid", - }, - "invitesnid": bson.M{"$first": "$invitesnid"}, - "score": bson.M{"$sum": "$score"}, - }}, - { - "$sort": bson.M{"ts": -1}, - }, - { - "$sort": bson.M{"score": -1}, - }, - { - "$limit": model.GameParamData.RankInviteMaxNum, - }, - }).AllowDiskUse().All(&tc) - if err != nil { - logger.Logger.Error("GetInviteRankList z AllowDiskUse is error", err) - return err - } - - var conds []int32 - if len(tc) > 0 { - - type PInfo struct { - SnId int32 - Name string // 昵称 - Roles *model.RolePetInfo - } - - var retPlayerList []PInfo - - cplayerdata := PlayerDataCollection(req.Platform) - if cplayerdata == nil { - return err - } - - for i := 0; i < len(tc); i++ { - conds = append(conds, tc[i].InviteSnId) - } - - selecter := bson.M{"snid": bson.M{"$in": conds}} - //err = cplayerdata.Find(selecter).Select(bson.M{"snid": 1, "name": 1, "roles": 1}).All(&retPlayerList) - err = cplayerdata.Find(selecter).Select(bson.M{"snid": 1, "name": 1, "roles": 1}).All(&retPlayerList) - if err != nil { - logger.Logger.Error("svc.FindInvitePlayerList is error", err) - return nil - } - - for _, inviteInfo := range tc { - for _, playerData := range retPlayerList { - if inviteInfo.InviteSnId == playerData.SnId { - var RankInvite model.PlayerRankInvite - RankInvite.Name = playerData.Name - RankInvite.Score = inviteInfo.Score - RankInvite.SnId = inviteInfo.InviteSnId - - // 头像模型ID - roleId := common.DefaultRoleId - if playerData.Roles != nil { - roleId = int(playerData.Roles.ModId) - } - RankInvite.ModId = int32(roleId) - - RankInvite.InviteNum, _ = GetInviteNum(req.Platform, inviteInfo.InviteSnId, req.RankType) - ret.List = append(ret.List, &RankInvite) - - break - } - } - } - ret.RankType = req.RankType - } - - return nil -} - -func (b *BindScoreSvc) GetInviteScoreByType(req *model.FindPlayerRankInviteScoreArgs, ret *model.FindPlayerRankInviteScoreReply) error { - c := InviteScoreCollection(req.Platform) - if c == nil { - return InviteScoreColError - } - - matchParam := bson.M{ - "invitesnid": req.SnId, - "score": bson.M{"$gt": 0}, - } - now := time.Now().Local() - startTime := now.AddDate(-100, 0, 0).UnixNano() - year, month, day := now.Date() - today := time.Date(year, month, day, 0, 0, 0, 0, time.Local) - if req.RankType == int32(rankproto.RankInvite_InviteType_Week) { - // 本周起始日期(周日) - matchParam["weekindex"] = today.AddDate(0, 0, -int(today.Weekday())).Unix() - } else if req.RankType == int32(rankproto.RankInvite_InviteType_Month) { - // 本月起始日期 - matchParam["monthindex"] = time.Date(year, month, 1, 0, 0, 0, 0, time.Local).Unix() - } else { - matchParam["ts"] = bson.M{"$gte": startTime, "$lte": now.UnixNano()} - } - - type M struct { - InviteSnId int32 // 邀请人id - Score int64 // 积分 - } - - var tc []M - err := c.Pipe([]bson.M{ - {"$match": matchParam}, - {"$group": bson.M{ - "_id": nil, - "invitesnid": bson.M{"$first": "$invitesnid"}, - "score": bson.M{"$sum": "$score"}, - }}, - }).AllowDiskUse().All(&tc) - if err != nil { - logger.Logger.Error("GetInviteScoreByType z AllowDiskUse is error", err) - return err - } - - type PInfo struct { - SnId int32 - Name string // 昵称 - Roles *model.RolePetInfo - } - - var retPlayer PInfo - u := PlayerDataCollection(req.Platform) - if u == nil { - return err - } - err = u.Find(bson.M{"snid": req.SnId}).Select(bson.M{"snid": 1, "name": 1, "roles": 1}).One(&retPlayer) - if err != nil { - logger.Logger.Error("svc.GetInviteScoreByType is error", err) - return nil - } - - var rankInvite model.PlayerRankInvite - rankInvite.Name = retPlayer.Name - if len(tc) > 0 { - rankInvite.Score = tc[0].Score - } - rankInvite.SnId = req.SnId - // 头像模型ID - roleId := common.DefaultRoleId - if retPlayer.Roles != nil { - roleId = int(retPlayer.Roles.ModId) - } - rankInvite.ModId = int32(roleId) - rankInvite.InviteNum, _ = GetInviteNum(req.Platform, req.SnId, req.RankType) - ret.Data = rankInvite - - ret.RankType = req.RankType - - return nil -} - -func (b *BindScoreSvc) GetInviteList(req *model.InviteLisArgs, ret *model.InviteListRet) error { - c := InviteScoreCollection(req.Platform) - if c == nil { - return InviteScoreColError - } - - type M struct { - SnId int32 - Score int64 - } - - var tc []M - err := c.Pipe([]bson.M{ - {"$match": bson.M{ - "invitesnid": req.SnId, - }}, - {"$group": bson.M{ - "_id": bson.M{ - "snid": "$snid", - }, - "snid": bson.M{"$first": "$snid"}, - "score": bson.M{"$sum": "$score"}, - }}, - { - "$sort": bson.M{ - "score": -1, - }, - }, - }).AllowDiskUse().All(&tc) - if err != nil { - logger.Logger.Error("GetInviteList AllowDiskUse is error", err) - return err - } - - u := PlayerDataCollection(req.Platform) - if u == nil { - return PlayerColError - } - - for _, v := range tc { - d := &model.PlayerBaseInfo2{} - err = u.Find(bson.M{"snid": v.SnId}).Select(bson.M{"name": 1, "createtime": 1, "roles": 1}).One(d) - if err != nil { - logger.Logger.Warnf("GetInviteList Find player is error:%v", err) - } - roleId := common.DefaultRoleId - if d.Roles != nil && d.Roles.ModId != 0 { - roleId = int(d.Roles.ModId) - } - ret.List = append(ret.List, &model.InviteInfo{ - Name: d.Name, - SnId: v.SnId, - CreateTs: d.CreateTime.Unix(), - Score: v.Score, - ModId: int32(roleId), - }) - } - - return nil -} - -func init() { - rpc.Register(new(BindScoreSvc)) -} diff --git a/dbproxy/svc/u_player.go b/dbproxy/svc/u_player.go index 360a28c..b590a2e 100644 --- a/dbproxy/svc/u_player.go +++ b/dbproxy/svc/u_player.go @@ -21,7 +21,6 @@ import ( "mongo.games.com/game/common" "mongo.games.com/game/dbproxy/mongo" "mongo.games.com/game/model" - rankproto "mongo.games.com/game/protocol/rank" ) var ( @@ -40,12 +39,12 @@ func PlayerDataCollection(plt string) *mongo.Collection { c_playerdata.EnsureIndex(mgo.Index{Key: []string{"snid"}, Unique: true, Background: true, Sparse: true}) c_playerdata.EnsureIndex(mgo.Index{Key: []string{"channel"}, Background: true, Sparse: true}) c_playerdata.EnsureIndex(mgo.Index{Key: []string{"tel"}, Background: true, Sparse: true}) - c_playerdata.EnsureIndex(mgo.Index{Key: []string{"invitecode"}, Background: true, Sparse: true}) - c_playerdata.EnsureIndex(mgo.Index{Key: []string{"invitesnid"}, Background: true, Sparse: true}) c_playerdata.EnsureIndex(mgo.Index{Key: []string{"name"}, Background: true, Sparse: true}) c_playerdata.EnsureIndex(mgo.Index{Key: []string{"createtime"}, Background: true, Sparse: true}) c_playerdata.EnsureIndex(mgo.Index{Key: []string{"-createtime"}, Background: true, Sparse: true}) - c_playerdata.EnsureIndex(mgo.Index{Key: []string{"othercode"}, Background: true, Sparse: true}) + c_playerdata.EnsureIndex(mgo.Index{Key: []string{"icode"}, Background: true, Sparse: true}) + c_playerdata.EnsureIndex(mgo.Index{Key: []string{"psnid"}, Background: true, Sparse: true}) + c_playerdata.EnsureIndex(mgo.Index{Key: []string{"pcode"}, Background: true, Sparse: true}) } return c_playerdata } @@ -247,7 +246,7 @@ func (svc *PlayerDataSvc) CreatePlayerDataByThird(args *model.CreatePlayer, ret func (svc *PlayerDataSvc) CreatePlayerDataOnRegister(args *model.PlayerDataArg, ret *model.PlayerDataRet) (err error) { cplayerdata := PlayerDataCollection(args.Plt) if cplayerdata == nil { - return + return PlayerColError } acc := args.AccId pd := &model.PlayerData{} @@ -267,13 +266,13 @@ func (svc *PlayerDataSvc) CreatePlayerDataOnRegister(args *model.PlayerDataArg, if !bson.IsObjectIdHex(acc) { logger.Logger.Warn("NewPlayer failed: acc is illeage ", acc) - return + return errors.New("acc is illeage") } var a *model.Account a, err = _AccountSvc.getAccount(args.Plt, args.AccId) if err != nil { logger.Logger.Warnf("_AccountSvc.getAccount(%v,%v) failed:%v", args.Plt, args.AccId, err) - return + return err } id := a.SnId @@ -281,7 +280,7 @@ func (svc *PlayerDataSvc) CreatePlayerDataOnRegister(args *model.PlayerDataArg, id, err = GetOnePlayerIdFromBucket() if err != nil { logger.Logger.Warn("NewPlayer failed:", err) - return + return err } } @@ -298,21 +297,26 @@ func (svc *PlayerDataSvc) CreatePlayerDataOnRegister(args *model.PlayerDataArg, dataParams.Ip, int64(args.AddCoin), "", a.DeviceInfo, a.TagKey, a.AccountType) pd.HeadUrl = args.HeadUrl if pd != nil { + if pd.ICode == "" { + code, _ := GetInviteCode(pd.Platform, pd.SnId) + pd.ICode = code + pd.IScoreTs = time.Now() + } err = cplayerdata.Insert(pd) if err != nil { logger.Logger.Trace("CreatePlayerDataOnRegister Insert failed:", err) - return + return err } ret.Pd = pd ret.IsNew = true - return + return nil } - return + return nil } if CorrectData(pd) { } ret.Pd = pd - return + return nil } func (svc *PlayerDataSvc) GetPlayerDataBySnId(args *model.GetPlayerDataBySnIdArgs, ret *model.PlayerDataRet) (err error) { @@ -321,6 +325,30 @@ func (svc *PlayerDataSvc) GetPlayerDataBySnId(args *model.GetPlayerDataBySnIdArg return nil } + f := func(p *model.PlayerData) { + // 更新一下绑定关系 + if p.PSnId > 0 && p.PCode != "" { + return + } + c := InviteScoreCollection(args.Plt) + if c == nil { + return + } + res := new(model.InviteScore) + c.Find(bson.M{"snid": args.SnId, "tp": common.InviteScoreTypeBind}).One(res) + param := bson.M{} + if res.InviteSnId > 0 { + p.PSnId = res.InviteSnId + param["psnid"] = res.InviteSnId + code, _ := GetCodeBySnId(args.Plt, res.InviteSnId) + if code != "" { + p.PCode = code + param["pcode"] = code + } + cplayerdata.Update(bson.M{"snid": args.SnId}, bson.M{"$set": param}) + } + } + var code string err = cplayerdata.Find(bson.M{"snid": args.SnId}).One(&ret.Pd) if err != nil { @@ -346,15 +374,16 @@ func (svc *PlayerDataSvc) GetPlayerDataBySnId(args *model.GetPlayerDataBySnIdArg 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) if pd != nil { + if pd.ICode == "" { + code, _ = GetInviteCode(pd.Platform, pd.SnId) + pd.ICode = code + pd.IScoreTs = time.Now() + } err = cplayerdata.Insert(pd) if err != nil { logger.Logger.Errorf("GetPlayerDataBySnId Insert err:%v acc:%v snid:%v", err, a.AccountId.Hex(), a.SnId) return err } - if pd.InviteCode == "" { - code, err = GetInviteCode(pd.Platform, pd.SnId) - pd.InviteCode = code - } ret.IsNew = true ret.Pd = pd return nil @@ -362,10 +391,13 @@ func (svc *PlayerDataSvc) GetPlayerDataBySnId(args *model.GetPlayerDataBySnIdArg } return err } - if ret.Pd.InviteCode == "" { - code, err = GetInviteCode(ret.Pd.Platform, ret.Pd.SnId) - ret.Pd.InviteCode = code + if ret.Pd.ICode == "" { + code, _ = GetInviteCode(ret.Pd.Platform, ret.Pd.SnId) + ret.Pd.ICode = code + ret.Pd.IScoreTs = time.Now() + cplayerdata.Update(bson.M{"snid": args.SnId}, bson.M{"icode": code, "iscorets": ret.Pd.IScoreTs}) } + f(ret.Pd) if args.CorrectData && ret.Pd != nil { CorrectData(ret.Pd) } @@ -459,6 +491,12 @@ func SavePlayerData(pd *model.PlayerData) (err error) { } if pd != nil { model.RecalcuPlayerCheckSum(pd) + //todo 排除字段更新,有没有更新好的方法 + pd.IScore, pd.INum, pd.IMoney, pd.IScoreTs, err = GetInviteData(pd.Platform, pd.SnId) + if err != nil { + logger.Logger.Errorf("model.SavePlayerData GetInviteData %v err:%v", pd.SnId, err) + return + } _, err = cplayerdata.Upsert(bson.M{"_id": pd.Id}, pd) if err != nil { logger.Logger.Errorf("model.SavePlayerData %v err:%v", pd.SnId, err) @@ -1495,87 +1533,126 @@ func (svc *PlayerDataSvc) GetPlayerInviteSnid(req *model.PlayerIsExistBySnIdArgs } type t struct { - InviteSnId int32 + PSnId int32 } res := &t{} - err := c.Find(bson.M{"snid": req.SnId}).Select(bson.M{"invitesnid": 1}).One(res) + err := c.Find(bson.M{"snid": req.SnId}).Select(bson.M{"psnid": 1}).One(res) if err != nil && errors.Is(err, mgo.ErrNotFound) { return err } - *resp = res.InviteSnId + *resp = res.PSnId return nil } -func (svc *PlayerDataSvc) GetInviteNum(req *model.PlayerIsExistBySnIdArgs, resp *int32) error { - n, err := GetInviteNum(req.Plt, req.SnId, int32(rankproto.RankInvite_InviteType_Total)) - if err != nil { - return err - } - *resp = n - return nil -} - -func GetInviteNum(platform string, snId int32, rankType int32) (int32, error) { - var err error - var n int - switch rankType { - case int32(rankproto.RankInvite_InviteType_Week), int32(rankproto.RankInvite_InviteType_Month): - matchParam := bson.M{ - "invitesnid": snId, - "tp": common.InviteScoreTypeBind, - } - now := time.Now().Local() - year, month, day := now.Date() - today := time.Date(year, month, day, 0, 0, 0, 0, time.Local) - if rankType == int32(rankproto.RankInvite_InviteType_Week) { - // 本周起始日期(周日) - matchParam["weekindex"] = today.AddDate(0, 0, -int(today.Weekday())).Unix() - } else if rankType == int32(rankproto.RankInvite_InviteType_Month) { - // 本月起始日期 - matchParam["monthindex"] = time.Date(year, month, 1, 0, 0, 0, 0, time.Local).Unix() - } - c := InviteScoreCollection(platform) - if c == nil { - return 0, InviteScoreColError - } - n, err = c.Find(matchParam).Count() - if err != nil { - return 0, err - } - - default: - c := PlayerDataCollection(platform) - if c == nil { - return 0, PlayerColError - } - n, err = c.Find(bson.M{"invitesnid": snId}).Count() - if err != nil { - return 0, err - } - } - - return int32(n), nil -} - -func BindInviteSnId(platform string, snId, inviteSnId int32, ts int64) error { +func BindInviteSnId(platform string, snId, inviteSnId int32, code string) error { c := PlayerDataCollection(platform) if c == nil { return PlayerColError } - err := c.Update(bson.M{"snid": snId}, bson.M{"$set": bson.M{"invitesnid": inviteSnId}}) + err := c.Update(bson.M{"snid": snId}, bson.M{"$set": bson.M{"psnid": inviteSnId, "pcode": code}}) if err != nil { logger.Logger.Error("BindInviteSnId error ", err) return err } + err = c.Update(bson.M{"snid": inviteSnId}, bson.M{"$inc": bson.D{{"inum", 1}}}) + if err != nil { + logger.Logger.Error("BindInviteSnId inc error ", err) + return err + } + return nil +} + +func ClearInviteScore(platform string, snId int32, now time.Time) error { + c := PlayerDataCollection(platform) + if c == nil { + return PlayerColError + } + + err := c.Update(bson.M{"snid": snId}, bson.M{"$set": bson.M{"iscore": 0, "iscorets": now}}) + if err != nil { + logger.Logger.Error("ClearInviteScore error ", err) + return err + } return nil } +func AddInviteScore(platform string, snId int32, num, money int64, now time.Time) error { + c := PlayerDataCollection(platform) + if c == nil { + return PlayerColError + } + + err := c.Update(bson.M{"snid": snId}, bson.M{"$inc": bson.M{"iscore": num, "imoney": money}, "$set": bson.M{"iscorets": now}}) + if err != nil { + logger.Logger.Error("AddInviteScore error ", err) + return err + } + + // 更新排行榜 + type m struct { + IScore int64 + INum int64 + } + res := &m{} + err = c.Find(bson.M{"snid": snId}).Select(bson.M{"iscore": 1, "inum": 1}).One(res) + if err != nil { + logger.Logger.Error("AddInviteScore find error ", err) + return err + } + + SaveRankInvite(&model.RankInvite{ + Platform: platform, + SnId: snId, + Num: res.INum, + Score: res.IScore, + Ts: now.Unix(), + }) + + return nil +} + +func GetInviteData(platform string, snId int32) (iscore, inum, imoney int64, iscorets time.Time, err error) { + c := PlayerDataCollection(platform) + if c == nil { + err = PlayerColError + return + } + type M struct { + IScore, Imoney, Inum int64 + IScoreTs time.Time + } + res := &M{} + err = c.Find(bson.M{"snid": snId}).Select(bson.M{"iscore": 1, "inum": 1, "imoney": 1, "iscorets": 1}).One(res) + if err != nil && !errors.Is(err, mgo.ErrNotFound) { + return + } + res.IScoreTs = res.IScoreTs.Local() + return res.IScore, res.Inum, res.Imoney, res.IScoreTs, nil +} + +func GetPSnId(platform string, snId int32) (psnId int32, err error) { + c := PlayerDataCollection(platform) + if c == nil { + err = PlayerColError + return + } + type M struct { + PSnId int32 + } + res := &M{} + err = c.Find(bson.M{"snid": snId}).Select(bson.M{"psnid": 1}).One(res) + if err != nil && !errors.Is(err, mgo.ErrNotFound) { + return 0, err + } + return res.PSnId, nil +} + func CorrectData(pd *model.PlayerData) bool { //var coinTotal int64 dirty := false diff --git a/etcd/keyconf.go b/etcd/keyconf.go index 51c1434..1ddc523 100644 --- a/etcd/keyconf.go +++ b/etcd/keyconf.go @@ -31,4 +31,5 @@ const ( ETCDKEY_GAME_CONFIG = "/game/plt/gameconfig/" // 游戏管理/全局配置 ETCDKEY_ACT_PHONELOTTERY = "/game/act_phoneLottery" ETCDKEY_ChannelSwitch = "/game/channel/switch" // 渠道开关 + ETCDKEY_ACT_Invite = "/game/act_invite" // 邀请活动配置 ) diff --git a/model/baginfo.go b/model/baginfo.go index 84e994b..6591384 100644 --- a/model/baginfo.go +++ b/model/baginfo.go @@ -29,9 +29,9 @@ func NewBagInfo(sid int32, plt string) *BagInfo { return &BagInfo{BagId: bson.NewObjectId(), SnId: sid, Platform: plt, BagItem: make(map[int32]*Item)} } -func GetBagInfo(sid int32, plt string) *BagInfo { +func GetBagInfo(sid int32, plt string) (*BagInfo, error) { if rpcCli == nil { - return nil + return nil, ErrRPClientNoConn } ret := &BagInfo{} args := &GetBagInfoArgs{ @@ -41,9 +41,9 @@ func GetBagInfo(sid int32, plt string) *BagInfo { err := rpcCli.CallWithTimeout("BagSvc.GetBagItem", args, ret, time.Second*30) if err != nil { logger.Logger.Error("GetBagInfo err:%v SnId:%v ", err, args.SnId) - return nil + return nil, err } - return ret + return ret, nil } func UpBagItem(args *BagInfo) error { diff --git a/model/config.go b/model/config.go index a2523ac..547b542 100644 --- a/model/config.go +++ b/model/config.go @@ -117,6 +117,8 @@ type AllConfig struct { ShopInfos map[int32]*ShopInfo // 商品id:商品信息 // 渠道开关 ChannelSwitch map[int32]*webapi.ChannelSwitchConfig + // 邀请活动 + *webapi.ActInviteConfig } type GlobalConfig struct { diff --git a/model/invitecode.go b/model/invitecode.go index 4ab55c8..b0dfde0 100644 --- a/model/invitecode.go +++ b/model/invitecode.go @@ -24,6 +24,7 @@ type InviteSnIdRet struct { SnId int32 } +// GetSnIdByCode 根据邀请码获取被邀请人id func GetSnIdByCode(platform string, code string) (int32, error) { if rpcCli == nil { logger.Logger.Warnf("rpcCli is nil") @@ -47,81 +48,30 @@ func GetSnIdByCode(platform string, code string) (int32, error) { // InviteScore 积分记录 type InviteScore struct { Id bson.ObjectId `bson:"_id"` - Platform string // 平台id + Platform string `bson:"-"` // 平台id SnId int32 // 被邀请人id InviteSnId int32 // 邀请人id - Tp int32 // 积分类型 common.InviteScoreType~ + Tp int32 // 积分类型 common.InviteScoreType ~ Score int64 // 积分 Ts int64 // 时间戳 Money int64 // 充值金额 - WeekIndex int64 // 所在周 - MonthIndex int64 // 所在月 + Rate []int64 // 返佣比例 } -type InviteScoreReq struct { +// 邀请消息 +const EvtInvite = "evt_invite" // 绑定邀请人 worldsrv -> dbproxy +type EvtInviteMsg struct { + InviteScore + RechargeScore int64 // 充值成功积分 +} + +const EvtInviteAck = "evt_invite_ack" // 绑定邀请人 dbproxy -> worldsrv +type EvtInviteAckMsg struct { Platform string - SnId int32 -} - -type InviteScoreRet struct { - Score int64 // 包含扣积分 - ZScore int64 // 只包含大于0的积分 - Money int64 // 充值金额 -} - -// GetInviteScore 查询总积分 -// 下级玩家所有积分 -// 返回 包含扣积分,只包含大于0的积分,充值金额 -func GetInviteScore(plt string, snid int32) (int64, int64, int64, error) { - if rpcCli == nil { - logger.Logger.Warnf("rpcCli is nil") - return 0, 0, 0, errors.New("rpcCli is nil") - } - - req := &InviteScoreReq{ - Platform: plt, - SnId: snid, - } - ret := &InviteScoreRet{} - err := rpcCli.CallWithTimeout("BindScoreSvc.GetInviteScore", req, ret, time.Second*30) - if err != nil { - logger.Logger.Warnf("GetInviteScore err:%v", err) - return 0, 0, 0, err - } - - return ret.Score, ret.ZScore, ret.Money, err -} - -// SaveInviteScore 保存积分变更记录 -func SaveInviteScore(b *InviteScore) error { - if rpcCli == nil { - logger.Logger.Warnf("rpcCli is nil") - return errors.New("rpcCli is nil") - } - - ret := false - err := rpcCli.CallWithTimeout("BindScoreSvc.SaveInviteScore", b, &ret, time.Second*30) - if err != nil { - logger.Logger.Warnf("SaveInviteScore err:%v", err) - return err - } - return nil -} - -const EvtBindInvite = "evt_bind_invite" -const AckBindNum = "ack_bind_num" -const EvtInviteScore = "evt_invitescore" - -type BindInvite struct { - Platform string - SnId int32 - InviteSnId int32 - Ts int64 -} - -type BindNum struct { - SnId int32 - Num int32 + Snid int32 + Score int64 + Money int64 + Num int64 } type InviteLisArgs struct { @@ -141,6 +91,7 @@ type InviteListRet struct { List []*InviteInfo } +// GetInviteList 获取邀请人列表 func GetInviteList(platform string, snid int32) ([]*InviteInfo, error) { if rpcCli == nil { logger.Logger.Error("model.GetInviteList rpcCli == nil") @@ -159,3 +110,12 @@ func GetInviteList(platform string, snid int32) ([]*InviteInfo, error) { } return ret.List, nil } + +type RankInvite struct { + Platform string `bson:"-"` + SnId int32 + Num int64 + Score int64 + Ts int64 + Week int64 +} diff --git a/model/player.go b/model/player.go index d3b13bd..8b6533a 100644 --- a/model/player.go +++ b/model/player.go @@ -449,16 +449,19 @@ type PlayerData struct { LotteryCount int32 //抽奖次数 InitLotteryStatus bool //抽奖初始化状态 Delete int // 是否删除 - InviteCode string // 邀请码 - InviteSnId int32 // 邀请人 - InviteScore int64 // 邀请积分 - OtherCode string // 绑定的邀请码 WeekCardTime map[int32]int64 // 周卡结束时间 key:类型 value:结束时间 WeekCardAward map[int32]bool // 周卡奖励领取状态false-未领取,true已领取 ItemRecExpireTime int64 // 记牌器到期时间 RequestAddFriend map[int32]int64 // 玩家申请好友记录 IsTakeExpireItem bool // 是否领取 LastChannel string // 最后包类型 + ICode string // 邀请码 + IScore int64 // 邀请积分 + PSnId int32 // 邀请人 + PCode string // 绑定的邀请码 + INum int64 // 邀请人数 + IMoney int64 // 邀请人充值金额 + IScoreTs time.Time // 邀请积分更新时间 } // 七日签到数据 @@ -655,9 +658,9 @@ func ConvertPlayerDataToWebData(param *WebPlayerDataParam) *webapi.PlayerData { pdfw.VipExp = param.VipExp pdfw.ShopId = common.IntSliceToInt32(param.ShopID) pdfw.Delete = int64(param.Delete) - pdfw.InviteCode = param.InviteCode - pdfw.InviteSnId = param.InviteSnId - pdfw.InviteScore = param.InviteScore + pdfw.InviteCode = param.ICode + pdfw.InviteSnId = param.PSnId + pdfw.InviteScore = param.IScore pdfw.Channel = param.Channel pdfw.LastChannel = param.LastChannel for _, v := range param.Items { @@ -1061,6 +1064,7 @@ func GetPlayerDataBySnId(plt string, snid int32, correctData, createIfNotExist b ret.Pd.CreateTime = ret.Pd.CreateTime.Local() ret.Pd.LastLoginTime = ret.Pd.LastLoginTime.Local() ret.Pd.LastLogoutTime = ret.Pd.LastLogoutTime.Local() + ret.Pd.IScoreTs = ret.Pd.IScoreTs.Local() return ret.Pd, ret.IsNew } @@ -2685,23 +2689,6 @@ func GetPlayerInviteSnid(plt string, snid int32) (int32, error) { return ret, nil } -func GetInviteNum(plt string, snid int32) (int32, error) { - if rpcCli == nil { - return 0, errors.New("rpcCli is nil") - } - args := &PlayerIsExistBySnIdArgs{ - Plt: plt, - SnId: snid, - } - var ret int32 - err := rpcCli.CallWithTimeout("PlayerDataSvc.GetInviteNum", args, &ret, time.Second*30) - if err != nil { - logger.Logger.Error("model.GetPlayerInviteSnid error ", err) - return 0, err - } - return ret, nil -} - // 所有游戏都要加上当天统计数据 func (this *PlayerData) GetDaliyGameData(id int) (*PlayerGameStatics, *PlayerGameStatics) { gameId := strconv.Itoa(id) diff --git a/model/rank.go b/model/rank.go index 69841e2..95213d0 100644 --- a/model/rank.go +++ b/model/rank.go @@ -131,11 +131,11 @@ type PlayerRankInvite struct { type FindPlayerRankInviteListArgs struct { Platform string - RankType int32 // 邀请榜时间类型: 总榜 周榜 月榜 + RankType int32 // 邀请榜时间类型: 总榜 周榜 月榜 上周榜 } type FindPlayerRankInviteListReply struct { - RankType int32 // 邀请榜时间类型: 总榜 周榜 月榜 + RankType int32 // 邀请榜时间类型: 总榜 周榜 月榜 上周榜 List []*PlayerRankInvite } @@ -156,12 +156,12 @@ func FindPlayerRankInviteList(args *FindPlayerRankInviteListArgs) (*FindPlayerRa type FindPlayerRankInviteScoreArgs struct { Platform string - RankType int32 // 邀请榜时间类型: 总榜 周榜 月榜 + RankType int32 // 邀请榜时间类型: 总榜 周榜 月榜 上周榜 SnId int32 } type FindPlayerRankInviteScoreReply struct { - RankType int32 // 邀请榜时间类型: 总榜 周榜 月榜 + RankType int32 // 邀请榜时间类型: 总榜 周榜 月榜 上周榜 Data PlayerRankInvite } diff --git a/mq/keyconf.go b/mq/keyconf.go index 827af8b..7183046 100644 --- a/mq/keyconf.go +++ b/mq/keyconf.go @@ -5,7 +5,6 @@ const ( BackBankrupt = "log_bankrupt" BackClientLog = "log_clientlog_mysql" BackGameRecord = "evt_gamerec" - BackInviteScore = "evt_invitescore" BackLogin = "evt_login" BackOnline = "evt_online" BackPhoneLottery = "evt_phonelottery" diff --git a/protocol/rank/rank.pb.go b/protocol/rank/rank.pb.go index db71dcd..00a0c60 100644 --- a/protocol/rank/rank.pb.go +++ b/protocol/rank/rank.pb.go @@ -108,11 +108,12 @@ func (Rank) EnumDescriptor() ([]byte, []int) { type RankInvite int32 const ( - RankInvite_InviteType_None RankInvite = 0 - RankInvite_InviteType_Total RankInvite = 1 //总榜 - RankInvite_InviteType_Week RankInvite = 2 //周榜 - RankInvite_InviteType_Month RankInvite = 3 //月榜 - RankInvite_InviteType_Max RankInvite = 4 + RankInvite_InviteType_None RankInvite = 0 + RankInvite_InviteType_Total RankInvite = 1 //总榜 + RankInvite_InviteType_Week RankInvite = 2 //周榜 + RankInvite_InviteType_Month RankInvite = 3 //月榜 + RankInvite_InviteType_UpWeek RankInvite = 4 //上周榜 + RankInvite_InviteType_Max RankInvite = 5 ) // Enum value maps for RankInvite. @@ -122,14 +123,16 @@ var ( 1: "InviteType_Total", 2: "InviteType_Week", 3: "InviteType_Month", - 4: "InviteType_Max", + 4: "InviteType_UpWeek", + 5: "InviteType_Max", } RankInvite_value = map[string]int32{ - "InviteType_None": 0, - "InviteType_Total": 1, - "InviteType_Week": 2, - "InviteType_Month": 3, - "InviteType_Max": 4, + "InviteType_None": 0, + "InviteType_Total": 1, + "InviteType_Week": 2, + "InviteType_Month": 3, + "InviteType_UpWeek": 4, + "InviteType_Max": 5, } ) @@ -1730,17 +1733,18 @@ var file_rank_proto_rawDesc = []byte{ 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, + 0x4e, 0x2a, 0x8d, 0x01, 0x0a, 0x0a, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4e, + 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x5f, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x49, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x57, 0x65, 0x65, 0x6b, 0x10, 0x02, + 0x12, 0x14, 0x0a, 0x10, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4d, + 0x6f, 0x6e, 0x74, 0x68, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x5f, 0x55, 0x70, 0x57, 0x65, 0x65, 0x6b, 0x10, 0x04, 0x12, 0x12, 0x0a, + 0x0e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4d, 0x61, 0x78, 0x10, + 0x05, 0x42, 0x24, 0x5a, 0x22, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x2f, 0x72, 0x61, 0x6e, 0x6b, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/protocol/rank/rank.proto b/protocol/rank/rank.proto index eb0177a..f879d5d 100644 --- a/protocol/rank/rank.proto +++ b/protocol/rank/rank.proto @@ -110,7 +110,8 @@ enum RankInvite{ InviteType_Total = 1;//总榜 InviteType_Week = 2; //周榜 InviteType_Month = 3;//月榜 - InviteType_Max = 4; + InviteType_UpWeek = 4;//上周榜 + InviteType_Max = 5; } message GateTransmit { diff --git a/protocol/webapi/common.pb.go b/protocol/webapi/common.pb.go index a44dde2..4bd447a 100644 --- a/protocol/webapi/common.pb.go +++ b/protocol/webapi/common.pb.go @@ -5949,6 +5949,173 @@ func (x *ChannelSwitchConfig) GetOnChannelName() []string { return nil } +type RankAward struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Start int64 `protobuf:"varint,1,opt,name=Start,proto3" json:"Start,omitempty"` // 开始积分 + End int64 `protobuf:"varint,2,opt,name=End,proto3" json:"End,omitempty"` // 结束积分 + Num int64 `protobuf:"varint,3,opt,name=Num,proto3" json:"Num,omitempty"` // 奖励 +} + +func (x *RankAward) Reset() { + *x = RankAward{} + if protoimpl.UnsafeEnabled { + mi := &file_common_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RankAward) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RankAward) ProtoMessage() {} + +func (x *RankAward) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[58] + 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 RankAward.ProtoReflect.Descriptor instead. +func (*RankAward) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{58} +} + +func (x *RankAward) GetStart() int64 { + if x != nil { + return x.Start + } + return 0 +} + +func (x *RankAward) GetEnd() int64 { + if x != nil { + return x.End + } + return 0 +} + +func (x *RankAward) GetNum() int64 { + if x != nil { + return x.Num + } + return 0 +} + +// etcd /game/act_invite +type ActInviteConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` + BindScore int64 `protobuf:"varint,2,opt,name=BindScore,proto3" json:"BindScore,omitempty"` // 绑定积分 + RechargeScore int64 `protobuf:"varint,3,opt,name=RechargeScore,proto3" json:"RechargeScore,omitempty"` // 充值积分,一个玩家最多给上级贡献一次 + PayScore map[int64]int64 `protobuf:"bytes,4,rep,name=PayScore,proto3" json:"PayScore,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 充值积分;充值金额:获得积分 + Rates []int64 `protobuf:"varint,5,rep,packed,name=Rates,proto3" json:"Rates,omitempty"` // 返佣比例;多级按顺序给 + Awards1 []*RankAward `protobuf:"bytes,6,rep,name=Awards1,proto3" json:"Awards1,omitempty"` // 周榜奖励列表 + Awards2 []*RankAward `protobuf:"bytes,7,rep,name=Awards2,proto3" json:"Awards2,omitempty"` // 周榜奖励列表 + Awards3 []*RankAward `protobuf:"bytes,8,rep,name=Awards3,proto3" json:"Awards3,omitempty"` // 周榜奖励列表 +} + +func (x *ActInviteConfig) Reset() { + *x = ActInviteConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_common_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ActInviteConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ActInviteConfig) ProtoMessage() {} + +func (x *ActInviteConfig) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[59] + 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 ActInviteConfig.ProtoReflect.Descriptor instead. +func (*ActInviteConfig) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{59} +} + +func (x *ActInviteConfig) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *ActInviteConfig) GetBindScore() int64 { + if x != nil { + return x.BindScore + } + return 0 +} + +func (x *ActInviteConfig) GetRechargeScore() int64 { + if x != nil { + return x.RechargeScore + } + return 0 +} + +func (x *ActInviteConfig) GetPayScore() map[int64]int64 { + if x != nil { + return x.PayScore + } + return nil +} + +func (x *ActInviteConfig) GetRates() []int64 { + if x != nil { + return x.Rates + } + return nil +} + +func (x *ActInviteConfig) GetAwards1() []*RankAward { + if x != nil { + return x.Awards1 + } + return nil +} + +func (x *ActInviteConfig) GetAwards2() []*RankAward { + if x != nil { + return x.Awards2 + } + return nil +} + +func (x *ActInviteConfig) GetAwards3() []*RankAward { + if x != nil { + return x.Awards3 + } + return nil +} + var File_common_proto protoreflect.FileDescriptor var file_common_proto_rawDesc = []byte{ @@ -6908,9 +7075,39 @@ var file_common_proto_rawDesc = []byte{ 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, + 0x22, 0x45, 0x0a, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, + 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x03, 0x45, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x8e, 0x03, 0x0a, 0x0f, 0x41, 0x63, 0x74, 0x49, + 0x6e, 0x76, 0x69, 0x74, 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, 0x1c, 0x0a, 0x09, 0x42, 0x69, 0x6e, 0x64, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x42, 0x69, 0x6e, 0x64, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, + 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x52, 0x65, + 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x41, 0x0a, 0x08, 0x50, + 0x61, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x63, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x61, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x50, 0x61, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x52, 0x61, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x52, + 0x61, 0x74, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x07, 0x41, 0x77, 0x61, 0x72, 0x64, 0x73, 0x31, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x52, + 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x07, 0x41, 0x77, 0x61, 0x72, 0x64, 0x73, + 0x31, 0x12, 0x2b, 0x0a, 0x07, 0x41, 0x77, 0x61, 0x72, 0x64, 0x73, 0x32, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x61, 0x6e, 0x6b, + 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x07, 0x41, 0x77, 0x61, 0x72, 0x64, 0x73, 0x32, 0x12, 0x2b, + 0x0a, 0x07, 0x41, 0x77, 0x61, 0x72, 0x64, 0x73, 0x33, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x11, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, + 0x72, 0x64, 0x52, 0x07, 0x41, 0x77, 0x61, 0x72, 0x64, 0x73, 0x33, 0x1a, 0x3b, 0x0a, 0x0d, 0x50, + 0x61, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 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, 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 ( @@ -6925,7 +7122,7 @@ func file_common_proto_rawDescGZIP() []byte { return file_common_proto_rawDescData } -var file_common_proto_msgTypes = make([]protoimpl.MessageInfo, 63) +var file_common_proto_msgTypes = make([]protoimpl.MessageInfo, 66) var file_common_proto_goTypes = []interface{}{ (*MysqlDbSetting)(nil), // 0: webapi.MysqlDbSetting (*MongoDbSetting)(nil), // 1: webapi.MongoDbSetting @@ -6985,32 +7182,35 @@ var file_common_proto_goTypes = []interface{}{ (*WelfarePhoneLotteryStatus)(nil), // 55: webapi.WelfarePhoneLotteryStatus (*WelfareCollectConfig)(nil), // 56: webapi.WelfareCollectConfig (*ChannelSwitchConfig)(nil), // 57: webapi.ChannelSwitchConfig - nil, // 58: webapi.Platform.BindTelRewardEntry - nil, // 59: webapi.PlayerData.RankScoreEntry - nil, // 60: webapi.ItemShop.AwardEntry - nil, // 61: webapi.VIPcfg.AwardEntry - nil, // 62: webapi.VIPcfg.Privilege7Entry - (*server.DB_GameFree)(nil), // 63: server.DB_GameFree + (*RankAward)(nil), // 58: webapi.RankAward + (*ActInviteConfig)(nil), // 59: webapi.ActInviteConfig + nil, // 60: webapi.Platform.BindTelRewardEntry + nil, // 61: webapi.PlayerData.RankScoreEntry + nil, // 62: webapi.ItemShop.AwardEntry + nil, // 63: webapi.VIPcfg.AwardEntry + nil, // 64: webapi.VIPcfg.Privilege7Entry + nil, // 65: webapi.ActInviteConfig.PayScoreEntry + (*server.DB_GameFree)(nil), // 66: server.DB_GameFree } var file_common_proto_depIdxs = []int32{ 2, // 0: webapi.Platform.Leaderboard:type_name -> webapi.RankSwitch 3, // 1: webapi.Platform.ClubConfig:type_name -> webapi.ClubConfig 4, // 2: webapi.Platform.ThirdGameMerchant:type_name -> webapi.ThirdGame - 58, // 3: webapi.Platform.BindTelReward:type_name -> webapi.Platform.BindTelRewardEntry + 60, // 3: webapi.Platform.BindTelReward:type_name -> webapi.Platform.BindTelRewardEntry 6, // 4: webapi.GameConfigGlobal.GameStatus:type_name -> webapi.GameStatus - 63, // 5: webapi.GameFree.DbGameFree:type_name -> server.DB_GameFree + 66, // 5: webapi.GameFree.DbGameFree:type_name -> server.DB_GameFree 8, // 6: webapi.PlatformGameConfig.DbGameFrees:type_name -> webapi.GameFree 0, // 7: webapi.PlatformDbConfig.Mysql:type_name -> webapi.MysqlDbSetting 1, // 8: webapi.PlatformDbConfig.MongoDb:type_name -> webapi.MongoDbSetting 1, // 9: webapi.PlatformDbConfig.MongoDbLog:type_name -> webapi.MongoDbSetting - 63, // 10: webapi.GameConfigGroup.DbGameFree:type_name -> server.DB_GameFree - 59, // 11: webapi.PlayerData.RankScore:type_name -> webapi.PlayerData.RankScoreEntry + 66, // 10: webapi.GameConfigGroup.DbGameFree:type_name -> server.DB_GameFree + 61, // 11: webapi.PlayerData.RankScore:type_name -> webapi.PlayerData.RankScoreEntry 29, // 12: webapi.PlayerData.Items:type_name -> webapi.ItemInfo 20, // 13: webapi.OnlineReport.GameCount:type_name -> webapi.OnlineGameCnt 22, // 14: webapi.CommonNoticeList.List:type_name -> webapi.CommonNotice 25, // 15: webapi.ExchangeShop.ExType:type_name -> webapi.ExchangeType 24, // 16: webapi.ExchangeShopList.List:type_name -> webapi.ExchangeShop - 60, // 17: webapi.ItemShop.Award:type_name -> webapi.ItemShop.AwardEntry + 62, // 17: webapi.ItemShop.Award:type_name -> webapi.ItemShop.AwardEntry 27, // 18: webapi.ItemShopList.List:type_name -> webapi.ItemShop 29, // 19: webapi.MatchInfoAward.ItemId:type_name -> webapi.ItemInfo 30, // 20: webapi.GameMatchDate.Award:type_name -> webapi.MatchInfoAward @@ -7028,16 +7228,20 @@ var file_common_proto_depIdxs = []int32{ 35, // 32: webapi.WelfareSpree.Item:type_name -> webapi.WelfareDate 44, // 33: webapi.WelfareFirstPayDataList.List:type_name -> webapi.WelfareSpree 44, // 34: webapi.WelfareContinuousPayDataList.List:type_name -> webapi.WelfareSpree - 61, // 35: webapi.VIPcfg.Award:type_name -> webapi.VIPcfg.AwardEntry - 62, // 36: webapi.VIPcfg.Privilege7:type_name -> webapi.VIPcfg.Privilege7Entry + 63, // 35: webapi.VIPcfg.Award:type_name -> webapi.VIPcfg.AwardEntry + 64, // 36: webapi.VIPcfg.Privilege7:type_name -> webapi.VIPcfg.Privilege7Entry 47, // 37: webapi.VIPcfgDataList.List:type_name -> webapi.VIPcfg 35, // 38: webapi.ChessRankConfig.Item:type_name -> webapi.WelfareDate 51, // 39: webapi.ChessRankcfgData.Datas:type_name -> webapi.ChessRankConfig - 40, // [40:40] is the sub-list for method output_type - 40, // [40:40] is the sub-list for method input_type - 40, // [40:40] is the sub-list for extension type_name - 40, // [40:40] is the sub-list for extension extendee - 0, // [0:40] is the sub-list for field type_name + 65, // 40: webapi.ActInviteConfig.PayScore:type_name -> webapi.ActInviteConfig.PayScoreEntry + 58, // 41: webapi.ActInviteConfig.Awards1:type_name -> webapi.RankAward + 58, // 42: webapi.ActInviteConfig.Awards2:type_name -> webapi.RankAward + 58, // 43: webapi.ActInviteConfig.Awards3:type_name -> webapi.RankAward + 44, // [44:44] is the sub-list for method output_type + 44, // [44:44] is the sub-list for method input_type + 44, // [44:44] is the sub-list for extension type_name + 44, // [44:44] is the sub-list for extension extendee + 0, // [0:44] is the sub-list for field type_name } func init() { file_common_proto_init() } @@ -7742,6 +7946,30 @@ func file_common_proto_init() { return nil } } + file_common_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RankAward); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_common_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ActInviteConfig); 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{ @@ -7749,7 +7977,7 @@ func file_common_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_common_proto_rawDesc, NumEnums: 0, - NumMessages: 63, + NumMessages: 66, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/webapi/common.proto b/protocol/webapi/common.proto index 3a131bd..23bad89 100644 --- a/protocol/webapi/common.proto +++ b/protocol/webapi/common.proto @@ -658,4 +658,22 @@ message ChannelSwitchConfig{ int32 Tp = 1; // 开关类型 1.兑换 2.道具掉落 string Platform = 2; // 平台id repeated string OnChannelName = 3; // 开启渠道 +} + +message RankAward{ + int64 Start = 1; // 开始积分 + int64 End = 2; // 结束积分 + int64 Num = 3; // 奖励 +} + +// etcd /game/act_invite +message ActInviteConfig { + string Platform = 1; + int64 BindScore = 2; // 绑定积分 + int64 RechargeScore = 3; // 充值积分,一个玩家最多给上级贡献一次 + map PayScore = 4; // 充值积分;充值金额:获得积分 + repeated int64 Rates = 5; // 返佣比例;多级按顺序给 + repeated RankAward Awards1 = 6; // 周榜奖励列表 + repeated RankAward Awards2 = 7; // 周榜奖励列表 + repeated RankAward Awards3 = 8; // 周榜奖励列表 } \ No newline at end of file diff --git a/protocol/welfare/welfare.pb.go b/protocol/welfare/welfare.pb.go index 2bef3c9..4d7dbdb 100644 --- a/protocol/welfare/welfare.pb.go +++ b/protocol/welfare/welfare.pb.go @@ -1964,23 +1964,93 @@ func (*CSInviteInfo) Descriptor() ([]byte, []int) { return file_welfare_proto_rawDescGZIP(), []int{28} } +type RankAward struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Start int64 `protobuf:"varint,1,opt,name=Start,proto3" json:"Start,omitempty"` // 开始积分 + End int64 `protobuf:"varint,2,opt,name=End,proto3" json:"End,omitempty"` // 结束积分 + Num int64 `protobuf:"varint,3,opt,name=Num,proto3" json:"Num,omitempty"` // 奖励 +} + +func (x *RankAward) Reset() { + *x = RankAward{} + if protoimpl.UnsafeEnabled { + mi := &file_welfare_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RankAward) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RankAward) ProtoMessage() {} + +func (x *RankAward) ProtoReflect() protoreflect.Message { + mi := &file_welfare_proto_msgTypes[29] + 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 RankAward.ProtoReflect.Descriptor instead. +func (*RankAward) Descriptor() ([]byte, []int) { + return file_welfare_proto_rawDescGZIP(), []int{29} +} + +func (x *RankAward) GetStart() int64 { + if x != nil { + return x.Start + } + return 0 +} + +func (x *RankAward) GetEnd() int64 { + if x != nil { + return x.End + } + return 0 +} + +func (x *RankAward) GetNum() int64 { + if x != nil { + return x.Num + } + return 0 +} + // PACKET_SCInviteInfo type SCInviteInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Num int32 `protobuf:"varint,1,opt,name=Num,proto3" json:"Num,omitempty"` // 邀请人数 - Code string `protobuf:"bytes,2,opt,name=Code,proto3" json:"Code,omitempty"` // 邀请码 - InviteUrl string `protobuf:"bytes,3,opt,name=InviteUrl,proto3" json:"InviteUrl,omitempty"` // 邀请链接 - Score int64 `protobuf:"varint,4,opt,name=Score,proto3" json:"Score,omitempty"` // 邀请积分 - OtherCode string `protobuf:"bytes,5,opt,name=OtherCode,proto3" json:"OtherCode,omitempty"` // 已绑定的邀请码 + Num int32 `protobuf:"varint,1,opt,name=Num,proto3" json:"Num,omitempty"` // 邀请人数 + Code string `protobuf:"bytes,2,opt,name=Code,proto3" json:"Code,omitempty"` // 邀请码 + InviteUrl string `protobuf:"bytes,3,opt,name=InviteUrl,proto3" json:"InviteUrl,omitempty"` // 邀请链接 + Score int64 `protobuf:"varint,4,opt,name=Score,proto3" json:"Score,omitempty"` // 邀请积分 + OtherCode string `protobuf:"bytes,5,opt,name=OtherCode,proto3" json:"OtherCode,omitempty"` // 已绑定的邀请码 + BindScore int64 `protobuf:"varint,6,opt,name=BindScore,proto3" json:"BindScore,omitempty"` // 绑定积分 + RechargeScore int64 `protobuf:"varint,7,opt,name=RechargeScore,proto3" json:"RechargeScore,omitempty"` // 充值积分,一个玩家最多给上级贡献一次 + PayScore map[int64]int64 `protobuf:"bytes,8,rep,name=PayScore,proto3" json:"PayScore,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 充值积分;充值金额:获得积分 + Rates []int64 `protobuf:"varint,9,rep,packed,name=Rates,proto3" json:"Rates,omitempty"` // 返佣比例;多级按顺序给 + Awards1 []*RankAward `protobuf:"bytes,10,rep,name=Awards1,proto3" json:"Awards1,omitempty"` // 周榜奖励列表 + Awards2 []*RankAward `protobuf:"bytes,11,rep,name=Awards2,proto3" json:"Awards2,omitempty"` // 周榜奖励列表 + Awards3 []*RankAward `protobuf:"bytes,12,rep,name=Awards3,proto3" json:"Awards3,omitempty"` // 周榜奖励列表 } func (x *SCInviteInfo) Reset() { *x = SCInviteInfo{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[29] + mi := &file_welfare_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1993,7 +2063,7 @@ func (x *SCInviteInfo) String() string { func (*SCInviteInfo) ProtoMessage() {} func (x *SCInviteInfo) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[29] + mi := &file_welfare_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2006,7 +2076,7 @@ func (x *SCInviteInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use SCInviteInfo.ProtoReflect.Descriptor instead. func (*SCInviteInfo) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{29} + return file_welfare_proto_rawDescGZIP(), []int{30} } func (x *SCInviteInfo) GetNum() int32 { @@ -2044,6 +2114,55 @@ func (x *SCInviteInfo) GetOtherCode() string { return "" } +func (x *SCInviteInfo) GetBindScore() int64 { + if x != nil { + return x.BindScore + } + return 0 +} + +func (x *SCInviteInfo) GetRechargeScore() int64 { + if x != nil { + return x.RechargeScore + } + return 0 +} + +func (x *SCInviteInfo) GetPayScore() map[int64]int64 { + if x != nil { + return x.PayScore + } + return nil +} + +func (x *SCInviteInfo) GetRates() []int64 { + if x != nil { + return x.Rates + } + return nil +} + +func (x *SCInviteInfo) GetAwards1() []*RankAward { + if x != nil { + return x.Awards1 + } + return nil +} + +func (x *SCInviteInfo) GetAwards2() []*RankAward { + if x != nil { + return x.Awards2 + } + return nil +} + +func (x *SCInviteInfo) GetAwards3() []*RankAward { + if x != nil { + return x.Awards3 + } + return nil +} + // 绑定邀请人 // PACKET_CSBindInvite type CSBindInvite struct { @@ -2057,7 +2176,7 @@ type CSBindInvite struct { func (x *CSBindInvite) Reset() { *x = CSBindInvite{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[30] + mi := &file_welfare_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2070,7 +2189,7 @@ func (x *CSBindInvite) String() string { func (*CSBindInvite) ProtoMessage() {} func (x *CSBindInvite) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[30] + mi := &file_welfare_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2083,7 +2202,7 @@ func (x *CSBindInvite) ProtoReflect() protoreflect.Message { // Deprecated: Use CSBindInvite.ProtoReflect.Descriptor instead. func (*CSBindInvite) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{30} + return file_welfare_proto_rawDescGZIP(), []int{31} } func (x *CSBindInvite) GetCode() string { @@ -2105,7 +2224,7 @@ type SCBindInvite struct { func (x *SCBindInvite) Reset() { *x = SCBindInvite{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[31] + mi := &file_welfare_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2118,7 +2237,7 @@ func (x *SCBindInvite) String() string { func (*SCBindInvite) ProtoMessage() {} func (x *SCBindInvite) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[31] + mi := &file_welfare_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2131,7 +2250,7 @@ func (x *SCBindInvite) ProtoReflect() protoreflect.Message { // Deprecated: Use SCBindInvite.ProtoReflect.Descriptor instead. func (*SCBindInvite) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{31} + return file_welfare_proto_rawDescGZIP(), []int{32} } func (x *SCBindInvite) GetOpRetCode() OpResultCode { @@ -2152,7 +2271,7 @@ type CSPigbankGetInfo struct { func (x *CSPigbankGetInfo) Reset() { *x = CSPigbankGetInfo{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[32] + mi := &file_welfare_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2165,7 +2284,7 @@ func (x *CSPigbankGetInfo) String() string { func (*CSPigbankGetInfo) ProtoMessage() {} func (x *CSPigbankGetInfo) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[32] + mi := &file_welfare_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2178,7 +2297,7 @@ func (x *CSPigbankGetInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use CSPigbankGetInfo.ProtoReflect.Descriptor instead. func (*CSPigbankGetInfo) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{32} + return file_welfare_proto_rawDescGZIP(), []int{33} } // 存钱罐信息 @@ -2199,7 +2318,7 @@ type SCPigbankGetInfo struct { func (x *SCPigbankGetInfo) Reset() { *x = SCPigbankGetInfo{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[33] + mi := &file_welfare_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2212,7 +2331,7 @@ func (x *SCPigbankGetInfo) String() string { func (*SCPigbankGetInfo) ProtoMessage() {} func (x *SCPigbankGetInfo) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[33] + mi := &file_welfare_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2225,7 +2344,7 @@ func (x *SCPigbankGetInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use SCPigbankGetInfo.ProtoReflect.Descriptor instead. func (*SCPigbankGetInfo) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{33} + return file_welfare_proto_rawDescGZIP(), []int{34} } func (x *SCPigbankGetInfo) GetOpRetCode() OpResultCode { @@ -2281,7 +2400,7 @@ type CSPigbankTakeCoin struct { func (x *CSPigbankTakeCoin) Reset() { *x = CSPigbankTakeCoin{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[34] + mi := &file_welfare_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2294,7 +2413,7 @@ func (x *CSPigbankTakeCoin) String() string { func (*CSPigbankTakeCoin) ProtoMessage() {} func (x *CSPigbankTakeCoin) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[34] + mi := &file_welfare_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2307,7 +2426,7 @@ func (x *CSPigbankTakeCoin) ProtoReflect() protoreflect.Message { // Deprecated: Use CSPigbankTakeCoin.ProtoReflect.Descriptor instead. func (*CSPigbankTakeCoin) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{34} + return file_welfare_proto_rawDescGZIP(), []int{35} } // 存钱罐领取金币 @@ -2328,7 +2447,7 @@ type SCPigbankTakeCoin struct { func (x *SCPigbankTakeCoin) Reset() { *x = SCPigbankTakeCoin{} if protoimpl.UnsafeEnabled { - mi := &file_welfare_proto_msgTypes[35] + mi := &file_welfare_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2341,7 +2460,7 @@ func (x *SCPigbankTakeCoin) String() string { func (*SCPigbankTakeCoin) ProtoMessage() {} func (x *SCPigbankTakeCoin) ProtoReflect() protoreflect.Message { - mi := &file_welfare_proto_msgTypes[35] + mi := &file_welfare_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2354,7 +2473,7 @@ func (x *SCPigbankTakeCoin) ProtoReflect() protoreflect.Message { // Deprecated: Use SCPigbankTakeCoin.ProtoReflect.Descriptor instead. func (*SCPigbankTakeCoin) Descriptor() ([]byte, []int) { - return file_welfare_proto_rawDescGZIP(), []int{35} + return file_welfare_proto_rawDescGZIP(), []int{36} } func (x *SCPigbankTakeCoin) GetOpRetCode() OpResultCode { @@ -2580,135 +2699,161 @@ var file_welfare_proto_rawDesc = []byte{ 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x47, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x22, 0x0e, 0x0a, 0x0c, 0x43, 0x53, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x22, 0x86, 0x01, 0x0a, 0x0c, 0x53, 0x43, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, - 0x4e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x4f, - 0x74, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x4f, 0x74, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x22, 0x0a, 0x0c, 0x43, 0x53, 0x42, - 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x43, 0x0a, - 0x0c, 0x53, 0x43, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 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, 0x22, 0x12, 0x0a, 0x10, 0x43, 0x53, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x47, - 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xe9, 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, 0x12, 0x22, - 0x0a, 0x0c, 0x44, 0x61, 0x79, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x44, 0x61, 0x79, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, - 0x6e, 0x74, 0x22, 0x13, 0x0a, 0x11, 0x43, 0x53, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x54, - 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0xf0, 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, 0x12, 0x22, 0x0a, 0x0c, 0x44, 0x61, 0x79, 0x42, 0x75, 0x79, - 0x4d, 0x61, 0x78, 0x43, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x44, 0x61, - 0x79, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6e, 0x74, 0x2a, 0x86, 0x02, 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, 0x69, 0x6d, 0x65, 0x73, 0x10, 0x02, 0x12, 0x14, - 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x43, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x6f, 0x4d, 0x6f, - 0x72, 0x65, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, - 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x41, - 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x42, 0x69, 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, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x69, 0x67, - 0x62, 0x61, 0x6e, 0x6b, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x10, 0x0b, 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, 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, + 0x22, 0x45, 0x0a, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, + 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x03, 0x45, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0xe8, 0x03, 0x0a, 0x0c, 0x53, 0x43, 0x49, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, + 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x69, 0x6e, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x09, 0x42, 0x69, 0x6e, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x24, + 0x0a, 0x0d, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x50, 0x61, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, + 0x2e, 0x53, 0x43, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x61, + 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x50, 0x61, 0x79, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x61, 0x74, 0x65, 0x73, 0x18, 0x09, + 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x52, 0x61, 0x74, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x41, + 0x77, 0x61, 0x72, 0x64, 0x73, 0x31, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, + 0x65, 0x6c, 0x66, 0x61, 0x72, 0x65, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, + 0x52, 0x07, 0x41, 0x77, 0x61, 0x72, 0x64, 0x73, 0x31, 0x12, 0x2c, 0x0a, 0x07, 0x41, 0x77, 0x61, + 0x72, 0x64, 0x73, 0x32, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x65, 0x6c, + 0x66, 0x61, 0x72, 0x65, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x07, + 0x41, 0x77, 0x61, 0x72, 0x64, 0x73, 0x32, 0x12, 0x2c, 0x0a, 0x07, 0x41, 0x77, 0x61, 0x72, 0x64, + 0x73, 0x33, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x77, 0x65, 0x6c, 0x66, 0x61, + 0x72, 0x65, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x07, 0x41, 0x77, + 0x61, 0x72, 0x64, 0x73, 0x33, 0x1a, 0x3b, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x53, 0x63, 0x6f, 0x72, + 0x65, 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, 0x22, 0x0a, 0x0c, 0x43, 0x53, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x43, 0x0a, 0x0c, 0x53, 0x43, 0x42, 0x69, 0x6e, 0x64, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 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, 0x22, 0x12, 0x0a, 0x10, 0x43, + 0x53, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, + 0xe9, 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, 0x12, 0x22, 0x0a, 0x0c, 0x44, 0x61, 0x79, 0x42, 0x75, + 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x44, + 0x61, 0x79, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6e, 0x74, 0x22, 0x13, 0x0a, 0x11, 0x43, + 0x53, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, + 0x22, 0xf0, 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, 0x12, + 0x22, 0x0a, 0x0c, 0x44, 0x61, 0x79, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x44, 0x61, 0x79, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, + 0x43, 0x6e, 0x74, 0x2a, 0x86, 0x02, 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, 0x69, 0x6d, 0x65, 0x73, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, + 0x43, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x6f, 0x4d, 0x6f, 0x72, 0x65, 0x10, 0x03, 0x12, 0x10, 0x0a, + 0x0c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x04, 0x12, + 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x42, + 0x69, 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, 0x12, 0x1d, 0x0a, + 0x19, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x4f, 0x76, 0x65, + 0x72, 0x54, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x10, 0x0b, 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, + 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, } var ( @@ -2724,7 +2869,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, 38) var file_welfare_proto_goTypes = []interface{}{ (OpResultCode)(0), // 0: welfare.OpResultCode (SPacketID)(0), // 1: welfare.SPacketID @@ -2757,13 +2902,15 @@ var file_welfare_proto_goTypes = []interface{}{ (*CSWelfareRelief)(nil), // 28: welfare.CSWelfareRelief (*SCWelfareRelief)(nil), // 29: welfare.SCWelfareRelief (*CSInviteInfo)(nil), // 30: welfare.CSInviteInfo - (*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 + (*RankAward)(nil), // 31: welfare.RankAward + (*SCInviteInfo)(nil), // 32: welfare.SCInviteInfo + (*CSBindInvite)(nil), // 33: welfare.CSBindInvite + (*SCBindInvite)(nil), // 34: welfare.SCBindInvite + (*CSPigbankGetInfo)(nil), // 35: welfare.CSPigbankGetInfo + (*SCPigbankGetInfo)(nil), // 36: welfare.SCPigbankGetInfo + (*CSPigbankTakeCoin)(nil), // 37: welfare.CSPigbankTakeCoin + (*SCPigbankTakeCoin)(nil), // 38: welfare.SCPigbankTakeCoin + nil, // 39: welfare.SCInviteInfo.PayScoreEntry } var file_welfare_proto_depIdxs = []int32{ 0, // 0: welfare.SCGetReliefFund.OpRetCode:type_name -> welfare.OpResultCode @@ -2787,14 +2934,18 @@ var file_welfare_proto_depIdxs = []int32{ 0, // 18: welfare.SCWelfareContinuousPayData.OpRetCode:type_name -> welfare.OpResultCode 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 + 39, // 21: welfare.SCInviteInfo.PayScore:type_name -> welfare.SCInviteInfo.PayScoreEntry + 31, // 22: welfare.SCInviteInfo.Awards1:type_name -> welfare.RankAward + 31, // 23: welfare.SCInviteInfo.Awards2:type_name -> welfare.RankAward + 31, // 24: welfare.SCInviteInfo.Awards3:type_name -> welfare.RankAward + 0, // 25: welfare.SCBindInvite.OpRetCode:type_name -> welfare.OpResultCode + 0, // 26: welfare.SCPigbankGetInfo.OpRetCode:type_name -> welfare.OpResultCode + 0, // 27: welfare.SCPigbankTakeCoin.OpRetCode:type_name -> welfare.OpResultCode + 28, // [28:28] is the sub-list for method output_type + 28, // [28:28] is the sub-list for method input_type + 28, // [28:28] is the sub-list for extension type_name + 28, // [28:28] is the sub-list for extension extendee + 0, // [0:28] is the sub-list for field type_name } func init() { file_welfare_proto_init() } @@ -3152,7 +3303,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCInviteInfo); i { + switch v := v.(*RankAward); i { case 0: return &v.state case 1: @@ -3164,7 +3315,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSBindInvite); i { + switch v := v.(*SCInviteInfo); i { case 0: return &v.state case 1: @@ -3176,7 +3327,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCBindInvite); i { + switch v := v.(*CSBindInvite); i { case 0: return &v.state case 1: @@ -3188,7 +3339,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSPigbankGetInfo); i { + switch v := v.(*SCBindInvite); i { case 0: return &v.state case 1: @@ -3200,7 +3351,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCPigbankGetInfo); i { + switch v := v.(*CSPigbankGetInfo); i { case 0: return &v.state case 1: @@ -3212,7 +3363,7 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSPigbankTakeCoin); i { + switch v := v.(*SCPigbankGetInfo); i { case 0: return &v.state case 1: @@ -3224,6 +3375,18 @@ func file_welfare_proto_init() { } } file_welfare_proto_msgTypes[35].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[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCPigbankTakeCoin); i { case 0: return &v.state @@ -3242,7 +3405,7 @@ func file_welfare_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_welfare_proto_rawDesc, NumEnums: 2, - NumMessages: 36, + NumMessages: 38, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/welfare/welfare.proto b/protocol/welfare/welfare.proto index 0ac6416..23c6b1d 100644 --- a/protocol/welfare/welfare.proto +++ b/protocol/welfare/welfare.proto @@ -246,6 +246,13 @@ message SCWelfareRelief{ // 邀请信息 // PACKET_CSInviteInfo message CSInviteInfo{} + +message RankAward{ + int64 Start = 1; // 开始积分 + int64 End = 2; // 结束积分 + int64 Num = 3; // 奖励 +} + // PACKET_SCInviteInfo message SCInviteInfo{ int32 Num = 1; // 邀请人数 @@ -253,6 +260,13 @@ message SCInviteInfo{ string InviteUrl = 3; // 邀请链接 int64 Score = 4; // 邀请积分 string OtherCode = 5; // 已绑定的邀请码 + int64 BindScore = 6; // 绑定积分 + int64 RechargeScore = 7; // 充值积分,一个玩家最多给上级贡献一次 + map PayScore = 8; // 充值积分;充值金额:获得积分 + repeated int64 Rates = 9; // 返佣比例;多级按顺序给 + repeated RankAward Awards1 = 10; // 周榜奖励列表 + repeated RankAward Awards2 = 11; // 周榜奖励列表 + repeated RankAward Awards3 = 12; // 周榜奖励列表 } // 绑定邀请人 diff --git a/public b/public index 363a220..63d1713 160000 --- a/public +++ b/public @@ -1 +1 @@ -Subproject commit 363a22034898c87b42588d088a7838134d84dcb6 +Subproject commit 63d1713eb8595d4ad6334f88febbd0ca46bb67a1 diff --git a/worldsrv/action_player.go b/worldsrv/action_player.go index a8aaf0a..1c97def 100644 --- a/worldsrv/action_player.go +++ b/worldsrv/action_player.go @@ -2094,15 +2094,16 @@ func CSPlayerData(s *netlib.Session, packetid int, data interface{}, sid int64) } proto.SetDefaults(scPlayerData) common.SendToGate(sid, int(player_proto.PlayerPacketID_PACKET_SC_PLAYERDATA), scPlayerData, s) + logger.Logger.Tracef("SC_PLAYERDATA %v", scPlayerData) } + sid := PlayerMgrSington.EndPlayerLoading(cspl.GetAccId()) + if pd == nil { send(player_proto.OpResultCode_OPRC_Login_CreateFailed) return } - sid := PlayerMgrSington.EndPlayerLoading(cspl.GetAccId()) - var promoterID string var promoterCfg *PromoterConfig f := func() { diff --git a/worldsrv/action_welfare.go b/worldsrv/action_welfare.go index b01042a..f1b85a8 100644 --- a/worldsrv/action_welfare.go +++ b/worldsrv/action_welfare.go @@ -1,8 +1,9 @@ package main import ( - "encoding/base64" + "errors" "fmt" + "time" "mongo.games.com/goserver/core/basic" "mongo.games.com/goserver/core/logger" @@ -307,7 +308,7 @@ func CSInviteInfo(s *netlib.Session, packetid int, data interface{}, sid int64) } link := model.GameParamData.InviteUrl f := func() string { - return fmt.Sprintf("%s?user=%s", link, base64.StdEncoding.EncodeToString([]byte(fmt.Sprintf("%s|%d", p.Platform, p.SnId)))) + return fmt.Sprintf("%s?user=%s", link, p.ICode) } var res []byte @@ -330,12 +331,42 @@ func CSInviteInfo(s *netlib.Session, packetid int, data interface{}, sid int64) } ret := &welfare.SCInviteInfo{ - Num: p.InviteNum, - Code: p.InviteCode, + Num: int32(p.INum), + Code: p.ICode, InviteUrl: f(), - Score: p.InviteScore, - OtherCode: p.OtherCode, + Score: p.IScore, + OtherCode: p.PCode, } + + cfg := PlatformMgrSingleton.GetConfig(p.Platform).ActInviteConfig + if cfg != nil { + ret.BindScore = cfg.GetBindScore() + ret.RechargeScore = cfg.GetRechargeScore() + ret.PayScore = cfg.GetPayScore() + for _, v := range cfg.GetAwards1() { + ret.Awards1 = append(ret.Awards1, &welfare.RankAward{ + Start: v.GetStart(), + End: v.GetEnd(), + Num: v.GetNum(), + }) + } + for _, v := range cfg.GetAwards2() { + ret.Awards2 = append(ret.Awards2, &welfare.RankAward{ + Start: v.GetStart(), + End: v.GetEnd(), + Num: v.GetNum(), + }) + } + for _, v := range cfg.GetAwards3() { + ret.Awards3 = append(ret.Awards3, &welfare.RankAward{ + Start: v.GetStart(), + End: v.GetEnd(), + Num: v.GetNum(), + }) + } + ret.Rates = cfg.GetRates() + } + p.SendToClient(int(welfare.SPacketID_PACKET_SCInviteInfo), ret) logger.Logger.Tracef("SCInviteInfo %v", ret) })).Start() @@ -358,25 +389,20 @@ func CSBindInvite(s *netlib.Session, packetid int, data interface{}, sid int64) var inviteSnId int32 var err error + now := time.Now() + cfg := PlatformMgrSingleton.GetConfig(p.Platform).ActInviteConfig send := func() { p.SendToClient(int(welfare.SPacketID_PACKET_SCBindInvite), ret) logger.Logger.Tracef("SCBindInvite %v", ret) if ret.OpRetCode == welfare.OpResultCode_OPRC_Sucess { - // 更新绑定关系 - LogChannelSingleton.WriteLog(&model.BindInvite{ - Platform: p.Platform, - SnId: p.SnId, - InviteSnId: inviteSnId, - }) - + // 玩家自己的绑定任务 TaskSubjectSingleton.Touch(common.TaskTypeBindInviter, &TaskData{SnId: p.SnId, Num: 1}) - p.InviteTask(common.InviteScoreTypeLogin, 0, 1) } } - if p.InviteSnId != 0 { + if p.PSnId != 0 { ret.OpRetCode = welfare.OpResultCode_OPRC_AlreadyBind send() return nil @@ -393,43 +419,43 @@ func CSBindInvite(s *netlib.Session, packetid int, data interface{}, sid int64) return } - if inviteSnId == p.SnId { - ret.OpRetCode = welfare.OpResultCode_OPRC_BindSelf - send() - return - } - - pp := PlayerMgrSington.GetPlayerBySnId(inviteSnId) - if pp != nil { - if pp.InviteSnId == p.SnId { - ret.OpRetCode = welfare.OpResultCode_OPRC_MyInvite - send() - return - } - p.InviteSnId = pp.SnId - p.OtherCode = pp.InviteCode - ret.OpRetCode = welfare.OpResultCode_OPRC_Sucess - send() - return - } - - inviteSnId2 := int32(0) + // 3级父级不能是自己 var err error + tmpSnId := inviteSnId task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { - inviteSnId2, err = model.GetPlayerInviteSnid(p.Platform, inviteSnId) + // todo 优化查找顶级代理 + for i := 0; i < 10000; i++ { + if tmpSnId == p.SnId { + ret.OpRetCode = welfare.OpResultCode_OPRC_BindSelf + err = errors.New("bind error") + return nil + } + tmpSnId, err = model.GetPlayerInviteSnid(p.Platform, tmpSnId) + if err != nil { + ret.OpRetCode = welfare.OpResultCode_OPRC_Error + return nil + } + if tmpSnId == 0 { + break + } + } + SaveInviteScore(&model.InviteScore{ + Platform: p.Platform, + SnId: p.SnId, + InviteSnId: inviteSnId, + Tp: common.InviteScoreTypeBind, + Score: cfg.GetBindScore(), + Ts: now.Unix(), + Money: 0, + }) return nil }), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) { if err != nil { send() return } - if inviteSnId2 == p.SnId { - ret.OpRetCode = welfare.OpResultCode_OPRC_MyInvite - send() - return - } - p.InviteSnId = inviteSnId - p.OtherCode = msg.GetCode() + p.PSnId = inviteSnId + p.PCode = msg.GetCode() ret.OpRetCode = welfare.OpResultCode_OPRC_Sucess send() })).Start() diff --git a/worldsrv/bagmgr.go b/worldsrv/bagmgr.go index 394277a..f56e1e7 100644 --- a/worldsrv/bagmgr.go +++ b/worldsrv/bagmgr.go @@ -522,11 +522,11 @@ func (this *BagMgr) Shutdown() { //========================implement IPlayerLoad ============================== func (this *BagMgr) Load(platform string, snid int32, player any) *internal.PlayerLoadReplay { - data := model.GetBagInfo(snid, platform) + data, err := model.GetBagInfo(snid, platform) return &internal.PlayerLoadReplay{ Platform: platform, Snid: snid, - Err: nil, + Err: err, Data: data, } } diff --git a/worldsrv/etcd.go b/worldsrv/etcd.go index 53a4037..51faf23 100644 --- a/worldsrv/etcd.go +++ b/worldsrv/etcd.go @@ -66,6 +66,8 @@ func init() { etcd.Register(etcd.ETCDKEY_CHESSRANK_CFG, webapi.ChessRankcfgData{}, platformConfigEvent) // 手机积分 etcd.Register(etcd.ETCDKEY_ACT_PHONELOTTERY, webapi.WelfarePhoneLotteryStatus{}, platformConfigEvent) + // 邀请活动 + etcd.Register(etcd.ETCDKEY_ACT_Invite, webapi.ActInviteConfig{}, platformConfigEvent) } func platformConfigEvent(ctx context.Context, completeKey string, isInit bool, event *clientv3.Event, data interface{}) { @@ -195,7 +197,8 @@ func platformConfigEvent(ctx context.Context, completeKey string, isInit bool, e ChessRankMgrSington.UpdateChessRankConfig(config) case *webapi.WelfarePhoneLotteryStatus: WelfareMgrSington.UpdatePhoneLotteryStatus(config) - + case *webapi.ActInviteConfig: + PlatformMgrSingleton.GetConfig(config.Platform).ActInviteConfig = config default: logger.Logger.Errorf("etcd completeKey:%s, Not processed", completeKey) } diff --git a/worldsrv/invitecode.go b/worldsrv/invitecode.go index 74eb10f..971460c 100644 --- a/worldsrv/invitecode.go +++ b/worldsrv/invitecode.go @@ -1,124 +1,34 @@ package main import ( - "fmt" - - "mongo.games.com/goserver/core/basic" - "mongo.games.com/goserver/core/logger" - "mongo.games.com/goserver/core/task" + "time" "mongo.games.com/game/common" "mongo.games.com/game/model" - "mongo.games.com/game/worldsrv/internal" ) +// SaveInviteScore 保存玩家操作 +// 绑定,充值成功,充值;及产生的积分,充值金额 func SaveInviteScore(data *model.InviteScore) { if data == nil { return } - var err error - task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { - err = model.SaveInviteScore(data) - if err != nil { - logger.Logger.Errorf("SaveInviteScore error:%v", err) - return err - } - // 后台统计积分记录 - data.Ts /= 1000000000 // 后台需要秒 - LogChannelSingleton.WriteLog(data) - logger.Logger.Tracef("==> php InviteScore %+v", *data) - return nil - }), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) { - p := PlayerMgrSington.GetPlayerBySnId(data.InviteSnId) - if err == nil && p != nil { - if data.Score != 0 { - if data.Score < 0 { - if -data.Score > p.InviteScore { - data.Score = -p.InviteScore - } - } - p.InviteScore += data.Score - p.dirty = true - - // 更新邀请任务进度 - if data.Score > 0 { - TaskSubjectSingleton.Touch(common.TaskTypeInviteScore, &TaskData{ - SnId: p.SnId, - Num: data.Score, - }) - } - } - - if data.Money > 0 { - TaskSubjectSingleton.Touch(common.TaskTypeInviteRecharge, &TaskData{ - SnId: p.SnId, - Num: data.Money, - }) - } - } - })).StartByFixExecutor(fmt.Sprintf("invite_score_%v", data.InviteSnId)) + cfg := PlatformMgrSingleton.GetConfig(data.Platform).ActInviteConfig + data.Rate = cfg.GetRates() + LogChannelSingleton.WriteLog(&model.EvtInviteMsg{ + InviteScore: *data, + RechargeScore: cfg.GetRechargeScore(), + }) } -func GetInviteScore(platform string, snid int32) { - var n, z, money int64 - var err error - task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { - n, z, money, err = model.GetInviteScore(platform, snid) - if err != nil { - logger.Logger.Errorf("GetInviteScore error:%v", err) - return err - } - return nil - }), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) { - p := PlayerMgrSington.GetPlayerBySnId(snid) - if err == nil && p != nil { - p.InviteScore = n - p.dirty = true - - // 更新邀请任务进度 - p.ResetTaskN(common.TaskTypeInviteScore) - TaskSubjectSingleton.Touch(common.TaskTypeInviteScore, &TaskData{ - SnId: p.SnId, - Num: z, - }) - - p.ResetTaskN(common.TaskTypeInviteRecharge) - TaskSubjectSingleton.Touch(common.TaskTypeInviteRecharge, &TaskData{ - SnId: p.SnId, - Num: money, - }) - } - })).StartByFixExecutor(fmt.Sprintf("invite_score_%v", snid)) -} - -type InviteCode struct { - internal.BasePlayerLoader -} - -func (i *InviteCode) LoadAfter(platform string, snid int32) *internal.PlayerLoadReplay { - n, err := model.GetInviteNum(platform, snid) - return &internal.PlayerLoadReplay{ - Platform: platform, - Snid: snid, - Err: err, - Data: n, - } -} - -func (i *InviteCode) CallbackAfter(ret *internal.PlayerLoadReplay) { - if ret == nil { - return - } - p := PlayerMgrSington.GetPlayerBySnId(ret.Snid) - if p == nil { - return - } - p.InviteNum = ret.Data.(int32) - p.ResetTaskN(common.TaskTypeInviteNum) - TaskSubjectSingleton.Touch(common.TaskTypeInviteNum, &TaskData{SnId: p.SnId, Num: int64(p.InviteNum)}) - GetInviteScore(ret.Platform, ret.Snid) -} - -func init() { - internal.RegisterPlayerLoad(new(InviteCode)) +// CheckNewWeek 每周重置积分 +func CheckNewWeek(platform string, snid int32) { + LogChannelSingleton.WriteLog(&model.EvtInviteMsg{ + InviteScore: model.InviteScore{ + Platform: platform, + SnId: snid, + Tp: common.InviteScoreCheckWeek, + Ts: time.Now().Unix(), + }, + }) } diff --git a/worldsrv/logchannel.go b/worldsrv/logchannel.go index d1853b2..ceecdef 100644 --- a/worldsrv/logchannel.go +++ b/worldsrv/logchannel.go @@ -58,7 +58,6 @@ func init() { LogChannelSingleton.RegisterLogCName(model.MQRankPlayerCoin, &model.RankPlayerCoin{}) LogChannelSingleton.RegisterLogCName(mq.BackBankrupt, &model.BankruptLog{}) LogChannelSingleton.RegisterLogCName(mq.BackReliefund, &model.ReliefFundLog{}) - LogChannelSingleton.RegisterLogCName(model.EvtBindInvite, &model.BindInvite{}) - LogChannelSingleton.RegisterLogCName(mq.BackInviteScore, &model.InviteScore{}) + LogChannelSingleton.RegisterLogCName(model.EvtInvite, &model.EvtInviteMsg{}) LogChannelSingleton.RegisterLogCName(model.MQRankPlayerLevel, &model.PlayerLevelInfo{}) } diff --git a/worldsrv/mq_coinlog.go b/worldsrv/mq_coinlog.go index e78259f..01b9ec0 100644 --- a/worldsrv/mq_coinlog.go +++ b/worldsrv/mq_coinlog.go @@ -7,6 +7,7 @@ import ( "mongo.games.com/goserver/core/basic" "mongo.games.com/goserver/core/broker" "mongo.games.com/goserver/core/broker/rabbitmq" + "mongo.games.com/goserver/core/logger" "mongo.games.com/game/common" "mongo.games.com/game/model" @@ -41,31 +42,49 @@ func init() { return nil }, broker.Queue(model.TopicProbeCoinLogAck), rabbitmq.DurableQueue()) - // 绑定数量同步 - mq.RegisterSubscriber(model.AckBindNum, func(e broker.Event) error { + // 邀请数据同步 + mq.RegisterSubscriber(model.EvtInviteAck, func(e broker.Event) error { msg := e.Message() if msg != nil { defer func() { e.Ack() }() - var log model.BindNum + var log model.EvtInviteAckMsg err := json.Unmarshal(msg.Body, &log) if err != nil { return err } + logger.Logger.Tracef("EvtInviteAckMsg: %+v", log) + //通知主线程执行后续操作 core.CoreObject().SendCommand(basic.CommandWrapper(func(o *basic.Object) error { - player := PlayerMgrSington.GetPlayerBySnId(log.SnId) + player := PlayerMgrSington.GetPlayerBySnId(log.Snid) if player != nil { - player.InviteNum = log.Num + // 邀请数量 + player.INum = log.Num player.ResetTaskN(common.TaskTypeInviteNum) - TaskSubjectSingleton.Touch(common.TaskTypeInviteNum, &TaskData{SnId: player.SnId, Num: int64(player.InviteNum)}) + TaskSubjectSingleton.Touch(common.TaskTypeInviteNum, &TaskData{SnId: player.SnId, Num: player.INum}) + + // 邀请积分 + player.IScore = log.Score + player.ResetTaskN(common.TaskTypeInviteScore) + TaskSubjectSingleton.Touch(common.TaskTypeInviteScore, &TaskData{ + SnId: player.SnId, + Num: log.Score, + }) + // 充值金额 + player.IMoney = log.Money + player.ResetTaskN(common.TaskTypeInviteRecharge) + TaskSubjectSingleton.Touch(common.TaskTypeInviteRecharge, &TaskData{ + SnId: player.SnId, + Num: log.Money, + }) } return nil }), true) } return nil - }, broker.Queue(model.AckBindNum), rabbitmq.DurableQueue()) + }, broker.Queue(model.EvtInviteAck), rabbitmq.DurableQueue()) } diff --git a/worldsrv/player.go b/worldsrv/player.go index 315069d..ad3a894 100644 --- a/worldsrv/player.go +++ b/worldsrv/player.go @@ -146,7 +146,6 @@ type Player struct { // 最后玩的游戏id LastGameId int GameID []int32 // 最近三天玩的游戏 - InviteNum int32 // 邀请人数 ApplyList []int32 //玩家申请好友记录 } @@ -2222,8 +2221,6 @@ func (this *Player) OnDayTimer(login, continuous bool, t int) { for _, v := range srvdata.TaskMgr.GetActivityType(common.TaskActivityTypeEveryDay) { this.WelfData.Task[v.GetId()] = &model.TaskData{} } - this.WelfData.Task[common.TaskIDInvitePlayGame] = &model.TaskData{} - this.WelfData.Task[common.TaskIDInviteFirstLogin] = &model.TaskData{} } } //周卡数据更新 @@ -2312,6 +2309,8 @@ func (this *Player) OnWeekTimer() { } } // 重置周任务 + // 重置邀请积分 + CheckNewWeek(this.Platform, this.SnId) } func (this *Player) GetName() string { @@ -2452,10 +2451,10 @@ func (this *Player) SendDiffData() { pack.UpdateField += UpdateField_PhoneScore } // 邀请积分 - if this.diffData.InviteScore != this.InviteScore { + if this.diffData.InviteScore != this.IScore { dirty = true - pack.InviteScore = this.InviteScore - this.diffData.InviteScore = this.InviteScore + pack.InviteScore = this.IScore + this.diffData.InviteScore = this.IScore pack.UpdateField += UpdateField_InviteScore } //总充值金额 @@ -4372,97 +4371,38 @@ func (this *Player) PhoneLotteryTask(taskId int32, num int64) { } func (this *Player) InviteTask(scoreType int32, gameId int32, n int64) { - if this.InviteSnId == 0 { + if this.PSnId == 0 { return } - if this.WelfData == nil { - this.WelfData = model.NewWelfareData() - } - if this.WelfData.Task == nil { - this.WelfData.Task = make(map[int32]*model.TaskData) - } + cfg := PlatformMgrSingleton.GetConfig(this.Platform).ActInviteConfig switch scoreType { case common.InviteScoreTypeBind: - SaveInviteScore(&model.InviteScore{ - Platform: this.Platform, - SnId: this.SnId, - InviteSnId: this.InviteSnId, - Tp: scoreType, - Score: 5000, - Ts: time.Now().UnixNano(), - }) - case common.InviteScoreTypeLogin: - if this.WelfData.Task[common.TaskIDInviteFirstLogin] == nil { - this.WelfData.Task[common.TaskIDInviteFirstLogin] = &model.TaskData{} // 初始化任务数据 - } - if this.WelfData.Task[common.TaskIDInviteFirstLogin].Ts == 0 { - this.WelfData.Task[common.TaskIDInviteFirstLogin].Ts = time.Now().Unix() + case common.InviteScoreTypePay: + score, ok := cfg.GetPayScore()[n] + if ok { SaveInviteScore(&model.InviteScore{ Platform: this.Platform, SnId: this.SnId, - InviteSnId: this.InviteSnId, + InviteSnId: this.PSnId, Tp: scoreType, - Score: 1000, - Ts: time.Now().UnixNano(), + Score: score, + Ts: time.Now().Unix(), + Money: n, }) - } - - case common.InviteScoreTypePlayTimes: - if this.WelfData.Task[common.TaskIDInvitePlayGame] == nil { - this.WelfData.Task[common.TaskIDInvitePlayGame] = &model.TaskData{} // 初始化任务数据 - } - if this.WelfData.Task[common.TaskIDInvitePlayGame].Ts == 0 { - this.WelfData.Task[common.TaskIDInvitePlayGame].Ts = time.Now().Unix() + } else { SaveInviteScore(&model.InviteScore{ Platform: this.Platform, SnId: this.SnId, - InviteSnId: this.InviteSnId, - Tp: scoreType, - Score: 5000, - Ts: time.Now().UnixNano(), + InviteSnId: this.PSnId, + Tp: common.InviteScoreTypeRecharge, + Score: cfg.GetRechargeScore(), + Ts: time.Now().Unix(), + Money: n, }) } - - case common.InviteScoreTypeRecharge: - if this.WelfData.Task[common.TaskIDInviteRecharge] == nil { - this.WelfData.Task[common.TaskIDInviteRecharge] = &model.TaskData{} // 初始化任务数据 - } - this.WelfData.Task[common.TaskIDInviteRecharge].N += n - a := this.WelfData.Task[common.TaskIDInviteRecharge].N / 100 - this.WelfData.Task[common.TaskIDInviteRecharge].N %= 100 - SaveInviteScore(&model.InviteScore{ - Platform: this.Platform, - SnId: this.SnId, - InviteSnId: this.InviteSnId, - Tp: scoreType, - Score: a * common.InviteScoreRecharge, - Ts: time.Now().UnixNano(), - Money: n, - }) - - case common.InviteScoreTypeGameTimes: - score := 0 - switch { - case srvdata.GameFreeMgr.IsGameDif(gameId, common.GameDifTienlen): - score = 500 - case srvdata.GameFreeMgr.IsGameDif(gameId, common.GameDifThirteen): - score = 300 - case srvdata.GameFreeMgr.IsGameDif(gameId, common.GameDifRocket): - score = 30 - case srvdata.GameFreeMgr.IsGameDif(gameId, common.GameDifChess): - score = 100 - } - SaveInviteScore(&model.InviteScore{ - Platform: this.Platform, - SnId: this.SnId, - InviteSnId: this.InviteSnId, - Tp: scoreType, - Score: int64(score), - Ts: time.Now().UnixNano(), - }) } } diff --git a/worldsrv/taskmgr.go b/worldsrv/taskmgr.go index cc7ad77..13cd8ca 100644 --- a/worldsrv/taskmgr.go +++ b/worldsrv/taskmgr.go @@ -96,21 +96,18 @@ func (t *TaskHandle) TaskUpdate(id int, data any) { case common.TaskTypeWinTimes: // 赢游戏次数 case common.TaskTypePlayTimes: // 玩游戏次数 - p.InviteTask(common.InviteScoreTypePlayTimes, int32(info.GameID), num) - p.InviteTask(common.InviteScoreTypeGameTimes, int32(info.GameID), num) case common.TaskTypeRankMatchTimes: // 排位赛次数 case common.TaskTypePay: // 玩家充值 p.PhoneLotteryTask(common.TaskTypePay, num) - p.InviteTask(common.InviteScoreTypeRecharge, int32(info.GameID), num) + p.InviteTask(common.InviteScoreTypePay, int32(info.GameID), num) case common.TaskTypeWinOrLose: // 游戏输赢金币数量 p.PhoneLotteryTask(common.TaskTypeWinOrLose, num) case common.TaskTypeTienlenCount: //tienlen游戏场次 p.PhoneLotteryTask(common.TaskTypeTienlenCount, 1) case common.TaskTypeBindInviter: // 绑定邀请人数量 - p.InviteTask(common.InviteScoreTypeBind, 0, num) case common.TaskTypeWinCoin: // 赢取金币数量 @@ -123,7 +120,6 @@ func (t *TaskHandle) TaskUpdate(id int, data any) { case common.TaskTypeFirstLogin: //抽奖次数增加 p.PhoneLotteryTask(common.TaskTypeFirstLogin, 0) - p.InviteTask(common.InviteScoreTypeLogin, int32(info.GameID), num) p.CollectTask(common.TaskTypeFirstLogin, num) case common.TaskTypeInviteNum: diff --git a/worldsrv/trascate_webapi.go b/worldsrv/trascate_webapi.go index 96d40ec..8577669 100644 --- a/worldsrv/trascate_webapi.go +++ b/worldsrv/trascate_webapi.go @@ -2468,7 +2468,7 @@ func init() { if len(ret.List) > 0 { playerRankScore = ret.List[0] } - playerBagInfo = model.GetBagInfo(id, platform) + playerBagInfo, _ = model.GetBagInfo(id, platform) return data }), task.CompleteNotifyWrapper(func(data interface{}, t task.Task) { playerData, ok := data.(*model.PlayerData) @@ -2559,7 +2559,7 @@ func init() { for _, v := range ret.List { playerRankScore[v.SnId] = v //todo 优化 - items := model.GetBagInfo(v.SnId, msg.GetPlatform()) + items, _ := model.GetBagInfo(v.SnId, msg.GetPlatform()) playerItems[v.SnId] = items } diff --git a/xlsx/DB_GameItem.xlsx b/xlsx/DB_GameItem.xlsx index fcc533a4a70e4c60021873435c620efdabb5ded3..928c317196bf6f99edc2ceea2a1c6fe118300ab5 100644 GIT binary patch delta 14320 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 SX2?MVpdKwuczBJc6Z}8!Y0Mn} delta 13752 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 YWCa6Q*-`MZ!f|j};W)dO+#jL;0bEdGZ2$lO diff --git a/xlsx/DB_Task.xlsx b/xlsx/DB_Task.xlsx index 0008809d6bf38f585077ab4ffb8652707e8ee01b..466a32be8781572f748f0b8df58110eb931ab901 100644 GIT binary patch delta 8395 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 pQv(1NNdN%lpBs_a|1L-Q7 Date: Tue, 25 Jun 2024 18:42:42 +0800 Subject: [PATCH 09/49] =?UTF-8?q?=E9=92=BB=E7=9F=B3=E5=AD=98=E9=92=B1?= =?UTF-8?q?=E7=BD=90=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/DB_Pigbank_Prop.dat | 5 +++-- data/DB_Pigbank_Prop.json | 6 ++++-- data/DB_PropExchange.dat | Bin 384 -> 384 bytes data/DB_Task.dat | Bin 2161 -> 2161 bytes worldsrv/taskmgr.go | 7 ++++++- worldsrv/welfmgr.go | 26 +++++++++++++++++++++++--- xlsx/DB_Pigbank_Prop.xlsx | Bin 13793 -> 13751 bytes 7 files changed, 36 insertions(+), 8 deletions(-) diff --git a/data/DB_Pigbank_Prop.dat b/data/DB_Pigbank_Prop.dat index c071c30..264bbdf 100644 --- a/data/DB_Pigbank_Prop.dat +++ b/data/DB_Pigbank_Prop.dat @@ -3,6 +3,7 @@  LoseCoinRate  DayBuyMaxCnt -WinCoinRateDiamond -LoseCoinRateDiamond +WinCoinRateDiamond +LoseCoinRateDiamond + DayBuyMaxCntDiamond \ No newline at end of file diff --git a/data/DB_Pigbank_Prop.json b/data/DB_Pigbank_Prop.json index 25da528..0d31012 100644 --- a/data/DB_Pigbank_Prop.json +++ b/data/DB_Pigbank_Prop.json @@ -17,11 +17,13 @@ }, { "Id": 4, - "PorpName": "WinCoinRateDiamond" + "PorpName": "WinCoinRateDiamond", + "PropValue": 5 }, { "Id": 5, - "PorpName": "LoseCoinRateDiamond" + "PorpName": "LoseCoinRateDiamond", + "PropValue": 10 }, { "Id": 6, diff --git a/data/DB_PropExchange.dat b/data/DB_PropExchange.dat index 0a0ae963741e23ec0945e1dc13e3da82d9dc8fed..26840cdc899aae8ab88f18171a33b3b83d002d36 100644 GIT binary patch literal 384 zcmd-w<6snElw#w!-o^~3FGJ}oQ2HvAz6PR|I5-yevI!h$vE|a^U;?YZ0hPZArEfv$ z+i2>;IUwf4?1AY+Q4e$ny1g)SVeW#sgA?qIhP97axMDe2zz)Hx5NIGSi|#-jif$p; SflBNgi+~>e!py}$TL=JVqC7PK literal 384 zcmd-w<6snElw#w!+{O&1uR!UmQ2H8_z7C?5I5-yevI!h$vE|a^U;?YZ0hPZArEfv$ z+i2>;IUwf4>;anxv=^6tT<(CF%L#Tz!`eqIT(KN1V28jQjBYTBgRpoM=0TVT?tmT6 P&anvS(J#zg477y+WI{YO diff --git a/data/DB_Task.dat b/data/DB_Task.dat index 6abcc6554a4d081ec83897ebd3f3d51da647e9fb..bfc53afca6126d0c603067ac7cb47b0950616e6e 100644 GIT binary patch delta 385 zcmew;@KHd4ONoO~fKh@`fl-6efYFMBV_`3wz=bwuD>jZLKo;vnh1r4-!3Di+P(hK6 zXEGRJqKD*wq8Hnk1z0A#G8qU$*jzA!mikO?W11nv2{!h?w2e$a#fyOEa!od1PPBxu znW2gwEEjTMZS1kZr1=7tr`4n?9&?*oc=4PPtCfl)m zo*cv?#<}?wqX0k92$so(EHaaGSou*L3o)UGH6Duze^^&de!(K5r~>v9E6@yf4KAPy zFzvd{)~yKj3)KAwT5P?T7(qU`1`G~mklxAj*(4^!t9C0f*a3dFbcA9 zTx??&V1ddlI3zdOmB~O5s&c6hP%lWHYjPXY3?Vj-ML_*rR-9mS4ous~G}(YT(GsHg z!Ezy>Vvqu62SzS6jwyZu!V;_s+!_rRZXf=_1a<~U7Um3)Ri~JfCvRaFoNUMPSstR7 z3F?povv`1}D06In#VEiJG=^nzA&bo999DjygV9atVT}iy@`rU5)D#h@DGi-fKvPt} zUSI{9!alixQEc*Uw(iMS7zG5myqFk4F1-fypfXtYA&bQ1`RwLUJCNKm`8j(R0IB0# A0ssI2 diff --git a/worldsrv/taskmgr.go b/worldsrv/taskmgr.go index cc7ad77..c46cd04 100644 --- a/worldsrv/taskmgr.go +++ b/worldsrv/taskmgr.go @@ -107,13 +107,18 @@ func (t *TaskHandle) TaskUpdate(id int, data any) { case common.TaskTypeWinOrLose: // 游戏输赢金币数量 p.PhoneLotteryTask(common.TaskTypeWinOrLose, num) + if !p.IsRob { + WelfareMgrSington.UpdateDiamondBankData(p, num, false) + } case common.TaskTypeTienlenCount: //tienlen游戏场次 p.PhoneLotteryTask(common.TaskTypeTienlenCount, 1) case common.TaskTypeBindInviter: // 绑定邀请人数量 p.InviteTask(common.InviteScoreTypeBind, 0, num) case common.TaskTypeWinCoin: // 赢取金币数量 - + if !p.IsRob { + WelfareMgrSington.UpdateDiamondBankData(p, num, true) + } case common.TaskTypeTienlenWinTimes: // tienlen游戏赢取次数 case common.TaskTypeActivityScore: // 活跃积分数量 diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index dcbf424..2289a17 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -1897,9 +1897,29 @@ func (this *WelfareMgr) DiamondBankTakeCoin(p *Player) { } } -// 更新数据 -func (this *WelfareMgr) UpdateDiamondBankData(p *Player) { - +// 更新钻石存储罐数据 +func (this *WelfareMgr) UpdateDiamondBankData(p *Player, coinNum int64, isWin bool) { + logger.Logger.Trace("更新钻石存储罐数据!!!!!!!!!!") + if p.WelfData.DiamondBank == nil { + p.WelfData.DiamondBank = &model.DiamondBankData{} + } + fGetPropValue := func(propName string) int32 { + pool := srvdata.PBDB_Pigbank_PropMgr.Datas.GetArr() + for _, PropItem := range pool { + if PropItem.PorpName == propName { + return PropItem.PropValue + } + } + return 0 + } + WinCoinRate := fGetPropValue("WinCoinRateDiamond") + LoseCoinRate := fGetPropValue("LoseCoinRateDiamond") + if isWin { + p.WelfData.DiamondBank.BankDiamond += float64(coinNum) * float64(WinCoinRate/10000000) + } else { + p.WelfData.DiamondBank.BankDiamond += float64(coinNum) * float64(LoseCoinRate/10000000) + } + logger.Logger.Tracef("更新钻石存储罐数据 snid = %d,coinNum = %d,isWin = %s,当前钻石存储罐钻石数量:%f", p.SnId, coinNum, isWin, p.WelfData.DiamondBank.BankDiamond) } func (this *WelfareMgr) Update() { diff --git a/xlsx/DB_Pigbank_Prop.xlsx b/xlsx/DB_Pigbank_Prop.xlsx index 4dffb7ee52befd2ba5aeb73220e6f3ea8d23f2a5..8b44f8e42d80f5566751d97fcf89901803782a89 100644 GIT binary patch delta 2276 zcmVuII%fkc{>h$PVj@Q4ThrccjkJ)q%J%Ioupv6*V|&j1^_-h#i=C>1 zPcT;2I!AFtPym|OLh4P9p37x8M}c)r3s%({aL)=1VcV8}1;nU4SavjET8DG&Pp@h73@Bf(Zq7E18km6rrauJeQm|T`Ip=nCV z)r5Ei6d6AG9>o_>O9KQH000080EbTEK$iIF+a>`301lHp111N_z0HpxZtKBlnS+ybU{zdSWe?Vj()wPyC?K@U!NL1+ z388BaQq?XAu?|URtg3w|?H-!0>l;~_W>QjnND!LCW^&%Bc>KbF58m?V|B7r)bGCE4 z?P(0UMfM3lMV<0}n}gSi@~WbU#$;~8c#IJ)W0ta;7%dPYCEoxx>jNJ zyT|*0ZKuYUQ$MsjX#@J`m&5q%ye$Z#B*r8OH%#!H5thO4FoPF|f7+xMn_Is7F`lO- zCVZAI1ZOi!@tSdgv8ZU3mZD0j? zhAIk~(Syo%71cI?XexyTf3ua1>CoQtpTf(vXpw8j=Y--zu=IGz%^AN+W?C6l*eFv~ z9H^aVIgjUqJge*s=mW7TpOok+mkVEkCmk;rxrBii-eM!=<1d;wX>zH=_~E2gf-=N!!@9|m-{DD8vr+Xc-$cYkBwODLEC?L0gV ze7$6@S(Xc}T84uJ;y(Xrgl!FqfCHc0U!&leGk<{{D-a(d8LaM?lSRCT;@QDtb?%W2 zJ=Vb^0plLzs&|P&q-O)}7umo*VsqUCdA_T2kDH;#I(Q7&-1aU5HXwYF4eXwcQ)QI% zsHV=U_7NTA5l1jUn~UXz(o~c z?^QU~G8Ce-9Yr|NI`l$t`9URcVPE9nF7&Pvqh?zL+n^H3sBUF(L3kNIE=8EOVRSTN zLw^Xpk+oqZW;`y4XgZ%?Pj0(ENUFnN{lJ2o!$r8^819MgZHtcx!qAySI2(mhwtK<6 zb$dRO-8Hx<8q&}58)h9wxzZA!3;ru1<&Dx-3u)by4PcKR#oZSDXU+0Evv3G-A_>s0 zF&ypz002po=_(_C9vlE>P^ zAD?rt8YAaSjm;Hn1xhtiK#VbnJGAbw^d2{zJEn3CM0edCb|oU z%5#zOxk`5xm$oI*ykr*Sn?lqEN7G!CeA7BYtgi1_1-cIDwlguQC+^1Ot;n0~M3oGAajK1ONbdY%i0& zG#ryCGY$a|lQ%Oq0XLIwGe-hjC6k~f7L(00Dgh6Z_%k{IM3XZ#HUeuClduyNlYlf3 z8_=#X9PR-C07(P@01p5F000000096X0001~ldCj50eq9_G$9-%yH4<{X y000000000103ZMW0H_3$u{9NwIyEl>M+lR#H5HS9H7@~4ldv@_1`aU*0000#p(Y~$ delta 2342 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 Date: Wed, 26 Jun 2024 09:29:12 +0800 Subject: [PATCH 10/49] =?UTF-8?q?=E5=A4=87=E6=B3=A8=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/constant.go | 2 +- worldsrv/welfmgr.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/common/constant.go b/common/constant.go index 21442dc..61e7f99 100644 --- a/common/constant.go +++ b/common/constant.go @@ -272,7 +272,7 @@ const ( GainWayBuyItem = 86 // 商城购买道具 GainWayBuyWeekCard = 87 // 商城购买周卡 GainWayVipBuyCoin = 88 // vip商城购买金币 - GainWaySign7 = 89 // 连续签到7天进阶消耗 + GainWaySign7 = 89 // 累计签到进阶奖励 GainWay_PigrankGainDiamond = 90 //存钱罐打开获取钻石 ) diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index 2289a17..df84185 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -858,7 +858,7 @@ func (this *WelfareMgr) GetAddUp2Award(p *Player, day int32) { items = append(items, item) } } - BagMgrSingleton.AddItems(p, items, 0, common.GainWaySign7, "system", "累计签到进阶奖励钻石消耗", 0, 0, false) + BagMgrSingleton.AddItems(p, items, 0, common.GainWaySign7, "system", "累计签到进阶奖励获得", 0, 0, false) } //通知客户端 this.UpdateAddUp2Date(p, Num, day, EndTime) From 9ed4f708bcea41334c65424dfaca8415273e1ac0 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Wed, 26 Jun 2024 09:38:59 +0800 Subject: [PATCH 11/49] =?UTF-8?q?=E5=A4=87=E6=B3=A8=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/constant.go | 5 +++-- worldsrv/welfmgr.go | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/common/constant.go b/common/constant.go index 61e7f99..df114fd 100644 --- a/common/constant.go +++ b/common/constant.go @@ -272,8 +272,9 @@ const ( GainWayBuyItem = 86 // 商城购买道具 GainWayBuyWeekCard = 87 // 商城购买周卡 GainWayVipBuyCoin = 88 // vip商城购买金币 - GainWaySign7 = 89 // 累计签到进阶奖励 - GainWay_PigrankGainDiamond = 90 //存钱罐打开获取钻石 + GainWaySign7Con = 89 // 累计签到进阶奖励消耗 + GainWaySign7Add = 90 // 累计签到进阶奖励获得 + GainWay_PigrankGainDiamond = 91 //存钱罐打开获取钻石 ) // 后台选择 金币变化类型 的充值 类型id号起始 diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index df84185..4ff436f 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -837,7 +837,7 @@ func (this *WelfareMgr) GetAddUp2Award(p *Player, day int32) { if p.Diamond < int64(addUpDate2Num) { return } - p.AddDiamond(int64(-addUpDate2Num), 0, common.GainWaySign7, "system", "累计签到进阶奖励钻石消耗") + p.AddDiamond(int64(-addUpDate2Num), 0, common.GainWaySign7Con, "system", "累计签到进阶奖励钻石消耗") logger.Logger.Trace("累计签到进阶奖励,扣除钻石uid = ", p.SnId) EndTime = -1 } @@ -858,7 +858,7 @@ func (this *WelfareMgr) GetAddUp2Award(p *Player, day int32) { items = append(items, item) } } - BagMgrSingleton.AddItems(p, items, 0, common.GainWaySign7, "system", "累计签到进阶奖励获得", 0, 0, false) + BagMgrSingleton.AddItems(p, items, 0, common.GainWaySign7Add, "system", "累计签到进阶奖励获得", 0, 0, false) } //通知客户端 this.UpdateAddUp2Date(p, Num, day, EndTime) From 42efa82c2fd58cbc12d9403ab8d9f11eb111916b Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Wed, 26 Jun 2024 11:05:44 +0800 Subject: [PATCH 12/49] update public --- public | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public b/public index 1e16c8c..45e11d5 160000 --- a/public +++ b/public @@ -1 +1 @@ -Subproject commit 1e16c8ced958d860a805f401045803a9c928d5f6 +Subproject commit 45e11d554d0d1093e3335774bf1d5e027f15d234 From fdd5e3889e22bc99021eaf58e2a8276ffeb391ac Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Wed, 26 Jun 2024 11:21:54 +0800 Subject: [PATCH 13/49] =?UTF-8?q?=E8=83=8C=E5=8C=85=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E5=85=91=E6=8D=A2=E5=8A=9F=E8=83=BD=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/constant.go | 7 +- model/message.go | 1 + protocol/bag/bag.pb.go | 126 ++++++++++++++------------ protocol/bag/bag.proto | 4 +- protocol/webapi/webapi.pb.go | 165 ++++++++++++++++++----------------- protocol/webapi/webapi.proto | 1 + worldsrv/action_bag.go | 17 +++- worldsrv/bagmgr.go | 80 ++++++++++++++++- worldsrv/tournament.go | 1 + worldsrv/welfmgr.go | 2 +- 10 files changed, 262 insertions(+), 142 deletions(-) diff --git a/common/constant.go b/common/constant.go index df114fd..30f2f41 100644 --- a/common/constant.go +++ b/common/constant.go @@ -273,8 +273,9 @@ const ( GainWayBuyWeekCard = 87 // 商城购买周卡 GainWayVipBuyCoin = 88 // vip商城购买金币 GainWaySign7Con = 89 // 累计签到进阶奖励消耗 - GainWaySign7Add = 90 // 累计签到进阶奖励获得 - GainWay_PigrankGainDiamond = 91 //存钱罐打开获取钻石 + GainWay_PigrankGainDiamond = 90 //存钱罐打开获取钻石 + GainWaySign7Add = 91 // 累计签到进阶奖励获得 + GainWayItemChange = 92 //背包内使用道具兑换话费 ) // 后台选择 金币变化类型 的充值 类型id号起始 @@ -605,6 +606,8 @@ const ( ItemTypeShopScore = 11 //积分 ItemTypeInteract = 12 // 互动表情 ItemTypeExpireTime = 15 // 时效类道具 + ItemTypeObjective = 16 // 目标类道具 + ItemTypeChange = 17 // 兑换话费 ) func GetKeyNoviceGameId(gameId int) string { diff --git a/model/message.go b/model/message.go index b56eaa0..8894614 100644 --- a/model/message.go +++ b/model/message.go @@ -37,6 +37,7 @@ const ( MSGTYPE_MATCH_SHOPERETURN //积分商城兑换退还 MSGTYPE_ITEM //获取道具 MSGTYPE_RANK_REWARD //排行榜奖励 + MSGTYPE_ITEM_CHANGE //背包使用兑换 ) const ( diff --git a/protocol/bag/bag.pb.go b/protocol/bag/bag.pb.go index 42b924d..c61e487 100644 --- a/protocol/bag/bag.pb.go +++ b/protocol/bag/bag.pb.go @@ -31,6 +31,7 @@ const ( OpResultCode_OPRC_DbErr OpResultCode = 4 //存储出错 OpResultCode_OPRC_BagFull OpResultCode = 5 //背包已满 OpResultCode_OPRC_NotPlayer OpResultCode = 6 //找不到玩家 + OpResultCode_OPRC_NotChange OpResultCode = 7 //不可兑换 ) // Enum value maps for OpResultCode. @@ -43,6 +44,7 @@ var ( 4: "OPRC_DbErr", 5: "OPRC_BagFull", 6: "OPRC_NotPlayer", + 7: "OPRC_NotChange", } OpResultCode_value = map[string]int32{ "OPRC_Sucess": 0, @@ -52,6 +54,7 @@ var ( "OPRC_DbErr": 4, "OPRC_BagFull": 5, "OPRC_NotPlayer": 6, + "OPRC_NotChange": 7, } ) @@ -351,10 +354,11 @@ type CSUpBagInfo struct { ItemId int32 `protobuf:"varint,1,opt,name=ItemId,proto3" json:"ItemId,omitempty"` //物品ID ItemNum int32 `protobuf:"varint,2,opt,name=ItemNum,proto3" json:"ItemNum,omitempty"` //物品数量 - Opt int32 `protobuf:"varint,3,opt,name=Opt,proto3" json:"Opt,omitempty"` //操作 0.使用 1.赠送 2.出售 + Opt int32 `protobuf:"varint,3,opt,name=Opt,proto3" json:"Opt,omitempty"` //操作 0.使用 1.赠送 2.出售 3.兑换 AcceptSnId int32 `protobuf:"varint,4,opt,name=AcceptSnId,proto3" json:"AcceptSnId,omitempty"` //被赠送玩家id NowEffect int32 `protobuf:"varint,5,opt,name=NowEffect,proto3" json:"NowEffect,omitempty"` //0.竖版 1.横版 ShowId int64 `protobuf:"varint,6,opt,name=ShowId,proto3" json:"ShowId,omitempty"` // 邮件显示位置 0 所有大厅都显示 1 主大厅显示 2 len大厅显示 4 fish大厅显示 + CardType int32 `protobuf:"varint,7,opt,name=CardType,proto3" json:"CardType,omitempty"` //类型 } func (x *CSUpBagInfo) Reset() { @@ -431,6 +435,13 @@ func (x *CSUpBagInfo) GetShowId() int64 { return 0 } +func (x *CSUpBagInfo) GetCardType() int32 { + if x != nil { + return x.CardType + } + return 0 +} + //PACKET_ALL_BAG_USE type SCUpBagInfo struct { state protoimpl.MessageState @@ -922,7 +933,7 @@ var file_bag_proto_rawDesc = []byte{ 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x67, 0x4e, 0x75, 0x6d, 0x4d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x09, 0x42, 0x61, 0x67, 0x4e, 0x75, 0x6d, 0x4d, 0x61, 0x78, 0x22, 0xa7, 0x01, 0x0a, 0x0b, 0x43, + 0x09, 0x42, 0x61, 0x67, 0x4e, 0x75, 0x6d, 0x4d, 0x61, 0x78, 0x22, 0xc3, 0x01, 0x0a, 0x0b, 0x43, 0x53, 0x55, 0x70, 0x42, 0x61, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, @@ -933,61 +944,64 @@ var file_bag_proto_rawDesc = []byte{ 0x0a, 0x09, 0x4e, 0x6f, 0x77, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4e, 0x6f, 0x77, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x68, 0x6f, 0x77, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x53, 0x68, - 0x6f, 0x77, 0x49, 0x64, 0x22, 0xcb, 0x01, 0x0a, 0x0b, 0x53, 0x43, 0x55, 0x70, 0x42, 0x61, 0x67, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2b, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x4f, 0x70, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x4e, 0x6f, 0x77, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4e, 0x6f, 0x77, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, - 0x1e, 0x0a, 0x0a, 0x4e, 0x6f, 0x77, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0a, 0x4e, 0x6f, 0x77, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x12, - 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, - 0x6f, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x23, 0x0a, - 0x05, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x62, - 0x61, 0x67, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x6e, 0x66, - 0x6f, 0x73, 0x22, 0x34, 0x0a, 0x0d, 0x53, 0x43, 0x53, 0x79, 0x6e, 0x63, 0x42, 0x61, 0x67, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x05, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0x3c, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x70, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, - 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x49, - 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x22, 0x20, 0x0a, 0x0e, 0x43, 0x53, 0x50, 0x72, 0x6f, 0x70, - 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x93, 0x01, 0x0a, 0x0e, 0x53, 0x43, 0x50, - 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x52, - 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x62, - 0x61, 0x67, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, - 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x50, 0x72, - 0x6f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2f, 0x0a, - 0x0b, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x0b, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x78, - 0x0a, 0x0c, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x2b, - 0x0a, 0x09, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x09, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2b, 0x0a, 0x09, 0x47, + 0x6f, 0x77, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, + 0x22, 0xcb, 0x01, 0x0a, 0x0b, 0x53, 0x43, 0x55, 0x70, 0x42, 0x61, 0x67, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x2b, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x11, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x4e, 0x6f, 0x77, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x4e, 0x6f, 0x77, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x4e, + 0x6f, 0x77, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0a, 0x4e, 0x6f, 0x77, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x43, + 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, + 0x18, 0x0a, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x23, 0x0a, 0x05, 0x49, 0x6e, 0x66, + 0x6f, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x49, + 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0x34, + 0x0a, 0x0d, 0x53, 0x43, 0x53, 0x79, 0x6e, 0x63, 0x42, 0x61, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x23, 0x0a, 0x05, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, + 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, + 0x6e, 0x66, 0x6f, 0x73, 0x22, 0x3c, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, + 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, + 0x75, 0x6d, 0x22, 0x20, 0x0a, 0x0e, 0x43, 0x53, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x22, 0x93, 0x01, 0x0a, 0x0e, 0x53, 0x43, 0x50, 0x72, 0x6f, 0x70, 0x45, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x4f, + 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x52, 0x65, 0x74, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2f, 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, - 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x47, - 0x61, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x20, 0x0a, 0x0e, 0x43, 0x53, 0x45, 0x78, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x70, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x54, 0x70, 0x22, 0x49, 0x0a, 0x0e, 0x53, 0x43, - 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x05, - 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x62, 0x61, - 0x67, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, - 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x02, 0x54, 0x70, 0x2a, 0x85, 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, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, - 0x55, 0x73, 0x65, 0x55, 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, - 0x49, 0x64, 0x45, 0x72, 0x72, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, - 0x44, 0x62, 0x45, 0x72, 0x72, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, 0x43, 0x5f, - 0x42, 0x61, 0x67, 0x46, 0x75, 0x6c, 0x6c, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x4f, 0x50, 0x52, - 0x43, 0x5f, 0x4e, 0x6f, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x10, 0x06, 0x2a, 0xbc, 0x01, + 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x52, + 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x78, 0x0a, 0x0c, 0x45, 0x78, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x09, 0x43, 0x6f, + 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, + 0x62, 0x61, 0x67, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x43, 0x6f, + 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2b, 0x0a, 0x09, 0x47, 0x61, 0x69, 0x6e, 0x49, + 0x74, 0x65, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x67, + 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x47, 0x61, 0x69, 0x6e, 0x49, + 0x74, 0x65, 0x6d, 0x73, 0x22, 0x20, 0x0a, 0x0e, 0x43, 0x53, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x70, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x54, 0x70, 0x22, 0x49, 0x0a, 0x0e, 0x53, 0x43, 0x45, 0x78, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x05, 0x49, 0x6e, 0x66, 0x6f, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x45, 0x78, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x6e, 0x66, 0x6f, + 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x54, + 0x70, 0x2a, 0x99, 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, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x55, 0x73, 0x65, 0x55, + 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x49, 0x64, 0x45, 0x72, + 0x72, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x44, 0x62, 0x45, 0x72, + 0x72, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x61, 0x67, 0x46, + 0x75, 0x6c, 0x6c, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x6f, + 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x4f, 0x50, 0x52, + 0x43, 0x5f, 0x4e, 0x6f, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0x07, 0x2a, 0xbc, 0x01, 0x0a, 0x09, 0x53, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x42, 0x41, 0x47, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x5f, 0x42, diff --git a/protocol/bag/bag.proto b/protocol/bag/bag.proto index e3678bf..4ca0182 100644 --- a/protocol/bag/bag.proto +++ b/protocol/bag/bag.proto @@ -10,6 +10,7 @@ enum OpResultCode { OPRC_DbErr = 4; //存储出错 OPRC_BagFull = 5; //背包已满 OPRC_NotPlayer = 6; //找不到玩家 + OPRC_NotChange = 7; //不可兑换 } // 商城 enum SPacketID { @@ -59,10 +60,11 @@ message SCBagInfo { message CSUpBagInfo { int32 ItemId = 1;//物品ID int32 ItemNum = 2;//物品数量 - int32 Opt = 3;//操作 0.使用 1.赠送 2.出售 + int32 Opt = 3;//操作 0.使用 1.赠送 2.出售 3.兑换 int32 AcceptSnId = 4;//被赠送玩家id int32 NowEffect = 5;//0.竖版 1.横版 int64 ShowId = 6;// 邮件显示位置 0 所有大厅都显示 1 主大厅显示 2 len大厅显示 4 fish大厅显示 + int32 CardType = 7;//类型 } //PACKET_ALL_BAG_USE message SCUpBagInfo { diff --git a/protocol/webapi/webapi.pb.go b/protocol/webapi/webapi.pb.go index 35e9cc2..1907457 100644 --- a/protocol/webapi/webapi.pb.go +++ b/protocol/webapi/webapi.pb.go @@ -7895,6 +7895,7 @@ type ASGetMatchAwardCode struct { Money int64 `protobuf:"varint,4,opt,name=Money,proto3" json:"Money,omitempty"` // 金额 Tel string `protobuf:"bytes,5,opt,name=Tel,proto3" json:"Tel,omitempty"` // 手机号 CardType int32 `protobuf:"varint,6,opt,name=CardType,proto3" json:"CardType,omitempty"` // 手机卡类型 + Remark string `protobuf:"bytes,7,opt,name=remark,proto3" json:"remark,omitempty"` //备注信息 } func (x *ASGetMatchAwardCode) Reset() { @@ -7971,6 +7972,13 @@ func (x *ASGetMatchAwardCode) GetCardType() int32 { return 0 } +func (x *ASGetMatchAwardCode) GetRemark() string { + if x != nil { + return x.Remark + } + return "" +} + type SAGetMatchAwardCode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -9509,7 +9517,7 @@ var file_webapi_proto_rawDesc = []byte{ 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, 0xa1, 0x01, 0x0a, 0x13, 0x41, 0x53, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, + 0x22, 0xb9, 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, @@ -9519,83 +9527,84 @@ var file_webapi_proto_rawDesc = []byte{ 0x05, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x54, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x61, 0x72, 0x64, - 0x54, 0x79, 0x70, 0x65, 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, 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, 0x44, 0x0a, 0x12, 0x41, 0x53, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 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, 0x49, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x22, 0x5d, 0x0a, 0x12, 0x53, - 0x41, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4c, 0x69, 0x6e, - 0x6b, 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, 0x12, 0x12, 0x0a, 0x04, 0x4c, 0x69, 0x6e, 0x6b, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4c, 0x69, 0x6e, 0x6b, 0x22, 0x9d, 0x01, 0x0a, 0x0d, 0x41, - 0x53, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x42, 0x79, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x53, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 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, 0x2c, 0x0a, 0x08, - 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, - 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, - 0x70, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, - 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x22, 0x44, 0x0a, 0x0d, 0x53, 0x41, - 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x42, 0x79, 0x49, 0x64, 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, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 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, 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, 0x44, 0x0a, + 0x12, 0x41, 0x53, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4c, + 0x69, 0x6e, 0x6b, 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, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, + 0x6e, 0x49, 0x64, 0x22, 0x5d, 0x0a, 0x12, 0x53, 0x41, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 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, 0x12, 0x12, + 0x0a, 0x04, 0x4c, 0x69, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4c, 0x69, + 0x6e, 0x6b, 0x22, 0x9d, 0x01, 0x0a, 0x0d, 0x41, 0x53, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, + 0x42, 0x79, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 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, 0x2c, 0x0a, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, + 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, + 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x6d, 0x61, + 0x72, 0x6b, 0x22, 0x44, 0x0a, 0x0d, 0x53, 0x41, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x42, + 0x79, 0x49, 0x64, 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 ( diff --git a/protocol/webapi/webapi.proto b/protocol/webapi/webapi.proto index cc6a79f..b4221f2 100644 --- a/protocol/webapi/webapi.proto +++ b/protocol/webapi/webapi.proto @@ -859,6 +859,7 @@ message ASGetMatchAwardCode{ int64 Money = 4; // 金额 string Tel = 5; // 手机号 int32 CardType = 6; // 手机卡类型 + string remark = 7; //备注信息 } message SAGetMatchAwardCode{ TagCode Tag = 1; //错误码 diff --git a/worldsrv/action_bag.go b/worldsrv/action_bag.go index e55d5d1..70afee4 100644 --- a/worldsrv/action_bag.go +++ b/worldsrv/action_bag.go @@ -284,8 +284,23 @@ func CSUpBagInfo(s *netlib.Session, packetid int, data interface{}, sid int64) e pack.NowItemNum = item.ItemNum } } + case ItemCanExchange: + logger.Logger.Trace("道具兑换", msg.ItemId) + itemInfo := srvdata.PBDB_GameItemMgr.GetData(msg.ItemId) + if itemInfo == nil || itemInfo.Type != common.ItemTypeChange { + pack.RetCode = bag.OpResultCode_OPRC_NotChange + send() + return nil + } + _, _, isF := BagMgrSingleton.AddItem(p, int64(msg.ItemId), int64(-1), 0, common.GainWayItemChange, "sys", "背包内使用兑换", 0, 0, false) + if isF { + pack.RetCode = bag.OpResultCode_OPRC_Sucess + pack.NowItemId = item.ItemId + pack.NowItemNum = item.ItemNum + //获取兑换码 + BagMgrSingleton.ItemExchangeCard(p, msg.ItemId, int32(itemInfo.Num), msg.CardType) + } } - send() return nil } diff --git a/worldsrv/bagmgr.go b/worldsrv/bagmgr.go index 394277a..228bc5d 100644 --- a/worldsrv/bagmgr.go +++ b/worldsrv/bagmgr.go @@ -2,9 +2,13 @@ package main import ( "errors" + "fmt" "math" + webapiproto "mongo.games.com/game/protocol/webapi" + "mongo.games.com/game/webapi" "mongo.games.com/game/worldsrv/internal" "strconv" + "sync" "time" "mongo.games.com/goserver/core/basic" @@ -27,9 +31,10 @@ const ( // 道具功能 Function const ( - ItemCanUse = iota //可以使用 - ItemCanGive //可以赠送 - ItemCanSell //可以出售 + ItemCanUse = iota //可以使用 + ItemCanGive //可以赠送 + ItemCanSell //可以出售 + ItemCanExchange //可以兑换 ItemMax ) @@ -512,6 +517,75 @@ func (this *BagMgr) SyncBagData(snid int32, changeItemIds ...int32) { p.SyncBagData(itemInfos) } +// 兑换话费卡 +func (this *BagMgr) ItemExchangeCard(p *Player, itemId int32, money, cardType int32) bool { + // 兑换码奖品 + var err error + var newMsg *model.Message + res := &webapiproto.SAGetMatchAwardCode{} + wg := new(sync.WaitGroup) + task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { + // 获取兑换码 + pack := &webapiproto.ASGetMatchAwardCode{ + Platform: p.Platform, + Snid: p.SnId, + ItemID: itemId, + Money: int64(money), + Tel: p.Tel, + CardType: cardType, + Remark: "背包内使用兑换", + } + logger.Logger.Trace("ItemChangeCode ", pack) + var buff []byte + buff, err = webapi.APIGetMatchAwardCode(common.GetAppId(), pack) + if err != nil { + return err + } + if err = proto.Unmarshal(buff, res); err != nil { + return err + } + + if res.GetCode() == "" || res.GetTag() != webapiproto.TagCode_SUCCESS { + return nil + } + + var params []string + for range []string{"zh", "vi", "en", "kh"} { + params = append(params, res.GetMoney(), res.GetCode()) // 金额,兑换码 + } + // 发送邮件 + title := i18n.Tr("languages", "MatchAwardTitle") + content := i18n.Tr("languages", "MatchAward", params) + newMsg = model.NewMessage("", 0, "", p.SnId, model.MSGTYPE_ITEM_CHANGE, + title, content, 0, 0, model.MSGSTATE_UNREAD, time.Now().Unix(), 0, "", nil, p.Platform, model.HallTienlen, nil) + err := model.InsertMessage(p.Platform, newMsg) + if err != nil { + logger.Logger.Errorf("发送邮件失败 snid:%v itemID:%v err:%v", p.SnId, itemId, err) + return err + } + return nil + }), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) { + defer wg.Done() + if err != nil || res.GetCode() == "" || res.GetTag() != webapiproto.TagCode_SUCCESS { + //返回道具 + items := make([]*Item, 0) + items = append(items, &Item{ + ItemId: itemId, // 物品id + ItemNum: 1, // 数量 + ObtainTime: time.Now().Unix(), + }) + this.AddItems(p, items, 0, common.GainWayItemChange, "system", "背包内使用兑换失败", 0, 0, false) + logger.Logger.Errorf("获取兑换码失败 snid:%v itemID:%v res:%v err:%v", p.SnId, itemId, res, err) + return + } + p := PlayerMgrSington.GetPlayerBySnId(p.SnId) + if p != nil { + p.AddMessage(newMsg) + } + }), fmt.Sprintf("ItemChange%d", p.SnId)).Start() + return true +} + func (this *BagMgr) Update() { } diff --git a/worldsrv/tournament.go b/worldsrv/tournament.go index e9d6fde..3ef1854 100644 --- a/worldsrv/tournament.go +++ b/worldsrv/tournament.go @@ -1206,6 +1206,7 @@ func (this *Tournament) sendPromotionInfo(mc *PlayerMatchContext, sortId int64, Money: data.GetNum(), Tel: mc.p.Tel, CardType: mc.tm.gmd.CardType, + Remark: "比赛场获得奖励", } logger.Logger.Trace("GetMatchAwardCode ", pack) var buff []byte diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index 4ff436f..6dff2e3 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -1862,7 +1862,7 @@ func (this *WelfareMgr) DiamondBankTakeCoin(p *Player) { } BankMaxDiamond := int64(infoData.MaxDiamond) - DayBuyMaxCnt := fGetPropValue("DayBuyMaxCnt") + DayBuyMaxCnt := fGetPropValue("DayBuyMaxCntDiamond") if p.WelfData != nil && p.WelfData.PigBank != nil { pack.BankMaxDiamond = BankMaxDiamond From 77b8fdf0e9decd93259a39c12a2c540f6afcebcd Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Wed, 26 Jun 2024 11:25:51 +0800 Subject: [PATCH 14/49] =?UTF-8?q?=E6=96=B0=E7=89=88=E9=82=80=E8=AF=B7?= =?UTF-8?q?=E6=B4=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dbproxy/svc/u_player.go | 2 +- public | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dbproxy/svc/u_player.go b/dbproxy/svc/u_player.go index b590a2e..3ca2016 100644 --- a/dbproxy/svc/u_player.go +++ b/dbproxy/svc/u_player.go @@ -1539,7 +1539,7 @@ func (svc *PlayerDataSvc) GetPlayerInviteSnid(req *model.PlayerIsExistBySnIdArgs res := &t{} err := c.Find(bson.M{"snid": req.SnId}).Select(bson.M{"psnid": 1}).One(res) - if err != nil && errors.Is(err, mgo.ErrNotFound) { + if err != nil && !errors.Is(err, mgo.ErrNotFound) { return err } diff --git a/public b/public index 45e11d5..b3c639b 160000 --- a/public +++ b/public @@ -1 +1 @@ -Subproject commit 45e11d554d0d1093e3335774bf1d5e027f15d234 +Subproject commit b3c639ba6fbdb6ee41e21a8b96901a179db031af From 96599507b8dcea638ec98967facbc3ff6d47c941 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Wed, 26 Jun 2024 11:46:16 +0800 Subject: [PATCH 15/49] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=97=A5=E5=BF=97?= 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 2161 -> 2161 bytes worldsrv/trascate_webapi.go | 1 + 3 files changed, 1 insertion(+) diff --git a/data/DB_PropExchange.dat b/data/DB_PropExchange.dat index 28dd534f02e8cde318a3e239e2ad90c1db6c78d7..3360a3282dba1c245d6940a608837332a7938af3 100644 GIT binary patch literal 384 zcmd-w<6snElw#w!+{O&1uR!UmQ2H8_z7C?5I5-yevI!h$vE|a^U;?YZ0hPZArEfv$ z+i2>;IZ(}qnG4egvma~^&^<77QOpC1gWaXX33f-r+D9y0u^cR5hrkTN>To;;-hnz8 V<^XU2D6w-a0($fdGZzDGApm6JJT(9S literal 384 zcmd-w<6snElw#w!+{O&1uR!UmQ2H8_z7C?5I5-yevI!h$vE|a^U;?YZ0hPZArEfv$ z+i2>;IUweP%>mknS05qwC~<<_(XjRr3s)=$3yQ-DS#SsHK$wToJqmF+JI5lRN53$0 IG0+wQ0A>O_H2?qr diff --git a/data/DB_Task.dat b/data/DB_Task.dat index 3cfeaf79414a3f0867adb8ac26cae863ef7caf41..930f0e775c12df0b817d0e7e12d562e26a1aab75 100644 GIT binary patch delta 390 zcmew;@KIobu^

!d^Ck1-)!mY#d8~ERl^ahK!T9unSIZW7GlDhZze6**Gq?F$=I* zK~*1;o9xPTQ;8F-_rSD`OhC2;YzT&t*;mbq=D*KKi|yoc WcH7CNjDnMovWLP#8cB~fhZ_K&US^>H delta 410 zcmew;@KIobu^=1Al3q3e5i1Ukg+O{iFWW{JL&nKl*aauIG3tQn!;FQ3P}xIrR%{#> z+n5DdCc84-RAS>;1k}T2#R=AXVA@6|E)|Z6egcdVtP0#34TrAlPu|Eb;^)A~rOGkM zPkT=D;sGn0>?gnrQFdbe0#&#&W~j0U%Y`N{V*Vu$(aZ{S z^&vT+W)+U5a~K7rfVx>H$FoaJzRa>h9@*U>>sZ0+w!UH%kOrz_0jc8y3vB}mDT0L_ zvdB)p%NhX;7?1{Ji{02RT40EJF)@O?cLf+I;z0fE8Wa5Bu10d-WPf(?$yXQ!7`Y~w Wv)fKCWfYuzlsyz`39>qE4mSWRIBO~Z diff --git a/worldsrv/trascate_webapi.go b/worldsrv/trascate_webapi.go index 63b84df..67d2022 100644 --- a/worldsrv/trascate_webapi.go +++ b/worldsrv/trascate_webapi.go @@ -4078,6 +4078,7 @@ func init() { if info == nil { return errors.New("info is nil") } + logger.Logger.Tracef("/api/pay/CallbackPayment ShopLog %+v", *info) if info.State != 0 { return errors.New("the order state not 0 " + info.LogId.Hex()) } From 754f94abbd2feb56ca5bc70fe045389bc8f02760 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Wed, 26 Jun 2024 11:50:55 +0800 Subject: [PATCH 16/49] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/trascate_webapi.go | 1 + 1 file changed, 1 insertion(+) diff --git a/worldsrv/trascate_webapi.go b/worldsrv/trascate_webapi.go index 67d2022..cf6c826 100644 --- a/worldsrv/trascate_webapi.go +++ b/worldsrv/trascate_webapi.go @@ -4060,6 +4060,7 @@ func init() { WebAPIHandlerMgrSingleton.RegisteWebAPIHandler("/api/pay/CallbackPayment", WebAPIHandlerWrapper( func(tNode *transact.TransNode, params []byte) (int, proto.Message) { + logger.Logger.Tracef("api /api/pay/CallbackPayment") msg := &webapiproto.ASCallbackPayment{} pack := &webapiproto.SACallbackPayment{} err := proto.Unmarshal(params, msg) From 5058d2aba106d06e946823e6039f2002885dfe6d Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Wed, 26 Jun 2024 12:07:55 +0800 Subject: [PATCH 17/49] =?UTF-8?q?=E6=96=B0=E7=89=88=E9=82=80=E8=AF=B7?= =?UTF-8?q?=E6=B4=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dbproxy/mq/c_invite.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dbproxy/mq/c_invite.go b/dbproxy/mq/c_invite.go index 5f077b9..3c2a002 100644 --- a/dbproxy/mq/c_invite.go +++ b/dbproxy/mq/c_invite.go @@ -197,6 +197,8 @@ func init() { // 更新自己的积分 if addRechargeScore { add(log.InviteSnId, log.RechargeScore, log.Money, 10000) + } else { + add(log.InviteSnId, 0, log.Money, 10000) } case common.InviteScoreCheckWeek: From e0f2f76322105a9c34fef43d7ab77fece24af271 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Wed, 26 Jun 2024 14:10:27 +0800 Subject: [PATCH 18/49] =?UTF-8?q?=E6=96=B0=E7=89=88=E9=82=80=E8=AF=B7?= =?UTF-8?q?=E6=B4=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/DB_GameItem.dat | Bin 8437 -> 8437 bytes data/DB_GameItem.json | 16 +++--- data/DB_GiftCard.dat | Bin 57 -> 57 bytes data/DB_PropExchange.dat | Bin 384 -> 384 bytes data/DB_Task.dat | Bin 2161 -> 2161 bytes dbproxy/svc/l_dbshoplog.go | 2 + public | 2 +- worldsrv/player.go | 111 +++++++++++++++++++----------------- worldsrv/shopmgr.go | 1 + worldsrv/trascate_webapi.go | 11 ++++ xlsx/DB_GameItem.xlsx | Bin 23215 -> 23214 bytes 11 files changed, 82 insertions(+), 61 deletions(-) diff --git a/data/DB_GameItem.dat b/data/DB_GameItem.dat index f49b1b26b397acfb24f99a92d29ec0eda4a11c6a..8f1263ef62d7f727c10daaf8f8c17d7b3a101114 100644 GIT binary patch delta 47 lcmezB_|E{0`XR Q>>P`L9{s}1#XwsK0A;c~H2?qr literal 384 zcmd-w<6snElw#w!+{O&1uR!UmQ2H8_z7C?5I5-yevI!h$vE|a^U;?YZ0hPZArEfv$ z+i2>;IZ(}qnG4egvma~^&^<77QOpC1gWaXX33f-r+D9y0u^cR5hrkTN>To;;-hnz8 V<^XU2D6w-a0($fdGZzDGApm6JJT(9S diff --git a/data/DB_Task.dat b/data/DB_Task.dat index 930f0e775c12df0b817d0e7e12d562e26a1aab75..7ae1e8df9bc416e978bc2a2335df9e695e0ebe6e 100644 GIT binary patch delta 64 zcmew;@KInxDC6WU>>`sh8BYsxa4hU)6IgIa&WerWVjHsn%Vt-mRu-VN;N;tE-IK2{ U3NUg_E@!u$T*@do`6&Au0MA|(r2qf` delta 90 zcmew;@KInxDC6WU>>`sh8BYtcaa?R;7GSaB;8@tpCa~a;+-6s%R+h=7jDnMIvvmWd d7XgL2pwb6gY$unq+d@SdVVZi`CLd*A0{{&o8)g6i diff --git a/dbproxy/svc/l_dbshoplog.go b/dbproxy/svc/l_dbshoplog.go index 19c6ad7..aade343 100644 --- a/dbproxy/svc/l_dbshoplog.go +++ b/dbproxy/svc/l_dbshoplog.go @@ -18,6 +18,8 @@ func DbShopLogCollection(plt string) *mongo.Collection { dbShopRec.EnsureIndex(mgo.Index{Key: []string{"pageid"}, Background: true, Sparse: true}) dbShopRec.EnsureIndex(mgo.Index{Key: []string{"state"}, Background: true, Sparse: true}) dbShopRec.EnsureIndex(mgo.Index{Key: []string{"shopid"}, Background: true, Sparse: true}) + dbShopRec.EnsureIndex(mgo.Index{Key: []string{"ts"}, Background: true, Sparse: true}) + dbShopRec.EnsureIndex(mgo.Index{Key: []string{"-ts"}, Background: true, Sparse: true}) } return dbShopRec } diff --git a/public b/public index b3c639b..5843874 160000 --- a/public +++ b/public @@ -1 +1 @@ -Subproject commit b3c639ba6fbdb6ee41e21a8b96901a179db031af +Subproject commit 58438743032d93fc2e16d705c4ebe1df5c33f1b2 diff --git a/worldsrv/player.go b/worldsrv/player.go index ad3a894..3e51cad 100644 --- a/worldsrv/player.go +++ b/worldsrv/player.go @@ -3848,66 +3848,73 @@ func (this *Player) GetPayGoodsInfo() { if data != nil { infos := data.([]*model.DbShop) for _, info := range infos { - var itemInfo []*player_proto.PayItem - var items []*Item - if len(info.Amount) > 0 { - this.AddCoin(int64(info.Amount[0]), 0, info.GainWay, "Callback_login", info.Remark) - this.AddDiamond(int64(info.Amount[1]), 0, info.GainWay, "Callback_login", info.Remark) - } - this.AddMoneyPayTotal(int64(info.ConsumeNum)) - if info.ItemInfo != nil { - for _, v := range info.ItemInfo { - items = append(items, &Item{ItemId: v.ItemId, ItemNum: v.ItemNum}) - itemInfo = append(itemInfo, &player_proto.PayItem{ - ItemId: v.ItemId, - ItemNum: v.ItemNum, - }) + switch info.PageId { + case ShopPageBackend: + logger.Logger.Tracef("GetPayGoodsInfo ShopPageBackend %+v", *info) + default: + var itemInfo []*player_proto.PayItem + var items []*Item + if len(info.Amount) > 0 { + this.AddCoin(int64(info.Amount[0]), 0, info.GainWay, "Callback_login", info.Remark) + this.AddDiamond(int64(info.Amount[1]), 0, info.GainWay, "Callback_login", info.Remark) } - } - switch info.Remark { - case "BlindBox": - if len(info.OtherParams) > 0 { - this.WelfData.BlindBoxId = info.OtherParams[0] - } else { - logger.Logger.Errorf("GetPayGoodsInfo BlindBox OtherParams is nil") + this.AddMoneyPayTotal(int64(info.ConsumeNum)) + if info.ItemInfo != nil { + for _, v := range info.ItemInfo { + items = append(items, &Item{ItemId: v.ItemId, ItemNum: v.ItemNum}) + itemInfo = append(itemInfo, &player_proto.PayItem{ + ItemId: v.ItemId, + ItemNum: v.ItemNum, + }) + } } - case "FirstRecharge": - if len(info.OtherParams) > 0 { + switch info.Remark { + case "BlindBox": + if len(info.OtherParams) > 0 { + this.WelfData.BlindBoxId = info.OtherParams[0] + } else { + logger.Logger.Errorf("GetPayGoodsInfo BlindBox OtherParams is nil") + } + case "FirstRecharge": + if len(info.OtherParams) > 0 { - this.WelfData.FirstPayDay = info.OtherParams[0] - this.WelfData.FirstPayTickets = info.Ts - } else { - logger.Logger.Errorf("GetPayGoodsInfo FirstRecharge OtherParams is nil") + this.WelfData.FirstPayDay = info.OtherParams[0] + this.WelfData.FirstPayTickets = info.Ts + } else { + logger.Logger.Errorf("GetPayGoodsInfo FirstRecharge OtherParams is nil") + } + case "ContinuousPay": + if len(info.OtherParams) > 0 { + + this.WelfData.ContinuousPayDay = info.OtherParams[0] + this.WelfData.ContinuousPayTickets = info.Ts + } else { + logger.Logger.Errorf("GetPayGoodsInfo ContinuousPay OtherParams is nil") + } } - case "ContinuousPay": - if len(info.OtherParams) > 0 { + this.UpdatePlayerVipBag(info.ShopId) + this.UpdateShopID(info.ShopId) - this.WelfData.ContinuousPayDay = info.OtherParams[0] - this.WelfData.ContinuousPayTickets = info.Ts - } else { - logger.Logger.Errorf("GetPayGoodsInfo ContinuousPay OtherParams is nil") + this.dirty = true + this.SendDiffData() + + info.Amount[2] = this.GetVIPExpByPay(info.ConsumeNum) + + BagMgrSingleton.AddItems(this, items, 0, info.GainWay, info.Operator, info.Remark, 0, 0, false) + + PayGoodsInfo := &player_proto.SCPayGoodsInfo{ + Gold: info.Amount, + Item: itemInfo, } + proto.SetDefaults(PayGoodsInfo) + this.SendToClient(int(player_proto.PlayerPacketID_PACKET_SC_PAYGOODSINFO), PayGoodsInfo) } - this.UpdatePlayerVipBag(info.ShopId) - this.UpdateShopID(info.ShopId) - - this.dirty = true - this.SendDiffData() - - info.Amount[2] = this.GetVIPExpByPay(info.ConsumeNum) - - BagMgrSingleton.AddItems(this, items, 0, info.GainWay, info.Operator, info.Remark, 0, 0, false) - - PayGoodsInfo := &player_proto.SCPayGoodsInfo{ - Gold: info.Amount, - Item: itemInfo, + if info.ConsumeNum > 0 { + TaskSubjectSingleton.Touch(common.TaskTypePay, &TaskData{ + SnId: this.SnId, + Num: int64(info.ConsumeNum), + }) } - proto.SetDefaults(PayGoodsInfo) - this.SendToClient(int(player_proto.PlayerPacketID_PACKET_SC_PAYGOODSINFO), PayGoodsInfo) - TaskSubjectSingleton.Touch(common.TaskTypePay, &TaskData{ - SnId: this.SnId, - Num: int64(info.ConsumeNum), - }) } } diff --git a/worldsrv/shopmgr.go b/worldsrv/shopmgr.go index 0865332..01f77d7 100644 --- a/worldsrv/shopmgr.go +++ b/worldsrv/shopmgr.go @@ -51,6 +51,7 @@ const ( ShopPagePhoneScoreGoogle = 62 ShopPageGift = 7 //礼包页面 ShopPageDiamondBank = 8 //钻石存储罐 + ShopPageBackend = 9 //并不是页面,是后台加币记录类型 ) // 商品类型 diff --git a/worldsrv/trascate_webapi.go b/worldsrv/trascate_webapi.go index cf6c826..9659207 100644 --- a/worldsrv/trascate_webapi.go +++ b/worldsrv/trascate_webapi.go @@ -1772,6 +1772,17 @@ func init() { logger.Logger.Errorf("model.UpdatePlayerCoin err:%v.", err) return nil } + + // 充值金额记录 + if money > 0 { + err = model.InsertDbShopLog(model.NewDbShop(findPlayer.Platform, ShopPageBackend, nil, "", 0, 0, int32(money), + 0, nil, 0, "", findPlayer.SnId, 3, "后台离线加币", nil)) + if err != nil { + logger.Logger.Errorf("model.InsertDbShopLog err:%v.", err) + return nil + } + } + //账变记录 err = model.InsertCoinLog(coinlogex) if err != nil { diff --git a/xlsx/DB_GameItem.xlsx b/xlsx/DB_GameItem.xlsx index 928c317196bf6f99edc2ceea2a1c6fe118300ab5..6dc82a04bc6953d423bfda7f7c46e94174014f6c 100644 GIT binary patch delta 10030 zcmaiaXIN8P*DbvVq!%gDk96q-=^!92lu$#jQj{W9Ws6irL5L7QkfL-%sx&b`K&pxm z1T08LnlwQWNWLA^bKZ0B``ybAo=qN}wdNXg%rVAF@~n}#x{D#nQ9z@Yd$(ar#78j5oZ>5s4 z_NV8Brvy<6nucVX2V79Wkb90_rI--x?&b6uC@*Oy`JiW{>nG$bS=XF)2{KKmL&Hh+ zv}Uz=zqeA$Yvpac{jzest~BlFC7!0i#VSUJAKJoCYbA_I*T&8P#?kD~DQ0h0D#8RR z9L{M5_1Sd@!SV(tcBA;e4UMf^RD7Svjm#m^K)lNTvElqyn(s<@W$*YH#xeq*IHiS4ff8|FewiAqWu zca}@}-;GX;hy?i0uPhwz+N^r;<;PcrqtVNfIBu?MxAL~~3kQ=S0m&crpS^$f?B(@q z&R<>}x3Aj#xbkQ{Z(Ykja;MhL8Q5A>=kDs9GeK%n^1|9*d@^=7Rk?FKT@dKX5A7IKXu%NcoP1pVsFFHe5V^;b2!S_Y(1pGe;ows)T5y z@jm-2Ix~A)gkm1DnomrG!}n;Je`Iq8uMEEhabIghEd0ttrMEN)$m7qi*t`_juJ7ci*;^wpZ_Y?pkTB&mF z>+)#nij4U1r2knW-`*l3E^1D=ZFvyv{9=jyfBD5Gh*~KdviSfcW8}q%yA&3)aE9%v~pgBN{Mm4 zP>{Jheor7MF#>Z=6R{~6G;?Y66eSd{Znb0WFc>59rq*Y+gDDdB>=W&9*=B~(2|0+jta0Jk*Hj3i+pWWP#)bYI*}B=G-ZVY#}Uk==q%RvDmB0+WJ(#uV_R}l$TV*hzHKn;!^7Ae z-!??a$bNK78Qw~g$J5|e{G3fE*WKLimCIHV>Af78ZU_ikM0ZfY7l(yrExBHWL=`E& z#b&l_%h4~wjxwd0Ka6V5gg}Q^J7md)LRPL`@WAN76GQua~E zX9d1qZDknytQ#Pipwg>-d?j=AoUH((@1nHkV-dO#OeTc{ZwMm9T1BdoGbiLVf68D^ z^R4&7Cc_tgSUf!2Mn*eQLfTF*VW~M%@@7daQYgU6ewd9{lULVallB9)&MC%J^ryjV zJ8*Ty-l9vS$@-^#s;EQXh@LDQfC%vc=IScWFXiZ*MvVZP z2I04+4e^PoSC=xUPIs7e=CQZk*PJeWpG|W$Y%!xaOk(BL+^5=Mh_?M&2h&Ue>ivZ_ z0q&dDw!w2G9r>?8wXp&z%FKe0uJMi4UK`L%V5>H781M>H;- zn^1|w9^E~cn*2HN7PZJ=>?bY$fe?>o zQZxSx!p)m^%E*vB=OIzt4JE=snLS5g_pX<^O6jJyUG=|Ilha{MXYGd4d-J)r2*;$R z`MygxirH>4$wjhp8K`CBiWrvjJ^D^Q)xiUG5b!x8lrqMny&f^-Ua@38xWu6*Wj}mY zp=dJK<<|Nm3h*zO(4DPgk5PQPi1_2_#F-4m`=hjC>PMAlD`$Hnu&g__fTWm0M7KkLFI*+ugrWu^ z86EuA?nSPXRW|j58By&>uJ6rpx7o0fk2;631vynMR%#v7RJj9^cc-}9#6EeRi`KqN zWjPvdD55O^r<*&2br_dTq#qGw7%ep(>4?2?XvL*?laIpg!#R;Y>`$wE9UUnqj@o{k z5BLXf#~HpJ$pT~p*cf+Z+ljKx8U%dmVoSABL#j*9h@@cq9~q9p5-2(4u080y3e9ln zTer--aB%<|GU@rIIe(@mg{&au;y9oAA$=momQ3;?2b}iwN`Ozc4!1njq-e}>2L_{Q^bp-p zRNi(Z<|QwlV_)Sflc6=39oK&|L4;41UerTqzvcq@O&)A`iSxB zm@moen)*VpbVaz3m?eKyK|k-pSCzX{(W$?9u4>>2P)K@GIepR}oU<)!D)gkM9=4ET zXsF3Jlo{Sv49&u(Ma5WcvAZi7@#cN7+`U-YDR@dYcR{zyLs=w`4dUaMXE^NmOG`Cf8q0WiU?Ew#7XvoD4Va= zNq3s*b?L{-?a8F-Z!0mMVlPZ;|`(_RI#e_Zh6ptllXMm-k7PoxRnmv6j36UO$HaiEw{5=knH+=u)yv;+ab3k?CBa8 zG3IPJYNXp`*nP(*9$@{VQ+TVUG zgpp>y7=?n>`(}M|iDVf$o zl1q6riDXC9mo1N&1QWL62%E%%CzP8O233TVDGL+?aNqvNHqf1wT=yd~dU3 zwfmY&`4};|x^@RGRC|13Sb>ww(um(OS2MH)Jt5rV!EQ-f@|{{E^t>g^lKo;HE4ULR z=3xI*tK?nq1laR~%jj^FtH2g65)j)-@KIRA-&z6(0^d?rmS+x>F^Ve3-A%vW?F9WJ3ec$bbL9Xq1CdQ{+)JB%J*v#p<$3S zc@~C9EiMzOkunRVF!RrySj}E3u#~1V_sHE+Y4%&V{qDbU2jM&^=Ba^b5~<%dq~!{J z34Q%g3BULGEe`h)y?+~#EOl0x@s2(vs6VYI`eW$xArQ}^y<@E=XeAjk#&4f=I}H~I z&vRr_Z)6SnmP1!qKJ{FW9lr94sWrAd#tXq#QgE4{g|<14X6#fByy-G+sAD7PZed*X z&M5kL0gXpJ!_PYdyQBGj+O>8aL0a%L*pI^}Q$P)Iu$p=G-IB^g5Cc5>_^LdmiTvj{ zqEe^f6tm#5)>CL31(iwplm1h8N+!~y+7Zp6R(JZPN+^t_Xu*@75{r`eD}zA_|7IoM z#joM`UG$AZGyEY6z2D!2-vSg0CnTnu3&c)=S?z?QaS4efW6LO%ocQgdMbY=H$#v} zem2$E$Q*unTrr-QczKhy^EA!un4_W-Pf@JtwgFz@E*E0PiDG%I4WL}AHdIT!*UzFl z^5r;OOO};uSwjjs**|uFFy@NAmA3^PsfeoB@zZxP*s1Pr@&*V%EgwzGl;< z_-qI1W;ePAed-y5jRI0BSr~Kg;HpmZySsry36jd0So({JrM}mfQ@J{`9^&4uvf4iR&eRW9o9W%PWX z(i6mPqhq4lVUoOJTtT5<#V2=7*$czQZRAT?Oc`jbLY4xC8vxO{Fq=fW?{S*@U2)KP z8l?{E-hIgHDQR|H$~I`?#tREeyR_Kd0>H1C0;Os6`P8E}k=K0L2%Le}ItMN+SYdv9 zU%W!Dyu$FI(bxXM~$P`n2w4YKx79O7$|G{pC1(tZnE2R zPfIJ$|1AAloif~c4QAv3k&4Nb&1)0EI9H>9&qn?1PV|RY>yVZFD4mIhvNunB_n9eY zwi4@C9$e;cG4j?IQx#kclWF7d2kq|c{5GnUPQ_Mukgt^vAWkI4-O>TJORb-aMc3N} zZ}PIRDKrlpEm(Cuk-c};GM91ZsQ3vC77N`t}H{ctj}uq#fB#tEZlr2Q=zHc?8iZ)@xv z#n8XUy!>GHG_}sCpg40RWZYvPW2_GRRUak+v^8_B^e!-jD6bf&C>-6cJ|zjbX@%8vl`QF+Ew0kBz;0Se7z_5)YH z<;Vjb!3Tn%K7K_!c3HOf1vB8XM`_@6gp~}g zehK=}=Czt{KPg6Fu)+z0-9QEd_s$~U<|8p{RmOi&``KH5xDU>ixXM2bs)&^xHm^NDZFoV$*xQkBq9Bu^RrRz8(kZ}tIQR{c3MZ1hU?yLrnClf>HDh)cWbSXh z0BQNJWsg2pvij<&&;hRAQ8&>I;je-B8a+Cpcj>2MKg3pbvU0r|e-equD3nLJ%l2@d zJCqi(h^>$XkR$c2kW()K$-RV~2TV4acuEgmd~Fb_#X z&y2O7s1#v1Q@*Jh{pl&vquV$3k^Av<+st+FA=fFq8f;JtA{E^w3H%vD@9ynH*@sNm zjz1H`pPp>A2#T!8X#n3=!v)8J6r}r`f?Av2+Be>?B7$hJQiCJM4edySIywO7^9GUQc>~^Hj$8?Z{KZEAvOD+tSQVDCsES@^ z({D`gy8{0nNiqQR0>sCC4Ds)l)X1rIID=$5%3gB5y2<;XQvD4mCXc{5{Abm_S12w!FG%Z}P7}8vn4?uL; z8+@zaDZfrb2bABMejE2Q*Y7l-d=p-GqW*gwl>5wwn_D? zxObHNXSAcayZ$$I{=c3AaQ26^<%<>{}Xa2v#n5zLA z3QMV`BnK#$!Wh050`*#7;PRfd`!(YdHu}v8F8ZV3M}8-KQJS3@Y0AwGREh);v@7>I zEg;+&JHK%Jx9N%VK7q0uSxkEH{WW4U4{Fb!+1vGS$SWYMgYOU?wva9j8Gn)zX)KbD z{zNbB5w<7tAWq@w*?_)}Ty@)SDEm=)gO72G`tbB>l@u0oa;O zUNY#+=?l_4MioMPc+)OBF3@2oc9p7tmHy{3Jb@|9S8I6b$Kb6LHreRhi&=Dl z&mB3pad0r$RDTXYw>|{zV-WOYmIE_oa^+k&T`y$fU*f>zasF%}REu(T2Ig4o2kIQl z02mX;P9yu5q?<6boOS;%q_-uHW^AJa6VUS@(82a>ATthOOK#u{dmPMV%pW^XWb;l- zuRD?gqHn;dwPi?L5p&G<08yU8M-osT09d@c!K6W-2wKTK3D0VD7DmhCw<7%mbDf;q z2Ht|4;-dhAN8uywtutfQuRx1ghDnNx2WRg}uNi~7xL3^ytPI$nu%@h>z`oL77whY| zTyA=TSKAG2CaNHCabQ>ibwRN?u5lR10=oz|hF zxf2ClG^?NoTtNOM`|6A3lZ0N7st0*d11`%8JgK{wpg{UCA6$?fmnEG#z+8rNs zt*%1mAs{V()F)q=ir^omSAY4(BD@hrFQ%b;uE*P_trm~K$xv2$ zm>lSUv34znVN-N(M(|`#ivFmp>|4HH(fLstX?toBZ4_iI&}o1YMz&cJ=s1B z^Pc|`F~Iu?z2N+x^z}P^&Y5Xh<`HUKtpCr5^l^uBpo(Ykixg0u@G}SuRw+=VI|Oj6 zYQlM9*l-uY8y|*^UVT;N5ICE7;;iD$2wWf$s7N}f#SMuUZ8OpO;YanOsyD9L44vBZ z9zkWrqv^}8$cf3<(5H?SSA`ib&P?q1D86GB^?UM-SPE8boib+Ra`JXG=5vG4n~SrE zB$^3;UE6AOJhNLW+3hyedRh8iL$-1Yn>37W-#_~C3#ByAl(qbs@EcEqzq;%!1kbul zd%NoVyyk{#YEXK1Cn?WMTt~TmwIS;bujR;g`BBr;O-paSfO=;~?jRU)? z!E{pnNMFk-R(9z)pBi!O+IAoDngzv=)Q{3K0I4fwSdv7&z6;8jH_TP*Ff)F*RwV6btd)>sOE}QD+{zS~hr?zVeYLKwi`wEh`>(iCli#q9l2KzpDd*W6% zI7<|Ew*62^fh~*p%&Lh;wjfE{gHa6qvto9orj6<@Nv$*TQ@iWYX%NnRJ!_!NA(R53 zfQ~NZxy(nzF@CS@WS5mAJ{G&0$a8#!!E zPfUp=2KI##~vZ%n3+YCoz1~96WN*BtK;~7 zj;`+ey6@lj_w|Pd9v<)Ud_C9aoKsnk`K}(b>K!KFIUau90uuwn77GL8ItB)YorkTC zw}+<>zpaP2JtV;0EhI@^y+eQ|>Sx$x{_-5B`?qAcUtSFqyDesskA42VO;#%V%r@sK zn-t-r=8f^V%llC%qA|a+Te02zKYvL#|5SO?CN-RGrX#^;_u^>+Gd?@N5>K(91QXde z>}978pwP;Mh2=gG+$nKuN2$56S;w<9_C~Uryksi7$cp_7hcC$#wu6p|cehQV>lO=j z#P9m)>zNDvHTd=!w!*m>eh1E7;z_v=ThE;$DVh~i@A0@|gxU5m<2wrv*?hWM#jS9bTZ`emM1U+9LG(0z^UhMeFz; zGkr2``Fy^=9TIYId{SxottIfi|9kxEmBDU@kc+OYU!DZ`2?;h(d3;74l~eD#FU41G zlWB%46lcjVSkgQ}23QTqGu}i+3UVcA_xX|@r0?>-5GPf6=)wofnrLqkV1HsFmbxUx zj3mO=ijL>Vp3;035a$27uByQe5Bd&Y9H_p9Nwya)wY9sxG=>>_zf}o|S(-yihAnje zN#;pMGLDb zS=2q>qRRp@=t8Kxqo{)s068%WMLY*Do={ovFMn-8P5i4Th>2=`24HQ% zi&A#q2z^}Uw2a9y_OIu?s)O4?!CIn|5j_*JDz9;vU-eb-B$p6J$=L@q>WKTk;pu)e zq`z&9D3SP(8sb~}C0;qFl&JfS);Q2v4bvMJqw+0%i~d`N?L$YG9b?4SXHQ-iKeO&P z4jJyCzQHj~*Pa{79#9Qx$t@aX^GHZLhOmYsyC+Qa(%43#H*|jwPN;~vCjuES;vj_ulW5z-s;iqyl z$LOs+Ns&qtGgZOyT7VqLcjC4%Yo%1mIpS9smsE6-uNmv73K~l-$`x=Dd!a#N^fLc? zVkrI?KHxQI9p9fRUa7o_IP_Pe9w=G4xWU_#O?oI%rGeR-Ex}Z_{A%E#bDMcXWZVG5 z_QyV4Ss{ONQqw_4TtFgcN747*L$f&Rp=zDWtd%Fksj3l~XGCxqVaIG$5oTOB{baU5 ze7{T7s=3eer5eu4JYTh&bt9h;4trZlzGwMdByok5D1Q zMC;3q^2TChbbSoX;_?Tpon~4WNAT!e6><)G(F?2Gnxvlr8p?Tw8&~09>_vRsgs)jQ#ty_2dhFi#Qc~1-ZaknivxEe6*VcjJ6vx@E!3dZs4UACq^e%`|6=bV;N zrFX}la$anFs^re2?LcBbEk+Sp+kqvUd)ZcDgb$|V8KcX&IX%H6llVzhL^Dj1_~BOf z+XMYmML2|#7mV{*cQNcg#qjzld8Q==%`S|s7ti%}`A=XQ?rqQSHqfL>`r=l=<%;)> zHO;mI;)(rrp6}Ds?zG;_dPoRqX60$K!`BXH#IJBx%eEJ6v0$5bPA3{!f-soTm2*~6 zhNn!~zw+@fhqWk?CDsePno~*@XEj!L4+6>~@fZ(Z(8-2`-t&weN+qBph_UsJ){$g9 zNZ$xV?2F$|h@*P);H8r&SGrYGu{`)2MU2hU7PXwU44Mk9UGwLRkEELVW@FnPY}L?w zS)$sl4l-_1B3nq=U|1}W^N{MNzaCIz&G^V#_S8C{h-CRNESBujrLXiXtZ37V;^n%*DFUe5_SKmvA^H!o>|{n_^Lk0aEr%Lkhoy_@as_i5 zDAF?84QxHc8(Y_Z%<@6ogpQkAZ`eLf99z-FTJaMJpO30e>b0Qc$d~ic4^#bOV}yKd z%1%exRZRjg^3xI4Swd^6g0p;kpp~y3@8Z{7@=o~KG74Yy11 z{*U$_Jty8L3 zIBCQ%JhzAI21UVH6KwP6qOP!R1ZO$4-2uogNse9@K9V!pc2vBrb_KT{ZCy6V7bmBE z`Eb7yT9Of*OluNXP~FtRw`)j*rwbm9L~Mk98M~8eI+A`vlDt2!=~yF6adYXs$U3hrJtkR!H7J^bJ7lftw|Zvr~jPMsYXRSh_v9te8F#?lLESF^6Io<)F&hRVpJRM zP8o_=b;ve@YEw9Nr&1PJ_)ZV=x1zknB0ZyU zJroRN|FW{mE>V8xC$-A=q`P1qlPR2Q-tLYrzuYPg_wbdeuGwj+FA{eS7C*d~i}_lw z$NCr-Hb?o9@(pVx_A5o-QmW8?Hya#2x8F>Mz5h&D#pLJCghx65BwnZFb6NUB{zop| zb$(J*JXzfeDbio_=(GgAOh@cNx&S)z*HyCHR7q2|Od$6BR;_rYA@yTZ*T!{HZl;wy z;FM1xJZdEMLHkS!UXZ%M)SD0*gTR}CK2xuFlr<=2@N8hZwR)0_>M4T-+9x#oZUru4 zT{yZFskM00q+(-9V%V?rQnLD_T}$&;j32ZRArw9iF5fEMhYK0>b_SR%1BJYZuW+Gg z90Tq&MT67X;SN|V_U?$FZqf4+cq`=DMk%CLC3XFCvXH;+1 zE!<4V3M6397>?`WeFfB4?S*Q8F5WO~!n-N!a$sUKSqP(ta{Cn`h;%{jFWXV;VRL%8 zr-!A>RF!M(mBWULT;P4R>nZNmFfKplRqoF%B$boHz{N>RbK~Wp2Wp#Z{^H~kIcSMm z@xR=A$GyL4^iu}u;7i`u5`WM`(sDl5a(+I4X$&b$OJ>LgZo7kHDrpx@8PFq%1O;|BwYkggQ3V|AHM-7$7j|Z-HGy5dD zuonQd>FjyU=NL&jB6-hJ$Ssj{9Jh`3key88SB>Uj^5czD99>rs{M^!(pH(Py8X@P_ zSF|(yRKu5i)Jdu&(^c%kc95j;Y~aciXW$Pa*p2g}S*pS~Ds72*BNct0QDJRr3_6f- z{)ISR%(_bm#U#?a?mIpZX{J(?z6IF0v@Yj#az8g~y}?&nlHOm9S1vVi=WDx;_Lkgo zt^eCm%cPjr_Qxy;v&qpYLss^-YrpDu_{URHtD2VvRQ1*>B;<(LG%W&M1@@e)3Rgg^ z`d)JDnd+}B0`fw>wm%R2ZX@J4f7WTq&xX;h`oAkxFyL)|Ht=W~ZRh*zfTSMRVvY@HVhIJ?e@&VS?J54LQE{GT$BL+8LKlN8_z|P`9|vek(=;?s0?p#6L0~&0 zhzhpI^!f$$3|v&E{dI|+c{q2#h+SxZMueI@o!(m#&yD(Ed7(Rn-Wq;_B32SdS{D?E zo7y>)V!zsMIP){S)05ZTC9 zVWIE1-!jRH8S)~B&NABT@NVYPsRLG^VaC1|wBIM3W$BLa*6BaLG5f4ndQwm41Nn1{ zPR_whE`3ES!*3t?5Wjaxl{1mqitCk3#?7i&Nc5$?3T%o?9CPp^Y9q$mn?7*ZhxkY-(Mm=Jyn!uv1Ce3xAW7T13m%n^C*K{9P7>pOb^K=ibhcsc z=`ZcG?f6rp{K3`zN#GaR{KW`U2yj9MAdhl?@HuQ?o?4)rmijHzm_#LsZByXdXkbeg zOT|udnPMGzIok!}qZ|ut)nffoyTtp@IN?&nOACE}0TFmL5qK0nRol?10<6Cv-E@Tq z#(y8i_s%HcVr%A8#htI0XZ-W1!IqGd+Lp^>{=Zl!->5%Oi&z9kZE_t+Rk=!sdf-Wpb zzJf@E!+6D41q-8XxscoW^Tr8s$5|-i4fp%PNBq=}8B%O&;z}@~ z{q5jQBVri`>3H-No&K;A5q;zQ8*t$V~zYQQQHE)X&i9ul3BK~kRe<6SU zCZQ%9ZGN%KeGpPlh4Fo30DZj-u=}^WYH+5(5iiRNbTw|{)|XSy;AudJ&?<#X3VfZ2_ED3@Eh zxK3?EO89YCJ=Kyl}8+137b@X0*AiDI643 z;Xb#Hna$&>vQO z>p7$60!@8lL7d@inNR5-I&2%$`+JE1h`KnoRZm0)y{jjMtu%eDHBmfAefa1?37zFR z+Xd>Iy`SJQnC5ytU4lo~FOghjcAiRUZGz@zOi{K$_ns}lWb7U?ya}%_1f(1AjA*;F zAEXnN2{j>wAhFK5Y4LTXjV*@7>UJ*I8};YXz@sh$2rlo-$$G zJBV2GsFvN;4h-OIJ4Tp{D^!+zT+ugzbS^xIxunftmB07~G?9%Oa6P?gD~+nLCIZk{ ztQ_$-;Q-uxAk5xp9hh!4e83MOWF!^-DG_NSiu+?3+ml^J#HeAodR~#nT4nEU+UAPo ziSB-6T8B)|*0M{_3b`m>>D>}KRHu9Za-m$J$V_!-boy1_(DO!y0SMk#FuJcbB8wo3 zq=vow(U1}Vo+419VcSRH*eS&T9hj-!%+>4F znbCpZhdDpYQ5)ZlKC*R4XmRr-bY*EQL(@cHa$aA4*HIy4h|(Mah&?l?LFV`GQnxaE z=l5tXW_vklS?^?^^5eTS%wNgHGtzLkt#@mv0en%=vhsubg<{4v+8WMB982I8_M=ni zeL1_qI~f1x4#=WwVX`+jd@9|M3mCu8ZyB&b18z{}h-#lag_V@Y!`p&&RLsK51}wEW zG@@jMyT%?*$|jpg`dxgzVuLo(|c^`%kX;Sj)@kJx`aUS9@xTq!Y;-fEo zhRg@Yi`-sxfjOti4lKa#icjoveF;L^hpQVC^;*=krD%sP@EcfF@$Jh|ZE!E|M~fSC z^fP@V2CN-}p0(8Zll%lCe$MFWnK0y|!7=QGhO$yYM;K^D{&{B*)0tZK6oXM9{joA+ zaDMOmFQ$>UV@oW+#lEZuoSM2B2_!UCCjX}UYo;uv!T2VSu z3Z-hFLJTZ}s>oU2Kljf*uADwEHhdooGFMp>&D_THE9NdAtSt*j-nsdpJ#!*i6fLI* z|Co#0!n;C09SOHzi;vPS#1#ApQM#s78@(X+u+f(Tz}w|_VWLLoM3%HG+QtPX0?2|c z$;`3%YEdit?RKY%zh|yF(dpW)Gn3fQ;%2Jvs4IfBP7|yJ$Nu;7=?{=a^u+I#8G96@ zBh66)_+@ryifIe{+3T37FvUjzrSR3tF7@xwep3Qw(*pnG*P6>MU`4=A^U9acZoY(( z6oa1mA3lNoU+c=AxI~&hB<--A%3%D?zim-_q`jxZP!N8Scg*bS85y-F;yichsaZOg zuHkim07cZR-?PAfZ}6*NWt2CXD=Im?)lss76H8={<7#sX-ay(AS`#kH4S!6dONPQk zUDt%82~}jPmeN_Qm(US)f&thtq1gXo2}ee_QTn8x0AvVno$$C^&;CE^qpb$%^|td7 z00sb}4!f-mHdI*3=?*bSXqn9e`PK0+evu83b zxgMXnt&}0PC~)LgGbsl`We<>XpqYA)cTa=RMf-q{F+h6n8kzk>{E7#)k>W+e-`Cnm z9w^$_OM^B=)C>GuiEX)rN8*#BC{K*PN3x|swwrcbNeir=Q8P4~;IEV>)Rqn8I)eK9 z$Euo=5t?ye0z}D{Gu;jTZ;AZAg8LE~e$|6i*(bE9_Mt-z!1-t9UhxiQsV!*T$z@O# zdUgQhHC0lRiwaLJR)=LN^Xc7unYEcOOr%yRyjOlNy^D$JlzG~GsYgAyLBr4to(4^j zw?310r~OCor7z$7kt|bm)&I|r|6jKpobSC7ofTSjvC(MBfD0Qe4~u|SFVv;y_*z!g zVVeepCf@$(9WY1!7a6V%gAvljtwZz$G|1jv6$qMikaqx=^G~|UmW5z%FhrrsTx>w8 zS{B-&xaQj})wY=f126v-ZL#$4&y zwv5o;HU1ABL>W1s2sx}ZT_4=?7XLGZEg^^F(+(5g2Okn=i)z_Yn6lq23N_KV5#8G0 z1}J{%tl5BJYjq*yZ1nK;@H?YMnauhL?HY|~?j|CV{Xsp?KCL&=M42ftLNIZoA;O<-JU{eQ-`c_lvW zt&UtA6awlF_=b^AC?fB~KP9WdGjg*3^^55$uiXPtyWV0*>l-fJ4Rn2!T=Top;^?@$ zGIX;`Ps5yLKH~XyruY?n$BC9@n<_qU(3$?jb~}Qf$ySpwouS!*!%!Zr=$lgcyHap= zFl8>jm^uPwz#jj(MyuJ69wm^5-InYvcE#FP)Bm`~(`&@gYHmj0vN!;y1#b%y(>GeD z11&CcAFPQ-U+nhJ`nPu#qRRg-*q;&sVyR5o3;c~>^kk=k(bFY^Xfy`pYk~^k2)v~B zdy9Xn9z5APAA=U`L`VL|2a{aWUDZ`5z-u(*LR|nYST3L)3!rM*)H62uS3Suy{&u5( zW4`rb>Q{??XxsZ9Y!g_qj+APBSv43Y68impvE~jJM3Q5mC4O@KlKZjdibA(tTs%|G z`b(}JtT}UKxuQG3c)p)11iC_+Y(5<-0`vqDh&7+^Dgcgj>xJ?E8qa@@|3cQ+z5>K3 zSm#|b8locwaevLI7ITlU2l!z0huG%?q!1U8G}5=fRrcjH=wR}r1?}N?|N0y$OW$AI zY7Ri-z~eiE$4~5MTD_9`C^CoiGjMsG!R?a692ifjXT|?1&)`l{$qMrEK;^9%+v>Tx zkZbqu2WS}!IL0gYJcE{YFwvN|&%Bv=)mJQ+^QwOfB#9fiY&TO$dD21xSUjs1EFN8I zb!q)l`>xGrN-2&`FIse=5JVS>e;Qg75}LtE0=(Zf(v`f;@IJ)rT|Ww?^51#*cN})g zAbU$fP-4pXn+vMnc*noraNV|Li}jDiDNWm4!=?c*^c-nDzMe-5 zQF>3HE7s8xSaJR|P^bjQ9U!#j?%FvzZh{_^X#a@??xE)vmpTsHQ%C5$`M;ClPkE|y z*8g1g5#563fofK;37}&qI(WSr1rEx>q)ZRY2nrFAhCU?NG75#jm$$Zh_Se{!J<$hy z$y@Z;x%fA~Cg#8VyIfAwR-b@MrUHV$V`^C}3e>C|`%hFaWv*l1;@L6ny%;&$t%mPhR3FY5R1smG}_$Y&((Nh!v zqG62kLnpoB6q>6pryb{6V{{nFM(?QwW;x3FK&d^whM;Zy(<;D6kq(0Ys*{7KdT@R8 z>0xK(|ExvF$WTxU`yb-U^8W(6RCK}6vT;W)&1MBKT@~4ae$WG|BEyG+hESG$ELV|w z4U#5H-wHYryy#4l=;z~x`4NW8twXK(Im){c7a4~f4h!$FH@?2OMpE8k>&son01XuL zlR8)J{t*Ke(LKSShUwnv-rx|JZX3(%UU+PJ!;!-aqJ+Ce#8SHMs&12}T&=`Vc9`Zg zqmgYMM|~R)cq-cRa4xGyNac8Vx9PK?_>-zLZ}GkAwAw0`3+d{9vzaU-Pf@z~1ukRw zafkov-lk3ut-_X6N}Xn_Qs*RVs$vGTw?-?aD*evQfcet90`NvghBB_y89|dRH`X|Y zfTvq>MTWe79k214e0wreJ5AKGiAJpOL&QbQ1a$?c?Y%IXlIJe6=!ga|60hFM4z=i8 zw~n41jm!G#Z?urgOiuUn+^?l4iWtdS*7B`F0vkJLbEG;*r-T98HN;sn724fRs_)We zb8ic9t}??91>Y7<>1+hwdxod!)l#yN_&I||w*oPGP~CI3-Y*n<(`5DecL>MItaM{= z?W6fz%Wsy_m&lHB>doVgoP z1(e~?&45FHBI@k4*9Qsgql*~;TfX;?|%THO=_b6 From 09aa018fec93dbe7feff90ae4f16535a2b3cf630 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Wed, 26 Jun 2024 16:46:17 +0800 Subject: [PATCH 19/49] =?UTF-8?q?=E9=92=BB=E7=9F=B3=E5=AD=98=E9=92=B1?= =?UTF-8?q?=E7=BD=90=20+=E8=8E=B7=E5=8F=96=E8=BF=90=E8=90=A5=E5=95=86?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/constant.go | 1 + data/DB_GameItem.dat | Bin 8437 -> 8619 bytes data/DB_GameItem.json | 262 ++++++++-- data/DB_PropExchange.dat | Bin 384 -> 384 bytes data/DB_Task.dat | Bin 2161 -> 2161 bytes protocol/player/player.pb.go | 918 +++++++++++++++++++++-------------- protocol/player/player.proto | 15 + protocol/webapi/webapi.pb.go | 384 ++++++++++++--- protocol/webapi/webapi.proto | 16 + webapi/deprecated.go | 5 + worldsrv/action_player.go | 41 ++ worldsrv/action_server.go | 8 + worldsrv/bagmgr.go | 5 +- worldsrv/taskmgr.go | 9 +- worldsrv/welfmgr.go | 18 +- xlsx/DB_GameItem.xlsx | Bin 23214 -> 23164 bytes 16 files changed, 1197 insertions(+), 485 deletions(-) diff --git a/common/constant.go b/common/constant.go index 019e4bb..1171250 100644 --- a/common/constant.go +++ b/common/constant.go @@ -675,6 +675,7 @@ const ( TaskTypeInviteNum = 16 // 邀请绑定数量* TaskTypeTurnplate = 17 // 转盘抽奖次数 TaskTypeInviteRecharge = 18 // 被邀请人充值金额* + TaskTypeLoseCoin = 19 // 输的金币数量 ) const ( diff --git a/data/DB_GameItem.dat b/data/DB_GameItem.dat index 8f1263ef62d7f727c10daaf8f8c17d7b3a101114..08348aff54374fb35c99f2e1e6eca2e693d96c37 100644 GIT binary patch literal 8619 zcmchcT}&g_6~`Gc>}BGJ#%-!J50Sbr-M#@)8>z}e+NdpkCss8Vbu?IsJ z2WEMhUG4h(&VSB5_uMo0h#r9ix@}fAHLd1j^1N4e4?o!`2p5|Kq2ZFyX%QNPhHq%k z=Y%fTS6&pZ`nq3j?r3js@3{GbR0_+Jsr$v-cuEB?9UGPli}#D8%3@rdw9~by>|WBz z_lqIwOVe;lSsYi~8`LwW43^Z`rW%=-O8YRs*FPYNBLazq1)EiMY}0(OR!w7#nm;<5 z%5pk2Io%JIqkGoTb;&_!=D8XrvPF~GlhjmV!^L#otV@heu1icnAaRIkQ&%ThI8F1e zll1swZHDMPeY2;o=p4}N()6A{GJh9rmdkW3R!*7*;Zjr0G93g)XulZ}u+nP(Br-f~v3VMF(mAh`U)56q38eo!8%VLitg>L2Zx11p=!BhTiBwpm!v#?2-Vi{&Ke>M6 zwd*%z?-I)f!C(smvUiwy-HN}&-=Yv?*_5*7QCDsOtpB_I8#+G9g6rzAPyb(WLLeJ> zofdUCKwbGmFVvvz0{%4Y0=&>G=D!bhIB0*7O>ZfiQMKPL{)}WH>hm4cF{q>?N^VDw zjU2T<+1SuU2s@rm7|Wkf$zxcO`pXs;L*ulcfH! z3P&o8V0YE}roI8{iAuY>Y{;ihF0kk@T=E0KyG{3|bz@O{lf3V2vRU;CCMSw=X#9{M zLCaxaQ>{Z)dJ4)jmOSQ0d^Bszhu2{*wF|ejoil_v*$eIgdlI`p$6t|0>M$Myb4R z7W=6`P5oXJ&~j9d6~N6_rS+Rb;R~InBM3NrTu8W?4NSZixW#UGGQ;o^(OxJWELfd54O{CmgppQaDwch$@P zA(4*dKl5OIs_pCrPg6^7mepcYW&eXcZUr*{TlfQPShgwXaU+sM8@8#?hK6F|_rLHab|NS@^^=TN zVlTO~Y_YW>+-h=Fb{IOd&tc)v4dTlR&q_DS&ke;sDQ9=-+B^%7l{@&gS^kx(wPP+p z0QF;yI=G7Dq;VwY!M(~^sD0!UP}`LKZK)K+A*9B=%y?&W7WOsr_J+k~quvy@tUTb+ z+S_R*?l41oBdX9lz_-Yem=cSdgX|^00O=#?wIa^-KAOYk;nhy6PAZA3PNxVW@}tCHe;Rs3vesVWN3I@DVdT}&EjQp_kD})k>2Y+y75!J zNj4+0E!eG}f@`HaSr)-mWK$Umm;>%1_W*8D`m?xjGzWQwNL(wMDPWX?AfT-`2i!*} zz-`jrKJyo7(WlO3QNzt)Um=W(#s!?5$(p%xedOIc5Up%EXnsJ+t@2K=G8Mrn?er({ z1)Rjc=B+O+We(j8pGEP@v55U*#ujWv5N-q6s>bJ#%4}oD9BMZSf!ZX8{O0g_NSMF4 z>d2TTv4=!7WIm>Z@I`<2!@U)glsq4qRfmIeD2I>HL%ZxTZK@$?Qw>4CW_qqNNIGFM zDCGxn9VO?|^6H+lA5w2&63*u+7!kfncDU>6i155zH^Oy+yRHrj&&zeQ_zSWN*T!+- IdHELq2h}k8(*OVf literal 8437 zcmchcT})%g700=J?Qr9W)@`aZ50Sbr-M#^76=|Qgin`rODWqsOrP?-aRqaEgYOA71 zS@j76HnstO0ET64gN+Rs2pD4n#@L{w?L*QJHEoi1lfG>B&dj}i+2?+$|M4~U#ii82 zcX_!WxaW8NbLPyMb7y3yMEu=W3!9$NvQfU^;jWQq8YSsslO#1Fh zzxa~W=k0#ArL&`>qqDz9DTMe`;!*w{o=VO`$47W>`B8pMU5;r}Ho6hvt`(j8C?BNW zBn>6hZGDP`k~Hf)U5zi= zZivit{okr7GDqy16ul#n)L$iQ^UHKRT1u7%=~C0N2|5aj)X^W5FvHrw6f#B60&4fO z@dX-i(0PxNUDs0piKG9W4JO!7T3xd7d&9^eI%yNxq2!k7NDdTwFbvT3AK$wDlUujB zXN9E$V6de@?ipbom+C8sG2{X)oltk&+S*-!^}p-y(1|e?*wjY6`hR7=M7A)PR&B&j zo!Mi0uBcO&Xj7nW9GK2dFPeeI69cQan#| zFU;0wSTP6WKJuRM{nbzC`wMzOHlk2WOVy@WdqI9*kh>oT`2#`z`r{z~NsxOU2l>wi z&D#EOZF5{xobL;AX$H+De<;YMyfl~mksyCfkF%NNZBR>8CEbhIVB0Hoxlj6m^eXn(izPFb%`&GK#fuPST^W|q*~ebsG1BguU9=przT3Ve3>j1Z725me7drEww`WVd>ghg*tV65 zdMZ*eC)MWdN_JJr<;t(hFOoQHEhw||_Z(P?dN^h|`SWZ8qsrJa+tveoDT#?3+^I`l)W&@Nv#~CjoeG_uQprT5M*s}o!brF z)u%97lK2{uD&3^m4OH6{Pw&%>1r{1F_1+tE;;XXQQaL3F%nysqp>?DpjUg3}PCw4h z>?0q6*{&Y$DuoC(7A@vs#&eaklW&qYx0PcW}@Jz)E|c?`36}7*@AwHrEEIi4D3zv2C!D~q2Z0; zsqFd8gZB~tTZjg8$JN0&4l?MXIcuRAWnltjk-F6DHzmT&i0~ws7L+fPLGGHR&fWSW z+>8}51#GLfG;5O1UJ@vdeayxDD>S=ghR9wrU1YlBh$qjW2dlTtiaGk*+hRNLhm?GQ z&aKtYY(X&p4rZ&mo96py2I>_lfd3Fcp4{NRA#;HLEGpbdn*_W;{so|g+7{K^8rnwg zF`=%uV0QiuY#U9bXlPR{n2<#+@^$jy-Dc|(*Khsk_D}T&xBiH>VqJa=s)g>QSs1qw z+v>323~Ud12yCl5kjBBE8NeGv5jxpy4%a6bKH70JuziFA+pZiOGGC77z1n;l71|8) z4Z?(A9EI^z+PwMdBX8e_V0Fh%vx918UG#J1n+RN6oppD;fZg>SLDu3v>amM6So~7H z6sU{bOMVTqXkBR`b?jXB>}p>jzX9_p+^g~2p&kb%f0qqKOw;^Zp_%FXfH`rvNm38c z4zSQ0s0wU0iEq&AgX*&egrMYX0p3P84zwkQDM2Pki8Pq)IPyW~f*TX_)b@~B4fTP> zm$5qPUv6y}{yhNOwAegSmu>Bt!F-Vf!EE9|pBc0s5)wn!>?xDv^^kB8n2oAId~?^k zUAN)RA}cPXDpzkjn8AnRu@&{{$_;{k>~p1jUGsnL-IVMQj)!;IUwc}We?CjVEsTEtNBWtV0SdEeZ;~Q%fSM62+W}<4#49vu!pc%a0l#gc8*0r MkA7k1VxTPq0Amt7H2?qr literal 384 zcmd-w<6snElw#w!*2WB`uS4m}Q2Gj#z6zq1I5-yevI!h$vE|a^U;?YZ1(m-IrEfs# zn`r98IUwevn~Sa=tPkiOuzgtE1vX!a6YP$LwU1c1VmVk)91b%8-C%T!(Jg>E{0`XR Q>>P`L9{s}1#XwsK0A;c~H2?qr diff --git a/data/DB_Task.dat b/data/DB_Task.dat index 7ae1e8df9bc416e978bc2a2335df9e695e0ebe6e..d16f02ada5d4253d14a46530c27bb2024e0cd0ea 100644 GIT binary patch delta 137 zcmew;@KIobu^=1Al3q3e5i1Ukg+O{iFWW{JLB`2j*hMyHGV(A2r7yNI3vfZDFD&($ z+{RP}6kP;V%nB84=&ahz%d7xW3=(EUn6=rC#g%|H{WKP G#s~lk<|O?9 delta 151 zcmew;@KIobu^

!d^Ck1-)!mY#d8~ERl^af{cP}9E*T#Mk~1N<}^lrMyTQoOMQTf zFSaoYa7}JwDuaqPbXEaHLE2b1^D-+iPTs;UxY>@y7G@YL%& player.BillItem 0, // 1: player.SCSavePlayerInfo.OpRetCode:type_name -> player.OpResultCode - 137, // 2: player.PlayerData.RankScore:type_name -> player.PlayerData.RankScoreEntry + 140, // 2: player.PlayerData.RankScore:type_name -> player.PlayerData.RankScoreEntry 9, // 3: player.PlayerData.WeekCard:type_name -> player.WeekInfo 0, // 4: player.SCPlayerData.OpRetCode:type_name -> player.OpResultCode 8, // 5: player.SCPlayerData.Data:type_name -> player.PlayerData 10, // 6: player.SCPlayerData.MiniGameArr:type_name -> player.MiniGameInfo - 138, // 7: player.SCPlayerDataUpdate.RankScore:type_name -> player.SCPlayerDataUpdate.RankScoreEntry + 141, // 7: player.SCPlayerDataUpdate.RankScore:type_name -> player.SCPlayerDataUpdate.RankScoreEntry 8, // 8: player.SCThirdPlayerData.Data:type_name -> player.PlayerData 0, // 9: player.SCChangeNick.OpRetCode:type_name -> player.OpResultCode 0, // 10: player.SCChangePassword.OpRetCode:type_name -> player.OpResultCode @@ -11086,7 +11249,7 @@ var file_player_proto_depIdxs = []int32{ 93, // 41: player.JybInfoAward.ItemId:type_name -> player.ItemInfo 0, // 42: player.SCPlayerSetting.OpRetCode:type_name -> player.OpResultCode 94, // 43: player.SCPlayerSetting.GainItem:type_name -> player.JybInfoAward - 139, // 44: player.SCGameExDropItems.Items:type_name -> player.SCGameExDropItems.ItemsEntry + 142, // 44: player.SCGameExDropItems.Items:type_name -> player.SCGameExDropItems.ItemsEntry 0, // 45: player.SCVIPBuy.OpRetCode:type_name -> player.OpResultCode 0, // 46: player.SCVIPDraw.OpRetCode:type_name -> player.OpResultCode 93, // 47: player.VIPcfg.Item:type_name -> player.ItemInfo @@ -11095,7 +11258,7 @@ var file_player_proto_depIdxs = []int32{ 103, // 50: player.SCVIPInfo.List:type_name -> player.VIPcfg 108, // 51: player.SCPayGoodsInfo.Item:type_name -> player.PayItem 0, // 52: player.SCClientLog.OpRetCode:type_name -> player.OpResultCode - 140, // 53: player.SCBindTelInfo.BindTelReward:type_name -> player.SCBindTelInfo.BindTelRewardEntry + 143, // 53: player.SCBindTelInfo.BindTelReward:type_name -> player.SCBindTelInfo.BindTelRewardEntry 0, // 54: player.SCPlayerSMSCode.Code:type_name -> player.OpResultCode 0, // 55: player.SCBindTel.Code:type_name -> player.OpResultCode 0, // 56: player.SCHttpPass.OpRetCode:type_name -> player.OpResultCode @@ -11104,11 +11267,12 @@ var file_player_proto_depIdxs = []int32{ 108, // 59: player.SCGetWeekCardAwary.Items:type_name -> player.PayItem 9, // 60: player.SCGetWeekCardAwary.WeekCard:type_name -> player.WeekInfo 135, // 61: player.SCExchangeChannel.Datas:type_name -> player.ChannelSwitch - 62, // [62:62] is the sub-list for method output_type - 62, // [62:62] is the sub-list for method input_type - 62, // [62:62] is the sub-list for extension type_name - 62, // [62:62] is the sub-list for extension extendee - 0, // [0:62] is the sub-list for field type_name + 139, // 62: player.SCSMSConfig.Info:type_name -> player.SMSInfo + 63, // [63:63] is the sub-list for method output_type + 63, // [63:63] is the sub-list for method input_type + 63, // [63:63] is the sub-list for extension type_name + 63, // [63:63] is the sub-list for extension extendee + 0, // [0:63] is the sub-list for field type_name } func init() { file_player_proto_init() } @@ -12737,6 +12901,42 @@ func file_player_proto_init() { return nil } } + file_player_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSSMSConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_player_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCSMSConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_player_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SMSInfo); 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{ @@ -12744,7 +12944,7 @@ func file_player_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_player_proto_rawDesc, NumEnums: 2, - NumMessages: 139, + NumMessages: 142, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/player/player.proto b/protocol/player/player.proto index f07f0fd..ccbdfcc 100644 --- a/protocol/player/player.proto +++ b/protocol/player/player.proto @@ -207,6 +207,8 @@ enum PlayerPacketID { PACKET_SCPigBankCoin = 2824;//存钱罐金币数量 PACKET_CSExchangeChannel = 2825; // 开启兑换的渠道 PACKET_SCExchangeChannel = 2826; // 开启兑换的渠道 + PACKET_CSSMSConfig = 2827; //获取运营商配置 + PACKET_SCSMSConfig = 2828; //返回运营商配置 } // 账变记录 @@ -1195,4 +1197,17 @@ message ChannelSwitch { // PACKET_SCExchangeChannel message SCExchangeChannel{ repeated ChannelSwitch Datas = 1; +} + +//请求运营商配置 +//PACKET_CSSMSConfig +message CSSMSConfig{ +} +//PACKET_SCSMSConfig +message SCSMSConfig{ + repeated SMSInfo Info = 1; +} +message SMSInfo{ + int32 Id = 1; + string SmsName = 2; } \ No newline at end of file diff --git a/protocol/webapi/webapi.pb.go b/protocol/webapi/webapi.pb.go index 1907457..9f91692 100644 --- a/protocol/webapi/webapi.pb.go +++ b/protocol/webapi/webapi.pb.go @@ -8653,6 +8653,196 @@ func (x *SAAddItemById) GetMsg() string { return "" } +//获取运营商配置[/get_SMSConfig] +type ASSMSConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` // 平台id + SnId int32 `protobuf:"varint,2,opt,name=SnId,proto3" json:"SnId,omitempty"` // 玩家id +} + +func (x *ASSMSConfig) Reset() { + *x = ASSMSConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_webapi_proto_msgTypes[127] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ASSMSConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ASSMSConfig) ProtoMessage() {} + +func (x *ASSMSConfig) ProtoReflect() protoreflect.Message { + mi := &file_webapi_proto_msgTypes[127] + 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 ASSMSConfig.ProtoReflect.Descriptor instead. +func (*ASSMSConfig) Descriptor() ([]byte, []int) { + return file_webapi_proto_rawDescGZIP(), []int{127} +} + +func (x *ASSMSConfig) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *ASSMSConfig) GetSnId() int32 { + if x != nil { + return x.SnId + } + return 0 +} + +type SASMSConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` // 平台id + SnId int32 `protobuf:"varint,2,opt,name=SnId,proto3" json:"SnId,omitempty"` // 玩家id + Info []*SMSInfo `protobuf:"bytes,3,rep,name=Info,proto3" json:"Info,omitempty"` + Tag TagCode `protobuf:"varint,4,opt,name=Tag,proto3,enum=webapi.TagCode" json:"Tag,omitempty"` //错误码 + Msg string `protobuf:"bytes,5,opt,name=Msg,proto3" json:"Msg,omitempty"` //错误信息(选填) +} + +func (x *SASMSConfig) Reset() { + *x = SASMSConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_webapi_proto_msgTypes[128] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SASMSConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SASMSConfig) ProtoMessage() {} + +func (x *SASMSConfig) ProtoReflect() protoreflect.Message { + mi := &file_webapi_proto_msgTypes[128] + 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 SASMSConfig.ProtoReflect.Descriptor instead. +func (*SASMSConfig) Descriptor() ([]byte, []int) { + return file_webapi_proto_rawDescGZIP(), []int{128} +} + +func (x *SASMSConfig) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *SASMSConfig) GetSnId() int32 { + if x != nil { + return x.SnId + } + return 0 +} + +func (x *SASMSConfig) GetInfo() []*SMSInfo { + if x != nil { + return x.Info + } + return nil +} + +func (x *SASMSConfig) GetTag() TagCode { + if x != nil { + return x.Tag + } + return TagCode_UNKNOWN +} + +func (x *SASMSConfig) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +type SMSInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` + SmsName string `protobuf:"bytes,2,opt,name=SmsName,proto3" json:"SmsName,omitempty"` +} + +func (x *SMSInfo) Reset() { + *x = SMSInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_webapi_proto_msgTypes[129] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SMSInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SMSInfo) ProtoMessage() {} + +func (x *SMSInfo) ProtoReflect() protoreflect.Message { + mi := &file_webapi_proto_msgTypes[129] + 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 SMSInfo.ProtoReflect.Descriptor instead. +func (*SMSInfo) Descriptor() ([]byte, []int) { + return file_webapi_proto_rawDescGZIP(), []int{129} +} + +func (x *SMSInfo) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *SMSInfo) GetSmsName() string { + if x != nil { + return x.SmsName + } + return "" +} + var File_webapi_proto protoreflect.FileDescriptor var file_webapi_proto_rawDesc = []byte{ @@ -9588,23 +9778,40 @@ var file_webapi_proto_rawDesc = []byte{ 0x79, 0x49, 0x64, 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, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x3d, 0x0a, 0x0b, 0x41, 0x53, 0x53, 0x4d, + 0x53, 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, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x22, 0x97, 0x01, 0x0a, 0x0b, 0x53, 0x41, 0x53, 0x4d, + 0x53, 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, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x53, + 0x4d, 0x53, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x03, + 0x54, 0x61, 0x67, 0x18, 0x04, 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, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, + 0x67, 0x22, 0x33, 0x0a, 0x07, 0x53, 0x4d, 0x53, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x53, 0x6d, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, + 0x6d, 0x73, 0x4e, 0x61, 0x6d, 0x65, 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 ( @@ -9620,7 +9827,7 @@ func file_webapi_proto_rawDescGZIP() []byte { } var file_webapi_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_webapi_proto_msgTypes = make([]protoimpl.MessageInfo, 127) +var file_webapi_proto_msgTypes = make([]protoimpl.MessageInfo, 130) var file_webapi_proto_goTypes = []interface{}{ (TagCode)(0), // 0: webapi.TagCode (*SAPlatformInfo)(nil), // 1: webapi.SAPlatformInfo @@ -9750,92 +9957,95 @@ var file_webapi_proto_goTypes = []interface{}{ (*SAPlayerInviteLink)(nil), // 125: webapi.SAPlayerInviteLink (*ASAddItemById)(nil), // 126: webapi.ASAddItemById (*SAAddItemById)(nil), // 127: webapi.SAAddItemById - (*Platform)(nil), // 128: webapi.Platform - (*PlatformGameConfig)(nil), // 129: webapi.PlatformGameConfig - (*GameConfigGroup)(nil), // 130: webapi.GameConfigGroup - (*GameConfigGlobal)(nil), // 131: webapi.GameConfigGlobal - (*PlatformDbConfig)(nil), // 132: webapi.PlatformDbConfig - (*CoinPoolSetting)(nil), // 133: webapi.CoinPoolSetting - (*RoomInfo)(nil), // 134: webapi.RoomInfo - (*PlayerSingleAdjust)(nil), // 135: webapi.PlayerSingleAdjust - (*PlayerData)(nil), // 136: webapi.PlayerData - (*HorseRaceLamp)(nil), // 137: webapi.HorseRaceLamp - (*MessageInfo)(nil), // 138: webapi.MessageInfo - (*ServerInfo)(nil), // 139: webapi.ServerInfo - (*OnlineReport)(nil), // 140: webapi.OnlineReport - (*ItemInfo)(nil), // 141: webapi.ItemInfo - (*ExchangeShop)(nil), // 142: webapi.ExchangeShop + (*ASSMSConfig)(nil), // 128: webapi.ASSMSConfig + (*SASMSConfig)(nil), // 129: webapi.SASMSConfig + (*SMSInfo)(nil), // 130: webapi.SMSInfo + (*Platform)(nil), // 131: webapi.Platform + (*PlatformGameConfig)(nil), // 132: webapi.PlatformGameConfig + (*GameConfigGroup)(nil), // 133: webapi.GameConfigGroup + (*GameConfigGlobal)(nil), // 134: webapi.GameConfigGlobal + (*PlatformDbConfig)(nil), // 135: webapi.PlatformDbConfig + (*CoinPoolSetting)(nil), // 136: webapi.CoinPoolSetting + (*RoomInfo)(nil), // 137: webapi.RoomInfo + (*PlayerSingleAdjust)(nil), // 138: webapi.PlayerSingleAdjust + (*PlayerData)(nil), // 139: webapi.PlayerData + (*HorseRaceLamp)(nil), // 140: webapi.HorseRaceLamp + (*MessageInfo)(nil), // 141: webapi.MessageInfo + (*ServerInfo)(nil), // 142: webapi.ServerInfo + (*OnlineReport)(nil), // 143: webapi.OnlineReport + (*ItemInfo)(nil), // 144: webapi.ItemInfo + (*ExchangeShop)(nil), // 145: webapi.ExchangeShop } var file_webapi_proto_depIdxs = []int32{ 0, // 0: webapi.ASPlatformInfo.Tag:type_name -> webapi.TagCode - 128, // 1: webapi.ASPlatformInfo.Platforms:type_name -> webapi.Platform + 131, // 1: webapi.ASPlatformInfo.Platforms:type_name -> webapi.Platform 0, // 2: webapi.ASGameConfig.Tag:type_name -> webapi.TagCode - 129, // 3: webapi.ASGameConfig.Configs:type_name -> webapi.PlatformGameConfig + 132, // 3: webapi.ASGameConfig.Configs:type_name -> webapi.PlatformGameConfig 0, // 4: webapi.ASGameConfigGroup.Tag:type_name -> webapi.TagCode - 130, // 5: webapi.ASGameConfigGroup.GameConfigGroup:type_name -> webapi.GameConfigGroup + 133, // 5: webapi.ASGameConfigGroup.GameConfigGroup:type_name -> webapi.GameConfigGroup 0, // 6: webapi.ASGameConfigGlobal.Tag:type_name -> webapi.TagCode - 131, // 7: webapi.ASGameConfigGlobal.GameStatus:type_name -> webapi.GameConfigGlobal + 134, // 7: webapi.ASGameConfigGlobal.GameStatus:type_name -> webapi.GameConfigGlobal 0, // 8: webapi.ASDbConfig.Tag:type_name -> webapi.TagCode - 132, // 9: webapi.ASDbConfig.DbConfigs:type_name -> webapi.PlatformDbConfig - 128, // 10: webapi.ASUpdatePlatform.Platforms:type_name -> webapi.Platform + 135, // 9: webapi.ASDbConfig.DbConfigs:type_name -> webapi.PlatformDbConfig + 131, // 10: webapi.ASUpdatePlatform.Platforms:type_name -> webapi.Platform 0, // 11: webapi.SAUpdatePlatform.Tag:type_name -> webapi.TagCode - 131, // 12: webapi.ASUpdateGameConfigGlobal.GameStatus:type_name -> webapi.GameConfigGlobal + 134, // 12: webapi.ASUpdateGameConfigGlobal.GameStatus:type_name -> webapi.GameConfigGlobal 0, // 13: webapi.SAUpdateGameConfigGlobal.Tag:type_name -> webapi.TagCode - 129, // 14: webapi.ASUpdateGameConfig.Config:type_name -> webapi.PlatformGameConfig + 132, // 14: webapi.ASUpdateGameConfig.Config:type_name -> webapi.PlatformGameConfig 0, // 15: webapi.SAUpdateGameConfig.Tag:type_name -> webapi.TagCode - 130, // 16: webapi.ASUpdateGameConfigGroup.GameConfigGroup:type_name -> webapi.GameConfigGroup + 133, // 16: webapi.ASUpdateGameConfigGroup.GameConfigGroup:type_name -> webapi.GameConfigGroup 0, // 17: webapi.SAUpdateGameConfigGroup.Tag:type_name -> webapi.TagCode 0, // 18: webapi.SAAddCoinById.Tag:type_name -> webapi.TagCode 0, // 19: webapi.SAResetGamePool.Tag:type_name -> webapi.TagCode - 133, // 20: webapi.ASUpdateGamePool.CoinPoolSetting:type_name -> webapi.CoinPoolSetting + 136, // 20: webapi.ASUpdateGamePool.CoinPoolSetting:type_name -> webapi.CoinPoolSetting 0, // 21: webapi.SAUpdateGamePool.Tag:type_name -> webapi.TagCode 0, // 22: webapi.SAQueryGamePoolByGameId.Tag:type_name -> webapi.TagCode - 133, // 23: webapi.SAQueryGamePoolByGameId.CoinPoolSetting:type_name -> webapi.CoinPoolSetting - 133, // 24: webapi.CoinPoolStatesInfo.CoinPoolSetting:type_name -> webapi.CoinPoolSetting + 136, // 23: webapi.SAQueryGamePoolByGameId.CoinPoolSetting:type_name -> webapi.CoinPoolSetting + 136, // 24: webapi.CoinPoolStatesInfo.CoinPoolSetting:type_name -> webapi.CoinPoolSetting 0, // 25: webapi.SAQueryAllGamePool.Tag:type_name -> webapi.TagCode 26, // 26: webapi.SAQueryAllGamePool.CoinPoolStatesInfo:type_name -> webapi.CoinPoolStatesInfo 0, // 27: webapi.SAListRoom.Tag:type_name -> webapi.TagCode - 134, // 28: webapi.SAListRoom.RoomInfo:type_name -> webapi.RoomInfo + 137, // 28: webapi.SAListRoom.RoomInfo:type_name -> webapi.RoomInfo 0, // 29: webapi.SAGetRoom.Tag:type_name -> webapi.TagCode - 134, // 30: webapi.SAGetRoom.RoomInfo:type_name -> webapi.RoomInfo + 137, // 30: webapi.SAGetRoom.RoomInfo:type_name -> webapi.RoomInfo 0, // 31: webapi.SADestroyRoom.Tag:type_name -> webapi.TagCode - 135, // 32: webapi.ASSinglePlayerAdjust.PlayerSingleAdjust:type_name -> webapi.PlayerSingleAdjust + 138, // 32: webapi.ASSinglePlayerAdjust.PlayerSingleAdjust:type_name -> webapi.PlayerSingleAdjust 0, // 33: webapi.SASinglePlayerAdjust.Tag:type_name -> webapi.TagCode - 135, // 34: webapi.SASinglePlayerAdjust.PlayerSingleAdjust:type_name -> webapi.PlayerSingleAdjust + 138, // 34: webapi.SASinglePlayerAdjust.PlayerSingleAdjust:type_name -> webapi.PlayerSingleAdjust 0, // 35: webapi.SAGetPlayerData.Tag:type_name -> webapi.TagCode - 136, // 36: webapi.SAGetPlayerData.PlayerData:type_name -> webapi.PlayerData + 139, // 36: webapi.SAGetPlayerData.PlayerData:type_name -> webapi.PlayerData 0, // 37: webapi.SAMorePlayerData.Tag:type_name -> webapi.TagCode - 136, // 38: webapi.SAMorePlayerData.PlayerData:type_name -> webapi.PlayerData + 139, // 38: webapi.SAMorePlayerData.PlayerData:type_name -> webapi.PlayerData 0, // 39: webapi.SAKickPlayer.Tag:type_name -> webapi.TagCode 42, // 40: webapi.ASUpdatePlayerElement.PlayerEleArgs:type_name -> webapi.PlayerEleArgs 0, // 41: webapi.SAUpdatePlayerElement.Tag:type_name -> webapi.TagCode 0, // 42: webapi.SAWhiteBlackControl.Tag:type_name -> webapi.TagCode 0, // 43: webapi.SAQueryHorseRaceLampList.Tag:type_name -> webapi.TagCode - 137, // 44: webapi.SAQueryHorseRaceLampList.HorseRaceLamp:type_name -> webapi.HorseRaceLamp + 140, // 44: webapi.SAQueryHorseRaceLampList.HorseRaceLamp:type_name -> webapi.HorseRaceLamp 0, // 45: webapi.SACreateHorseRaceLamp.Tag:type_name -> webapi.TagCode 0, // 46: webapi.SAGetHorseRaceLampById.Tag:type_name -> webapi.TagCode - 137, // 47: webapi.SAGetHorseRaceLampById.HorseRaceLamp:type_name -> webapi.HorseRaceLamp - 137, // 48: webapi.ASEditHorseRaceLamp.HorseRaceLamp:type_name -> webapi.HorseRaceLamp + 140, // 47: webapi.SAGetHorseRaceLampById.HorseRaceLamp:type_name -> webapi.HorseRaceLamp + 140, // 48: webapi.ASEditHorseRaceLamp.HorseRaceLamp:type_name -> webapi.HorseRaceLamp 0, // 49: webapi.SAEditHorseRaceLamp.Tag:type_name -> webapi.TagCode 0, // 50: webapi.SARemoveHorseRaceLampById.Tag:type_name -> webapi.TagCode 0, // 51: webapi.SABlackBySnId.Tag:type_name -> webapi.TagCode 0, // 52: webapi.SACreateShortMessage.Tag:type_name -> webapi.TagCode 0, // 53: webapi.SAQueryShortMessageList.Tag:type_name -> webapi.TagCode - 138, // 54: webapi.SAQueryShortMessageList.MessageInfo:type_name -> webapi.MessageInfo + 141, // 54: webapi.SAQueryShortMessageList.MessageInfo:type_name -> webapi.MessageInfo 0, // 55: webapi.SADeleteShortMessage.Tag:type_name -> webapi.TagCode 0, // 56: webapi.SAQueryOnlineReportList.Tag:type_name -> webapi.TagCode - 136, // 57: webapi.SAQueryOnlineReportList.PlayerData:type_name -> webapi.PlayerData + 139, // 57: webapi.SAQueryOnlineReportList.PlayerData:type_name -> webapi.PlayerData 0, // 58: webapi.SASrvCtrlClose.Tag:type_name -> webapi.TagCode 0, // 59: webapi.SASrvCtrlNotice.Tag:type_name -> webapi.TagCode 0, // 60: webapi.SASrvCtrlStartScript.Tag:type_name -> webapi.TagCode 0, // 61: webapi.SAListServerStates.Tag:type_name -> webapi.TagCode - 139, // 62: webapi.SAListServerStates.ServerInfo:type_name -> webapi.ServerInfo + 142, // 62: webapi.SAListServerStates.ServerInfo:type_name -> webapi.ServerInfo 0, // 63: webapi.SAServerStateSwitch.Tag:type_name -> webapi.TagCode 0, // 64: webapi.SAResetEtcdData.Tag:type_name -> webapi.TagCode 0, // 65: webapi.SAOnlineReportTotal.Tag:type_name -> webapi.TagCode - 140, // 66: webapi.SAOnlineReportTotal.OnlineReport:type_name -> webapi.OnlineReport + 143, // 66: webapi.SAOnlineReportTotal.OnlineReport:type_name -> webapi.OnlineReport 0, // 67: webapi.SAAddCoinByIdAndPT.Tag:type_name -> webapi.TagCode - 141, // 68: webapi.JybInfoAward.ItemId:type_name -> webapi.ItemInfo + 144, // 68: webapi.JybInfoAward.ItemId:type_name -> webapi.ItemInfo 83, // 69: webapi.ASCreateJYB.Award:type_name -> webapi.JybInfoAward 0, // 70: webapi.SACreateJYB.Tag:type_name -> webapi.TagCode 0, // 71: webapi.SAUpdateJYB.Tag:type_name -> webapi.TagCode @@ -9847,9 +10057,9 @@ var file_webapi_proto_depIdxs = []int32{ 94, // 77: webapi.SAGetExchangeOrder.OrderList:type_name -> webapi.ExchangeOrderInfo 0, // 78: webapi.SAUpExchangeStatus.Tag:type_name -> webapi.TagCode 0, // 79: webapi.SAGetExchangeShop.Tag:type_name -> webapi.TagCode - 142, // 80: webapi.SAGetExchangeShop.List:type_name -> webapi.ExchangeShop + 145, // 80: webapi.SAGetExchangeShop.List:type_name -> webapi.ExchangeShop 0, // 81: webapi.SAThdUpdatePlayerCoin.Tag:type_name -> webapi.TagCode - 141, // 82: webapi.SACreateOrder.ItemInfo:type_name -> webapi.ItemInfo + 144, // 82: webapi.SACreateOrder.ItemInfo:type_name -> webapi.ItemInfo 0, // 83: webapi.SACallbackPayment.Tag:type_name -> webapi.TagCode 0, // 84: webapi.SAResource.Tag:type_name -> webapi.TagCode 0, // 85: webapi.SASendSms.Tag:type_name -> webapi.TagCode @@ -9858,13 +10068,15 @@ var file_webapi_proto_depIdxs = []int32{ 0, // 88: webapi.SAGetImgVerify.Tag:type_name -> webapi.TagCode 0, // 89: webapi.SAPlayerDelete.Tag:type_name -> webapi.TagCode 0, // 90: webapi.SAPlayerInviteLink.Tag:type_name -> webapi.TagCode - 141, // 91: webapi.ASAddItemById.ItemInfo:type_name -> webapi.ItemInfo + 144, // 91: webapi.ASAddItemById.ItemInfo:type_name -> webapi.ItemInfo 0, // 92: webapi.SAAddItemById.Tag:type_name -> webapi.TagCode - 93, // [93:93] is the sub-list for method output_type - 93, // [93:93] is the sub-list for method input_type - 93, // [93:93] is the sub-list for extension type_name - 93, // [93:93] is the sub-list for extension extendee - 0, // [0:93] is the sub-list for field type_name + 130, // 93: webapi.SASMSConfig.Info:type_name -> webapi.SMSInfo + 0, // 94: webapi.SASMSConfig.Tag:type_name -> webapi.TagCode + 95, // [95:95] is the sub-list for method output_type + 95, // [95:95] is the sub-list for method input_type + 95, // [95:95] is the sub-list for extension type_name + 95, // [95:95] is the sub-list for extension extendee + 0, // [0:95] is the sub-list for field type_name } func init() { file_webapi_proto_init() } @@ -11398,6 +11610,42 @@ func file_webapi_proto_init() { return nil } } + file_webapi_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ASSMSConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_webapi_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SASMSConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_webapi_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SMSInfo); 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{ @@ -11405,7 +11653,7 @@ func file_webapi_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_webapi_proto_rawDesc, NumEnums: 1, - NumMessages: 127, + NumMessages: 130, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/webapi/webapi.proto b/protocol/webapi/webapi.proto index b4221f2..2dad83d 100644 --- a/protocol/webapi/webapi.proto +++ b/protocol/webapi/webapi.proto @@ -923,3 +923,19 @@ message SAAddItemById{ TagCode Tag = 1; //错误码 string Msg = 2; //错误信息(选填) } +//获取运营商配置[/get_SMSConfig] +message ASSMSConfig{ + string Platform = 1; // 平台id + int32 SnId = 2; // 玩家id +} +message SASMSConfig{ + string Platform = 1; // 平台id + int32 SnId = 2; // 玩家id + repeated SMSInfo Info = 3; + TagCode Tag = 4; //错误码 + string Msg = 5; //错误信息(选填) +} +message SMSInfo{ + int32 Id = 1; + string SmsName = 2; +} diff --git a/webapi/deprecated.go b/webapi/deprecated.go index 23db785..c809d5d 100644 --- a/webapi/deprecated.go +++ b/webapi/deprecated.go @@ -96,6 +96,11 @@ func APIGetMatchAwardCode(appId string, body proto.Message) ([]byte, error) { return postRequest(appId, "/get_match_award_code", nil, body, "http", DEFAULT_TIMEOUT) } +// ApiSendSMS 发送短信验证码 +func ApiSMSConfig(appId string, body proto.Message) ([]byte, error) { + return postRequest(appId, "/get_SMSConfig", nil, body, "http", DEFAULT_TIMEOUT) +} + // 支付订单 商城 func API_CreateOrder(appId, orderId string, configid, SnId, shopId int32, platform string, packageTag string, os, deviceId, shopname string, amount [3]int32, consumptionamount int32, itemInfo []*webapi.ItemInfo, exchangeOrderId, channel string) *webapi.ASCreateOrder { diff --git a/worldsrv/action_player.go b/worldsrv/action_player.go index 1c97def..99b24bc 100644 --- a/worldsrv/action_player.go +++ b/worldsrv/action_player.go @@ -2848,6 +2848,45 @@ func CSADV(s *netlib.Session, packetId int, data interface{}, sid int64) error { return nil } +// 获取运营商配置 +func CSSMSConfig(s *netlib.Session, packetId int, data interface{}, sid int64) error { + logger.Logger.Tracef("CSSMSConfig Process %v", data) + p := PlayerMgrSington.GetPlayer(sid) + if p == nil { + return nil + } + var res []byte + var err error + task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { + param := &webapi_proto.ASSMSConfig{ + SnId: p.SnId, + Platform: p.Platform, + } + res, err = webapi.ApiSMSConfig(common.GetAppId(), param) + return nil + }), task.CompleteNotifyWrapper(func(data interface{}, t task.Task) { + if err != nil || res == nil { + logger.Logger.Errorf("API_SmsConfig err %v", err) + return + } + var info webapi_proto.SASMSConfig + proto.Unmarshal(res, &info) + if info.Tag == webapi_proto.TagCode_SUCCESS { + ret := &player_proto.SCSMSConfig{} + for _, smsInfo := range info.Info { + infoData := &player_proto.SMSInfo{} + infoData.Id = smsInfo.Id + infoData.SmsName = smsInfo.SmsName + ret.Info = append(ret.Info, infoData) + } + p.SendToClient(int(player_proto.PlayerPacketID_PACKET_SCSMSConfig), &ret) + } else { + logger.Logger.Errorf("API_SmsConfig err %v", info.Msg) + } + }), "API_SmsConfig").Start() + return nil +} + func init() { // 用户信息 common.Register(int(player_proto.PlayerPacketID_PACKET_CS_PLAYERDATA), player_proto.CSPlayerData{}, CSPlayerData) @@ -2873,4 +2912,6 @@ func init() { common.Register(int(player_proto.PlayerPacketID_PACKET_CSADV), player_proto.CSADV{}, CSADV) // 渠道开关 common.Register(int(player_proto.PlayerPacketID_PACKET_CSExchangeChannel), player_proto.CSExchangeChannel{}, CSExchangeChannel) + //获取运营商配置 + common.Register(int(player_proto.PlayerPacketID_PACKET_CSSMSConfig), player_proto.CSSMSConfig{}, CSSMSConfig) } diff --git a/worldsrv/action_server.go b/worldsrv/action_server.go index 354e1f9..56bdfb8 100644 --- a/worldsrv/action_server.go +++ b/worldsrv/action_server.go @@ -492,6 +492,14 @@ func init() { Num: playerBet.GetGain(), }) } + if playerBet.GetGain() < 0 && playerBet.WinState != 1 { + TaskSubjectSingleton.Touch(common.TaskTypeLoseCoin, &TaskData{ + SnId: player.SnId, + GameID: scene.gameId, + GameFreeID: scene.dbGameFree.GetId(), + Num: playerBet.GetGain(), + }) + } } //tienlen 游戏场次 if scene.dbGameFree.GameDif == common.GameDifTienlen { diff --git a/worldsrv/bagmgr.go b/worldsrv/bagmgr.go index 5487787..8feba74 100644 --- a/worldsrv/bagmgr.go +++ b/worldsrv/bagmgr.go @@ -8,7 +8,6 @@ import ( "mongo.games.com/game/webapi" "mongo.games.com/game/worldsrv/internal" "strconv" - "sync" "time" "mongo.games.com/goserver/core/basic" @@ -523,7 +522,6 @@ func (this *BagMgr) ItemExchangeCard(p *Player, itemId int32, money, cardType in var err error var newMsg *model.Message res := &webapiproto.SAGetMatchAwardCode{} - wg := new(sync.WaitGroup) task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { // 获取兑换码 pack := &webapiproto.ASGetMatchAwardCode{ @@ -565,7 +563,6 @@ func (this *BagMgr) ItemExchangeCard(p *Player, itemId int32, money, cardType in } return nil }), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) { - defer wg.Done() if err != nil || res.GetCode() == "" || res.GetTag() != webapiproto.TagCode_SUCCESS { //返回道具 items := make([]*Item, 0) @@ -582,7 +579,7 @@ func (this *BagMgr) ItemExchangeCard(p *Player, itemId int32, money, cardType in if p != nil { p.AddMessage(newMsg) } - }), fmt.Sprintf("ItemChange%d", p.SnId)).Start() + }), fmt.Sprintf("ItemExChange%d", p.SnId)).Start() return true } diff --git a/worldsrv/taskmgr.go b/worldsrv/taskmgr.go index 07a635e..3732a31 100644 --- a/worldsrv/taskmgr.go +++ b/worldsrv/taskmgr.go @@ -105,17 +105,14 @@ func (t *TaskHandle) TaskUpdate(id int, data any) { case common.TaskTypeWinOrLose: // 游戏输赢金币数量 p.PhoneLotteryTask(common.TaskTypeWinOrLose, num) - if !p.IsRob { - WelfareMgrSington.UpdateDiamondBankData(p, num, false) - } case common.TaskTypeTienlenCount: //tienlen游戏场次 p.PhoneLotteryTask(common.TaskTypeTienlenCount, 1) case common.TaskTypeBindInviter: // 绑定邀请人数量 case common.TaskTypeWinCoin: // 赢取金币数量 - if !p.IsRob { - WelfareMgrSington.UpdateDiamondBankData(p, num, true) - } + WelfareMgrSington.UpdateDiamondBankData(p, num, true) + case common.TaskTypeLoseCoin: //输的金币数量 + WelfareMgrSington.UpdateDiamondBankData(p, num, false) case common.TaskTypeTienlenWinTimes: // tienlen游戏赢取次数 case common.TaskTypeActivityScore: // 活跃积分数量 diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index 6dff2e3..d4d156f 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -1742,12 +1742,12 @@ func (this *WelfareMgr) PigbankTakeCoin(p *Player) { } // 检查存钱罐是否满 - if p.WelfData.PigBank.BankCoin < BankMaxCoin { - pack.OpRetCode = welfare.OpResultCode_OPRC_PigbankNotFull - logger.Logger.Trace("存钱罐没有满") - p.SendToClient(int(welfare.SPacketID_PACKET_SCPigbankTakeCoin), pack) - return - } + /* if p.WelfData.PigBank.BankCoin < BankMaxCoin { + pack.OpRetCode = welfare.OpResultCode_OPRC_PigbankNotFull + logger.Logger.Trace("存钱罐没有满") + p.SendToClient(int(welfare.SPacketID_PACKET_SCPigbankTakeCoin), pack) + return + }*/ // 先扣钻石 costDiamond := int64(infoData.CostDiamond) @@ -1914,11 +1914,13 @@ func (this *WelfareMgr) UpdateDiamondBankData(p *Player, coinNum int64, isWin bo } WinCoinRate := fGetPropValue("WinCoinRateDiamond") LoseCoinRate := fGetPropValue("LoseCoinRateDiamond") + addDiamond := float64(0) if isWin { - p.WelfData.DiamondBank.BankDiamond += float64(coinNum) * float64(WinCoinRate/10000000) + addDiamond = float64(coinNum) * float64(WinCoinRate) / 10000000 } else { - p.WelfData.DiamondBank.BankDiamond += float64(coinNum) * float64(LoseCoinRate/10000000) + addDiamond = float64(coinNum) * float64(LoseCoinRate) / 10000000 } + p.WelfData.DiamondBank.BankDiamond += addDiamond logger.Logger.Tracef("更新钻石存储罐数据 snid = %d,coinNum = %d,isWin = %s,当前钻石存储罐钻石数量:%f", p.SnId, coinNum, isWin, p.WelfData.DiamondBank.BankDiamond) } func (this *WelfareMgr) Update() { diff --git a/xlsx/DB_GameItem.xlsx b/xlsx/DB_GameItem.xlsx index 6dc82a04bc6953d423bfda7f7c46e94174014f6c..a95651b8c8f2a5e40c3fc88b2fea071fb7325454 100644 GIT binary patch delta 14674 zcma*OWmuHm`aVo|Bi$<9-BN;dcek`Oh`=o!BHfL2w{)X44ALN7N=PFy4F7>A_x|no zI9@)?2jW_5o!1%Hnz^ZJgatRi)>Oj+VwRRqOkiPPEZ|^ZaA9CzEZ^Tk8Dt7jsp#_fAE zAMRyBA?Q<{ zLxaWD50u>W_M*46>PADQuVawddy;4+D~VVU1xlK=dS7d<6RWXJ9LBLx5i2-jo#oE&2n{PHI^N@dYu6zRupW zvK6Y_yj;j^G~YEYY2en@+SUxB144(6Ha`43vDKJSmhNCiV!#qaPemw0Cuv)u?(b+> zF_KBjPUoFaUqc?bI)mKpUvF<7I$d0~`go(Ay!k-Ghp5luJn|B45sqxz*V#K!QS|_K zqJAj*@FN}-F{QK4l1fKAOzn&ew z9v1a!a8a%rJq%1v!af2GVDRR-oc6$K+!Yq9*s+XP$`NG|nPU;Vo>tb+VJ5bTm0x?d z_DhFftI}4sQH{lG@K6wBYbwM8!w@OO;SkVKI!DK?x)5;*Tz(Zl9T7d_@XWav8y6(G zE*~5%sk{4G?SH>>n9rW<^?R=ADElyqQf&EcgYWOt%bAO|iR?r04N#qRe|j>We>*eN zrla%b%_?ioA=vb7*ID@la6i_oL+4Dy0nA5GH2!Zj86uLNWJ$@ap)m!i#dszQbUytAKo5PDe!8EK+9&dN{7dKH&>w6fyQUPKl4QpG}Hzo9m+Jf(b}J$cCA#g+KS zZKcPXlUvX{K5!5PU>jvu+h#0_`ZW6bU0g3|`Q2XfSDRF>h%BLcxHuo`7L(&3K8Ix~il zuLy@Vdkm_H+34hEzH8Q<2%T>TXV^M}d?liXpU65hfPrd67)?8R<0F2B1|J<3z0L6W z+s6eVU#yH6d_yE|r9yhs3}YgmuP>0K{!r7MoekRH=di2!h9ZHo+Fi0ake_G%zBjy< zgH)*c*?Ss)_%ETaoe@O(-<;Om701LNGmygKpOBS!iiltg5>MK$U~1@_+9K=<_$M$Q zMk4{?6g_g$t6LJtZ5h@OIiI^KozUif(fjjXmwov);IOIB{%O@F)W46aH>~W=+hy5U$$nn3~`cPBXJ{mnNB=b$pV4%u9Q-2`aJyUO>(>>E*Ai&*F zcOcK5XV&F8g~h%=a&&}8rtHA9kc^$Wi2xzMTV83QHnk{7$XlHfEv{e8TC*TzpN+=115OAZFF6r)@+ZP*k=Gc*M~NrS%3m1R$HCR#eHOv8Rbt9TFk zry3r=bf-&OomuuYc^`gIYoS(bx1l?omM%od+s01*A$@tawq)Tj-ip6s#GCT>G;nV0 zL&@94J&{k>{9D8>ba&xdvwB#gvq;730GDP(>8Rhmduho)dpX*bkiFyaz_wS%aCG(y zzcQ?PxU8{cxLi*bwD%eVpI`*w6%2oA;qT_w(mf$3>PtpqQ4Zmp!|LT3oN?>5n)#k+ zProiEc#fE&wU}%_zU3uHRKmo=)&t-jrEJ3SPX!nw?=aSoRjr?+sqVVRiM(5<3lwp; z3~UA&KX;;fBY+f+?*E)k#F2DEymEdkDfV8{J1kP(+TsYZ&pf6l z;hXx;l_@rZ_elk-1P5L83LRT^M*UOHj{%XR+p-&4T^vD*A0DRJaBzZt>O{cMv)HBL zsi(2%UIX@9aD@h}u08Cr`3?JXiikqOHjRpNv*xjGETn=p-h%-$O2k{CteCnYTg^Kx zu7=vXzQep>0&Mmh&4dve39GcCnSM`|D`iqlB{tl1=K|iM$!<&w8a=y(GleRHfC|z>Z@I#x;6yOPC1gZ{w%E|d{cA9rM2CT-& z=bpOR-Lw^;?@XWiqY_#wBl}RK7QeSt&We#fmE9?6FlGDRE4_pD*=ReEDs2fJxpD{E z8Rg%dtr;biUpQW~-nv`V7%NY7<3*@)15ljIQXgST-Au0^cF_aIK#BHPE{3!H1PyGq znV;c#!FVjP8Cd5+94fGK8A3T9ws0G2zXg6ihB>8P3^V~1C10Sq3r!;1wc6WrHt2oG z!(^d!gf?9>=dtOOj)rbFn{`59#yRrE<_c$9bo~?_i3}fH<3L2)Kf0`1#QOI0Csq;P z0^z1}U-5+ZEO%?Y6G%_Hn}1L@*7%vLiS zVi=It^rN8#yGUd>E7cG1hKaJ3$2&^w$J5PgD14*U%_N$_;90ACKpz34r%pBw#wa`- zk+rk*_>lMm34�E*juDP!bU5^dOfW=&U=`NDP44xr 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

m0E25UMD?`B2?a#AjKRSaDR z=mG;LtM>nAp^r_IR865paha-(l}43ElYMmW<`cWaisB$05gwj$S5PR^c}OHDx9}pF zJS?hDp_2PCPiysXwA%LyC90TtdLH|qRp+#(&c4-Cq>A6#G_JomhXNVHet%3acKb7? z3w#TJg3asS1DhB=xf5EKe2;>WlkD^CztOW-SjD$iHi$?WslPXy**Ms>fHXI z#*?`z9G!eYEO$2@kcIr;%kkff-N^5Q-8kZI5?l9VB3qBk!ZT?{ii> zLgOGG4Zet(TIT++amBB3rykMy^v;p&@!T+QVELWTc7}WYPTj1;)TR7HprIpLOZt zD`en}T#KD^lFMjmu-u8KOqwrw7CBM_x_oc?EQoK*^*tHUOoZkPNxJ+@AMWcJ#^qjT zqSih=2*sZ6bFH>Hssj7n9jYNkdM|!1L&WEjI#PnI@A}K zU5_cxS8$pU^lz#rd2JzsTc@wM>|Z5#)FuJtG%4^s%_YhOWps{AT47=w&B2Y*jn9&l z0@m5vh#jD@$oQmK+-Pg3;8cFEfo;(03jNIsjN_EmY}qsCCs!Jxn#e!aL>cU$hqxYr z9>Pi}U-1Q?jMWBF!<%g=YM@COq0)Apjv%+c!nY8G)S1BpP>{ZDkGOcELe%x4{2$sr z4TGQOiN*kaaDhVzk*`LCFZy#@>$D#VmsBQ_8p5&8{D5Abz}r4#*~;zYSU_qpuj92; ziqw26li=RVvQV+Og-v!czGEGAVFn7tkfojj^O`Y-lH%AAlf7qKYf00#Q1JUqy3O8q zt;Noncvw|#tnw*ftpwcwSNfP$T)>0NLqJbnTNZ4&Rmb*G(U~b3KtS6#d`0rnP%5pf zSYBR@gkpk|rm^I)k5gPxAc`duErBE3*vK`u4f|BB7y#^dSjg#D;YuL#*B%T-JMzVP zBdK8?fv-~fGRa&4jPSFB2@|I>uQP+{b{{MaHR;uP0kGMfHx4BrP>%JT^|{y2 z1KGls&oO-qv{wq!dL{Hw@UYgBp3tBVn_Z!+P{4z?9WO>ruB2YrF_pu+*HC)S43+hK zsjUHTYxY`RNhM5B4OdWf)ERjn63dgh3gSe4fWl++BBd&?EAXMTnh&1E3hW&LA()g4Ed)HRdd@ z`k>8asP|+6mYPZT1_DeU4xv?S$)pw2^*vWX7roEukvrS$TBbE)r{aWrj9aH+g1WRL z4-lCN`@R?RJ$g1PhPI#MgZaQ5K$Jn}p9XB5g+b+Y+VrtJugD0(5tgsKrQ4T7ynm8{ z$z}$H2dZH{#N;l`fF8aPc)gNhRS{Va?cIVp`D8I;xprY!oX_>hSNLQ{aer^UR^3+~ z*Cy>^f*ac3f0w7|{VMJ8R14^%nvF?=^0J4vB4n#-F>bi1`!t1#W8V5LHTuO9*Xus= ziui48BkMc#+c|h}gx^*E@!aLK<|8>78vbPc&~X@Dj##3eaB`QUAtvu3^vL8MPY256 zGUR7A+3CGd?ai9YJqzj>YrutQ7@zeh2PH*AHYCcltN>-E@`m#9`9Q<;uD+h%VxNKz zyAUALSw_-O0(Co|)Qwqq=3qu1Xs>qxPM)wrl-$!eX^|8K=^oxEZy zx4e1=ZRUYu%3N1pgBRw}JrZPERQ%7nI%!>oim4a?U~_scmDXr+4P~Y36dRD*r$+Bu zv91zz@i*U7e&5$A9H)GPS{Yl47uw*u`3OGXOHl|Hak-Br^pkjkByjlUb205<=t|<#{XCXpFLO`D#khcw+V=Ln+(%jap%3*MSI-ycn7qHpe;YFq+r6l}s&5mHU1~+ni z*AiA=c%lnYN9@T#y%5ydQ8B97fs+2+9;%rHv=j4blxysVMtwI#R~nXDVGpj^*8kv| z9s+*?)(ZJFx>yT#+_Wp9N)a1fFTod_J*NNa1GWN!prRf6TeLXfG}Rn8#|@~hK{e%0 z0_hz;hXKr~UQ|8U8V=OfLbU%S*XqB$z;2Po;nC2bewO-R#)iH6vcJk6pkV<@1J@>? z?+n@F0|M{0>cDv;$3&h*$X5#Q<{W@K4Q7K!{(LGz`jhO?QHJXpyzS{t6#q8$<774vX zKI%CTdrdUZyK?`Qu8%6+7ouu?Xj8|QYr6tO=RqUtj|8;4>SMF8j_Go6MzyDD`CG4n zV)%P*RZ8G>80{e_^T$>v*KVmMdoE4jpfrjkZ%6L9$6)jC#RRJ4W}q%VLN!!D(YN|A zh)@C#7BiNkNdf6z!<&5=LHH0uyAC$M3#ux40*H2pX+Xj-6A9!YRfVUvFOC?XZM@(I z7n1WP5eRx?``nWlT0vYn&A7mML%Y~kv(ejc9!Sy#Hp65@yh)O zTaStSh@@x>)Lh&+>64T$I~UQ6VxfTRlRt2T8*+Yjge&BYZP#n>jM^|g0{oojEwy;@ zXE<@`%s!4DiO|sl<&V+BU9oWQB&>cf(aEe?;q@yfVSzTtKOSZX;Xp38ghuf?duAal zBrwPb=({P-0b)Qs?^F|K*EV$L_uoA5T#V-$oHx2SY5AYg1m*t$mo+q7ky2_1Lf^6YjRGa2v@K>8Xn5zhm|?;?``l8^{q8o0 zrIEw7-Qe~qJ*gT|)?Xusvv$@u*5|9;RMF6AJ-Xi^$M_6=mj!C=3Q16DKlT)=p<~K5 zm4iO2kP8(fp7Lkz$COVBd7Fp-%vFs{+%rg+&fq$BLQT;H(}F4+a^Qmj&m4zc{3m0A z>i7RLfg>@GaGu*3c{gpsoBuj&Z;!|uRdx@N~;bPt23$48bz?dHE~^Fxs* z#Vm72hjuv3Vu7RQDPUCY7}`v zzfCXi>&i!SUjNO<&N^f9sdfq}TPe2JxTFumDkd<$P50k<`p3M)cM=Bw*C_DX2O1w< zW5AV$3gOHHBdzb*+pbWX_WxDM$&?;hd`swXLU6g`T~lOA(9L6AtaFG{kHn?*$&Gfd6la?hOk;CnGL!925+` z_L2S7+Id?sG;nEHXe4<>7(DO#BT3Bv8NNnV`Km(GJ)v_0ba1qod6Z8|!ke|~0?$|x zhuaO~lx1M(FO?cX0B4v#_0u5GZL-)Fx_?yb2N94#-d`7Ark#bR9%G`4(LW6L@+2~7 zA$1iD{`fH2g^Ia6&W_4Iq2h6e4jA0#bN`x-4y2Z6CgiM=u%;;%0}VsF-uJ-(Jv~)j z0b8vE9ycz3;(-a6R}7f&LGKu`|D+mp5XH8H&Y{rhBj`Wlp?fvL z?M@o`NJ346>a|Xq*hB$WmRga(GtaxfISpLM^0JlTmy$wi{6$dyZQk7G*9rv04u9N{ zD#?<>Zn>eY{02O?_*ZChLq;!%pl;$(top|ae^1eVRvpKSoKPo>EX4SC_WYMs0sqUZ zLVrJmCWN5^*tvO-p?|Iy-wW#>u8v0c z>WKf{RfRJzyp?6=dl@fq%?eQ*mc~{>+AN z5})3_z;k~>ZM(8$DdK~pB4#?d0Q5sxb-ZFp&B0EbPp$0@w6!DVfHzv<_OYtbSGLK9 zY@xUO98#Px4G=%Vj)+k=%ijq1i*rxIE@uH_W$?yOLJjR5YtKl=;{HU4^zk%>B7s81 z(AKL;?e;}Zy<>+@qVSa7zQ^L*mBh!NIe6!*(J3vR`{iu6G{ceFB^R}$G&Mc-$YIzE zy?~xO3~n56)38Ai;2nbZ&{hDE6Iv&&_uEzS?kV(l9&kwhp9we`E$Y@5UJ{BNU#$fU z8*r{Un%UKugjGU66iMta#liFjrE1g@Jj3+1-GcEpjr=*&%Q5ovrwY*}9oGadtnu*A zfH0luv!%9-@)|s3naz&X%ap~~028}ccAaJT9LM#QY=O`ffd9J$G@JfdV&)|jC-ZVv z=m+h{-3kL)+9Dmkqa27V&JW8*A@r_V_B?x zalN>{eRWj5!hS?J*VW9T{W$XLRhGPO(>2(3+4+R&cOnx4R#Mc7 zajDOCE7$T=yetql*ASSU`5~Ucn?P7+HZXn^g9)AgxE;ibT3+L!8(}Zvon4>k^wx*L zwy+{17g4R7{dYw&eN)o`Qd##1s)793dex5;TdJ{(;_<|sbacr-#W<8X$(WSM7Jb&S#h%%<7hSCvC3+~0p1!yB46f;! zl8suw_d9g0vpMhHXT+^po7ZPUcau+s62wWyhVoQV*&#KGhZgPq#hWV_qvV2$*pJi6NS z>-QW7Jn)h@w!OL4p)m<4H@N20dItTBW73Szwc+RLpI;VohzI*jg*Q!l$W3p*RSW;n z`JQDx5!m_k1h1R~hwVn47^j!08g%Dm19437G1 z7ztlY>cLmT)AG9t0PLn8;`e>)FaWV?&!A3avVaOrSHWo** znT}42qT$m7eJ1m(G!^Nx*w>x^QjrD?hlB$3fny!SM-_2Dsz_5QW|8AbyUrd^yInVrS z0-7CA@kCu`bfbFZTE^D&?Yj~@2m?xy{}*p1;m{C&>@XIz>>hdRFf_ZRI2)YNPk@H2 zmCxs5u#s19$=69nxXaBIkw5Pw zmT78xcRm|B-+uqRL~JE&KEsVy|=qaZvC0NX?uf z4Gm5o6CvGiJAYlzIjU0f4CR?3o296OcUoBSNhke}+8p@0y$Zh+M0cnp4h9jlhq5~( z00GE&LS*f2##6c@p{7{9vGJGF(^*`RE#1mQZVfptLVVFn;rR$Hm`+qv&M!XPJ<}gk z&K*+%`NCW?Tz(2ayf>L#p0NL7Lv8Qq*h`knKrEgTx!Lpt_gJ434Y@91gB4^0W5lGq zqW-cwX~UaZm~jP82}!kh-l{mG)Li&#So1u3E)<2q*))JZ|D{)t&75|bCs9~O5@EvX zebN;SESAV|&4i@<(!J>milb-qK~EzYK`~(VPA}pYrGhVb5784;X&Yyv3{vW&9hU2w zeX&){Z?I!2>*Kgo@KHfhYk4`SFfe)vKc!iKTFhWS@{_&9v8tzs3i@m&&!`mnlDl^f zrzriVSiaYvF)%?>0J?8Qm{!7J7_nTinMKAeHvwhkVlu=)Fbm{wP7*7iR zdPf)eZ7bNL+nVgNvXGI}2acV$zmk6$gdPQ??mEqh<$Sna-IS(bb2h z&zsEI++DbS7RGa8SJ{x0>w>Q?-h&OuF5m0q2S_}PBSmkFTH@} zeR#;m1$y05tby4#rdoj~x~gXb1+LM2DZ1oI->}0Z4TcT(rMShh;-3>=fiOr}tSjUzt4bCtVvHMbRM8CfWj731)DNU(4`U{yLPXKap^Vg34A`epr1# z4r0zAv3Y03AJ7LkHbrU;QC!kifEH?J@vVX=UDIL>SZt~ufFvwm>d0gnBrx+|(l`LqKLuJ- zk%JDT1hlBbh!~s^E~8ps{{H{gnY|)o7aA{Z8ro z7w^6Fu`837{jYw(8oHH<2dGS%Vk=bccSqYX8E*H$wUlVorXtAs2`$9(cExs@oHFg`ZxHmU;ItQ#$5b^KDs6Mbo~?735R z(@<#+pDVfN6m;m}=@snCaTmvR&wO&lQ^%eS5Dc-%LaJoj?2l_DF4Ubx8oXpseVxZQ z#-+jK27d9Gri<#Epds$Ci*i=BnMduj`%Lw5rbg~P?s)FF_pJv^V{k7(0LHJ>FX8K7 z*w_Y=HhG45RB2F`zC=0UL2 zprnY1TJ1Q=tiX=G`b7}DoPL_Bzv09=(RC0V2MR$y-xHL(^GR2AH_|V|41@t&mIB)R zLG;?(+Z-Vm$EFLA$|l8Xi~d_~@D+r$-C0>2`E`>n#WRa+)EJ%ET!1P_QZ~%H>!O)f zK2To4)n1AI-Ol;VOLzw=@^7X-MD*&zaw$ujGw-#HLbr0|J{xGs*2!dp&KPIN&wu`! z^08+Z?A#9nmr{MxEzO>A?V@EM+=4A~c9 zPxmJwJoa`UF(eJEH^qS`gKEqHLH4S%jEB;9=K7tm`^)?tSH_GS;ZBklEopn6L6O;t zZd>2$2+MaZ%k5?*U5V53<1Lz`tGbfNK4#kpj12!IUtpKw9%lPuh4K+j$-2 z%>SHQFsAH{QUGitR!8cU`kGI%O}h5lY+l{fwB@Cu;0li|sZBXhN~(W6@=>d~B~c_% z)jt`fl1}aEgye}D=B|n&sIXv|Z@Z~&hM_)RQH5EU+a{oXy{R0%lp^-3HhwHFoU;Vx zI&14~TkD#;OcniPZ(KTGWQ{n++z+9oa5~luxF4qED}G>shhKBPK*Ty^s&8Av>g@YbiSY9I=iJ7|ohnrF;7`ot z9St3r1ai*sh{}2$(;b-OXzk?v%x_fvVrY@Cse`5!Q|R=D2FC~&MND-V4vA61=6e@X zQN8qOcV((N0UsFZZM=xFG#iyNa)xw9hL7;gm~#E(ut{jcW$g~!S# zRTsE!yt>dU^en*?9)&0PkllSr*2(zsIpu6uf?-stxIR`66y7uyg%AUz@gaAIpn>h~OpMEKj zix%oNXUR&QAqQ0H825RiK$s(v68CSm_3p2RSv1UfN>73@FpIna5{RRBFp7nz!#&yxX- zY+q0~VZKQm(mLa8C@-1bS;cKnUnq`#YDf)Gka?Yt7-fjvN3Y;RZz+AI00qP1 zXb;*w>G~CWeY{E*5-fWHhqgFuM1qSpH*94>p>_ho!@nsei0BN!&8R0J>hi*Y)e}T? zS;+sM?r30O9xmw*U$8LL(AOC0gkREx3F*2_umlNTbcJ9!;`R7obrSgX#9>Vny!DL# z^$&NedZLJr7yASneF8WGmV{#jf&?Xf0`hGPLqaYyNQqo=0Eg+3F64H&7H0=F8%l?eP|k|1jqlk#WJjvRU~0vCpmIcO zfbx1_cRCWFm4$XGjQ8UAY^3@ATv_T1?v_o|ucy+AjX-Y1lq5t>Je3)uaT9wyck}H< zDuAjoVIUElm^H?^w1}dIQ)$puG=%n17}oM}tQsr}4ev}7GN-mZ=3}iWXJlFx*A#V! zXF}ZwmNRaMv$S9P9@`8Qd0=f2Tk!yE(zyvdL49X8H2ND zKGeU4rVd^d|DH|vPK6OS=*_%1G#=%kbo4Cgo0;m?cn7>huVNoF33$oyVhn%w2~lhA zT0e3R#qra${kbI*Da6hWEab*wT>AqZoU}0ej5WaQCqvu86+sn%-QXA20Q=Sb*MTD( z4ggof0apWy!pAf9JCP9vCLwMQo*Gb$CROyuc#~KZ`M2x$@W~f3XtQ_xl$jbCX`;iy@O+%WJXgmrC%oBR8C} zdGit4i>J^&Ax2u@!w`CPcqVi@`e*Cg-&5D;zpgj$YFfXq75GL^9~v*UH2DG0o|@L5 zR|gS41s8qYJb^RF)YN?1#h$e)-er-io-hQ_Tw(0wk>`ymqreX2`_hV4HU zAB#0F()SJT&CGDjYzc6*zo`fOfXvv1@}EYFVUWWm1E3+uUfi!vqfMt?hqAj$O1!k^ z^s`CZ_w1d+#k0ZrwC1##i)gTL-&p+`Iq&mzC9GeYy}3Q^UR+B$bS1J6e8#9ceQ}oLc_DB(QUUy`IR6B+3Bg6o zGmeS_?&MZnpRVQV_hv@V{W!1f-90Laf+IIPD`qGUXGf!dRrodNw;Q&%7`LOA?u%Y` zr=@w8B9)cI1jNI43aGzN%#JfS z*st$y+@0y{Sx{z%lmedZ?K^A`G7{gwjN{Dg!3Ye8h57WBH@?O{Tkcx-bS@k} z9b_Cx+Iyc?=@|pZn_^^LoomYDNdk`2p-0f@CBr_Q&ZS&W9r2~x8?HzSa#67*tk#wV zC36*_@Vn(KCzCYEW0=#dwLUm=%#-9Jjt@fKZ(fwUCievcrofQ1VE79=$;DbiNCSrq z_f;@eFr~@l&f515J#tu7@HKuC;R;%RY6whjsI?RP)31~#mE8r=sz^^rVDXNT3O$6M zqJJa){%Q#e(9kz|1-~T-`N(n*jrfkdQz1%xT~h95-U_1NbN5<1wBf5L^!9vnEw}PE zY~qV|ilY&gCuRAnrR{IMZ;y@Y)uED{!D@numBb4n+d89}evtK&%IcP(r~%<;qmg3$HInMQcrWvM5y;e90Q`879EbqK zOavGqB{ETcoM3cMc>1VOTA1xoqmyTgB)eME1P#&cBcbQb-ou(%H9^{gZVqgSLVY#MWF&zBnwl01EUVM6S7n+=318WTV14LJ)EFBB`OT!qK>I=B(&TzB7;#>#QaXW*2Oq}4-rNOb?vk2anU*NVxiAu*mmvc>F8=b))SMo1w+ zA@lMG?Z;%bQGg2LwfwLixIBMf&MUYGIZ~Ta6!#Iv?)!xu3|wv2s*9g)rAm_~O%2r{ zlqr%F9LQ&+fyFyK6b~Q_)Y6Zt)P{sbyKN;dk#;C|W)L-hlvpm9PC<3^*i6XtVBPIq zTc{etkka4pz+K5onts-NPpnYYP&N!*GX#XL+N|M*{JFK%Zi*zW{x4bX3V8cPXv_4v z=|mHcc$ceZ0xVJC(L1Z3$G{lAdxyZ*R&;bn9Pt?50yP>HgK8hXWTWW(Df4LKmU`BQ z?`r{}G!w5=$?c3DucCzy`g=%) z+!;zPF=s;+J-$pOw4Xmk6k&`m=IedR?$M3HknGP_63)BrToptUC5T6h;qm5k82Jo_ z2SU}L<=|`{d{|nUmit#UC5hPpa+<+?oLTy~FvD3|$fwynL#r;8vIVU-YntXjLAh7m z7T2th_vGyduIPwGr$7{jC#Fc=WYzh}9XQrfytBu(6dncwvjkt+li19YaOw7c`@TUN zf{8z4s2;-UGBC6$Qx8kGryl5DGt>PwNl+^VmoZ?@=TNsM#JwO%J>Y85 z0Hk;{;z?5Aky4lVCRb^_2HoCT1lI+N0RSpDK zRARbI#s^Pt^PLG>-A)xDiPsp9?d@-br4Dl8mozq1bWu~}QU_i`=EYm;gImO+?D}I& zd^vOJCV>Z^5W)Yc(S;x1F}Q!SHmeoxbfxz3I^Jh?WkF=A8Z;x0e%a9n?3y0niU#Wx zd%lZ))OyV7Dzlsr>g^SBw;Z;T!2fXqjalrrgsEh;&ufz4RF{pJ&+F?;2U{&6Pi4eP z12#XGQN5OQBh3_)_!UMeZ<5~)!S4wty+3u1O=hK*HfoA?EF-56uzgq}Yi3@sx>YxJ2XxH)rDu$@Z{!a>1YN1Gvd3@tL-Gmcf zeml@eeD-``(sj;qq~oLhteT_rAQ^6aULb{~>Dq;9d|rlGj#9=fvma2)$!@s<8*C)C z`Aa+vUUK($rZj^ocd{u1C67%~s?ZB-pGWSx-9IL>tTkkpRFy-v_YVTwEQRpomIDy` zmIJl1n+`bLwG1y$?{S%vxCD44^u;ADnaPe$*eRO-UKHH9|Og5Hv z(h+lKZ76kFNJz(Fk<$~ zBd1(EX^u|2Ha0)`R6CLk|+gIC+sZnJsxvu zY|$^2BKnwHsjuvD1kQ;LuP7sK-edHo>YVqqM-pp0Q$CYYuL0?kBEz#O8b-_P zrO-qnItj%_vawa9ElPNOvdYH(XdVjV*4-f;ljWolyt@4<6Xw9pRLw@Nlm!BebzB<} zFOuJ0St#H2zDrz4#udYn5I;@)5jz{83(uBDtc6Cp>tK^2O~#8n#~5(e(cLYfnATpK zQ`CIRY{koxst=UfawbR)rUduQqu!ag8~s{zW@P=XKXB~YOMs31v;#CIb8G}R3IEX zkEJ4>Muqs0K7hS(B7r7Sj|CTbC@(iQ31?ZCiIGhg@Bp{vmO1_ETVm6@rsd1R4a6CWzC=OORxqdj`I`~dXu4@@z)Mf!|DSA8v%qq zUc@%0Fzs>^hY?!G7Xdkvf48zG=U+_uizvS|3b0$jYma&mgC-X5HU~wvSrI{9!fXIB z?pTD8xVsfzuI)c8)IS4R(s0j`+f~sY@}he>*`{cz`scQsD52;!LUEjrfw8gmAjE@l zrM)TJN5hph*V~K#wMe$vv`iz;O*J=^*N08zit)L$E{We|KOa^(@M6{Cj}}`r|5g)Oyn+wl$*b#* zko*>0R#IF=mr>Dr&3sW>6qsnvbjPlSw!9%m#+R!jA$3-cBHs%F~JjnfzafV75$t`uJsAkt4)xteBIl@WB zk}RY7I$uJvKg|Xt7hFR48;r!EXFs7Qn-GEatNP40z{OAKsQ_@5^z*K-J^x#UaqG=d z+LYuIsPG7_!0oOobaxMcnm2wldg1XVr}n;W{I$5$$9t-#2c&e|2kS00XOX%?X746R zD@~a3Qg~3}%w8*{tST{|aLBXaG)iY6a(i0?sH=oDT!6j$v2c<(MvQmqUlm`y*0GvlG!G<5IL2lZRBS;}Hw4GO%;;a2&zNjq@O@C$|w zzO$&we$oWDvIy;>(T-bY(**@lYs)MN{|^K;;t0-YF*&l*pVcs8^v(vps7>REU|->9 z7Do;#a>H^zh~g`07MxfUAcP{c12wTBimMVIa|%`;xs-=5jW799eLli*giZ;Ol~;CB zi-+hnd4gGWL=kM9CvE}NYgonF!hAFKK9b54-3og&Y0)aUn9-$_=YRskBedoaHAh25 zQvLTI;aT=)n%XsW^t(=?cxaU~>UUw-KJdD4ly!bB=!{JSv0@eg@|9kxCqzII`X?h> zN9VKE;8I#9gu(J{lYh1rqiR(hJ>vGYoCo#%Tfw1H#yhZloqv^I7{WG>l$+@J`LXS8 zVv(=}TE+s8yTZfzIrr;JVknbNPNp*q8SoR zW*bl4u5s*pwQj%rT<`$Dx*}=g3g4N@@`(}jc=J-A-g;LrD;)6RHnNePzeM)US8>M3 zUzUwSV7JC)NO+}`!rxIe^9!NB^y2{6T+gKc&ZNkhhMMYAcWuqB7kpng^qls-a87H9 zs9m9dDk4~oRodCj0stl_NkkfKRgB=o={j6$1(P4Y@9-Z@eDf!AvlC1A@Fx`BvPPXC zQF>#`8UP9=lTUAaKciC^8Qy>-+n%Bm9K(fys^p>+l?P55uiYm#i~v3Ny)SAr54-3; zvb?I~U^rAGj7Mqmq6ygZPzl~E z_#CB0n+As00>x_o+F=FviKeuP_F@y;r27=6rdUv-gx(T0Hik?V3R@9j14vlp4*-XN z!4vU-j;FC@0h?>~7TK=lP;O@o1~I-+iJ8wG#Bu%fA1!u!u^aBmUXmq zf!=mHQm(<=-hOyHUDe&QF}}y}8j92!=@RaZ?X&bf7DO6w`M*)b-JfcxX%IcnAOJVQ z2)MdjXkz;So?!Cn;0|!`VK}(GvB|LghoUhLzI~>9*s=4P&*_2qM!m?YaR`6fpfU77 z{LO_N@Ox4G_IL)!sZTCKTK0VKI0qYgDcqe}yE`WNt-IHuwM`o3nBS!;qkj8(xqDzx zWxP;`lO$1QA1{0%;Gw?QIVsV{4wh0+6^URLje6NgX7>>oF$eK{sHRMw@g1Dq2}YwM zbgTW%jR5p~aTEfXZ@+wR5W&twj}tD3l)cpSpg#&WKb)ZWQm5LYw3=+LQ`GwJ-p4?k zv@#5F#p(#0f2E>l7cG5}CDPjM#cc{I3a~OD%+GpFjgQt4j5>v#s#X6Q&E2pL?kqdl z4>+A@zuRbsCRIS!je)a?OgpJ6y$)wdEvm`+v4<%@!FZ{;()(KjS(&!GV!pR1svhBb z#-K#H78{TDPO?n684+2z=yN}Ic>ZjxPpd(LyJmPldp@EPI~sUWY-S%`yFxXL?0;BE z`Fz_Gde;8-MiqLK)P4!{*F%p1zU*1n<%TR~Y%r`nkTf_nEMJw5H_{^bQ}N?6%bq5U7rN&XtW1UQ}&JIU8A(z$tj*u~MEbrFDAsh`afLP1kBt z?N?Xgz^OI#WYGAwy#hFoPF1rfbTUvQK)z=ea8EC(HHY5?W!bOj7&RSib<%u)SN2fw zQypc$`V5t~&oGQ7leQ^lxZl>&1!a-CC-{ZhVB%PMKfUF1CNe~8S$B3VX`7!wgtpszY%#(kjjZXlPW2CGPD7z=f{Bxu&%+9A-|R&HzVS?&>zREy ztENg#)Hf-2dzx7q+lga{*yrT%mN;r>5hgVE`lGD-JIv`=$k{T9fhCzMvne+qnA6{f zV>unw<4mL@tt`@^9I>lZj3`%1$>S?%)lEpIXp5AG$q-5Xo zoS&i!bfENIVhk^F5Xm4l3x^%HywK2#2|CLH>>3c0Bor61KQ%K9Q>GX|nE2i#XLpD3TcW{D_H1afGki)o1hxdCTvZ#H5%%J+QX!l)J0!ZIxb(P#^UlA(v^k< zce_!~IQ}#p9-@ggg(K{RwHxpmQ75H6{dqDvU~_UM4We^3|9}qg2b~qw4`-Kyp=`Ga zAUa7i?fba5d9@($gBw^#mHl6Cvj>le^vRYv1lO+%fbH_Au})t##g`cD0g2oh%?#bf zCz8UHlYKsVX%-u>5~HOFU)>5dM-y4_=J271GgKRU7xulnKaUIPTiEa?fS|A z6?$plm2@K+a=xrPgH|`?baaX+q`H&7G-SQ}o;e)`fCfTmCV11)acaC>fzj?i31jaz zhVk@oZ#n)H#cKpi;S_Ze=yxJ9)`+a7q63XfU(T>BnJvDhdL?`SPcTTS z?J}7{W_O8a{+}Bh0ZGir5T(M=#xKWVaDUamQe+NpQ1D3>m{$Z8n6eSsl!tIX-YE_<=LFo^y*L|$Cs7xK8I7zVa$f|pho zu(20LiZAr?V*DWVNh=)oFR+f11cu)O;-|L(nA6>DKUB-2s}-~I631O8RX&Klo6# z=~cT!5q{phJ5%ktE--=vS)+?}W7}otlyEgz6x@Fl24>cW6X-$!4`;r~+CLpG&NpY* zif&)XQq)E3HhduF3Wt_SCEJMv;eCt4{%){ou8+wb9_eAs-^J_G@8#~}+N7L~@__iP zpN4_$J*kf<$<8-~aE9fMtm}4X67L-+VX&LB(RofqX^J6)wrd7-e)$H#=@k}y9HiVd zNni!Gxo<-gnOMER*oHjdEWlQ(qdvNsW|5ZCfrg*%bNMgI80S4azHb2|n^R&hx zu#G$2<@8_3fY95G#%gLSKuwzn8hL@fphG|gX&ykiElMZ@Xu#&OIq)^W>kqj7O63JC zT&`%riMpJ>7qzttkod({amC$~#0Fh|$=PX=A^MjPj5GX`OWFi2?%Nn}oILUe_kKG6 zXtvtR)SqL%r##;S<;@-_A2*sA*S%k=^aRCDU*pF|a1L37{^}PUS&_ zui^O`@*Mr8;w!yEMv%3bf1^T(bgAe&^Fh20QKxTvS#v`GG6E zdUzG&(yyf1!zy2?XDCb^g&Fn^{cCj-=Hnz6&RIflDzr0vm#c2F(%20w!%(2zDIe() z4b%HhYfSTg>B6bDd+o{teJ-@!z;O^#lhpl@??K`>RC#mw)2&=e|3hFv9{w+kf% zwz5L#fT^{Qe|xRx@U(c3wEG9lrJx@{rJV#My)&P^q1}8%KIYs#kGX&w4mu6$u=WLB z$G!%VfenykWbO=oB#^JV(ca~;by9c zVv;Vw-M)W&8Fv|ieu7u6HDtO36;&IQ#9;U9V*7h)t-qdxai`(>-YwpXB_{ktj&NKt zkXj4AO$Tua0-1^a4>Ki?tfk(L5EwY4P9oSTFqhy%P4;zG%*Qw~fwrrBe}cxLYp~@H zJ*k8sK!#2^KwTctqO=B)BOd{8M7O5@M$@ykzfM)G!JSmxXRPw;UpxiC5rzlut!4hQ z8}?66+ADcPJB&dx-KK0AyB$%)mxzsk;`0d{+<#m3Z}O8sD*cA`|L<)5IYC{dI9Ug? z9%Rh&5=~?R?l!O0t~av@sW9q0DEZ}}2SNZB&;)O@`?s(_58Qarvu039F0YQJQ>IWk^??Af5yE!_Bs2cK?m_Jl|&!3bL z!?+cWnfdeEh`+VKkF4vzbsqR5^hf_C!@L0FKXb}NaX(V=C5SpP;xnL!^y8~$ctfcE zf5$Xk9JD6<0tq%^PZOv3(6 z7B4fh?pKC((2u>~C~%$m9ObRVklDU~$zkDf&JZ8WSH|S=bESKd{A7 z-;MUT`k#jUkA9r6-LB~RIfb^bgY9t92fYwfpe-{{7c8#U64vjGXHzJaISvfr0LBqe z33Rc-c9{(`Ex=|hLA~#rF@SIV6-+yrVW4S6vRan6CwEI){1G|e-%e4@V|ECAfq*zq zgJqHZN$Qwts=OEUtsONs78aM3v%e4X7}y=qe;`+3(LHSo{#^dwK+?%D@AHD*z)_fx z0VEgC4;>NSHJr2xB!58>aX&7Ad?AoAV`OjtuJgrj3&`Gz&Fw%F0Bru zlwcP5o#4Kz#U0PT?t+{~IF+J_0nA#0y7MOxUJ*i^STi5F-YK(#F;PS%3tUdz`Ie%lC!V<2VqL-HO+e<^wQPnGgeu)z;D+-A>vTG@e{8_NF=!v$51vEck_4WGO;jMlwIGYCv)YGQxc z;@QlgX?bZ}h5<(7-?Ek|h#R z_ktkb{@da<2o)$+(4IdH-J=}P{H6y5H4d1J{!8TkM>tMm{_nu>w>cp~M$-50ZEu$; zPi*)vd&(E2^|-sgkj(shJp11cb)Wv=^nk*Gv3&Kb^4vg1Ld#0zH6|t z?v`aL_hvOYxy*ceA9n_L^OdS-2f;w~P=9rNQ(nd&I_d(X{|d*J)?b&P|639Qu#Ond zS7;xmCZ|D^jr>9zcRl5B+&K_~ym3|~V3{cchU6g>)Zh(Q9;r%nikce z^|+_{E_K%8J6^m6l%wWWE*PtNnUWlv(&ozSsSW>kJVv|EzhK$b^0cF-6ipu9YwupHr5ky^YVZzqmPkr- zVkYq`dxY70VeK7`@3kp{jf5O(=$H0>xh(=QmQnkeE1qx50GDl((+!tZa}H}$>1$uJ zr21Ncitu+C`iI53X5I7|d*7>k+=|HKdPW$8IcEd<`Y<(Zd&~s(Usb*&5|LkiS2O;t z5u1RBBiN>rWpe-I8|?lI#Ea;84o)~zB#(EjHF73NN)#TZk`KT3_BJ^9UEii?*KtcFpD{z zNU}Wt>zC^TjlM1yR;_K~?M>}IkgKo~j_HG`1EQJ3LyA_zcFal9w`3Gyjuq|i;9vW- zwO>_UG40Dijy55XP4e5Bw6m#_Gl$y>wY9V1VbNPTFUzkjC1-a@loW3pt}ELN4WTPi z*K6n)%{a)%9*23aWzFaczo~? zOJtZZl~swcr&LDdaj#kF0PUBKX`IAwGi#wHSFH=NQn(?SZ0dCiX_{rtPn%6}OZ-y~ zf<4;(G94ZTWHECX?4OcHMXQQgzrD~V+?EfqXbG=6^dkPwyz#iig9~zYdTbRCqxpG2 zzLSMy&6D|far3mmy}PGmL8BO(QwPizmO;#-HoqN}}aRv@g`?f0|vYF1h5EB+=bd7)|+F zma%hrdlk|an-{3~iG^_^&o0lf++~LyX^(XREeECMIgJt483y)DWdo5m=h^E-UtAfj z(FxwjiOF$=678N8Nk3ryMFQF9)s4g_fdY0laH?I4r96o2yJd2Ln_O)dItsz23sinQ zKfcvif3Cj`In@z8=8LE*Xta^ka1f($5*ZIBl>Ja&|1q^a6ptcc?0|SQQ*}R@fll?2 zB`;%`6n)EOH+Nn1F>YqB-_a(TWpis_{0Q0d7LrzFxL>ZEeuo9{p?ih+<5$5kN>y)I z<3JYX6ilIK^xixdy?#Ad8JsW!lMR!8KO7Yu)W--rTiH;bS`)rC;I)fbULqW(wQlOI zqlr}ZN#nQcB!$O8tg{-a60hVg*0AKSW*vi{7*B+U zB&hvsyO0UpBc=SKML*m|%`vBU!AmQdah(Qq>4iOh0{>B)`1h;JS(y%F`E<`o?Nxj$ z{E)9^%RW|Slpz5!-_jDjNDZxXqPCvAQ>UaVaYE$@monp$4guccBciSlRS=AXNQbldk^Kv#;$w5mXF6u^&Oxaf(l0I(N#^*p?nc=Nb^wDInTz zPQ6GemX5T2p>Zrc1nHzi-rhFg6l@-jAzw>Hqes?gn%A$E>(0T7{3YJI`F|#-7g@9J zIrzA;4no{M{NuP~4kTdk^*kqb3(>YXc8eTV-!WROOQmUpL5GxBg9K241CaOPKMl8wWX+=v6gT%SRin{ zg_S-8-+{<^w%f`C!zvj%@U^y5o9)fd&j|5DUN0m=5)5`@^=_vCk)Ka6SnaS9x+oDk zzj8dTu<5HDqg?suJ))u8U(23dP5vISll58vK_}nZcSP)K(yM8ciq=fLh>~*dqmVW5 zYNT4n%Uy58tk_=TF}JahnR%v{Pb8zmUSi>6TtZ5xJ-d*I_S*P|hp)7Wv3F|zF^OeM zt#FfIW0uoykl}PMFyPX|nyWCWvMhO{5bxX~E8vqu9laxrPL$@PR5fnq=WH|7pW2Y^ zn77c}mBgAKU=9ac)a=)F!LwC_eYmQ$P z7`4Zl5IVS^u&jY?V_{`Dn{LjPnbtl+ZR>)Cr+ByHcJ#{!P^Muc4HQC_e*QxP&vW3( z<|7fkp)tSR-C4ocv{AV0{0(pAyXFK>ux$851Nn6%J>kB|Rq4puL!sfn{Fazi5UZ!B z8CnoiF|%BI<}dJZoU#Q;zeR=5NSwmDl?(c*;=no*Y;{U_Xtp4tBB>S3S{9@gnTcHX z{*KZKMgHb&q7)#IC*#>^GoxMXK@`@SKp6KEN^l7Si~01Za@64YJk&&t{19(eAEyU@ zn-N0vQv^M8k}NazJmh^*><`=CvOzt$FR%3s+QJyQu8?XtxgGFOc0&guqEKL9Fyr!N zS%FT(E-}m&Vau8l`I}h&q>30Uh6wsfA>VHfDpwt}i1W)xSo73hIuX$~E!SrKkKv%n zX}>;QeKl@K-FaW-^8=G;F_wc+L(A~~(@<;pXr^6R1(`!8dS=HXQrG^Xj8M`ovZ*h< z+*pnk08S2!+bWTb`d3I?l^P6J-)-ap+jVaoplg(&twsv|b?k@lEDd7w+jjR(qoN|> zFc05e#BV)>r|vA+nh`sUmvj5z-6yM_n!dePuOD{JK(3M`OYE-N{26C(3=W&; zzy;!}|3;qr3&#!HxoO3O80#Em^rCCi=h4s`x*MlV#GGYH^0-yeighk(zsH_XV9)oW zP&!a_(bel|OAi(!nNh{*)!^$(MvelR@=3YT%!u6Bx_RO7U!iwBT+|*LrPS@Nsz(Ah zW1>PE=fY=f&KIsh(9UC0ol{1YN+L&xdF`j>ezZPvq9ec&+uhpl&%Mqz;IkwJQSVZ<120PprQtJQ8d!}q7xt={pXv0`2kP3}Ktn)<$p8puQ4?<~PKog@%-vA!#U zms6?m2&whMhc%SCRQh>STwM#Dd80YOEFEp0G25KUlkYl9Onpz*ndAkHzMo3f&Td$R zmu^*%II_3d1wQEZYx<{!5!ViP?LO=Ip&MD4lwt1BO2rWaqj8NImJ-$xpAvwE^Y5{DZObqr(3Ec>fIe2*){^QAJ3`~Y6*Z)lY%Wg71)rq z#;2b+SbS^N59|b&Y#h$-zFX$VityrPgjqR81rzOj|IS;{<0Mp(jx?1k(2?F%r4po_ z6cFTYtNO2SO{>-F?Bb|mQxJW>Fe;OTW*+r+9%4cvq)N{ z34Rup&o3yod~P(UN(oik#W@?pCsrF9vwP2h@Y*>%{}sY7GUfiK5kvLSq!_ydVL0 z_{+Cs-5d@6q6QB8F$|}SPSf9`c1l^w&>B+$eAO0F%ulxwLr!OZ(zr?{uVfoY&2iBa zR<|KEqS@N1?5K|G(KmPR2C|^|ue!#;*4oFjSFiKB9%I}2#g{Bw!1Z`&WfqMgfN|Xw zf$XP=cPt=<@c}c&XFx@i(MHaUF;!#+5!rzNF~{UPAslm}>6P^hj4!L7GZB40;Ovkqkec zn&~_#dx9J`+qF}O;;GKyPOI?~{Zye!BIlIh$0;{}6mI4E`~dlv6fVD2a*HqKC+RZ^IwvHGQspJC+JQ=zcy5HcFqIn{=e z;JBBd!*=FmV^HUD8!K!qgcZ9!-;hbOcIu^V#$W^0Ct2}Zq=1)L_ha$GW_A4YSFLQf zopwIJs9KH1FU3h~gvEqL95Jgeg6`<-ousl)6dE!r$r<0MiQAP)H5bJxdS_=A6=w&A$juQ%6(K zrebnsb40Iy%_S96a{7aiSvL8Wx$N^bqE%80@cP;+aa?PEm^F_@p%45LIlV(TqFeGk zDkFrs2h|VHDm#P2gLP#4NWh<=Y!mh5q9zjHRGo6V{|o;xZz6Grn#T z7j`!0+cWR2g<1g$i5F*;U-p1^{fkxRl%w!Qs?HGT>(;0&Q&`O{{F8S<4|?_9wBMOP3Z7F zV%La6)nz69C(Kd9z}(-!?>}H+sKBq|aq7B~7`j3*Fkbc?u5RA;macKw+Ej7vx|p!8 zaU;6?u&HqfdJ?d)anJOO{_St{%Jf7L{@maX^#~qivBn+26U33~6OjGuasmTGe7_I) Z@n@@3j)xyw=0J$E(#J+b(7ylH{{!V8iu(Wn From 523ed5b29615853bb4d8de7dfd21ab37579cc816 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Wed, 26 Jun 2024 16:50:47 +0800 Subject: [PATCH 20/49] =?UTF-8?q?=E6=96=B0=E7=89=88=E9=82=80=E8=AF=B7?= =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E7=A6=BB=E7=BA=BF=E7=A7=AF=E5=88=86=E8=AE=A1?= =?UTF-8?q?=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/player.go | 19 +++++++++---------- worldsrv/taskmgr.go | 1 - worldsrv/trascate_webapi.go | 9 +++++++++ 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/worldsrv/player.go b/worldsrv/player.go index 3e51cad..9810d63 100644 --- a/worldsrv/player.go +++ b/worldsrv/player.go @@ -4377,12 +4377,11 @@ func (this *Player) PhoneLotteryTask(taskId int32, num int64) { } } -func (this *Player) InviteTask(scoreType int32, gameId int32, n int64) { - if this.PSnId == 0 { +func InviteTask(platform string, psnid, snid, scoreType int32, n int64) { + if psnid <= 0 || snid <= 0 { return } - - cfg := PlatformMgrSingleton.GetConfig(this.Platform).ActInviteConfig + cfg := PlatformMgrSingleton.GetConfig(platform).ActInviteConfig switch scoreType { case common.InviteScoreTypeBind: @@ -4391,9 +4390,9 @@ func (this *Player) InviteTask(scoreType int32, gameId int32, n int64) { score, ok := cfg.GetPayScore()[n] if ok { SaveInviteScore(&model.InviteScore{ - Platform: this.Platform, - SnId: this.SnId, - InviteSnId: this.PSnId, + Platform: platform, + SnId: snid, + InviteSnId: psnid, Tp: scoreType, Score: score, Ts: time.Now().Unix(), @@ -4401,9 +4400,9 @@ func (this *Player) InviteTask(scoreType int32, gameId int32, n int64) { }) } else { SaveInviteScore(&model.InviteScore{ - Platform: this.Platform, - SnId: this.SnId, - InviteSnId: this.PSnId, + Platform: platform, + SnId: snid, + InviteSnId: psnid, Tp: common.InviteScoreTypeRecharge, Score: cfg.GetRechargeScore(), Ts: time.Now().Unix(), diff --git a/worldsrv/taskmgr.go b/worldsrv/taskmgr.go index 07a635e..4824198 100644 --- a/worldsrv/taskmgr.go +++ b/worldsrv/taskmgr.go @@ -101,7 +101,6 @@ func (t *TaskHandle) TaskUpdate(id int, data any) { case common.TaskTypePay: // 玩家充值 p.PhoneLotteryTask(common.TaskTypePay, num) - p.InviteTask(common.InviteScoreTypePay, int32(info.GameID), num) case common.TaskTypeWinOrLose: // 游戏输赢金币数量 p.PhoneLotteryTask(common.TaskTypeWinOrLose, num) diff --git a/worldsrv/trascate_webapi.go b/worldsrv/trascate_webapi.go index 9659207..c21e466 100644 --- a/worldsrv/trascate_webapi.go +++ b/worldsrv/trascate_webapi.go @@ -1708,6 +1708,7 @@ func init() { SnId: player.SnId, Num: money, }) + InviteTask(msg.Platform, player.PSnId, player.SnId, common.InviteScoreTypePay, money) } player.SendDiffData() } @@ -1781,6 +1782,7 @@ func init() { logger.Logger.Errorf("model.InsertDbShopLog err:%v.", err) return nil } + InviteTask(msg.Platform, findPlayer.PSnId, findPlayer.SnId, common.InviteScoreTypePay, money) } //账变记录 @@ -4160,10 +4162,17 @@ func init() { SnId: player.SnId, Num: int64(info.ConsumeNum), }) + InviteTask(msg.Platform, player.PSnId, player.SnId, common.InviteScoreTypePay, int64(info.ConsumeNum)) } else { if state == 1 { state = 3 } + psnid, err := model.GetPlayerInviteSnid(msg.Platform, info.SnId) + if err != nil { + logger.Logger.Error("UpdateDbShopState.err:", err) + return err + } + InviteTask(msg.Platform, psnid, info.SnId, common.InviteScoreTypePay, int64(info.ConsumeNum)) } err := model.UpdateDbShopState(msg.Platform, msg.OrderId, state) if err != nil { From 3a60afc0d0b89315ffa58a501aa1c0af330d3884 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Wed, 26 Jun 2024 16:58:50 +0800 Subject: [PATCH 21/49] =?UTF-8?q?=E9=87=91=E5=B8=81=E5=AD=98=E9=92=B1?= =?UTF-8?q?=E7=BD=90=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/welfmgr.go | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index d4d156f..30f5822 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -1063,7 +1063,7 @@ func (this *WelfareMgr) BlindBoxInfo(p *Player, bid int32) { if cyc == 1 || blindBox.Cycle == model.WelfareOpen { p.WelfData.BlindBoxId = 0 } - } // == 1代表当日循环 + } // == 1代表当日循环 if p.WelfData.BlindBoxId == 0 { // 未领取过发随机Date idx := bid @@ -1762,23 +1762,25 @@ func (this *WelfareMgr) PigbankTakeCoin(p *Player) { } if p.WelfData.PigBank.BankCoin >= BankMaxCoin { - pack.OpRetCode = welfare.OpResultCode_OPRC_Sucess - pack.TakeCoinNum = BankMaxCoin - - p.AddCoin(BankMaxCoin, 0, common.GainWay_PigrankGainCoin, "sys", "存钱罐领取金币") - - // 领取完之后 设置为0 - p.WelfData.PigBank.BankCoin = 0 - p.WelfData.PigBank.TakeTimes++ - p.WelfData.PigBank.DayBuyTimes++ - - pack.TakeTimes = p.WelfData.PigBank.DayBuyTimes - pack.CostDiamond = int64(infoData.CostDiamond) - pack.DayBuyMaxCnt = DayBuyMaxCnt - pack.Price = int64(infoData.CoinPrice) - logger.Logger.Tracef("PigbankTakeCoin snid: %v pack: %v", p.SnId, pack) - p.SendToClient(int(welfare.SPacketID_PACKET_SCPigbankTakeCoin), pack) + p.WelfData.PigBank.BankCoin = BankMaxCoin } + pack.OpRetCode = welfare.OpResultCode_OPRC_Sucess + pack.TakeCoinNum = p.WelfData.PigBank.BankCoin + + p.AddCoin(p.WelfData.PigBank.BankCoin, 0, common.GainWay_PigrankGainCoin, "sys", "存钱罐领取金币") + + // 领取完之后 设置为0 + p.WelfData.PigBank.BankCoin = 0 + p.WelfData.PigBank.TakeTimes++ + p.WelfData.PigBank.DayBuyTimes++ + + pack.TakeTimes = p.WelfData.PigBank.DayBuyTimes + pack.CostDiamond = int64(infoData.CostDiamond) + pack.DayBuyMaxCnt = DayBuyMaxCnt + pack.Price = int64(infoData.CoinPrice) + logger.Logger.Tracef("PigbankTakeCoin snid: %v pack: %v", p.SnId, pack) + p.SendToClient(int(welfare.SPacketID_PACKET_SCPigbankTakeCoin), pack) + } } From c845dcad4e18b51d0f9bdbaa6a4e9b2c86b488a7 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Wed, 26 Jun 2024 17:28:24 +0800 Subject: [PATCH 22/49] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E8=A1=A8=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/DB_PigBank_Diamond.dat | 6 +++--- data/DB_PigBank_Diamond.json | 6 +++--- data/DB_PropExchange.dat | Bin 384 -> 384 bytes data/DB_Task.dat | Bin 2161 -> 2161 bytes worldsrv/action_player.go | 2 +- xlsx/DB_PigBank_Diamond.xlsx | Bin 10818 -> 10788 bytes 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/data/DB_PigBank_Diamond.dat b/data/DB_PigBank_Diamond.dat index 4ff07c7..48806c1 100644 --- a/data/DB_PigBank_Diamond.dat +++ b/data/DB_PigBank_Diamond.dat @@ -1,4 +1,4 @@ - (08@dHPc - ((08@dHP -/ 2(08@dHP \ No newline at end of file + (08;@dHPc + ((08;@dHP +/ 2(08;@dHP \ No newline at end of file diff --git a/data/DB_PigBank_Diamond.json b/data/DB_PigBank_Diamond.json index e6d4f7b..550f3a4 100644 --- a/data/DB_PigBank_Diamond.json +++ b/data/DB_PigBank_Diamond.json @@ -7,7 +7,7 @@ "CostDiamond": 30, "MaxGold": 10000000, "MaxDiamond": 150, - "DiamondId": 98001, + "DiamondId": 980001, "CoinPrice": 100, "DiamondPrice": 150, "DiamondNowPrice": 99 @@ -19,7 +19,7 @@ "CostDiamond": 40, "MaxGold": 10000000, "MaxDiamond": 300, - "DiamondId": 98002, + "DiamondId": 980002, "CoinPrice": 100, "DiamondPrice": 300, "DiamondNowPrice": 199 @@ -31,7 +31,7 @@ "CostDiamond": 50, "MaxGold": 10000000, "MaxDiamond": 750, - "DiamondId": 98003, + "DiamondId": 980003, "CoinPrice": 100, "DiamondPrice": 750, "DiamondNowPrice": 499 diff --git a/data/DB_PropExchange.dat b/data/DB_PropExchange.dat index 63516be1cfeb4c7f094933c896b6611960309a1a..c976760ffb9665551f35bdc1e58ee98309fe75e4 100644 GIT binary patch literal 384 zcmd-w<6snElw#w!*2WB`uS4m}Q2Gj#z6zq1I5-yevI!h$vE|a^U;?YZ4VAwErEfy% zTWIRTIUwf4>;cOI?S-j_nS<3{pgNel!1gF{g5A-u_7MwLEC&nNA-FWcEP`2Z2kJnW WLr@HcIY^0}V-e7!UzoWVXbS;lT0AuX literal 384 zcmd-w<6snElw#w!+{O&1uR!UmQ2H8_z7C?5I5-yevI!h$vE|a^U;?YZ0hPZArEfv$ z+i2>;IUwc}We?CjVEsTEtNBWtV0SdEeZ;~Q%fSM62+W}<4#49vu!pc%a0l#gc8*0r MkA7k1VxTPq0Amt7H2?qr diff --git a/data/DB_Task.dat b/data/DB_Task.dat index d16f02ada5d4253d14a46530c27bb2024e0cd0ea..b9535c3ba55aeea7934070d5cbb3f1f2ace0433f 100644 GIT binary patch delta 277 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 be_18)C=La*O!&wnM!|_Wp;&>ee+mBs+X|Q% delta 5191 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 Date: Wed, 26 Jun 2024 17:50:08 +0800 Subject: [PATCH 23/49] =?UTF-8?q?=E6=96=B0=E7=89=88=E9=82=80=E8=AF=B7?= =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E5=85=85=E5=80=BC=E7=BB=99=E8=87=AA=E5=B7=B1?= =?UTF-8?q?=E5=8A=A0=E7=A7=AF=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/constant.go | 1 + dbproxy/mq/c_invite.go | 1 + dbproxy/svc/l_invitescore.go | 33 +++++++++++++++++++++++++++++++++ worldsrv/welfmgr.go | 2 +- 4 files changed, 36 insertions(+), 1 deletion(-) diff --git a/common/constant.go b/common/constant.go index 1171250..5cfc959 100644 --- a/common/constant.go +++ b/common/constant.go @@ -700,6 +700,7 @@ const ( InviteScoreTypeBind = 1 // 绑定邀请码 InviteScoreTypePay = 2 // 充值 InviteScoreTypeRecharge = 3 // 充值完成 + InviteScoreTypePayMe = 4 // 充值(给自己) ) func InMatchChannel(ls []string, n string) bool { diff --git a/dbproxy/mq/c_invite.go b/dbproxy/mq/c_invite.go index 3c2a002..4d0ec74 100644 --- a/dbproxy/mq/c_invite.go +++ b/dbproxy/mq/c_invite.go @@ -169,6 +169,7 @@ func init() { case common.InviteScoreTypePay: // 更新充值积分,上级积分增加 + add(log.SnId, log.Score, 0, 10000) var psnid int32 if len(log.Rate) > 0 { add(log.InviteSnId, log.Score, log.Money, log.Rate[0]) diff --git a/dbproxy/svc/l_invitescore.go b/dbproxy/svc/l_invitescore.go index 9726e30..22970f4 100644 --- a/dbproxy/svc/l_invitescore.go +++ b/dbproxy/svc/l_invitescore.go @@ -102,6 +102,21 @@ func SaveInviteScore(req *model.InviteScore, rechargeScore int64) (b bool, err e logger.Logger.Errorf("SaveInviteScore Insert 1 error:%v", err) return false, err } + // 自己加积分 + err = c.Insert(&model.InviteScore{ + Platform: req.Platform, + SnId: req.SnId, + InviteSnId: req.InviteSnId, + Tp: common.InviteScoreTypePayMe, + Score: req.Score, + Ts: req.Ts, + Money: req.Money, + Rate: req.Rate, + }) + if err != nil { + logger.Logger.Errorf("SaveInviteScore Insert me error:%v", err) + return false, err + } } } else { // 没有充值成功记录 @@ -110,6 +125,24 @@ func SaveInviteScore(req *model.InviteScore, rechargeScore int64) (b bool, err e logger.Logger.Errorf("SaveInviteScore Insert 2 error:%v", err) return false, err } + if req.Tp == common.InviteScoreTypePay { + // 自己加积分 + err = c.Insert(&model.InviteScore{ + Platform: req.Platform, + SnId: req.SnId, + InviteSnId: req.InviteSnId, + Tp: common.InviteScoreTypePayMe, + Score: req.Score, + Ts: req.Ts, + Money: req.Money, + Rate: req.Rate, + }) + if err != nil { + logger.Logger.Errorf("SaveInviteScore Insert me 2 error:%v", err) + return false, err + } + } + newReq := *req if newReq.Tp != common.InviteScoreTypeRecharge { newReq.Id = bson.NewObjectId() diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index 30f5822..d4408d9 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -1063,7 +1063,7 @@ func (this *WelfareMgr) BlindBoxInfo(p *Player, bid int32) { if cyc == 1 || blindBox.Cycle == model.WelfareOpen { p.WelfData.BlindBoxId = 0 } - } // == 1代表当日循环 + } // == 1代表当日循环 if p.WelfData.BlindBoxId == 0 { // 未领取过发随机Date idx := bid From 79e207ebf95e1314b5596a83d10d27772bfa9c26 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Wed, 26 Jun 2024 18:37:47 +0800 Subject: [PATCH 24/49] =?UTF-8?q?=E6=96=B0=E7=89=88=E9=82=80=E8=AF=B7?= =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E5=85=85=E5=80=BC=E7=BB=99=E8=87=AA=E5=B7=B1?= =?UTF-8?q?=E5=8A=A0=E7=A7=AF=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dbproxy/svc/l_invitescore.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dbproxy/svc/l_invitescore.go b/dbproxy/svc/l_invitescore.go index 22970f4..a09bb62 100644 --- a/dbproxy/svc/l_invitescore.go +++ b/dbproxy/svc/l_invitescore.go @@ -104,6 +104,7 @@ func SaveInviteScore(req *model.InviteScore, rechargeScore int64) (b bool, err e } // 自己加积分 err = c.Insert(&model.InviteScore{ + Id: bson.NewObjectId(), Platform: req.Platform, SnId: req.SnId, InviteSnId: req.InviteSnId, @@ -128,6 +129,7 @@ func SaveInviteScore(req *model.InviteScore, rechargeScore int64) (b bool, err e if req.Tp == common.InviteScoreTypePay { // 自己加积分 err = c.Insert(&model.InviteScore{ + Id: bson.NewObjectId(), Platform: req.Platform, SnId: req.SnId, InviteSnId: req.InviteSnId, From c2a7fa3834a0416930c73c766b122d8aea13c054 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Thu, 27 Jun 2024 10:49:51 +0800 Subject: [PATCH 25/49] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=92=BB=E7=9F=B3?= =?UTF-8?q?=E5=AD=98=E5=82=A8=E7=BD=90=E8=AE=A1=E7=AE=97=E4=BF=9D=E7=95=99?= =?UTF-8?q?=E5=90=8E4=E4=BD=8D=E5=B0=8F=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/welfmgr.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index 30f5822..dff3434 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -3,6 +3,7 @@ package main import ( "fmt" "math" + "strconv" "time" "mongo.games.com/goserver/core/logger" @@ -1063,7 +1064,7 @@ func (this *WelfareMgr) BlindBoxInfo(p *Player, bid int32) { if cyc == 1 || blindBox.Cycle == model.WelfareOpen { p.WelfData.BlindBoxId = 0 } - } // == 1代表当日循环 + } // == 1代表当日循环 if p.WelfData.BlindBoxId == 0 { // 未领取过发随机Date idx := bid @@ -1922,8 +1923,11 @@ func (this *WelfareMgr) UpdateDiamondBankData(p *Player, coinNum int64, isWin bo } else { addDiamond = float64(coinNum) * float64(LoseCoinRate) / 10000000 } + //保留小数点后4位 + diamondStr := fmt.Sprintf("%.4f", addDiamond) + addDiamond, _ = strconv.ParseFloat(diamondStr, 64) p.WelfData.DiamondBank.BankDiamond += addDiamond - logger.Logger.Tracef("更新钻石存储罐数据 snid = %d,coinNum = %d,isWin = %s,当前钻石存储罐钻石数量:%f", p.SnId, coinNum, isWin, p.WelfData.DiamondBank.BankDiamond) + logger.Logger.Tracef("玩家更新钻石存储罐数据 snid = %d,coinNum = %d,isWin = %s,当前钻石存储罐钻石数量:%f,本次增加钻石数量:%f", p.SnId, coinNum, isWin, p.WelfData.DiamondBank.BankDiamond, addDiamond) } func (this *WelfareMgr) Update() { From bc3be9673d9d726c42c67bdddc691d652f6dbd56 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Thu, 27 Jun 2024 10:55:11 +0800 Subject: [PATCH 26/49] =?UTF-8?q?=E6=96=B0=E7=89=88=E9=82=80=E8=AF=B7?= =?UTF-8?q?=E6=B4=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dbproxy/mq/c_invite.go | 35 ++++++------ dbproxy/svc/l_invitescore.go | 105 ++++++----------------------------- dbproxy/svc/u_player.go | 52 +++++++++++++---- model/invitecode.go | 30 +++++++--- 4 files changed, 97 insertions(+), 125 deletions(-) diff --git a/dbproxy/mq/c_invite.go b/dbproxy/mq/c_invite.go index 4d0ec74..c0b6c34 100644 --- a/dbproxy/mq/c_invite.go +++ b/dbproxy/mq/c_invite.go @@ -45,18 +45,18 @@ func init() { } // 增加积分 - add := func(snid int32, score, money, rate int64) error { - if snid == 0 { + add := func(psnid, snid, level, tp int32, score, money, rate int64, addMoney bool) error { + if psnid <= 0 { return nil } - err = svc.AddInviteScore(log.Platform, snid, score*rate/10000, money, now) + err = svc.AddInviteScore(log.Platform, psnid, snid, level, tp, score*rate/10000, rate, money, now, addMoney) if err != nil { - logger.Logger.Errorf("EvtInvite add error:%v snid:%v score:%v rate:%v", err, snid, score, rate) + logger.Logger.Errorf("EvtInvite add error:%v psnid:%v score:%v rate:%v", err, psnid, score, rate) return err } - msg, err := get(snid) + msg, err := get(psnid) if err != nil { - logger.Logger.Errorf("EvtInvite add find error:%v snid:%v score:%v rate:%v", err, snid, score, rate) + logger.Logger.Errorf("EvtInvite add find error:%v psnid:%v score:%v rate:%v", err, psnid, score, rate) return err } mq.Send(model.EvtInviteAck, msg) @@ -120,7 +120,7 @@ func init() { var addRechargeScore bool if log.Tp != common.InviteScoreCheckWeek { - addRechargeScore, err = svc.SaveInviteScore(&log.InviteScore, log.RechargeScore) + addRechargeScore, err = svc.CheckInviteScore(&log.InviteScore) if err != nil { logger.Logger.Errorf("EvtInvite SaveInviteScore error:%v msg:%+v %+v", err, log.InviteScore, log) return err @@ -143,7 +143,7 @@ func init() { // 更新绑定数量 // 更新邀请积分 // 1.邀请人增加积分 - add(log.InviteSnId, log.Score, 0, 10000) + add(log.InviteSnId, log.SnId, 0, log.Tp, log.Score, log.Money, 10000, false) // 2.上级增加积分 var psnid int32 if len(log.Rate) > 0 { @@ -153,7 +153,7 @@ func init() { return err } if psnid > 0 { - add(psnid, log.Score, 0, log.Rate[0]) + add(psnid, log.InviteSnId, 1, log.Tp, log.Score, log.Money, log.Rate[0], false) } } if len(log.Rate) > 1 && psnid > 0 { @@ -163,16 +163,16 @@ func init() { return err } if psnid > 0 { - add(psnid, log.Score, 0, log.Rate[1]) + add(psnid, log.InviteSnId, 2, log.Tp, log.Score, log.Money, log.Rate[1], false) } } case common.InviteScoreTypePay: // 更新充值积分,上级积分增加 - add(log.SnId, log.Score, 0, 10000) + add(log.SnId, 0, 0, log.Tp, log.Score, log.Money, 10000, false) var psnid int32 if len(log.Rate) > 0 { - add(log.InviteSnId, log.Score, log.Money, log.Rate[0]) + add(log.InviteSnId, log.SnId, 1, log.Tp, log.Score, log.Money, log.Rate[0], true) psnid, err = svc.GetPSnId(log.Platform, log.InviteSnId) if err != nil { logger.Logger.Errorf("EvtInvite GetPSnId 3 error:%v snid:%v", err, log.InviteSnId) @@ -180,7 +180,7 @@ func init() { } } if len(log.Rate) > 1 && psnid > 0 { - add(psnid, log.Score, 0, log.Rate[1]) + add(psnid, log.SnId, 2, log.Tp, log.Score, log.Money, log.Rate[1], false) psnid, err = svc.GetPSnId(log.Platform, psnid) if err != nil { logger.Logger.Errorf("EvtInvite GetPSnId 4 error:%v snid:%v", err, psnid) @@ -188,18 +188,19 @@ func init() { } } if len(log.Rate) > 2 && psnid > 0 { - add(psnid, log.Score, 0, log.Rate[2]) + add(psnid, log.SnId, 3, log.Tp, log.Score, log.Money, log.Rate[2], false) } if addRechargeScore { - add(log.InviteSnId, log.RechargeScore, log.Money, 10000) + add(log.InviteSnId, log.SnId, 0, common.InviteScoreTypeRecharge, log.RechargeScore, log.Money, 10000, true) } case common.InviteScoreTypeRecharge: // 更新自己的积分 if addRechargeScore { - add(log.InviteSnId, log.RechargeScore, log.Money, 10000) + add(log.InviteSnId, log.SnId, 0, log.Tp, log.RechargeScore, log.Money, 10000, true) } else { - add(log.InviteSnId, 0, log.Money, 10000) + // 只增加充值金额 + add(log.InviteSnId, log.SnId, 0, log.Tp, 0, log.Money, 10000, true) } case common.InviteScoreCheckWeek: diff --git a/dbproxy/svc/l_invitescore.go b/dbproxy/svc/l_invitescore.go index a09bb62..f094962 100644 --- a/dbproxy/svc/l_invitescore.go +++ b/dbproxy/svc/l_invitescore.go @@ -26,8 +26,9 @@ func InviteScoreCollection(plt string) *mongo.Collection { if s != nil { c, first := s.DB().C(InviteScoreCollName) if first { - c.EnsureIndex(mgo.Index{Key: []string{"snid"}, Background: true, Sparse: true}) - c.EnsureIndex(mgo.Index{Key: []string{"invitesnid"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"upsnid"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"downsnid"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"level"}, Background: true, Sparse: true}) c.EnsureIndex(mgo.Index{Key: []string{"tp"}, Background: true, Sparse: true}) c.EnsureIndex(mgo.Index{Key: []string{"ts"}, Background: true, Sparse: true}) c.EnsureIndex(mgo.Index{Key: []string{"-ts"}, Background: true, Sparse: true}) @@ -43,31 +44,21 @@ func InviteScoreCollection(plt string) *mongo.Collection { type BindScoreSvc struct { } -func SaveInviteScore(req *model.InviteScore, rechargeScore int64) (b bool, err error) { +func CheckInviteScore(req *model.InviteScore) (b bool, err error) { logger.Logger.Tracef("SaveInviteScore req:%+v", *req) if req.InviteSnId == 0 || req.SnId == 0 { return false, nil } - req.Id = bson.NewObjectId() u := PlayerDataCollection(req.Platform) if u == nil { return false, PlayerColError } - c := InviteScoreCollection(req.Platform) - if c == nil { - return false, InviteScoreColError - } - // 不能重复绑定 if req.Tp == common.InviteScoreTypeBind { - a := &model.InviteScore{} - err = c.Find(bson.M{"snid": req.SnId, "tp": common.InviteScoreTypeBind}).One(a) - if err != nil && !errors.Is(err, mgo.ErrNotFound) { - return false, errors.New("find error") - } - if err == nil && a.InviteSnId > 0 { + psnid, err := GetPSnId(req.Platform, req.SnId) + if err == nil && psnid > 0 { // 已经绑定 return false, errors.New("already bind") } @@ -75,11 +66,10 @@ func SaveInviteScore(req *model.InviteScore, rechargeScore int64) (b bool, err e // 必须已经绑定 if req.Tp != common.InviteScoreTypeBind { - a := &model.InviteScore{} - err = c.Find(bson.M{"snid": req.SnId, "tp": common.InviteScoreTypeBind}).One(a) - if err != nil { + psnid, err := GetPSnId(req.Platform, req.SnId) + if err != nil || psnid == 0 { // 还没有绑定上级 - logger.Logger.Errorf("GetInviteScore Find BindTime error:%v", err) + logger.Logger.Errorf("not bind error:%v", err) return false, err } } @@ -87,83 +77,20 @@ func SaveInviteScore(req *model.InviteScore, rechargeScore int64) (b bool, err e // 充值成功记录 if req.Tp == common.InviteScoreTypePay || req.Tp == common.InviteScoreTypeRecharge { // 是否已经记录过 - a := &model.InviteScore{} - err = c.Find(bson.M{"snid": req.SnId, "tp": common.InviteScoreTypeRecharge}).One(a) + c := InviteScoreCollection(req.Platform) + if c == nil { + return false, InviteScoreColError + } + a := &model.LogInviteScore{} + err = c.Find(bson.M{"downsnid": req.SnId, "upsnid": req.InviteSnId, "tp": common.InviteScoreTypeRecharge}).One(a) if err != nil && !errors.Is(err, mgo.ErrNotFound) { return false, errors.New("find error") } - if err == nil && a.InviteSnId > 0 { - // 已有记录 - if req.Tp == common.InviteScoreTypeRecharge { + if err == nil && a.UpSnid > 0 { - } else { - err = c.Insert(req) - if err != nil { - logger.Logger.Errorf("SaveInviteScore Insert 1 error:%v", err) - return false, err - } - // 自己加积分 - err = c.Insert(&model.InviteScore{ - Id: bson.NewObjectId(), - Platform: req.Platform, - SnId: req.SnId, - InviteSnId: req.InviteSnId, - Tp: common.InviteScoreTypePayMe, - Score: req.Score, - Ts: req.Ts, - Money: req.Money, - Rate: req.Rate, - }) - if err != nil { - logger.Logger.Errorf("SaveInviteScore Insert me error:%v", err) - return false, err - } - } } else { - // 没有充值成功记录 - err = c.Insert(req) - if err != nil { - logger.Logger.Errorf("SaveInviteScore Insert 2 error:%v", err) - return false, err - } - if req.Tp == common.InviteScoreTypePay { - // 自己加积分 - err = c.Insert(&model.InviteScore{ - Id: bson.NewObjectId(), - Platform: req.Platform, - SnId: req.SnId, - InviteSnId: req.InviteSnId, - Tp: common.InviteScoreTypePayMe, - Score: req.Score, - Ts: req.Ts, - Money: req.Money, - Rate: req.Rate, - }) - if err != nil { - logger.Logger.Errorf("SaveInviteScore Insert me 2 error:%v", err) - return false, err - } - } - - newReq := *req - if newReq.Tp != common.InviteScoreTypeRecharge { - newReq.Id = bson.NewObjectId() - newReq.Tp = common.InviteScoreTypeRecharge - newReq.Score = rechargeScore - err = c.Insert(newReq) - if err != nil { - logger.Logger.Errorf("SaveInviteScore InviteScoreTypeRecharge Insert error:%v", err) - return false, err - } - } b = true } - } else { - err = c.Insert(req) - if err != nil { - logger.Logger.Errorf("SaveInviteScore Insert 3 error:%v", err) - return false, err - } } return b, nil diff --git a/dbproxy/svc/u_player.go b/dbproxy/svc/u_player.go index 3ca2016..3cae6d2 100644 --- a/dbproxy/svc/u_player.go +++ b/dbproxy/svc/u_player.go @@ -334,13 +334,13 @@ func (svc *PlayerDataSvc) GetPlayerDataBySnId(args *model.GetPlayerDataBySnIdArg if c == nil { return } - res := new(model.InviteScore) - c.Find(bson.M{"snid": args.SnId, "tp": common.InviteScoreTypeBind}).One(res) + res := new(model.LogInviteScore) + c.Find(bson.M{"downsnid": args.SnId, "tp": common.InviteScoreTypeBind}).One(res) param := bson.M{} - if res.InviteSnId > 0 { - p.PSnId = res.InviteSnId - param["psnid"] = res.InviteSnId - code, _ := GetCodeBySnId(args.Plt, res.InviteSnId) + if res.UpSnid > 0 { + p.PSnId = int32(res.UpSnid) + param["psnid"] = p.PSnId + code, _ := GetCodeBySnId(args.Plt, p.PSnId) if code != "" { p.PCode = code param["pcode"] = code @@ -1582,14 +1582,46 @@ func ClearInviteScore(platform string, snId int32, now time.Time) error { return nil } -func AddInviteScore(platform string, snId int32, num, money int64, now time.Time) error { +func AddInviteScore(platform string, psnId, snid, level, tp int32, num, rate, money int64, now time.Time, addMoney bool) error { + logger.Logger.Tracef("AddInviteScore ==> platform %v, psnId %v, snid %v, level %v, tp %v, num %v, rate %v, money %v, now %v, addMoney %v", + platform, psnId, snid, level, tp, num, rate, money, now, addMoney) + i := InviteScoreCollection(platform) + if i == nil { + return InviteScoreColError + } + + id := bson.NewObjectId() + err := i.Insert(&model.LogInviteScore{ + Id: id, + Platform: platform, + UpSnid: psnId, + DownSnid: snid, + Level: level, + Tp: tp, + Rate: rate, + Score: num, + Money: money, + Ts: now.Unix(), + }) + + if err != nil { + logger.Logger.Error("AddInviteScore LogInviteScore error ", err) + return err + } + c := PlayerDataCollection(platform) if c == nil { return PlayerColError } - err := c.Update(bson.M{"snid": snId}, bson.M{"$inc": bson.M{"iscore": num, "imoney": money}, "$set": bson.M{"iscorets": now}}) + myMoney := money + if !addMoney { + myMoney = 0 + } + + err = c.Update(bson.M{"snid": psnId}, bson.M{"$inc": bson.M{"iscore": num, "imoney": myMoney}, "$set": bson.M{"iscorets": now}}) if err != nil { + i.RemoveId(id) logger.Logger.Error("AddInviteScore error ", err) return err } @@ -1600,7 +1632,7 @@ func AddInviteScore(platform string, snId int32, num, money int64, now time.Time INum int64 } res := &m{} - err = c.Find(bson.M{"snid": snId}).Select(bson.M{"iscore": 1, "inum": 1}).One(res) + err = c.Find(bson.M{"snid": psnId}).Select(bson.M{"iscore": 1, "inum": 1}).One(res) if err != nil { logger.Logger.Error("AddInviteScore find error ", err) return err @@ -1608,7 +1640,7 @@ func AddInviteScore(platform string, snId int32, num, money int64, now time.Time SaveRankInvite(&model.RankInvite{ Platform: platform, - SnId: snId, + SnId: psnId, Num: res.INum, Score: res.IScore, Ts: now.Unix(), diff --git a/model/invitecode.go b/model/invitecode.go index b0dfde0..0a7951d 100644 --- a/model/invitecode.go +++ b/model/invitecode.go @@ -47,15 +47,14 @@ func GetSnIdByCode(platform string, code string) (int32, error) { // InviteScore 积分记录 type InviteScore struct { - Id bson.ObjectId `bson:"_id"` - Platform string `bson:"-"` // 平台id - SnId int32 // 被邀请人id - InviteSnId int32 // 邀请人id - Tp int32 // 积分类型 common.InviteScoreType ~ - Score int64 // 积分 - Ts int64 // 时间戳 - Money int64 // 充值金额 - Rate []int64 // 返佣比例 + Platform string // 平台id + SnId int32 // 被邀请人id + InviteSnId int32 // 邀请人id + Tp int32 // 积分类型 common.InviteScoreType ~ + Score int64 // 积分 + Ts int64 // 时间戳 + Money int64 // 充值金额 + Rate []int64 // 返佣比例 } // 邀请消息 @@ -119,3 +118,16 @@ type RankInvite struct { Ts int64 Week int64 } + +type LogInviteScore struct { + Id bson.ObjectId `bson:"_id"` + Platform string `bson:"-"` // 平台id + UpSnid int32 // 上级代理 + DownSnid int32 // 下级代理 + Level int32 // 代理层级 例如 1:DownSnid 是 UpSnid 的 1 级代理; 2: DownSnid 是 UpSnid 的 2 级代理 + Tp int32 // 返佣类型 + Rate int64 // 返佣比例 + Score int64 // 积分 + Money int64 // 充值金额 + Ts int64 // 时间戳 +} From ae0ac2dbaf90f7b4f42e2359bbba67fc6224190d Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Thu, 27 Jun 2024 10:57:57 +0800 Subject: [PATCH 27/49] =?UTF-8?q?=E9=92=BB=E7=9F=B3=E5=AD=98=E5=82=A8?= =?UTF-8?q?=E7=BD=90=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/player.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/worldsrv/player.go b/worldsrv/player.go index 9810d63..faf0d98 100644 --- a/worldsrv/player.go +++ b/worldsrv/player.go @@ -3868,6 +3868,10 @@ func (this *Player) GetPayGoodsInfo() { }) } } + //钻石存储罐 + if info.PageId == ShopPageDiamondBank { + WelfareMgrSington.DiamondBankTakeCoin(this) + } switch info.Remark { case "BlindBox": if len(info.OtherParams) > 0 { From b9ef093b1814a37fe06a83e6ee910f1e32325750 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Thu, 27 Jun 2024 11:34:13 +0800 Subject: [PATCH 28/49] =?UTF-8?q?=E5=AE=A0=E7=89=A9=E6=8A=80=E8=83=BD?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/DB_GiftCard.dat | Bin 57 -> 57 bytes data/DB_PetSkill.dat | Bin 88 -> 890 bytes data/DB_PetSkill.json | 121 ++- data/DB_PetSkillDes.dat | 13 - data/DB_PetSkillDes.json | 82 -- data/DB_PropExchange.dat | Bin 384 -> 384 bytes data/DB_Task.dat | Bin 2161 -> 2161 bytes protocol/server/pbdata.pb.go | 1414 +++++++++++++++------------------- protocol/server/pbdata.proto | 34 +- srvdata/db_petskilldes.go | 77 -- xlsx/DB_PetSkill.xlsx | Bin 12417 -> 11082 bytes xlsx/DB_PetSkillDes.xlsx | Bin 10809 -> 0 bytes 12 files changed, 751 insertions(+), 990 deletions(-) delete mode 100644 data/DB_PetSkillDes.dat delete mode 100644 data/DB_PetSkillDes.json delete mode 100644 srvdata/db_petskilldes.go delete mode 100644 xlsx/DB_PetSkillDes.xlsx diff --git a/data/DB_GiftCard.dat b/data/DB_GiftCard.dat index 15600367ff42a73b75826e6378f02a3bde3a8661..96640b07f274cbbbda035ee3e52503c8356a73cb 100644 GIT binary patch delta 38 pcmcDtoFJjd$+57PP2j+^jZ8{x92eV|1-P_0AVMv+2JBXh3;@YB39kSE delta 38 pcmcDtoFJjd#&NNYS%6E4lVf2oo4|o-8=15?Aj}q919mG$1^~Z739kSE diff --git a/data/DB_PetSkill.dat b/data/DB_PetSkill.dat index fd8655f3c2ef47d4eb892759a94a70f51c21c941..622f190fb9ebbcfe904fd70c0d1e11f3239762e5 100644 GIT binary patch literal 890 zcmb8sy$XU*7=Yo_w4*dMG&D9hd9*)+mM)+%x|e8)#D)}tsD_prB9I)zu%(MRns-q{ zUmW5iI5+SN?`w>RR9Ovck9of?HOjfS%Hsoz7R(PVlkLyXW0=iicE6>&AUj0qI$>Ut zZm*NpG(F9-z+=&pxo773*(U5st${`^zE-IkBO-$b38JUIoHMk5ItvC%0 L3=9m7b&L!EKbsL@ diff --git a/data/DB_PetSkill.json b/data/DB_PetSkill.json index c47b15c..06f6923 100644 --- a/data/DB_PetSkill.json +++ b/data/DB_PetSkill.json @@ -1,13 +1,124 @@ { "Arr": [ { - "Id": 10001, + "Id": 1, + "SkillId": 10001, "PetId": 1000001, + "SkillLevel": 1, "SkillName": "金鸡守卫", - "SKillDes": "在被炸弹明确攻击时{0}概率完全免疫", - "SKillLevel": 10, - "SKillUnlockType": 1, - "SKillUnlockTakes": "100013,20" + "SkillDes": "在被炸弹明确攻击时{5}概率完全免疫", + "SKillValue": "5", + "ItemConsum": { + "100013": 20 + } + }, + { + "Id": 2, + "SkillId": 10001, + "PetId": 1000001, + "SkillLevel": 2, + "SkillName": "金鸡守卫", + "SkillDes": "在被炸弹明确攻击时{6}概率完全免疫", + "SKillValue": "6", + "ItemConsum": { + "100013": 20 + } + }, + { + "Id": 3, + "SkillId": 10001, + "PetId": 1000001, + "SkillLevel": 3, + "SkillName": "金鸡守卫", + "SkillDes": "在被炸弹明确攻击时{7}概率完全免疫", + "SKillValue": "7", + "ItemConsum": { + "100013": 20 + } + }, + { + "Id": 4, + "SkillId": 10001, + "PetId": 1000001, + "SkillLevel": 4, + "SkillName": "金鸡守卫", + "SkillDes": "在被炸弹明确攻击时{8}概率完全免疫", + "SKillValue": "8", + "ItemConsum": { + "100013": 50 + } + }, + { + "Id": 5, + "SkillId": 10001, + "PetId": 1000001, + "SkillLevel": 5, + "SkillName": "金鸡守卫", + "SkillDes": "在被炸弹明确攻击时{9}概率完全免疫", + "SKillValue": "9", + "ItemConsum": { + "100013": 50 + } + }, + { + "Id": 6, + "SkillId": 10001, + "PetId": 1000001, + "SkillLevel": 6, + "SkillName": "金鸡守卫", + "SkillDes": "在被炸弹明确攻击时{10}概率完全免疫", + "SKillValue": "10", + "ItemConsum": { + "100013": 50 + } + }, + { + "Id": 7, + "SkillId": 10001, + "PetId": 1000001, + "SkillLevel": 7, + "SkillName": "金鸡守卫", + "SkillDes": "在被炸弹明确攻击时{11}概率完全免疫", + "SKillValue": "11", + "ItemConsum": { + "100013": 50 + } + }, + { + "Id": 8, + "SkillId": 10001, + "PetId": 1000001, + "SkillLevel": 8, + "SkillName": "金鸡守卫", + "SkillDes": "在被炸弹明确攻击时{12}概率完全免疫", + "SKillValue": "12", + "ItemConsum": { + "100013": 50 + } + }, + { + "Id": 9, + "SkillId": 10001, + "PetId": 1000001, + "SkillLevel": 9, + "SkillName": "金鸡守卫", + "SkillDes": "在被炸弹明确攻击时{13}概率完全免疫", + "SKillValue": "13", + "ItemConsum": { + "100013": 50 + } + }, + { + "Id": 10, + "SkillId": 10001, + "PetId": 1000001, + "SkillLevel": 10, + "SkillName": "金鸡守卫", + "SkillDes": "在被炸弹明确攻击时{14}概率完全免疫", + "SKillValue": "14", + "ItemConsum": { + "100013": 0 + } } ] } \ No newline at end of file diff --git a/data/DB_PetSkillDes.dat b/data/DB_PetSkillDes.dat deleted file mode 100644 index bf7e7e1..0000000 --- a/data/DB_PetSkillDes.dat +++ /dev/null @@ -1,13 +0,0 @@ - -N"5(0 -N"6(0 -N"7(0 -N"8(02 -N"9(02 -N"10(02 -N"11(02 -N"12(02 - N "13(02 -  -N -"14 \ No newline at end of file diff --git a/data/DB_PetSkillDes.json b/data/DB_PetSkillDes.json deleted file mode 100644 index ee6ef7a..0000000 --- a/data/DB_PetSkillDes.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "Arr": [ - { - "Id": 1, - "SkillId": 10001, - "SkillLevel": 1, - "SKillValue": "5", - "Fragment": 100013, - "Amount": 20 - }, - { - "Id": 2, - "SkillId": 10001, - "SkillLevel": 2, - "SKillValue": "6", - "Fragment": 100013, - "Amount": 20 - }, - { - "Id": 3, - "SkillId": 10001, - "SkillLevel": 3, - "SKillValue": "7", - "Fragment": 100013, - "Amount": 20 - }, - { - "Id": 4, - "SkillId": 10001, - "SkillLevel": 4, - "SKillValue": "8", - "Fragment": 100013, - "Amount": 50 - }, - { - "Id": 5, - "SkillId": 10001, - "SkillLevel": 5, - "SKillValue": "9", - "Fragment": 100013, - "Amount": 50 - }, - { - "Id": 6, - "SkillId": 10001, - "SkillLevel": 6, - "SKillValue": "10", - "Fragment": 100013, - "Amount": 50 - }, - { - "Id": 7, - "SkillId": 10001, - "SkillLevel": 7, - "SKillValue": "11", - "Fragment": 100013, - "Amount": 50 - }, - { - "Id": 8, - "SkillId": 10001, - "SkillLevel": 8, - "SKillValue": "12", - "Fragment": 100013, - "Amount": 50 - }, - { - "Id": 9, - "SkillId": 10001, - "SkillLevel": 9, - "SKillValue": "13", - "Fragment": 100013, - "Amount": 50 - }, - { - "Id": 10, - "SkillId": 10001, - "SkillLevel": 10, - "SKillValue": "14" - } - ] -} \ No newline at end of file diff --git a/data/DB_PropExchange.dat b/data/DB_PropExchange.dat index c976760ffb9665551f35bdc1e58ee98309fe75e4..953c7f1a310ad3c78769d87c71c71714a075348b 100644 GIT binary patch literal 384 zcmd-w<6snElw#w!+Qtl~uR-bSQ2H{Iz5=3^I5-yevI!h$vE|a^U;?YZ0hPZArEfv$ z+i2>;IUwevn1^I9R{cPEboYSmQ{n`>qhakM7Oq$h78Hl$auCd7m`7nA1UnRH(H*G6 SAs%JtSOoOw7iKO7+Cl(ivOF~a literal 384 zcmd-w<6snElw#w!*2WB`uS4m}Q2Gj#z6zq1I5-yevI!h$vE|a^U;?YZ4VAwErEfy% zTWIRTIUwf4>;cOI?S-j_nS<3{pgNel!1gF{g5A-u_7MwLEC&nNA-FWcEP`2Z2kJnW WLr@HcIY^0}V-e7!UzoWVXbS;lT0AuX diff --git a/data/DB_Task.dat b/data/DB_Task.dat index b9535c3ba55aeea7934070d5cbb3f1f2ace0433f..4d7971948942b5e4f09a30ebd420bbbf28a5773b 100644 GIT binary patch delta 336 zcmew;@KHd4ONoO~fKh@`fl-6efYFMLV@WTY0IL-T$3h@|p^bT?f+?dQ8^J$%~lNF^mwIEXA?{YAqL356IffEa&7QmLQ2bFmkDI zYDBWFHop$!cu;lgnAeCVR7; Xfw}?NWg6_CprQ*7$-zCR&EWjZLKo;vp1yjb!Ti8V=XEJ6B zLSzrL*aBr20c9B{KV{SxWaGHl#w@@D)jMG!|72CB>p)SE3Rb9SLub`wUglT}h$u|$ zfmu8bj9jW5ll=sEC0G@>H5yK=U!V$f21FS%RP%%7LX#IUr$dbtK{8T`WyRz)cEQP) zSqT9NS(o3Mc}NW10MrMRxLCRz9Hn1yzAk${dGwFbQx0rPwrHu*0oEa?NB# dHW8>b$d server.DB_ActSign @@ -12001,7 +11865,7 @@ var file_pbdata_proto_depIdxs = []int32{ 18, // 9: server.DB_ChessMatchRulesArray.Arr:type_name -> server.DB_ChessMatchRules 20, // 10: server.DB_ChessRankArray.Arr:type_name -> server.DB_ChessRank 22, // 11: server.DB_ClientVerArray.Arr:type_name -> server.DB_ClientVer - 136, // 12: server.DB_CollectBox.ItemID:type_name -> server.DB_CollectBox.ItemIDEntry + 134, // 12: server.DB_CollectBox.ItemID:type_name -> server.DB_CollectBox.ItemIDEntry 24, // 13: server.DB_CollectBoxArray.Arr:type_name -> server.DB_CollectBox 26, // 14: server.DB_CollectBoxGainArray.Arr:type_name -> server.DB_CollectBoxGain 28, // 15: server.DB_CrashSearchArray.Arr:type_name -> server.DB_CrashSearch @@ -12026,10 +11890,10 @@ var file_pbdata_proto_depIdxs = []int32{ 66, // 34: server.DB_Game_IntroductionArray.Arr:type_name -> server.DB_Game_Introduction 68, // 35: server.DB_Game_PetArray.Arr:type_name -> server.DB_Game_Pet 70, // 36: server.DB_Game_RoleArray.Arr:type_name -> server.DB_Game_Role - 137, // 37: server.DB_GiftBox.ItemID:type_name -> server.DB_GiftBox.ItemIDEntry + 135, // 37: server.DB_GiftBox.ItemID:type_name -> server.DB_GiftBox.ItemIDEntry 72, // 38: server.DB_GiftBoxArray.Arr:type_name -> server.DB_GiftBox - 138, // 39: server.DB_GiftCard.Rewards:type_name -> server.DB_GiftCard.RewardsEntry - 139, // 40: server.DB_GiftCard.DayRewards:type_name -> server.DB_GiftCard.DayRewardsEntry + 136, // 39: server.DB_GiftCard.Rewards:type_name -> server.DB_GiftCard.RewardsEntry + 137, // 40: server.DB_GiftCard.DayRewards:type_name -> server.DB_GiftCard.DayRewardsEntry 74, // 41: server.DB_GiftCardArray.Arr:type_name -> server.DB_GiftCard 76, // 42: server.DB_IceAgeElementRateArray.Arr:type_name -> server.DB_IceAgeElementRate 78, // 43: server.DB_Legend_OddsArray.Arr:type_name -> server.DB_Legend_Odds @@ -12041,31 +11905,31 @@ var file_pbdata_proto_depIdxs = []int32{ 90, // 49: server.DB_NameBoyArray.Arr:type_name -> server.DB_NameBoy 92, // 50: server.DB_NameGirlArray.Arr:type_name -> server.DB_NameGirl 94, // 51: server.DB_NewPlayerArray.Arr:type_name -> server.DB_NewPlayer - 96, // 52: server.DB_PetSkillArray.Arr:type_name -> server.DB_PetSkill - 98, // 53: server.DB_PetSkillDesArray.Arr:type_name -> server.DB_PetSkillDes - 100, // 54: server.DB_PhoneLotteryArray.Arr:type_name -> server.DB_PhoneLottery - 102, // 55: server.DB_PigBank_DiamondArray.Arr:type_name -> server.DB_PigBank_Diamond - 104, // 56: server.DB_Pigbank_PropArray.Arr:type_name -> server.DB_Pigbank_Prop - 106, // 57: server.DB_PlayerExpArray.Arr:type_name -> server.DB_PlayerExp - 108, // 58: server.DB_PlayerInfoArray.Arr:type_name -> server.DB_PlayerInfo - 110, // 59: server.DB_PlayerTypeArray.Arr:type_name -> server.DB_PlayerType - 112, // 60: server.DB_PotOddArray.Arr:type_name -> server.DB_PotOdd - 140, // 61: server.DB_PropExchange.Cost:type_name -> server.DB_PropExchange.CostEntry - 141, // 62: server.DB_PropExchange.Gain:type_name -> server.DB_PropExchange.GainEntry - 114, // 63: server.DB_PropExchangeArray.Arr:type_name -> server.DB_PropExchange - 116, // 64: server.DB_RankCycleArray.Arr:type_name -> server.DB_RankCycle - 118, // 65: server.DB_RankLevelArray.Arr:type_name -> server.DB_RankLevel - 120, // 66: server.DB_RankRewardArray.Arr:type_name -> server.DB_RankReward - 122, // 67: server.DB_Sensitive_WordsArray.Arr:type_name -> server.DB_Sensitive_Words - 124, // 68: server.DB_SlotRateWeightArray.Arr:type_name -> server.DB_SlotRateWeight - 126, // 69: server.DB_SystemChanceArray.Arr:type_name -> server.DB_SystemChance - 142, // 70: server.DB_Task.Award:type_name -> server.DB_Task.AwardEntry - 128, // 71: server.DB_TaskArray.Arr:type_name -> server.DB_Task - 130, // 72: server.DB_ThirdPlatformGameMappingArray.Arr:type_name -> server.DB_ThirdPlatformGameMapping - 132, // 73: server.DB_TipsArray.Arr:type_name -> server.DB_Tips - 143, // 74: server.DB_VIP.Privilege7:type_name -> server.DB_VIP.Privilege7Entry - 144, // 75: server.DB_VIP.Award:type_name -> server.DB_VIP.AwardEntry - 134, // 76: server.DB_VIPArray.Arr:type_name -> server.DB_VIP + 138, // 52: server.DB_PetSkill.ItemConsum:type_name -> server.DB_PetSkill.ItemConsumEntry + 96, // 53: server.DB_PetSkillArray.Arr:type_name -> server.DB_PetSkill + 98, // 54: server.DB_PhoneLotteryArray.Arr:type_name -> server.DB_PhoneLottery + 100, // 55: server.DB_PigBank_DiamondArray.Arr:type_name -> server.DB_PigBank_Diamond + 102, // 56: server.DB_Pigbank_PropArray.Arr:type_name -> server.DB_Pigbank_Prop + 104, // 57: server.DB_PlayerExpArray.Arr:type_name -> server.DB_PlayerExp + 106, // 58: server.DB_PlayerInfoArray.Arr:type_name -> server.DB_PlayerInfo + 108, // 59: server.DB_PlayerTypeArray.Arr:type_name -> server.DB_PlayerType + 110, // 60: server.DB_PotOddArray.Arr:type_name -> server.DB_PotOdd + 139, // 61: server.DB_PropExchange.Cost:type_name -> server.DB_PropExchange.CostEntry + 140, // 62: server.DB_PropExchange.Gain:type_name -> server.DB_PropExchange.GainEntry + 112, // 63: server.DB_PropExchangeArray.Arr:type_name -> server.DB_PropExchange + 114, // 64: server.DB_RankCycleArray.Arr:type_name -> server.DB_RankCycle + 116, // 65: server.DB_RankLevelArray.Arr:type_name -> server.DB_RankLevel + 118, // 66: server.DB_RankRewardArray.Arr:type_name -> server.DB_RankReward + 120, // 67: server.DB_Sensitive_WordsArray.Arr:type_name -> server.DB_Sensitive_Words + 122, // 68: server.DB_SlotRateWeightArray.Arr:type_name -> server.DB_SlotRateWeight + 124, // 69: server.DB_SystemChanceArray.Arr:type_name -> server.DB_SystemChance + 141, // 70: server.DB_Task.Award:type_name -> server.DB_Task.AwardEntry + 126, // 71: server.DB_TaskArray.Arr:type_name -> server.DB_Task + 128, // 72: server.DB_ThirdPlatformGameMappingArray.Arr:type_name -> server.DB_ThirdPlatformGameMapping + 130, // 73: server.DB_TipsArray.Arr:type_name -> server.DB_Tips + 142, // 74: server.DB_VIP.Privilege7:type_name -> server.DB_VIP.Privilege7Entry + 143, // 75: server.DB_VIP.Award:type_name -> server.DB_VIP.AwardEntry + 132, // 76: server.DB_VIPArray.Arr:type_name -> server.DB_VIP 77, // [77:77] is the sub-list for method output_type 77, // [77:77] is the sub-list for method input_type 77, // [77:77] is the sub-list for extension type_name @@ -13256,30 +13120,6 @@ func file_pbdata_proto_init() { } } file_pbdata_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PetSkillDes); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pbdata_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_PetSkillDesArray); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_pbdata_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PhoneLottery); i { case 0: return &v.state @@ -13291,7 +13131,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PhoneLotteryArray); i { case 0: return &v.state @@ -13303,7 +13143,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PigBank_Diamond); i { case 0: return &v.state @@ -13315,7 +13155,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PigBank_DiamondArray); i { case 0: return &v.state @@ -13327,7 +13167,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_Pigbank_Prop); i { case 0: return &v.state @@ -13339,7 +13179,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_Pigbank_PropArray); i { case 0: return &v.state @@ -13351,7 +13191,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PlayerExp); i { case 0: return &v.state @@ -13363,7 +13203,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PlayerExpArray); i { case 0: return &v.state @@ -13375,7 +13215,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PlayerInfo); i { case 0: return &v.state @@ -13387,7 +13227,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PlayerInfoArray); i { case 0: return &v.state @@ -13399,7 +13239,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PlayerType); i { case 0: return &v.state @@ -13411,7 +13251,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PlayerTypeArray); i { case 0: return &v.state @@ -13423,7 +13263,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PotOdd); i { case 0: return &v.state @@ -13435,7 +13275,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PotOddArray); i { case 0: return &v.state @@ -13447,7 +13287,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PropExchange); i { case 0: return &v.state @@ -13459,7 +13299,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PropExchangeArray); i { case 0: return &v.state @@ -13471,7 +13311,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_RankCycle); i { case 0: return &v.state @@ -13483,7 +13323,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_RankCycleArray); i { case 0: return &v.state @@ -13495,7 +13335,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_RankLevel); i { case 0: return &v.state @@ -13507,7 +13347,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_RankLevelArray); i { case 0: return &v.state @@ -13519,7 +13359,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_RankReward); i { case 0: return &v.state @@ -13531,7 +13371,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_RankRewardArray); i { case 0: return &v.state @@ -13543,7 +13383,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_Sensitive_Words); i { case 0: return &v.state @@ -13555,7 +13395,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_Sensitive_WordsArray); i { case 0: return &v.state @@ -13567,7 +13407,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_SlotRateWeight); i { case 0: return &v.state @@ -13579,7 +13419,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_SlotRateWeightArray); i { case 0: return &v.state @@ -13591,7 +13431,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_SystemChance); i { case 0: return &v.state @@ -13603,7 +13443,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_SystemChanceArray); i { case 0: return &v.state @@ -13615,7 +13455,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_Task); i { case 0: return &v.state @@ -13627,7 +13467,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_TaskArray); i { case 0: return &v.state @@ -13639,7 +13479,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_ThirdPlatformGameMapping); i { case 0: return &v.state @@ -13651,7 +13491,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_ThirdPlatformGameMappingArray); i { case 0: return &v.state @@ -13663,7 +13503,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_Tips); i { case 0: return &v.state @@ -13675,7 +13515,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_TipsArray); i { case 0: return &v.state @@ -13687,7 +13527,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_VIP); i { case 0: return &v.state @@ -13699,7 +13539,7 @@ func file_pbdata_proto_init() { return nil } } - file_pbdata_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { + file_pbdata_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_VIPArray); i { case 0: return &v.state @@ -13718,7 +13558,7 @@ func file_pbdata_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pbdata_proto_rawDesc, NumEnums: 0, - NumMessages: 145, + NumMessages: 144, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/server/pbdata.proto b/protocol/server/pbdata.proto index 915bff5..ac4ed32 100644 --- a/protocol/server/pbdata.proto +++ b/protocol/server/pbdata.proto @@ -1241,17 +1241,19 @@ message DB_PetSkill { int32 Id = 1; - int32 PetId = 2; + int32 SkillId = 2; - string SkillName = 3; + int32 PetId = 3; - string SKillDes = 4; + int32 SkillLevel = 4; - int32 SKillLevel = 5; + string SkillName = 5; - int32 SKillUnlockType = 6; + string SkillDes = 6; - string SKillUnlockTakes = 7; + string SKillValue = 7; + + map ItemConsum = 8; } @@ -1259,26 +1261,6 @@ message DB_PetSkillArray { repeated DB_PetSkill Arr = 1; } -message DB_PetSkillDes { - - int32 Id = 1; - - int32 SkillId = 2; - - int32 SkillLevel = 3; - - string SKillValue = 4; - - int32 Fragment = 5; - - int32 Amount = 6; - -} - -message DB_PetSkillDesArray { - repeated DB_PetSkillDes Arr = 1; -} - message DB_PhoneLottery { int32 Id = 1; diff --git a/srvdata/db_petskilldes.go b/srvdata/db_petskilldes.go deleted file mode 100644 index 928996b..0000000 --- a/srvdata/db_petskilldes.go +++ /dev/null @@ -1,77 +0,0 @@ - -// Code generated by xlsx2proto. -// DO NOT EDIT! - -package srvdata - -import ( - "google.golang.org/protobuf/proto" - - "mongo.games.com/game/protocol/server" -) - -var PBDB_PetSkillDesMgr = &DB_PetSkillDesMgr{ - Datas: &server.DB_PetSkillDesArray{}, - pool: make(map[int32]*server.DB_PetSkillDes), - -} - -type DB_PetSkillDesMgr struct { - Datas *server.DB_PetSkillDesArray - pool map[int32]*server.DB_PetSkillDes - -} - -func (this *DB_PetSkillDesMgr) unmarshal(data []byte) error { - err := proto.Unmarshal(data, this.Datas) - if err == nil { - this.arrangeData() - } - return err -} - -func (this *DB_PetSkillDesMgr) reunmarshal(data []byte) error { - newDatas := &server.DB_PetSkillDesArray{} - err := proto.Unmarshal(data, newDatas) - if err == nil { - for _, item := range newDatas.Arr { - existItem := this.GetData(item.GetId()) - if existItem == nil { - this.pool[item.GetId()] = item - this.Datas.Arr = append(this.Datas.Arr, item) - - } else { - *existItem = *item - } - } - } - return err -} - -func (this *DB_PetSkillDesMgr) arrangeData() { - if this.Datas == nil { - return - } - - dataArr := this.Datas.GetArr() - if dataArr == nil { - return - } - - for _, data := range dataArr { - this.pool[data.GetId()] = data - - } -} - -func (this *DB_PetSkillDesMgr) GetData(id int32) *server.DB_PetSkillDes { - if data, ok := this.pool[id]; ok { - return data - } - return nil -} - - -func init() { - DataMgr.register("DB_PetSkillDes.dat", &ProtobufDataLoader{dh: PBDB_PetSkillDesMgr}) -} diff --git a/xlsx/DB_PetSkill.xlsx b/xlsx/DB_PetSkill.xlsx index 10fa4775d79803d8c2fbf3a980fb919b31a27ca7..b842985b17b4a37480c01b2debac225c73baf757 100644 GIT binary patch delta 6773 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 delta 8048 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 F{2v$)by5HT diff --git a/xlsx/DB_PetSkillDes.xlsx b/xlsx/DB_PetSkillDes.xlsx deleted file mode 100644 index 2cfdd7e46a0eeeb46db7da2189753843eb41056e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10809 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 HXYKz3fP&N3 From 0eb4b826a5211a5ba0d6d5ef74c1447daea8ad1c Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Thu, 27 Jun 2024 14:17:45 +0800 Subject: [PATCH 29/49] =?UTF-8?q?=E6=96=B0=E7=89=88=E9=82=80=E8=AF=B7?= =?UTF-8?q?=E6=B4=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/DB_GiftCard.dat | Bin 57 -> 57 bytes data/DB_PropExchange.dat | Bin 384 -> 384 bytes data/DB_Task.dat | Bin 2161 -> 2161 bytes dbproxy/mq/c_invite.go | 10 ++++++++++ public | 2 +- 5 files changed, 11 insertions(+), 1 deletion(-) diff --git a/data/DB_GiftCard.dat b/data/DB_GiftCard.dat index 96640b07f274cbbbda035ee3e52503c8356a73cb..15600367ff42a73b75826e6378f02a3bde3a8661 100644 GIT binary patch delta 38 pcmcDtoFJjd#&NNYS%6E4lVf2oo4|o-8=15?Aj}q919mG$1^~Z739kSE delta 38 pcmcDtoFJjd$+57PP2j+^jZ8{x92eV|1-P_0AVMv+2JBXh3;@YB39kSE diff --git a/data/DB_PropExchange.dat b/data/DB_PropExchange.dat index 953c7f1a310ad3c78769d87c71c71714a075348b..51b9b3f0ddbd8bcbe4363e26781928c5de160e7c 100644 GIT binary patch literal 384 zcmd-w<6snElw#w!+{O&1uR!UmQ2H8_z7C?5I5-yevI!h$vE|a^U;?YZ0hPZArEfv$ z+i2>;IUwevm;IUwevn1^I9R{cPEboYSmQ{n`>qhakM7Oq$h78Hl$auCd7m`7nA1UnRH(H*G6 SAs%JtSOoOw7iKO7+Cl(ivOF~a diff --git a/data/DB_Task.dat b/data/DB_Task.dat index 4d7971948942b5e4f09a30ebd420bbbf28a5773b..980eddedcc8aacac8a8437fdadd41a7597b04537 100644 GIT binary patch delta 209 zcmew;@KInxDC6WU>>`sh8M6gBI2QJ@2^?s#wPNE~1Y|L8e#&UcC~0Y)nhj)g#aK`-0nG{!tM(E}~Eo1ZdTG752m6&;wik;w|8 zk8834v(@Av7Lmzy%+`WXGY-i?WmzYmV*UX&iwkN4(5%UqS 2 && psnid > 0 { + psnid, err = svc.GetPSnId(log.Platform, psnid) + if err != nil { + logger.Logger.Errorf("EvtInvite GetPSnId 3 error:%v snid:%v", err, log.InviteSnId) + return err + } + if psnid > 0 { + add(psnid, log.InviteSnId, 3, log.Tp, log.Score, log.Money, log.Rate[2], false) + } + } case common.InviteScoreTypePay: // 更新充值积分,上级积分增加 diff --git a/public b/public index 5843874..e3cbc9f 160000 --- a/public +++ b/public @@ -1 +1 @@ -Subproject commit 58438743032d93fc2e16d705c4ebe1df5c33f1b2 +Subproject commit e3cbc9f58234727bd5f859f86083ad584b66009b From 32323aa1e856cf5a781c461d0a44c8ca13189c11 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Thu, 27 Jun 2024 15:04:11 +0800 Subject: [PATCH 30/49] =?UTF-8?q?=E6=96=B0=E7=89=88=E9=82=80=E8=AF=B7?= =?UTF-8?q?=E6=B4=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dbproxy/mq/c_invite.go | 6 +++--- dbproxy/svc/u_player.go | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dbproxy/mq/c_invite.go b/dbproxy/mq/c_invite.go index 8dcc9e5..b6bae94 100644 --- a/dbproxy/mq/c_invite.go +++ b/dbproxy/mq/c_invite.go @@ -179,7 +179,7 @@ func init() { case common.InviteScoreTypePay: // 更新充值积分,上级积分增加 - add(log.SnId, 0, 0, log.Tp, log.Score, log.Money, 10000, false) + add(log.SnId, 0, 0, common.InviteScoreTypePayMe, log.Score, log.Money, 10000, false) var psnid int32 if len(log.Rate) > 0 { add(log.InviteSnId, log.SnId, 1, log.Tp, log.Score, log.Money, log.Rate[0], true) @@ -201,13 +201,13 @@ func init() { add(psnid, log.SnId, 3, log.Tp, log.Score, log.Money, log.Rate[2], false) } if addRechargeScore { - add(log.InviteSnId, log.SnId, 0, common.InviteScoreTypeRecharge, log.RechargeScore, log.Money, 10000, true) + add(log.InviteSnId, log.SnId, 1, common.InviteScoreTypeRecharge, log.RechargeScore, log.Money, 10000, true) } case common.InviteScoreTypeRecharge: // 更新自己的积分 if addRechargeScore { - add(log.InviteSnId, log.SnId, 0, log.Tp, log.RechargeScore, log.Money, 10000, true) + add(log.InviteSnId, log.SnId, 1, log.Tp, log.RechargeScore, log.Money, 10000, true) } else { // 只增加充值金额 add(log.InviteSnId, log.SnId, 0, log.Tp, 0, log.Money, 10000, true) diff --git a/dbproxy/svc/u_player.go b/dbproxy/svc/u_player.go index 3cae6d2..92a5804 100644 --- a/dbproxy/svc/u_player.go +++ b/dbproxy/svc/u_player.go @@ -395,7 +395,7 @@ func (svc *PlayerDataSvc) GetPlayerDataBySnId(args *model.GetPlayerDataBySnIdArg code, _ = GetInviteCode(ret.Pd.Platform, ret.Pd.SnId) ret.Pd.ICode = code ret.Pd.IScoreTs = time.Now() - cplayerdata.Update(bson.M{"snid": args.SnId}, bson.M{"icode": code, "iscorets": ret.Pd.IScoreTs}) + cplayerdata.Update(bson.M{"snid": args.SnId}, bson.M{"$set": bson.M{"icode": code, "iscorets": ret.Pd.IScoreTs}}) } f(ret.Pd) if args.CorrectData && ret.Pd != nil { From 0c0f270762808cc868aa660bec1a567e30803e9a Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Thu, 27 Jun 2024 16:23:22 +0800 Subject: [PATCH 31/49] =?UTF-8?q?=E9=82=80=E8=AF=B7=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E5=BC=80=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- protocol/webapi/common.pb.go | 2 +- protocol/webapi/common.proto | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/protocol/webapi/common.pb.go b/protocol/webapi/common.pb.go index dcf3646..1d31b42 100644 --- a/protocol/webapi/common.pb.go +++ b/protocol/webapi/common.pb.go @@ -5978,7 +5978,7 @@ type ChannelSwitchConfig struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Tp int32 `protobuf:"varint,1,opt,name=Tp,proto3" json:"Tp,omitempty"` // 开关类型 1.兑换 2.道具掉落 + Tp int32 `protobuf:"varint,1,opt,name=Tp,proto3" json:"Tp,omitempty"` // 开关类型 1.兑换 2.道具掉落 3.邀请活动开关 Platform string `protobuf:"bytes,2,opt,name=Platform,proto3" json:"Platform,omitempty"` // 平台id OnChannelName []string `protobuf:"bytes,3,rep,name=OnChannelName,proto3" json:"OnChannelName,omitempty"` // 开启渠道 } diff --git a/protocol/webapi/common.proto b/protocol/webapi/common.proto index bf442d3..75557ca 100644 --- a/protocol/webapi/common.proto +++ b/protocol/webapi/common.proto @@ -664,7 +664,7 @@ message WelfareCollectConfig{ // etcd /game/channel/switch message ChannelSwitchConfig{ - int32 Tp = 1; // 开关类型 1.兑换 2.道具掉落 + int32 Tp = 1; // 开关类型 1.兑换 2.道具掉落 3.邀请活动开关 string Platform = 2; // 平台id repeated string OnChannelName = 3; // 开启渠道 } From fa581628f3bffce14ce3235fa9c2ba151fdc5b80 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Fri, 16 Aug 2024 16:27:37 +0800 Subject: [PATCH 32/49] =?UTF-8?q?=E4=B8=83=E6=97=A5=E7=AD=BE=E5=88=B0?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/welfmgr.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index dff3434..d1d4295 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -460,6 +460,9 @@ func (this *WelfareMgr) GetTurnplteVideo(p *Player) { // 可以领取 p.WelfData.Sign7.VideoTicket = ts index := p.WelfData.Sign7.SignIndex % int32(len(turn.RateList)) + if index == 0 { + index = 7 + } var drawdates []*webapi_proto.WelfareDate for _, v := range sign7.List { if v.Day == index { // 找到对应天数 @@ -641,6 +644,13 @@ func (this *WelfareMgr) WelfaredInfo(p *Player) { info := this.GetConfig(p.Platform) turnplate := info.WelfareTurnplateDateList sign7 := info.Welfare7SignDateList + //第8天 清除数据 + + if p.WelfData.Sign7.SignIndex%int32(len(turnplate.RateList)) == 0 && (time.Now().Unix()-p.WelfData.Sign7.SignTickets)/86400 >= 1 { + p.WelfData.Sign7.Addup2Data = make(map[int32]map[int32]int64) + p.WelfData.Sign7.AddupIndex = []int32{} + } + if turnplate != nil && sign7 != nil { pack.Switch = turnplate.Switch if turnplate.Switch != model.WelfareClose { From 606aff2240dd647c4f9ac376ed8a01e6267808f5 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Thu, 27 Jun 2024 17:12:48 +0800 Subject: [PATCH 33/49] =?UTF-8?q?=E9=87=91=E5=B8=81=E5=AD=98=E9=92=B1?= =?UTF-8?q?=E7=BD=90BUG=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gamesrv/base/player.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gamesrv/base/player.go b/gamesrv/base/player.go index 34a2a30..b34d8bc 100644 --- a/gamesrv/base/player.go +++ b/gamesrv/base/player.go @@ -1325,8 +1325,13 @@ func (this *Player) UpdatePigBankCoin(gainTexCoin int64) { } return 0 } - - BankCoinMax := fGetPropValue("BankMaxCoin") + BankCoinMax := int64(0) + for _, data := range srvdata.PBDB_PigBank_DiamondMgr.Datas.GetArr() { + if this.WelfData.PigBank.DayBuyTimes+1 >= data.BuyCountMin && this.WelfData.PigBank.DayBuyTimes+1 <= data.BuyCountMax { + BankCoinMax = int64(data.MaxGold) + break + } + } pack := &player.SCPigBankCoin{} From 235082c3385105d22eed6a0b02ddb2210bf5f1a6 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Thu, 27 Jun 2024 17:39:44 +0800 Subject: [PATCH 34/49] =?UTF-8?q?=E9=82=80=E8=AF=B7=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E6=B8=A0=E9=81=93=E5=BC=80=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- protocol/player/player.pb.go | 2 +- protocol/player/player.proto | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/protocol/player/player.pb.go b/protocol/player/player.pb.go index 4aaa454..ec978fe 100644 --- a/protocol/player/player.pb.go +++ b/protocol/player/player.pb.go @@ -9471,7 +9471,7 @@ type ChannelSwitch struct { unknownFields protoimpl.UnknownFields OnChannelName []string `protobuf:"bytes,1,rep,name=OnChannelName,proto3" json:"OnChannelName,omitempty"` // 开启渠道 - Tp int32 `protobuf:"varint,2,opt,name=Tp,proto3" json:"Tp,omitempty"` // 开关类型 1:兑换 2:v卡掉落 + Tp int32 `protobuf:"varint,2,opt,name=Tp,proto3" json:"Tp,omitempty"` // 开关类型 1:兑换 2:v卡掉落 3:邀请活动开关 } func (x *ChannelSwitch) Reset() { diff --git a/protocol/player/player.proto b/protocol/player/player.proto index ccbdfcc..f2af2fc 100644 --- a/protocol/player/player.proto +++ b/protocol/player/player.proto @@ -1191,7 +1191,7 @@ message CSExchangeChannel{ message ChannelSwitch { repeated string OnChannelName = 1; // 开启渠道 - int32 Tp = 2; // 开关类型 1:兑换 2:v卡掉落 + int32 Tp = 2; // 开关类型 1:兑换 2:v卡掉落 3:邀请活动开关 } // PACKET_SCExchangeChannel From bdbf908e3648f5a6adcd0435073797fb6606585f Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Thu, 27 Jun 2024 17:53:53 +0800 Subject: [PATCH 35/49] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E8=B5=A0=E9=80=81=E9=87=91=E5=B8=81=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- model/player.go | 5 +++++ worldsrv/action_task.go | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/model/player.go b/model/player.go index e9466eb..8b6d39c 100644 --- a/model/player.go +++ b/model/player.go @@ -104,6 +104,11 @@ const ( SystemFreeGive_GiveType_MailSystemGive //邮件系统赠送 SystemFreeGive_GiveType_RankMatch //段位奖励 SystemFreeGive_GiveType_BindTel // 绑定手机号奖励 + SystemFreeGive_GiveType_TaskInvite // 邀请任务 + SystemFreeGive_GiveType_TaskNewPlayer // 新手任务 + SystemFreeGive_GiveType_TaskAchievement // 成就任务 + SystemFreeGive_GiveType_TaskEveryDay // 每日任务 + SystemFreeGive_GiveType_TaskWeekActive // 周活跃奖励 ) const ( SystemFreeGive_CoinType_Coin int32 = iota //金币 diff --git a/worldsrv/action_task.go b/worldsrv/action_task.go index 15dcb7e..761c519 100644 --- a/worldsrv/action_task.go +++ b/worldsrv/action_task.go @@ -7,6 +7,7 @@ import ( "mongo.games.com/goserver/core/netlib" "mongo.games.com/game/common" + "mongo.games.com/game/model" taskproto "mongo.games.com/game/protocol/task" "mongo.games.com/game/srvdata" ) @@ -80,19 +81,37 @@ func SendReward(p *Player, m map[int64]int64, tp int32) { }) } gain := int32(0) + giveType := int32(-1) switch tp { case 1: gain = common.GainWayItemTaskEveryDay + giveType = model.SystemFreeGive_GiveType_TaskEveryDay case 2: gain = common.GainWayItemWeekActive + giveType = model.SystemFreeGive_GiveType_TaskWeekActive case 3: gain = common.GainWayItemTaskNewPlayer + giveType = model.SystemFreeGive_GiveType_TaskNewPlayer case 4: gain = common.GainWayItemTaskInvite + giveType = model.SystemFreeGive_GiveType_TaskInvite case 5: gain = common.GainWayItemTaskAchievement + giveType = model.SystemFreeGive_GiveType_TaskAchievement } BagMgrSingleton.AddItems(p, items, 0, gain, "system", "任务奖励", 0, 0, false) + for _, v := range items { + tp := int32(-1) + if v.ItemId == common.ItemIDCoin { + tp = model.SystemFreeGive_CoinType_Coin + } else if v.ItemId == common.ItemIDDiamond { + tp = model.SystemFreeGive_CoinType_Diamond + } + if !p.IsRob && tp >= 0 && giveType >= 0 { + LogChannelSingleton.WriteMQData( + model.GenerateSystemFreeGive(p.SnId, p.Name, p.Platform, p.Channel, giveType, tp, v.ItemNum)) + } + } } func CSTaskList(s *netlib.Session, packetId int, data interface{}, sid int64) error { From 291b1cee4f2d434890b4de3fd29e6ce3b4cd8ae9 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Thu, 27 Jun 2024 18:23:39 +0800 Subject: [PATCH 36/49] =?UTF-8?q?=E9=82=80=E8=AF=B7=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E8=B7=A8=E5=91=A8=E7=A7=AF=E5=88=86=E9=87=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dbproxy/mq/c_invite.go | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/dbproxy/mq/c_invite.go b/dbproxy/mq/c_invite.go index b6bae94..5090fdb 100644 --- a/dbproxy/mq/c_invite.go +++ b/dbproxy/mq/c_invite.go @@ -97,24 +97,21 @@ func init() { logger.Logger.Errorf("EvtInvite reset 1 error:%v snid:%v", err, log.SnId) return err } - // 父节点积分是否跨周重置 - // 一级 - err = reset(log.InviteSnId) - if err != nil { - logger.Logger.Errorf("EvtInvite reset 2 error:%v snid:%v", err, log.InviteSnId) - return err - } - // 二级 - ppsnid, err := svc.GetPSnId(log.Platform, log.InviteSnId) - if err != nil { - logger.Logger.Errorf("EvtInvite GetPSnId 1 error:%v snid:%v", err, log.InviteSnId) - return err - } - if ppsnid > 0 { - err = reset(ppsnid) - if err != nil { - logger.Logger.Errorf("EvtInvite reset 3 error:%v snid:%v", err, ppsnid) - return err + tmpSnid := log.SnId + for i := 0; i < 5; i++ { + if tmpSnid > 0 { + err = reset(tmpSnid) + if err != nil { + logger.Logger.Errorf("EvtInvite reset %v error:%v snid:%v", i, err, tmpSnid) + return err + } + } + if tmpSnid > 0 { + tmpSnid, err = svc.GetPSnId(log.Platform, tmpSnid) + if err != nil { + logger.Logger.Errorf("EvtInvite GetPSnId %v error:%v snid:%v", i, err, tmpSnid) + return err + } } } From 7688583735de871fae32e038e1f25640e9e29138 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Thu, 27 Jun 2024 18:25:12 +0800 Subject: [PATCH 37/49] =?UTF-8?q?=E9=82=80=E8=AF=B7=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E8=B7=A8=E5=91=A8=E7=A7=AF=E5=88=86=E9=87=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dbproxy/mq/c_invite.go | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/dbproxy/mq/c_invite.go b/dbproxy/mq/c_invite.go index 5090fdb..2c84406 100644 --- a/dbproxy/mq/c_invite.go +++ b/dbproxy/mq/c_invite.go @@ -92,13 +92,8 @@ func init() { } // 当前玩家积分是否跨周重置 - err = reset(log.SnId) - if err != nil { - logger.Logger.Errorf("EvtInvite reset 1 error:%v snid:%v", err, log.SnId) - return err - } tmpSnid := log.SnId - for i := 0; i < 5; i++ { + for i := 0; i < 6; i++ { if tmpSnid > 0 { err = reset(tmpSnid) if err != nil { From 8d8031759de4fe88161998f0e4d9b68af2469ddc Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Thu, 27 Jun 2024 18:39:48 +0800 Subject: [PATCH 38/49] =?UTF-8?q?=E9=92=BB=E7=9F=B3=E5=AD=98=E5=82=A8?= =?UTF-8?q?=E7=BD=90=E4=B8=8A=E7=BA=BF=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/welfmgr.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index d1d4295..671ee0e 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -1937,6 +1937,19 @@ func (this *WelfareMgr) UpdateDiamondBankData(p *Player, coinNum int64, isWin bo diamondStr := fmt.Sprintf("%.4f", addDiamond) addDiamond, _ = strconv.ParseFloat(diamondStr, 64) p.WelfData.DiamondBank.BankDiamond += addDiamond + pool := srvdata.PBDB_PigBank_DiamondMgr.Datas.GetArr() + infoData := pool[0] + for _, data := range pool { + if p.WelfData.DiamondBank.DayBuyTimes+1 >= data.BuyCountMin && p.WelfData.DiamondBank.DayBuyTimes+1 <= data.BuyCountMax { + infoData = data + break + } + } + + BankMaxDiamond := int64(infoData.MaxDiamond) + if p.WelfData.DiamondBank.BankDiamond >= float64(BankMaxDiamond) { + p.WelfData.DiamondBank.BankDiamond = float64(BankMaxDiamond) + } logger.Logger.Tracef("玩家更新钻石存储罐数据 snid = %d,coinNum = %d,isWin = %s,当前钻石存储罐钻石数量:%f,本次增加钻石数量:%f", p.SnId, coinNum, isWin, p.WelfData.DiamondBank.BankDiamond, addDiamond) } func (this *WelfareMgr) Update() { From d6a15311f71c68b4ac2b5502c31f4d5ac05fe2b1 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Thu, 27 Jun 2024 18:55:51 +0800 Subject: [PATCH 39/49] =?UTF-8?q?=E9=92=BB=E7=9F=B3=E5=AD=98=E9=92=B1?= =?UTF-8?q?=E7=BD=90=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/taskmgr.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/worldsrv/taskmgr.go b/worldsrv/taskmgr.go index 1b4320d..08e8153 100644 --- a/worldsrv/taskmgr.go +++ b/worldsrv/taskmgr.go @@ -2,6 +2,7 @@ package main import ( "container/list" + "math" "mongo.games.com/goserver/core/logger" "mongo.games.com/game/common" @@ -72,6 +73,7 @@ type TaskHandle struct { } func (t *TaskHandle) TaskUpdate(id int, data any) { + info, ok := data.(*TaskData) if !ok { return @@ -111,7 +113,7 @@ func (t *TaskHandle) TaskUpdate(id int, data any) { case common.TaskTypeWinCoin: // 赢取金币数量 WelfareMgrSington.UpdateDiamondBankData(p, num, true) case common.TaskTypeLoseCoin: //输的金币数量 - WelfareMgrSington.UpdateDiamondBankData(p, num, false) + WelfareMgrSington.UpdateDiamondBankData(p, int64(math.Abs(float64(num))), false) case common.TaskTypeTienlenWinTimes: // tienlen游戏赢取次数 case common.TaskTypeActivityScore: // 活跃积分数量 @@ -243,4 +245,5 @@ func init() { TaskSubjectSingleton.Attach(common.TaskTypeInviteNum, taskHandle) TaskSubjectSingleton.Attach(common.TaskTypeTurnplate, taskHandle) TaskSubjectSingleton.Attach(common.TaskTypeInviteRecharge, taskHandle) + TaskSubjectSingleton.Attach(common.TaskTypeLoseCoin, taskHandle) } From 70768089da2cdd5d00270fc27bf9e711bd6c45bd Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Fri, 28 Jun 2024 09:14:11 +0800 Subject: [PATCH 40/49] =?UTF-8?q?=E8=B7=A8=E5=91=A8=E6=A0=B9=E6=8D=AE?= =?UTF-8?q?=E6=89=80=E5=9C=A8=E6=97=B6=E5=8C=BA=E8=AE=A1=E7=AE=97=E6=97=A5?= =?UTF-8?q?=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/time.go | 26 +++++++++----------------- dbproxy/svc/l_invitescore.go | 2 +- worldsrv/player.go | 1 + 3 files changed, 11 insertions(+), 18 deletions(-) diff --git a/common/time.go b/common/time.go index 64f93df..2afb753 100644 --- a/common/time.go +++ b/common/time.go @@ -76,17 +76,15 @@ func InSameWeek(tNow, tPre time.Time) bool { return true } - preYear, preWeek := tPre.ISOWeek() - nowYear, nowWeek := tNow.ISOWeek() - if preYear == nowYear && preWeek == nowWeek { + if GetWeekStartTs(tNow.Unix()) == GetWeekStartTs(tPre.Unix()) { return true } return false } func TsInSameWeek(tsNow, tsPre int64) bool { - tNow := time.Unix(tsNow, 0) - tPre := time.Unix(tsPre, 0) + tNow := time.Unix(tsNow, 0).Local() + tPre := time.Unix(tsPre, 0).Local() return InSameWeek(tNow, tPre) } @@ -144,22 +142,16 @@ func InTimeRange(beginHour, beginMinute, endHour, endMinute, checkHour, checkMin return beginTime <= checkTime && checkTime <= endTime } -func GetWeekTimestamp() []int64 { - now := time.Now().Local() - year, month, day := now.Date() - today := time.Date(year, month, day, 0, 0, 0, 0, time.Local) - // 本周起始日期(周日) - st := today.AddDate(0, 0, -int(today.Weekday())).Unix() - et := today.AddDate(0, 0, 7-int(today.Weekday())).Unix() - return []int64{st, et} -} - +// GetWeekStartTs 获取本周开始的时间戳,周一为周的开始 func GetWeekStartTs(ts int64) int64 { now := time.Unix(ts, 0).Local() year, month, day := now.Date() today := time.Date(year, month, day, 0, 0, 0, 0, time.Local) - // 本周起始日期(周日) - st := today.AddDate(0, 0, -int(today.Weekday())).Unix() + n := today.Weekday() + if today.Weekday() == 0 { + n = 7 + } + st := today.AddDate(0, 0, -int(n-1)).Unix() return st } diff --git a/dbproxy/svc/l_invitescore.go b/dbproxy/svc/l_invitescore.go index f094962..7b29c11 100644 --- a/dbproxy/svc/l_invitescore.go +++ b/dbproxy/svc/l_invitescore.go @@ -260,7 +260,7 @@ func (b *BindScoreSvc) GetInviteList(req *model.InviteLisArgs, ret *model.Invite now := time.Now().Local() for _, v := range res { - if !common.InSameWeek(now, v.IScoreTs) { + if !common.InSameWeek(now, v.IScoreTs.Local()) { v.IScore = 0 } roleId := common.DefaultRoleId diff --git a/worldsrv/player.go b/worldsrv/player.go index faf0d98..515f5f5 100644 --- a/worldsrv/player.go +++ b/worldsrv/player.go @@ -2269,6 +2269,7 @@ func (this *Player) OnMonthTimer() { } func (this *Player) OnWeekTimer() { + logger.Logger.Tracef("OnWeekTimer %v", time.Now()) //判断是否一天即可过滤0点多次切换 if common.InSameDayNoZero(time.Now().Local(), this.lastOnWeekChange) { return From d4d8816a8ba69f962fdf998219d1e6e1842361c8 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Fri, 28 Jun 2024 09:52:47 +0800 Subject: [PATCH 41/49] =?UTF-8?q?=E9=92=BB=E7=9F=B3=E5=AD=98=E9=92=B1?= =?UTF-8?q?=E7=BD=90=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/welfmgr.go | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index 671ee0e..6432232 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -1878,15 +1878,6 @@ func (this *WelfareMgr) DiamondBankTakeCoin(p *Player) { DayBuyMaxCnt := fGetPropValue("DayBuyMaxCntDiamond") if p.WelfData != nil && p.WelfData.PigBank != nil { - pack.BankMaxDiamond = BankMaxDiamond - // 检查每日领取次数 - /* if p.WelfData.DiamondBank.DayBuyTimes >= DayBuyMaxCnt { - pack.OpRetCode = welfare.OpResultCode_OPRC_PigbankOverTakeTimes - logger.Logger.Trace("存钱罐领取次数已打上限!") - p.SendToClient(int(welfare.SPacketID_PACKET_SCDiamondBankTakeDiamond), pack) - return - }*/ - if p.WelfData.DiamondBank.BankDiamond >= float64(BankMaxDiamond) { p.WelfData.DiamondBank.BankDiamond = float64(BankMaxDiamond) } @@ -1899,6 +1890,7 @@ func (this *WelfareMgr) DiamondBankTakeCoin(p *Player) { p.WelfData.DiamondBank.TakeTimes++ p.WelfData.DiamondBank.DayBuyTimes++ + pack.BankMaxDiamond = BankMaxDiamond pack.TakeTimes = p.WelfData.DiamondBank.DayBuyTimes pack.DayBuyMaxCnt = DayBuyMaxCnt pack.TakeDiamondNum = float64(addDiamond) @@ -1907,6 +1899,7 @@ func (this *WelfareMgr) DiamondBankTakeCoin(p *Player) { pack.ShopId = infoData.DiamondId logger.Logger.Tracef("DiamondBankTakeCoin snid: %v pack: %v", p.SnId, pack) p.SendToClient(int(welfare.SPacketID_PACKET_SCDiamondBankTakeDiamond), pack) + this.DiamondBankGetInfo(p) } } From 2b75df2e383deb81c1d20248d47831d3c1135f76 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Fri, 28 Jun 2024 10:38:14 +0800 Subject: [PATCH 42/49] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=83=8C=E5=8C=85?= =?UTF-8?q?=E5=85=91=E6=8D=A2=E8=AF=9D=E8=B4=B9=E7=A0=81=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E7=BB=93=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- protocol/bag/bag.pb.go | 324 +++++++++++++++++++++++++---------------- protocol/bag/bag.proto | 8 + worldsrv/bagmgr.go | 4 + 3 files changed, 210 insertions(+), 126 deletions(-) diff --git a/protocol/bag/bag.pb.go b/protocol/bag/bag.pb.go index c61e487..c6c962f 100644 --- a/protocol/bag/bag.pb.go +++ b/protocol/bag/bag.pb.go @@ -89,11 +89,12 @@ func (OpResultCode) EnumDescriptor() ([]byte, []int) { type SPacketID int32 const ( - SPacketID_PACKET_BAG_ZERO SPacketID = 0 // 弃用消息号 - SPacketID_PACKET_ALL_BAG_INFO SPacketID = 2530 //请求背包数据 - SPacketID_PACKET_ALL_BAG_USE SPacketID = 2531 //使用背包道具 - SPacketID_PACKET_SC_SYNCBAGDATA SPacketID = 2532 //背包数据更新 - SPacketID_PACKET_ALL_BAG_END SPacketID = 2549 //最大消息号 + SPacketID_PACKET_BAG_ZERO SPacketID = 0 // 弃用消息号 + SPacketID_PACKET_ALL_BAG_INFO SPacketID = 2530 //请求背包数据 + SPacketID_PACKET_ALL_BAG_USE SPacketID = 2531 //使用背包道具 + SPacketID_PACKET_SC_SYNCBAGDATA SPacketID = 2532 //背包数据更新 + SPacketID_PACKET_SC_ITEM_EXCHANGE_RES SPacketID = 2533 //背包道具兑换返回 + SPacketID_PACKET_ALL_BAG_END SPacketID = 2549 //最大消息号 //3000~3099 SPacketID_PACKET_PropExchange SPacketID = 3000 // 道具兑换 SPacketID_PACKET_ExchangeList SPacketID = 3001 // 兑换列表 @@ -106,18 +107,20 @@ var ( 2530: "PACKET_ALL_BAG_INFO", 2531: "PACKET_ALL_BAG_USE", 2532: "PACKET_SC_SYNCBAGDATA", + 2533: "PACKET_SC_ITEM_EXCHANGE_RES", 2549: "PACKET_ALL_BAG_END", 3000: "PACKET_PropExchange", 3001: "PACKET_ExchangeList", } SPacketID_value = map[string]int32{ - "PACKET_BAG_ZERO": 0, - "PACKET_ALL_BAG_INFO": 2530, - "PACKET_ALL_BAG_USE": 2531, - "PACKET_SC_SYNCBAGDATA": 2532, - "PACKET_ALL_BAG_END": 2549, - "PACKET_PropExchange": 3000, - "PACKET_ExchangeList": 3001, + "PACKET_BAG_ZERO": 0, + "PACKET_ALL_BAG_INFO": 2530, + "PACKET_ALL_BAG_USE": 2531, + "PACKET_SC_SYNCBAGDATA": 2532, + "PACKET_SC_ITEM_EXCHANGE_RES": 2533, + "PACKET_ALL_BAG_END": 2549, + "PACKET_PropExchange": 3000, + "PACKET_ExchangeList": 3001, } ) @@ -532,6 +535,55 @@ func (x *SCUpBagInfo) GetInfos() []*ItemInfo { return nil } +//背包使用兑换返回结果 +//PACKET_SC_ITEM_EXCHANGE_RES +type SCItemExChangeRes struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RetCode OpResultCode `protobuf:"varint,1,opt,name=RetCode,proto3,enum=bag.OpResultCode" json:"RetCode,omitempty"` +} + +func (x *SCItemExChangeRes) Reset() { + *x = SCItemExChangeRes{} + if protoimpl.UnsafeEnabled { + mi := &file_bag_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCItemExChangeRes) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCItemExChangeRes) ProtoMessage() {} + +func (x *SCItemExChangeRes) ProtoReflect() protoreflect.Message { + mi := &file_bag_proto_msgTypes[5] + 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 SCItemExChangeRes.ProtoReflect.Descriptor instead. +func (*SCItemExChangeRes) Descriptor() ([]byte, []int) { + return file_bag_proto_rawDescGZIP(), []int{5} +} + +func (x *SCItemExChangeRes) GetRetCode() OpResultCode { + if x != nil { + return x.RetCode + } + return OpResultCode_OPRC_Sucess +} + //PACKET_SC_SYNCBAGDATA type SCSyncBagData struct { state protoimpl.MessageState @@ -544,7 +596,7 @@ type SCSyncBagData struct { func (x *SCSyncBagData) Reset() { *x = SCSyncBagData{} if protoimpl.UnsafeEnabled { - mi := &file_bag_proto_msgTypes[5] + mi := &file_bag_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -557,7 +609,7 @@ func (x *SCSyncBagData) String() string { func (*SCSyncBagData) ProtoMessage() {} func (x *SCSyncBagData) ProtoReflect() protoreflect.Message { - mi := &file_bag_proto_msgTypes[5] + mi := &file_bag_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -570,7 +622,7 @@ func (x *SCSyncBagData) ProtoReflect() protoreflect.Message { // Deprecated: Use SCSyncBagData.ProtoReflect.Descriptor instead. func (*SCSyncBagData) Descriptor() ([]byte, []int) { - return file_bag_proto_rawDescGZIP(), []int{5} + return file_bag_proto_rawDescGZIP(), []int{6} } func (x *SCSyncBagData) GetInfos() []*ItemInfo { @@ -592,7 +644,7 @@ type PropInfo struct { func (x *PropInfo) Reset() { *x = PropInfo{} if protoimpl.UnsafeEnabled { - mi := &file_bag_proto_msgTypes[6] + mi := &file_bag_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -605,7 +657,7 @@ func (x *PropInfo) String() string { func (*PropInfo) ProtoMessage() {} func (x *PropInfo) ProtoReflect() protoreflect.Message { - mi := &file_bag_proto_msgTypes[6] + mi := &file_bag_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -618,7 +670,7 @@ func (x *PropInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use PropInfo.ProtoReflect.Descriptor instead. func (*PropInfo) Descriptor() ([]byte, []int) { - return file_bag_proto_rawDescGZIP(), []int{6} + return file_bag_proto_rawDescGZIP(), []int{7} } func (x *PropInfo) GetItemId() int32 { @@ -647,7 +699,7 @@ type CSPropExchange struct { func (x *CSPropExchange) Reset() { *x = CSPropExchange{} if protoimpl.UnsafeEnabled { - mi := &file_bag_proto_msgTypes[7] + mi := &file_bag_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -660,7 +712,7 @@ func (x *CSPropExchange) String() string { func (*CSPropExchange) ProtoMessage() {} func (x *CSPropExchange) ProtoReflect() protoreflect.Message { - mi := &file_bag_proto_msgTypes[7] + mi := &file_bag_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -673,7 +725,7 @@ func (x *CSPropExchange) ProtoReflect() protoreflect.Message { // Deprecated: Use CSPropExchange.ProtoReflect.Descriptor instead. func (*CSPropExchange) Descriptor() ([]byte, []int) { - return file_bag_proto_rawDescGZIP(), []int{7} + return file_bag_proto_rawDescGZIP(), []int{8} } func (x *CSPropExchange) GetId() int32 { @@ -696,7 +748,7 @@ type SCPropExchange struct { func (x *SCPropExchange) Reset() { *x = SCPropExchange{} if protoimpl.UnsafeEnabled { - mi := &file_bag_proto_msgTypes[8] + mi := &file_bag_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -709,7 +761,7 @@ func (x *SCPropExchange) String() string { func (*SCPropExchange) ProtoMessage() {} func (x *SCPropExchange) ProtoReflect() protoreflect.Message { - mi := &file_bag_proto_msgTypes[8] + mi := &file_bag_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -722,7 +774,7 @@ func (x *SCPropExchange) ProtoReflect() protoreflect.Message { // Deprecated: Use SCPropExchange.ProtoReflect.Descriptor instead. func (*SCPropExchange) Descriptor() ([]byte, []int) { - return file_bag_proto_rawDescGZIP(), []int{8} + return file_bag_proto_rawDescGZIP(), []int{9} } func (x *SCPropExchange) GetRetCode() OpResultCode { @@ -759,7 +811,7 @@ type ExchangeInfo struct { func (x *ExchangeInfo) Reset() { *x = ExchangeInfo{} if protoimpl.UnsafeEnabled { - mi := &file_bag_proto_msgTypes[9] + mi := &file_bag_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -772,7 +824,7 @@ func (x *ExchangeInfo) String() string { func (*ExchangeInfo) ProtoMessage() {} func (x *ExchangeInfo) ProtoReflect() protoreflect.Message { - mi := &file_bag_proto_msgTypes[9] + mi := &file_bag_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -785,7 +837,7 @@ func (x *ExchangeInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ExchangeInfo.ProtoReflect.Descriptor instead. func (*ExchangeInfo) Descriptor() ([]byte, []int) { - return file_bag_proto_rawDescGZIP(), []int{9} + return file_bag_proto_rawDescGZIP(), []int{10} } func (x *ExchangeInfo) GetId() int32 { @@ -821,7 +873,7 @@ type CSExchangeList struct { func (x *CSExchangeList) Reset() { *x = CSExchangeList{} if protoimpl.UnsafeEnabled { - mi := &file_bag_proto_msgTypes[10] + mi := &file_bag_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -834,7 +886,7 @@ func (x *CSExchangeList) String() string { func (*CSExchangeList) ProtoMessage() {} func (x *CSExchangeList) ProtoReflect() protoreflect.Message { - mi := &file_bag_proto_msgTypes[10] + mi := &file_bag_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -847,7 +899,7 @@ func (x *CSExchangeList) ProtoReflect() protoreflect.Message { // Deprecated: Use CSExchangeList.ProtoReflect.Descriptor instead. func (*CSExchangeList) Descriptor() ([]byte, []int) { - return file_bag_proto_rawDescGZIP(), []int{10} + return file_bag_proto_rawDescGZIP(), []int{11} } func (x *CSExchangeList) GetTp() int32 { @@ -869,7 +921,7 @@ type SCExchangeList struct { func (x *SCExchangeList) Reset() { *x = SCExchangeList{} if protoimpl.UnsafeEnabled { - mi := &file_bag_proto_msgTypes[11] + mi := &file_bag_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -882,7 +934,7 @@ func (x *SCExchangeList) String() string { func (*SCExchangeList) ProtoMessage() {} func (x *SCExchangeList) ProtoReflect() protoreflect.Message { - mi := &file_bag_proto_msgTypes[11] + mi := &file_bag_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -895,7 +947,7 @@ func (x *SCExchangeList) ProtoReflect() protoreflect.Message { // Deprecated: Use SCExchangeList.ProtoReflect.Descriptor instead. func (*SCExchangeList) Descriptor() ([]byte, []int) { - return file_bag_proto_rawDescGZIP(), []int{11} + return file_bag_proto_rawDescGZIP(), []int{12} } func (x *SCExchangeList) GetInfos() []*ExchangeInfo { @@ -958,65 +1010,71 @@ var file_bag_proto_rawDesc = []byte{ 0x18, 0x0a, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x23, 0x0a, 0x05, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x49, - 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0x34, - 0x0a, 0x0d, 0x53, 0x43, 0x53, 0x79, 0x6e, 0x63, 0x42, 0x61, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x23, 0x0a, 0x05, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, - 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, - 0x6e, 0x66, 0x6f, 0x73, 0x22, 0x3c, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, - 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, - 0x75, 0x6d, 0x22, 0x20, 0x0a, 0x0e, 0x43, 0x53, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x02, 0x49, 0x64, 0x22, 0x93, 0x01, 0x0a, 0x0e, 0x53, 0x43, 0x50, 0x72, 0x6f, 0x70, 0x45, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x4f, - 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x52, 0x65, 0x74, - 0x43, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2f, 0x0a, 0x0b, 0x52, 0x65, 0x6d, - 0x61, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, - 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x52, - 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x78, 0x0a, 0x0c, 0x45, 0x78, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x09, 0x43, 0x6f, - 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, - 0x62, 0x61, 0x67, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x43, 0x6f, - 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2b, 0x0a, 0x09, 0x47, 0x61, 0x69, 0x6e, 0x49, - 0x74, 0x65, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x67, - 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x47, 0x61, 0x69, 0x6e, 0x49, - 0x74, 0x65, 0x6d, 0x73, 0x22, 0x20, 0x0a, 0x0e, 0x43, 0x53, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x70, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x54, 0x70, 0x22, 0x49, 0x0a, 0x0e, 0x53, 0x43, 0x45, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x05, 0x49, 0x6e, 0x66, 0x6f, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x45, 0x78, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x6e, 0x66, 0x6f, - 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x54, - 0x70, 0x2a, 0x99, 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, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x55, 0x73, 0x65, 0x55, - 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x49, 0x64, 0x45, 0x72, - 0x72, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x44, 0x62, 0x45, 0x72, - 0x72, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x61, 0x67, 0x46, - 0x75, 0x6c, 0x6c, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x6f, - 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x4f, 0x50, 0x52, - 0x43, 0x5f, 0x4e, 0x6f, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0x07, 0x2a, 0xbc, 0x01, - 0x0a, 0x09, 0x53, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x13, 0x0a, 0x0f, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x42, 0x41, 0x47, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, - 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x5f, 0x42, - 0x41, 0x47, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xe2, 0x13, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x5f, 0x42, 0x41, 0x47, 0x5f, 0x55, 0x53, 0x45, - 0x10, 0xe3, 0x13, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, - 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x42, 0x41, 0x47, 0x44, 0x41, 0x54, 0x41, 0x10, 0xe4, 0x13, 0x12, - 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x5f, 0x42, 0x41, - 0x47, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xf5, 0x13, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, - 0xb8, 0x17, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x45, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x10, 0xb9, 0x17, 0x42, 0x23, 0x5a, 0x21, - 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, 0x62, 0x61, - 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0x40, + 0x0a, 0x11, 0x53, 0x43, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x78, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x52, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x22, 0x34, 0x0a, 0x0d, 0x53, 0x43, 0x53, 0x79, 0x6e, 0x63, 0x42, 0x61, 0x67, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x23, 0x0a, 0x05, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x05, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0x3c, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, + 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x49, 0x74, 0x65, + 0x6d, 0x4e, 0x75, 0x6d, 0x22, 0x20, 0x0a, 0x0e, 0x43, 0x53, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x93, 0x01, 0x0a, 0x0e, 0x53, 0x43, 0x50, 0x72, 0x6f, + 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x52, 0x65, 0x74, + 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x62, 0x61, 0x67, + 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x52, + 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x50, 0x72, 0x6f, 0x70, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2f, 0x0a, 0x0b, 0x52, + 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x0b, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x78, 0x0a, 0x0c, + 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x09, + 0x43, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x62, 0x61, 0x67, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, + 0x43, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2b, 0x0a, 0x09, 0x47, 0x61, 0x69, + 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x62, + 0x61, 0x67, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x47, 0x61, 0x69, + 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x20, 0x0a, 0x0e, 0x43, 0x53, 0x45, 0x78, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x70, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x54, 0x70, 0x22, 0x49, 0x0a, 0x0e, 0x53, 0x43, 0x45, 0x78, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x05, 0x49, 0x6e, + 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x62, 0x61, 0x67, 0x2e, + 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x6e, + 0x66, 0x6f, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x54, 0x70, 0x2a, 0x99, 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, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x55, 0x73, + 0x65, 0x55, 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x49, 0x64, + 0x45, 0x72, 0x72, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x44, 0x62, + 0x45, 0x72, 0x72, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x42, 0x61, + 0x67, 0x46, 0x75, 0x6c, 0x6c, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x4f, 0x50, 0x52, 0x43, 0x5f, + 0x4e, 0x6f, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x4f, + 0x50, 0x52, 0x43, 0x5f, 0x4e, 0x6f, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0x07, 0x2a, + 0xde, 0x01, 0x0a, 0x09, 0x53, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x13, 0x0a, + 0x0f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x42, 0x41, 0x47, 0x5f, 0x5a, 0x45, 0x52, 0x4f, + 0x10, 0x00, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x4c, 0x4c, + 0x5f, 0x42, 0x41, 0x47, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xe2, 0x13, 0x12, 0x17, 0x0a, 0x12, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x5f, 0x42, 0x41, 0x47, 0x5f, 0x55, + 0x53, 0x45, 0x10, 0xe3, 0x13, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x53, 0x43, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x42, 0x41, 0x47, 0x44, 0x41, 0x54, 0x41, 0x10, 0xe4, + 0x13, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x49, + 0x54, 0x45, 0x4d, 0x5f, 0x45, 0x58, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x52, 0x45, 0x53, + 0x10, 0xe5, 0x13, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x4c, + 0x4c, 0x5f, 0x42, 0x41, 0x47, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0xf5, 0x13, 0x12, 0x18, 0x0a, 0x13, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x10, 0xb8, 0x17, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x10, 0xb9, 0x17, + 0x42, 0x23, 0x5a, 0x21, 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, 0x62, 0x61, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1032,40 +1090,42 @@ func file_bag_proto_rawDescGZIP() []byte { } var file_bag_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_bag_proto_msgTypes = make([]protoimpl.MessageInfo, 12) +var file_bag_proto_msgTypes = make([]protoimpl.MessageInfo, 13) var file_bag_proto_goTypes = []interface{}{ - (OpResultCode)(0), // 0: bag.OpResultCode - (SPacketID)(0), // 1: bag.SPacketID - (*ItemInfo)(nil), // 2: bag.ItemInfo - (*CSBagInfo)(nil), // 3: bag.CSBagInfo - (*SCBagInfo)(nil), // 4: bag.SCBagInfo - (*CSUpBagInfo)(nil), // 5: bag.CSUpBagInfo - (*SCUpBagInfo)(nil), // 6: bag.SCUpBagInfo - (*SCSyncBagData)(nil), // 7: bag.SCSyncBagData - (*PropInfo)(nil), // 8: bag.PropInfo - (*CSPropExchange)(nil), // 9: bag.CSPropExchange - (*SCPropExchange)(nil), // 10: bag.SCPropExchange - (*ExchangeInfo)(nil), // 11: bag.ExchangeInfo - (*CSExchangeList)(nil), // 12: bag.CSExchangeList - (*SCExchangeList)(nil), // 13: bag.SCExchangeList + (OpResultCode)(0), // 0: bag.OpResultCode + (SPacketID)(0), // 1: bag.SPacketID + (*ItemInfo)(nil), // 2: bag.ItemInfo + (*CSBagInfo)(nil), // 3: bag.CSBagInfo + (*SCBagInfo)(nil), // 4: bag.SCBagInfo + (*CSUpBagInfo)(nil), // 5: bag.CSUpBagInfo + (*SCUpBagInfo)(nil), // 6: bag.SCUpBagInfo + (*SCItemExChangeRes)(nil), // 7: bag.SCItemExChangeRes + (*SCSyncBagData)(nil), // 8: bag.SCSyncBagData + (*PropInfo)(nil), // 9: bag.PropInfo + (*CSPropExchange)(nil), // 10: bag.CSPropExchange + (*SCPropExchange)(nil), // 11: bag.SCPropExchange + (*ExchangeInfo)(nil), // 12: bag.ExchangeInfo + (*CSExchangeList)(nil), // 13: bag.CSExchangeList + (*SCExchangeList)(nil), // 14: bag.SCExchangeList } var file_bag_proto_depIdxs = []int32{ 0, // 0: bag.SCBagInfo.RetCode:type_name -> bag.OpResultCode 2, // 1: bag.SCBagInfo.Infos:type_name -> bag.ItemInfo 0, // 2: bag.SCUpBagInfo.RetCode:type_name -> bag.OpResultCode 2, // 3: bag.SCUpBagInfo.Infos:type_name -> bag.ItemInfo - 2, // 4: bag.SCSyncBagData.Infos:type_name -> bag.ItemInfo - 0, // 5: bag.SCPropExchange.RetCode:type_name -> bag.OpResultCode - 8, // 6: bag.SCPropExchange.Items:type_name -> bag.PropInfo - 8, // 7: bag.SCPropExchange.RemainItems:type_name -> bag.PropInfo - 8, // 8: bag.ExchangeInfo.CostItems:type_name -> bag.PropInfo - 8, // 9: bag.ExchangeInfo.GainItems:type_name -> bag.PropInfo - 11, // 10: bag.SCExchangeList.Infos:type_name -> bag.ExchangeInfo - 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 + 0, // 4: bag.SCItemExChangeRes.RetCode:type_name -> bag.OpResultCode + 2, // 5: bag.SCSyncBagData.Infos:type_name -> bag.ItemInfo + 0, // 6: bag.SCPropExchange.RetCode:type_name -> bag.OpResultCode + 9, // 7: bag.SCPropExchange.Items:type_name -> bag.PropInfo + 9, // 8: bag.SCPropExchange.RemainItems:type_name -> bag.PropInfo + 9, // 9: bag.ExchangeInfo.CostItems:type_name -> bag.PropInfo + 9, // 10: bag.ExchangeInfo.GainItems:type_name -> bag.PropInfo + 12, // 11: bag.SCExchangeList.Infos:type_name -> bag.ExchangeInfo + 12, // [12:12] is the sub-list for method output_type + 12, // [12:12] is the sub-list for method input_type + 12, // [12:12] is the sub-list for extension type_name + 12, // [12:12] is the sub-list for extension extendee + 0, // [0:12] is the sub-list for field type_name } func init() { file_bag_proto_init() } @@ -1135,7 +1195,7 @@ func file_bag_proto_init() { } } file_bag_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCSyncBagData); i { + switch v := v.(*SCItemExChangeRes); i { case 0: return &v.state case 1: @@ -1147,7 +1207,7 @@ func file_bag_proto_init() { } } file_bag_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PropInfo); i { + switch v := v.(*SCSyncBagData); i { case 0: return &v.state case 1: @@ -1159,7 +1219,7 @@ func file_bag_proto_init() { } } file_bag_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSPropExchange); i { + switch v := v.(*PropInfo); i { case 0: return &v.state case 1: @@ -1171,7 +1231,7 @@ func file_bag_proto_init() { } } file_bag_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCPropExchange); i { + switch v := v.(*CSPropExchange); i { case 0: return &v.state case 1: @@ -1183,7 +1243,7 @@ func file_bag_proto_init() { } } file_bag_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExchangeInfo); i { + switch v := v.(*SCPropExchange); i { case 0: return &v.state case 1: @@ -1195,7 +1255,7 @@ func file_bag_proto_init() { } } file_bag_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSExchangeList); i { + switch v := v.(*ExchangeInfo); i { case 0: return &v.state case 1: @@ -1207,6 +1267,18 @@ func file_bag_proto_init() { } } file_bag_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSExchangeList); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bag_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCExchangeList); i { case 0: return &v.state @@ -1225,7 +1297,7 @@ func file_bag_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_bag_proto_rawDesc, NumEnums: 2, - NumMessages: 12, + NumMessages: 13, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/bag/bag.proto b/protocol/bag/bag.proto index 4ca0182..94da3c6 100644 --- a/protocol/bag/bag.proto +++ b/protocol/bag/bag.proto @@ -18,6 +18,7 @@ enum SPacketID { PACKET_ALL_BAG_INFO = 2530; //请求背包数据 PACKET_ALL_BAG_USE = 2531; //使用背包道具 PACKET_SC_SYNCBAGDATA = 2532;//背包数据更新 + PACKET_SC_ITEM_EXCHANGE_RES = 2533;//背包道具兑换返回 PACKET_ALL_BAG_END = 2549; //最大消息号 //3000~3099 PACKET_PropExchange = 3000; // 道具兑换 @@ -77,6 +78,13 @@ message SCUpBagInfo { //使用道具获得的 repeated ItemInfo Infos = 6;// 物品信息 } +//背包使用兑换返回结果 +//PACKET_SC_ITEM_EXCHANGE_RES +message SCItemExChangeRes{ + OpResultCode RetCode = 1; +} + + //PACKET_SC_SYNCBAGDATA message SCSyncBagData{ repeated ItemInfo Infos = 1;// 物品信息 diff --git a/worldsrv/bagmgr.go b/worldsrv/bagmgr.go index 8feba74..a8e286a 100644 --- a/worldsrv/bagmgr.go +++ b/worldsrv/bagmgr.go @@ -522,6 +522,7 @@ func (this *BagMgr) ItemExchangeCard(p *Player, itemId int32, money, cardType in var err error var newMsg *model.Message res := &webapiproto.SAGetMatchAwardCode{} + pack := &bag.SCItemExChangeRes{RetCode: bag.OpResultCode_OPRC_Sucess} task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { // 获取兑换码 pack := &webapiproto.ASGetMatchAwardCode{ @@ -573,12 +574,15 @@ func (this *BagMgr) ItemExchangeCard(p *Player, itemId int32, money, cardType in }) this.AddItems(p, items, 0, common.GainWayItemChange, "system", "背包内使用兑换失败", 0, 0, false) logger.Logger.Errorf("获取兑换码失败 snid:%v itemID:%v res:%v err:%v", p.SnId, itemId, res, err) + pack.RetCode = bag.OpResultCode_OPRC_Error + p.SendToClient(int(bag.SPacketID_PACKET_ALL_BAG_USE), pack) return } p := PlayerMgrSington.GetPlayerBySnId(p.SnId) if p != nil { p.AddMessage(newMsg) } + p.SendToClient(int(bag.SPacketID_PACKET_ALL_BAG_USE), pack) }), fmt.Sprintf("ItemExChange%d", p.SnId)).Start() return true } From 7146df070ce41c6cf85d1163dd7c14ac0c9bf8a6 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Fri, 28 Jun 2024 10:53:55 +0800 Subject: [PATCH 43/49] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=83=8C=E5=8C=85?= =?UTF-8?q?=E5=85=91=E6=8D=A2=E8=AF=9D=E8=B4=B9=E7=A0=81=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E7=BB=93=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public | 2 +- worldsrv/bagmgr.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/public b/public index e3cbc9f..aef8c48 160000 --- a/public +++ b/public @@ -1 +1 @@ -Subproject commit e3cbc9f58234727bd5f859f86083ad584b66009b +Subproject commit aef8c489a27508831d69b4f66dee10c5258abb92 diff --git a/worldsrv/bagmgr.go b/worldsrv/bagmgr.go index a8e286a..8f746f8 100644 --- a/worldsrv/bagmgr.go +++ b/worldsrv/bagmgr.go @@ -575,14 +575,14 @@ func (this *BagMgr) ItemExchangeCard(p *Player, itemId int32, money, cardType in this.AddItems(p, items, 0, common.GainWayItemChange, "system", "背包内使用兑换失败", 0, 0, false) logger.Logger.Errorf("获取兑换码失败 snid:%v itemID:%v res:%v err:%v", p.SnId, itemId, res, err) pack.RetCode = bag.OpResultCode_OPRC_Error - p.SendToClient(int(bag.SPacketID_PACKET_ALL_BAG_USE), pack) + p.SendToClient(int(bag.SPacketID_PACKET_SC_ITEM_EXCHANGE_RES), pack) return } p := PlayerMgrSington.GetPlayerBySnId(p.SnId) if p != nil { p.AddMessage(newMsg) } - p.SendToClient(int(bag.SPacketID_PACKET_ALL_BAG_USE), pack) + p.SendToClient(int(bag.SPacketID_PACKET_SC_ITEM_EXCHANGE_RES), pack) }), fmt.Sprintf("ItemExChange%d", p.SnId)).Start() return true } From 44ff58675d3cb3dc9ef9601119a37ca51f60a13f Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Fri, 28 Jun 2024 11:48:01 +0800 Subject: [PATCH 44/49] =?UTF-8?q?=E9=92=BB=E7=9F=B3=E5=AD=98=E5=82=A8?= =?UTF-8?q?=E7=BD=90=20=E9=A2=86=E5=8F=96=E6=AC=A1=E6=95=B0=E8=BE=BE?= =?UTF-8?q?=E5=88=B0=E4=B8=8A=E9=99=90=20=E4=B8=8D=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E9=92=BB=E7=9F=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/welfmgr.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index 6432232..dc0c66b 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -1918,6 +1918,10 @@ func (this *WelfareMgr) UpdateDiamondBankData(p *Player, coinNum int64, isWin bo } return 0 } + + if p.WelfData.DiamondBank.DayBuyTimes == fGetPropValue("DayBuyMaxCntDiamond") { + return + } WinCoinRate := fGetPropValue("WinCoinRateDiamond") LoseCoinRate := fGetPropValue("LoseCoinRateDiamond") addDiamond := float64(0) From b067f07b2c48de5f44da76e095f7c977c08e63ec Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Fri, 28 Jun 2024 15:14:55 +0800 Subject: [PATCH 45/49] =?UTF-8?q?=E6=96=B0=E9=82=80=E8=AF=B7=E6=B4=BB?= =?UTF-8?q?=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dbproxy/mq/c_invite.go | 57 +++++++++++++++--------------------- dbproxy/svc/l_invitescore.go | 14 ++++----- dbproxy/svc/u_player.go | 21 +++++++++---- model/player.go | 28 ++++++++++++++++++ worldsrv/action_welfare.go | 26 +++++++++------- 5 files changed, 89 insertions(+), 57 deletions(-) diff --git a/dbproxy/mq/c_invite.go b/dbproxy/mq/c_invite.go index 2c84406..90b1e64 100644 --- a/dbproxy/mq/c_invite.go +++ b/dbproxy/mq/c_invite.go @@ -31,6 +31,15 @@ func init() { } logger.Logger.Tracef("EvtInvite log:%+v", log) + var addRechargeScore bool + if log.Tp != common.InviteScoreCheckWeek { + addRechargeScore, err = svc.CheckInviteScore(&log.InviteScore) + if err != nil { + logger.Logger.Errorf("EvtInvite SaveInviteScore error:%v msg:%+v %+v", err, log.InviteScore, log) + return err + } + } + now := time.Unix(log.Ts, 0).Local() // 数据创建时间 get := func(snid int32) (*model.EvtInviteAckMsg, error) { @@ -44,25 +53,6 @@ func init() { return n, err } - // 增加积分 - add := func(psnid, snid, level, tp int32, score, money, rate int64, addMoney bool) error { - if psnid <= 0 { - return nil - } - err = svc.AddInviteScore(log.Platform, psnid, snid, level, tp, score*rate/10000, rate, money, now, addMoney) - if err != nil { - logger.Logger.Errorf("EvtInvite add error:%v psnid:%v score:%v rate:%v", err, psnid, score, rate) - return err - } - msg, err := get(psnid) - if err != nil { - logger.Logger.Errorf("EvtInvite add find error:%v psnid:%v score:%v rate:%v", err, psnid, score, rate) - return err - } - mq.Send(model.EvtInviteAck, msg) - return nil - } - // 重置积分 reset := func(snid int32) error { if snid == 0 { @@ -110,28 +100,27 @@ func init() { } } - var addRechargeScore bool - if log.Tp != common.InviteScoreCheckWeek { - addRechargeScore, err = svc.CheckInviteScore(&log.InviteScore) + // 增加积分 + add := func(psnid, snid, level, tp int32, score, money, rate int64, addMoney bool) error { + if psnid <= 0 { + return nil + } + err = svc.AddInviteScore(log.Platform, psnid, snid, level, tp, score*rate/10000, rate, money, now, addMoney) if err != nil { - logger.Logger.Errorf("EvtInvite SaveInviteScore error:%v msg:%+v %+v", err, log.InviteScore, log) + logger.Logger.Errorf("EvtInvite add error:%v psnid:%v score:%v rate:%v", err, psnid, score, rate) return err } + msg, err := get(psnid) + if err != nil { + logger.Logger.Errorf("EvtInvite add find error:%v psnid:%v score:%v rate:%v", err, psnid, score, rate) + return err + } + mq.Send(model.EvtInviteAck, msg) + return nil } switch log.Tp { case common.InviteScoreTypeBind: - code, err := svc.GetCodeBySnId(log.Platform, log.InviteSnId) - if err != nil { - logger.Logger.Errorf("EvtInvite GetCodeBySnId error:%v %v", err, log.InviteSnId) - return err - } - // 绑定关系 - err = svc.BindInviteSnId(log.Platform, log.SnId, log.InviteSnId, code) - if err != nil { - logger.Logger.Errorf("EvtInvite BindInviteSnId error:%v msg:%+v", err, log.InviteScore) - return err - } // 更新绑定数量 // 更新邀请积分 // 1.邀请人增加积分 diff --git a/dbproxy/svc/l_invitescore.go b/dbproxy/svc/l_invitescore.go index 7b29c11..bd4dc30 100644 --- a/dbproxy/svc/l_invitescore.go +++ b/dbproxy/svc/l_invitescore.go @@ -56,13 +56,13 @@ func CheckInviteScore(req *model.InviteScore) (b bool, err error) { } // 不能重复绑定 - if req.Tp == common.InviteScoreTypeBind { - psnid, err := GetPSnId(req.Platform, req.SnId) - if err == nil && psnid > 0 { - // 已经绑定 - return false, errors.New("already bind") - } - } + //if req.Tp == common.InviteScoreTypeBind { + // psnid, err := GetPSnId(req.Platform, req.SnId) + // if err == nil && psnid > 0 { + // // 已经绑定 + // return false, errors.New("already bind") + // } + //} // 必须已经绑定 if req.Tp != common.InviteScoreTypeBind { diff --git a/dbproxy/svc/u_player.go b/dbproxy/svc/u_player.go index 92a5804..c6ff636 100644 --- a/dbproxy/svc/u_player.go +++ b/dbproxy/svc/u_player.go @@ -1548,6 +1548,15 @@ func (svc *PlayerDataSvc) GetPlayerInviteSnid(req *model.PlayerIsExistBySnIdArgs return nil } +func (svc *PlayerDataSvc) BindInviteSnId(args *model.BindArgs, ret *bool) error { + err := BindInviteSnId(args.Platform, args.SnId, args.PSnId, args.PCode) + if err != nil { + return err + } + *ret = true + return nil +} + func BindInviteSnId(platform string, snId, inviteSnId int32, code string) error { c := PlayerDataCollection(platform) if c == nil { @@ -1559,11 +1568,6 @@ func BindInviteSnId(platform string, snId, inviteSnId int32, code string) error logger.Logger.Error("BindInviteSnId error ", err) return err } - err = c.Update(bson.M{"snid": inviteSnId}, bson.M{"$inc": bson.D{{"inum", 1}}}) - if err != nil { - logger.Logger.Error("BindInviteSnId inc error ", err) - return err - } return nil } @@ -1619,7 +1623,12 @@ func AddInviteScore(platform string, psnId, snid, level, tp int32, num, rate, mo myMoney = 0 } - err = c.Update(bson.M{"snid": psnId}, bson.M{"$inc": bson.M{"iscore": num, "imoney": myMoney}, "$set": bson.M{"iscorets": now}}) + addNum := int64(0) + if level == 0 && tp == common.InviteScoreTypeBind { + addNum = 1 + } + + err = c.Update(bson.M{"snid": psnId}, bson.M{"$inc": bson.M{"iscore": num, "imoney": myMoney, "inum": addNum}, "$set": bson.M{"iscorets": now}}) if err != nil { i.RemoveId(id) logger.Logger.Error("AddInviteScore error ", err) diff --git a/model/player.go b/model/player.go index 8b6d39c..b8636d3 100644 --- a/model/player.go +++ b/model/player.go @@ -2941,3 +2941,31 @@ func (this *PlayerData) GetRoleId() int32 { } return common.DefaultRoleId } + +type BindArgs struct { + Platform string + PSnId, SnId int32 + PCode string +} + +func BindInviteSnId(platform string, snId, pSnId int32, code string) error { + if rpcCli == nil { + return fmt.Errorf("db may be close") + } + var args = &BindArgs{ + Platform: platform, + PSnId: pSnId, + SnId: snId, + PCode: code, + } + var ret bool + err := rpcCli.CallWithTimeout("PlayerDataSvc.BindInviteSnId", args, &ret, time.Second*30) + if err != nil { + logger.Logger.Warnf("BindInviteSnId error:%v", err) + return err + } + if ret { + return nil + } + return errors.New("bind error") +} diff --git a/worldsrv/action_welfare.go b/worldsrv/action_welfare.go index 80a7c1b..b4516f7 100644 --- a/worldsrv/action_welfare.go +++ b/worldsrv/action_welfare.go @@ -440,15 +440,21 @@ func CSBindInvite(s *netlib.Session, packetid int, data interface{}, sid int64) break } } - SaveInviteScore(&model.InviteScore{ - Platform: p.Platform, - SnId: p.SnId, - InviteSnId: inviteSnId, - Tp: common.InviteScoreTypeBind, - Score: cfg.GetBindScore(), - Ts: now.Unix(), - Money: 0, - }) + + if err == nil { + err = model.BindInviteSnId(p.Platform, p.SnId, inviteSnId, msg.Code) + } + if err == nil { + SaveInviteScore(&model.InviteScore{ + Platform: p.Platform, + SnId: p.SnId, + InviteSnId: inviteSnId, + Tp: common.InviteScoreTypeBind, + Score: cfg.GetBindScore(), + Ts: now.Unix(), + Money: 0, + }) + } return nil }), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) { if err != nil { @@ -459,7 +465,7 @@ func CSBindInvite(s *netlib.Session, packetid int, data interface{}, sid int64) p.PCode = msg.GetCode() ret.OpRetCode = welfare.OpResultCode_OPRC_Sucess send() - })).Start() + })).StartByFixExecutor("invite_score") })).Start() return nil } From 5c9fec6e3616a78668250e1e397c05578f7f2485 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Fri, 28 Jun 2024 16:08:52 +0800 Subject: [PATCH 46/49] =?UTF-8?q?=E9=92=BB=E7=9F=B3=E5=AD=98=E9=92=B1?= =?UTF-8?q?=E7=BD=90=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/welfmgr.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index dc0c66b..d5891f9 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -1890,7 +1890,13 @@ func (this *WelfareMgr) DiamondBankTakeCoin(p *Player) { p.WelfData.DiamondBank.TakeTimes++ p.WelfData.DiamondBank.DayBuyTimes++ - pack.BankMaxDiamond = BankMaxDiamond + for _, data := range pool { + if p.WelfData.DiamondBank.DayBuyTimes+1 >= data.BuyCountMin && p.WelfData.DiamondBank.DayBuyTimes+1 <= data.BuyCountMax { + infoData = data + break + } + } + pack.BankMaxDiamond = int64(infoData.MaxDiamond) pack.TakeTimes = p.WelfData.DiamondBank.DayBuyTimes pack.DayBuyMaxCnt = DayBuyMaxCnt pack.TakeDiamondNum = float64(addDiamond) @@ -1899,7 +1905,6 @@ func (this *WelfareMgr) DiamondBankTakeCoin(p *Player) { pack.ShopId = infoData.DiamondId logger.Logger.Tracef("DiamondBankTakeCoin snid: %v pack: %v", p.SnId, pack) p.SendToClient(int(welfare.SPacketID_PACKET_SCDiamondBankTakeDiamond), pack) - this.DiamondBankGetInfo(p) } } From 9a6ced171ba9a05f3c5840ffcfb4e57fc2e55b70 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Mon, 1 Jul 2024 18:43:00 +0800 Subject: [PATCH 47/49] =?UTF-8?q?=E8=B7=A8=E5=91=A8=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/clock.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/worldsrv/clock.go b/worldsrv/clock.go index 7bd48d7..63b3ea6 100644 --- a/worldsrv/clock.go +++ b/worldsrv/clock.go @@ -3,6 +3,7 @@ package main import ( "time" + "mongo.games.com/game/common" "mongo.games.com/goserver/core/module" ) @@ -114,9 +115,9 @@ func (this *ClockMgr) Update() { this.LastDay = day this.fireDayEvent() - _, week := tNow.ISOWeek() - if week != this.LastWeek { - this.LastWeek = week + week := common.GetWeekStartTs(tNow.Unix()) + if week != int64(this.LastWeek) { + this.LastWeek = int(week) this.fireWeekEvent() } From 57bc29a2d6a9d573cbcaed9c6a660bf4cfcf2d2c Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Mon, 1 Jul 2024 18:45:45 +0800 Subject: [PATCH 48/49] update data --- data/DB_PropExchange.dat | Bin 384 -> 384 bytes data/DB_Task.dat | Bin 2161 -> 2161 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/data/DB_PropExchange.dat b/data/DB_PropExchange.dat index 51b9b3f0ddbd8bcbe4363e26781928c5de160e7c..714d1c14d95b60023f792b7304d73b8b95bcfda1 100644 GIT binary patch literal 384 zcmd-w<6snElw#w!+Qtl~uR-bSQ2H{Iz5=3^I5-yevI!h$vE|a^U;?YZ0hPZArEfv$ z+i2>;IUwf4?1AY+w-2j1K=+}#gA?qIhP97axMDe2zz%^q7-lfKL3f}IgBb*~80=7> W1z-=t0z!$MV-e7!UzoWVXbS;n0z5SU literal 384 zcmd-w<6snElw#w!+{O&1uR!UmQ2H8_z7C?5I5-yevI!h$vE|a^U;?YZ0hPZArEfv$ z+i2>;IUwevmVCR!yGIZf*=w3-jWESv*_{9FMOs Y3kU&C=GQQS`-B;)@4<4R$($S+0Ji8*&j0`b delta 290 zcmew;@KInwxF8$Hl3q3eek%@+g+Tg38}r7DHH?!(n1m*)G5t_t<5&a~<+9=g%O04v zk%>!%W1^n`qXer0w?@OE>-v*7vWuuYFmkDKO!5<8hX_x3eTUhA(F&rO32O9#Sv-@g zneBiUf{bK^iY_=LH~AFv+R0(8Vw-ze;ut4yVHZ>d8mG*0Xa|!37tlO5jTh`#4O3(j znOx2yHrbo)vmnIvK*OMxvQGAAx1aoiMR4+bc5`EhEYJZkCvhooJifv#AOtj?U&9D! RIz+{T Date: Fri, 28 Jun 2024 16:56:02 +0800 Subject: [PATCH 49/49] public --- public | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public b/public index aef8c48..e3cbc9f 160000 --- a/public +++ b/public @@ -1 +1 @@ -Subproject commit aef8c489a27508831d69b4f66dee10c5258abb92 +Subproject commit e3cbc9f58234727bd5f859f86083ad584b66009b