From e4b85bf50338494a00c47cbb62aec7ece5a36b8a Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Thu, 2 Jan 2025 16:14:21 +0800 Subject: [PATCH 01/47] =?UTF-8?q?=E5=B9=B4=E5=85=BD=E5=85=91=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- model/player.go | 2 + protocol/activity/nian.pb.go | 223 ++++++++++++++++---- protocol/activity/nian.proto | 15 +- protocol/webapi/common.pb.go | 387 +++++++++++++++++++++++++++-------- protocol/webapi/common.proto | 14 ++ worldsrv/action_nian.go | 89 +++++++- worldsrv/welfmgr.go | 1 + xlsx/DB_NewYearActivity.xlsx | Bin 11837 -> 11934 bytes 8 files changed, 605 insertions(+), 126 deletions(-) diff --git a/model/player.go b/model/player.go index 1b84697..231018a 100644 --- a/model/player.go +++ b/model/player.go @@ -689,6 +689,8 @@ type NianData struct { LittleHurt int32 //小爆竹次数 BigHurt int32 //大爆竹次数 OtherAwardNum map[int32]int32 //奖励掉落数量 + AttackMaxHp int64 //单次攻击最大血量 + AttackSumHp int64 //攻击总伤害 } func ConvertPlayerDataToWebData(param *WebPlayerDataParam) *webapi.PlayerData { diff --git a/protocol/activity/nian.pb.go b/protocol/activity/nian.pb.go index cc51864..501b5c9 100644 --- a/protocol/activity/nian.pb.go +++ b/protocol/activity/nian.pb.go @@ -34,6 +34,8 @@ const ( NianPacketID_PACKET_SCNianAttackData NianPacketID = 2667 //返回攻击年兽信息 NianPacketID_PACKET_CSNianSignAward NianPacketID = 2668 //请求签到 NianPacketID_PACKET_SCNianSignAward NianPacketID = 2669 //签到返回 + NianPacketID_PACKET_CSNianChange NianPacketID = 2670 //请求兑换小爆竹 + NianPacketID_PACKET_SCNianChange NianPacketID = 2671 //返回兑换道具 ) // Enum value maps for NianPacketID. @@ -50,6 +52,8 @@ var ( 2667: "PACKET_SCNianAttackData", 2668: "PACKET_CSNianSignAward", 2669: "PACKET_SCNianSignAward", + 2670: "PACKET_CSNianChange", + 2671: "PACKET_SCNianChange", } NianPacketID_value = map[string]int32{ "PACKET_Nian_ZERO": 0, @@ -63,6 +67,8 @@ var ( "PACKET_SCNianAttackData": 2667, "PACKET_CSNianSignAward": 2668, "PACKET_SCNianSignAward": 2669, + "PACKET_CSNianChange": 2670, + "PACKET_SCNianChange": 2671, } ) @@ -147,8 +153,7 @@ type SCNianData struct { AwardTime int64 `protobuf:"varint,6,opt,name=AwardTime,proto3" json:"AwardTime,omitempty"` //每日签到领取时间 BuffCount int64 `protobuf:"varint,7,opt,name=BuffCount,proto3" json:"BuffCount,omitempty"` //Buff剩余次数 BuffStatus bool `protobuf:"varint,8,opt,name=BuffStatus,proto3" json:"BuffStatus,omitempty"` //Buff领取状态 - On int32 `protobuf:"varint,9,opt,name=On,proto3" json:"On,omitempty"` //活动开关 1开启 2关闭 - SignAwardTime int64 `protobuf:"varint,10,opt,name=SignAwardTime,proto3" json:"SignAwardTime,omitempty"` //签到领取时间 0-未领取 + SignAwardTime int64 `protobuf:"varint,9,opt,name=SignAwardTime,proto3" json:"SignAwardTime,omitempty"` //签到领取时间 0-未领取 } func (x *SCNianData) Reset() { @@ -239,13 +244,6 @@ func (x *SCNianData) GetBuffStatus() bool { return false } -func (x *SCNianData) GetOn() int32 { - if x != nil { - return x.On - } - return 0 -} - func (x *SCNianData) GetSignAwardTime() int64 { if x != nil { return x.SignAwardTime @@ -838,13 +836,118 @@ func (x *SCNianSignAward) GetSignAward() []*RankAwardData { return nil } +//兑换 +//PACKET_CSNianChange +type CSNianChange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Num int32 `protobuf:"varint,1,opt,name=Num,proto3" json:"Num,omitempty"` +} + +func (x *CSNianChange) Reset() { + *x = CSNianChange{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_activity_nian_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSNianChange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSNianChange) ProtoMessage() {} + +func (x *CSNianChange) ProtoReflect() protoreflect.Message { + mi := &file_protocol_activity_nian_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSNianChange.ProtoReflect.Descriptor instead. +func (*CSNianChange) Descriptor() ([]byte, []int) { + return file_protocol_activity_nian_proto_rawDescGZIP(), []int{12} +} + +func (x *CSNianChange) GetNum() int32 { + if x != nil { + return x.Num + } + return 0 +} + +//PACKET_SCNianChange +type SCNianChange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Num int32 `protobuf:"varint,1,opt,name=Num,proto3" json:"Num,omitempty"` + Award []*RankAwardData `protobuf:"bytes,2,rep,name=Award,proto3" json:"Award,omitempty"` +} + +func (x *SCNianChange) Reset() { + *x = SCNianChange{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_activity_nian_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCNianChange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCNianChange) ProtoMessage() {} + +func (x *SCNianChange) ProtoReflect() protoreflect.Message { + mi := &file_protocol_activity_nian_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SCNianChange.ProtoReflect.Descriptor instead. +func (*SCNianChange) Descriptor() ([]byte, []int) { + return file_protocol_activity_nian_proto_rawDescGZIP(), []int{13} +} + +func (x *SCNianChange) GetNum() int32 { + if x != nil { + return x.Num + } + return 0 +} + +func (x *SCNianChange) GetAward() []*RankAwardData { + if x != nil { + return x.Award + } + return nil +} + var File_protocol_activity_nian_proto protoreflect.FileDescriptor var file_protocol_activity_nian_proto_rawDesc = []byte{ 0x0a, 0x1c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2f, 0x6e, 0x69, 0x61, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x22, 0x0c, 0x0a, 0x0a, 0x43, 0x53, 0x4e, 0x69, - 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x22, 0xdc, 0x02, 0x0a, 0x0a, 0x53, 0x43, 0x4e, 0x69, 0x61, + 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x22, 0xcc, 0x02, 0x0a, 0x0a, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x11, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, @@ -863,9 +966,8 @@ var file_protocol_activity_nian_proto_rawDesc = []byte{ 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x42, 0x75, 0x66, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x42, 0x75, 0x66, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x0e, 0x0a, 0x02, 0x4f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x4f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x0c, 0x0a, 0x0a, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x22, 0x2a, 0x0a, 0x0a, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, @@ -924,29 +1026,39 @@ var file_protocol_activity_nian_proto_rawDesc = []byte{ 0x35, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x53, 0x69, 0x67, - 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x2a, 0xae, 0x02, 0x0a, 0x0c, 0x4e, 0x69, 0x61, 0x6e, 0x50, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x16, 0x0a, - 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x10, 0xe4, 0x14, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe5, 0x14, 0x12, 0x16, 0x0a, - 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, - 0x66, 0x66, 0x10, 0xe6, 0x14, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x10, 0xe7, 0x14, 0x12, 0x1a, 0x0a, - 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, - 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe8, 0x14, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, - 0x74, 0x61, 0x10, 0xe9, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x10, 0xea, 0x14, 0x12, - 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, - 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xeb, 0x14, 0x12, 0x1b, 0x0a, - 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, - 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xec, 0x14, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, - 0x77, 0x61, 0x72, 0x64, 0x10, 0xed, 0x14, 0x42, 0x28, 0x5a, 0x26, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, - 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, - 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, 0x20, 0x0a, 0x0c, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x4f, 0x0a, 0x0c, 0x53, 0x43, 0x4e, 0x69, + 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x2d, 0x0a, 0x05, 0x41, 0x77, + 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x2a, 0xe2, 0x02, 0x0a, 0x0c, 0x4e, 0x69, + 0x61, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, + 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe4, 0x14, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe5, 0x14, + 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, + 0x6e, 0x42, 0x75, 0x66, 0x66, 0x10, 0xe6, 0x14, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x10, 0xe7, 0x14, + 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, + 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe8, 0x14, 0x12, 0x1a, 0x0a, 0x15, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, + 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe9, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x10, + 0xea, 0x14, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, + 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xeb, 0x14, + 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, + 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xec, 0x14, 0x12, 0x1b, 0x0a, + 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, + 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xed, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x10, 0xee, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, + 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0xef, 0x14, 0x42, 0x28, + 0x5a, 0x26, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -962,7 +1074,7 @@ func file_protocol_activity_nian_proto_rawDescGZIP() []byte { } var file_protocol_activity_nian_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_protocol_activity_nian_proto_msgTypes = make([]protoimpl.MessageInfo, 12) +var file_protocol_activity_nian_proto_msgTypes = make([]protoimpl.MessageInfo, 14) var file_protocol_activity_nian_proto_goTypes = []interface{}{ (NianPacketID)(0), // 0: activity.NianPacketID (*CSNianData)(nil), // 1: activity.CSNianData @@ -977,6 +1089,8 @@ var file_protocol_activity_nian_proto_goTypes = []interface{}{ (*SCNianAttackData)(nil), // 10: activity.SCNianAttackData (*CSNianSignAward)(nil), // 11: activity.CSNianSignAward (*SCNianSignAward)(nil), // 12: activity.SCNianSignAward + (*CSNianChange)(nil), // 13: activity.CSNianChange + (*SCNianChange)(nil), // 14: activity.SCNianChange } var file_protocol_activity_nian_proto_depIdxs = []int32{ 7, // 0: activity.SCNianData.LuckData:type_name -> activity.RankData @@ -987,11 +1101,12 @@ var file_protocol_activity_nian_proto_depIdxs = []int32{ 8, // 5: activity.SCNianAttackData.ExtraDrop:type_name -> activity.RankAwardData 8, // 6: activity.SCNianAttackData.FloorReward:type_name -> activity.RankAwardData 8, // 7: activity.SCNianSignAward.SignAward:type_name -> activity.RankAwardData - 8, // [8:8] is the sub-list for method output_type - 8, // [8:8] is the sub-list for method input_type - 8, // [8:8] is the sub-list for extension type_name - 8, // [8:8] is the sub-list for extension extendee - 0, // [0:8] is the sub-list for field type_name + 8, // 8: activity.SCNianChange.Award:type_name -> activity.RankAwardData + 9, // [9:9] is the sub-list for method output_type + 9, // [9:9] is the sub-list for method input_type + 9, // [9:9] is the sub-list for extension type_name + 9, // [9:9] is the sub-list for extension extendee + 0, // [0:9] is the sub-list for field type_name } func init() { file_protocol_activity_nian_proto_init() } @@ -1144,6 +1259,30 @@ func file_protocol_activity_nian_proto_init() { return nil } } + file_protocol_activity_nian_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSNianChange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protocol_activity_nian_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCNianChange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -1151,7 +1290,7 @@ func file_protocol_activity_nian_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_protocol_activity_nian_proto_rawDesc, NumEnums: 1, - NumMessages: 12, + NumMessages: 14, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/activity/nian.proto b/protocol/activity/nian.proto index 12f2b76..6f8f47d 100644 --- a/protocol/activity/nian.proto +++ b/protocol/activity/nian.proto @@ -14,6 +14,8 @@ enum NianPacketID { PACKET_SCNianAttackData = 2667; //返回攻击年兽信息 PACKET_CSNianSignAward = 2668; //请求签到 PACKET_SCNianSignAward = 2669; //签到返回 + PACKET_CSNianChange = 2670;//请求兑换小爆竹 + PACKET_SCNianChange = 2671;//返回兑换道具 } //获取年兽活动信息 @@ -30,8 +32,7 @@ message SCNianData{ int64 AwardTime = 6;//每日签到领取时间 int64 BuffCount = 7;//Buff剩余次数 bool BuffStatus = 8;//Buff领取状态 - int32 On = 9;//活动开关 1开启 2关闭 - int64 SignAwardTime = 10;//签到领取时间 0-未领取 + int64 SignAwardTime = 9;//签到领取时间 0-未领取 } //贺春 @@ -90,4 +91,14 @@ message CSNianSignAward{ message SCNianSignAward{ int64 SignAwardTime = 1; repeated RankAwardData SignAward = 2;//签到奖励 +} +//兑换 +//PACKET_CSNianChange +message CSNianChange{ + int32 Num = 1; +} +//PACKET_SCNianChange +message SCNianChange{ + int32 Num = 1; + repeated RankAwardData Award =2; } \ No newline at end of file diff --git a/protocol/webapi/common.pb.go b/protocol/webapi/common.pb.go index 3800625..dcb7d67 100644 --- a/protocol/webapi/common.pb.go +++ b/protocol/webapi/common.pb.go @@ -10098,6 +10098,173 @@ func (x *NianDropInfo) GetDropUp() int32 { return 0 } +//年兽排行榜奖励 +//etcd /game/activity_nian_rank +type NianRankReward struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Platform string `protobuf:"bytes,1,opt,name=Platform,proto3" json:"Platform,omitempty"` // 平台 + RankData []*NianRankData `protobuf:"bytes,2,rep,name=RankData,proto3" json:"RankData,omitempty"` +} + +func (x *NianRankReward) Reset() { + *x = NianRankReward{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_webapi_common_proto_msgTypes[107] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NianRankReward) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NianRankReward) ProtoMessage() {} + +func (x *NianRankReward) ProtoReflect() protoreflect.Message { + mi := &file_protocol_webapi_common_proto_msgTypes[107] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NianRankReward.ProtoReflect.Descriptor instead. +func (*NianRankReward) Descriptor() ([]byte, []int) { + return file_protocol_webapi_common_proto_rawDescGZIP(), []int{107} +} + +func (x *NianRankReward) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *NianRankReward) GetRankData() []*NianRankData { + if x != nil { + return x.RankData + } + return nil +} + +type NianRankData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TypeId int32 `protobuf:"varint,1,opt,name=TypeId,proto3" json:"TypeId,omitempty"` //1-幸运榜 2-伤害榜 + RankInfo []*NianRankAwardInfo `protobuf:"bytes,2,rep,name=RankInfo,proto3" json:"RankInfo,omitempty"` +} + +func (x *NianRankData) Reset() { + *x = NianRankData{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_webapi_common_proto_msgTypes[108] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NianRankData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NianRankData) ProtoMessage() {} + +func (x *NianRankData) ProtoReflect() protoreflect.Message { + mi := &file_protocol_webapi_common_proto_msgTypes[108] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NianRankData.ProtoReflect.Descriptor instead. +func (*NianRankData) Descriptor() ([]byte, []int) { + return file_protocol_webapi_common_proto_rawDescGZIP(), []int{108} +} + +func (x *NianRankData) GetTypeId() int32 { + if x != nil { + return x.TypeId + } + return 0 +} + +func (x *NianRankData) GetRankInfo() []*NianRankAwardInfo { + if x != nil { + return x.RankInfo + } + return nil +} + +type NianRankAwardInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RankId int32 `protobuf:"varint,1,opt,name=RankId,proto3" json:"RankId,omitempty"` //排名 + Award []*ItemInfo `protobuf:"bytes,2,rep,name=Award,proto3" json:"Award,omitempty"` //奖励 +} + +func (x *NianRankAwardInfo) Reset() { + *x = NianRankAwardInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_webapi_common_proto_msgTypes[109] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NianRankAwardInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NianRankAwardInfo) ProtoMessage() {} + +func (x *NianRankAwardInfo) ProtoReflect() protoreflect.Message { + mi := &file_protocol_webapi_common_proto_msgTypes[109] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NianRankAwardInfo.ProtoReflect.Descriptor instead. +func (*NianRankAwardInfo) Descriptor() ([]byte, []int) { + return file_protocol_webapi_common_proto_rawDescGZIP(), []int{109} +} + +func (x *NianRankAwardInfo) GetRankId() int32 { + if x != nil { + return x.RankId + } + return 0 +} + +func (x *NianRankAwardInfo) GetAward() []*ItemInfo { + if x != nil { + return x.Award + } + return nil +} + // etcd /game/act_redpacket type RedPacketConfig struct { state protoimpl.MessageState @@ -10112,7 +10279,7 @@ type RedPacketConfig struct { func (x *RedPacketConfig) Reset() { *x = RedPacketConfig{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_webapi_common_proto_msgTypes[107] + mi := &file_protocol_webapi_common_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10125,7 +10292,7 @@ func (x *RedPacketConfig) String() string { func (*RedPacketConfig) ProtoMessage() {} func (x *RedPacketConfig) ProtoReflect() protoreflect.Message { - mi := &file_protocol_webapi_common_proto_msgTypes[107] + mi := &file_protocol_webapi_common_proto_msgTypes[110] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10138,7 +10305,7 @@ func (x *RedPacketConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use RedPacketConfig.ProtoReflect.Descriptor instead. func (*RedPacketConfig) Descriptor() ([]byte, []int) { - return file_protocol_webapi_common_proto_rawDescGZIP(), []int{107} + return file_protocol_webapi_common_proto_rawDescGZIP(), []int{110} } func (x *RedPacketConfig) GetPlatform() string { @@ -10182,7 +10349,7 @@ type RedPacketInfo struct { func (x *RedPacketInfo) Reset() { *x = RedPacketInfo{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_webapi_common_proto_msgTypes[108] + mi := &file_protocol_webapi_common_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10195,7 +10362,7 @@ func (x *RedPacketInfo) String() string { func (*RedPacketInfo) ProtoMessage() {} func (x *RedPacketInfo) ProtoReflect() protoreflect.Message { - mi := &file_protocol_webapi_common_proto_msgTypes[108] + mi := &file_protocol_webapi_common_proto_msgTypes[111] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10208,7 +10375,7 @@ func (x *RedPacketInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use RedPacketInfo.ProtoReflect.Descriptor instead. func (*RedPacketInfo) Descriptor() ([]byte, []int) { - return file_protocol_webapi_common_proto_rawDescGZIP(), []int{108} + return file_protocol_webapi_common_proto_rawDescGZIP(), []int{111} } func (x *RedPacketInfo) GetId() int64 { @@ -10293,7 +10460,7 @@ type RedInfo struct { func (x *RedInfo) Reset() { *x = RedInfo{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_webapi_common_proto_msgTypes[109] + mi := &file_protocol_webapi_common_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10306,7 +10473,7 @@ func (x *RedInfo) String() string { func (*RedInfo) ProtoMessage() {} func (x *RedInfo) ProtoReflect() protoreflect.Message { - mi := &file_protocol_webapi_common_proto_msgTypes[109] + mi := &file_protocol_webapi_common_proto_msgTypes[112] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10319,7 +10486,7 @@ func (x *RedInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use RedInfo.ProtoReflect.Descriptor instead. func (*RedInfo) Descriptor() ([]byte, []int) { - return file_protocol_webapi_common_proto_rawDescGZIP(), []int{109} + return file_protocol_webapi_common_proto_rawDescGZIP(), []int{112} } func (x *RedInfo) GetNum() int64 { @@ -11899,38 +12066,56 @@ var file_protocol_webapi_common_proto_rawDesc = []byte{ 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x72, 0x6f, 0x70, 0x55, 0x70, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x06, 0x44, 0x72, 0x6f, 0x70, 0x55, 0x70, 0x22, 0x7a, 0x0a, 0x0f, 0x52, - 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, - 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x29, 0x0a, 0x04, 0x4c, 0x69, - 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, - 0x69, 0x2e, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x94, 0x02, 0x0a, 0x0d, 0x52, 0x65, 0x64, 0x50, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x4f, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x4f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x48, 0x4d, 0x53, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x48, 0x4d, 0x53, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x6e, 0x64, 0x48, 0x4d, 0x53, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x45, 0x6e, 0x64, 0x48, 0x4d, 0x53, 0x12, 0x16, 0x0a, - 0x06, 0x53, 0x74, 0x61, 0x79, 0x54, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x53, - 0x74, 0x61, 0x79, 0x54, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x4c, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, - 0x4e, 0x75, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, - 0x4e, 0x75, 0x6d, 0x12, 0x29, 0x0a, 0x07, 0x52, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x0a, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, - 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x52, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x2f, - 0x0a, 0x07, 0x52, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x52, - 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x52, 0x61, 0x74, 0x65, 0x42, - 0x26, 0x5a, 0x24, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x2f, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x44, 0x72, 0x6f, 0x70, 0x55, 0x70, 0x22, 0x5e, 0x0a, 0x0e, 0x4e, + 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x30, 0x0a, 0x08, 0x52, 0x61, 0x6e, + 0x6b, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x65, + 0x62, 0x61, 0x70, 0x69, 0x2e, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x22, 0x5d, 0x0a, 0x0c, 0x4e, + 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, + 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, + 0x65, 0x49, 0x64, 0x12, 0x35, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x4e, + 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x53, 0x0a, 0x11, 0x4e, 0x69, + 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x16, 0x0a, 0x06, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, + 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, + 0x7a, 0x0a, 0x0f, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x29, + 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x77, + 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x94, 0x02, 0x0a, 0x0d, + 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x49, 0x64, 0x12, 0x0e, 0x0a, + 0x02, 0x4f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x4f, 0x6e, 0x12, 0x1a, 0x0a, + 0x08, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x4d, 0x53, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x08, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x4d, 0x53, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x6e, 0x64, + 0x48, 0x4d, 0x53, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x45, 0x6e, 0x64, 0x48, 0x4d, + 0x53, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x79, 0x54, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x06, 0x53, 0x74, 0x61, 0x79, 0x54, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x78, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x4d, 0x61, 0x78, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x4c, 0x65, 0x73, 0x73, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x54, + 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x54, + 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x29, 0x0a, 0x07, 0x52, 0x65, 0x64, 0x4c, 0x69, + 0x73, 0x74, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x77, 0x65, 0x62, 0x61, 0x70, + 0x69, 0x2e, 0x52, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x52, 0x65, 0x64, 0x4c, 0x69, + 0x73, 0x74, 0x22, 0x2f, 0x0a, 0x07, 0x52, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, + 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x12, + 0x12, 0x0a, 0x04, 0x52, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x52, + 0x61, 0x74, 0x65, 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 ( @@ -11945,7 +12130,7 @@ func file_protocol_webapi_common_proto_rawDescGZIP() []byte { return file_protocol_webapi_common_proto_rawDescData } -var file_protocol_webapi_common_proto_msgTypes = make([]protoimpl.MessageInfo, 120) +var file_protocol_webapi_common_proto_msgTypes = make([]protoimpl.MessageInfo, 123) var file_protocol_webapi_common_proto_goTypes = []interface{}{ (*MysqlDbSetting)(nil), // 0: webapi.MysqlDbSetting (*MongoDbSetting)(nil), // 1: webapi.MongoDbSetting @@ -12054,35 +12239,38 @@ var file_protocol_webapi_common_proto_goTypes = []interface{}{ (*ActivityNianConfig)(nil), // 104: webapi.ActivityNianConfig (*NianInfo)(nil), // 105: webapi.NianInfo (*NianDropInfo)(nil), // 106: webapi.NianDropInfo - (*RedPacketConfig)(nil), // 107: webapi.RedPacketConfig - (*RedPacketInfo)(nil), // 108: webapi.RedPacketInfo - (*RedInfo)(nil), // 109: webapi.RedInfo - nil, // 110: webapi.Platform.BindTelRewardEntry - nil, // 111: webapi.PlayerData.RankScoreEntry - nil, // 112: webapi.ItemShop.AwardEntry - nil, // 113: webapi.VIPcfg.AwardEntry - nil, // 114: webapi.VIPcfg.Privilege1Entry - nil, // 115: webapi.VIPcfg.Privilege7Entry - nil, // 116: webapi.VIPcfg.Privilege9Entry - nil, // 117: webapi.ActInviteConfig.PayScoreEntry - nil, // 118: webapi.SkinLevel.UpItemEntry - nil, // 119: webapi.SkinItem.UnlockParamEntry - (*server.DB_GameFree)(nil), // 120: server.DB_GameFree - (*server.DB_GameItem)(nil), // 121: server.DB_GameItem + (*NianRankReward)(nil), // 107: webapi.NianRankReward + (*NianRankData)(nil), // 108: webapi.NianRankData + (*NianRankAwardInfo)(nil), // 109: webapi.NianRankAwardInfo + (*RedPacketConfig)(nil), // 110: webapi.RedPacketConfig + (*RedPacketInfo)(nil), // 111: webapi.RedPacketInfo + (*RedInfo)(nil), // 112: webapi.RedInfo + nil, // 113: webapi.Platform.BindTelRewardEntry + nil, // 114: webapi.PlayerData.RankScoreEntry + nil, // 115: webapi.ItemShop.AwardEntry + nil, // 116: webapi.VIPcfg.AwardEntry + nil, // 117: webapi.VIPcfg.Privilege1Entry + nil, // 118: webapi.VIPcfg.Privilege7Entry + nil, // 119: webapi.VIPcfg.Privilege9Entry + nil, // 120: webapi.ActInviteConfig.PayScoreEntry + nil, // 121: webapi.SkinLevel.UpItemEntry + nil, // 122: webapi.SkinItem.UnlockParamEntry + (*server.DB_GameFree)(nil), // 123: server.DB_GameFree + (*server.DB_GameItem)(nil), // 124: server.DB_GameItem } var file_protocol_webapi_common_proto_depIdxs = []int32{ 2, // 0: webapi.Platform.Leaderboard:type_name -> webapi.RankSwitch 3, // 1: webapi.Platform.ClubConfig:type_name -> webapi.ClubConfig 4, // 2: webapi.Platform.ThirdGameMerchant:type_name -> webapi.ThirdGame - 110, // 3: webapi.Platform.BindTelReward:type_name -> webapi.Platform.BindTelRewardEntry + 113, // 3: webapi.Platform.BindTelReward:type_name -> webapi.Platform.BindTelRewardEntry 6, // 4: webapi.GameConfigGlobal.GameStatus:type_name -> webapi.GameStatus - 120, // 5: webapi.GameFree.DbGameFree:type_name -> server.DB_GameFree + 123, // 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 - 120, // 10: webapi.GameConfigGroup.DbGameFree:type_name -> server.DB_GameFree - 111, // 11: webapi.PlayerData.RankScore:type_name -> webapi.PlayerData.RankScoreEntry + 123, // 10: webapi.GameConfigGroup.DbGameFree:type_name -> server.DB_GameFree + 114, // 11: webapi.PlayerData.RankScore:type_name -> webapi.PlayerData.RankScoreEntry 32, // 12: webapi.PlayerData.Items:type_name -> webapi.ItemInfo 14, // 13: webapi.PlayerData.RoleUnlockList:type_name -> webapi.ModInfo 14, // 14: webapi.PlayerData.PetUnlockList:type_name -> webapi.ModInfo @@ -12095,7 +12283,7 @@ var file_protocol_webapi_common_proto_depIdxs = []int32{ 32, // 21: webapi.ExchangeShop.Items:type_name -> webapi.ItemInfo 25, // 22: webapi.ExchangeShopList.List:type_name -> webapi.ExchangeShop 29, // 23: webapi.ExchangeShopList.Weight:type_name -> webapi.ShopWeight - 112, // 24: webapi.ItemShop.Award:type_name -> webapi.ItemShop.AwardEntry + 115, // 24: webapi.ItemShop.Award:type_name -> webapi.ItemShop.AwardEntry 30, // 25: webapi.ItemShopList.List:type_name -> webapi.ItemShop 32, // 26: webapi.MatchInfoAward.ItemId:type_name -> webapi.ItemInfo 33, // 27: webapi.GameMatchDate.Award:type_name -> webapi.MatchInfoAward @@ -12116,14 +12304,14 @@ var file_protocol_webapi_common_proto_depIdxs = []int32{ 38, // 42: webapi.WelfareSpree.Item:type_name -> webapi.WelfareDate 48, // 43: webapi.WelfareFirstPayDataList.List:type_name -> webapi.WelfareSpree 48, // 44: webapi.WelfareContinuousPayDataList.List:type_name -> webapi.WelfareSpree - 113, // 45: webapi.VIPcfg.Award:type_name -> webapi.VIPcfg.AwardEntry - 114, // 46: webapi.VIPcfg.Privilege1:type_name -> webapi.VIPcfg.Privilege1Entry - 115, // 47: webapi.VIPcfg.Privilege7:type_name -> webapi.VIPcfg.Privilege7Entry - 116, // 48: webapi.VIPcfg.Privilege9:type_name -> webapi.VIPcfg.Privilege9Entry + 116, // 45: webapi.VIPcfg.Award:type_name -> webapi.VIPcfg.AwardEntry + 117, // 46: webapi.VIPcfg.Privilege1:type_name -> webapi.VIPcfg.Privilege1Entry + 118, // 47: webapi.VIPcfg.Privilege7:type_name -> webapi.VIPcfg.Privilege7Entry + 119, // 48: webapi.VIPcfg.Privilege9:type_name -> webapi.VIPcfg.Privilege9Entry 51, // 49: webapi.VIPcfgDataList.List:type_name -> webapi.VIPcfg 38, // 50: webapi.ChessRankConfig.Item:type_name -> webapi.WelfareDate 55, // 51: webapi.ChessRankcfgData.Datas:type_name -> webapi.ChessRankConfig - 117, // 52: webapi.ActInviteConfig.PayScore:type_name -> webapi.ActInviteConfig.PayScoreEntry + 120, // 52: webapi.ActInviteConfig.PayScore:type_name -> webapi.ActInviteConfig.PayScoreEntry 62, // 53: webapi.ActInviteConfig.Awards1:type_name -> webapi.RankAward 62, // 54: webapi.ActInviteConfig.Awards2:type_name -> webapi.RankAward 62, // 55: webapi.ActInviteConfig.Awards3:type_name -> webapi.RankAward @@ -12140,12 +12328,12 @@ var file_protocol_webapi_common_proto_depIdxs = []int32{ 69, // 66: webapi.DiamondLotteryData.Info:type_name -> webapi.DiamondLotteryInfo 70, // 67: webapi.DiamondLotteryData.Players:type_name -> webapi.DiamondLotteryPlayers 72, // 68: webapi.DiamondLotteryConfig.LotteryData:type_name -> webapi.DiamondLotteryData - 121, // 69: webapi.ItemConfig.Items:type_name -> server.DB_GameItem + 124, // 69: webapi.ItemConfig.Items:type_name -> server.DB_GameItem 32, // 70: webapi.RankAwardInfo.Item:type_name -> webapi.ItemInfo 75, // 71: webapi.RankTypeInfo.Award:type_name -> webapi.RankAwardInfo 76, // 72: webapi.RankTypeConfig.Info:type_name -> webapi.RankTypeInfo - 118, // 73: webapi.SkinLevel.UpItem:type_name -> webapi.SkinLevel.UpItemEntry - 119, // 74: webapi.SkinItem.UnlockParam:type_name -> webapi.SkinItem.UnlockParamEntry + 121, // 73: webapi.SkinLevel.UpItem:type_name -> webapi.SkinLevel.UpItemEntry + 122, // 74: webapi.SkinItem.UnlockParam:type_name -> webapi.SkinItem.UnlockParamEntry 78, // 75: webapi.SkinItem.Levels:type_name -> webapi.SkinLevel 79, // 76: webapi.SkinConfig.Items:type_name -> webapi.SkinItem 82, // 77: webapi.AwardLogConfig.AwardLog:type_name -> webapi.AwardLogData @@ -12168,13 +12356,16 @@ var file_protocol_webapi_common_proto_depIdxs = []int32{ 32, // 94: webapi.NianInfo.SignReward:type_name -> webapi.ItemInfo 32, // 95: webapi.NianInfo.BossDieReward:type_name -> webapi.ItemInfo 106, // 96: webapi.NianInfo.BossDieOtherReward:type_name -> webapi.NianDropInfo - 108, // 97: webapi.RedPacketConfig.List:type_name -> webapi.RedPacketInfo - 109, // 98: webapi.RedPacketInfo.RedList:type_name -> webapi.RedInfo - 99, // [99:99] is the sub-list for method output_type - 99, // [99:99] is the sub-list for method input_type - 99, // [99:99] is the sub-list for extension type_name - 99, // [99:99] is the sub-list for extension extendee - 0, // [0:99] is the sub-list for field type_name + 108, // 97: webapi.NianRankReward.RankData:type_name -> webapi.NianRankData + 109, // 98: webapi.NianRankData.RankInfo:type_name -> webapi.NianRankAwardInfo + 32, // 99: webapi.NianRankAwardInfo.Award:type_name -> webapi.ItemInfo + 111, // 100: webapi.RedPacketConfig.List:type_name -> webapi.RedPacketInfo + 112, // 101: webapi.RedPacketInfo.RedList:type_name -> webapi.RedInfo + 102, // [102:102] is the sub-list for method output_type + 102, // [102:102] is the sub-list for method input_type + 102, // [102:102] is the sub-list for extension type_name + 102, // [102:102] is the sub-list for extension extendee + 0, // [0:102] is the sub-list for field type_name } func init() { file_protocol_webapi_common_proto_init() } @@ -13468,7 +13659,7 @@ func file_protocol_webapi_common_proto_init() { } } file_protocol_webapi_common_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RedPacketConfig); i { + switch v := v.(*NianRankReward); i { case 0: return &v.state case 1: @@ -13480,7 +13671,7 @@ func file_protocol_webapi_common_proto_init() { } } file_protocol_webapi_common_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RedPacketInfo); i { + switch v := v.(*NianRankData); i { case 0: return &v.state case 1: @@ -13492,6 +13683,42 @@ func file_protocol_webapi_common_proto_init() { } } file_protocol_webapi_common_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NianRankAwardInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protocol_webapi_common_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RedPacketConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protocol_webapi_common_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RedPacketInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protocol_webapi_common_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RedInfo); i { case 0: return &v.state @@ -13510,7 +13737,7 @@ func file_protocol_webapi_common_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_protocol_webapi_common_proto_rawDesc, NumEnums: 0, - NumMessages: 120, + NumMessages: 123, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/webapi/common.proto b/protocol/webapi/common.proto index 0347298..166e85b 100644 --- a/protocol/webapi/common.proto +++ b/protocol/webapi/common.proto @@ -1120,6 +1120,20 @@ message NianDropInfo{ int32 DropRate = 4;//掉落概率 int32 DropUp = 5;//掉落上限 } +//年兽排行榜奖励 +//etcd /game/activity_nian_rank +message NianRankReward{ + string Platform = 1; // 平台 + repeated NianRankData RankData = 2; +} +message NianRankData{ + int32 TypeId = 1; //1-幸运榜 2-伤害榜 + repeated NianRankAwardInfo RankInfo = 2; +} +message NianRankAwardInfo{ + int32 RankId =1;//排名 + repeated ItemInfo Award = 2; //奖励 +} // etcd /game/act_redpacket message RedPacketConfig{ diff --git a/worldsrv/action_nian.go b/worldsrv/action_nian.go index ca15794..f35d2e0 100644 --- a/worldsrv/action_nian.go +++ b/worldsrv/action_nian.go @@ -154,6 +154,20 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) } //本次攻击总血量 AttackHp := int64(0) + LuckyRankNeed := int64(0) + RankNeed := int64(0) + for _, value := range sData { + if value.Id == 7 { + LuckyRankNeed, _ = strconv.ParseInt(value.PropValue, 10, 64) + break + } + } + for _, value := range sData { + if value.Id == 8 { + RankNeed, _ = strconv.ParseInt(value.PropValue, 10, 64) + break + } + } //伤害范围 var intSlice []int if typeId == 1 || typeId == 2 { @@ -216,6 +230,13 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) randomValue = randomValue + randomValue/2 p.WelfData.NianData.BuffCount -= 1 } + if p.WelfData.NianData.AttackMaxHp < randomValue { + p.WelfData.NianData.AttackMaxHp = randomValue + if randomValue >= LuckyRankNeed { + //更新幸运榜 + + } + } AttackHp += randomValue if typeId == 3 { p.WelfData.NianData.BigHurt += 1 @@ -295,10 +316,15 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) } } } - //上榜 幸运榜 总榜 - } p.WelfData.NianData.BossHp -= AttackHp + p.WelfData.NianData.AttackSumHp += AttackHp + if p.WelfData.NianData.AttackSumHp >= RankNeed { + //更新总榜 + + } + //更新伤害总榜 + isDie := false //是否死亡 //判断Boss是否死亡 var bossDieAward []*model.Item @@ -497,9 +523,68 @@ func CSNianSignAward(s *netlib.Session, packetid int, data interface{}, sid int6 return nil } +func CSNianChange(s *netlib.Session, packetid int, data interface{}, sid int64) error { + if msg, ok := data.(*activity.CSNianChange); ok { + num := msg.Num + if num <= 0 || num > 99 { + return nil + } + p := PlayerMgrSington.GetOnlinePlayer(sid) + logger.Logger.Trace("客户端请求请求年兽兑换 snid = ", p.SnId) + if p == nil { + return nil + } + sData := srvdata.PBDB_NewYearActivityMgr.Datas.GetArr() + itemNum := 0 + coin := 0 + diamond := 0 + for _, value := range sData { + if value.Id == 21 { + strSlice := strings.Split(value.PropValue, ",") + diamond, _ = strconv.Atoi(strSlice[0]) + itemNum, _ = strconv.Atoi(strSlice[1]) + coin, _ = strconv.Atoi(strSlice[2]) + break + } + } + if p.Diamond < int64(diamond*int(num)) { + return nil + } + p.AddDiamond(int64(-diamond*int(num)), 0, common.GainWayNianCost, "sys", "年兽活动兑换道具") + var items []*model.Item + items = append(items, &model.Item{ + ItemId: common.ItemIDCoin, + ItemNum: int64(coin * int(num)), + }) + items = append(items, &model.Item{ + ItemId: common.ItemIDLittleGuaranteed, + ItemNum: int64(itemNum * int(num)), + }) + BagMgrSingleton.AddItems(&model.AddItemParam{ + Platform: p.Platform, + SnId: p.SnId, + Change: items, + GainWay: common.GainWayNianGain, + Operator: "system", + Remark: "年兽活动-兑换", + }) + pack := &activity.SCNianChange{} + pack.Num = num + for _, item := range items { + info := &activity.RankAwardData{ + ItemId: item.ItemId, + ItemNum: item.ItemNum, + } + pack.Award = append(pack.Award, info) + } + p.SendToClient(int(activity.NianPacketID_PACKET_SCNianChange), pack) + } + return nil +} func init() { common.Register(int(activity.NianPacketID_PACKET_CSNianData), activity.CSNianData{}, CSNianData) common.Register(int(activity.NianPacketID_PACKET_CSNianAttack), activity.CSNianAttack{}, CSNianAttack) common.Register(int(activity.NianPacketID_PACKET_CSNianBuff), activity.CSNianBuff{}, CSNianBuff) common.Register(int(activity.NianPacketID_PACKET_CSNianSignAward), activity.CSNianSignAward{}, CSNianSignAward) + common.Register(int(activity.NianPacketID_PACKET_CSNianChange), activity.CSNianChange{}, CSNianChange) } diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index 40de761..3a4b8af 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -2214,6 +2214,7 @@ func (this *WelfareMgr) DayReserNian(p *Player) { p.WelfData.NianData.BuffCount = 0 p.WelfData.NianData.SignAwardTime = 0 p.WelfData.NianData.OtherAwardNum = make(map[int32]int32) + p.WelfData.NianData.AttackMaxHp = 0 } } diff --git a/xlsx/DB_NewYearActivity.xlsx b/xlsx/DB_NewYearActivity.xlsx index c47938bca792833cf22fa15b88673274dd891a2e..c5a3abe38744643cfc6a4a0a74f993229dcb0717 100644 GIT binary patch delta 3501 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 delta 3408 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 SL6oHU3BW@V&X6GXr{sT+rcKxY From 36708d2af6be350924c67091fd8388ec001ba200 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Thu, 2 Jan 2025 16:35:17 +0800 Subject: [PATCH 02/47] =?UTF-8?q?=E5=B9=B4=E5=85=BD=E6=B4=BB=E5=8A=A8=20?= =?UTF-8?q?=E6=8E=92=E8=A1=8C=E6=A6=9C=E5=A5=96=E5=8A=B1=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- etcd/keyconf.go | 47 ++-- protocol/activity/nian.pb.go | 466 ++++++++++++++--------------------- protocol/activity/nian.proto | 24 +- worldsrv/action_nian.go | 25 +- worldsrv/etcd.go | 3 + 5 files changed, 246 insertions(+), 319 deletions(-) diff --git a/etcd/keyconf.go b/etcd/keyconf.go index 4561a9e..5ea0560 100644 --- a/etcd/keyconf.go +++ b/etcd/keyconf.go @@ -30,28 +30,29 @@ const ( ETCDKEY_PLAYERPOOL = "/game/plt/playerpool/" // 个人水池调控配置 ETCDKEY_GAME_CONFIG = "/game/plt/gameconfig/" // 游戏管理/全局配置 ETCDKEY_ACT_PHONELOTTERY = "/game/act_phoneLottery" - ETCDKEY_ChannelSwitch = "/game/channel/switch" // 渠道开关 - ETCDKEY_ACT_Invite = "/game/act_invite" // 邀请活动配置 - ETCDKEY_ACT_Permit = "/game/act_permit" // 赛季通行证配置 - ETCDKEY_DIAMOND_LOTTERY = "/game/diamond_lottery" // 钻石抽奖配置 - ETCDKEY_Item = "/game/item" // 道具列表 - ETCDKEY_SKin = "/game/skin_config" // 皮肤配置 - ETCDKEY_RANK_TYPE = "/game/RankType" // 排行榜奖励配置 - ETCDKEY_AWARD_CONFIG = "/game/awardlog_config" //获奖记录 - ETCDKEY_GUIDE = "/game/guide_config" //新手引导配置 - ETCDKEY_MACHINE = "/game/machine_config" //娃娃机配置 - ETCDKEY_MatchAudience = "/game/match_audience" //比赛观众 - ETCDKEY_Spirit = "/game/spirit" // 小精灵配置 - ETCDKEY_RoomType = "/game/room_type/" // 房间类型配置 - ETCDKEY_RoomConfig = "/game/room_config/" // 房间配置 - ETCDKEY_RoomConfigSystem = "/game/room_system" // 系统房间配置 - ETCDKEY_ClientUpgrade = "/game/client_upgrade" // 客户端升级奖励配置 - ETCDKEY_PopUpWindow = "/game/PopUpWindowConfig" //弹窗配置 - ETCDKEY_LotteryConfig = "/game/lottery" //抽奖配置 - ETCDKEY_LotteryUser = "/game/user_lottery" //抽奖用户必中配置 - ETCDKEY_PigBankDiamond = "/game/pigbank_diamond" //存钱罐消耗获得 - ETCDKEY_PigBankProp = "/game/pigbank_prop" //存钱罐属性 - ETCDKEY_NianConfig = "/game/activity_nian" //年兽活动配置 - ETCDKEY_REDPACKET = "/game/act_redpacket" //红包配置 + ETCDKEY_ChannelSwitch = "/game/channel/switch" // 渠道开关 + ETCDKEY_ACT_Invite = "/game/act_invite" // 邀请活动配置 + ETCDKEY_ACT_Permit = "/game/act_permit" // 赛季通行证配置 + ETCDKEY_DIAMOND_LOTTERY = "/game/diamond_lottery" // 钻石抽奖配置 + ETCDKEY_Item = "/game/item" // 道具列表 + ETCDKEY_SKin = "/game/skin_config" // 皮肤配置 + ETCDKEY_RANK_TYPE = "/game/RankType" // 排行榜奖励配置 + ETCDKEY_AWARD_CONFIG = "/game/awardlog_config" //获奖记录 + ETCDKEY_GUIDE = "/game/guide_config" //新手引导配置 + ETCDKEY_MACHINE = "/game/machine_config" //娃娃机配置 + ETCDKEY_MatchAudience = "/game/match_audience" //比赛观众 + ETCDKEY_Spirit = "/game/spirit" // 小精灵配置 + ETCDKEY_RoomType = "/game/room_type/" // 房间类型配置 + ETCDKEY_RoomConfig = "/game/room_config/" // 房间配置 + ETCDKEY_RoomConfigSystem = "/game/room_system" // 系统房间配置 + ETCDKEY_ClientUpgrade = "/game/client_upgrade" // 客户端升级奖励配置 + ETCDKEY_PopUpWindow = "/game/PopUpWindowConfig" //弹窗配置 + ETCDKEY_LotteryConfig = "/game/lottery" //抽奖配置 + ETCDKEY_LotteryUser = "/game/user_lottery" //抽奖用户必中配置 + ETCDKEY_PigBankDiamond = "/game/pigbank_diamond" //存钱罐消耗获得 + ETCDKEY_PigBankProp = "/game/pigbank_prop" //存钱罐属性 + ETCDKEY_NianConfig = "/game/activity_nian" //年兽活动配置 + ETCDKEY_NianRankConfig = "/game/activity_nian_rank" //年兽排行榜配置 + ETCDKEY_REDPACKET = "/game/act_redpacket" //红包配置 ) diff --git a/protocol/activity/nian.pb.go b/protocol/activity/nian.pb.go index 501b5c9..5c97118 100644 --- a/protocol/activity/nian.pb.go +++ b/protocol/activity/nian.pb.go @@ -145,15 +145,15 @@ type SCNianData struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ActivityStartTime int64 `protobuf:"varint,1,opt,name=ActivityStartTime,proto3" json:"ActivityStartTime,omitempty"` //活动开始时间 - ActivityEndTime int64 `protobuf:"varint,2,opt,name=ActivityEndTime,proto3" json:"ActivityEndTime,omitempty"` //活动结束时间 - BossMaxHp int64 `protobuf:"varint,3,opt,name=BossMaxHp,proto3" json:"BossMaxHp,omitempty"` //Boss最大血量 - BossHp int64 `protobuf:"varint,4,opt,name=BossHp,proto3" json:"BossHp,omitempty"` //Boss当前血量 - LuckData []*RankData `protobuf:"bytes,5,rep,name=LuckData,proto3" json:"LuckData,omitempty"` //幸运榜 - AwardTime int64 `protobuf:"varint,6,opt,name=AwardTime,proto3" json:"AwardTime,omitempty"` //每日签到领取时间 - BuffCount int64 `protobuf:"varint,7,opt,name=BuffCount,proto3" json:"BuffCount,omitempty"` //Buff剩余次数 - BuffStatus bool `protobuf:"varint,8,opt,name=BuffStatus,proto3" json:"BuffStatus,omitempty"` //Buff领取状态 - SignAwardTime int64 `protobuf:"varint,9,opt,name=SignAwardTime,proto3" json:"SignAwardTime,omitempty"` //签到领取时间 0-未领取 + ActivityStartTime int64 `protobuf:"varint,1,opt,name=ActivityStartTime,proto3" json:"ActivityStartTime,omitempty"` //活动开始时间 + ActivityEndTime int64 `protobuf:"varint,2,opt,name=ActivityEndTime,proto3" json:"ActivityEndTime,omitempty"` //活动结束时间 + BossMaxHp int64 `protobuf:"varint,3,opt,name=BossMaxHp,proto3" json:"BossMaxHp,omitempty"` //Boss最大血量 + BossHp int64 `protobuf:"varint,4,opt,name=BossHp,proto3" json:"BossHp,omitempty"` //Boss当前血量 + RankData []*NianRankData `protobuf:"bytes,5,rep,name=RankData,proto3" json:"RankData,omitempty"` //排行榜奖励配置 + AwardTime int64 `protobuf:"varint,6,opt,name=AwardTime,proto3" json:"AwardTime,omitempty"` //每日签到领取时间 + BuffCount int64 `protobuf:"varint,7,opt,name=BuffCount,proto3" json:"BuffCount,omitempty"` //Buff剩余次数 + BuffStatus bool `protobuf:"varint,8,opt,name=BuffStatus,proto3" json:"BuffStatus,omitempty"` //Buff领取状态 + SignAwardTime int64 `protobuf:"varint,9,opt,name=SignAwardTime,proto3" json:"SignAwardTime,omitempty"` //签到领取时间 0-未领取 } func (x *SCNianData) Reset() { @@ -216,9 +216,9 @@ func (x *SCNianData) GetBossHp() int64 { return 0 } -func (x *SCNianData) GetLuckData() []*RankData { +func (x *SCNianData) GetRankData() []*NianRankData { if x != nil { - return x.LuckData + return x.RankData } return nil } @@ -340,18 +340,17 @@ func (x *SCNianBuff) GetBuffCount() int64 { return 0 } -//排行榜数据 -//PACKET_CSNianRankData -type CSNianRankData struct { +type NianRankData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - TypeId int32 `protobuf:"varint,1,opt,name=TypeId,proto3" json:"TypeId,omitempty"` //1-幸运榜 2-总伤害榜 + TypeId int32 `protobuf:"varint,1,opt,name=TypeId,proto3" json:"TypeId,omitempty"` //1-幸运榜 2-总榜 + Data []*NianRankInfo `protobuf:"bytes,2,rep,name=Data,proto3" json:"Data,omitempty"` } -func (x *CSNianRankData) Reset() { - *x = CSNianRankData{} +func (x *NianRankData) Reset() { + *x = NianRankData{} if protoimpl.UnsafeEnabled { mi := &file_protocol_activity_nian_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -359,13 +358,13 @@ func (x *CSNianRankData) Reset() { } } -func (x *CSNianRankData) String() string { +func (x *NianRankData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CSNianRankData) ProtoMessage() {} +func (*NianRankData) ProtoMessage() {} -func (x *CSNianRankData) ProtoReflect() protoreflect.Message { +func (x *NianRankData) ProtoReflect() protoreflect.Message { mi := &file_protocol_activity_nian_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -377,30 +376,36 @@ func (x *CSNianRankData) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CSNianRankData.ProtoReflect.Descriptor instead. -func (*CSNianRankData) Descriptor() ([]byte, []int) { +// Deprecated: Use NianRankData.ProtoReflect.Descriptor instead. +func (*NianRankData) Descriptor() ([]byte, []int) { return file_protocol_activity_nian_proto_rawDescGZIP(), []int{4} } -func (x *CSNianRankData) GetTypeId() int32 { +func (x *NianRankData) GetTypeId() int32 { if x != nil { return x.TypeId } return 0 } -//PACKET_SCNianRankData -type SCNianRankData struct { +func (x *NianRankData) GetData() []*NianRankInfo { + if x != nil { + return x.Data + } + return nil +} + +type NianRankInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - TypeId int32 `protobuf:"varint,1,opt,name=TypeId,proto3" json:"TypeId,omitempty"` - Data []*RankData `protobuf:"bytes,2,rep,name=Data,proto3" json:"Data,omitempty"` + RankId int32 `protobuf:"varint,1,opt,name=RankId,proto3" json:"RankId,omitempty"` + Award []*RankAwardData `protobuf:"bytes,2,rep,name=Award,proto3" json:"Award,omitempty"` } -func (x *SCNianRankData) Reset() { - *x = SCNianRankData{} +func (x *NianRankInfo) Reset() { + *x = NianRankInfo{} if protoimpl.UnsafeEnabled { mi := &file_protocol_activity_nian_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -408,13 +413,13 @@ func (x *SCNianRankData) Reset() { } } -func (x *SCNianRankData) String() string { +func (x *NianRankInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SCNianRankData) ProtoMessage() {} +func (*NianRankInfo) ProtoMessage() {} -func (x *SCNianRankData) ProtoReflect() protoreflect.Message { +func (x *NianRankInfo) ProtoReflect() protoreflect.Message { mi := &file_protocol_activity_nian_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -426,98 +431,19 @@ func (x *SCNianRankData) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SCNianRankData.ProtoReflect.Descriptor instead. -func (*SCNianRankData) Descriptor() ([]byte, []int) { +// Deprecated: Use NianRankInfo.ProtoReflect.Descriptor instead. +func (*NianRankInfo) Descriptor() ([]byte, []int) { return file_protocol_activity_nian_proto_rawDescGZIP(), []int{5} } -func (x *SCNianRankData) GetTypeId() int32 { - if x != nil { - return x.TypeId - } - return 0 -} - -func (x *SCNianRankData) GetData() []*RankData { - if x != nil { - return x.Data - } - return nil -} - -type RankData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - RankId int32 `protobuf:"varint,1,opt,name=RankId,proto3" json:"RankId,omitempty"` - Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` - Icon int32 `protobuf:"varint,3,opt,name=Icon,proto3" json:"Icon,omitempty"` - Score int64 `protobuf:"varint,4,opt,name=Score,proto3" json:"Score,omitempty"` - Award []*RankAwardData `protobuf:"bytes,5,rep,name=Award,proto3" json:"Award,omitempty"` -} - -func (x *RankData) Reset() { - *x = RankData{} - if protoimpl.UnsafeEnabled { - mi := &file_protocol_activity_nian_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RankData) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RankData) ProtoMessage() {} - -func (x *RankData) ProtoReflect() protoreflect.Message { - mi := &file_protocol_activity_nian_proto_msgTypes[6] - 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 RankData.ProtoReflect.Descriptor instead. -func (*RankData) Descriptor() ([]byte, []int) { - return file_protocol_activity_nian_proto_rawDescGZIP(), []int{6} -} - -func (x *RankData) GetRankId() int32 { +func (x *NianRankInfo) GetRankId() int32 { if x != nil { return x.RankId } return 0 } -func (x *RankData) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *RankData) GetIcon() int32 { - if x != nil { - return x.Icon - } - return 0 -} - -func (x *RankData) GetScore() int64 { - if x != nil { - return x.Score - } - return 0 -} - -func (x *RankData) GetAward() []*RankAwardData { +func (x *NianRankInfo) GetAward() []*RankAwardData { if x != nil { return x.Award } @@ -536,7 +462,7 @@ type RankAwardData struct { func (x *RankAwardData) Reset() { *x = RankAwardData{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_activity_nian_proto_msgTypes[7] + mi := &file_protocol_activity_nian_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -549,7 +475,7 @@ func (x *RankAwardData) String() string { func (*RankAwardData) ProtoMessage() {} func (x *RankAwardData) ProtoReflect() protoreflect.Message { - mi := &file_protocol_activity_nian_proto_msgTypes[7] + mi := &file_protocol_activity_nian_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -562,7 +488,7 @@ func (x *RankAwardData) ProtoReflect() protoreflect.Message { // Deprecated: Use RankAwardData.ProtoReflect.Descriptor instead. func (*RankAwardData) Descriptor() ([]byte, []int) { - return file_protocol_activity_nian_proto_rawDescGZIP(), []int{7} + return file_protocol_activity_nian_proto_rawDescGZIP(), []int{6} } func (x *RankAwardData) GetItemId() int32 { @@ -592,7 +518,7 @@ type CSNianAttack struct { func (x *CSNianAttack) Reset() { *x = CSNianAttack{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_activity_nian_proto_msgTypes[8] + mi := &file_protocol_activity_nian_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -605,7 +531,7 @@ func (x *CSNianAttack) String() string { func (*CSNianAttack) ProtoMessage() {} func (x *CSNianAttack) ProtoReflect() protoreflect.Message { - mi := &file_protocol_activity_nian_proto_msgTypes[8] + mi := &file_protocol_activity_nian_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -618,7 +544,7 @@ func (x *CSNianAttack) ProtoReflect() protoreflect.Message { // Deprecated: Use CSNianAttack.ProtoReflect.Descriptor instead. func (*CSNianAttack) Descriptor() ([]byte, []int) { - return file_protocol_activity_nian_proto_rawDescGZIP(), []int{8} + return file_protocol_activity_nian_proto_rawDescGZIP(), []int{7} } func (x *CSNianAttack) GetTypeId() int32 { @@ -648,7 +574,7 @@ type SCNianAttackData struct { func (x *SCNianAttackData) Reset() { *x = SCNianAttackData{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_activity_nian_proto_msgTypes[9] + mi := &file_protocol_activity_nian_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -661,7 +587,7 @@ func (x *SCNianAttackData) String() string { func (*SCNianAttackData) ProtoMessage() {} func (x *SCNianAttackData) ProtoReflect() protoreflect.Message { - mi := &file_protocol_activity_nian_proto_msgTypes[9] + mi := &file_protocol_activity_nian_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -674,7 +600,7 @@ func (x *SCNianAttackData) ProtoReflect() protoreflect.Message { // Deprecated: Use SCNianAttackData.ProtoReflect.Descriptor instead. func (*SCNianAttackData) Descriptor() ([]byte, []int) { - return file_protocol_activity_nian_proto_rawDescGZIP(), []int{9} + return file_protocol_activity_nian_proto_rawDescGZIP(), []int{8} } func (x *SCNianAttackData) GetTypeId() int32 { @@ -751,7 +677,7 @@ type CSNianSignAward struct { func (x *CSNianSignAward) Reset() { *x = CSNianSignAward{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_activity_nian_proto_msgTypes[10] + mi := &file_protocol_activity_nian_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -764,7 +690,7 @@ func (x *CSNianSignAward) String() string { func (*CSNianSignAward) ProtoMessage() {} func (x *CSNianSignAward) ProtoReflect() protoreflect.Message { - mi := &file_protocol_activity_nian_proto_msgTypes[10] + mi := &file_protocol_activity_nian_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -777,7 +703,7 @@ func (x *CSNianSignAward) ProtoReflect() protoreflect.Message { // Deprecated: Use CSNianSignAward.ProtoReflect.Descriptor instead. func (*CSNianSignAward) Descriptor() ([]byte, []int) { - return file_protocol_activity_nian_proto_rawDescGZIP(), []int{10} + return file_protocol_activity_nian_proto_rawDescGZIP(), []int{9} } //PACKET_SCNianSignAward @@ -793,7 +719,7 @@ type SCNianSignAward struct { func (x *SCNianSignAward) Reset() { *x = SCNianSignAward{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_activity_nian_proto_msgTypes[11] + mi := &file_protocol_activity_nian_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -806,7 +732,7 @@ func (x *SCNianSignAward) String() string { func (*SCNianSignAward) ProtoMessage() {} func (x *SCNianSignAward) ProtoReflect() protoreflect.Message { - mi := &file_protocol_activity_nian_proto_msgTypes[11] + mi := &file_protocol_activity_nian_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -819,7 +745,7 @@ func (x *SCNianSignAward) ProtoReflect() protoreflect.Message { // Deprecated: Use SCNianSignAward.ProtoReflect.Descriptor instead. func (*SCNianSignAward) Descriptor() ([]byte, []int) { - return file_protocol_activity_nian_proto_rawDescGZIP(), []int{11} + return file_protocol_activity_nian_proto_rawDescGZIP(), []int{10} } func (x *SCNianSignAward) GetSignAwardTime() int64 { @@ -849,7 +775,7 @@ type CSNianChange struct { func (x *CSNianChange) Reset() { *x = CSNianChange{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_activity_nian_proto_msgTypes[12] + mi := &file_protocol_activity_nian_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -862,7 +788,7 @@ func (x *CSNianChange) String() string { func (*CSNianChange) ProtoMessage() {} func (x *CSNianChange) ProtoReflect() protoreflect.Message { - mi := &file_protocol_activity_nian_proto_msgTypes[12] + mi := &file_protocol_activity_nian_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -875,7 +801,7 @@ func (x *CSNianChange) ProtoReflect() protoreflect.Message { // Deprecated: Use CSNianChange.ProtoReflect.Descriptor instead. func (*CSNianChange) Descriptor() ([]byte, []int) { - return file_protocol_activity_nian_proto_rawDescGZIP(), []int{12} + return file_protocol_activity_nian_proto_rawDescGZIP(), []int{11} } func (x *CSNianChange) GetNum() int32 { @@ -898,7 +824,7 @@ type SCNianChange struct { func (x *SCNianChange) Reset() { *x = SCNianChange{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_activity_nian_proto_msgTypes[13] + mi := &file_protocol_activity_nian_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -911,7 +837,7 @@ func (x *SCNianChange) String() string { func (*SCNianChange) ProtoMessage() {} func (x *SCNianChange) ProtoReflect() protoreflect.Message { - mi := &file_protocol_activity_nian_proto_msgTypes[13] + mi := &file_protocol_activity_nian_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -924,7 +850,7 @@ func (x *SCNianChange) ProtoReflect() protoreflect.Message { // Deprecated: Use SCNianChange.ProtoReflect.Descriptor instead. func (*SCNianChange) Descriptor() ([]byte, []int) { - return file_protocol_activity_nian_proto_rawDescGZIP(), []int{13} + return file_protocol_activity_nian_proto_rawDescGZIP(), []int{12} } func (x *SCNianChange) GetNum() int32 { @@ -947,7 +873,7 @@ var file_protocol_activity_nian_proto_rawDesc = []byte{ 0x0a, 0x1c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2f, 0x6e, 0x69, 0x61, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x22, 0x0c, 0x0a, 0x0a, 0x43, 0x53, 0x4e, 0x69, - 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x22, 0xcc, 0x02, 0x0a, 0x0a, 0x53, 0x43, 0x4e, 0x69, 0x61, + 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x22, 0xd0, 0x02, 0x0a, 0x0a, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x11, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, @@ -957,108 +883,103 @@ var file_protocol_activity_nian_proto_rawDesc = []byte{ 0x09, 0x42, 0x6f, 0x73, 0x73, 0x4d, 0x61, 0x78, 0x48, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x42, 0x6f, 0x73, 0x73, 0x4d, 0x61, 0x78, 0x48, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x6f, 0x73, 0x73, 0x48, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x42, 0x6f, 0x73, - 0x73, 0x48, 0x70, 0x12, 0x2e, 0x0a, 0x08, 0x4c, 0x75, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, - 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x4c, 0x75, 0x63, 0x6b, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x1e, 0x0a, 0x0a, 0x42, 0x75, 0x66, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0a, 0x42, 0x75, 0x66, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x24, 0x0a, 0x0d, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x0c, 0x0a, 0x0a, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x42, - 0x75, 0x66, 0x66, 0x22, 0x2a, 0x0a, 0x0a, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, - 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x28, 0x0a, 0x0e, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x22, 0x50, 0x0a, 0x0e, 0x53, 0x43, 0x4e, - 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, - 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, - 0x65, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, - 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x8f, 0x01, 0x0a, 0x08, - 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x61, 0x6e, 0x6b, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x04, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x2d, - 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x73, 0x48, 0x70, 0x12, 0x32, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x2e, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x52, + 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x42, 0x75, 0x66, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x42, 0x75, 0x66, 0x66, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x53, 0x69, 0x67, 0x6e, + 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x0c, 0x0a, 0x0a, 0x43, 0x53, 0x4e, + 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x22, 0x2a, 0x0a, 0x0a, 0x53, 0x43, 0x4e, 0x69, 0x61, + 0x6e, 0x42, 0x75, 0x66, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x52, 0x0a, 0x0c, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x04, 0x44, + 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x2e, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x55, 0x0a, 0x0c, 0x4e, 0x69, 0x61, 0x6e, 0x52, + 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x61, 0x6e, 0x6b, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x64, 0x12, + 0x2d, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, + 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, 0x41, + 0x0a, 0x0d, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, + 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, + 0x6d, 0x22, 0x26, 0x0a, 0x0c, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, + 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x22, 0xe8, 0x02, 0x0a, 0x10, 0x53, 0x43, + 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, + 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x6f, 0x73, 0x73, 0x48, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x42, 0x6f, 0x73, 0x73, 0x48, 0x70, 0x12, 0x2d, + 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, - 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, 0x41, 0x0a, - 0x0d, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, - 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, - 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, - 0x22, 0x26, 0x0a, 0x0c, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, - 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x22, 0xe8, 0x02, 0x0a, 0x10, 0x53, 0x43, 0x4e, - 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, - 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, - 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x6f, 0x73, 0x73, 0x48, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x42, 0x6f, 0x73, 0x73, 0x48, 0x70, 0x12, 0x2d, 0x0a, - 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, - 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, - 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, - 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x48, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, - 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x48, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x44, 0x69, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x49, 0x73, 0x44, 0x69, 0x65, 0x12, 0x33, - 0x0a, 0x08, 0x44, 0x69, 0x65, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, - 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x44, 0x69, 0x65, 0x41, 0x77, - 0x61, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x35, 0x0a, 0x09, 0x45, 0x78, 0x74, 0x72, 0x61, 0x44, 0x72, 0x6f, 0x70, 0x18, 0x08, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, - 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x45, - 0x78, 0x74, 0x72, 0x61, 0x44, 0x72, 0x6f, 0x70, 0x12, 0x39, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x6f, - 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, - 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, - 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, 0x6e, 0x0a, 0x0f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, - 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x69, 0x67, - 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0d, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x35, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, - 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x53, 0x69, 0x67, - 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, 0x20, 0x0a, 0x0c, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x4f, 0x0a, 0x0c, 0x53, 0x43, 0x4e, 0x69, - 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x2d, 0x0a, 0x05, 0x41, 0x77, - 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x2a, 0xe2, 0x02, 0x0a, 0x0c, 0x4e, 0x69, - 0x61, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, - 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, - 0x6e, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe4, 0x14, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe5, 0x14, - 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, - 0x6e, 0x42, 0x75, 0x66, 0x66, 0x10, 0xe6, 0x14, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x10, 0xe7, 0x14, - 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, - 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe8, 0x14, 0x12, 0x1a, 0x0a, 0x15, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, - 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe9, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x10, - 0xea, 0x14, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, - 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xeb, 0x14, - 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, - 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xec, 0x14, 0x12, 0x1b, 0x0a, - 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, - 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xed, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x10, 0xee, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0xef, 0x14, 0x42, 0x28, - 0x5a, 0x26, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x48, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x08, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x48, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x44, + 0x69, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x49, 0x73, 0x44, 0x69, 0x65, 0x12, + 0x33, 0x0a, 0x08, 0x44, 0x69, 0x65, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, + 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x44, 0x69, 0x65, 0x41, + 0x77, 0x61, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x35, 0x0a, 0x09, 0x45, 0x78, 0x74, 0x72, 0x61, 0x44, 0x72, 0x6f, 0x70, 0x18, + 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, + 0x45, 0x78, 0x74, 0x72, 0x61, 0x44, 0x72, 0x6f, 0x70, 0x12, 0x39, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, + 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, + 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, + 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, 0x6e, 0x0a, 0x0f, 0x53, 0x43, 0x4e, 0x69, 0x61, + 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x69, + 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0d, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x35, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, + 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x53, 0x69, + 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, 0x20, 0x0a, 0x0c, 0x43, 0x53, 0x4e, 0x69, 0x61, + 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x4f, 0x0a, 0x0c, 0x53, 0x43, 0x4e, + 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x2d, 0x0a, 0x05, 0x41, + 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x2a, 0xe2, 0x02, 0x0a, 0x0c, 0x4e, + 0x69, 0x61, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x10, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, + 0x00, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, + 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe4, 0x14, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe5, + 0x14, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, + 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x10, 0xe6, 0x14, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x10, 0xe7, + 0x14, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, + 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe8, 0x14, 0x12, 0x1a, 0x0a, + 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, + 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe9, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, + 0x10, 0xea, 0x14, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xeb, + 0x14, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, + 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xec, 0x14, 0x12, 0x1b, + 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x53, + 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xed, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x10, 0xee, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0xef, 0x14, 0x42, + 0x28, 0x5a, 0x26, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -1074,34 +995,33 @@ func file_protocol_activity_nian_proto_rawDescGZIP() []byte { } var file_protocol_activity_nian_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_protocol_activity_nian_proto_msgTypes = make([]protoimpl.MessageInfo, 14) +var file_protocol_activity_nian_proto_msgTypes = make([]protoimpl.MessageInfo, 13) var file_protocol_activity_nian_proto_goTypes = []interface{}{ (NianPacketID)(0), // 0: activity.NianPacketID (*CSNianData)(nil), // 1: activity.CSNianData (*SCNianData)(nil), // 2: activity.SCNianData (*CSNianBuff)(nil), // 3: activity.CSNianBuff (*SCNianBuff)(nil), // 4: activity.SCNianBuff - (*CSNianRankData)(nil), // 5: activity.CSNianRankData - (*SCNianRankData)(nil), // 6: activity.SCNianRankData - (*RankData)(nil), // 7: activity.RankData - (*RankAwardData)(nil), // 8: activity.RankAwardData - (*CSNianAttack)(nil), // 9: activity.CSNianAttack - (*SCNianAttackData)(nil), // 10: activity.SCNianAttackData - (*CSNianSignAward)(nil), // 11: activity.CSNianSignAward - (*SCNianSignAward)(nil), // 12: activity.SCNianSignAward - (*CSNianChange)(nil), // 13: activity.CSNianChange - (*SCNianChange)(nil), // 14: activity.SCNianChange + (*NianRankData)(nil), // 5: activity.NianRankData + (*NianRankInfo)(nil), // 6: activity.NianRankInfo + (*RankAwardData)(nil), // 7: activity.RankAwardData + (*CSNianAttack)(nil), // 8: activity.CSNianAttack + (*SCNianAttackData)(nil), // 9: activity.SCNianAttackData + (*CSNianSignAward)(nil), // 10: activity.CSNianSignAward + (*SCNianSignAward)(nil), // 11: activity.SCNianSignAward + (*CSNianChange)(nil), // 12: activity.CSNianChange + (*SCNianChange)(nil), // 13: activity.SCNianChange } var file_protocol_activity_nian_proto_depIdxs = []int32{ - 7, // 0: activity.SCNianData.LuckData:type_name -> activity.RankData - 7, // 1: activity.SCNianRankData.Data:type_name -> activity.RankData - 8, // 2: activity.RankData.Award:type_name -> activity.RankAwardData - 8, // 3: activity.SCNianAttackData.Award:type_name -> activity.RankAwardData - 8, // 4: activity.SCNianAttackData.DieAward:type_name -> activity.RankAwardData - 8, // 5: activity.SCNianAttackData.ExtraDrop:type_name -> activity.RankAwardData - 8, // 6: activity.SCNianAttackData.FloorReward:type_name -> activity.RankAwardData - 8, // 7: activity.SCNianSignAward.SignAward:type_name -> activity.RankAwardData - 8, // 8: activity.SCNianChange.Award:type_name -> activity.RankAwardData + 5, // 0: activity.SCNianData.RankData:type_name -> activity.NianRankData + 6, // 1: activity.NianRankData.Data:type_name -> activity.NianRankInfo + 7, // 2: activity.NianRankInfo.Award:type_name -> activity.RankAwardData + 7, // 3: activity.SCNianAttackData.Award:type_name -> activity.RankAwardData + 7, // 4: activity.SCNianAttackData.DieAward:type_name -> activity.RankAwardData + 7, // 5: activity.SCNianAttackData.ExtraDrop:type_name -> activity.RankAwardData + 7, // 6: activity.SCNianAttackData.FloorReward:type_name -> activity.RankAwardData + 7, // 7: activity.SCNianSignAward.SignAward:type_name -> activity.RankAwardData + 7, // 8: activity.SCNianChange.Award:type_name -> activity.RankAwardData 9, // [9:9] is the sub-list for method output_type 9, // [9:9] is the sub-list for method input_type 9, // [9:9] is the sub-list for extension type_name @@ -1164,7 +1084,7 @@ func file_protocol_activity_nian_proto_init() { } } file_protocol_activity_nian_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSNianRankData); i { + switch v := v.(*NianRankData); i { case 0: return &v.state case 1: @@ -1176,7 +1096,7 @@ func file_protocol_activity_nian_proto_init() { } } file_protocol_activity_nian_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCNianRankData); i { + switch v := v.(*NianRankInfo); i { case 0: return &v.state case 1: @@ -1188,18 +1108,6 @@ func file_protocol_activity_nian_proto_init() { } } file_protocol_activity_nian_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RankData); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_protocol_activity_nian_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RankAwardData); i { case 0: return &v.state @@ -1211,7 +1119,7 @@ func file_protocol_activity_nian_proto_init() { return nil } } - file_protocol_activity_nian_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_protocol_activity_nian_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSNianAttack); i { case 0: return &v.state @@ -1223,7 +1131,7 @@ func file_protocol_activity_nian_proto_init() { return nil } } - file_protocol_activity_nian_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_protocol_activity_nian_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCNianAttackData); i { case 0: return &v.state @@ -1235,7 +1143,7 @@ func file_protocol_activity_nian_proto_init() { return nil } } - file_protocol_activity_nian_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_protocol_activity_nian_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSNianSignAward); i { case 0: return &v.state @@ -1247,7 +1155,7 @@ func file_protocol_activity_nian_proto_init() { return nil } } - file_protocol_activity_nian_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_protocol_activity_nian_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCNianSignAward); i { case 0: return &v.state @@ -1259,7 +1167,7 @@ func file_protocol_activity_nian_proto_init() { return nil } } - file_protocol_activity_nian_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_protocol_activity_nian_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSNianChange); i { case 0: return &v.state @@ -1271,7 +1179,7 @@ func file_protocol_activity_nian_proto_init() { return nil } } - file_protocol_activity_nian_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_protocol_activity_nian_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCNianChange); i { case 0: return &v.state @@ -1290,7 +1198,7 @@ func file_protocol_activity_nian_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_protocol_activity_nian_proto_rawDesc, NumEnums: 1, - NumMessages: 14, + NumMessages: 13, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/activity/nian.proto b/protocol/activity/nian.proto index 6f8f47d..198b542 100644 --- a/protocol/activity/nian.proto +++ b/protocol/activity/nian.proto @@ -28,11 +28,11 @@ message SCNianData{ int64 ActivityEndTime = 2; //活动结束时间 int64 BossMaxHp = 3; //Boss最大血量 int64 BossHp = 4; //Boss当前血量 - repeated RankData LuckData = 5;//幸运榜 + repeated NianRankData RankData = 5;//排行榜奖励配置 int64 AwardTime = 6;//每日签到领取时间 int64 BuffCount = 7;//Buff剩余次数 bool BuffStatus = 8;//Buff领取状态 - int64 SignAwardTime = 9;//签到领取时间 0-未领取 + int64 SignAwardTime = 9;//签到领取时间 0-未领取 } //贺春 @@ -44,22 +44,14 @@ message CSNianBuff{ message SCNianBuff{ int64 BuffCount = 1; //BUFF剩余次数 } -//排行榜数据 -//PACKET_CSNianRankData -message CSNianRankData{ - int32 TypeId = 1;//1-幸运榜 2-总伤害榜 + +message NianRankData{ + int32 TypeId = 1; //1-幸运榜 2-总榜 + repeated NianRankInfo Data = 2; } -//PACKET_SCNianRankData -message SCNianRankData{ - int32 TypeId = 1; - repeated RankData Data = 2; -} -message RankData{ +message NianRankInfo{ int32 RankId =1; - string Name = 2; - int32 Icon = 3; - int64 Score = 4; - repeated RankAwardData Award = 5; + repeated RankAwardData Award = 2; } message RankAwardData{ diff --git a/worldsrv/action_nian.go b/worldsrv/action_nian.go index f35d2e0..124a1da 100644 --- a/worldsrv/action_nian.go +++ b/worldsrv/action_nian.go @@ -58,7 +58,30 @@ func CSNianData(s *netlib.Session, packetid int, data interface{}, sid int64) er if p.WelfData.NianData.BossHp == 0 { p.WelfData.NianData.BossHp = BossMaxHp } + //排行榜配置 + rankData := PlatformMgrSingleton.GetConfig(p.Platform).NianRankReward + if rankData == nil { + return nil + } pack := &activity.SCNianData{} + for _, info := range rankData.RankData { + rankInfo := &activity.NianRankData{} + rankInfo.TypeId = info.TypeId + for _, awardInfo := range info.RankInfo { + rank := &activity.NianRankInfo{} + rank.RankId = awardInfo.RankId + for _, itemInfo := range awardInfo.Award { + rankAwardData := &activity.RankAwardData{ + ItemId: itemInfo.ItemId, + ItemNum: itemInfo.ItemNum, + } + rank.Award = append(rank.Award, rankAwardData) + } + rankInfo.Data = append(rankInfo.Data, rank) + } + pack.RankData = append(pack.RankData, rankInfo) + } + pack.BossHp = p.WelfData.NianData.BossHp pack.BossMaxHp = BossMaxHp // pack.ActivityStartTime = timestamp @@ -68,7 +91,7 @@ func CSNianData(s *netlib.Session, packetid int, data interface{}, sid int64) er pack.AwardTime = p.WelfData.NianData.SignAwardTime pack.BuffCount = p.WelfData.NianData.BuffCount pack.BuffStatus = p.WelfData.NianData.BuffStatus - pack.LuckData = nil + pack.RankData = nil pack.SignAwardTime = p.WelfData.NianData.SignAwardTime logger.Logger.Trace("请求年兽活动信息 ", pack) p.SendToClient(int(activity.NianPacketID_PACKET_SCNianData), pack) diff --git a/worldsrv/etcd.go b/worldsrv/etcd.go index b4d1d28..93f6b6b 100644 --- a/worldsrv/etcd.go +++ b/worldsrv/etcd.go @@ -112,6 +112,7 @@ func init() { etcd.Register(etcd.ETCDKEY_PigBankProp, webapi.GamePigBankPropConfig{}, platformConfigEvent) //年兽配置 etcd.Register(etcd.ETCDKEY_NianConfig, webapi.ActivityNianConfig{}, platformConfigEvent) + etcd.Register(etcd.ETCDKEY_NianRankConfig, webapi.NianRankReward{}, platformConfigEvent) // 红包配置 etcd.Register(etcd.ETCDKEY_REDPACKET, webapi.RedPacketConfig{}, platformConfigEvent) @@ -454,6 +455,8 @@ func platformConfigEvent(ctx context.Context, completeKey string, isInit bool, e PlatformMgrSingleton.GetConfig(config.Platform).GamePigBankPropConfig = config case *webapi.ActivityNianConfig: WelfareMgrSington.UpdateActivityNianStatus(config) + case *webapi.NianRankReward: + PlatformMgrSingleton.GetConfig(config.Platform).NianRankReward = config case *webapi.RedPacketConfig: WelfareMgrSington.UpdateRedPacket(config, isInit) default: From a5352617523e07498595c217100c4249ecd5e75a Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Thu, 2 Jan 2025 16:35:38 +0800 Subject: [PATCH 03/47] =?UTF-8?q?=E5=B9=B4=E5=85=BD=E6=B4=BB=E5=8A=A8=20?= =?UTF-8?q?=E6=8E=92=E8=A1=8C=E6=A6=9C=E5=A5=96=E5=8A=B1=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- model/config.go | 1 + 1 file changed, 1 insertion(+) diff --git a/model/config.go b/model/config.go index ac5c00d..3085c48 100644 --- a/model/config.go +++ b/model/config.go @@ -170,6 +170,7 @@ type AllConfig struct { *webapi.GamePigBankPropConfig //年兽配置 *webapi.ActivityNianConfig + *webapi.NianRankReward // 红包配置 *webapi.RedPacketConfig } From 043f8d69ead25196bb8b5d7b8d5fe0f95b0f1d39 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Thu, 2 Jan 2025 16:38:43 +0800 Subject: [PATCH 04/47] =?UTF-8?q?=E5=B9=B4=E5=85=BD=E6=B4=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/action_nian.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/worldsrv/action_nian.go b/worldsrv/action_nian.go index 124a1da..f4d7786 100644 --- a/worldsrv/action_nian.go +++ b/worldsrv/action_nian.go @@ -84,8 +84,8 @@ func CSNianData(s *netlib.Session, packetid int, data interface{}, sid int64) er pack.BossHp = p.WelfData.NianData.BossHp pack.BossMaxHp = BossMaxHp - // pack.ActivityStartTime = timestamp - //pack.ActivityEndTime = endTimestamp + pack.ActivityStartTime = timestamp + pack.ActivityEndTime = endTimestamp pack.ActivityStartTime = 0 pack.ActivityEndTime = 0 pack.AwardTime = p.WelfData.NianData.SignAwardTime From 94e1effc632229ea436433c1b9725f910276c195 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Thu, 2 Jan 2025 16:39:25 +0800 Subject: [PATCH 05/47] =?UTF-8?q?=E5=B9=B4=E5=85=BD=E6=B4=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/action_nian.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/worldsrv/action_nian.go b/worldsrv/action_nian.go index f4d7786..86c380d 100644 --- a/worldsrv/action_nian.go +++ b/worldsrv/action_nian.go @@ -86,8 +86,6 @@ func CSNianData(s *netlib.Session, packetid int, data interface{}, sid int64) er pack.BossMaxHp = BossMaxHp pack.ActivityStartTime = timestamp pack.ActivityEndTime = endTimestamp - pack.ActivityStartTime = 0 - pack.ActivityEndTime = 0 pack.AwardTime = p.WelfData.NianData.SignAwardTime pack.BuffCount = p.WelfData.NianData.BuffCount pack.BuffStatus = p.WelfData.NianData.BuffStatus From 20f511a840b9bb717b02b76f870204598cbda531 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Thu, 2 Jan 2025 16:41:00 +0800 Subject: [PATCH 06/47] =?UTF-8?q?=E5=B9=B4=E5=85=BD=E6=B4=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/action_nian.go | 1 - 1 file changed, 1 deletion(-) diff --git a/worldsrv/action_nian.go b/worldsrv/action_nian.go index 86c380d..3da7775 100644 --- a/worldsrv/action_nian.go +++ b/worldsrv/action_nian.go @@ -89,7 +89,6 @@ func CSNianData(s *netlib.Session, packetid int, data interface{}, sid int64) er pack.AwardTime = p.WelfData.NianData.SignAwardTime pack.BuffCount = p.WelfData.NianData.BuffCount pack.BuffStatus = p.WelfData.NianData.BuffStatus - pack.RankData = nil pack.SignAwardTime = p.WelfData.NianData.SignAwardTime logger.Logger.Trace("请求年兽活动信息 ", pack) p.SendToClient(int(activity.NianPacketID_PACKET_SCNianData), pack) From 521b6e935e6269862ec19ac5b7480adc72b72377 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Thu, 2 Jan 2025 16:46:23 +0800 Subject: [PATCH 07/47] =?UTF-8?q?fix=20=E7=BA=A2=E5=8C=85=E6=B4=BB?= =?UTF-8?q?=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/welfmgr.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index 429b64f..3a8ec90 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -2292,7 +2292,7 @@ func (this *WelfareMgr) SendRedPacketInfo(p *Player) *welfare.SCRedPacketInfo { } if p.WelfData != nil && p.WelfData.RedPacket != nil { if p.WelfData.RedPacket[v.GetId()] != nil { - info.IsJoin = p.WelfData.RedPacket[v.GetId()].JN > 0 + info.IsJoin = p.WelfData.RedPacket[v.GetId()].JN > 0 || p.WelfData.RedPacket[v.GetId()].N > 0 } } _, info.RemainCount = RedPacketMgrInst.GetRemainTimesByConfig(p, v) @@ -2333,7 +2333,7 @@ func (this *WelfareMgr) GetRedPacket(p *Player, id int64) *welfare.SCRedPacketDr // 记录参与次数 if id == 0 { for _, v := range this.GetConfig(p.Platform).RedPacketConfig.GetList() { - if now >= common.IntToTime(int(v.GetStartHMS())).Unix() || now < common.IntToTime(int(v.GetEndHMS())).Unix() { + if v.GetOn() == common.On && now >= common.IntToTime(int(v.GetStartHMS())).Unix() || now < common.IntToTime(int(v.GetEndHMS())).Unix() { if p.WelfData.RedPacket[v.GetId()] == nil { p.WelfData.RedPacket[v.GetId()] = &model.RedPacketData{} } From 71c9b583af61a289647dea193e01e6cffab93378 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Thu, 2 Jan 2025 16:47:01 +0800 Subject: [PATCH 08/47] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/DB_NewYearActivity.dat | 3 ++- data/DB_NewYearActivity.json | 6 ++++++ data/DB_NewYearRankReward.dat | 34 +++++++++++++++++----------------- data/DB_PigBank_Diamond.dat | 4 ++-- data/DB_PropExchange.dat | Bin 384 -> 384 bytes data/DB_Task.dat | Bin 6587 -> 6587 bytes 6 files changed, 27 insertions(+), 20 deletions(-) diff --git a/data/DB_NewYearActivity.dat b/data/DB_NewYearActivity.dat index e1daacd..8a9c732 100644 --- a/data/DB_NewYearActivity.dat +++ b/data/DB_NewYearActivity.dat @@ -24,4 +24,5 @@ ALittleGuaranteedReward100002,5"小爆竹保底掉落物品 GiftShopID991001,991002,991003"礼包ID @ GiftShopLimit3,0,0"&礼包每日限购次数,0为不限购 4 BossExcLimit30"年兽死亡额外掉落要求 -" BuffCount1"Buff生效次数 \ No newline at end of file +" BuffCount1"Buff生效次数 +oExchangeDiamond 30,5,1000000"L单次兑换爆竹所需要消耗的钻石,获得数量,获得金币数量 \ No newline at end of file diff --git a/data/DB_NewYearActivity.json b/data/DB_NewYearActivity.json index 2268940..e4df27e 100644 --- a/data/DB_NewYearActivity.json +++ b/data/DB_NewYearActivity.json @@ -119,6 +119,12 @@ "PorpName": "BuffCount", "PropValue": "1", "PropDec": "Buff生效次数" + }, + { + "Id": 21, + "PorpName": "ExchangeDiamond", + "PropValue": "30,5,1000000", + "PropDec": "单次兑换爆竹所需要消耗的钻石,获得数量,获得金币数量" } ] } \ No newline at end of file diff --git a/data/DB_NewYearRankReward.dat b/data/DB_NewYearRankReward.dat index 2b3cb98..8eac736 100644 --- a/data/DB_NewYearRankReward.dat +++ b/data/DB_NewYearRankReward.dat @@ -1,10 +1,10 @@ -"""d -"d"" -""d" +""d" +""d" +"d"" ""d ""c -""b +"b" ""a ""`   ""_ @@ -20,14 +20,14 @@ ""W ""V ""U -"T" +""T ""S -""R +"R" ""Q ""P ""O ""N -"M" +""M ""L ""K ""J @@ -38,12 +38,12 @@ ##""E $$""D %%""C -&&"B" +&&""B ''""A ((""@ -)"""d +)""d" *""d" -+"""d ++""d" ,""d -""c .""b @@ -55,29 +55,29 @@ 3 ""] 4 ""\ 5 ""[ -6"Z" +6""Z 7""Y 8""X -9"W" +9""W :""V ;""U <""T =""S >""R -?"Q" +?""Q @""P A""O B""N -C"M" +C""M D""L -E"K" +E""K F""J G""I -H "H" +H ""H I!""G J"""F K#""E -L$""D +L$"D" M%""C N&""B O'""A diff --git a/data/DB_PigBank_Diamond.dat b/data/DB_PigBank_Diamond.dat index 3a06af9..79630b9 100644 --- a/data/DB_PigBank_Diamond.dat +++ b/data/DB_PigBank_Diamond.dat @@ -1,4 +1,4 @@  (8@;PdX`c -< ((22Ÿ8@;JƸJPdX` -?/ 2(2Ÿ28@;JƸJPdX` \ No newline at end of file +< ((2Ÿ28@;JƸJPdX` +?/ 2(22Ÿ8@;JƸJPdX` \ No newline at end of file diff --git a/data/DB_PropExchange.dat b/data/DB_PropExchange.dat index cc7f1961579ffb3a487a7ae7441980a203308cf4..cf52872223abce48cb51e5da35a90222a43eaf30 100644 GIT binary patch literal 384 zcmd-w<6snElw#w!+{O&1uR!UmQ2H8_z7C?5I5-yevI!h$vE|a^U;?YZ0hPZArEfv$ z+i2>;IUwfavIk}kSRc?mDE0#RDCR41g5A-u_7MwLEC&l-hr S@hCgTBA`dVFmo}`76Jfc0z5SU delta 84 zcmZo*ZeV8NGUH&J$fLv}#l~@YqEm1IE wlhb%bHtTWOF;2e5DYm(Zn~8DqGcJ+MGkBJR>=v9Hz^6NTGN<6?K0aM;01z)u#Q*>R delta 295 zcmdmOyxVw!p&%Q_l3q3e5ibsog+O}2A-Rc8#|0sr3vJ9^5NWQ-QjDz_q9T(wFd9P* zkb@d3K(;8x$t^r0llQY5 zPM*vuGMRG})cQeDVfvk;#)dOeSyU71?}?!+{a1j1}Sd&Dva! sFkvL!n`^n*VZw|s)xB(+r}C@<*)2FZfKL}{7!%ARvv@Z5@#%5{0LNQVp8x;= From 8c9b279196f98d0bb2c994ad7511f8a039003777 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Thu, 2 Jan 2025 16:59:59 +0800 Subject: [PATCH 09/47] =?UTF-8?q?=E5=B9=B4=E5=85=BD=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/constant.go | 3 + data/DB_NewYearRankReward.dat | 34 ++--- data/DB_PigBank_Diamond.dat | 2 +- data/DB_PropExchange.dat | Bin 384 -> 384 bytes data/DB_Task.dat | Bin 6587 -> 7162 bytes data/DB_Task.json | 272 ++++++++++++++++++++++++---------- worldsrv/action_nian.go | 3 + worldsrv/taskmgr.go | 3 + xlsx/DB_Task.xlsx | Bin 23910 -> 24783 bytes 9 files changed, 218 insertions(+), 99 deletions(-) diff --git a/common/constant.go b/common/constant.go index 77c53f7..a00af42 100644 --- a/common/constant.go +++ b/common/constant.go @@ -700,6 +700,9 @@ const ( TaskTypeRankMatchWinTimes = 30 // 排位胜利次数 TaskTypeBuyPermit = 31 // 购买典藏通行证 TaskTypeBuyRedBag = 32 // 参与红包雨活动 + TaskTypeNianBossKill = 33 // 击杀年兽 + TaskTypeNianBossDamage = 34 // 年兽造成伤害 + TaskTypeNianSign = 35 // 年兽签到 ) const ( diff --git a/data/DB_NewYearRankReward.dat b/data/DB_NewYearRankReward.dat index 8eac736..e6f63dc 100644 --- a/data/DB_NewYearRankReward.dat +++ b/data/DB_NewYearRankReward.dat @@ -3,8 +3,8 @@ ""d" "d"" ""d -""c -"b" +"c" +""b ""a ""`   ""_ @@ -17,12 +17,12 @@ ""Z ""Y ""X -""W -""V +"W" +"V" ""U ""T ""S -"R" +""R ""Q ""P ""O @@ -32,8 +32,8 @@ ""K ""J ""I -  ""H -!!"G" +  "H" +!!""G """"F ##""E $$""D @@ -42,19 +42,19 @@ ''""A ((""@ )""d" -*""d" +*"d"" +""d" -,""d --""c +,"d" +-"c" .""b /""a -0""` +0"`" 1 ""_ 2 ""^ 3 ""] 4 ""\ -5 ""[ +5 "[" 6""Z 7""Y 8""X @@ -64,21 +64,21 @@ <""T =""S >""R -?""Q +?"Q" @""P A""O B""N C""M -D""L +D"L" E""K F""J G""I -H ""H +H "H" I!""G J"""F K#""E -L$"D" +L$""D M%""C N&""B O'""A -P("@" \ No newline at end of file +P(""@ \ No newline at end of file diff --git a/data/DB_PigBank_Diamond.dat b/data/DB_PigBank_Diamond.dat index 79630b9..735a0e1 100644 --- a/data/DB_PigBank_Diamond.dat +++ b/data/DB_PigBank_Diamond.dat @@ -1,4 +1,4 @@  (8@;PdX`c < ((2Ÿ28@;JƸJPdX` -?/ 2(22Ÿ8@;JƸJPdX` \ No newline at end of file +?/ 2(2Ÿ28@;JƸJPdX` \ No newline at end of file diff --git a/data/DB_PropExchange.dat b/data/DB_PropExchange.dat index cf52872223abce48cb51e5da35a90222a43eaf30..2fefdeac082321b70e420d66dda69c07cd775232 100644 GIT binary patch literal 384 zcmd-w<6snElw#w!+{O&1uR!UmQ2H8_z7C?5I5-yevI!h$vE|a^U;?YZ36;MErEf#& z8))joIUweP#ew#r>x0>gVjq&bVD15%ufz#e!py}$TL=JWLOeA9 literal 384 zcmd-w<6snElw#w!+{O&1uR!UmQ2H8_z7C?5I5-yevI!h$vE|a^U;?YZ0hPZArEfv$ z+i2>;IUwfavIk}kSRc?mDE0#RDCR41g5A-u_7MwLEC&l-hr S@hCgTBA`dVFmo}`76Jfc0z5SU diff --git a/data/DB_Task.dat b/data/DB_Task.dat index e96629800e35b61ab435d98a8141cd2cacac5639..d7cb44773e03fc5289ed3172d836e0f8bc2d1ff2 100644 GIT binary patch delta 1587 zcmaKs%TE(Q9LKX1+UZ(gT9>{|h#(je6Ve5n7OJRtk|@E%e_;+LO7uqb&|-K=LJEum zzQQ9Ajgd#wVu}SN#KZ#%nvkfdfTXi+PhL0}86_q6eQkbX06);^iR@U)Fo%bdDnZKyTr2n@PZL3?jxx0q25Sc;=9R`@u;Z&KK}H z_$y;N8QXel!3krFyvi#oy1}pNsLYI;3a$hVp3a>Ob(^`Ly3i6%2~bKS&oir zgEq_a=fHaeb2YqEibkcb;FYVW`5J1Lrtc+ZACbqe+|)+}4u!zaH*vfVd_XWy;}DpG z^t8sKccqz#=wfu9m(Oh9ltT+xK~S%Oo$*+=G&qrnOed#Cle1$aI3Qk1b@q{HD=h$c z=}|ICNxF$zu!^8T<0xVd?64o@>hVpRPuQbsT_-T zq1?>cBkk=ZFfUft)RfVr!TXLK?q+%}b^Q(juh~!dFM`hq7Hak@m%4gM_b{2BW0xlt z7@;fi`EfE87G3F2;?5kkmhR7+X&b>81fj-uJd4dQ>s))j{qZrO2Yf})tPz^o>9YoF z(hVAEg9$@=6b$r&bp$OM(4qvzUD97xv5T%2s?cu;9?pikGn@XZRLtKCz9T4PBWp5b zu#uAfy{F9wejr$+L9O!SI%Cq4fJlPR*>TX4OB7EUPcO{|g4S$sl^Wi^%zpZy`@klG zwrq5@npR#pAJ{_Bo(*=Z;XK8>e4yngf{tvoS4{&2eF|(N=+wYA)yQ0GTJe7Q2S$sk ALBV3_A};OzE?o)*5fowtq118^ ze1IepQ1MYESy-Y_f(x-WZJ}CSSY33IcCQ;ZdfS7~j&~e?_D5f3d~DwzG>B;4`DNcN+W}(!yS&-@Ni}rhKT|P$Yi< DXs84$ diff --git a/data/DB_Task.json b/data/DB_Task.json index 1d61204..1c53401 100644 --- a/data/DB_Task.json +++ b/data/DB_Task.json @@ -1239,9 +1239,9 @@ "Id": 13001, "Order": 1, "Name": "年兽活动", - "Des": "领取转盘签到奖励", + "Des": "领取年兽签到奖励", "ActivityType": 8, - "TaskType": 17, + "TaskType": 35, "TargetTimes": 1, "FinishTimes": 1, "Award": { @@ -1265,24 +1265,7 @@ "Id": 13003, "Order": 3, "Name": "年兽活动", - "Des": "购买任意金币1次", - "ActivityType": 8, - "TaskType": 2, - "TargetTimes": 1, - "FinishTimes": 1, - "Award": { - "50014": 10 - }, - "Position": [ - 0, - 1 - ] - }, - { - "Id": 13004, - "Order": 4, - "Name": "年兽活动", - "Des": "购买任意存钱罐1次", + "Des": "购买1次任意存钱罐", "ActivityType": 8, "TaskType": 22, "TargetTimes": 1, @@ -1292,83 +1275,93 @@ } }, { - "Id": 13005, - "Order": 5, + "Id": 13004, + "Order": 4, "Name": "年兽活动", - "Des": "参与大众场对局获得胜利3次", + "Des": "游戏Tienlen比赛场5次", "ActivityType": 8, - "TaskType": 23, - "TargetTimes": 3, + "TaskType": 25, + "TargetTimes": 1, "FinishTimes": 1, "Award": { "50014": 10 }, "GameType": 1 }, + { + "Id": 13005, + "Order": 5, + "Name": "年兽活动", + "Des": "游戏十三水10次", + "ActivityType": 8, + "TaskType": 5, + "TargetTimes": 10, + "FinishTimes": 1, + "Award": { + "50014": 10 + }, + "GameType": 2 + }, { "Id": 13006, "Order": 6, "Name": "年兽活动", - "Des": "参与排位赛获得胜利3次", + "Des": "今日累计赢取1M金币", "ActivityType": 8, - "TaskType": 30, - "TargetTimes": 3, + "TaskType": 8, + "TargetTimes": 1000000, "FinishTimes": 1, "Award": { "50014": 10 - }, - "GameType": 1 + } }, { "Id": 13007, "Order": 7, "Name": "年兽活动", - "Des": "邀请好友进行私人桌对局1次", + "Des": "今日消耗100钻石", "ActivityType": 8, - "TaskType": 24, - "TargetTimes": 1, + "TaskType": 27, + "TargetTimes": 100, "FinishTimes": 1, "Award": { "50014": 10 - }, - "GameType": 1 + } }, { "Id": 13008, "Order": 8, "Name": "年兽活动", - "Des": "成功参与比赛场3次", + "Des": "今日累计赢取5M金币", "ActivityType": 8, - "TaskType": 25, - "TargetTimes": 3, + "TaskType": 8, + "TargetTimes": 5000000, "FinishTimes": 1, "Award": { "50014": 10 - }, - "GameType": 1 + } }, { "Id": 13009, "Order": 9, "Name": "年兽活动", - "Des": "比赛场获得前十名1次", + "Des": "今日累计赢取10M金币", "ActivityType": 8, - "TaskType": 26, - "TargetTimes": 1, + "TaskType": 8, + "TargetTimes": 10000000, "FinishTimes": 1, "Award": { "50014": 10 - }, - "GameType": 1 + } }, { "Id": 13010, "Order": 10, "Name": "年兽活动", - "Des": "今日累计消耗100钻石", + "Des": "今日累计赢取20M金币", "ActivityType": 8, - "TaskType": 27, - "TargetTimes": 100, + "TaskType": 8, + "TargetTimes": 20000000, "FinishTimes": 1, "Award": { "50014": 10 @@ -1385,20 +1378,16 @@ "FinishTimes": 1, "Award": { "50014": 10 - }, - "Position": [ - 1, - 1 - ] + } }, { "Id": 13012, "Order": 12, "Name": "年兽活动", - "Des": "累计领取转盘签到奖励7天", - "ActivityType": 9, - "TaskType": 17, - "TargetTimes": 7, + "Des": "今日消耗500钻石", + "ActivityType": 8, + "TaskType": 27, + "TargetTimes": 500, "FinishTimes": 1, "Award": { "50014": 10 @@ -1408,6 +1397,19 @@ "Id": 13013, "Order": 13, "Name": "年兽活动", + "Des": "今日充值1.99$", + "ActivityType": 8, + "TaskType": 7, + "TargetTimes": 199, + "FinishTimes": 1, + "Award": { + "50015": 10 + } + }, + { + "Id": 13014, + "Order": 14, + "Name": "年兽活动", "Des": "参与红包雨活动1次", "ActivityType": 8, "TaskType": 32, @@ -1418,52 +1420,160 @@ } }, { - "Id": 13014, - "Order": 14, + "Id": 13015, + "Order": 15, "Name": "年兽活动", - "Des": "累计充值$9.99", + "Des": "成功对年兽造成伤害1000000点", + "ActivityType": 8, + "TaskType": 34, + "TargetTimes": 1000000, + "FinishTimes": 1, + "Award": { + "50015": 10 + } + }, + { + "Id": 13016, + "Order": 16, + "Name": "年兽活动", + "Des": "成功对年兽造成伤害10000000点", + "ActivityType": 8, + "TaskType": 34, + "TargetTimes": 10000000, + "FinishTimes": 1, + "Award": { + "50015": 10 + } + }, + { + "Id": 13017, + "Order": 17, + "Name": "年兽活动", + "Des": "累计充值9.99$", "ActivityType": 9, "TaskType": 7, "TargetTimes": 999, "FinishTimes": 1, "Award": { "50015": 10 - }, - "Position": [ - 1, - 1 - ] + } }, { - "Id": 13015, - "Order": 15, + "Id": 13018, + "Order": 18, "Name": "年兽活动", - "Des": "累计充值$19.99", + "Des": "累计充值19.99$", "ActivityType": 9, "TaskType": 7, "TargetTimes": 1999, "FinishTimes": 1, "Award": { "50015": 10 - }, - "Position": [ - 1, - 1 - ] + } }, { - "Id": 13016, - "Order": 16, + "Id": 13019, + "Order": 19, "Name": "年兽活动", - "Des": "累计赚取10B金币", + "Des": "累计充值59.99$", "ActivityType": 9, - "TaskType": 11, - "TargetTimes": 10000000000, + "TaskType": 7, + "TargetTimes": 5999, "FinishTimes": 1, "Award": { - "50015": 10 - }, - "GameType": 1 + "50014": 10 + } + }, + { + "Id": 13020, + "Order": 20, + "Name": "年兽活动", + "Des": "累计充值99.99$", + "ActivityType": 9, + "TaskType": 7, + "TargetTimes": 9999, + "FinishTimes": 1, + "Award": { + "50014": 10 + } + }, + { + "Id": 13021, + "Order": 21, + "Name": "年兽活动", + "Des": "成功击杀1只年兽", + "ActivityType": 9, + "TaskType": 33, + "TargetTimes": 1, + "FinishTimes": 1, + "Award": { + "50014": 10 + } + }, + { + "Id": 13022, + "Order": 22, + "Name": "年兽活动", + "Des": "成功击杀2只年兽", + "ActivityType": 9, + "TaskType": 33, + "TargetTimes": 2, + "FinishTimes": 1, + "Award": { + "50014": 10 + } + }, + { + "Id": 13023, + "Order": 23, + "Name": "年兽活动", + "Des": "成功击杀3只年兽", + "ActivityType": 9, + "TaskType": 33, + "TargetTimes": 3, + "FinishTimes": 1, + "Award": { + "50014": 10 + } + }, + { + "Id": 13024, + "Order": 24, + "Name": "年兽活动", + "Des": "成功击杀5只年兽", + "ActivityType": 9, + "TaskType": 33, + "TargetTimes": 5, + "FinishTimes": 1, + "Award": { + "50014": 10 + } + }, + { + "Id": 13025, + "Order": 25, + "Name": "年兽活动", + "Des": "成功击杀8只年兽", + "ActivityType": 9, + "TaskType": 33, + "TargetTimes": 8, + "FinishTimes": 1, + "Award": { + "50014": 10 + } + }, + { + "Id": 13026, + "Order": 26, + "Name": "年兽活动", + "Des": "成功击杀10只年兽", + "ActivityType": 9, + "TaskType": 33, + "TargetTimes": 10, + "FinishTimes": 1, + "Award": { + "50014": 10 + } } ] } \ No newline at end of file diff --git a/worldsrv/action_nian.go b/worldsrv/action_nian.go index 3da7775..30b65f7 100644 --- a/worldsrv/action_nian.go +++ b/worldsrv/action_nian.go @@ -415,6 +415,7 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) } } } + TaskSubjectSingleton.Touch(common.TaskTypeNianBossKill, &TaskData{SnId: p.SnId, Num: 1}) // BOSS死亡 } items = append(items, &model.Item{ @@ -444,6 +445,7 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) } pack.BuffCount = p.WelfData.NianData.BuffCount p.SendToClient(int(activity.NianPacketID_PACKET_SCNianAttackData), pack) + TaskSubjectSingleton.Touch(common.TaskTypeNianBossDamage, &TaskData{SnId: p.SnId, Num: AttackHp}) // 对年兽造成伤害 } return nil } @@ -539,6 +541,7 @@ func CSNianSignAward(s *netlib.Session, packetid int, data interface{}, sid int6 Remark: "年兽活动-领取签到奖励获得", }) p.SendToClient(int(activity.NianPacketID_PACKET_SCNianSignAward), pack) + TaskSubjectSingleton.Touch(common.TaskTypeNianSign, &TaskData{SnId: p.SnId, Num: 1}) } return nil } diff --git a/worldsrv/taskmgr.go b/worldsrv/taskmgr.go index 356aac8..0b6d175 100644 --- a/worldsrv/taskmgr.go +++ b/worldsrv/taskmgr.go @@ -313,4 +313,7 @@ func init() { TaskSubjectSingleton.Attach(common.TaskTypeRankMatchWinTimes, taskHandle) TaskSubjectSingleton.Attach(common.TaskTypeBuyPermit, taskHandle) TaskSubjectSingleton.Attach(common.TaskTypeBuyRedBag, taskHandle) + TaskSubjectSingleton.Attach(common.TaskTypeNianBossKill, taskHandle) + TaskSubjectSingleton.Attach(common.TaskTypeNianBossDamage, taskHandle) + TaskSubjectSingleton.Attach(common.TaskTypeNianSign, taskHandle) } diff --git a/xlsx/DB_Task.xlsx b/xlsx/DB_Task.xlsx index d7d8acfc13a375c7770360c0fdd4e2b3166149b9..f63c6b1e67fa3983ca181dce3899d0ae55f0acb1 100644 GIT binary patch delta 17854 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%0DHG1q=OMiZh+--t+Yh4!o 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
t8!2_oy6(@1nR3Wx63I#&eA6?BO ze}x|mnyQQWM!=qxm&ixtGLuyF${NZbIivBSa>VYC4}BcM#L4{b_dT8ccn@LE3vadIdd}-5js@}SPs%{MprJ*`=QS8y zE=Ps8E7Qkki;v)~#bdu}0M6Wd*!AZ_EZ8)kBRKz7%KSVOBgC20ry}CEX*K`&k8{6O zS#D5~@PeF>4k5SqEML9uPI@Yq?1|bPVF$R8yl8_a$`9)&6coGoyxcGM`tB57uA%fY zvjql57@cmdZl36VhlKCZwQuG!uL}iFVh46@x2`rjOzI^2KxiRuw5QXUkLg-R*{*57;GzhCm!0g0O<;NyOKAz9M>7}E>^+Wov|>K2=T_eWi5)kJ2J+MAC1OtI0)xRCB!~{i%%3% z2*9eY(+~&7dcBA#5F!4oNc~DZEVT&b`L!M`4q-wez6S0(d@%SU_OBuJqB-SltWdaP z&Rv%vSle>U`ae60jg_m6z58o<#oxN$JqJd`lWA^a`K9h)8GXf*V*YE#9}IjJvgo@) z)eanFjy5X0f6M45kh$Fg2TRxe_8uGl+BgSeI3#^g->J?g3MWvn%)uN4@=NY`6a0Pp zp6b*$S2l`c*rA4aCI8=Ijq_%jrC!wf@V5Mfvcb&;ANx)BB@Y*CKU{CLu_x@IdU*Nk zv)bWXPq_h?{oM#yU6s2y^7h_Mfx)+Thp)>x8?^MwKg}ckdvd-!3XF_>*Qz&fY1+n< zaaLUZJldcPMu0g?p*hyz3?zmL(DLCnyi%iqzT{2@jZIA_Z` NIUrVmO(Ghk6#zB8QKkR@ delta 16990 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 AMgRZ+ From d47ee74e2cf8250f9663c44eb4973c2cb88b68d7 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Fri, 3 Jan 2025 10:46:05 +0800 Subject: [PATCH 10/47] =?UTF-8?q?modify=20=E5=88=A0=E9=99=A4=E7=BA=A2?= =?UTF-8?q?=E5=8C=85=E6=B5=8B=E8=AF=95=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/etcd.go | 151 ----------------------------------------------- 1 file changed, 151 deletions(-) diff --git a/worldsrv/etcd.go b/worldsrv/etcd.go index c488bbf..4bd8f42 100644 --- a/worldsrv/etcd.go +++ b/worldsrv/etcd.go @@ -117,157 +117,6 @@ func init() { etcd.Register(etcd.KeyRedPacket, webapi.RedPacketConfig{}, platformConfigEvent) // 累计消耗活动配置 etcd.Register(etcd.KeyActConsume, webapi.ConsumeConfig{}, platformConfigEvent) - - WelfareMgrSington.UpdateRedPacket(&webapi.RedPacketConfig{ - Platform: "1", - List: []*webapi.RedPacketInfo{ - { - Id: 1, - On: 1, - StartHMS: 90000, - EndHMS: 100000, - StayTs: 0, - MaxCount: 100, - LessCount: 5, - ItemId: 100001, - TotalNum: 100000, - RedList: []*webapi.RedInfo{ - { - Num: 1, - Rate: 50, - }, - { - Num: 10, - Rate: 10, - }, - { - Num: 20, - Rate: 10, - }, - { - Num: 30, - Rate: 10, - }, - }, - }, - { - Id: 2, - On: 1, - StartHMS: 100000, - EndHMS: 120000, - StayTs: 30, - MaxCount: 10000, - LessCount: 5, - ItemId: 100001, - TotalNum: 100000, - RedList: []*webapi.RedInfo{ - { - Num: 1, - Rate: 50, - }, - { - Num: 10, - Rate: 10, - }, - { - Num: 20, - Rate: 10, - }, - { - Num: 30, - Rate: 10, - }, - }, - }, - { - Id: 3, - On: 1, - StartHMS: 120000, - EndHMS: 150000, - StayTs: 0, - MaxCount: 10000, - LessCount: 5, - ItemId: 100001, - TotalNum: 100000, - RedList: []*webapi.RedInfo{ - { - Num: 1, - Rate: 50, - }, - { - Num: 10, - Rate: 10, - }, - { - Num: 20, - Rate: 10, - }, - { - Num: 30, - Rate: 10, - }, - }, - }, - { - Id: 4, - On: 1, - StartHMS: 150000, - EndHMS: 160000, - StayTs: 0, - MaxCount: 10000, - LessCount: 5, - ItemId: 100001, - TotalNum: 100000, - RedList: []*webapi.RedInfo{ - { - Num: 1, - Rate: 50, - }, - { - Num: 10, - Rate: 10, - }, - { - Num: 20, - Rate: 10, - }, - { - Num: 30, - Rate: 10, - }, - }, - }, - { - Id: 5, - On: 1, - StartHMS: 160000, - EndHMS: 180000, - StayTs: 0, - MaxCount: 10000, - LessCount: 5, - ItemId: 100001, - TotalNum: 100000, - RedList: []*webapi.RedInfo{ - { - Num: 1, - Rate: 50, - }, - { - Num: 10, - Rate: 10, - }, - { - Num: 20, - Rate: 10, - }, - { - Num: 30, - Rate: 10, - }, - }, - }, - }, - }, false) } func platformConfigEvent(ctx context.Context, completeKey string, isInit bool, event *clientv3.Event, data interface{}) { From c1f33de1d5f7b0d27b8326750b5f6179c2fe7afb Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Fri, 3 Jan 2025 11:45:45 +0800 Subject: [PATCH 11/47] =?UTF-8?q?add=20=E6=B7=BB=E5=8A=A0=E6=97=A5?= =?UTF-8?q?=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/scene.go | 1 + 1 file changed, 1 insertion(+) diff --git a/worldsrv/scene.go b/worldsrv/scene.go index c8e81e9..059fedc 100644 --- a/worldsrv/scene.go +++ b/worldsrv/scene.go @@ -364,6 +364,7 @@ func (this *Scene) PlayerEnter(p *Player, pos int, ischangeroom bool) bool { data, err := p.MarshalData() if err != nil { logger.Logger.Errorf("Scene PlayerEnter MarshalData failed, err:%v", err) + logger.Logger.Tracef("Scene PlayerEnter MarshalData failed, %+v", *p.PlayerData) return false } From d671697496b28c7eb361b8ab23acd0164dcc2ae0 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Fri, 3 Jan 2025 13:39:25 +0800 Subject: [PATCH 12/47] =?UTF-8?q?add=20=E6=B7=BB=E5=8A=A0=E6=97=A5?= =?UTF-8?q?=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/scene.go | 1 - 1 file changed, 1 deletion(-) diff --git a/worldsrv/scene.go b/worldsrv/scene.go index 059fedc..c8e81e9 100644 --- a/worldsrv/scene.go +++ b/worldsrv/scene.go @@ -364,7 +364,6 @@ func (this *Scene) PlayerEnter(p *Player, pos int, ischangeroom bool) bool { data, err := p.MarshalData() if err != nil { logger.Logger.Errorf("Scene PlayerEnter MarshalData failed, err:%v", err) - logger.Logger.Tracef("Scene PlayerEnter MarshalData failed, %+v", *p.PlayerData) return false } From 03ac53b7e87b030b590fada4d63d1f10608542ea Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Fri, 3 Jan 2025 13:56:50 +0800 Subject: [PATCH 13/47] =?UTF-8?q?fix=20=E6=95=B0=E6=8D=AE=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/player.go | 8 ++++++++ worldsrv/welfmgr.go | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/worldsrv/player.go b/worldsrv/player.go index 28e3644..4973b60 100644 --- a/worldsrv/player.go +++ b/worldsrv/player.go @@ -176,6 +176,14 @@ func (this *Player) init() bool { this.GuideData = make(map[int32]int32) } this.InitRolesAndPets() + // 数据修复 + if this.PlayerData != nil && this.PlayerData.WelfData != nil { + for k, v := range this.PlayerData.WelfData.Task { + if v == nil { + delete(this.PlayerData.WelfData.Task, k) + } + } + } return true } diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index 3f34f50..593a925 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -2228,7 +2228,7 @@ func (this *WelfareMgr) ClearActivityNianData(p *Player) { for id, _ := range p.WelfData.Task { data := srvdata.PBDB_TaskMgr.GetData(id) if data.ActivityType == common.TaskActivityTypeNianEveryDay || data.ActivityType == common.TaskActivityTypeNian { - p.WelfData.Task[id] = nil + delete(p.WelfData.Task, id) } } } From 8a0502302fbf838c4e489c89ad778f19e64298ef Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Fri, 3 Jan 2025 14:09:43 +0800 Subject: [PATCH 14/47] =?UTF-8?q?=E5=B9=B4=E5=85=BD=E6=8E=92=E8=A1=8C?= =?UTF-8?q?=E6=A6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dbproxy/mq/c_rank.go | 16 ++ dbproxy/svc/l_ranknian.go | 107 +++++++++ model/player.go | 2 + model/rank.go | 51 +++++ protocol/activity/nian.pb.go | 426 ++++++++++++++++++++++------------- protocol/activity/nian.proto | 9 + ranksrv/rank/niandamage.go | 22 ++ ranksrv/rank/nianluck.go | 22 ++ worldsrv/action_nian.go | 92 ++++++-- worldsrv/action_shop.go | 89 ++++++++ worldsrv/mq.go | 1 + worldsrv/player.go | 4 + worldsrv/shopmgr.go | 20 +- worldsrv/taskmgr.go | 4 +- worldsrv/trascate_webapi.go | 1 + worldsrv/welfmgr.go | 4 +- xlsx/DB_NewYearActivity.xlsx | Bin 11934 -> 11947 bytes 17 files changed, 684 insertions(+), 186 deletions(-) create mode 100644 dbproxy/svc/l_ranknian.go create mode 100644 ranksrv/rank/niandamage.go create mode 100644 ranksrv/rank/nianluck.go diff --git a/dbproxy/mq/c_rank.go b/dbproxy/mq/c_rank.go index ab0af9f..42110c3 100644 --- a/dbproxy/mq/c_rank.go +++ b/dbproxy/mq/c_rank.go @@ -76,4 +76,20 @@ func init() { return }, }) + //年兽排行榜 + mq.RegisterHandler(&mq.RegisterHandlerParam{ + Name: model.MQRankNian, + Data: &model.NianInfo{}, + Handler: func(data interface{}) (err error) { + log, ok := data.(*model.NianInfo) + if !ok { + return + } + err = svc.RankNianUpsert(log) + if err != nil { + logger.Logger.Errorf("RankNianUpsert err: %v", err) + } + return + }, + }) } diff --git a/dbproxy/svc/l_ranknian.go b/dbproxy/svc/l_ranknian.go new file mode 100644 index 0000000..c655ba1 --- /dev/null +++ b/dbproxy/svc/l_ranknian.go @@ -0,0 +1,107 @@ +package svc + +import ( + "errors" + "github.com/globalsign/mgo" + "github.com/globalsign/mgo/bson" + "mongo.games.com/game/dbproxy/mongo" + "mongo.games.com/game/model" + "mongo.games.com/goserver/core/logger" + "net/rpc" +) + +var ( + RankNianDBName = "log" + RankNianCollName = "log_ranknian" + RankNianColError = errors.New("RankNian collection open failed") +) + +func RankNianCollection(plt string) *mongo.Collection { + s := mongo.MgoSessionMgrSington.GetPltMgoSession(plt, RankNianDBName) + if s != nil { + c, first := s.DB().C(RankNianCollName) + if first { + c.EnsureIndex(mgo.Index{Key: []string{"snid"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"-luck"}, Background: true, Sparse: true}) + c.EnsureIndex(mgo.Index{Key: []string{"-damage"}, Background: true, Sparse: true}) + } + return c + } + return nil +} + +func RankNianUpsert(args *model.NianInfo) error { + cc := RankNianCollection(args.Platform) + if cc == nil { + return RankNianColError + } + update := bson.M{ + "$set": bson.M{ + "platform": args.Platform, + "name": args.Name, + "damage": args.Damage, + "modid": args.ModId, + "ts": args.Ts, + }, + } + if args.Luck != 0 { + update["$set"].(bson.M)["luck"] = args.Luck + } + if args.LuckTime != 0 { + update["$set"].(bson.M)["lucktime"] = args.LuckTime + } + _, err := cc.Upsert( + bson.M{"snid": args.SnId}, + update, + ) + if err != nil && !errors.Is(err, mgo.ErrNotFound) { + logger.Logger.Error("RankNianSvc.Upsert is err: ", err) + return err + } + return nil +} + +type RankNianSvc struct { +} + +func (svc *RankNianSvc) Upsert(args *model.NianInfo, ret *bool) error { + err := RankNianUpsert(args) + if err != nil { + return err + } + *ret = true + return nil +} + +// 幸运榜 +func (svc *RankNianSvc) LuckFind(args *model.FindNianListArgs, ret *model.FindNianListReply) error { + fc := RankNianCollection(args.Platform) + if fc == nil { + return RankNianColError + } + + err := fc.Find(bson.M{}).Sort("-luck").Limit(40).All(&ret.List) + if err != nil && !errors.Is(err, mgo.ErrNotFound) { + logger.Logger.Error("QueryMatchSeason is err: ", err) + return err + } + return nil +} + +// 伤害榜 +func (svc *RankNianSvc) DamageFind(args *model.FindNianListArgs, ret *model.FindNianListReply) error { + fc := RankNianCollection(args.Platform) + if fc == nil { + return RankNianColError + } + + err := fc.Find(bson.M{}).Sort("-damage").Limit(40).All(&ret.List) + if err != nil && !errors.Is(err, mgo.ErrNotFound) { + logger.Logger.Error("QueryMatchSeason is err: ", err) + return err + } + return nil +} +func init() { + rpc.Register(new(RankNianSvc)) +} diff --git a/model/player.go b/model/player.go index eadb070..3b1d44c 100644 --- a/model/player.go +++ b/model/player.go @@ -591,6 +591,7 @@ func NewWelfareData() *WelfareData { RedPacket: make(map[int64]*RedPacketData), NianData: &NianData{ OtherAwardNum: make(map[int32]int32), + GiftShop: make(map[int32]int32), }, } } @@ -697,6 +698,7 @@ type NianData struct { OtherAwardNum map[int32]int32 //奖励掉落数量 AttackMaxHp int64 //单次攻击最大血量 AttackSumHp int64 //攻击总伤害 + GiftShop map[int32]int32 //购买每日礼包记录 } func ConvertPlayerDataToWebData(param *WebPlayerDataParam) *webapi.PlayerData { diff --git a/model/rank.go b/model/rank.go index 7fcdd75..469bd26 100644 --- a/model/rank.go +++ b/model/rank.go @@ -12,6 +12,7 @@ const ( MQRankPlayerInvite = "log_rankplayerinvite" MQRankPlayerLevel = "log_rankplayerlevel" MQRankPlayerPermit = "log_rankplayerpermit" // 赛季通行证排行榜 + MQRankNian = "log_ranknian" //年兽排行榜 ) // 排行榜类型 @@ -330,3 +331,53 @@ func SaveRankInvite(args *RankInvite) error { } return nil } + +// 年兽排行榜 +type NianInfo struct { + Platform string + SnId int32 + Name string + Luck int64 + Damage int64 + ModId int32 //头像 + LuckTime int64 //幸运值更新时间 + Ts int64 //更新时间 +} + +type FindNianListArgs struct { + Platform string + StartTs int64 +} +type FindNianListReply struct { + List []*NianInfo +} + +func FindLuckNianRankList(args *FindNianListArgs) (*FindNianListReply, error) { + if rpcCli == nil { + logger.Logger.Error("model.FindLuckNianList rpcCli == nil") + return nil, nil + } + + ret := new(FindNianListReply) + err := rpcCli.CallWithTimeout("RankNianSvc.LuckFind", args, ret, time.Second*30) + if err != nil { + logger.Logger.Error("GetNianLuckRankList error:", err) + return ret, err + } + return ret, nil +} + +func FindDamageNianRankList(args *FindNianListArgs) (*FindNianListReply, error) { + if rpcCli == nil { + logger.Logger.Error("model.FindNianList rpcCli == nil") + return nil, nil + } + + ret := new(FindNianListReply) + err := rpcCli.CallWithTimeout("RankNianSvc.DamageFind", args, ret, time.Second*30) + if err != nil { + logger.Logger.Error("GetNianDamageRankList error:", err) + return ret, err + } + return ret, nil +} diff --git a/protocol/activity/nian.pb.go b/protocol/activity/nian.pb.go index 5c97118..a58715e 100644 --- a/protocol/activity/nian.pb.go +++ b/protocol/activity/nian.pb.go @@ -154,6 +154,9 @@ type SCNianData struct { BuffCount int64 `protobuf:"varint,7,opt,name=BuffCount,proto3" json:"BuffCount,omitempty"` //Buff剩余次数 BuffStatus bool `protobuf:"varint,8,opt,name=BuffStatus,proto3" json:"BuffStatus,omitempty"` //Buff领取状态 SignAwardTime int64 `protobuf:"varint,9,opt,name=SignAwardTime,proto3" json:"SignAwardTime,omitempty"` //签到领取时间 0-未领取 + BuffStartTime int64 `protobuf:"varint,10,opt,name=BuffStartTime,proto3" json:"BuffStartTime,omitempty"` //Buff开始领取时间 + BuffEndTime int64 `protobuf:"varint,11,opt,name=BuffEndTime,proto3" json:"BuffEndTime,omitempty"` //Buff结束领取时间 + ShopData []*ShopData `protobuf:"bytes,12,rep,name=shopData,proto3" json:"shopData,omitempty"` //购买礼包数量 } func (x *SCNianData) Reset() { @@ -251,6 +254,90 @@ func (x *SCNianData) GetSignAwardTime() int64 { return 0 } +func (x *SCNianData) GetBuffStartTime() int64 { + if x != nil { + return x.BuffStartTime + } + return 0 +} + +func (x *SCNianData) GetBuffEndTime() int64 { + if x != nil { + return x.BuffEndTime + } + return 0 +} + +func (x *SCNianData) GetShopData() []*ShopData { + if x != nil { + return x.ShopData + } + return nil +} + +type ShopData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ShopId int32 `protobuf:"varint,1,opt,name=ShopId,proto3" json:"ShopId,omitempty"` //shopId + ShopNum int32 `protobuf:"varint,2,opt,name=ShopNum,proto3" json:"ShopNum,omitempty"` //已购买次数 只保存有购买限制的礼包的数量 + MaxShopNum int32 `protobuf:"varint,3,opt,name=MaxShopNum,proto3" json:"MaxShopNum,omitempty"` //最大购买次数 0-无限制 +} + +func (x *ShopData) Reset() { + *x = ShopData{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_activity_nian_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ShopData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ShopData) ProtoMessage() {} + +func (x *ShopData) ProtoReflect() protoreflect.Message { + mi := &file_protocol_activity_nian_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ShopData.ProtoReflect.Descriptor instead. +func (*ShopData) Descriptor() ([]byte, []int) { + return file_protocol_activity_nian_proto_rawDescGZIP(), []int{2} +} + +func (x *ShopData) GetShopId() int32 { + if x != nil { + return x.ShopId + } + return 0 +} + +func (x *ShopData) GetShopNum() int32 { + if x != nil { + return x.ShopNum + } + return 0 +} + +func (x *ShopData) GetMaxShopNum() int32 { + if x != nil { + return x.MaxShopNum + } + return 0 +} + //贺春 //请求领取BUFF //PACKET_CSNianBuff @@ -263,7 +350,7 @@ type CSNianBuff struct { func (x *CSNianBuff) Reset() { *x = CSNianBuff{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_activity_nian_proto_msgTypes[2] + mi := &file_protocol_activity_nian_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -276,7 +363,7 @@ func (x *CSNianBuff) String() string { func (*CSNianBuff) ProtoMessage() {} func (x *CSNianBuff) ProtoReflect() protoreflect.Message { - mi := &file_protocol_activity_nian_proto_msgTypes[2] + mi := &file_protocol_activity_nian_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -289,7 +376,7 @@ func (x *CSNianBuff) ProtoReflect() protoreflect.Message { // Deprecated: Use CSNianBuff.ProtoReflect.Descriptor instead. func (*CSNianBuff) Descriptor() ([]byte, []int) { - return file_protocol_activity_nian_proto_rawDescGZIP(), []int{2} + return file_protocol_activity_nian_proto_rawDescGZIP(), []int{3} } //PACKET_SCNianBuff @@ -304,7 +391,7 @@ type SCNianBuff struct { func (x *SCNianBuff) Reset() { *x = SCNianBuff{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_activity_nian_proto_msgTypes[3] + mi := &file_protocol_activity_nian_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -317,7 +404,7 @@ func (x *SCNianBuff) String() string { func (*SCNianBuff) ProtoMessage() {} func (x *SCNianBuff) ProtoReflect() protoreflect.Message { - mi := &file_protocol_activity_nian_proto_msgTypes[3] + mi := &file_protocol_activity_nian_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -330,7 +417,7 @@ func (x *SCNianBuff) ProtoReflect() protoreflect.Message { // Deprecated: Use SCNianBuff.ProtoReflect.Descriptor instead. func (*SCNianBuff) Descriptor() ([]byte, []int) { - return file_protocol_activity_nian_proto_rawDescGZIP(), []int{3} + return file_protocol_activity_nian_proto_rawDescGZIP(), []int{4} } func (x *SCNianBuff) GetBuffCount() int64 { @@ -352,7 +439,7 @@ type NianRankData struct { func (x *NianRankData) Reset() { *x = NianRankData{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_activity_nian_proto_msgTypes[4] + mi := &file_protocol_activity_nian_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -365,7 +452,7 @@ func (x *NianRankData) String() string { func (*NianRankData) ProtoMessage() {} func (x *NianRankData) ProtoReflect() protoreflect.Message { - mi := &file_protocol_activity_nian_proto_msgTypes[4] + mi := &file_protocol_activity_nian_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -378,7 +465,7 @@ func (x *NianRankData) ProtoReflect() protoreflect.Message { // Deprecated: Use NianRankData.ProtoReflect.Descriptor instead. func (*NianRankData) Descriptor() ([]byte, []int) { - return file_protocol_activity_nian_proto_rawDescGZIP(), []int{4} + return file_protocol_activity_nian_proto_rawDescGZIP(), []int{5} } func (x *NianRankData) GetTypeId() int32 { @@ -407,7 +494,7 @@ type NianRankInfo struct { func (x *NianRankInfo) Reset() { *x = NianRankInfo{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_activity_nian_proto_msgTypes[5] + mi := &file_protocol_activity_nian_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -420,7 +507,7 @@ func (x *NianRankInfo) String() string { func (*NianRankInfo) ProtoMessage() {} func (x *NianRankInfo) ProtoReflect() protoreflect.Message { - mi := &file_protocol_activity_nian_proto_msgTypes[5] + mi := &file_protocol_activity_nian_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -433,7 +520,7 @@ func (x *NianRankInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use NianRankInfo.ProtoReflect.Descriptor instead. func (*NianRankInfo) Descriptor() ([]byte, []int) { - return file_protocol_activity_nian_proto_rawDescGZIP(), []int{5} + return file_protocol_activity_nian_proto_rawDescGZIP(), []int{6} } func (x *NianRankInfo) GetRankId() int32 { @@ -462,7 +549,7 @@ type RankAwardData struct { func (x *RankAwardData) Reset() { *x = RankAwardData{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_activity_nian_proto_msgTypes[6] + mi := &file_protocol_activity_nian_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -475,7 +562,7 @@ func (x *RankAwardData) String() string { func (*RankAwardData) ProtoMessage() {} func (x *RankAwardData) ProtoReflect() protoreflect.Message { - mi := &file_protocol_activity_nian_proto_msgTypes[6] + mi := &file_protocol_activity_nian_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -488,7 +575,7 @@ func (x *RankAwardData) ProtoReflect() protoreflect.Message { // Deprecated: Use RankAwardData.ProtoReflect.Descriptor instead. func (*RankAwardData) Descriptor() ([]byte, []int) { - return file_protocol_activity_nian_proto_rawDescGZIP(), []int{6} + return file_protocol_activity_nian_proto_rawDescGZIP(), []int{7} } func (x *RankAwardData) GetItemId() int32 { @@ -518,7 +605,7 @@ type CSNianAttack struct { func (x *CSNianAttack) Reset() { *x = CSNianAttack{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_activity_nian_proto_msgTypes[7] + mi := &file_protocol_activity_nian_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -531,7 +618,7 @@ func (x *CSNianAttack) String() string { func (*CSNianAttack) ProtoMessage() {} func (x *CSNianAttack) ProtoReflect() protoreflect.Message { - mi := &file_protocol_activity_nian_proto_msgTypes[7] + mi := &file_protocol_activity_nian_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -544,7 +631,7 @@ func (x *CSNianAttack) ProtoReflect() protoreflect.Message { // Deprecated: Use CSNianAttack.ProtoReflect.Descriptor instead. func (*CSNianAttack) Descriptor() ([]byte, []int) { - return file_protocol_activity_nian_proto_rawDescGZIP(), []int{7} + return file_protocol_activity_nian_proto_rawDescGZIP(), []int{8} } func (x *CSNianAttack) GetTypeId() int32 { @@ -574,7 +661,7 @@ type SCNianAttackData struct { func (x *SCNianAttackData) Reset() { *x = SCNianAttackData{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_activity_nian_proto_msgTypes[8] + mi := &file_protocol_activity_nian_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -587,7 +674,7 @@ func (x *SCNianAttackData) String() string { func (*SCNianAttackData) ProtoMessage() {} func (x *SCNianAttackData) ProtoReflect() protoreflect.Message { - mi := &file_protocol_activity_nian_proto_msgTypes[8] + mi := &file_protocol_activity_nian_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -600,7 +687,7 @@ func (x *SCNianAttackData) ProtoReflect() protoreflect.Message { // Deprecated: Use SCNianAttackData.ProtoReflect.Descriptor instead. func (*SCNianAttackData) Descriptor() ([]byte, []int) { - return file_protocol_activity_nian_proto_rawDescGZIP(), []int{8} + return file_protocol_activity_nian_proto_rawDescGZIP(), []int{9} } func (x *SCNianAttackData) GetTypeId() int32 { @@ -677,7 +764,7 @@ type CSNianSignAward struct { func (x *CSNianSignAward) Reset() { *x = CSNianSignAward{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_activity_nian_proto_msgTypes[9] + mi := &file_protocol_activity_nian_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -690,7 +777,7 @@ func (x *CSNianSignAward) String() string { func (*CSNianSignAward) ProtoMessage() {} func (x *CSNianSignAward) ProtoReflect() protoreflect.Message { - mi := &file_protocol_activity_nian_proto_msgTypes[9] + mi := &file_protocol_activity_nian_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -703,7 +790,7 @@ func (x *CSNianSignAward) ProtoReflect() protoreflect.Message { // Deprecated: Use CSNianSignAward.ProtoReflect.Descriptor instead. func (*CSNianSignAward) Descriptor() ([]byte, []int) { - return file_protocol_activity_nian_proto_rawDescGZIP(), []int{9} + return file_protocol_activity_nian_proto_rawDescGZIP(), []int{10} } //PACKET_SCNianSignAward @@ -719,7 +806,7 @@ type SCNianSignAward struct { func (x *SCNianSignAward) Reset() { *x = SCNianSignAward{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_activity_nian_proto_msgTypes[10] + mi := &file_protocol_activity_nian_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -732,7 +819,7 @@ func (x *SCNianSignAward) String() string { func (*SCNianSignAward) ProtoMessage() {} func (x *SCNianSignAward) ProtoReflect() protoreflect.Message { - mi := &file_protocol_activity_nian_proto_msgTypes[10] + mi := &file_protocol_activity_nian_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -745,7 +832,7 @@ func (x *SCNianSignAward) ProtoReflect() protoreflect.Message { // Deprecated: Use SCNianSignAward.ProtoReflect.Descriptor instead. func (*SCNianSignAward) Descriptor() ([]byte, []int) { - return file_protocol_activity_nian_proto_rawDescGZIP(), []int{10} + return file_protocol_activity_nian_proto_rawDescGZIP(), []int{11} } func (x *SCNianSignAward) GetSignAwardTime() int64 { @@ -775,7 +862,7 @@ type CSNianChange struct { func (x *CSNianChange) Reset() { *x = CSNianChange{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_activity_nian_proto_msgTypes[11] + mi := &file_protocol_activity_nian_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -788,7 +875,7 @@ func (x *CSNianChange) String() string { func (*CSNianChange) ProtoMessage() {} func (x *CSNianChange) ProtoReflect() protoreflect.Message { - mi := &file_protocol_activity_nian_proto_msgTypes[11] + mi := &file_protocol_activity_nian_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -801,7 +888,7 @@ func (x *CSNianChange) ProtoReflect() protoreflect.Message { // Deprecated: Use CSNianChange.ProtoReflect.Descriptor instead. func (*CSNianChange) Descriptor() ([]byte, []int) { - return file_protocol_activity_nian_proto_rawDescGZIP(), []int{11} + return file_protocol_activity_nian_proto_rawDescGZIP(), []int{12} } func (x *CSNianChange) GetNum() int32 { @@ -824,7 +911,7 @@ type SCNianChange struct { func (x *SCNianChange) Reset() { *x = SCNianChange{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_activity_nian_proto_msgTypes[12] + mi := &file_protocol_activity_nian_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -837,7 +924,7 @@ func (x *SCNianChange) String() string { func (*SCNianChange) ProtoMessage() {} func (x *SCNianChange) ProtoReflect() protoreflect.Message { - mi := &file_protocol_activity_nian_proto_msgTypes[12] + mi := &file_protocol_activity_nian_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -850,7 +937,7 @@ func (x *SCNianChange) ProtoReflect() protoreflect.Message { // Deprecated: Use SCNianChange.ProtoReflect.Descriptor instead. func (*SCNianChange) Descriptor() ([]byte, []int) { - return file_protocol_activity_nian_proto_rawDescGZIP(), []int{12} + return file_protocol_activity_nian_proto_rawDescGZIP(), []int{13} } func (x *SCNianChange) GetNum() int32 { @@ -873,7 +960,7 @@ var file_protocol_activity_nian_proto_rawDesc = []byte{ 0x0a, 0x1c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2f, 0x6e, 0x69, 0x61, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x22, 0x0c, 0x0a, 0x0a, 0x43, 0x53, 0x4e, 0x69, - 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x22, 0xd0, 0x02, 0x0a, 0x0a, 0x53, 0x43, 0x4e, 0x69, 0x61, + 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x22, 0xc8, 0x03, 0x0a, 0x0a, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x11, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, @@ -894,92 +981,105 @@ var file_protocol_activity_nian_proto_rawDesc = []byte{ 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x42, 0x75, 0x66, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x53, 0x69, 0x67, 0x6e, - 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x0c, 0x0a, 0x0a, 0x43, 0x53, 0x4e, - 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x22, 0x2a, 0x0a, 0x0a, 0x53, 0x43, 0x4e, 0x69, 0x61, - 0x6e, 0x42, 0x75, 0x66, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0x52, 0x0a, 0x0c, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x04, 0x44, - 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x69, 0x74, 0x79, 0x2e, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x55, 0x0a, 0x0c, 0x4e, 0x69, 0x61, 0x6e, 0x52, - 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x61, 0x6e, 0x6b, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x64, 0x12, - 0x2d, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, - 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, 0x41, - 0x0a, 0x0d, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, - 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, - 0x6d, 0x22, 0x26, 0x0a, 0x0c, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, - 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x22, 0xe8, 0x02, 0x0a, 0x10, 0x53, 0x43, - 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, - 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x6f, 0x73, 0x73, 0x48, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x42, 0x6f, 0x73, 0x73, 0x48, 0x70, 0x12, 0x2d, - 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, - 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, - 0x08, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x48, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x08, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x48, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x44, - 0x69, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x49, 0x73, 0x44, 0x69, 0x65, 0x12, - 0x33, 0x0a, 0x08, 0x44, 0x69, 0x65, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, - 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x44, 0x69, 0x65, 0x41, - 0x77, 0x61, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x35, 0x0a, 0x09, 0x45, 0x78, 0x74, 0x72, 0x61, 0x44, 0x72, 0x6f, 0x70, 0x18, - 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, - 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, - 0x45, 0x78, 0x74, 0x72, 0x61, 0x44, 0x72, 0x6f, 0x70, 0x12, 0x39, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, - 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, - 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, - 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, 0x6e, 0x0a, 0x0f, 0x53, 0x43, 0x4e, 0x69, 0x61, - 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x69, - 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0d, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x35, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, + 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x75, 0x66, + 0x66, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0d, 0x42, 0x75, 0x66, 0x66, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x20, 0x0a, 0x0b, 0x42, 0x75, 0x66, 0x66, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x75, 0x66, 0x66, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x2e, 0x0a, 0x08, 0x73, 0x68, 0x6f, 0x70, 0x44, 0x61, 0x74, 0x61, 0x18, 0x0c, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x53, + 0x68, 0x6f, 0x70, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x70, 0x44, 0x61, 0x74, + 0x61, 0x22, 0x5c, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x70, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, + 0x06, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, + 0x68, 0x6f, 0x70, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x75, 0x6d, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x12, + 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x78, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x78, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x22, + 0x0c, 0x0a, 0x0a, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x22, 0x2a, 0x0a, + 0x0a, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x42, + 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, + 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x52, 0x0a, 0x0c, 0x4e, 0x69, 0x61, + 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, + 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, + 0x64, 0x12, 0x2a, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x4e, 0x69, 0x61, 0x6e, 0x52, + 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x55, 0x0a, + 0x0c, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, + 0x06, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, + 0x61, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, + 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x41, + 0x77, 0x61, 0x72, 0x64, 0x22, 0x41, 0x0a, 0x0d, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, + 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x22, 0x26, 0x0a, 0x0c, 0x43, 0x53, 0x4e, 0x69, 0x61, + 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x22, + 0xe8, 0x02, 0x0a, 0x10, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x42, 0x6f, 0x73, 0x73, 0x48, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x42, 0x6f, + 0x73, 0x73, 0x48, 0x70, 0x12, 0x2d, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, - 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x53, 0x69, - 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, 0x20, 0x0a, 0x0c, 0x43, 0x53, 0x4e, 0x69, 0x61, - 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x4f, 0x0a, 0x0c, 0x53, 0x43, 0x4e, - 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x2d, 0x0a, 0x05, 0x41, - 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, - 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x2a, 0xe2, 0x02, 0x0a, 0x0c, 0x4e, - 0x69, 0x61, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x10, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, - 0x00, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, - 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe4, 0x14, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe5, - 0x14, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, - 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x10, 0xe6, 0x14, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x10, 0xe7, - 0x14, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, - 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe8, 0x14, 0x12, 0x1a, 0x0a, - 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, - 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe9, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, - 0x10, 0xea, 0x14, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, - 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xeb, - 0x14, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, - 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xec, 0x14, 0x12, 0x1b, - 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x53, - 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xed, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x10, 0xee, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0xef, 0x14, 0x42, - 0x28, 0x5a, 0x26, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x41, 0x77, + 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x48, 0x70, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x48, 0x70, 0x12, + 0x14, 0x0a, 0x05, 0x49, 0x73, 0x44, 0x69, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, + 0x49, 0x73, 0x44, 0x69, 0x65, 0x12, 0x33, 0x0a, 0x08, 0x44, 0x69, 0x65, 0x41, 0x77, 0x61, 0x72, + 0x64, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, + 0x52, 0x08, 0x44, 0x69, 0x65, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, + 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x42, + 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x35, 0x0a, 0x09, 0x45, 0x78, 0x74, 0x72, + 0x61, 0x44, 0x72, 0x6f, 0x70, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x45, 0x78, 0x74, 0x72, 0x61, 0x44, 0x72, 0x6f, 0x70, 0x12, + 0x39, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x09, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, + 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x46, + 0x6c, 0x6f, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x43, 0x53, + 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, 0x6e, 0x0a, + 0x0f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, + 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, + 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, + 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, 0x20, 0x0a, + 0x0c, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, + 0x4f, 0x0a, 0x0c, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, + 0x6d, 0x12, 0x2d, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, + 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, + 0x2a, 0xe2, 0x02, 0x0a, 0x0c, 0x4e, 0x69, 0x61, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, + 0x44, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4e, 0x69, 0x61, 0x6e, + 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe4, 0x14, 0x12, + 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, + 0x44, 0x61, 0x74, 0x61, 0x10, 0xe5, 0x14, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x10, 0xe6, 0x14, 0x12, + 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, + 0x42, 0x75, 0x66, 0x66, 0x10, 0xe7, 0x14, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, + 0x10, 0xe8, 0x14, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe9, 0x14, 0x12, + 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, + 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x10, 0xea, 0x14, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, + 0x44, 0x61, 0x74, 0x61, 0x10, 0xeb, 0x14, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, + 0x64, 0x10, 0xec, 0x14, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, + 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xed, + 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, + 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0xee, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x10, 0xef, 0x14, 0x42, 0x28, 0x5a, 0x26, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, + 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -995,38 +1095,40 @@ func file_protocol_activity_nian_proto_rawDescGZIP() []byte { } var file_protocol_activity_nian_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_protocol_activity_nian_proto_msgTypes = make([]protoimpl.MessageInfo, 13) +var file_protocol_activity_nian_proto_msgTypes = make([]protoimpl.MessageInfo, 14) var file_protocol_activity_nian_proto_goTypes = []interface{}{ (NianPacketID)(0), // 0: activity.NianPacketID (*CSNianData)(nil), // 1: activity.CSNianData (*SCNianData)(nil), // 2: activity.SCNianData - (*CSNianBuff)(nil), // 3: activity.CSNianBuff - (*SCNianBuff)(nil), // 4: activity.SCNianBuff - (*NianRankData)(nil), // 5: activity.NianRankData - (*NianRankInfo)(nil), // 6: activity.NianRankInfo - (*RankAwardData)(nil), // 7: activity.RankAwardData - (*CSNianAttack)(nil), // 8: activity.CSNianAttack - (*SCNianAttackData)(nil), // 9: activity.SCNianAttackData - (*CSNianSignAward)(nil), // 10: activity.CSNianSignAward - (*SCNianSignAward)(nil), // 11: activity.SCNianSignAward - (*CSNianChange)(nil), // 12: activity.CSNianChange - (*SCNianChange)(nil), // 13: activity.SCNianChange + (*ShopData)(nil), // 3: activity.ShopData + (*CSNianBuff)(nil), // 4: activity.CSNianBuff + (*SCNianBuff)(nil), // 5: activity.SCNianBuff + (*NianRankData)(nil), // 6: activity.NianRankData + (*NianRankInfo)(nil), // 7: activity.NianRankInfo + (*RankAwardData)(nil), // 8: activity.RankAwardData + (*CSNianAttack)(nil), // 9: activity.CSNianAttack + (*SCNianAttackData)(nil), // 10: activity.SCNianAttackData + (*CSNianSignAward)(nil), // 11: activity.CSNianSignAward + (*SCNianSignAward)(nil), // 12: activity.SCNianSignAward + (*CSNianChange)(nil), // 13: activity.CSNianChange + (*SCNianChange)(nil), // 14: activity.SCNianChange } var file_protocol_activity_nian_proto_depIdxs = []int32{ - 5, // 0: activity.SCNianData.RankData:type_name -> activity.NianRankData - 6, // 1: activity.NianRankData.Data:type_name -> activity.NianRankInfo - 7, // 2: activity.NianRankInfo.Award:type_name -> activity.RankAwardData - 7, // 3: activity.SCNianAttackData.Award:type_name -> activity.RankAwardData - 7, // 4: activity.SCNianAttackData.DieAward:type_name -> activity.RankAwardData - 7, // 5: activity.SCNianAttackData.ExtraDrop:type_name -> activity.RankAwardData - 7, // 6: activity.SCNianAttackData.FloorReward:type_name -> activity.RankAwardData - 7, // 7: activity.SCNianSignAward.SignAward:type_name -> activity.RankAwardData - 7, // 8: activity.SCNianChange.Award:type_name -> activity.RankAwardData - 9, // [9:9] is the sub-list for method output_type - 9, // [9:9] is the sub-list for method input_type - 9, // [9:9] is the sub-list for extension type_name - 9, // [9:9] is the sub-list for extension extendee - 0, // [0:9] is the sub-list for field type_name + 6, // 0: activity.SCNianData.RankData:type_name -> activity.NianRankData + 3, // 1: activity.SCNianData.shopData:type_name -> activity.ShopData + 7, // 2: activity.NianRankData.Data:type_name -> activity.NianRankInfo + 8, // 3: activity.NianRankInfo.Award:type_name -> activity.RankAwardData + 8, // 4: activity.SCNianAttackData.Award:type_name -> activity.RankAwardData + 8, // 5: activity.SCNianAttackData.DieAward:type_name -> activity.RankAwardData + 8, // 6: activity.SCNianAttackData.ExtraDrop:type_name -> activity.RankAwardData + 8, // 7: activity.SCNianAttackData.FloorReward:type_name -> activity.RankAwardData + 8, // 8: activity.SCNianSignAward.SignAward:type_name -> activity.RankAwardData + 8, // 9: activity.SCNianChange.Award:type_name -> activity.RankAwardData + 10, // [10:10] is the sub-list for method output_type + 10, // [10:10] is the sub-list for method input_type + 10, // [10:10] is the sub-list for extension type_name + 10, // [10:10] is the sub-list for extension extendee + 0, // [0:10] is the sub-list for field type_name } func init() { file_protocol_activity_nian_proto_init() } @@ -1060,7 +1162,7 @@ func file_protocol_activity_nian_proto_init() { } } file_protocol_activity_nian_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSNianBuff); i { + switch v := v.(*ShopData); i { case 0: return &v.state case 1: @@ -1072,7 +1174,7 @@ func file_protocol_activity_nian_proto_init() { } } file_protocol_activity_nian_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCNianBuff); i { + switch v := v.(*CSNianBuff); i { case 0: return &v.state case 1: @@ -1084,7 +1186,7 @@ func file_protocol_activity_nian_proto_init() { } } file_protocol_activity_nian_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NianRankData); i { + switch v := v.(*SCNianBuff); i { case 0: return &v.state case 1: @@ -1096,7 +1198,7 @@ func file_protocol_activity_nian_proto_init() { } } file_protocol_activity_nian_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NianRankInfo); i { + switch v := v.(*NianRankData); i { case 0: return &v.state case 1: @@ -1108,7 +1210,7 @@ func file_protocol_activity_nian_proto_init() { } } file_protocol_activity_nian_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RankAwardData); i { + switch v := v.(*NianRankInfo); i { case 0: return &v.state case 1: @@ -1120,7 +1222,7 @@ func file_protocol_activity_nian_proto_init() { } } file_protocol_activity_nian_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSNianAttack); i { + switch v := v.(*RankAwardData); i { case 0: return &v.state case 1: @@ -1132,7 +1234,7 @@ func file_protocol_activity_nian_proto_init() { } } file_protocol_activity_nian_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCNianAttackData); i { + switch v := v.(*CSNianAttack); i { case 0: return &v.state case 1: @@ -1144,7 +1246,7 @@ func file_protocol_activity_nian_proto_init() { } } file_protocol_activity_nian_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSNianSignAward); i { + switch v := v.(*SCNianAttackData); i { case 0: return &v.state case 1: @@ -1156,7 +1258,7 @@ func file_protocol_activity_nian_proto_init() { } } file_protocol_activity_nian_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SCNianSignAward); i { + switch v := v.(*CSNianSignAward); i { case 0: return &v.state case 1: @@ -1168,7 +1270,7 @@ func file_protocol_activity_nian_proto_init() { } } file_protocol_activity_nian_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CSNianChange); i { + switch v := v.(*SCNianSignAward); i { case 0: return &v.state case 1: @@ -1180,6 +1282,18 @@ func file_protocol_activity_nian_proto_init() { } } file_protocol_activity_nian_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSNianChange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protocol_activity_nian_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCNianChange); i { case 0: return &v.state @@ -1198,7 +1312,7 @@ func file_protocol_activity_nian_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_protocol_activity_nian_proto_rawDesc, NumEnums: 1, - NumMessages: 13, + NumMessages: 14, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/activity/nian.proto b/protocol/activity/nian.proto index 198b542..db207b9 100644 --- a/protocol/activity/nian.proto +++ b/protocol/activity/nian.proto @@ -33,6 +33,15 @@ message SCNianData{ int64 BuffCount = 7;//Buff剩余次数 bool BuffStatus = 8;//Buff领取状态 int64 SignAwardTime = 9;//签到领取时间 0-未领取 + int64 BuffStartTime = 10; //Buff开始领取时间 + int64 BuffEndTime = 11; //Buff结束领取时间 + repeated ShopData shopData = 12;//购买礼包数量 +} + +message ShopData{ + int32 ShopId =1; //shopId + int32 ShopNum = 2; //已购买次数 + int32 MaxShopNum = 3; //最大购买次数 } //贺春 diff --git a/ranksrv/rank/niandamage.go b/ranksrv/rank/niandamage.go new file mode 100644 index 0000000..afcd3ab --- /dev/null +++ b/ranksrv/rank/niandamage.go @@ -0,0 +1,22 @@ +package rank + +import ( + "mongo.games.com/game/model" + "mongo.games.com/game/ranksrv/com" + "mongo.games.com/goserver/core/logger" +) + +var NianDamageMgrInstance = com.NewListMgr[*model.NianInfo]( + func() int64 { + return int64(model.GameParamData.RankTimeout) + }, + func(platform string, index int32) ([]*model.NianInfo, error) { + logger.Logger.Tracef("load rank nian luck platform:%s", platform) + list, err := model.FindDamageNianRankList(&model.FindNianListArgs{ + Platform: platform, + }) + if err != nil { + return nil, err + } + return list.List, nil + }) diff --git a/ranksrv/rank/nianluck.go b/ranksrv/rank/nianluck.go new file mode 100644 index 0000000..4ffbd7e --- /dev/null +++ b/ranksrv/rank/nianluck.go @@ -0,0 +1,22 @@ +package rank + +import ( + "mongo.games.com/game/model" + "mongo.games.com/game/ranksrv/com" + "mongo.games.com/goserver/core/logger" +) + +var NianLuckMgrInstance = com.NewListMgr[*model.NianInfo]( + func() int64 { + return int64(model.GameParamData.RankTimeout) + }, + func(platform string, index int32) ([]*model.NianInfo, error) { + logger.Logger.Tracef("load rank nian luck platform:%s", platform) + list, err := model.FindLuckNianRankList(&model.FindNianListArgs{ + Platform: platform, + }) + if err != nil { + return nil, err + } + return list.List, nil + }) diff --git a/worldsrv/action_nian.go b/worldsrv/action_nian.go index 30b65f7..05aec89 100644 --- a/worldsrv/action_nian.go +++ b/worldsrv/action_nian.go @@ -4,6 +4,7 @@ import ( "math/rand" "mongo.games.com/game/common" "mongo.games.com/game/model" + "mongo.games.com/game/mq" "mongo.games.com/game/protocol/activity" "mongo.games.com/game/srvdata" "mongo.games.com/goserver/core/logger" @@ -30,7 +31,7 @@ func CSNianData(s *netlib.Session, packetid int, data interface{}, sid int64) er logger.Logger.Warn("CSNianData p == nil") return nil } - pool := PlatformMgrSingleton.GetConfig(p.Platform).ActivityNianConfig + pool := WelfareMgrSington.GetConfig(p.Platform).ActivityNianConfig if pool == nil || pool.List == nil || pool.Switch == model.WelfareClose { return nil } @@ -82,6 +83,45 @@ func CSNianData(s *netlib.Session, packetid int, data interface{}, sid int64) er pack.RankData = append(pack.RankData, rankInfo) } + var intSlice []int + var shopNum []int + for _, value := range sData { + if value.Id == 17 { + str := value.PropValue + strSlice := strings.Split(str, ",") + // 转换每个字符串为 int + for _, s := range strSlice { + num, _ := strconv.Atoi(s) + intSlice = append(intSlice, num) + } + break + } + if value.Id == 18 { + str := value.PropValue + strSlice := strings.Split(str, ",") + // 转换每个字符串为 int + for _, s := range strSlice { + num, _ := strconv.Atoi(s) + shopNum = append(shopNum, num) + } + break + } + } + for pos, shopId := range intSlice { + num := shopNum[pos] + if num == 0 { + continue + } + shopInfo := &activity.ShopData{} + shopInfo.ShopId = int32(shopId) + shopInfo.ShopNum = p.WelfData.NianData.GiftShop[int32(shopId)] + shopInfo.MaxShopNum = int32(num) + pack.ShopData = append(pack.ShopData, shopInfo) + } + StartTs := common.IntToTime(int(pool.List[0].BuffStartTime)).Unix() + EndTs := common.IntToTime(int(pool.List[0].BuffEndTime)).Unix() + pack.BuffStartTime = StartTs + pack.BuffEndTime = EndTs pack.BossHp = p.WelfData.NianData.BossHp pack.BossMaxHp = BossMaxHp pack.ActivityStartTime = timestamp @@ -90,6 +130,7 @@ func CSNianData(s *netlib.Session, packetid int, data interface{}, sid int64) er pack.BuffCount = p.WelfData.NianData.BuffCount pack.BuffStatus = p.WelfData.NianData.BuffStatus pack.SignAwardTime = p.WelfData.NianData.SignAwardTime + logger.Logger.Trace("请求年兽活动信息 ", pack) p.SendToClient(int(activity.NianPacketID_PACKET_SCNianData), pack) } @@ -120,7 +161,7 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) logger.Logger.Warn("CSNianAttack p == nil") return nil } - pool := PlatformMgrSingleton.GetConfig(p.Platform).ActivityNianConfig + pool := WelfareMgrSington.GetConfig(p.Platform).ActivityNianConfig if pool == nil || pool.List == nil { return nil } @@ -159,7 +200,7 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) var items []*model.Item items = append(items, &model.Item{ ItemId: int32(itemId), - ItemNum: int64(itemNum), + ItemNum: int64(-itemNum), }) _, _, result := BagMgrSingleton.AddItems(&model.AddItemParam{ Platform: p.Platform, @@ -172,6 +213,7 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) if !result { return nil } + items = []*model.Item{} //本次攻击总血量 AttackHp := int64(0) LuckyRankNeed := int64(0) @@ -252,10 +294,6 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) } if p.WelfData.NianData.AttackMaxHp < randomValue { p.WelfData.NianData.AttackMaxHp = randomValue - if randomValue >= LuckyRankNeed { - //更新幸运榜 - - } } AttackHp += randomValue if typeId == 3 { @@ -339,12 +377,6 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) } p.WelfData.NianData.BossHp -= AttackHp p.WelfData.NianData.AttackSumHp += AttackHp - if p.WelfData.NianData.AttackSumHp >= RankNeed { - //更新总榜 - - } - //更新伤害总榜 - isDie := false //是否死亡 //判断Boss是否死亡 var bossDieAward []*model.Item @@ -446,6 +478,32 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) pack.BuffCount = p.WelfData.NianData.BuffCount p.SendToClient(int(activity.NianPacketID_PACKET_SCNianAttackData), pack) TaskSubjectSingleton.Touch(common.TaskTypeNianBossDamage, &TaskData{SnId: p.SnId, Num: AttackHp}) // 对年兽造成伤害 + //更新年兽排行榜榜 + luckValue := p.WelfData.NianData.AttackMaxHp + luckTime := time.Now().Unix() + if luckValue < LuckyRankNeed { + luckValue = 0 + luckTime = 0 + } + damage := p.WelfData.NianData.AttackSumHp + if luckValue < RankNeed { + damage = 0 + } + //if luckValue > 0 || damage > 0 { + log := &model.NianInfo{ + Platform: p.Platform, + SnId: p.SnId, + Name: p.Name, + Luck: luckValue, + Damage: damage, + ModId: p.Roles.ModId, + Ts: time.Now().Unix(), + } + if luckTime > 0 { + log.LuckTime = luckTime + } + mq.Write(log) + //} } return nil } @@ -465,7 +523,7 @@ func CSNianBuff(s *netlib.Session, packetid int, data interface{}, sid int64) er if p.WelfData.NianData.BuffStatus { return nil } - pool := PlatformMgrSingleton.GetConfig(p.Platform).ActivityNianConfig + pool := WelfareMgrSington.GetConfig(p.Platform).ActivityNianConfig if pool == nil || pool.List == nil { return nil } @@ -473,8 +531,10 @@ func CSNianBuff(s *netlib.Session, packetid int, data interface{}, sid int64) er logger.Logger.Trace("CSNianSignAward 活动关闭!") return nil } + StartTs := common.IntToTime(int(pool.List[0].BuffStartTime)).Unix() + EndTs := common.IntToTime(int(pool.List[0].BuffEndTime)).Unix() //判断领取时间 - if time.Now().Hour() >= int(pool.List[0].BuffStartTime) && time.Now().Hour() <= int(pool.List[0].BuffEndTime) { + if time.Now().Unix() >= StartTs && time.Now().Unix() <= EndTs { sData := srvdata.PBDB_NewYearActivityMgr.Datas.GetArr() count := int64(0) for _, value := range sData { @@ -502,7 +562,7 @@ func CSNianSignAward(s *netlib.Session, packetid int, data interface{}, sid int6 if p == nil { return nil } - pool := PlatformMgrSingleton.GetConfig(p.Platform).ActivityNianConfig + pool := WelfareMgrSington.GetConfig(p.Platform).ActivityNianConfig if pool == nil || pool.List == nil { return nil } diff --git a/worldsrv/action_shop.go b/worldsrv/action_shop.go index f31bcbf..87153b9 100644 --- a/worldsrv/action_shop.go +++ b/worldsrv/action_shop.go @@ -1,6 +1,9 @@ package main import ( + "mongo.games.com/game/srvdata" + "strconv" + "strings" "time" "mongo.games.com/goserver/core/basic" @@ -188,6 +191,51 @@ func (this *CSVCPayShopHandler) Process(s *netlib.Session, packetid int, data in SendClient(shop.OpResultCode_OPRC_Error) return nil } + case ShopPageNian: + sData := srvdata.PBDB_NewYearActivityMgr.Datas.GetArr() + var intSlice []int + var shopNum []int + for _, value := range sData { + if value.Id == 17 { + str := value.PropValue + strSlice := strings.Split(str, ",") + // 转换每个字符串为 int + for _, s := range strSlice { + num, err := strconv.Atoi(s) + if err != nil { + return nil + } + intSlice = append(intSlice, num) + } + break + } + if value.Id == 18 { + str := value.PropValue + strSlice := strings.Split(str, ",") + // 转换每个字符串为 int + for _, s := range strSlice { + num, err := strconv.Atoi(s) + if err != nil { + return nil + } + shopNum = append(shopNum, num) + } + break + } + } + shopPos := 0 + for i, id := range intSlice { + if id == int(shopInfo.Id) { + shopPos = i + break + } + } + num := shopNum[shopPos] + if num > 0 { + if p.WelfData.NianData.GiftShop[shopInfo.Id] >= int32(num) { + return nil + } + } default: } @@ -474,6 +522,47 @@ func (this *CSPayInfoHandler) Process(s *netlib.Session, packetid int, data inte return nil } } + if shopInfo.Page == ShopPageNian { + sData := srvdata.PBDB_NewYearActivityMgr.Datas.GetArr() + var intSlice []int + var shopNum []int + for _, value := range sData { + if value.Id == 17 { + str := value.PropValue + strSlice := strings.Split(str, ",") + // 转换每个字符串为 int + for _, s := range strSlice { + num, _ := strconv.Atoi(s) + intSlice = append(intSlice, num) + } + break + } + if value.Id == 18 { + str := value.PropValue + strSlice := strings.Split(str, ",") + // 转换每个字符串为 int + for _, s := range strSlice { + num, _ := strconv.Atoi(s) + shopNum = append(shopNum, num) + } + break + } + } + shopPos := 0 + for i, id := range intSlice { + if id == int(shopInfo.Id) { + shopPos = i + break + } + } + num := shopNum[shopPos] + if num > 0 { + if p.WelfData.NianData.GiftShop[shopInfo.Id] >= int32(num) { + SendClient(shop.OpResultCode_OPRC_Error) + return nil + } + } + } ShopMgrSington.SendAPICreateOrder(p, msg.ConfigPayId, shopInfo, "shop_goods_xj") } else { diff --git a/worldsrv/mq.go b/worldsrv/mq.go index 36f0640..7389fa7 100644 --- a/worldsrv/mq.go +++ b/worldsrv/mq.go @@ -34,6 +34,7 @@ func init() { mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.BackSystemFreeGive, Data: &model.SystemFreeGive{}}) mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.DBLotteryCode, Data: &model.LotteryCode{}}) mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.DBLotteryLog, Data: &model.LotteryLog{}}) + mq.RegisterMessage(&mq.RegisterMessageParam{Name: model.MQRankNian, Data: &model.NianInfo{}}) } func init() { diff --git a/worldsrv/player.go b/worldsrv/player.go index 28e3644..196ed92 100644 --- a/worldsrv/player.go +++ b/worldsrv/player.go @@ -2893,6 +2893,10 @@ func (this *Player) DoShopInfo(info *model.DbShop, isLogin bool) { Num: 1, }) } + //年兽礼包 + if info.PageId == ShopPageNian { + this.WelfData.NianData.GiftShop[info.ShopId] += 1 + } switch info.Remark { case "BlindBox": diff --git a/worldsrv/shopmgr.go b/worldsrv/shopmgr.go index a46f850..b076fc4 100644 --- a/worldsrv/shopmgr.go +++ b/worldsrv/shopmgr.go @@ -46,16 +46,16 @@ const ( // page类型 const ( - ShopPageCoin = 1 //金币页面 - ShopPageDiamond = 2 //钻石页面 - ShopPageItem = 3 //道具页面 - ShopPageVip = 4 //VIP页面 - ShopPagePrivilege = 5 //VIP特权礼包 - ShopPageGift = 7 //礼包页面 - ShopPageDiamondBank = 8 //钻石存储罐 - ShopPagePermit = 9 //赛季通行证 - ShopPageFangKa = 10 //房卡页面 - + ShopPageCoin = 1 //金币页面 + ShopPageDiamond = 2 //钻石页面 + ShopPageItem = 3 //道具页面 + ShopPageVip = 4 //VIP页面 + ShopPagePrivilege = 5 //VIP特权礼包 + ShopPageGift = 7 //礼包页面 + ShopPageDiamondBank = 8 //钻石存储罐 + ShopPagePermit = 9 //赛季通行证 + ShopPageFangKa = 10 //房卡页面 + ShopPageNian = 12 //年兽活动页面 ShopPagePhoneScore = 61 //手机积分商城 ShopPagePhoneScoreGoogle = 62 ShopPageBackend = 63 //并不是页面,是后台加币记录类型 diff --git a/worldsrv/taskmgr.go b/worldsrv/taskmgr.go index 49a1c79..e453e87 100644 --- a/worldsrv/taskmgr.go +++ b/worldsrv/taskmgr.go @@ -200,7 +200,7 @@ func (t *TaskHandle) AllTask(id int, data any) { switch v.GetActivityType() { case common.TaskActivityTypeNianEveryDay, common.TaskActivityTypeNian: //判断是否在开启时间段内 - pool := PlatformMgrSingleton.GetConfig(p.Platform).ActivityNianConfig + pool := WelfareMgrSington.GetConfig(p.Platform).ActivityNianConfig if pool == nil || pool.List == nil { continue } @@ -340,7 +340,7 @@ func IsTaskReward(p *Player, id int32) bool { } return true case common.TaskActivityTypeNian: - pool := PlatformMgrSingleton.GetConfig(p.Platform).ActivityNianConfig + pool := WelfareMgrSington.GetConfig(p.Platform).ActivityNianConfig if pool == nil || pool.List == nil { return false } diff --git a/worldsrv/trascate_webapi.go b/worldsrv/trascate_webapi.go index 4e22871..1792b46 100644 --- a/worldsrv/trascate_webapi.go +++ b/worldsrv/trascate_webapi.go @@ -2304,6 +2304,7 @@ func init() { return err } InviteTask(msg.Platform, psnid, info.SnId, common.InviteScoreTypePay, int64(info.ConsumeNum)) + return nil }), nil, "InvitePayTask").Start() } diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index 3f34f50..5742dbd 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -2216,8 +2216,8 @@ func (this *WelfareMgr) DayReserNian(p *Player) { p.WelfData.NianData.SignAwardTime = 0 p.WelfData.NianData.OtherAwardNum = make(map[int32]int32) p.WelfData.NianData.AttackMaxHp = 0 + p.WelfData.NianData.GiftShop = make(map[int32]int32) } - } // 年兽活动结束清除数据 @@ -2228,7 +2228,7 @@ func (this *WelfareMgr) ClearActivityNianData(p *Player) { for id, _ := range p.WelfData.Task { data := srvdata.PBDB_TaskMgr.GetData(id) if data.ActivityType == common.TaskActivityTypeNianEveryDay || data.ActivityType == common.TaskActivityTypeNian { - p.WelfData.Task[id] = nil + delete(p.WelfData.Task, id) } } } diff --git a/xlsx/DB_NewYearActivity.xlsx b/xlsx/DB_NewYearActivity.xlsx index c5a3abe38744643cfc6a4a0a74f993229dcb0717..729eb72e0be63a6f61d0e9f5183f441615071f93 100644 GIT binary patch delta 2532 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 delta 2507 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 Date: Fri, 3 Jan 2025 14:12:23 +0800 Subject: [PATCH 15/47] =?UTF-8?q?fix=20=E7=BA=A2=E5=8C=85=E6=B4=BB?= =?UTF-8?q?=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/welfmgr.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index 593a925..f764c15 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -2281,7 +2281,7 @@ func (this *WelfareMgr) SendRedPacketInfo(p *Player) *welfare.SCRedPacketInfo { continue } startTs, endTs := common.IntToTime(int(v.GetStartHMS())).Unix(), common.IntToTime(int(v.GetEndHMS())).Unix() - if now < startTs || now >= endTs { + if now >= endTs { continue } info := &welfare.RedPacketInfo{ @@ -2296,7 +2296,7 @@ func (this *WelfareMgr) SendRedPacketInfo(p *Player) *welfare.SCRedPacketInfo { } } _, info.RemainCount = RedPacketMgrInst.GetRemainTimesByConfig(p, v) - if info.RemainCount > 0 { + if info.RemainCount > 0 || info.RemainCount == -1 { pack.Info = append(pack.Info, info) } } From 2bcbfaec2f8fb0e93d6a2ebae687d2da6e6b4681 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Fri, 3 Jan 2025 15:02:33 +0800 Subject: [PATCH 16/47] =?UTF-8?q?fix=20=E7=BA=A2=E5=8C=85=E6=B4=BB?= =?UTF-8?q?=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- model/redpacket.go | 18 ++++++++++++++++++ mq/keyconf.go | 2 ++ worldsrv/welfmgr.go | 12 ++++++++++-- 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/model/redpacket.go b/model/redpacket.go index 6c49c65..578afef 100644 --- a/model/redpacket.go +++ b/model/redpacket.go @@ -65,3 +65,21 @@ func UpdateRedPacketAll(plt string, list []*RedPacket) error { return nil } + +// BackRedPacket 红包统计数据 +type BackRedPacket struct { + Platform string + Id int32 + SnId int32 + ItemId int32 + ItemNum int64 + Ts int64 +} + +type BackActivityConsume struct { + Platform string + TaskId int32 // 任务id + SnId int32 + Num int64 // 消耗钻石数量 + +} diff --git a/mq/keyconf.go b/mq/keyconf.go index 3dc3205..2c62158 100644 --- a/mq/keyconf.go +++ b/mq/keyconf.go @@ -19,6 +19,8 @@ const ( BackSystemJyb = "back_jyblog" BackActivityLog = "back_activitylog" BackOnlineGame = "back_onlinegame" + BackRedPacket = "back_redpacket" + BackConsumeTask = "back_consumetask" ) // go后端 diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index 95211a2..7292935 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -2425,6 +2425,7 @@ func (this *WelfareMgr) GetRedPacket(p *Player, id int64) *welfare.SCRedPacketDr RedPacketMgrInst.AddUse(p.Platform, id, reward) if reward > 0 { data.RN++ + pack.Award = []*welfare.PropInfo{{ItemId: cfg.GetItemId(), ItemNum: reward}} BagMgrSingleton.AddItems(&model.AddItemParam{ Platform: p.Platform, SnId: p.GetSnId(), @@ -2435,10 +2436,17 @@ func (this *WelfareMgr) GetRedPacket(p *Player, id int64) *welfare.SCRedPacketDr }) } - //todo 抽奖记录 + mq.Write(&model.BackRedPacket{ + Platform: p.Platform, + Id: int32(id), + SnId: p.GetSnId(), + ItemId: cfg.GetItemId(), + ItemNum: reward, + Ts: now, + }, mq.BackRedPacket) _, pack.RemainCount = RedPacketMgrInst.GetRemainTimesByConfig(p, cfg) - p.SendToClient(int(welfare.SPacketID_PACKET_SCRedPacketDraw), pack) + Send(welfare.OpResultCode_OPRC_Sucess) return pack } From 5db3c767e4c59c38870286389ca01161a8b62809 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Fri, 3 Jan 2025 15:50:06 +0800 Subject: [PATCH 17/47] =?UTF-8?q?fix=20=E7=BA=A2=E5=8C=85=E6=B4=BB?= =?UTF-8?q?=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- model/redpacket.go | 20 ++++++-------------- mq/keyconf.go | 1 - worldsrv/welfmgr.go | 4 ++++ 3 files changed, 10 insertions(+), 15 deletions(-) diff --git a/model/redpacket.go b/model/redpacket.go index 578afef..2b577f4 100644 --- a/model/redpacket.go +++ b/model/redpacket.go @@ -68,18 +68,10 @@ func UpdateRedPacketAll(plt string, list []*RedPacket) error { // BackRedPacket 红包统计数据 type BackRedPacket struct { - Platform string - Id int32 - SnId int32 - ItemId int32 - ItemNum int64 - Ts int64 -} - -type BackActivityConsume struct { - Platform string - TaskId int32 // 任务id - SnId int32 - Num int64 // 消耗钻石数量 - + Platform string // 平台 + Id int32 // 红包活动id + SnId int32 // 玩家id + ItemId int32 // 道具id + ItemNum int64 // 道具数量 + Ts int64 // 时间戳 } diff --git a/mq/keyconf.go b/mq/keyconf.go index 2c62158..d4ba3b9 100644 --- a/mq/keyconf.go +++ b/mq/keyconf.go @@ -20,7 +20,6 @@ const ( BackActivityLog = "back_activitylog" BackOnlineGame = "back_onlinegame" BackRedPacket = "back_redpacket" - BackConsumeTask = "back_consumetask" ) // go后端 diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index 7292935..734e3fa 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -2324,6 +2324,10 @@ func (this *WelfareMgr) GetRedPacket(p *Player, id int64) *welfare.SCRedPacketDr return nil } + if p.WelfData.RedPacket == nil { + p.WelfData.RedPacket = make(map[int64]*model.RedPacketData) + } + if p.WelfData.RedPacket[id] == nil { p.WelfData.RedPacket[id] = &model.RedPacketData{} } From 044cf9f863fc78aa4310e19dc2c440c55de856ae Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Fri, 3 Jan 2025 16:57:40 +0800 Subject: [PATCH 18/47] =?UTF-8?q?=E5=B9=B4=E5=85=BD=E6=8E=92=E8=A1=8C?= =?UTF-8?q?=E6=A6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/i18n/languages.json | 6 +- dbproxy/svc/l_ranknian.go | 36 +++ model/rank.go | 27 ++- protocol/activity/nian.pb.go | 342 +++++++++++++++++++---------- protocol/activity/nian.proto | 9 + protocol/rank/rank.pb.go | 414 ++++++++++++++++++++++++++++++----- protocol/rank/rank.proto | 30 ++- ranksrv/action_gatesrv.go | 137 ++++++++++++ worldsrv/action_nian.go | 59 +++-- worldsrv/action_shop.go | 4 - worldsrv/rankmatch.go | 180 +++++++++++++++ 11 files changed, 1043 insertions(+), 201 deletions(-) diff --git a/data/i18n/languages.json b/data/i18n/languages.json index 8a5080c..ce2cd99 100644 --- a/data/i18n/languages.json +++ b/data/i18n/languages.json @@ -14,5 +14,9 @@ "Upgrade": "{\"zh\":\"感谢您更新客户端,更新奖励已发放至附近,请注意查收\",\"vi\":\"Cảm ơn bạn đã cập nhật ứng dụng khách. Phần thưởng cập nhật đã được phân phối gần đó, vui lòng chú ý kiểm tra nhận\",\"en\":\"Thank you for updating the client. The update reward has been distributed to everyone. Please check it carefully.\",\"kh\":\"អរគុណសម្រាប់ការធ្វើបច្ចុប្បន្នភាពហ្គេម។ រង្វាន់នៃការធ្វើបច្ចុប្បន្នភាពត្រូវបានចែកចាយទៅគ្រប់គ្នា។ សូមពិនិត្យអោយបានច្បាស់លាស់។\"}", "LotteryTitle": "{\"zh\":\"玩游戏抽奖品\",\"vi\":\"Chơi game rút thưởng\",\"en\":\"Play games, draw prizes\",\"kh\":\"លេងហ្គេម ចាប់រង្វាន់\"}", "Lottery": "{\"zh\":\"恭喜您在好友房玩游戏抽奖品活动中获得了大奖,奖品随邮件发放,请注意查收\",\"vi\":\"Chúc mừng bạn đã trúng giải thưởng lớn trong hoạt động rút thưởng trò chơi tại phòng bạn bè. Giải thưởng sẽ được gửi qua email, vui lòng kiểm tra cẩn thận.\",\"en\":\"Congratulations on winning the grand prize in the lucky draw activity in the friend room. The prize will be sent via email, please check it carefully.\",\"kh\":\"សូមអបអរសាទរចំពោះការឈ្នះរង្វាន់ធំក្នុងសកម្មភាពចាប់រង្វាន់ក្នុងបន្ទប់មិត្តភ័ក្តិរបស់អ្នក រង្វាន់នឹងត្រូវបានផ្ញើតាមអ៊ីម៉ែល សូមពិនិត្យមើលវាដោយយកចិត្តទុកដាក់។\"}", - "TelCodeTitle": "{\"zh\":\"话费卡兑换码\",\"vi\":\"Mã đổi thẻ điện thoại\",\"en\":\"Phone card redemption code\",\"kh\":\"លេខកូដប្រោសលោះកាតទូរស័ព្ទ\"}" + "TelCodeTitle": "{\"zh\":\"话费卡兑换码\",\"vi\":\"Mã đổi thẻ điện thoại\",\"en\":\"Phone card redemption code\",\"kh\":\"លេខកូដប្រោសលោះកាតទូរស័ព្ទ\"}", + "NianLuckTitle": "{\"zh\":\"幸运榜排行奖励\",\"vi\":\"Vượt qua phần thưởng xếp hạng\",\"en\":\"Pass Ranking Rewards\",\"kh\":\"រង្វាន់ចំណាត់ថ្នាក់ឆ្លងកាត់\"}", + "NianLuckAward": "{\"zh\":\"恭喜您在昨日年兽活动幸运排行中名次达到%v名,排行奖励已发放,请查收\",\"vi\":\"Chúc mừng bạn đã đạt được %v trong bảng xếp hạng vượt qua. Phần thưởng xếp hạng đã được phân phối, vui lòng kiểm tra.\",\"en\":\"Congratulations on reaching %vth place in the pass ranking. Ranking rewards have been issued. Please check.\",\"kh\":\"សូមអបអរសាទរចំពោះការឈានដល់ចំណាត់ថ្នាក់ទី %v ក្នុងចំណាត់ថ្នាក់ឆ្លងកាត់។ រង្វាន់ចំណាត់ថ្នាក់ត្រូវបានចេញ។ សូមត្រួតពិនិត្យ។\"}", + "NianDamageTitle": "{\"zh\":\"年兽活动排行奖励\",\"vi\":\"Vượt qua phần thưởng xếp hạng\",\"en\":\"Pass Ranking Rewards\",\"kh\":\"រង្វាន់ចំណាត់ថ្នាក់ឆ្លងកាត់\"}", + "NianDamageAward": "{\"zh\":\"恭喜您在本次年兽活动总排行中名次达到%v名,排行奖励已发放,请查收\",\"vi\":\"Chúc mừng bạn đã đạt được %v trong bảng xếp hạng vượt qua. Phần thưởng xếp hạng đã được phân phối, vui lòng kiểm tra.\",\"en\":\"Congratulations on reaching %vth place in the pass ranking. Ranking rewards have been issued. Please check.\",\"kh\":\"សូមអបអរសាទរចំពោះការឈានដល់ចំណាត់ថ្នាក់ទី %v ក្នុងចំណាត់ថ្នាក់ឆ្លងកាត់។ រង្វាន់ចំណាត់ថ្នាក់ត្រូវបានចេញ។ សូមត្រួតពិនិត្យ។\"}" } \ No newline at end of file diff --git a/dbproxy/svc/l_ranknian.go b/dbproxy/svc/l_ranknian.go index c655ba1..018811c 100644 --- a/dbproxy/svc/l_ranknian.go +++ b/dbproxy/svc/l_ranknian.go @@ -102,6 +102,42 @@ func (svc *RankNianSvc) DamageFind(args *model.FindNianListArgs, ret *model.Find } return nil } +func (svc *RankNianSvc) UpdateAll(args *model.FindNianListArgs, ret *model.FindNianListReply) error { + fc := RankNianCollection(args.Platform) + if fc == nil { + return RankNianColError + } + + // 根据 args 中的条件构建查询 + query := bson.M{"platform": args.Platform} + + update := bson.M{ + "$set": bson.M{ + "luck": 0, + "lucktime": 0, + }, + } + _, err := fc.UpdateAll(query, update) + if err != nil { + logger.Logger.Error("RankNianSvc.UpdateAll is err: ", err) + return err + } + return nil +} +func (svc *RankNianSvc) DelAll(args *model.FindNianListArgs, ret *model.FindNianListReply) error { + fc := RankNianCollection(args.Platform) + if fc == nil { + return RankNianColError + } + query := bson.M{"platform": args.Platform} + _, err := fc.RemoveAll(query) + if err != nil { + logger.Logger.Error("RankNianSvc.RemoveAll is err: ", err) + return err + } + + return nil +} func init() { rpc.Register(new(RankNianSvc)) } diff --git a/model/rank.go b/model/rank.go index 469bd26..7dbfd16 100644 --- a/model/rank.go +++ b/model/rank.go @@ -346,7 +346,6 @@ type NianInfo struct { type FindNianListArgs struct { Platform string - StartTs int64 } type FindNianListReply struct { List []*NianInfo @@ -381,3 +380,29 @@ func FindDamageNianRankList(args *FindNianListArgs) (*FindNianListReply, error) } return ret, nil } +func ClearNianRank(args *FindNianListArgs) error { + if rpcCli == nil { + logger.Logger.Error("model.FindNianList rpcCli == nil") + return nil + } + ret := new(FindNianListReply) + err := rpcCli.CallWithTimeout("RankNianSvc.UpdateAll", args, ret, time.Second*30) + if err != nil { + logger.Logger.Error("GetNianDamageRankList error:", err) + return err + } + return nil +} +func DelNianRank(args *FindNianListArgs) error { + if rpcCli == nil { + logger.Logger.Error("model.FindNianList rpcCli == nil") + return nil + } + ret := new(FindNianListReply) + err := rpcCli.CallWithTimeout("RankNianSvc.DelAll", args, ret, time.Second*30) + if err != nil { + logger.Logger.Error("GetNianDamageRankList error:", err) + return err + } + return nil +} diff --git a/protocol/activity/nian.pb.go b/protocol/activity/nian.pb.go index a58715e..5853f98 100644 --- a/protocol/activity/nian.pb.go +++ b/protocol/activity/nian.pb.go @@ -99,6 +99,53 @@ func (NianPacketID) EnumDescriptor() ([]byte, []int) { return file_protocol_activity_nian_proto_rawDescGZIP(), []int{0} } +//操作结果 +type OpResultCode_Nian int32 + +const ( + OpResultCode_Nian_OPRC_Sucess_Nian OpResultCode_Nian = 0 //成功 + OpResultCode_Nian_OPRC_Error_Nian OpResultCode_Nian = 1 //失败 +) + +// Enum value maps for OpResultCode_Nian. +var ( + OpResultCode_Nian_name = map[int32]string{ + 0: "OPRC_Sucess_Nian", + 1: "OPRC_Error_Nian", + } + OpResultCode_Nian_value = map[string]int32{ + "OPRC_Sucess_Nian": 0, + "OPRC_Error_Nian": 1, + } +) + +func (x OpResultCode_Nian) Enum() *OpResultCode_Nian { + p := new(OpResultCode_Nian) + *p = x + return p +} + +func (x OpResultCode_Nian) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (OpResultCode_Nian) Descriptor() protoreflect.EnumDescriptor { + return file_protocol_activity_nian_proto_enumTypes[1].Descriptor() +} + +func (OpResultCode_Nian) Type() protoreflect.EnumType { + return &file_protocol_activity_nian_proto_enumTypes[1] +} + +func (x OpResultCode_Nian) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OpResultCode_Nian.Descriptor instead. +func (OpResultCode_Nian) EnumDescriptor() ([]byte, []int) { + return file_protocol_activity_nian_proto_rawDescGZIP(), []int{1} +} + //获取年兽活动信息 //PACKET_CSNianData type CSNianData struct { @@ -157,6 +204,7 @@ type SCNianData struct { BuffStartTime int64 `protobuf:"varint,10,opt,name=BuffStartTime,proto3" json:"BuffStartTime,omitempty"` //Buff开始领取时间 BuffEndTime int64 `protobuf:"varint,11,opt,name=BuffEndTime,proto3" json:"BuffEndTime,omitempty"` //Buff结束领取时间 ShopData []*ShopData `protobuf:"bytes,12,rep,name=shopData,proto3" json:"shopData,omitempty"` //购买礼包数量 + ChangeData string `protobuf:"bytes,13,opt,name=ChangeData,proto3" json:"ChangeData,omitempty"` //兑换数据 } func (x *SCNianData) Reset() { @@ -275,14 +323,21 @@ func (x *SCNianData) GetShopData() []*ShopData { return nil } +func (x *SCNianData) GetChangeData() string { + if x != nil { + return x.ChangeData + } + return "" +} + type ShopData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ShopId int32 `protobuf:"varint,1,opt,name=ShopId,proto3" json:"ShopId,omitempty"` //shopId - ShopNum int32 `protobuf:"varint,2,opt,name=ShopNum,proto3" json:"ShopNum,omitempty"` //已购买次数 只保存有购买限制的礼包的数量 - MaxShopNum int32 `protobuf:"varint,3,opt,name=MaxShopNum,proto3" json:"MaxShopNum,omitempty"` //最大购买次数 0-无限制 + ShopNum int32 `protobuf:"varint,2,opt,name=ShopNum,proto3" json:"ShopNum,omitempty"` //已购买次数 + MaxShopNum int32 `protobuf:"varint,3,opt,name=MaxShopNum,proto3" json:"MaxShopNum,omitempty"` //最大购买次数 } func (x *ShopData) Reset() { @@ -385,7 +440,8 @@ type SCNianBuff struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - BuffCount int64 `protobuf:"varint,1,opt,name=BuffCount,proto3" json:"BuffCount,omitempty"` //BUFF剩余次数 + BuffCount int64 `protobuf:"varint,1,opt,name=BuffCount,proto3" json:"BuffCount,omitempty"` //BUFF剩余次数 + OpRetCode OpResultCode_Nian `protobuf:"varint,2,opt,name=OpRetCode,proto3,enum=activity.OpResultCode_Nian" json:"OpRetCode,omitempty"` // 返回错误码 } func (x *SCNianBuff) Reset() { @@ -427,6 +483,13 @@ func (x *SCNianBuff) GetBuffCount() int64 { return 0 } +func (x *SCNianBuff) GetOpRetCode() OpResultCode_Nian { + if x != nil { + return x.OpRetCode + } + return OpResultCode_Nian_OPRC_Sucess_Nian +} + type NianRankData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -799,8 +862,9 @@ type SCNianSignAward struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SignAwardTime int64 `protobuf:"varint,1,opt,name=SignAwardTime,proto3" json:"SignAwardTime,omitempty"` - SignAward []*RankAwardData `protobuf:"bytes,2,rep,name=SignAward,proto3" json:"SignAward,omitempty"` //签到奖励 + SignAwardTime int64 `protobuf:"varint,1,opt,name=SignAwardTime,proto3" json:"SignAwardTime,omitempty"` + SignAward []*RankAwardData `protobuf:"bytes,2,rep,name=SignAward,proto3" json:"SignAward,omitempty"` //签到奖励 + OpRetCode OpResultCode_Nian `protobuf:"varint,3,opt,name=OpRetCode,proto3,enum=activity.OpResultCode_Nian" json:"OpRetCode,omitempty"` // 返回错误码 } func (x *SCNianSignAward) Reset() { @@ -849,6 +913,13 @@ func (x *SCNianSignAward) GetSignAward() []*RankAwardData { return nil } +func (x *SCNianSignAward) GetOpRetCode() OpResultCode_Nian { + if x != nil { + return x.OpRetCode + } + return OpResultCode_Nian_OPRC_Sucess_Nian +} + //兑换 //PACKET_CSNianChange type CSNianChange struct { @@ -904,8 +975,9 @@ type SCNianChange struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Num int32 `protobuf:"varint,1,opt,name=Num,proto3" json:"Num,omitempty"` - Award []*RankAwardData `protobuf:"bytes,2,rep,name=Award,proto3" json:"Award,omitempty"` + Num int32 `protobuf:"varint,1,opt,name=Num,proto3" json:"Num,omitempty"` + Award []*RankAwardData `protobuf:"bytes,2,rep,name=Award,proto3" json:"Award,omitempty"` + OpRetCode OpResultCode_Nian `protobuf:"varint,3,opt,name=OpRetCode,proto3,enum=activity.OpResultCode_Nian" json:"OpRetCode,omitempty"` // 返回错误码 } func (x *SCNianChange) Reset() { @@ -954,13 +1026,20 @@ func (x *SCNianChange) GetAward() []*RankAwardData { return nil } +func (x *SCNianChange) GetOpRetCode() OpResultCode_Nian { + if x != nil { + return x.OpRetCode + } + return OpResultCode_Nian_OPRC_Sucess_Nian +} + var File_protocol_activity_nian_proto protoreflect.FileDescriptor var file_protocol_activity_nian_proto_rawDesc = []byte{ 0x0a, 0x1c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2f, 0x6e, 0x69, 0x61, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x22, 0x0c, 0x0a, 0x0a, 0x43, 0x53, 0x4e, 0x69, - 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x22, 0xc8, 0x03, 0x0a, 0x0a, 0x53, 0x43, 0x4e, 0x69, 0x61, + 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x22, 0xe8, 0x03, 0x0a, 0x0a, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x11, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, @@ -989,97 +1068,114 @@ var file_protocol_activity_nian_proto_rawDesc = []byte{ 0x65, 0x12, 0x2e, 0x0a, 0x08, 0x73, 0x68, 0x6f, 0x70, 0x44, 0x61, 0x74, 0x61, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x53, 0x68, 0x6f, 0x70, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x70, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x22, 0x5c, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x70, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x78, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x78, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x22, - 0x0c, 0x0a, 0x0a, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x22, 0x2a, 0x0a, + 0x0c, 0x0a, 0x0a, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x22, 0x65, 0x0a, 0x0a, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, - 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x52, 0x0a, 0x0c, 0x4e, 0x69, 0x61, - 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, - 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, - 0x64, 0x12, 0x2a, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x4e, 0x69, 0x61, 0x6e, 0x52, - 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x55, 0x0a, - 0x0c, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, - 0x06, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, - 0x61, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, - 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x41, - 0x77, 0x61, 0x72, 0x64, 0x22, 0x41, 0x0a, 0x0d, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, - 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, - 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, - 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x22, 0x26, 0x0a, 0x0c, 0x43, 0x53, 0x4e, 0x69, 0x61, - 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x22, - 0xe8, 0x02, 0x0a, 0x10, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, + 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x09, 0x4f, 0x70, 0x52, + 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, + 0x43, 0x6f, 0x64, 0x65, 0x22, 0x52, 0x0a, 0x0c, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, - 0x42, 0x6f, 0x73, 0x73, 0x48, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x42, 0x6f, - 0x73, 0x73, 0x48, 0x70, 0x12, 0x2d, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, - 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x41, 0x77, - 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x48, 0x70, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x48, 0x70, 0x12, - 0x14, 0x0a, 0x05, 0x49, 0x73, 0x44, 0x69, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, - 0x49, 0x73, 0x44, 0x69, 0x65, 0x12, 0x33, 0x0a, 0x08, 0x44, 0x69, 0x65, 0x41, 0x77, 0x61, 0x72, - 0x64, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, - 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x08, 0x44, 0x69, 0x65, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, - 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x42, - 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x35, 0x0a, 0x09, 0x45, 0x78, 0x74, 0x72, - 0x61, 0x44, 0x72, 0x6f, 0x70, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x45, 0x78, 0x74, 0x72, 0x61, 0x44, 0x72, 0x6f, 0x70, 0x12, - 0x39, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x09, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, - 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x46, - 0x6c, 0x6f, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x43, 0x53, - 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, 0x6e, 0x0a, - 0x0f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, - 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, - 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, - 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, 0x20, 0x0a, - 0x0c, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, - 0x4f, 0x0a, 0x0c, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, - 0x6d, 0x12, 0x2d, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, - 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, - 0x2a, 0xe2, 0x02, 0x0a, 0x0c, 0x4e, 0x69, 0x61, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, - 0x44, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4e, 0x69, 0x61, 0x6e, - 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe4, 0x14, 0x12, - 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x10, 0xe5, 0x14, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x10, 0xe6, 0x14, 0x12, - 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, - 0x42, 0x75, 0x66, 0x66, 0x10, 0xe7, 0x14, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, - 0x10, 0xe8, 0x14, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, - 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe9, 0x14, 0x12, - 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, - 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x10, 0xea, 0x14, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, - 0x44, 0x61, 0x74, 0x61, 0x10, 0xeb, 0x14, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, - 0x64, 0x10, 0xec, 0x14, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xed, - 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, - 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0xee, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x10, 0xef, 0x14, 0x42, 0x28, 0x5a, 0x26, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, - 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x04, + 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x55, 0x0a, 0x0c, 0x4e, 0x69, 0x61, 0x6e, + 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x61, 0x6e, 0x6b, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x64, + 0x12, 0x2d, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, + 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, + 0x41, 0x0a, 0x0d, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, + 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, + 0x75, 0x6d, 0x22, 0x26, 0x0a, 0x0c, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, + 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x22, 0xe8, 0x02, 0x0a, 0x10, 0x53, + 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x6f, 0x73, 0x73, 0x48, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x42, 0x6f, 0x73, 0x73, 0x48, 0x70, 0x12, + 0x2d, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, + 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1a, + 0x0a, 0x08, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x48, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x08, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x48, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, + 0x44, 0x69, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x49, 0x73, 0x44, 0x69, 0x65, + 0x12, 0x33, 0x0a, 0x08, 0x44, 0x69, 0x65, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, + 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x44, 0x69, 0x65, + 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x35, 0x0a, 0x09, 0x45, 0x78, 0x74, 0x72, 0x61, 0x44, 0x72, 0x6f, 0x70, + 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, + 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x09, 0x45, 0x78, 0x74, 0x72, 0x61, 0x44, 0x72, 0x6f, 0x70, 0x12, 0x39, 0x0a, 0x0b, 0x46, 0x6c, + 0x6f, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, + 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x53, + 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, 0xa9, 0x01, 0x0a, 0x0f, 0x53, 0x43, 0x4e, + 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x24, 0x0a, 0x0d, + 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0d, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, + 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x39, 0x0a, 0x09, 0x4f, 0x70, 0x52, + 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, + 0x43, 0x6f, 0x64, 0x65, 0x22, 0x20, 0x0a, 0x0c, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x8a, 0x01, 0x0a, 0x0c, 0x53, 0x43, 0x4e, 0x69, 0x61, + 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x2d, 0x0a, 0x05, 0x41, 0x77, 0x61, + 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x39, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, + 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, + 0x6f, 0x64, 0x65, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, + 0x6f, 0x64, 0x65, 0x2a, 0xe2, 0x02, 0x0a, 0x0c, 0x4e, 0x69, 0x61, 0x6e, 0x50, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4e, + 0x69, 0x61, 0x6e, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x10, + 0xe4, 0x14, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, + 0x69, 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe5, 0x14, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x10, + 0xe6, 0x14, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, + 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x10, 0xe7, 0x14, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, + 0x61, 0x74, 0x61, 0x10, 0xe8, 0x14, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, + 0xe9, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, + 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x10, 0xea, 0x14, 0x12, 0x1c, 0x0a, 0x17, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, + 0x61, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xeb, 0x14, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, + 0x77, 0x61, 0x72, 0x64, 0x10, 0xec, 0x14, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, + 0x64, 0x10, 0xed, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, + 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0xee, 0x14, 0x12, 0x18, + 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0xef, 0x14, 0x2a, 0x3e, 0x0a, 0x11, 0x4f, 0x70, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x12, 0x14, 0x0a, + 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x75, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x4e, 0x69, 0x61, + 0x6e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x10, 0x01, 0x42, 0x28, 0x5a, 0x26, 0x6d, 0x6f, 0x6e, 0x67, + 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1094,41 +1190,45 @@ func file_protocol_activity_nian_proto_rawDescGZIP() []byte { return file_protocol_activity_nian_proto_rawDescData } -var file_protocol_activity_nian_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_protocol_activity_nian_proto_enumTypes = make([]protoimpl.EnumInfo, 2) var file_protocol_activity_nian_proto_msgTypes = make([]protoimpl.MessageInfo, 14) var file_protocol_activity_nian_proto_goTypes = []interface{}{ (NianPacketID)(0), // 0: activity.NianPacketID - (*CSNianData)(nil), // 1: activity.CSNianData - (*SCNianData)(nil), // 2: activity.SCNianData - (*ShopData)(nil), // 3: activity.ShopData - (*CSNianBuff)(nil), // 4: activity.CSNianBuff - (*SCNianBuff)(nil), // 5: activity.SCNianBuff - (*NianRankData)(nil), // 6: activity.NianRankData - (*NianRankInfo)(nil), // 7: activity.NianRankInfo - (*RankAwardData)(nil), // 8: activity.RankAwardData - (*CSNianAttack)(nil), // 9: activity.CSNianAttack - (*SCNianAttackData)(nil), // 10: activity.SCNianAttackData - (*CSNianSignAward)(nil), // 11: activity.CSNianSignAward - (*SCNianSignAward)(nil), // 12: activity.SCNianSignAward - (*CSNianChange)(nil), // 13: activity.CSNianChange - (*SCNianChange)(nil), // 14: activity.SCNianChange + (OpResultCode_Nian)(0), // 1: activity.OpResultCode_Nian + (*CSNianData)(nil), // 2: activity.CSNianData + (*SCNianData)(nil), // 3: activity.SCNianData + (*ShopData)(nil), // 4: activity.ShopData + (*CSNianBuff)(nil), // 5: activity.CSNianBuff + (*SCNianBuff)(nil), // 6: activity.SCNianBuff + (*NianRankData)(nil), // 7: activity.NianRankData + (*NianRankInfo)(nil), // 8: activity.NianRankInfo + (*RankAwardData)(nil), // 9: activity.RankAwardData + (*CSNianAttack)(nil), // 10: activity.CSNianAttack + (*SCNianAttackData)(nil), // 11: activity.SCNianAttackData + (*CSNianSignAward)(nil), // 12: activity.CSNianSignAward + (*SCNianSignAward)(nil), // 13: activity.SCNianSignAward + (*CSNianChange)(nil), // 14: activity.CSNianChange + (*SCNianChange)(nil), // 15: activity.SCNianChange } var file_protocol_activity_nian_proto_depIdxs = []int32{ - 6, // 0: activity.SCNianData.RankData:type_name -> activity.NianRankData - 3, // 1: activity.SCNianData.shopData:type_name -> activity.ShopData - 7, // 2: activity.NianRankData.Data:type_name -> activity.NianRankInfo - 8, // 3: activity.NianRankInfo.Award:type_name -> activity.RankAwardData - 8, // 4: activity.SCNianAttackData.Award:type_name -> activity.RankAwardData - 8, // 5: activity.SCNianAttackData.DieAward:type_name -> activity.RankAwardData - 8, // 6: activity.SCNianAttackData.ExtraDrop:type_name -> activity.RankAwardData - 8, // 7: activity.SCNianAttackData.FloorReward:type_name -> activity.RankAwardData - 8, // 8: activity.SCNianSignAward.SignAward:type_name -> activity.RankAwardData - 8, // 9: activity.SCNianChange.Award:type_name -> activity.RankAwardData - 10, // [10:10] is the sub-list for method output_type - 10, // [10:10] is the sub-list for method input_type - 10, // [10:10] is the sub-list for extension type_name - 10, // [10:10] is the sub-list for extension extendee - 0, // [0:10] is the sub-list for field type_name + 7, // 0: activity.SCNianData.RankData:type_name -> activity.NianRankData + 4, // 1: activity.SCNianData.shopData:type_name -> activity.ShopData + 1, // 2: activity.SCNianBuff.OpRetCode:type_name -> activity.OpResultCode_Nian + 8, // 3: activity.NianRankData.Data:type_name -> activity.NianRankInfo + 9, // 4: activity.NianRankInfo.Award:type_name -> activity.RankAwardData + 9, // 5: activity.SCNianAttackData.Award:type_name -> activity.RankAwardData + 9, // 6: activity.SCNianAttackData.DieAward:type_name -> activity.RankAwardData + 9, // 7: activity.SCNianAttackData.ExtraDrop:type_name -> activity.RankAwardData + 9, // 8: activity.SCNianAttackData.FloorReward:type_name -> activity.RankAwardData + 9, // 9: activity.SCNianSignAward.SignAward:type_name -> activity.RankAwardData + 1, // 10: activity.SCNianSignAward.OpRetCode:type_name -> activity.OpResultCode_Nian + 9, // 11: activity.SCNianChange.Award:type_name -> activity.RankAwardData + 1, // 12: activity.SCNianChange.OpRetCode:type_name -> activity.OpResultCode_Nian + 13, // [13:13] is the sub-list for method output_type + 13, // [13:13] is the sub-list for method input_type + 13, // [13:13] is the sub-list for extension type_name + 13, // [13:13] is the sub-list for extension extendee + 0, // [0:13] is the sub-list for field type_name } func init() { file_protocol_activity_nian_proto_init() } @@ -1311,7 +1411,7 @@ func file_protocol_activity_nian_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_protocol_activity_nian_proto_rawDesc, - NumEnums: 1, + NumEnums: 2, NumMessages: 14, NumExtensions: 0, NumServices: 0, diff --git a/protocol/activity/nian.proto b/protocol/activity/nian.proto index db207b9..e8d2a59 100644 --- a/protocol/activity/nian.proto +++ b/protocol/activity/nian.proto @@ -17,6 +17,11 @@ enum NianPacketID { PACKET_CSNianChange = 2670;//请求兑换小爆竹 PACKET_SCNianChange = 2671;//返回兑换道具 } +//操作结果 +enum OpResultCode_Nian { + OPRC_Sucess_Nian = 0; //成功 + OPRC_Error_Nian = 1; //失败 +} //获取年兽活动信息 //PACKET_CSNianData @@ -36,6 +41,7 @@ message SCNianData{ int64 BuffStartTime = 10; //Buff开始领取时间 int64 BuffEndTime = 11; //Buff结束领取时间 repeated ShopData shopData = 12;//购买礼包数量 + string ChangeData = 13; //兑换数据 } message ShopData{ @@ -52,6 +58,7 @@ message CSNianBuff{ //PACKET_SCNianBuff message SCNianBuff{ int64 BuffCount = 1; //BUFF剩余次数 + OpResultCode_Nian OpRetCode = 2; // 返回错误码 } message NianRankData{ @@ -92,6 +99,7 @@ message CSNianSignAward{ message SCNianSignAward{ int64 SignAwardTime = 1; repeated RankAwardData SignAward = 2;//签到奖励 + OpResultCode_Nian OpRetCode = 3; // 返回错误码 } //兑换 //PACKET_CSNianChange @@ -102,4 +110,5 @@ message CSNianChange{ message SCNianChange{ int32 Num = 1; repeated RankAwardData Award =2; + OpResultCode_Nian OpRetCode = 3; // 返回错误码 } \ No newline at end of file diff --git a/protocol/rank/rank.pb.go b/protocol/rank/rank.pb.go index 36a52c6..2bc12a4 100644 --- a/protocol/rank/rank.pb.go +++ b/protocol/rank/rank.pb.go @@ -52,6 +52,9 @@ const ( // 竞技馆抽奖历史 Rank_PACKET_CSLotteryHistory Rank = 10017 Rank_PACKET_SCLotteryHistory Rank = 10018 + //年兽排行榜 + Rank_PACKET_RANK_CSNian Rank = 10019 + Rank_PACKET_RANK_SCNian Rank = 10020 ) // Enum value maps for Rank. @@ -77,6 +80,8 @@ var ( 10016: "PACKET_SCRoomAwardOne", 10017: "PACKET_CSLotteryHistory", 10018: "PACKET_SCLotteryHistory", + 10019: "PACKET_RANK_CSNian", + 10020: "PACKET_RANK_SCNian", } Rank_value = map[string]int32{ "PACKET_RANK_ZERO": 0, @@ -99,6 +104,8 @@ var ( "PACKET_SCRoomAwardOne": 10016, "PACKET_CSLotteryHistory": 10017, "PACKET_SCLotteryHistory": 10018, + "PACKET_RANK_CSNian": 10019, + "PACKET_RANK_SCNian": 10020, } ) @@ -2331,6 +2338,237 @@ func (x *SCLotteryHistory) GetList() []*LotteryHistory { return nil } +// PACKET_RANK_CSNian +type CSNian struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Page int32 `protobuf:"varint,1,opt,name=Page,proto3" json:"Page,omitempty"` // 页数 + PageSize int32 `protobuf:"varint,2,opt,name=PageSize,proto3" json:"PageSize,omitempty"` // 每页数量 + TypeId int32 `protobuf:"varint,3,opt,name=TypeId,proto3" json:"TypeId,omitempty"` //1-幸运榜 2-伤害榜 +} + +func (x *CSNian) Reset() { + *x = CSNian{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_rank_rank_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CSNian) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CSNian) ProtoMessage() {} + +func (x *CSNian) ProtoReflect() protoreflect.Message { + mi := &file_protocol_rank_rank_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CSNian.ProtoReflect.Descriptor instead. +func (*CSNian) Descriptor() ([]byte, []int) { + return file_protocol_rank_rank_proto_rawDescGZIP(), []int{30} +} + +func (x *CSNian) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *CSNian) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *CSNian) GetTypeId() int32 { + if x != nil { + return x.TypeId + } + return 0 +} + +type NianRankData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Snid int32 `protobuf:"varint,1,opt,name=Snid,proto3" json:"Snid,omitempty"` // 玩家id + Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` // 昵称 + Score int64 `protobuf:"varint,3,opt,name=Score,proto3" json:"Score,omitempty"` + Rank int32 `protobuf:"varint,4,opt,name=Rank,proto3" json:"Rank,omitempty"` // 排名 + ModId int32 `protobuf:"varint,5,opt,name=ModId,proto3" json:"ModId,omitempty"` // 角色id +} + +func (x *NianRankData) Reset() { + *x = NianRankData{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_rank_rank_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NianRankData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NianRankData) ProtoMessage() {} + +func (x *NianRankData) ProtoReflect() protoreflect.Message { + mi := &file_protocol_rank_rank_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NianRankData.ProtoReflect.Descriptor instead. +func (*NianRankData) Descriptor() ([]byte, []int) { + return file_protocol_rank_rank_proto_rawDescGZIP(), []int{31} +} + +func (x *NianRankData) GetSnid() int32 { + if x != nil { + return x.Snid + } + return 0 +} + +func (x *NianRankData) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *NianRankData) GetScore() int64 { + if x != nil { + return x.Score + } + return 0 +} + +func (x *NianRankData) GetRank() int32 { + if x != nil { + return x.Rank + } + return 0 +} + +func (x *NianRankData) GetModId() int32 { + if x != nil { + return x.ModId + } + return 0 +} + +// PACKET_RANK_SCCoin +type SCNian struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ranks []*NianRankData `protobuf:"bytes,1,rep,name=Ranks,proto3" json:"Ranks,omitempty"` // 排行榜 + Me *NianRankData `protobuf:"bytes,2,opt,name=Me,proto3" json:"Me,omitempty"` // 玩家自己的排行信息 + Page int32 `protobuf:"varint,3,opt,name=Page,proto3" json:"Page,omitempty"` // 页数 + PageSize int32 `protobuf:"varint,4,opt,name=PageSize,proto3" json:"PageSize,omitempty"` // 每页数量 + Total int32 `protobuf:"varint,5,opt,name=Total,proto3" json:"Total,omitempty"` // 总数量 + TypeId int32 `protobuf:"varint,6,opt,name=TypeId,proto3" json:"TypeId,omitempty"` +} + +func (x *SCNian) Reset() { + *x = SCNian{} + if protoimpl.UnsafeEnabled { + mi := &file_protocol_rank_rank_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SCNian) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SCNian) ProtoMessage() {} + +func (x *SCNian) ProtoReflect() protoreflect.Message { + mi := &file_protocol_rank_rank_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SCNian.ProtoReflect.Descriptor instead. +func (*SCNian) Descriptor() ([]byte, []int) { + return file_protocol_rank_rank_proto_rawDescGZIP(), []int{32} +} + +func (x *SCNian) GetRanks() []*NianRankData { + if x != nil { + return x.Ranks + } + return nil +} + +func (x *SCNian) GetMe() *NianRankData { + if x != nil { + return x.Me + } + return nil +} + +func (x *SCNian) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *SCNian) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *SCNian) GetTotal() int32 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *SCNian) GetTypeId() int32 { + if x != nil { + return x.TypeId + } + return 0 +} + var File_protocol_rank_rank_proto protoreflect.FileDescriptor var file_protocol_rank_rank_proto_rawDesc = []byte{ @@ -2543,53 +2781,80 @@ var file_protocol_rank_rank_proto_rawDesc = []byte{ 0x43, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x28, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x72, 0x61, 0x6e, 0x6b, 0x2e, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x2a, 0x9e, 0x04, 0x0a, 0x04, 0x52, 0x61, - 0x6e, 0x6b, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, - 0x4b, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x52, 0x61, 0x6e, 0x6b, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x10, 0x90, 0x4e, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x52, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x10, 0x91, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, - 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x92, 0x4e, 0x12, 0x17, 0x0a, - 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x43, - 0x6f, 0x69, 0x6e, 0x10, 0x93, 0x4e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, 0x94, - 0x4e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, - 0x5f, 0x53, 0x43, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, 0x95, 0x4e, 0x12, 0x17, 0x0a, 0x12, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4c, - 0x6f, 0x67, 0x10, 0x96, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x53, 0x43, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x10, 0x97, 0x4e, 0x12, 0x1a, - 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, - 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x98, 0x4e, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x57, 0x69, 0x6e, 0x43, - 0x6f, 0x69, 0x6e, 0x10, 0x99, 0x4e, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x10, 0x9a, 0x4e, - 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, - 0x53, 0x43, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x10, 0x9b, 0x4e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x50, 0x65, 0x72, 0x6d, - 0x69, 0x74, 0x10, 0x9c, 0x4e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x10, 0x9d, 0x4e, - 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x52, 0x6f, 0x6f, - 0x6d, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0x9e, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x52, 0x6f, 0x6f, 0x6d, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, - 0x9f, 0x4e, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x52, - 0x6f, 0x6f, 0x6d, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x6e, 0x65, 0x10, 0xa0, 0x4e, 0x12, 0x1c, - 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4c, 0x6f, 0x74, 0x74, 0x65, - 0x72, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x10, 0xa1, 0x4e, 0x12, 0x1c, 0x0a, 0x17, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x10, 0xa2, 0x4e, 0x2a, 0x8d, 0x01, 0x0a, 0x0a, 0x52, - 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x14, - 0x0a, 0x10, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x5f, 0x57, 0x65, 0x65, 0x6b, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x10, 0x03, 0x12, - 0x15, 0x0a, 0x11, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x55, 0x70, - 0x57, 0x65, 0x65, 0x6b, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4d, 0x61, 0x78, 0x10, 0x05, 0x42, 0x24, 0x5a, 0x22, 0x6d, 0x6f, - 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, - 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x72, 0x61, 0x6e, 0x6b, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x72, 0x79, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x50, 0x0a, 0x06, 0x43, 0x53, 0x4e, + 0x69, 0x61, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x50, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x22, 0x76, 0x0a, 0x0c, 0x4e, + 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x53, + 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x52, 0x61, 0x6e, + 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x14, 0x0a, + 0x05, 0x4d, 0x6f, 0x64, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4d, 0x6f, + 0x64, 0x49, 0x64, 0x22, 0xb4, 0x01, 0x0a, 0x06, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x12, 0x28, + 0x0a, 0x05, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x72, 0x61, 0x6e, 0x6b, 0x2e, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x05, 0x52, 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x22, 0x0a, 0x02, 0x4d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x72, 0x61, 0x6e, 0x6b, 0x2e, 0x4e, 0x69, 0x61, 0x6e, + 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x02, 0x4d, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x50, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x50, 0x61, 0x67, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x2a, 0xd0, 0x04, 0x0a, 0x04, 0x52, + 0x61, 0x6e, 0x6b, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, + 0x4e, 0x4b, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x52, 0x61, 0x6e, 0x6b, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x10, 0x90, 0x4e, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x52, 0x61, 0x6e, 0x6b, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x10, 0x91, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x92, 0x4e, 0x12, 0x17, + 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, + 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x93, 0x4e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, + 0x94, 0x4e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, + 0x4b, 0x5f, 0x53, 0x43, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, 0x95, 0x4e, 0x12, 0x17, 0x0a, + 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x4c, 0x6f, 0x67, 0x10, 0x96, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x53, 0x43, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x10, 0x97, 0x4e, 0x12, + 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, + 0x53, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x98, 0x4e, 0x12, 0x1a, 0x0a, 0x15, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x57, 0x69, 0x6e, + 0x43, 0x6f, 0x69, 0x6e, 0x10, 0x99, 0x4e, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x10, 0x9a, + 0x4e, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, + 0x5f, 0x53, 0x43, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x10, 0x9b, 0x4e, 0x12, 0x19, 0x0a, 0x14, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x50, 0x65, 0x72, + 0x6d, 0x69, 0x74, 0x10, 0x9c, 0x4e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x10, 0x9d, + 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x52, 0x6f, + 0x6f, 0x6d, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0x9e, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x52, 0x6f, 0x6f, 0x6d, 0x41, 0x77, 0x61, 0x72, 0x64, + 0x10, 0x9f, 0x4e, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x52, 0x6f, 0x6f, 0x6d, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x6e, 0x65, 0x10, 0xa0, 0x4e, 0x12, + 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4c, 0x6f, 0x74, 0x74, + 0x65, 0x72, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x10, 0xa1, 0x4e, 0x12, 0x1c, 0x0a, + 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, + 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x10, 0xa2, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, + 0x6e, 0x10, 0xa3, 0x4e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, + 0x41, 0x4e, 0x4b, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x10, 0xa4, 0x4e, 0x2a, 0x8d, 0x01, + 0x0a, 0x0a, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x13, 0x0a, 0x0f, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4e, 0x6f, 0x6e, 0x65, 0x10, + 0x00, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, + 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x57, 0x65, 0x65, 0x6b, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4d, 0x6f, 0x6e, 0x74, 0x68, + 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x5f, 0x55, 0x70, 0x57, 0x65, 0x65, 0x6b, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4d, 0x61, 0x78, 0x10, 0x05, 0x42, 0x24, 0x5a, + 0x22, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x72, + 0x61, 0x6e, 0x6b, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2605,7 +2870,7 @@ func file_protocol_rank_rank_proto_rawDescGZIP() []byte { } var file_protocol_rank_rank_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_protocol_rank_rank_proto_msgTypes = make([]protoimpl.MessageInfo, 30) +var file_protocol_rank_rank_proto_msgTypes = make([]protoimpl.MessageInfo, 33) var file_protocol_rank_rank_proto_goTypes = []interface{}{ (Rank)(0), // 0: rank.Rank (RankInvite)(0), // 1: rank.RankInvite @@ -2639,6 +2904,9 @@ var file_protocol_rank_rank_proto_goTypes = []interface{}{ (*LotteryShow)(nil), // 29: rank.LotteryShow (*LotteryHistory)(nil), // 30: rank.LotteryHistory (*SCLotteryHistory)(nil), // 31: rank.SCLotteryHistory + (*CSNian)(nil), // 32: rank.CSNian + (*NianRankData)(nil), // 33: rank.NianRankData + (*SCNian)(nil), // 34: rank.SCNian } var file_protocol_rank_rank_proto_depIdxs = []int32{ 3, // 0: rank.SCRankMatch.Ranks:type_name -> rank.SeasonRank @@ -2659,11 +2927,13 @@ var file_protocol_rank_rank_proto_depIdxs = []int32{ 25, // 15: rank.LotteryHistory.Award:type_name -> rank.Item 29, // 16: rank.LotteryHistory.Show:type_name -> rank.LotteryShow 30, // 17: rank.SCLotteryHistory.List:type_name -> rank.LotteryHistory - 18, // [18:18] is the sub-list for method output_type - 18, // [18:18] is the sub-list for method input_type - 18, // [18:18] is the sub-list for extension type_name - 18, // [18:18] is the sub-list for extension extendee - 0, // [0:18] is the sub-list for field type_name + 33, // 18: rank.SCNian.Ranks:type_name -> rank.NianRankData + 33, // 19: rank.SCNian.Me:type_name -> rank.NianRankData + 20, // [20:20] is the sub-list for method output_type + 20, // [20:20] is the sub-list for method input_type + 20, // [20:20] is the sub-list for extension type_name + 20, // [20:20] is the sub-list for extension extendee + 0, // [0:20] is the sub-list for field type_name } func init() { file_protocol_rank_rank_proto_init() } @@ -3032,6 +3302,42 @@ func file_protocol_rank_rank_proto_init() { return nil } } + file_protocol_rank_rank_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CSNian); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protocol_rank_rank_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NianRankData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protocol_rank_rank_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SCNian); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -3039,7 +3345,7 @@ func file_protocol_rank_rank_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_protocol_rank_rank_proto_rawDesc, NumEnums: 2, - NumMessages: 30, + NumMessages: 33, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/rank/rank.proto b/protocol/rank/rank.proto index 5884297..2bd7790 100644 --- a/protocol/rank/rank.proto +++ b/protocol/rank/rank.proto @@ -33,6 +33,9 @@ enum Rank{ // 竞技馆抽奖历史 PACKET_CSLotteryHistory = 10017; PACKET_SCLotteryHistory = 10018; + //年兽排行榜 + PACKET_RANK_CSNian = 10019; + PACKET_RANK_SCNian = 10020; } // 排位榜 @@ -270,4 +273,29 @@ message LotteryHistory{ // PACKET_SCLotteryHistory message SCLotteryHistory{ repeated LotteryHistory List = 1; -} \ No newline at end of file +} + +// PACKET_RANK_CSNian +message CSNian{ + int32 Page = 1; // 页数 + int32 PageSize = 2; // 每页数量 + int32 TypeId = 3; //1-幸运榜 2-伤害榜 +} + +message NianRankData { + int32 Snid = 1; // 玩家id + string Name = 2; // 昵称 + int64 Score = 3; + int32 Rank = 4; // 排名 + int32 ModId = 5; // 角色id +} + +// PACKET_RANK_SCCoin +message SCNian{ + repeated NianRankData Ranks = 1; // 排行榜 + NianRankData Me = 2; // 玩家自己的排行信息 + int32 Page = 3; // 页数 + int32 PageSize = 4; // 每页数量 + int32 Total = 5; // 总数量 + int32 TypeId = 6; +} diff --git a/ranksrv/action_gatesrv.go b/ranksrv/action_gatesrv.go index 9576e91..5744dc8 100644 --- a/ranksrv/action_gatesrv.go +++ b/ranksrv/action_gatesrv.go @@ -32,6 +32,8 @@ func init() { com.Register(int(rankproto.Rank_PACKET_CSRoomAward), rankproto.CSRoomAward{}, CSRoomAward) // 竞技馆获奖记录 com.Register(int(rankproto.Rank_PACKET_CSLotteryHistory), rankproto.CSLotteryHistory{}, CSLotteryHistory) + //年兽排行榜 + com.Register(int(rankproto.Rank_PACKET_RANK_CSNian), rankproto.CSNian{}, CSNian) } func CSRankMatch(s *netlib.Session, d *rankproto.GateTransmit, packetId int, data interface{}, sid int64) error { @@ -646,3 +648,138 @@ func CSLotteryHistory(s *netlib.Session, d *rankproto.GateTransmit, packetId int }) return nil } +func CSNian(s *netlib.Session, d *rankproto.GateTransmit, packetId int, data interface{}, sid int64) error { + logger.Logger.Trace("CSNian data:", data) + msg, ok := data.(*rankproto.CSNian) + if !ok { + return nil + } + if msg.TypeId == 1 { + rank.NianLuckMgrInstance.Take(d.Platform, 0, func(list []*model.NianInfo, err error) { + if err != nil { + logger.Logger.Errorf("CSNian error: %v", err) + return + } + + page := msg.GetPage() + if page < 0 { + page = 0 + } + pageSize := msg.GetPageSize() + if pageSize < 1 { + pageSize = 10 + } + + start := page * pageSize + end := start + pageSize + if end >= int32(len(list)) { + end = int32(len(list)) + } + + var i int32 + var ranks []*rankproto.NianRankData + if end > start && int(start) < len(list) { + for _, v := range list[start:end] { + r := &rankproto.NianRankData{ + Snid: v.SnId, + Name: v.Name, + Score: v.Luck, + Rank: start + i, + ModId: v.ModId, + } + ranks = append(ranks, r) + i++ + } + } + + var me *rankproto.NianRankData + for k, v := range list { + if v.SnId == d.Snid { + me = &rankproto.NianRankData{ + Snid: v.SnId, + Name: v.Name, + Score: v.Luck, + Rank: int32(k), + ModId: v.ModId, + } + break + } + } + + pack := &rankproto.SCNian{ + Ranks: ranks, + Me: me, + Page: page, + PageSize: pageSize, + Total: int32(len(list)), + } + pack.TypeId = msg.TypeId + common.SendToGate(sid, int(rankproto.Rank_PACKET_RANK_SCNian), pack, s) + logger.Logger.Tracef("SCNian: %v", pack) + }) + } else if msg.TypeId == 2 { + rank.NianDamageMgrInstance.Take(d.Platform, 0, func(list []*model.NianInfo, err error) { + if err != nil { + logger.Logger.Errorf("CSNian error: %v", err) + return + } + + page := msg.GetPage() + if page < 0 { + page = 0 + } + pageSize := msg.GetPageSize() + if pageSize < 1 { + pageSize = 10 + } + + start := page * pageSize + end := start + pageSize + if end >= int32(len(list)) { + end = int32(len(list)) + } + + var i int32 + var ranks []*rankproto.NianRankData + if end > start && int(start) < len(list) { + for _, v := range list[start:end] { + r := &rankproto.NianRankData{ + Snid: v.SnId, + Name: v.Name, + Score: v.Damage, + Rank: start + i, + ModId: v.ModId, + } + ranks = append(ranks, r) + i++ + } + } + + var me *rankproto.NianRankData + for k, v := range list { + if v.SnId == d.Snid { + me = &rankproto.NianRankData{ + Snid: v.SnId, + Name: v.Name, + Score: v.Damage, + Rank: int32(k), + ModId: v.ModId, + } + break + } + } + + pack := &rankproto.SCNian{ + Ranks: ranks, + Me: me, + Page: page, + PageSize: pageSize, + Total: int32(len(list)), + } + pack.TypeId = msg.TypeId + common.SendToGate(sid, int(rankproto.Rank_PACKET_RANK_SCNian), pack, s) + logger.Logger.Tracef("SCCoin: %v", pack) + }) + } + return nil +} diff --git a/worldsrv/action_nian.go b/worldsrv/action_nian.go index 05aec89..c792b7e 100644 --- a/worldsrv/action_nian.go +++ b/worldsrv/action_nian.go @@ -94,7 +94,6 @@ func CSNianData(s *netlib.Session, packetid int, data interface{}, sid int64) er num, _ := strconv.Atoi(s) intSlice = append(intSlice, num) } - break } if value.Id == 18 { str := value.PropValue @@ -104,7 +103,6 @@ func CSNianData(s *netlib.Session, packetid int, data interface{}, sid int64) er num, _ := strconv.Atoi(s) shopNum = append(shopNum, num) } - break } } for pos, shopId := range intSlice { @@ -118,6 +116,13 @@ func CSNianData(s *netlib.Session, packetid int, data interface{}, sid int64) er shopInfo.MaxShopNum = int32(num) pack.ShopData = append(pack.ShopData, shopInfo) } + changeData := "" + for _, value := range sData { + if value.Id == 21 { + changeData = value.PropValue + break + } + } StartTs := common.IntToTime(int(pool.List[0].BuffStartTime)).Unix() EndTs := common.IntToTime(int(pool.List[0].BuffEndTime)).Unix() pack.BuffStartTime = StartTs @@ -130,7 +135,7 @@ func CSNianData(s *netlib.Session, packetid int, data interface{}, sid int64) er pack.BuffCount = p.WelfData.NianData.BuffCount pack.BuffStatus = p.WelfData.NianData.BuffStatus pack.SignAwardTime = p.WelfData.NianData.SignAwardTime - + pack.ChangeData = changeData logger.Logger.Trace("请求年兽活动信息 ", pack) p.SendToClient(int(activity.NianPacketID_PACKET_SCNianData), pack) } @@ -489,21 +494,21 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) if luckValue < RankNeed { damage = 0 } - //if luckValue > 0 || damage > 0 { - log := &model.NianInfo{ - Platform: p.Platform, - SnId: p.SnId, - Name: p.Name, - Luck: luckValue, - Damage: damage, - ModId: p.Roles.ModId, - Ts: time.Now().Unix(), + if luckValue > 0 || damage > 0 { + log := &model.NianInfo{ + Platform: p.Platform, + SnId: p.SnId, + Name: p.Name, + Luck: luckValue, + Damage: damage, + ModId: p.Roles.ModId, + Ts: time.Now().Unix(), + } + if luckTime > 0 { + log.LuckTime = luckTime + } + mq.Write(log) } - if luckTime > 0 { - log.LuckTime = luckTime - } - mq.Write(log) - //} } return nil } @@ -521,6 +526,10 @@ func CSNianBuff(s *netlib.Session, packetid int, data interface{}, sid int64) er p.WelfData.NianData = &model.NianData{} } if p.WelfData.NianData.BuffStatus { + pack := &activity.SCNianBuff{ + OpRetCode: activity.OpResultCode_Nian_OPRC_Error_Nian, + } + p.SendToClient(int(activity.NianPacketID_PACKET_SCNianBuff), pack) return nil } pool := WelfareMgrSington.GetConfig(p.Platform).ActivityNianConfig @@ -549,6 +558,12 @@ func CSNianBuff(s *netlib.Session, packetid int, data interface{}, sid int64) er BuffCount: p.WelfData.NianData.BuffCount, } p.SendToClient(int(activity.NianPacketID_PACKET_SCNianBuff), pack) + } else { + logger.Logger.Trace("CSNianSignAward 活动时间未到!") + pack := &activity.SCNianBuff{ + OpRetCode: activity.OpResultCode_Nian_OPRC_Error_Nian, + } + p.SendToClient(int(activity.NianPacketID_PACKET_SCNianBuff), pack) } } return nil @@ -570,15 +585,18 @@ func CSNianSignAward(s *netlib.Session, packetid int, data interface{}, sid int6 logger.Logger.Trace("CSNianSignAward 活动关闭!") return nil } + pack := &activity.SCNianSignAward{} if p.WelfData.NianData == nil { p.WelfData.NianData = &model.NianData{} } if p.WelfData.NianData.SignAwardTime > 0 { + pack.OpRetCode = activity.OpResultCode_Nian_OPRC_Error_Nian + p.SendToClient(int(activity.NianPacketID_PACKET_SCNianSignAward), pack) return nil } p.WelfData.NianData.SignAwardTime = time.Now().Unix() //奖励 - pack := &activity.SCNianSignAward{} + pack.SignAwardTime = p.WelfData.NianData.SignAwardTime var items []*model.Item for _, info := range pool.List[0].SignReward { @@ -630,7 +648,10 @@ func CSNianChange(s *netlib.Session, packetid int, data interface{}, sid int64) break } } + pack := &activity.SCNianChange{} if p.Diamond < int64(diamond*int(num)) { + pack.OpRetCode = activity.OpResultCode_Nian_OPRC_Error_Nian + p.SendToClient(int(activity.NianPacketID_PACKET_SCNianChange), pack) return nil } p.AddDiamond(int64(-diamond*int(num)), 0, common.GainWayNianCost, "sys", "年兽活动兑换道具") @@ -651,7 +672,7 @@ func CSNianChange(s *netlib.Session, packetid int, data interface{}, sid int64) Operator: "system", Remark: "年兽活动-兑换", }) - pack := &activity.SCNianChange{} + pack.Num = num for _, item := range items { info := &activity.RankAwardData{ diff --git a/worldsrv/action_shop.go b/worldsrv/action_shop.go index 87153b9..21f6bfa 100644 --- a/worldsrv/action_shop.go +++ b/worldsrv/action_shop.go @@ -207,7 +207,6 @@ func (this *CSVCPayShopHandler) Process(s *netlib.Session, packetid int, data in } intSlice = append(intSlice, num) } - break } if value.Id == 18 { str := value.PropValue @@ -220,7 +219,6 @@ func (this *CSVCPayShopHandler) Process(s *netlib.Session, packetid int, data in } shopNum = append(shopNum, num) } - break } } shopPos := 0 @@ -535,7 +533,6 @@ func (this *CSPayInfoHandler) Process(s *netlib.Session, packetid int, data inte num, _ := strconv.Atoi(s) intSlice = append(intSlice, num) } - break } if value.Id == 18 { str := value.PropValue @@ -545,7 +542,6 @@ func (this *CSPayInfoHandler) Process(s *netlib.Session, packetid int, data inte num, _ := strconv.Atoi(s) shopNum = append(shopNum, num) } - break } } shopPos := 0 diff --git a/worldsrv/rankmatch.go b/worldsrv/rankmatch.go index b847046..c312f2f 100644 --- a/worldsrv/rankmatch.go +++ b/worldsrv/rankmatch.go @@ -647,6 +647,8 @@ func (r *RankMatchMgr) OnDayTimer() { logger.Logger.Info("(this *RankMatchMgr) OnDayTimer") //排行榜发奖 //r.RankAward() + //年兽排行榜发奖 + r.NianRankAward() for _, platform := range PlatformMgrSingleton.GetPlatforms() { if platform.IdStr == DefaultPlatform { continue @@ -930,6 +932,184 @@ func (r *RankMatchMgr) Save(platform string, snid int32, isSync, force bool) { })).StartByFixExecutor(fmt.Sprintf("platform%s", ret.Platform)) } +// 年兽排行榜发奖 +func (r *RankMatchMgr) NianRankAward() { + logger.Logger.Trace("年兽排行榜开始发奖!!!!") + for _, v := range PlatformMgrSingleton.GetPlatforms() { + platform := v.IdStr + rankConfig := PlatformMgrSingleton.GetConfig(platform).NianRankReward + if rankConfig == nil { + continue + } + pool := WelfareMgrSington.GetConfig(platform).ActivityNianConfig + if pool == nil || pool.List == nil { + return + } + if pool.Switch == model.WelfareClose { + return + } + startTime := pool.List[0].ActivityStart + endTime := pool.List[0].ActivityEnd + t, _ := time.Parse(time.DateTime, startTime) + // 转换为时间戳(以秒为单位) + timestamp := t.Unix() + end, _ := time.Parse(time.DateTime, endTime) + endTimestamp := end.Unix() + nowTime := time.Now().Unix() + if nowTime < timestamp || nowTime > endTimestamp { + return + } + for _, info := range rankConfig.RankData { + if info.TypeId == 1 { + rankAward := info.RankInfo + if rankAward == nil { + continue + } + var players []*model.PlayerBaseInfo + list, err := model.FindLuckNianRankList(&model.FindNianListArgs{ + Platform: platform, + }) + task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { + for _, vv := range list.List { + player := PlayerMgrSington.GetPlayerBySnId(vv.SnId) + if player != nil { + players = append(players, &model.PlayerBaseInfo{ + SnId: player.SnId, + LastChannel: player.LastChannel, + }) + } else { + baseInfo := model.GetPlayerBaseInfo(platform, vv.SnId) + players = append(players, baseInfo) + } + } + return nil + }), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) { + if err != nil { + logger.Logger.Errorf("RankMatchMgr OnDayTimer FindLuckNianRankList err:%v", err) + return + } + rankId := int32(1) + for k, player := range players { + if player == nil { + logger.Logger.Errorf("RankMatchMgr OnDayTimer FindLuckNianRankList player is nil %v", list.List[k].SnId) + continue + } + var items []int64 + for _, award := range rankAward[rankId].Award { + items = append(items, int64(award.ItemId)) + items = append(items, award.ItemNum) + } + if len(items) == 0 { + break + } + // 发邮件 + var newMsg *model.Message + task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { + title := i18n.Tr("languages", "NianLuckTitle") + content := i18n.Tr("languages", "NianLuckAward", []int{int(rankId), int(rankId), int(rankId), int(rankId)}) + newMsg = model.NewMessage("", 0, "", player.SnId, model.MSGTYPE_RANK_REWARD, + title, content, 0, 0, model.MSGSTATE_UNREAD, time.Now().Unix(), 0, "", items, platform, model.HallTienlen, nil) + err := model.InsertMessage(platform, newMsg) + if err != nil { + logger.Logger.Errorf("发送邮件失败 snid:%v err:%v", player.SnId, err) + return err + } + return nil + }), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) { + p := PlayerMgrSington.GetPlayerBySnId(player.SnId) + if p != nil { + p.AddMessage(newMsg) + } + })).Start() + rankId += 1 + } + //清除幸运榜数值 + err := model.ClearNianRank(&model.FindNianListArgs{ + Platform: platform, + }) + if err != nil { + logger.Logger.Errorf("清除幸运榜数值失败 err:%v", err) + } + + })).StartByExecutor("NianLuck_Award") + } else if info.TypeId == 2 { + if time.Now().Day()-1 != end.Day() { + return + } + rankAward := info.RankInfo + if rankAward == nil { + continue + } + var players []*model.PlayerBaseInfo + list, err := model.FindDamageNianRankList(&model.FindNianListArgs{ + Platform: platform, + }) + task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { + for _, vv := range list.List { + player := PlayerMgrSington.GetPlayerBySnId(vv.SnId) + if player != nil { + players = append(players, &model.PlayerBaseInfo{ + SnId: player.SnId, + LastChannel: player.LastChannel, + }) + } else { + baseInfo := model.GetPlayerBaseInfo(platform, vv.SnId) + players = append(players, baseInfo) + } + } + return nil + }), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) { + if err != nil { + logger.Logger.Errorf("RankMatchMgr OnDayTimer FindLuckNianRankList err:%v", err) + return + } + rankId := int32(1) + for k, player := range players { + if player == nil { + logger.Logger.Errorf("RankMatchMgr OnDayTimer FindLuckNianRankList player is nil %v", list.List[k].SnId) + continue + } + var items []int64 + for _, award := range rankAward[rankId].Award { + items = append(items, int64(award.ItemId)) + items = append(items, award.ItemNum) + } + if len(items) == 0 { + break + } + // 发邮件 + var newMsg *model.Message + task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { + title := i18n.Tr("languages", "NianDamageTitle") + content := i18n.Tr("languages", "NianDamageAward", []int{int(rankId), int(rankId), int(rankId), int(rankId)}) + newMsg = model.NewMessage("", 0, "", player.SnId, model.MSGTYPE_RANK_REWARD, + title, content, 0, 0, model.MSGSTATE_UNREAD, time.Now().Unix(), 0, "", items, platform, model.HallTienlen, nil) + err := model.InsertMessage(platform, newMsg) + if err != nil { + logger.Logger.Errorf("发送邮件失败 snid:%v err:%v", player.SnId, err) + return err + } + return nil + }), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) { + p := PlayerMgrSington.GetPlayerBySnId(player.SnId) + if p != nil { + p.AddMessage(newMsg) + } + })).Start() + rankId += 1 + } + //删除数据库数据 + err := model.DelNianRank(&model.FindNianListArgs{ + Platform: platform, + }) + if err != nil { + logger.Logger.Errorf("删除年兽排行榜数据库数据 err:%v", err) + } + })).StartByExecutor("NianDamage_Award") + } + } + } +} func (r *RankMatchMgr) Release(platform string, snid int32) { delete(r.playerSeasons, snid) } From a14750dfb87ac2110d94556e05dd67ec525e5665 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Sat, 4 Jan 2025 09:44:38 +0800 Subject: [PATCH 19/47] update excel --- data/DB_NewYearRankReward.dat | 40 ++++++++-------- data/DB_PigBank_Diamond.dat | 2 +- data/DB_PropExchange.dat | Bin 384 -> 384 bytes data/DB_Task.dat | Bin 7162 -> 7589 bytes data/DB_Task.json | 84 ++++++++++++++++++++++++++++++++++ xlsx/DB_Task.xlsx | Bin 24783 -> 25364 bytes 6 files changed, 105 insertions(+), 21 deletions(-) diff --git a/data/DB_NewYearRankReward.dat b/data/DB_NewYearRankReward.dat index e1486ba..d2486ff 100644 --- a/data/DB_NewYearRankReward.dat +++ b/data/DB_NewYearRankReward.dat @@ -1,10 +1,10 @@ ""d" ""d" -"""d +""d" ""d ""c -""b +"b" ""a ""`   ""_ @@ -15,40 +15,40 @@   ""\   ""[ ""Z -""Y +"Y" ""X -"W" +""W ""V -""U +"U" ""T ""S -""R +"R" ""Q ""P ""O ""N ""M -"L" +""L ""K -"J" -"I" +""J +""I   ""H !!""G -""""F -##"E" +"""F" +##""E $$""D -%%""C +%%"C" &&""B ''""A ((""@ -)""d" +)"d"" *""d" -+""d" ++"d"" ,""d -""c .""b /""a -0""` +0"`" 1 ""_ 2 ""^ @@ -59,16 +59,16 @@ 7""Y 8""X 9""W -:"V" +:""V ;""U <""T -=""S +="S" >""R ?""Q @""P -A"O" +A""O B""N -C""M +C"M" D""L E""K F""J @@ -80,5 +80,5 @@ L$""D M%""C N&""B -O'""A +O'"A" P(""@ \ No newline at end of file diff --git a/data/DB_PigBank_Diamond.dat b/data/DB_PigBank_Diamond.dat index 79630b9..735a0e1 100644 --- a/data/DB_PigBank_Diamond.dat +++ b/data/DB_PigBank_Diamond.dat @@ -1,4 +1,4 @@  (8@;PdX`c < ((2Ÿ28@;JƸJPdX` -?/ 2(22Ÿ8@;JƸJPdX` \ No newline at end of file +?/ 2(2Ÿ28@;JƸJPdX` \ No newline at end of file diff --git a/data/DB_PropExchange.dat b/data/DB_PropExchange.dat index 72f65f3801d2f8b5afbf35bfce57fdf6897cb23a..25efbb46b252e46cd63aa3eb9e556b278650c6bd 100644 GIT binary patch literal 384 zcmd-w<6snElw#w!+{O&1uR!UmQ2H8_z7C?5I5-yevI!h$vE|a^U;?YZ0hPZArEfv$ z+i2>;IUweP%>mknRXq{z0Nba;33f-r+D9y0u^cR5hrkTHgUumC7z}e5!~%AXML>^! KVdi3>Ed&5(YCJUn literal 384 zcmd-w<6snElw#w!-o^~3FGJ}oQ2HvAz6PR|I5-yevI!h$vE|a^U;?YZ0hPZArEfv$ z+i2>;Iq;j0%N(%1NbZA}%L#Tz!`eqIT(KN1V28jI!VH2r9Of~s4g?x}2kKxHk1Mfr OECPD;3o{o3Z6N?;ay&Hv diff --git a/data/DB_Task.dat b/data/DB_Task.dat index ea14d5def9d06ebd5abbf5fefaec834f78a21968..f7ef517aea95dd8dce766a5b4e2d00985da3fe4b 100644 GIT binary patch delta 571 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 Date: Sat, 4 Jan 2025 10:23:58 +0800 Subject: [PATCH 20/47] =?UTF-8?q?fix=20=E5=A5=BD=E5=8F=8B=E7=94=B3?= =?UTF-8?q?=E8=AF=B7=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/friendmgr.go | 106 +++++++++++++++++++++++------------------- 1 file changed, 57 insertions(+), 49 deletions(-) diff --git a/worldsrv/friendmgr.go b/worldsrv/friendmgr.go index 3c9c8af..1cd30a3 100644 --- a/worldsrv/friendmgr.go +++ b/worldsrv/friendmgr.go @@ -564,13 +564,69 @@ func (this *FriendMgr) FriendAgree(p *Player, destP *model.BindFriend) { } logger.Logger.Tracef(">>FriendAgree %d -> %d, %v", p.SnId, destP.SnId, pack) } + + // 删除申请者的申请列表 + delApplyListFunc := func(plt string, snid int32, applySnid int32) friend.OpResultCode { + // 删除被申请者的申请列表 + list1, err := model.QueryFriendApplyBySnid(plt, snid) + if err != nil { + logger.Logger.Errorf("QueryFriendApplyBySnid %v error: %v", snid, err) + return friend.OpResultCode_OPRC_Error + } + if list1 != nil { + k := 0 + for k < len(list1.ApplySnids) { + if list1.ApplySnids[k].SnId == applySnid { + list1.ApplySnids = append(list1.ApplySnids[:k], list1.ApplySnids[k+1:]...) + model.UpsertFriendApply(plt, snid, list1) + } else { + k++ + } + } + } + // 删除发起方的申请列表 + list2, err := model.QueryFriendApplyListBySnid(plt, applySnid) + if err != nil { + logger.Logger.Errorf("QueryFriendApplyListBySnid %v error: %v", applySnid, err) + return friend.OpResultCode_OPRC_Error + } + if list2 != nil { + k := 0 + for k < len(list2.List) { + if list2.List[k] == snid { + list2.List = append(list2.List[:k], list2.List[k+1:]...) + model.UpsertApplyList(plt, list2) + } else { + k++ + } + } + } + + if applySnid == destP.SnId && list2 != nil { + applyList = list2.List + } + + if applySnid == p.SnId && list2 != nil { + meApplyList = list2.List + } + + return friend.OpResultCode_OPRC_Sucess + } + me := FriendMgrSingleton.GetPlayer(p.Platform, p.SnId) if me == nil { SendToClick(friend.OpResultCode_OPRC_Error) return } if FriendMgrSingleton.IsFriend(p.Platform, p.SnId, destP.SnId) { //已经是好友了 - SendToClick(friend.OpResultCode_OPRC_Friend_AlreadyAdd) + // 删除申请者的申请列表 + task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { + delApplyListFunc(p.Platform, p.SnId, destP.SnId) + delApplyListFunc(p.Platform, destP.SnId, p.SnId) + return nil + }), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) { + SendToClick(friend.OpResultCode_OPRC_Friend_AlreadyAdd) + })).StartByFixExecutor(FriendWrite) return } //验证自己 @@ -612,54 +668,6 @@ func (this *FriendMgr) FriendAgree(p *Player, destP *model.BindFriend) { } } - // 删除申请者的申请列表 - delApplyListFunc := func(plt string, snid int32, applySnid int32) friend.OpResultCode { - // 删除被申请者的申请列表 - list1, err := model.QueryFriendApplyBySnid(plt, snid) - if err != nil { - logger.Logger.Errorf("QueryFriendApplyBySnid %v error: %v", snid, err) - return friend.OpResultCode_OPRC_Error - } - if list1 != nil { - k := 0 - for k < len(list1.ApplySnids) { - if list1.ApplySnids[k].SnId == applySnid { - list1.ApplySnids = append(list1.ApplySnids[:k], list1.ApplySnids[k+1:]...) - model.UpsertFriendApply(plt, snid, list1) - } else { - k++ - } - } - } - // 删除发起方的申请列表 - list2, err := model.QueryFriendApplyListBySnid(plt, applySnid) - if err != nil { - logger.Logger.Errorf("QueryFriendApplyListBySnid %v error: %v", applySnid, err) - return friend.OpResultCode_OPRC_Error - } - if list2 != nil { - k := 0 - for k < len(list2.List) { - if list2.List[k] == snid { - list2.List = append(list2.List[:k], list2.List[k+1:]...) - model.UpsertApplyList(plt, list2) - } else { - k++ - } - } - } - - if applySnid == destP.SnId && list2 != nil { - applyList = list2.List - } - - if applySnid == p.SnId && list2 != nil { - meApplyList = list2.List - } - - return friend.OpResultCode_OPRC_Sucess - } - //查看是否在申请列表 code := delApplyListFunc(p.Platform, p.SnId, destP.SnId) if code != friend.OpResultCode_OPRC_Sucess { From 18e9575aa3dc8cb698ac92399a9f88feedd294d7 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Sat, 4 Jan 2025 10:31:02 +0800 Subject: [PATCH 21/47] =?UTF-8?q?=E5=B9=B4=E5=85=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/action_nian.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/worldsrv/action_nian.go b/worldsrv/action_nian.go index c792b7e..86d9075 100644 --- a/worldsrv/action_nian.go +++ b/worldsrv/action_nian.go @@ -123,6 +123,11 @@ func CSNianData(s *netlib.Session, packetid int, data interface{}, sid int64) er break } } + signTime := int64(0) + if p.WelfData.NianData.SignAwardTime > 0 { + nextDay := time.Now().Add(24 * time.Hour).Truncate(24 * time.Hour) + signTime = nextDay.Unix() + } StartTs := common.IntToTime(int(pool.List[0].BuffStartTime)).Unix() EndTs := common.IntToTime(int(pool.List[0].BuffEndTime)).Unix() pack.BuffStartTime = StartTs @@ -134,7 +139,7 @@ func CSNianData(s *netlib.Session, packetid int, data interface{}, sid int64) er pack.AwardTime = p.WelfData.NianData.SignAwardTime pack.BuffCount = p.WelfData.NianData.BuffCount pack.BuffStatus = p.WelfData.NianData.BuffStatus - pack.SignAwardTime = p.WelfData.NianData.SignAwardTime + pack.SignAwardTime = signTime pack.ChangeData = changeData logger.Logger.Trace("请求年兽活动信息 ", pack) p.SendToClient(int(activity.NianPacketID_PACKET_SCNianData), pack) From a51ec6667d083c7b76b4fa8f88101d46c7b07b19 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Sat, 4 Jan 2025 11:04:48 +0800 Subject: [PATCH 22/47] =?UTF-8?q?=E5=B9=B4=E5=85=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/action_nian.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/worldsrv/action_nian.go b/worldsrv/action_nian.go index 86d9075..9896e9e 100644 --- a/worldsrv/action_nian.go +++ b/worldsrv/action_nian.go @@ -576,9 +576,9 @@ func CSNianBuff(s *netlib.Session, packetid int, data interface{}, sid int64) er // 领取签到奖励 func CSNianSignAward(s *netlib.Session, packetid int, data interface{}, sid int64) error { - if _, ok := data.(*activity.CSNianBuff); ok { + if _, ok := data.(*activity.CSNianSignAward); ok { p := PlayerMgrSington.GetOnlinePlayer(sid) - logger.Logger.Trace("客户端请求请求领取BUFF snid = ", p.SnId) + logger.Logger.Trace("领取签到奖励 snid = ", p.SnId) if p == nil { return nil } From a5bf9df2895f3d33ab5f08cda82fe6bb203e4eb5 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Sat, 4 Jan 2025 11:55:08 +0800 Subject: [PATCH 23/47] =?UTF-8?q?=E5=B9=B4=E5=85=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/action_nian.go | 42 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/worldsrv/action_nian.go b/worldsrv/action_nian.go index 9896e9e..acd8108 100644 --- a/worldsrv/action_nian.go +++ b/worldsrv/action_nian.go @@ -590,6 +590,19 @@ func CSNianSignAward(s *netlib.Session, packetid int, data interface{}, sid int6 logger.Logger.Trace("CSNianSignAward 活动关闭!") return nil } + //判断活动时间 + startTime := pool.List[0].ActivityStart + endTime := pool.List[0].ActivityEnd + t, _ := time.Parse(time.DateTime, startTime) + // 转换为时间戳(以秒为单位) + timestamp := t.Unix() + end, _ := time.Parse(time.DateTime, endTime) + endTimestamp := end.Unix() + nowTime := time.Now().Unix() + if nowTime < timestamp || nowTime > endTimestamp { + return nil + } + pack := &activity.SCNianSignAward{} if p.WelfData.NianData == nil { p.WelfData.NianData = &model.NianData{} @@ -631,15 +644,36 @@ func CSNianSignAward(s *netlib.Session, packetid int, data interface{}, sid int6 func CSNianChange(s *netlib.Session, packetid int, data interface{}, sid int64) error { if msg, ok := data.(*activity.CSNianChange); ok { - num := msg.Num - if num <= 0 || num > 99 { - return nil - } p := PlayerMgrSington.GetOnlinePlayer(sid) logger.Logger.Trace("客户端请求请求年兽兑换 snid = ", p.SnId) if p == nil { return nil } + pool := WelfareMgrSington.GetConfig(p.Platform).ActivityNianConfig + if pool == nil || pool.List == nil { + return nil + } + if pool.Switch == model.WelfareClose { + logger.Logger.Trace("CSNianSignAward 活动关闭!") + return nil + } + //判断活动时间 + startTime := pool.List[0].ActivityStart + endTime := pool.List[0].ActivityEnd + t, _ := time.Parse(time.DateTime, startTime) + // 转换为时间戳(以秒为单位) + timestamp := t.Unix() + end, _ := time.Parse(time.DateTime, endTime) + endTimestamp := end.Unix() + nowTime := time.Now().Unix() + if nowTime < timestamp || nowTime > endTimestamp { + return nil + } + num := msg.Num + if num <= 0 || num > 99 { + return nil + } + sData := srvdata.PBDB_NewYearActivityMgr.Datas.GetArr() itemNum := 0 coin := 0 From 06ed65d88f339a1ce82c3d040e809a5d9d14ef19 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Sat, 4 Jan 2025 15:12:28 +0800 Subject: [PATCH 24/47] =?UTF-8?q?modify=20mq=E6=B8=B8=E6=88=8F=E8=AE=B0?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gamesrv/base/scene.go | 64 ++++++++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 28 deletions(-) diff --git a/gamesrv/base/scene.go b/gamesrv/base/scene.go index 4f49ec0..8c550ef 100644 --- a/gamesrv/base/scene.go +++ b/gamesrv/base/scene.go @@ -2094,11 +2094,6 @@ func (this *Scene) Statistics(param *StaticParam) { logger.Logger.Tracef("Statistics gameId:%v wbLevel:%v gain:%v addGain:%v", this.GameId, wbLevel, param.Gain, addGain) - // 比赛场,私人房不统计 - if this.IsMatchScene() || this.IsPrivateScene() { - return - } - var totalIn int64 var totalOut int64 now := time.Now() @@ -2181,6 +2176,40 @@ func (this *Scene) Statistics(param *StaticParam) { statics = append(statics, &data.Statics) } + f := func(list []*model.PlayerGameStatics) { + for _, data := range list { + if data != nil { + if !this.IsMatchScene() && !this.IsPrivateScene() { // 比赛场,私人房不统计 + data.TotalIn += totalIn + data.TotalOut += totalOut + data.Tax += param.GainTax + } + if param.IsAddTimes { + data.GameTimes++ + if param.Gain > 0 { + data.WinGameTimes++ + data.WinGameTimesNum++ + data.LoseGameTimesNum = 0 + } else if param.Gain < 0 { + data.LoseGameTimes++ + data.LoseGameTimesNum++ + data.WinGameTimesNum = 0 + } else { + data.DrawGameTimes++ + data.WinGameTimesNum = 0 + data.LoseGameTimesNum = 0 + } + } + } + } + } + f(statics) + statics = statics[:0] + + if this.IsMatchScene() || this.IsPrivateScene() { + return + } + // 新手输赢统计 if !model.GameParamData.CloseNovice && !common.InSliceInt(model.GameParamData.CloseNoviceGame, int(this.GameId)) && isControl && wbLevel == 0 && isNovice { keyNoviceGameId := common.GetKeyNoviceGameId(int(this.GameId)) @@ -2249,29 +2278,8 @@ func (this *Scene) Statistics(param *StaticParam) { logger.Logger.Tracef("Statistics PlayerPool gameId:%v wbLevel:%v gain:%v addGain:%v", this.GameId, wbLevel, param.Gain, addGain) } - for _, data := range statics { - if data != nil { - data.TotalIn += totalIn - data.TotalOut += totalOut - data.Tax += param.GainTax - if param.IsAddTimes { - data.GameTimes++ - if param.Gain > 0 { - data.WinGameTimes++ - data.WinGameTimesNum++ - data.LoseGameTimesNum = 0 - } else if param.Gain < 0 { - data.LoseGameTimes++ - data.LoseGameTimesNum++ - data.WinGameTimesNum = 0 - } else { - data.DrawGameTimes++ - data.WinGameTimesNum = 0 - data.LoseGameTimesNum = 0 - } - } - } - } + f(statics) + statics = statics[:0] // 玩家身上元数据 if param.IsAddTimes { From 7232de625d2bbbacee767d714651c7580cafaf2f Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Sat, 4 Jan 2025 18:02:14 +0800 Subject: [PATCH 25/47] =?UTF-8?q?modify=20=E7=BB=93=E7=AE=97=E9=87=8D?= =?UTF-8?q?=E8=BF=9E=E5=8F=91=E9=80=81=E7=BB=93=E7=AE=97=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gamesrv/tienlen/scenedata_tienlen.go | 1 + gamesrv/tienlen/scenepolicy_tienlen.go | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/gamesrv/tienlen/scenedata_tienlen.go b/gamesrv/tienlen/scenedata_tienlen.go index 5ca6e11..f242ee5 100644 --- a/gamesrv/tienlen/scenedata_tienlen.go +++ b/gamesrv/tienlen/scenedata_tienlen.go @@ -73,6 +73,7 @@ type TienLenSceneData struct { RoundLogId []string // 每局牌局记录id CustomLogSave bool // 是否已经保存日志 PlayerAward map[int32]*[]*model.Item // 房卡场最终奖励 + bill *tienlen.SCTienLenGameBilled } func NewTienLenSceneData(s *base.Scene) *TienLenSceneData { diff --git a/gamesrv/tienlen/scenepolicy_tienlen.go b/gamesrv/tienlen/scenepolicy_tienlen.go index 0ebfebf..4161a68 100644 --- a/gamesrv/tienlen/scenepolicy_tienlen.go +++ b/gamesrv/tienlen/scenepolicy_tienlen.go @@ -2623,6 +2623,7 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) { proto.SetDefaults(pack) s.Broadcast(int(tienlen.TienLenPacketID_PACKET_SCTienLenGameBilled), pack, 0) logger.Logger.Trace("TienLenPacketID_PACKET_SCTienLenGameBilled gameFreeId:", sceneEx.GetGameFreeId(), ";pack:", pack) + sceneEx.bill = pack if sceneEx.IsCustom() && sceneEx.TotalOfGames > 0 { for _, v := range tienlenType.PlayerData { @@ -2932,6 +2933,16 @@ func (this *SceneBilledStateTienLen) OnPlayerOp(s *base.Scene, p *base.Player, o // 玩家事件 func (this *SceneBilledStateTienLen) OnPlayerEvent(s *base.Scene, p *base.Player, evtcode int, params []int64) { this.SceneBaseStateTienLen.OnPlayerEvent(s, p, evtcode, params) + sceneEx, ok := s.GetExtraData().(*TienLenSceneData) + if !ok { + return + } + switch evtcode { + case base.PlayerEventRehold: + if sceneEx.bill != nil && sceneEx.IsRankMatch() { + p.SendToClient(int(tienlen.TienLenPacketID_PACKET_SCTienLenGameBilled), sceneEx.bill) + } + } } func (this *SceneBilledStateTienLen) OnTick(s *base.Scene) { From 91d3cfe16b0fbefae1542db8ac06555df7c2c3ec Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Mon, 6 Jan 2025 11:08:08 +0800 Subject: [PATCH 26/47] =?UTF-8?q?fix=20statistics=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E8=8C=83=E5=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- statistics/task/main.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/statistics/task/main.go b/statistics/task/main.go index b2172b4..8cae605 100644 --- a/statistics/task/main.go +++ b/statistics/task/main.go @@ -39,8 +39,8 @@ var ExcelMgrSingle *ExcelMgr func run() { if VP.GetBool("IsDatabaseMode") { - VP.Set("StartTime", common.HMSToTime(0, 0, 0).Format(time.RFC3339)) - VP.Set("EndTime", common.HMSToTime(0, 0, 0).AddDate(0, 0, 1).Format(time.RFC3339)) + VP.Set("StartTime", common.HMSToTime(0, 0, 0).AddDate(0, 0, -1).Format(time.RFC3339)) + VP.Set("EndTime", common.HMSToTime(0, 0, 0).Format(time.RFC3339)) } startTime, err := time.Parse(time.RFC3339, VP.GetString("StartTime")) From 82ad3cd4c63070982ef4407530326a64c589d69c Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Mon, 6 Jan 2025 11:49:28 +0800 Subject: [PATCH 27/47] =?UTF-8?q?add=20tienlen=E9=A6=96=E5=87=BA=E4=B8=8A?= =?UTF-8?q?=E5=B1=80=E8=B5=A2=E5=AE=B6=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gamesrv/tienlen/scenepolicy_tienlen.go | 8 +- protocol/tienlen/tienlen.pb.go | 182 +++++++++++++------------ protocol/tienlen/tienlen.proto | 1 + 3 files changed, 102 insertions(+), 89 deletions(-) diff --git a/gamesrv/tienlen/scenepolicy_tienlen.go b/gamesrv/tienlen/scenepolicy_tienlen.go index 4161a68..94c428e 100644 --- a/gamesrv/tienlen/scenepolicy_tienlen.go +++ b/gamesrv/tienlen/scenepolicy_tienlen.go @@ -1057,12 +1057,14 @@ func (this *SceneHandCardStateTienLen) OnEnter(s *base.Scene) { } if len(sceneEx.tianHuSnids) == 0 { //没有天胡玩家 //有赢家,赢家先出;无赢家手持最小牌先 - pos := int32(sceneEx.FindWinPos()) - if pos == -1 { + winPos := int32(sceneEx.FindWinPos()) + var pos int32 + if winPos == -1 { pos = sceneEx.startOpPos } pack := &tienlen.SCTienLenFirstOpPos{ - Pos: proto.Int32(pos), + Pos: pos, + WinPos: winPos, } proto.SetDefaults(pack) sceneEx.Broadcast(int(tienlen.TienLenPacketID_PACKET_SCTienLenFirstOpPos), pack, 0) diff --git a/protocol/tienlen/tienlen.pb.go b/protocol/tienlen/tienlen.pb.go index 89fc586..38fd80e 100644 --- a/protocol/tienlen/tienlen.pb.go +++ b/protocol/tienlen/tienlen.pb.go @@ -2140,7 +2140,8 @@ type SCTienLenFirstOpPos struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Pos int32 `protobuf:"varint,1,opt,name=Pos,proto3" json:"Pos,omitempty"` //座位位置 + Pos int32 `protobuf:"varint,1,opt,name=Pos,proto3" json:"Pos,omitempty"` //座位位置 + WinPos int32 `protobuf:"varint,2,opt,name=WinPos,proto3" json:"WinPos,omitempty"` //赢家位置 -1 没有赢家 } func (x *SCTienLenFirstOpPos) Reset() { @@ -2182,6 +2183,13 @@ func (x *SCTienLenFirstOpPos) GetPos() int32 { return 0 } +func (x *SCTienLenFirstOpPos) GetWinPos() int32 { + if x != nil { + return x.WinPos + } + return 0 +} + //PACKET_SCTienLenThinkLongCnt type SCTienLenPlayerThinkLongCnt struct { state protoimpl.MessageState @@ -2848,94 +2856,96 @@ var file_protocol_tienlen_tienlen_proto_rawDesc = []byte{ 0x05, 0x49, 0x73, 0x45, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x6e, 0x69, 0x64, 0x73, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x6e, 0x69, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x18, 0x1b, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x05, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x22, 0x27, 0x0a, 0x13, 0x53, 0x43, 0x54, 0x69, + 0x08, 0x52, 0x05, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x22, 0x3f, 0x0a, 0x13, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x4f, 0x70, 0x50, 0x6f, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, - 0x73, 0x22, 0x41, 0x0a, 0x1b, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, 0x74, - 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, - 0x67, 0x43, 0x6e, 0x74, 0x22, 0x68, 0x0a, 0x20, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, - 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x69, 0x72, 0x73, 0x74, 0x47, 0x69, 0x76, 0x65, - 0x49, 0x74, 0x65, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, - 0x12, 0x2c, 0x0a, 0x11, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x63, 0x45, 0x78, 0x70, 0x69, 0x72, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x49, 0x74, 0x65, - 0x6d, 0x52, 0x65, 0x63, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x5e, - 0x0a, 0x14, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x65, 0x74, 0x53, 0x6b, - 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x20, 0x0a, 0x0b, - 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0b, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x22, 0x2c, - 0x0a, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, - 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0xab, 0x01, 0x0a, - 0x16, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x42, 0x69, 0x6c, - 0x6c, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x52, - 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, - 0x0a, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x12, 0x27, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x6f, - 0x74, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, - 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x4b, 0x0a, 0x14, 0x53, 0x43, - 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x42, 0x69, 0x6c, 0x6c, - 0x65, 0x64, 0x12, 0x33, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x54, 0x69, 0x65, 0x6e, 0x4c, - 0x65, 0x6e, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x2a, 0x3e, 0x0a, 0x0c, 0x4f, 0x70, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x52, 0x43, 0x5f, - 0x53, 0x75, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, - 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4f, 0x50, 0x52, 0x43, - 0x5f, 0x48, 0x69, 0x6e, 0x74, 0x10, 0x02, 0x2a, 0xa2, 0x05, 0x0a, 0x0f, 0x54, 0x69, 0x65, 0x6e, - 0x4c, 0x65, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x12, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x5a, 0x45, 0x52, - 0x4f, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, - 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x10, - 0xfa, 0x29, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, - 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, - 0xfb, 0x29, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x54, - 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x10, 0xfc, - 0x29, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, - 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x10, 0xfd, 0x29, - 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, - 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x10, - 0xfe, 0x29, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, - 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, - 0x65, 0x10, 0xff, 0x29, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x10, 0x80, 0x2a, 0x12, - 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, - 0x4c, 0x65, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x10, 0x81, 0x2a, - 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, - 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x75, 0x72, 0x4f, 0x70, 0x50, 0x6f, 0x73, 0x10, 0x82, 0x2a, 0x12, - 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, - 0x4c, 0x65, 0x6e, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, - 0x65, 0x64, 0x10, 0x83, 0x2a, 0x12, 0x25, 0x0a, 0x20, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, - 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x10, 0x84, 0x2a, 0x12, 0x26, 0x0a, 0x21, + 0x73, 0x12, 0x16, 0x0a, 0x06, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x22, 0x41, 0x0a, 0x1b, 0x53, 0x43, 0x54, + 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x68, 0x69, 0x6e, + 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x68, 0x69, 0x6e, + 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, + 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, 0x74, 0x22, 0x68, 0x0a, 0x20, + 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, + 0x69, 0x72, 0x73, 0x74, 0x47, 0x69, 0x76, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x74, 0x65, 0x6d, + 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x49, 0x74, 0x65, 0x6d, + 0x52, 0x65, 0x63, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x11, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x63, 0x45, 0x78, 0x70, 0x69, + 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x5e, 0x0a, 0x14, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, + 0x4c, 0x65, 0x6e, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x12, 0x12, + 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, + 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x50, 0x6f, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, + 0x52, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x50, 0x65, 0x74, 0x53, 0x6b, + 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x22, 0x2c, 0x0a, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x03, 0x4e, 0x75, 0x6d, 0x22, 0xab, 0x01, 0x0a, 0x16, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, + 0x43, 0x79, 0x63, 0x6c, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, + 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x27, 0x0a, 0x05, 0x41, 0x77, 0x61, + 0x72, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, + 0x65, 0x6e, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x41, 0x77, 0x61, + 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x22, 0x4b, 0x0a, 0x14, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, + 0x79, 0x63, 0x6c, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x33, 0x0a, 0x04, 0x4c, 0x69, + 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, + 0x65, 0x6e, 0x2e, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x42, + 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x2a, + 0x3e, 0x0a, 0x0c, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x75, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, + 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, + 0x12, 0x0d, 0x0a, 0x09, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x48, 0x69, 0x6e, 0x74, 0x10, 0x02, 0x2a, + 0xa2, 0x05, 0x0a, 0x0f, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x54, 0x69, + 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x18, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x52, + 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xfa, 0x29, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x52, 0x6f, + 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, 0xfb, 0x29, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x10, 0xfc, 0x29, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x4f, 0x70, 0x10, 0xfd, 0x29, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x10, 0xfe, 0x29, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x10, 0xff, 0x29, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, - 0x6d, 0x10, 0x85, 0x2a, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x41, 0x49, 0x10, 0x86, 0x2a, 0x12, 0x1f, 0x0a, - 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, - 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x4f, 0x70, 0x50, 0x6f, 0x73, 0x10, 0x87, 0x2a, 0x12, 0x1d, - 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, - 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x54, 0x65, 0x73, 0x74, 0x10, 0x88, 0x2a, 0x12, 0x21, 0x0a, - 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, - 0x6e, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, 0x74, 0x10, 0x89, 0x2a, - 0x12, 0x26, 0x0a, 0x21, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, - 0x6e, 0x4c, 0x65, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x47, 0x69, 0x76, 0x65, 0x49, 0x74, 0x65, - 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x10, 0x8a, 0x2a, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x65, 0x74, 0x53, - 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x10, 0x8b, 0x2a, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x79, - 0x63, 0x6c, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x10, 0x8c, 0x2a, 0x42, 0x27, 0x5a, 0x25, - 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x74, 0x69, - 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x43, 0x61, 0x72, 0x64, 0x10, 0x80, 0x2a, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x42, + 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x10, 0x81, 0x2a, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x75, 0x72, 0x4f, + 0x70, 0x50, 0x6f, 0x73, 0x10, 0x82, 0x2a, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x53, 0x6d, 0x61, 0x6c, 0x6c, + 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x10, 0x83, 0x2a, 0x12, 0x25, 0x0a, + 0x20, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, + 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, + 0x64, 0x10, 0x84, 0x2a, 0x12, 0x26, 0x0a, 0x21, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, + 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x75, + 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x10, 0x85, 0x2a, 0x12, 0x17, 0x0a, 0x12, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, + 0x41, 0x49, 0x10, 0x86, 0x2a, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x4f, 0x70, + 0x50, 0x6f, 0x73, 0x10, 0x87, 0x2a, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x54, 0x65, + 0x73, 0x74, 0x10, 0x88, 0x2a, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, + 0x6e, 0x67, 0x43, 0x6e, 0x74, 0x10, 0x89, 0x2a, 0x12, 0x26, 0x0a, 0x21, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x46, 0x69, 0x72, 0x73, + 0x74, 0x47, 0x69, 0x76, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x10, 0x8a, 0x2a, + 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, + 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x10, + 0x8b, 0x2a, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, + 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, + 0x64, 0x10, 0x8c, 0x2a, 0x42, 0x27, 0x5a, 0x25, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, + 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/protocol/tienlen/tienlen.proto b/protocol/tienlen/tienlen.proto index a7894ff..8c26dcf 100644 --- a/protocol/tienlen/tienlen.proto +++ b/protocol/tienlen/tienlen.proto @@ -257,6 +257,7 @@ message SCTienLenAIData { //PACKET_SCTienLenFirstOpPos message SCTienLenFirstOpPos { int32 Pos = 1;//座位位置 + int32 WinPos = 2;//赢家位置 -1 没有赢家 } //PACKET_SCTienLenThinkLongCnt From e582568f6ba0cce89e2350d4229e46f36d5d71f1 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Mon, 6 Jan 2025 11:51:55 +0800 Subject: [PATCH 28/47] =?UTF-8?q?fix=20tienlen=E9=A6=96=E5=87=BA=E4=B8=8A?= =?UTF-8?q?=E5=B1=80=E8=B5=A2=E5=AE=B6=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gamesrv/tienlen/scenepolicy_tienlen.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gamesrv/tienlen/scenepolicy_tienlen.go b/gamesrv/tienlen/scenepolicy_tienlen.go index 94c428e..8ce4ef2 100644 --- a/gamesrv/tienlen/scenepolicy_tienlen.go +++ b/gamesrv/tienlen/scenepolicy_tienlen.go @@ -1058,7 +1058,7 @@ func (this *SceneHandCardStateTienLen) OnEnter(s *base.Scene) { if len(sceneEx.tianHuSnids) == 0 { //没有天胡玩家 //有赢家,赢家先出;无赢家手持最小牌先 winPos := int32(sceneEx.FindWinPos()) - var pos int32 + pos := winPos if winPos == -1 { pos = sceneEx.startOpPos } From de391699b8986cb9e37a9160014742b6079f6b82 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Mon, 6 Jan 2025 11:59:12 +0800 Subject: [PATCH 29/47] =?UTF-8?q?=E5=B9=B4=E5=85=BD=E6=8E=92=E8=A1=8C?= =?UTF-8?q?=E6=A6=9C=E5=A5=96=E5=8A=B1=E8=B5=B0=E5=90=8E=E5=8F=B0+?= =?UTF-8?q?=E5=B8=90=E5=8F=98=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/constant.go | 251 ++--- data/DB_NewYearRankReward.dat | 84 -- data/DB_NewYearRankReward.json | 730 -------------- data/DB_PropExchange.dat | Bin 384 -> 384 bytes data/DB_Task.dat | Bin 7589 -> 7589 bytes protocol/server/pbdata.pb.go | 1667 ++++++++++++++----------------- protocol/server/pbdata.proto | 16 - srvdata/db_newyearrankreward.go | 77 -- worldsrv/action_nian.go | 116 ++- xlsx/DB_NewYearRankReward.xlsx | Bin 13497 -> 0 bytes 10 files changed, 952 insertions(+), 1989 deletions(-) delete mode 100644 data/DB_NewYearRankReward.dat delete mode 100644 data/DB_NewYearRankReward.json delete mode 100644 srvdata/db_newyearrankreward.go delete mode 100644 xlsx/DB_NewYearRankReward.xlsx diff --git a/common/constant.go b/common/constant.go index 3b50ba0..93a3904 100644 --- a/common/constant.go +++ b/common/constant.go @@ -211,128 +211,135 @@ const ( ) const ( - GainWay_NewPlayer int32 = 0 //新建角色 - GainWay_Pay = 1 //后台增加(主要是充值) - GainWay_ByPMCmd = 2 //pm命令 - GainWay_MatchBreakBack = 3 //退赛退还 - GainWay_MatchSystemSupply = 4 //比赛奖励 - GainWay_Exchange = 5 //兑换 - GainWay_ServiceFee = 6 //桌费 - GainWay_CoinSceneWin = 7 //金豆场赢取 - GainWay_CoinSceneLost = 8 //金豆场输 - GainWay_CoinSceneEnter = 9 //进入金币场预扣 - GainWay_ShopBuy = 10 //商城购买或者兑换 - GainWay_CoinSceneLeave = 11 //金豆场回兑 - GainWay_HundredSceneWin = 12 //万人场赢取 - GainWay_HundredSceneLost = 13 //万人场输 - GainWay_MessageAttach = 14 //邮件 - GainWay_SafeBoxSave = 15 //保险箱存入 - GainWay_SafeBoxTakeOut = 16 //保险箱取出 - GainWay_Fishing = 17 //捕鱼 - GainWay_CoinSceneExchange = 18 //金豆场兑换 - GainWay_UpgradeAccount = 19 //升级账号 - GainWay_API_AddCoin = 20 //API操作钱包 - GainWay_GoldCome = 21 //财神降临 - GainWay_Transfer_System2Thrid = 22 //系统平台转入到第三方平台的金币 - GainWay_Transfer_Thrid2System = 23 //第三方平台转入到系统平台的金币 - GainWay_RebateTask = 24 //返利获取 - GainWay_IOSINSTALLSTABLE = 25 //ios安装奖励 - GainWay_VirtualChange = 26 //德州虚拟账变 - GainWay_CreatePrivateScene = 27 //创建私有房间 - GainWay_PrivateSceneReturn = 28 //解散私有房间返还 - GainWay_OnlineRandCoin = 29 //红包雨 - GainWay_Expire = 30 //到期清理 - GainWay_PromoterBind = 31 //手动绑定推广员 - GainWay_GradeShopReturn = 32 //积分商城撤单退还积分 - GainWay_Api_In = 33 //转移金币 - GainWay_Api_Out = 34 //转移金币 - GainWay_Shop_Buy = 35 //购买记录 - GainWay_MAIL_MTEM = 36 //邮件领取道具 - GainWay_Item_Sale = 37 //道具出售 - GainWay_ReliefFund = 38 //领取救济金 - GainWay_Shop_Revoke = 39 //撤单 - GainWay_ActSign = 40 // - GainWay_MatchSignup = 41 //比赛报名费用 - GainWay_MatchSeason = 42 //比赛赛季奖励 - GainWay_ActSignNew = 43 //新签到 - GainWay_ActTurnplate = 44 //轮盘 - GainWay_ActBlindBox = 45 //盲盒 - GainWay_ActFirstPay = 46 //首充 - GainWay_VIPGift = 47 //vip礼包 - GainWay_ActContinuousPay = 48 //连续充值 - GainWay_ActJybAward = 49 //礼包码兑换 - GainWay_LeaveDeduct = 50 //离开扣分 - GainWay_LeaveCombat = 51 //离开补偿 - GainWay_RankMatch = 52 //排位赛段位奖励 - GainWay_AddBag = 53 //增加背包接口调用 - GainWay_SmallRocket = 54 //小火箭收入 - GainWay_BindTel = 55 //绑定手机号 - GainWay_ReliefFund2 = 56 //救济金看视频双倍领取 - GainWay_ActTurnplate2 = 57 //轮盘看视频双倍领取 - GainWay_ActSignNew2 = 58 //签到看视频双倍领取 - GainWay_ItemUse = 59 //道具使用 - GainWay_PhoneScore = 60 //手机积分活动 - GainWay_RankReward = 61 //排位奖励 - GainWay_TaskReward = 62 //任务奖励 - GainWay_Interact = 63 //房间内互动效果 - GainWayItemCollectExchange = 64 //集卡活动兑换 - GainWay_WeekCardAward = 65 //周卡奖励 - GainWay_PigrankTakeCoin = 66 //存钱罐领取耗费钻石 - GainWay_PigrankGainCoin = 67 //存钱罐打开获取金币 - GainWay_ItemMove = 68 //道具赠送 - GainWay_RoleUpgrade = 69 //角色升级 - GainWay_PetUpgrade = 70 //宠物升级 - GainWay_Game = 71 //游戏掉落 - GainWayItemCollectLogin = 73 //集卡活动登录 - GainWay_Collect = 74 //集卡活动 - GainWayItemPhoneScoreExchange = 75 //抽手机活动兑换 - GainWayItemTaskInvite = 78 //邀请任务 - GainWayItemTaskNewPlayer = 79 //新手任务 - GainWayItemTaskAchievement = 80 //成就任务 - GainWayItemTaskEveryDay = 81 //每日任务 - GainWayItemWeekActive = 82 //周活跃奖励 - GainWayContinueSign = 83 //累计签到 - GainWayBackend = 84 // 后台操作 - GainWayBuyCoin = 85 // 商城购买金币 - GainWayBuyItem = 86 // 商城购买道具 - GainWayBuyWeekCard = 87 // 商城购买周卡 - GainWayVipBuyCoin = 88 // vip商城购买金币 - GainWaySign7Con = 89 // 累计签到进阶奖励消耗 - GainWay_PigrankGainDiamond = 90 //存钱罐打开获取钻石 - GainWaySign7Add = 91 // 累计签到进阶奖励获得 - GainWayItemChange = 92 //背包内使用道具兑换话费 - GainWayPetSkillLevelUp = 93 //宠物技能升级 - GainWayPermitAward = 94 // 赛季通行证等级奖励 - GainWayItemPermitRank = 95 // 赛季通行证排行奖励 - GainWayPermitExchangeCost = 96 // 赛季通行证兑换消耗 - GainWayPermitExchangeGain = 97 // 赛季通行证兑换获得 - GainWayItemTaskPermit = 98 // 赛季通行证任务 - GainWayDiamondLottery = 99 //钻石抽奖 - GainWaySkinUnLock = 100 // 皮肤解锁消耗 - GainWaySkinUpGrade = 101 // 皮肤升级消耗 - GainWayItemFen = 102 // 道具分解消耗 - GainWayItemFenGain = 103 // 道具分解获得 - GainWayGuide = 104 //新手引导奖励 - GainWayVipGift9 = 105 //vip等级礼包 - GainWayRoomCost = 106 //房费消耗 - GainWayRoomGain = 107 //房卡场获得 - GainWayItemShop = 108 // 交易市场道具交易 - GainWayClawdollCostItem = 109 // 娃娃机上分扣道具 - GainWayItemShopChangeDoll = 110 // 商城兑换娃娃 - GainWayItemBagChangeDoll = 111 // 背包内兑换娃娃 - GainWayClawdollCatch = 112 // 娃娃机抓取到娃娃获取卡 - GainWayItemBagChangeDollRevocation = 113 //娃娃兑换后台撤销 - GainWayPermitReset = 114 //赛季通行证积分重置 - GainWayClientUpgrade = 115 //客户端升级奖励 - GainWayLottery = 116 //开奖码抽奖 - GainWayGuide2 = 117 // 竞技馆引导奖励 - GainWayCompound = 118 // 道具合成消耗 - GainWayCompoundGain = 119 // 道具合成获得 - GainWayItem_PigBankTakeCoin = 120 // 购买金币存钱罐奖励道具 - GainWayItem_PigBankTakeDiamond = 121 // 购买钻石存钱罐奖励道具 - GainWayNianCost = 122 //年兽活动消耗 - GainWayNianGain = 123 //年兽活动获得 - GainWayRedPacket = 124 // 红包奖励 + GainWay_NewPlayer int32 = 0 //新建角色 + GainWay_Pay = 1 //后台增加(主要是充值) + GainWay_ByPMCmd = 2 //pm命令 + GainWay_MatchBreakBack = 3 //退赛退还 + GainWay_MatchSystemSupply = 4 //比赛奖励 + GainWay_Exchange = 5 //兑换 + GainWay_ServiceFee = 6 //桌费 + GainWay_CoinSceneWin = 7 //金豆场赢取 + GainWay_CoinSceneLost = 8 //金豆场输 + GainWay_CoinSceneEnter = 9 //进入金币场预扣 + GainWay_ShopBuy = 10 //商城购买或者兑换 + GainWay_CoinSceneLeave = 11 //金豆场回兑 + GainWay_HundredSceneWin = 12 //万人场赢取 + GainWay_HundredSceneLost = 13 //万人场输 + GainWay_MessageAttach = 14 //邮件 + GainWay_SafeBoxSave = 15 //保险箱存入 + GainWay_SafeBoxTakeOut = 16 //保险箱取出 + GainWay_Fishing = 17 //捕鱼 + GainWay_CoinSceneExchange = 18 //金豆场兑换 + GainWay_UpgradeAccount = 19 //升级账号 + GainWay_API_AddCoin = 20 //API操作钱包 + GainWay_GoldCome = 21 //财神降临 + GainWay_Transfer_System2Thrid = 22 //系统平台转入到第三方平台的金币 + GainWay_Transfer_Thrid2System = 23 //第三方平台转入到系统平台的金币 + GainWay_RebateTask = 24 //返利获取 + GainWay_IOSINSTALLSTABLE = 25 //ios安装奖励 + GainWay_VirtualChange = 26 //德州虚拟账变 + GainWay_CreatePrivateScene = 27 //创建私有房间 + GainWay_PrivateSceneReturn = 28 //解散私有房间返还 + GainWay_OnlineRandCoin = 29 //红包雨 + GainWay_Expire = 30 //到期清理 + GainWay_PromoterBind = 31 //手动绑定推广员 + GainWay_GradeShopReturn = 32 //积分商城撤单退还积分 + GainWay_Api_In = 33 //转移金币 + GainWay_Api_Out = 34 //转移金币 + GainWay_Shop_Buy = 35 //购买记录 + GainWay_MAIL_MTEM = 36 //邮件领取道具 + GainWay_Item_Sale = 37 //道具出售 + GainWay_ReliefFund = 38 //领取救济金 + GainWay_Shop_Revoke = 39 //撤单 + GainWay_ActSign = 40 // + GainWay_MatchSignup = 41 //比赛报名费用 + GainWay_MatchSeason = 42 //比赛赛季奖励 + GainWay_ActSignNew = 43 //新签到 + GainWay_ActTurnplate = 44 //轮盘 + GainWay_ActBlindBox = 45 //盲盒 + GainWay_ActFirstPay = 46 //首充 + GainWay_VIPGift = 47 //vip礼包 + GainWay_ActContinuousPay = 48 //连续充值 + GainWay_ActJybAward = 49 //礼包码兑换 + GainWay_LeaveDeduct = 50 //离开扣分 + GainWay_LeaveCombat = 51 //离开补偿 + GainWay_RankMatch = 52 //排位赛段位奖励 + GainWay_AddBag = 53 //增加背包接口调用 + GainWay_SmallRocket = 54 //小火箭收入 + GainWay_BindTel = 55 //绑定手机号 + GainWay_ReliefFund2 = 56 //救济金看视频双倍领取 + GainWay_ActTurnplate2 = 57 //轮盘看视频双倍领取 + GainWay_ActSignNew2 = 58 //签到看视频双倍领取 + GainWay_ItemUse = 59 //道具使用 + GainWay_PhoneScore = 60 //手机积分活动 + GainWay_RankReward = 61 //排位奖励 + GainWay_TaskReward = 62 //任务奖励 + GainWay_Interact = 63 //房间内互动效果 + GainWayItemCollectExchange = 64 //集卡活动兑换 + GainWay_WeekCardAward = 65 //周卡奖励 + GainWay_PigrankTakeCoin = 66 //存钱罐领取耗费钻石 + GainWay_PigrankGainCoin = 67 //存钱罐打开获取金币 + GainWay_ItemMove = 68 //道具赠送 + GainWay_RoleUpgrade = 69 //角色升级 + GainWay_PetUpgrade = 70 //宠物升级 + GainWay_Game = 71 //游戏掉落 + GainWayItemCollectLogin = 73 //集卡活动登录 + GainWay_Collect = 74 //集卡活动 + GainWayItemPhoneScoreExchange = 75 //抽手机活动兑换 + GainWayItemTaskInvite = 78 //邀请任务 + GainWayItemTaskNewPlayer = 79 //新手任务 + GainWayItemTaskAchievement = 80 //成就任务 + GainWayItemTaskEveryDay = 81 //每日任务 + GainWayItemWeekActive = 82 //周活跃奖励 + GainWayContinueSign = 83 //累计签到 + GainWayBackend = 84 // 后台操作 + GainWayBuyCoin = 85 // 商城购买金币 + GainWayBuyItem = 86 // 商城购买道具 + GainWayBuyWeekCard = 87 // 商城购买周卡 + GainWayVipBuyCoin = 88 // vip商城购买金币 + GainWaySign7Con = 89 // 累计签到进阶奖励消耗 + GainWay_PigrankGainDiamond = 90 //存钱罐打开获取钻石 + GainWaySign7Add = 91 // 累计签到进阶奖励获得 + GainWayItemChange = 92 //背包内使用道具兑换话费 + GainWayPetSkillLevelUp = 93 //宠物技能升级 + GainWayPermitAward = 94 // 赛季通行证等级奖励 + GainWayItemPermitRank = 95 // 赛季通行证排行奖励 + GainWayPermitExchangeCost = 96 // 赛季通行证兑换消耗 + GainWayPermitExchangeGain = 97 // 赛季通行证兑换获得 + GainWayItemTaskPermit = 98 // 赛季通行证任务 + GainWayDiamondLottery = 99 //钻石抽奖 + GainWaySkinUnLock = 100 // 皮肤解锁消耗 + GainWaySkinUpGrade = 101 // 皮肤升级消耗 + GainWayItemFen = 102 // 道具分解消耗 + GainWayItemFenGain = 103 // 道具分解获得 + GainWayGuide = 104 //新手引导奖励 + GainWayVipGift9 = 105 //vip等级礼包 + GainWayRoomCost = 106 //房费消耗 + GainWayRoomGain = 107 //房卡场获得 + GainWayItemShop = 108 // 交易市场道具交易 + GainWayClawdollCostItem = 109 // 娃娃机上分扣道具 + GainWayItemShopChangeDoll = 110 // 商城兑换娃娃 + GainWayItemBagChangeDoll = 111 // 背包内兑换娃娃 + GainWayClawdollCatch = 112 // 娃娃机抓取到娃娃获取卡 + GainWayItemBagChangeDollRevocation = 113 //娃娃兑换后台撤销 + GainWayPermitReset = 114 //赛季通行证积分重置 + GainWayClientUpgrade = 115 //客户端升级奖励 + GainWayLottery = 116 //开奖码抽奖 + GainWayGuide2 = 117 // 竞技馆引导奖励 + GainWayCompound = 118 // 道具合成消耗 + GainWayCompoundGain = 119 // 道具合成获得 + GainWayItem_PigBankTakeCoin = 120 // 购买金币存钱罐奖励道具 + GainWayItem_PigBankTakeDiamond = 121 // 购买钻石存钱罐奖励道具 + GainWayNianCost = 122 //年兽活动消耗 + GainWayNianGain_Attack_LittleGuarantee = 123 //年兽活动小爆竹攻击年兽获得保底奖励 + GainWayRedPacket = 124 // 红包奖励 + GainWayNianGain_Sign = 125 //年兽活动签到获得 + GainWayNianGain_Change = 126 //年兽活动兑换获得 + GainWayNianGain_BossDie = 127 //年兽活动Boss死亡获得 + GainWayNianGain_BossDieOther = 128 //年兽活动Boss死亡额外获得 + GainWayNianGain_Attack_BigOther = 129 //年兽活动大爆竹攻击年兽获得额外奖励 + GainWayNianGain_Attack_BigGuarantee = 130 //年兽活动大爆竹攻击年兽获得保底奖励 + GainWayNianGain_Attack_Coin = 131 //攻击年兽获得金币奖励 ) // 后台选择 金币变化类型 的充值 类型id号起始 diff --git a/data/DB_NewYearRankReward.dat b/data/DB_NewYearRankReward.dat deleted file mode 100644 index d2486ff..0000000 --- a/data/DB_NewYearRankReward.dat +++ /dev/null @@ -1,84 +0,0 @@ - -""d" -""d" -""d" -""d -""c -"b" -""a -""` -  ""_ - - -""^ -  ""] -  ""\ -  ""[ -""Z -"Y" -""X -""W -""V -"U" -""T -""S -"R" -""Q -""P -""O -""N -""M -""L -""K -""J -""I -  ""H -!!""G -"""F" -##""E -$$""D -%%"C" -&&""B -''""A -((""@ -)"d"" -*""d" -+"d"" -,""d --""c -.""b -/""a -0"`" -1 ""_ -2 -""^ -3 ""] -4 ""\ -5 ""[ -6""Z -7""Y -8""X -9""W -:""V -;""U -<""T -="S" ->""R -?""Q -@""P -A""O -B""N -C"M" -D""L -E""K -F""J -G""I -H ""H -I!""G -J"""F -K#""E -L$""D -M%""C -N&""B -O'"A" -P(""@ \ No newline at end of file diff --git a/data/DB_NewYearRankReward.json b/data/DB_NewYearRankReward.json deleted file mode 100644 index 0715204..0000000 --- a/data/DB_NewYearRankReward.json +++ /dev/null @@ -1,730 +0,0 @@ -{ - "Arr": [ - { - "Id": 1, - "RankType": 1, - "RankLevelId": 1, - "AwardMap": { - "100001": 30, - "100002": 100, - "30009": 2 - } - }, - { - "Id": 2, - "RankType": 1, - "RankLevelId": 2, - "AwardMap": { - "100001": 30, - "100002": 100, - "30008": 2 - } - }, - { - "Id": 3, - "RankType": 1, - "RankLevelId": 3, - "AwardMap": { - "100001": 30, - "100002": 100, - "30008": 1 - } - }, - { - "Id": 4, - "RankType": 1, - "RankLevelId": 4, - "AwardMap": { - "100001": 30, - "100002": 100 - } - }, - { - "Id": 5, - "RankType": 1, - "RankLevelId": 5, - "AwardMap": { - "100001": 30, - "100002": 99 - } - }, - { - "Id": 6, - "RankType": 1, - "RankLevelId": 6, - "AwardMap": { - "100001": 30, - "100002": 98 - } - }, - { - "Id": 7, - "RankType": 1, - "RankLevelId": 7, - "AwardMap": { - "100001": 30, - "100002": 97 - } - }, - { - "Id": 8, - "RankType": 1, - "RankLevelId": 8, - "AwardMap": { - "100001": 30, - "100002": 96 - } - }, - { - "Id": 9, - "RankType": 1, - "RankLevelId": 9, - "AwardMap": { - "100001": 30, - "100002": 95 - } - }, - { - "Id": 10, - "RankType": 1, - "RankLevelId": 10, - "AwardMap": { - "100001": 30, - "100002": 94 - } - }, - { - "Id": 11, - "RankType": 1, - "RankLevelId": 11, - "AwardMap": { - "100001": 30, - "100002": 93 - } - }, - { - "Id": 12, - "RankType": 1, - "RankLevelId": 12, - "AwardMap": { - "100001": 30, - "100002": 92 - } - }, - { - "Id": 13, - "RankType": 1, - "RankLevelId": 13, - "AwardMap": { - "100001": 30, - "100002": 91 - } - }, - { - "Id": 14, - "RankType": 1, - "RankLevelId": 14, - "AwardMap": { - "100001": 30, - "100002": 90 - } - }, - { - "Id": 15, - "RankType": 1, - "RankLevelId": 15, - "AwardMap": { - "100001": 30, - "100002": 89 - } - }, - { - "Id": 16, - "RankType": 1, - "RankLevelId": 16, - "AwardMap": { - "100001": 30, - "100002": 88 - } - }, - { - "Id": 17, - "RankType": 1, - "RankLevelId": 17, - "AwardMap": { - "100001": 30, - "100002": 87 - } - }, - { - "Id": 18, - "RankType": 1, - "RankLevelId": 18, - "AwardMap": { - "100001": 30, - "100002": 86 - } - }, - { - "Id": 19, - "RankType": 1, - "RankLevelId": 19, - "AwardMap": { - "100001": 30, - "100002": 85 - } - }, - { - "Id": 20, - "RankType": 1, - "RankLevelId": 20, - "AwardMap": { - "100001": 30, - "100002": 84 - } - }, - { - "Id": 21, - "RankType": 1, - "RankLevelId": 21, - "AwardMap": { - "100001": 30, - "100002": 83 - } - }, - { - "Id": 22, - "RankType": 1, - "RankLevelId": 22, - "AwardMap": { - "100001": 30, - "100002": 82 - } - }, - { - "Id": 23, - "RankType": 1, - "RankLevelId": 23, - "AwardMap": { - "100001": 30, - "100002": 81 - } - }, - { - "Id": 24, - "RankType": 1, - "RankLevelId": 24, - "AwardMap": { - "100001": 30, - "100002": 80 - } - }, - { - "Id": 25, - "RankType": 1, - "RankLevelId": 25, - "AwardMap": { - "100001": 30, - "100002": 79 - } - }, - { - "Id": 26, - "RankType": 1, - "RankLevelId": 26, - "AwardMap": { - "100001": 30, - "100002": 78 - } - }, - { - "Id": 27, - "RankType": 1, - "RankLevelId": 27, - "AwardMap": { - "100001": 30, - "100002": 77 - } - }, - { - "Id": 28, - "RankType": 1, - "RankLevelId": 28, - "AwardMap": { - "100001": 30, - "100002": 76 - } - }, - { - "Id": 29, - "RankType": 1, - "RankLevelId": 29, - "AwardMap": { - "100001": 30, - "100002": 75 - } - }, - { - "Id": 30, - "RankType": 1, - "RankLevelId": 30, - "AwardMap": { - "100001": 30, - "100002": 74 - } - }, - { - "Id": 31, - "RankType": 1, - "RankLevelId": 31, - "AwardMap": { - "100001": 30, - "100002": 73 - } - }, - { - "Id": 32, - "RankType": 1, - "RankLevelId": 32, - "AwardMap": { - "100001": 30, - "100002": 72 - } - }, - { - "Id": 33, - "RankType": 1, - "RankLevelId": 33, - "AwardMap": { - "100001": 30, - "100002": 71 - } - }, - { - "Id": 34, - "RankType": 1, - "RankLevelId": 34, - "AwardMap": { - "100001": 30, - "100002": 70 - } - }, - { - "Id": 35, - "RankType": 1, - "RankLevelId": 35, - "AwardMap": { - "100001": 30, - "100002": 69 - } - }, - { - "Id": 36, - "RankType": 1, - "RankLevelId": 36, - "AwardMap": { - "100001": 30, - "100002": 68 - } - }, - { - "Id": 37, - "RankType": 1, - "RankLevelId": 37, - "AwardMap": { - "100001": 30, - "100002": 67 - } - }, - { - "Id": 38, - "RankType": 1, - "RankLevelId": 38, - "AwardMap": { - "100001": 30, - "100002": 66 - } - }, - { - "Id": 39, - "RankType": 1, - "RankLevelId": 39, - "AwardMap": { - "100001": 30, - "100002": 65 - } - }, - { - "Id": 40, - "RankType": 1, - "RankLevelId": 40, - "AwardMap": { - "100001": 30, - "100002": 64 - } - }, - { - "Id": 41, - "RankType": 2, - "RankLevelId": 1, - "AwardMap": { - "100001": 30, - "100002": 100, - "30009": 2 - } - }, - { - "Id": 42, - "RankType": 2, - "RankLevelId": 2, - "AwardMap": { - "100001": 30, - "100002": 100, - "30008": 2 - } - }, - { - "Id": 43, - "RankType": 2, - "RankLevelId": 3, - "AwardMap": { - "100001": 30, - "100002": 100, - "30008": 1 - } - }, - { - "Id": 44, - "RankType": 2, - "RankLevelId": 4, - "AwardMap": { - "100001": 30, - "100002": 100 - } - }, - { - "Id": 45, - "RankType": 2, - "RankLevelId": 5, - "AwardMap": { - "100001": 30, - "100002": 99 - } - }, - { - "Id": 46, - "RankType": 2, - "RankLevelId": 6, - "AwardMap": { - "100001": 30, - "100002": 98 - } - }, - { - "Id": 47, - "RankType": 2, - "RankLevelId": 7, - "AwardMap": { - "100001": 30, - "100002": 97 - } - }, - { - "Id": 48, - "RankType": 2, - "RankLevelId": 8, - "AwardMap": { - "100001": 30, - "100002": 96 - } - }, - { - "Id": 49, - "RankType": 2, - "RankLevelId": 9, - "AwardMap": { - "100001": 30, - "100002": 95 - } - }, - { - "Id": 50, - "RankType": 2, - "RankLevelId": 10, - "AwardMap": { - "100001": 30, - "100002": 94 - } - }, - { - "Id": 51, - "RankType": 2, - "RankLevelId": 11, - "AwardMap": { - "100001": 30, - "100002": 93 - } - }, - { - "Id": 52, - "RankType": 2, - "RankLevelId": 12, - "AwardMap": { - "100001": 30, - "100002": 92 - } - }, - { - "Id": 53, - "RankType": 2, - "RankLevelId": 13, - "AwardMap": { - "100001": 30, - "100002": 91 - } - }, - { - "Id": 54, - "RankType": 2, - "RankLevelId": 14, - "AwardMap": { - "100001": 30, - "100002": 90 - } - }, - { - "Id": 55, - "RankType": 2, - "RankLevelId": 15, - "AwardMap": { - "100001": 30, - "100002": 89 - } - }, - { - "Id": 56, - "RankType": 2, - "RankLevelId": 16, - "AwardMap": { - "100001": 30, - "100002": 88 - } - }, - { - "Id": 57, - "RankType": 2, - "RankLevelId": 17, - "AwardMap": { - "100001": 30, - "100002": 87 - } - }, - { - "Id": 58, - "RankType": 2, - "RankLevelId": 18, - "AwardMap": { - "100001": 30, - "100002": 86 - } - }, - { - "Id": 59, - "RankType": 2, - "RankLevelId": 19, - "AwardMap": { - "100001": 30, - "100002": 85 - } - }, - { - "Id": 60, - "RankType": 2, - "RankLevelId": 20, - "AwardMap": { - "100001": 30, - "100002": 84 - } - }, - { - "Id": 61, - "RankType": 2, - "RankLevelId": 21, - "AwardMap": { - "100001": 30, - "100002": 83 - } - }, - { - "Id": 62, - "RankType": 2, - "RankLevelId": 22, - "AwardMap": { - "100001": 30, - "100002": 82 - } - }, - { - "Id": 63, - "RankType": 2, - "RankLevelId": 23, - "AwardMap": { - "100001": 30, - "100002": 81 - } - }, - { - "Id": 64, - "RankType": 2, - "RankLevelId": 24, - "AwardMap": { - "100001": 30, - "100002": 80 - } - }, - { - "Id": 65, - "RankType": 2, - "RankLevelId": 25, - "AwardMap": { - "100001": 30, - "100002": 79 - } - }, - { - "Id": 66, - "RankType": 2, - "RankLevelId": 26, - "AwardMap": { - "100001": 30, - "100002": 78 - } - }, - { - "Id": 67, - "RankType": 2, - "RankLevelId": 27, - "AwardMap": { - "100001": 30, - "100002": 77 - } - }, - { - "Id": 68, - "RankType": 2, - "RankLevelId": 28, - "AwardMap": { - "100001": 30, - "100002": 76 - } - }, - { - "Id": 69, - "RankType": 2, - "RankLevelId": 29, - "AwardMap": { - "100001": 30, - "100002": 75 - } - }, - { - "Id": 70, - "RankType": 2, - "RankLevelId": 30, - "AwardMap": { - "100001": 30, - "100002": 74 - } - }, - { - "Id": 71, - "RankType": 2, - "RankLevelId": 31, - "AwardMap": { - "100001": 30, - "100002": 73 - } - }, - { - "Id": 72, - "RankType": 2, - "RankLevelId": 32, - "AwardMap": { - "100001": 30, - "100002": 72 - } - }, - { - "Id": 73, - "RankType": 2, - "RankLevelId": 33, - "AwardMap": { - "100001": 30, - "100002": 71 - } - }, - { - "Id": 74, - "RankType": 2, - "RankLevelId": 34, - "AwardMap": { - "100001": 30, - "100002": 70 - } - }, - { - "Id": 75, - "RankType": 2, - "RankLevelId": 35, - "AwardMap": { - "100001": 30, - "100002": 69 - } - }, - { - "Id": 76, - "RankType": 2, - "RankLevelId": 36, - "AwardMap": { - "100001": 30, - "100002": 68 - } - }, - { - "Id": 77, - "RankType": 2, - "RankLevelId": 37, - "AwardMap": { - "100001": 30, - "100002": 67 - } - }, - { - "Id": 78, - "RankType": 2, - "RankLevelId": 38, - "AwardMap": { - "100001": 30, - "100002": 66 - } - }, - { - "Id": 79, - "RankType": 2, - "RankLevelId": 39, - "AwardMap": { - "100001": 30, - "100002": 65 - } - }, - { - "Id": 80, - "RankType": 2, - "RankLevelId": 40, - "AwardMap": { - "100001": 30, - "100002": 64 - } - } - ] -} \ No newline at end of file diff --git a/data/DB_PropExchange.dat b/data/DB_PropExchange.dat index 25efbb46b252e46cd63aa3eb9e556b278650c6bd..c3d3957ac4cbb6c1b6054513b962afc344a2992c 100644 GIT binary patch literal 384 zcmd-w<6snElw#w!(#8y?uR`f-Q2IKQz6_$3I5-yevI!h$vE|a^U;?YZ0hPZArEfv$ z+i2>;IUwf4?17mNRtK~nrVnfnkPmYQ%zhMmlsLieXjuD*g)5eWg(wfe41ig92kKCm Ug(x0SV&_-{^yn96E(Y2{0Avb0H2?qr literal 384 zcmd-w<6snElw#w!+{O&1uR!UmQ2H8_z7C?5I5-yevI!h$vE|a^U;?YZ0hPZArEfv$ z+i2>;IUweP%>mknRXq{z0Nba;33f-r+D9y0u^cR5hrkTHgUumC7z}e5!~%AXML>^! KVdi3>Ed&5(YCJUn diff --git a/data/DB_Task.dat b/data/DB_Task.dat index f7ef517aea95dd8dce766a5b4e2d00985da3fe4b..4425792e068ace73c625db1edf779dd53f3156f1 100644 GIT binary patch delta 200 zcmZ2#z0`UGC!-)6$C6$)0WL2Nj)g$_LL2jBDaKYoIL`|rFEV)pqcK$UK#MI@RBrPZ zMong@@Pvi@K;esR%mPf4^;oNb27}p9gMqS>ce0+Je1uUgkRXtFkM$K#Xn27~1%?_@m>RJ#ah2~6#RUbf9M*>ssEZ{`)* ze2Zfh$SjaNBh)OQ{N$-Tt&^{DicHqy1vv{O%Z22CBfM2iP^%s+7Xn%ZQoy{~Um%PZ E0JF|NZvX%Q diff --git a/protocol/server/pbdata.pb.go b/protocol/server/pbdata.pb.go index 712979b..e91e390 100644 --- a/protocol/server/pbdata.pb.go +++ b/protocol/server/pbdata.pb.go @@ -7819,124 +7819,6 @@ func (x *DB_NewYearActivityArray) GetArr() []*DB_NewYearActivity { return nil } -type DB_NewYearRankReward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` - RankType int32 `protobuf:"varint,2,opt,name=RankType,proto3" json:"RankType,omitempty"` - RankLevelId int32 `protobuf:"varint,3,opt,name=RankLevelId,proto3" json:"RankLevelId,omitempty"` - AwardMap map[int64]int64 `protobuf:"bytes,4,rep,name=AwardMap,proto3" json:"AwardMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` -} - -func (x *DB_NewYearRankReward) Reset() { - *x = DB_NewYearRankReward{} - if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[100] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DB_NewYearRankReward) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DB_NewYearRankReward) ProtoMessage() {} - -func (x *DB_NewYearRankReward) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[100] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DB_NewYearRankReward.ProtoReflect.Descriptor instead. -func (*DB_NewYearRankReward) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{100} -} - -func (x *DB_NewYearRankReward) GetId() int32 { - if x != nil { - return x.Id - } - return 0 -} - -func (x *DB_NewYearRankReward) GetRankType() int32 { - if x != nil { - return x.RankType - } - return 0 -} - -func (x *DB_NewYearRankReward) GetRankLevelId() int32 { - if x != nil { - return x.RankLevelId - } - return 0 -} - -func (x *DB_NewYearRankReward) GetAwardMap() map[int64]int64 { - if x != nil { - return x.AwardMap - } - return nil -} - -type DB_NewYearRankRewardArray struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Arr []*DB_NewYearRankReward `protobuf:"bytes,1,rep,name=Arr,proto3" json:"Arr,omitempty"` -} - -func (x *DB_NewYearRankRewardArray) Reset() { - *x = DB_NewYearRankRewardArray{} - if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[101] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DB_NewYearRankRewardArray) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DB_NewYearRankRewardArray) ProtoMessage() {} - -func (x *DB_NewYearRankRewardArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[101] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DB_NewYearRankRewardArray.ProtoReflect.Descriptor instead. -func (*DB_NewYearRankRewardArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{101} -} - -func (x *DB_NewYearRankRewardArray) GetArr() []*DB_NewYearRankReward { - if x != nil { - return x.Arr - } - return nil -} - type DB_PassShow struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -7951,7 +7833,7 @@ type DB_PassShow struct { func (x *DB_PassShow) Reset() { *x = DB_PassShow{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[102] + mi := &file_protocol_server_pbdata_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7964,7 +7846,7 @@ func (x *DB_PassShow) String() string { func (*DB_PassShow) ProtoMessage() {} func (x *DB_PassShow) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[102] + mi := &file_protocol_server_pbdata_proto_msgTypes[100] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7977,7 +7859,7 @@ func (x *DB_PassShow) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PassShow.ProtoReflect.Descriptor instead. func (*DB_PassShow) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{102} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{100} } func (x *DB_PassShow) GetId() int32 { @@ -8019,7 +7901,7 @@ type DB_PassShowArray struct { func (x *DB_PassShowArray) Reset() { *x = DB_PassShowArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[103] + mi := &file_protocol_server_pbdata_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8032,7 +7914,7 @@ func (x *DB_PassShowArray) String() string { func (*DB_PassShowArray) ProtoMessage() {} func (x *DB_PassShowArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[103] + mi := &file_protocol_server_pbdata_proto_msgTypes[101] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8045,7 +7927,7 @@ func (x *DB_PassShowArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PassShowArray.ProtoReflect.Descriptor instead. func (*DB_PassShowArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{103} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{101} } func (x *DB_PassShowArray) GetArr() []*DB_PassShow { @@ -8074,7 +7956,7 @@ type DB_PetSkill struct { func (x *DB_PetSkill) Reset() { *x = DB_PetSkill{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[104] + mi := &file_protocol_server_pbdata_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8087,7 +7969,7 @@ func (x *DB_PetSkill) String() string { func (*DB_PetSkill) ProtoMessage() {} func (x *DB_PetSkill) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[104] + mi := &file_protocol_server_pbdata_proto_msgTypes[102] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8100,7 +7982,7 @@ func (x *DB_PetSkill) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PetSkill.ProtoReflect.Descriptor instead. func (*DB_PetSkill) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{104} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{102} } func (x *DB_PetSkill) GetId() int32 { @@ -8177,7 +8059,7 @@ type DB_PetSkillArray struct { func (x *DB_PetSkillArray) Reset() { *x = DB_PetSkillArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[105] + mi := &file_protocol_server_pbdata_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8190,7 +8072,7 @@ func (x *DB_PetSkillArray) String() string { func (*DB_PetSkillArray) ProtoMessage() {} func (x *DB_PetSkillArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[105] + mi := &file_protocol_server_pbdata_proto_msgTypes[103] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8203,7 +8085,7 @@ func (x *DB_PetSkillArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PetSkillArray.ProtoReflect.Descriptor instead. func (*DB_PetSkillArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{105} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{103} } func (x *DB_PetSkillArray) GetArr() []*DB_PetSkill { @@ -8235,7 +8117,7 @@ type DB_PhoneLottery struct { func (x *DB_PhoneLottery) Reset() { *x = DB_PhoneLottery{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[106] + mi := &file_protocol_server_pbdata_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8248,7 +8130,7 @@ func (x *DB_PhoneLottery) String() string { func (*DB_PhoneLottery) ProtoMessage() {} func (x *DB_PhoneLottery) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[106] + mi := &file_protocol_server_pbdata_proto_msgTypes[104] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8261,7 +8143,7 @@ func (x *DB_PhoneLottery) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PhoneLottery.ProtoReflect.Descriptor instead. func (*DB_PhoneLottery) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{106} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{104} } func (x *DB_PhoneLottery) GetId() int32 { @@ -8359,7 +8241,7 @@ type DB_PhoneLotteryArray struct { func (x *DB_PhoneLotteryArray) Reset() { *x = DB_PhoneLotteryArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[107] + mi := &file_protocol_server_pbdata_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8372,7 +8254,7 @@ func (x *DB_PhoneLotteryArray) String() string { func (*DB_PhoneLotteryArray) ProtoMessage() {} func (x *DB_PhoneLotteryArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[107] + mi := &file_protocol_server_pbdata_proto_msgTypes[105] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8385,7 +8267,7 @@ func (x *DB_PhoneLotteryArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PhoneLotteryArray.ProtoReflect.Descriptor instead. func (*DB_PhoneLotteryArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{107} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{105} } func (x *DB_PhoneLotteryArray) GetArr() []*DB_PhoneLottery { @@ -8417,7 +8299,7 @@ type DB_PigBank_Diamond struct { func (x *DB_PigBank_Diamond) Reset() { *x = DB_PigBank_Diamond{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[108] + mi := &file_protocol_server_pbdata_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8430,7 +8312,7 @@ func (x *DB_PigBank_Diamond) String() string { func (*DB_PigBank_Diamond) ProtoMessage() {} func (x *DB_PigBank_Diamond) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[108] + mi := &file_protocol_server_pbdata_proto_msgTypes[106] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8443,7 +8325,7 @@ func (x *DB_PigBank_Diamond) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PigBank_Diamond.ProtoReflect.Descriptor instead. func (*DB_PigBank_Diamond) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{108} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{106} } func (x *DB_PigBank_Diamond) GetId() int32 { @@ -8541,7 +8423,7 @@ type DB_PigBank_DiamondArray struct { func (x *DB_PigBank_DiamondArray) Reset() { *x = DB_PigBank_DiamondArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[109] + mi := &file_protocol_server_pbdata_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8554,7 +8436,7 @@ func (x *DB_PigBank_DiamondArray) String() string { func (*DB_PigBank_DiamondArray) ProtoMessage() {} func (x *DB_PigBank_DiamondArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[109] + mi := &file_protocol_server_pbdata_proto_msgTypes[107] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8567,7 +8449,7 @@ func (x *DB_PigBank_DiamondArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PigBank_DiamondArray.ProtoReflect.Descriptor instead. func (*DB_PigBank_DiamondArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{109} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{107} } func (x *DB_PigBank_DiamondArray) GetArr() []*DB_PigBank_Diamond { @@ -8590,7 +8472,7 @@ type DB_Pigbank_Prop struct { func (x *DB_Pigbank_Prop) Reset() { *x = DB_Pigbank_Prop{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[110] + mi := &file_protocol_server_pbdata_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8603,7 +8485,7 @@ func (x *DB_Pigbank_Prop) String() string { func (*DB_Pigbank_Prop) ProtoMessage() {} func (x *DB_Pigbank_Prop) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[110] + mi := &file_protocol_server_pbdata_proto_msgTypes[108] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8616,7 +8498,7 @@ func (x *DB_Pigbank_Prop) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Pigbank_Prop.ProtoReflect.Descriptor instead. func (*DB_Pigbank_Prop) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{110} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{108} } func (x *DB_Pigbank_Prop) GetId() int32 { @@ -8651,7 +8533,7 @@ type DB_Pigbank_PropArray struct { func (x *DB_Pigbank_PropArray) Reset() { *x = DB_Pigbank_PropArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[111] + mi := &file_protocol_server_pbdata_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8664,7 +8546,7 @@ func (x *DB_Pigbank_PropArray) String() string { func (*DB_Pigbank_PropArray) ProtoMessage() {} func (x *DB_Pigbank_PropArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[111] + mi := &file_protocol_server_pbdata_proto_msgTypes[109] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8677,7 +8559,7 @@ func (x *DB_Pigbank_PropArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Pigbank_PropArray.ProtoReflect.Descriptor instead. func (*DB_Pigbank_PropArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{111} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{109} } func (x *DB_Pigbank_PropArray) GetArr() []*DB_Pigbank_Prop { @@ -8699,7 +8581,7 @@ type DB_PlayerExp struct { func (x *DB_PlayerExp) Reset() { *x = DB_PlayerExp{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[112] + mi := &file_protocol_server_pbdata_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8712,7 +8594,7 @@ func (x *DB_PlayerExp) String() string { func (*DB_PlayerExp) ProtoMessage() {} func (x *DB_PlayerExp) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[112] + mi := &file_protocol_server_pbdata_proto_msgTypes[110] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8725,7 +8607,7 @@ func (x *DB_PlayerExp) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PlayerExp.ProtoReflect.Descriptor instead. func (*DB_PlayerExp) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{112} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{110} } func (x *DB_PlayerExp) GetId() int32 { @@ -8753,7 +8635,7 @@ type DB_PlayerExpArray struct { func (x *DB_PlayerExpArray) Reset() { *x = DB_PlayerExpArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[113] + mi := &file_protocol_server_pbdata_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8766,7 +8648,7 @@ func (x *DB_PlayerExpArray) String() string { func (*DB_PlayerExpArray) ProtoMessage() {} func (x *DB_PlayerExpArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[113] + mi := &file_protocol_server_pbdata_proto_msgTypes[111] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8779,7 +8661,7 @@ func (x *DB_PlayerExpArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PlayerExpArray.ProtoReflect.Descriptor instead. func (*DB_PlayerExpArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{113} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{111} } func (x *DB_PlayerExpArray) GetArr() []*DB_PlayerExp { @@ -8817,7 +8699,7 @@ type DB_PlayerType struct { func (x *DB_PlayerType) Reset() { *x = DB_PlayerType{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[114] + mi := &file_protocol_server_pbdata_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8830,7 +8712,7 @@ func (x *DB_PlayerType) String() string { func (*DB_PlayerType) ProtoMessage() {} func (x *DB_PlayerType) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[114] + mi := &file_protocol_server_pbdata_proto_msgTypes[112] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8843,7 +8725,7 @@ func (x *DB_PlayerType) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PlayerType.ProtoReflect.Descriptor instead. func (*DB_PlayerType) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{114} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{112} } func (x *DB_PlayerType) GetId() int32 { @@ -8983,7 +8865,7 @@ type DB_PlayerTypeArray struct { func (x *DB_PlayerTypeArray) Reset() { *x = DB_PlayerTypeArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[115] + mi := &file_protocol_server_pbdata_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8996,7 +8878,7 @@ func (x *DB_PlayerTypeArray) String() string { func (*DB_PlayerTypeArray) ProtoMessage() {} func (x *DB_PlayerTypeArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[115] + mi := &file_protocol_server_pbdata_proto_msgTypes[113] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9009,7 +8891,7 @@ func (x *DB_PlayerTypeArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PlayerTypeArray.ProtoReflect.Descriptor instead. func (*DB_PlayerTypeArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{115} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{113} } func (x *DB_PlayerTypeArray) GetArr() []*DB_PlayerType { @@ -9033,7 +8915,7 @@ type DB_PotOdd struct { func (x *DB_PotOdd) Reset() { *x = DB_PotOdd{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[116] + mi := &file_protocol_server_pbdata_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9046,7 +8928,7 @@ func (x *DB_PotOdd) String() string { func (*DB_PotOdd) ProtoMessage() {} func (x *DB_PotOdd) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[116] + mi := &file_protocol_server_pbdata_proto_msgTypes[114] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9059,7 +8941,7 @@ func (x *DB_PotOdd) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PotOdd.ProtoReflect.Descriptor instead. func (*DB_PotOdd) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{116} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{114} } func (x *DB_PotOdd) GetId() int32 { @@ -9101,7 +8983,7 @@ type DB_PotOddArray struct { func (x *DB_PotOddArray) Reset() { *x = DB_PotOddArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[117] + mi := &file_protocol_server_pbdata_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9114,7 +8996,7 @@ func (x *DB_PotOddArray) String() string { func (*DB_PotOddArray) ProtoMessage() {} func (x *DB_PotOddArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[117] + mi := &file_protocol_server_pbdata_proto_msgTypes[115] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9127,7 +9009,7 @@ func (x *DB_PotOddArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PotOddArray.ProtoReflect.Descriptor instead. func (*DB_PotOddArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{117} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{115} } func (x *DB_PotOddArray) GetArr() []*DB_PotOdd { @@ -9151,7 +9033,7 @@ type DB_PropExchange struct { func (x *DB_PropExchange) Reset() { *x = DB_PropExchange{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[118] + mi := &file_protocol_server_pbdata_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9164,7 +9046,7 @@ func (x *DB_PropExchange) String() string { func (*DB_PropExchange) ProtoMessage() {} func (x *DB_PropExchange) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[118] + mi := &file_protocol_server_pbdata_proto_msgTypes[116] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9177,7 +9059,7 @@ func (x *DB_PropExchange) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PropExchange.ProtoReflect.Descriptor instead. func (*DB_PropExchange) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{118} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{116} } func (x *DB_PropExchange) GetId() int32 { @@ -9219,7 +9101,7 @@ type DB_PropExchangeArray struct { func (x *DB_PropExchangeArray) Reset() { *x = DB_PropExchangeArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[119] + mi := &file_protocol_server_pbdata_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9232,7 +9114,7 @@ func (x *DB_PropExchangeArray) String() string { func (*DB_PropExchangeArray) ProtoMessage() {} func (x *DB_PropExchangeArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[119] + mi := &file_protocol_server_pbdata_proto_msgTypes[117] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9245,7 +9127,7 @@ func (x *DB_PropExchangeArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_PropExchangeArray.ProtoReflect.Descriptor instead. func (*DB_PropExchangeArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{119} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{117} } func (x *DB_PropExchangeArray) GetArr() []*DB_PropExchange { @@ -9268,7 +9150,7 @@ type DB_RankCycle struct { func (x *DB_RankCycle) Reset() { *x = DB_RankCycle{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[120] + mi := &file_protocol_server_pbdata_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9281,7 +9163,7 @@ func (x *DB_RankCycle) String() string { func (*DB_RankCycle) ProtoMessage() {} func (x *DB_RankCycle) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[120] + mi := &file_protocol_server_pbdata_proto_msgTypes[118] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9294,7 +9176,7 @@ func (x *DB_RankCycle) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_RankCycle.ProtoReflect.Descriptor instead. func (*DB_RankCycle) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{120} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{118} } func (x *DB_RankCycle) GetId() int32 { @@ -9329,7 +9211,7 @@ type DB_RankCycleArray struct { func (x *DB_RankCycleArray) Reset() { *x = DB_RankCycleArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[121] + mi := &file_protocol_server_pbdata_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9342,7 +9224,7 @@ func (x *DB_RankCycleArray) String() string { func (*DB_RankCycleArray) ProtoMessage() {} func (x *DB_RankCycleArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[121] + mi := &file_protocol_server_pbdata_proto_msgTypes[119] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9355,7 +9237,7 @@ func (x *DB_RankCycleArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_RankCycleArray.ProtoReflect.Descriptor instead. func (*DB_RankCycleArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{121} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{119} } func (x *DB_RankCycleArray) GetArr() []*DB_RankCycle { @@ -9380,7 +9262,7 @@ type DB_RankLevel struct { func (x *DB_RankLevel) Reset() { *x = DB_RankLevel{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[122] + mi := &file_protocol_server_pbdata_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9393,7 +9275,7 @@ func (x *DB_RankLevel) String() string { func (*DB_RankLevel) ProtoMessage() {} func (x *DB_RankLevel) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[122] + mi := &file_protocol_server_pbdata_proto_msgTypes[120] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9406,7 +9288,7 @@ func (x *DB_RankLevel) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_RankLevel.ProtoReflect.Descriptor instead. func (*DB_RankLevel) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{122} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{120} } func (x *DB_RankLevel) GetId() int32 { @@ -9455,7 +9337,7 @@ type DB_RankLevelArray struct { func (x *DB_RankLevelArray) Reset() { *x = DB_RankLevelArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[123] + mi := &file_protocol_server_pbdata_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9468,7 +9350,7 @@ func (x *DB_RankLevelArray) String() string { func (*DB_RankLevelArray) ProtoMessage() {} func (x *DB_RankLevelArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[123] + mi := &file_protocol_server_pbdata_proto_msgTypes[121] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9481,7 +9363,7 @@ func (x *DB_RankLevelArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_RankLevelArray.ProtoReflect.Descriptor instead. func (*DB_RankLevelArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{123} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{121} } func (x *DB_RankLevelArray) GetArr() []*DB_RankLevel { @@ -9510,7 +9392,7 @@ type DB_RankReward struct { func (x *DB_RankReward) Reset() { *x = DB_RankReward{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[124] + mi := &file_protocol_server_pbdata_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9523,7 +9405,7 @@ func (x *DB_RankReward) String() string { func (*DB_RankReward) ProtoMessage() {} func (x *DB_RankReward) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[124] + mi := &file_protocol_server_pbdata_proto_msgTypes[122] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9536,7 +9418,7 @@ func (x *DB_RankReward) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_RankReward.ProtoReflect.Descriptor instead. func (*DB_RankReward) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{124} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{122} } func (x *DB_RankReward) GetId() int32 { @@ -9613,7 +9495,7 @@ type DB_RankRewardArray struct { func (x *DB_RankRewardArray) Reset() { *x = DB_RankRewardArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[125] + mi := &file_protocol_server_pbdata_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9626,7 +9508,7 @@ func (x *DB_RankRewardArray) String() string { func (*DB_RankRewardArray) ProtoMessage() {} func (x *DB_RankRewardArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[125] + mi := &file_protocol_server_pbdata_proto_msgTypes[123] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9639,7 +9521,7 @@ func (x *DB_RankRewardArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_RankRewardArray.ProtoReflect.Descriptor instead. func (*DB_RankRewardArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{125} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{123} } func (x *DB_RankRewardArray) GetArr() []*DB_RankReward { @@ -9661,7 +9543,7 @@ type DB_Sensitive_Words struct { func (x *DB_Sensitive_Words) Reset() { *x = DB_Sensitive_Words{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[126] + mi := &file_protocol_server_pbdata_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9674,7 +9556,7 @@ func (x *DB_Sensitive_Words) String() string { func (*DB_Sensitive_Words) ProtoMessage() {} func (x *DB_Sensitive_Words) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[126] + mi := &file_protocol_server_pbdata_proto_msgTypes[124] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9687,7 +9569,7 @@ func (x *DB_Sensitive_Words) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Sensitive_Words.ProtoReflect.Descriptor instead. func (*DB_Sensitive_Words) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{126} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{124} } func (x *DB_Sensitive_Words) GetId() int32 { @@ -9715,7 +9597,7 @@ type DB_Sensitive_WordsArray struct { func (x *DB_Sensitive_WordsArray) Reset() { *x = DB_Sensitive_WordsArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[127] + mi := &file_protocol_server_pbdata_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9728,7 +9610,7 @@ func (x *DB_Sensitive_WordsArray) String() string { func (*DB_Sensitive_WordsArray) ProtoMessage() {} func (x *DB_Sensitive_WordsArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[127] + mi := &file_protocol_server_pbdata_proto_msgTypes[125] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9741,7 +9623,7 @@ func (x *DB_Sensitive_WordsArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Sensitive_WordsArray.ProtoReflect.Descriptor instead. func (*DB_Sensitive_WordsArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{127} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{125} } func (x *DB_Sensitive_WordsArray) GetArr() []*DB_Sensitive_Words { @@ -9775,7 +9657,7 @@ type DB_Skin struct { func (x *DB_Skin) Reset() { *x = DB_Skin{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[128] + mi := &file_protocol_server_pbdata_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9788,7 +9670,7 @@ func (x *DB_Skin) String() string { func (*DB_Skin) ProtoMessage() {} func (x *DB_Skin) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[128] + mi := &file_protocol_server_pbdata_proto_msgTypes[126] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9801,7 +9683,7 @@ func (x *DB_Skin) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Skin.ProtoReflect.Descriptor instead. func (*DB_Skin) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{128} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{126} } func (x *DB_Skin) GetId() int32 { @@ -9913,7 +9795,7 @@ type DB_SkinArray struct { func (x *DB_SkinArray) Reset() { *x = DB_SkinArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[129] + mi := &file_protocol_server_pbdata_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9926,7 +9808,7 @@ func (x *DB_SkinArray) String() string { func (*DB_SkinArray) ProtoMessage() {} func (x *DB_SkinArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[129] + mi := &file_protocol_server_pbdata_proto_msgTypes[127] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9939,7 +9821,7 @@ func (x *DB_SkinArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_SkinArray.ProtoReflect.Descriptor instead. func (*DB_SkinArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{129} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{127} } func (x *DB_SkinArray) GetArr() []*DB_Skin { @@ -9967,7 +9849,7 @@ type DB_SkinLevel struct { func (x *DB_SkinLevel) Reset() { *x = DB_SkinLevel{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[130] + mi := &file_protocol_server_pbdata_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9980,7 +9862,7 @@ func (x *DB_SkinLevel) String() string { func (*DB_SkinLevel) ProtoMessage() {} func (x *DB_SkinLevel) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[130] + mi := &file_protocol_server_pbdata_proto_msgTypes[128] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9993,7 +9875,7 @@ func (x *DB_SkinLevel) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_SkinLevel.ProtoReflect.Descriptor instead. func (*DB_SkinLevel) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{130} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{128} } func (x *DB_SkinLevel) GetId() int32 { @@ -10063,7 +9945,7 @@ type DB_SkinLevelArray struct { func (x *DB_SkinLevelArray) Reset() { *x = DB_SkinLevelArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[131] + mi := &file_protocol_server_pbdata_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10076,7 +9958,7 @@ func (x *DB_SkinLevelArray) String() string { func (*DB_SkinLevelArray) ProtoMessage() {} func (x *DB_SkinLevelArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[131] + mi := &file_protocol_server_pbdata_proto_msgTypes[129] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10089,7 +9971,7 @@ func (x *DB_SkinLevelArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_SkinLevelArray.ProtoReflect.Descriptor instead. func (*DB_SkinLevelArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{131} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{129} } func (x *DB_SkinLevelArray) GetArr() []*DB_SkinLevel { @@ -10125,7 +10007,7 @@ type DB_SlotRateWeight struct { func (x *DB_SlotRateWeight) Reset() { *x = DB_SlotRateWeight{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[132] + mi := &file_protocol_server_pbdata_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10138,7 +10020,7 @@ func (x *DB_SlotRateWeight) String() string { func (*DB_SlotRateWeight) ProtoMessage() {} func (x *DB_SlotRateWeight) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[132] + mi := &file_protocol_server_pbdata_proto_msgTypes[130] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10151,7 +10033,7 @@ func (x *DB_SlotRateWeight) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_SlotRateWeight.ProtoReflect.Descriptor instead. func (*DB_SlotRateWeight) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{132} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{130} } func (x *DB_SlotRateWeight) GetId() int32 { @@ -10277,7 +10159,7 @@ type DB_SlotRateWeightArray struct { func (x *DB_SlotRateWeightArray) Reset() { *x = DB_SlotRateWeightArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[133] + mi := &file_protocol_server_pbdata_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10290,7 +10172,7 @@ func (x *DB_SlotRateWeightArray) String() string { func (*DB_SlotRateWeightArray) ProtoMessage() {} func (x *DB_SlotRateWeightArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[133] + mi := &file_protocol_server_pbdata_proto_msgTypes[131] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10303,7 +10185,7 @@ func (x *DB_SlotRateWeightArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_SlotRateWeightArray.ProtoReflect.Descriptor instead. func (*DB_SlotRateWeightArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{133} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{131} } func (x *DB_SlotRateWeightArray) GetArr() []*DB_SlotRateWeight { @@ -10328,7 +10210,7 @@ type DB_SystemChance struct { func (x *DB_SystemChance) Reset() { *x = DB_SystemChance{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[134] + mi := &file_protocol_server_pbdata_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10341,7 +10223,7 @@ func (x *DB_SystemChance) String() string { func (*DB_SystemChance) ProtoMessage() {} func (x *DB_SystemChance) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[134] + mi := &file_protocol_server_pbdata_proto_msgTypes[132] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10354,7 +10236,7 @@ func (x *DB_SystemChance) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_SystemChance.ProtoReflect.Descriptor instead. func (*DB_SystemChance) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{134} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{132} } func (x *DB_SystemChance) GetId() int32 { @@ -10403,7 +10285,7 @@ type DB_SystemChanceArray struct { func (x *DB_SystemChanceArray) Reset() { *x = DB_SystemChanceArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[135] + mi := &file_protocol_server_pbdata_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10416,7 +10298,7 @@ func (x *DB_SystemChanceArray) String() string { func (*DB_SystemChanceArray) ProtoMessage() {} func (x *DB_SystemChanceArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[135] + mi := &file_protocol_server_pbdata_proto_msgTypes[133] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10429,7 +10311,7 @@ func (x *DB_SystemChanceArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_SystemChanceArray.ProtoReflect.Descriptor instead. func (*DB_SystemChanceArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{135} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{133} } func (x *DB_SystemChanceArray) GetArr() []*DB_SystemChance { @@ -10460,7 +10342,7 @@ type DB_Task struct { func (x *DB_Task) Reset() { *x = DB_Task{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[136] + mi := &file_protocol_server_pbdata_proto_msgTypes[134] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10473,7 +10355,7 @@ func (x *DB_Task) String() string { func (*DB_Task) ProtoMessage() {} func (x *DB_Task) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[136] + mi := &file_protocol_server_pbdata_proto_msgTypes[134] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10486,7 +10368,7 @@ func (x *DB_Task) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Task.ProtoReflect.Descriptor instead. func (*DB_Task) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{136} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{134} } func (x *DB_Task) GetId() int32 { @@ -10577,7 +10459,7 @@ type DB_TaskArray struct { func (x *DB_TaskArray) Reset() { *x = DB_TaskArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[137] + mi := &file_protocol_server_pbdata_proto_msgTypes[135] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10590,7 +10472,7 @@ func (x *DB_TaskArray) String() string { func (*DB_TaskArray) ProtoMessage() {} func (x *DB_TaskArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[137] + mi := &file_protocol_server_pbdata_proto_msgTypes[135] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10603,7 +10485,7 @@ func (x *DB_TaskArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_TaskArray.ProtoReflect.Descriptor instead. func (*DB_TaskArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{137} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{135} } func (x *DB_TaskArray) GetArr() []*DB_Task { @@ -10630,7 +10512,7 @@ type DB_ThirdPlatformGameMapping struct { func (x *DB_ThirdPlatformGameMapping) Reset() { *x = DB_ThirdPlatformGameMapping{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[138] + mi := &file_protocol_server_pbdata_proto_msgTypes[136] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10643,7 +10525,7 @@ func (x *DB_ThirdPlatformGameMapping) String() string { func (*DB_ThirdPlatformGameMapping) ProtoMessage() {} func (x *DB_ThirdPlatformGameMapping) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[138] + mi := &file_protocol_server_pbdata_proto_msgTypes[136] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10656,7 +10538,7 @@ func (x *DB_ThirdPlatformGameMapping) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_ThirdPlatformGameMapping.ProtoReflect.Descriptor instead. func (*DB_ThirdPlatformGameMapping) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{138} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{136} } func (x *DB_ThirdPlatformGameMapping) GetId() int32 { @@ -10719,7 +10601,7 @@ type DB_ThirdPlatformGameMappingArray struct { func (x *DB_ThirdPlatformGameMappingArray) Reset() { *x = DB_ThirdPlatformGameMappingArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[139] + mi := &file_protocol_server_pbdata_proto_msgTypes[137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10732,7 +10614,7 @@ func (x *DB_ThirdPlatformGameMappingArray) String() string { func (*DB_ThirdPlatformGameMappingArray) ProtoMessage() {} func (x *DB_ThirdPlatformGameMappingArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[139] + mi := &file_protocol_server_pbdata_proto_msgTypes[137] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10745,7 +10627,7 @@ func (x *DB_ThirdPlatformGameMappingArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_ThirdPlatformGameMappingArray.ProtoReflect.Descriptor instead. func (*DB_ThirdPlatformGameMappingArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{139} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{137} } func (x *DB_ThirdPlatformGameMappingArray) GetArr() []*DB_ThirdPlatformGameMapping { @@ -10768,7 +10650,7 @@ type DB_Tips struct { func (x *DB_Tips) Reset() { *x = DB_Tips{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[140] + mi := &file_protocol_server_pbdata_proto_msgTypes[138] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10781,7 +10663,7 @@ func (x *DB_Tips) String() string { func (*DB_Tips) ProtoMessage() {} func (x *DB_Tips) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[140] + mi := &file_protocol_server_pbdata_proto_msgTypes[138] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10794,7 +10676,7 @@ func (x *DB_Tips) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_Tips.ProtoReflect.Descriptor instead. func (*DB_Tips) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{140} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{138} } func (x *DB_Tips) GetId() int32 { @@ -10829,7 +10711,7 @@ type DB_TipsArray struct { func (x *DB_TipsArray) Reset() { *x = DB_TipsArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[141] + mi := &file_protocol_server_pbdata_proto_msgTypes[139] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10842,7 +10724,7 @@ func (x *DB_TipsArray) String() string { func (*DB_TipsArray) ProtoMessage() {} func (x *DB_TipsArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[141] + mi := &file_protocol_server_pbdata_proto_msgTypes[139] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10855,7 +10737,7 @@ func (x *DB_TipsArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_TipsArray.ProtoReflect.Descriptor instead. func (*DB_TipsArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{141} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{139} } func (x *DB_TipsArray) GetArr() []*DB_Tips { @@ -10897,7 +10779,7 @@ type DB_VIP struct { func (x *DB_VIP) Reset() { *x = DB_VIP{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[142] + mi := &file_protocol_server_pbdata_proto_msgTypes[140] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10910,7 +10792,7 @@ func (x *DB_VIP) String() string { func (*DB_VIP) ProtoMessage() {} func (x *DB_VIP) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[142] + mi := &file_protocol_server_pbdata_proto_msgTypes[140] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10923,7 +10805,7 @@ func (x *DB_VIP) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_VIP.ProtoReflect.Descriptor instead. func (*DB_VIP) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{142} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{140} } func (x *DB_VIP) GetId() int32 { @@ -11091,7 +10973,7 @@ type DB_VIPArray struct { func (x *DB_VIPArray) Reset() { *x = DB_VIPArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[143] + mi := &file_protocol_server_pbdata_proto_msgTypes[141] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11104,7 +10986,7 @@ func (x *DB_VIPArray) String() string { func (*DB_VIPArray) ProtoMessage() {} func (x *DB_VIPArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[143] + mi := &file_protocol_server_pbdata_proto_msgTypes[141] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11117,7 +10999,7 @@ func (x *DB_VIPArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_VIPArray.ProtoReflect.Descriptor instead. func (*DB_VIPArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{143} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{141} } func (x *DB_VIPArray) GetArr() []*DB_VIP { @@ -11142,7 +11024,7 @@ type DB_VIPShow struct { func (x *DB_VIPShow) Reset() { *x = DB_VIPShow{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[144] + mi := &file_protocol_server_pbdata_proto_msgTypes[142] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11155,7 +11037,7 @@ func (x *DB_VIPShow) String() string { func (*DB_VIPShow) ProtoMessage() {} func (x *DB_VIPShow) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[144] + mi := &file_protocol_server_pbdata_proto_msgTypes[142] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11168,7 +11050,7 @@ func (x *DB_VIPShow) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_VIPShow.ProtoReflect.Descriptor instead. func (*DB_VIPShow) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{144} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{142} } func (x *DB_VIPShow) GetId() int32 { @@ -11217,7 +11099,7 @@ type DB_VIPShowArray struct { func (x *DB_VIPShowArray) Reset() { *x = DB_VIPShowArray{} if protoimpl.UnsafeEnabled { - mi := &file_protocol_server_pbdata_proto_msgTypes[145] + mi := &file_protocol_server_pbdata_proto_msgTypes[143] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11230,7 +11112,7 @@ func (x *DB_VIPShowArray) String() string { func (*DB_VIPShowArray) ProtoMessage() {} func (x *DB_VIPShowArray) ProtoReflect() protoreflect.Message { - mi := &file_protocol_server_pbdata_proto_msgTypes[145] + mi := &file_protocol_server_pbdata_proto_msgTypes[143] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11243,7 +11125,7 @@ func (x *DB_VIPShowArray) ProtoReflect() protoreflect.Message { // Deprecated: Use DB_VIPShowArray.ProtoReflect.Descriptor instead. func (*DB_VIPShowArray) Descriptor() ([]byte, []int) { - return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{145} + return file_protocol_server_pbdata_proto_rawDescGZIP(), []int{143} } func (x *DB_VIPShowArray) GetArr() []*DB_VIPShow { @@ -12279,506 +12161,486 @@ var file_protocol_server_pbdata_proto_rawDesc = []byte{ 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2c, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x4e, 0x65, 0x77, 0x59, 0x65, 0x61, 0x72, 0x41, - 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xe9, 0x01, 0x0a, - 0x14, 0x44, 0x42, 0x5f, 0x4e, 0x65, 0x77, 0x59, 0x65, 0x61, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x49, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x49, 0x64, 0x12, 0x46, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4d, 0x61, 0x70, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, - 0x42, 0x5f, 0x4e, 0x65, 0x77, 0x59, 0x65, 0x61, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x4d, 0x61, 0x70, 0x1a, 0x3b, 0x0a, 0x0d, 0x41, - 0x77, 0x61, 0x72, 0x64, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x75, 0x0a, 0x0b, + 0x44, 0x42, 0x5f, 0x50, 0x61, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x53, + 0x68, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, + 0x68, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x68, 0x6f, + 0x77, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x50, 0x61, 0x73, 0x73, 0x53, 0x68, + 0x6f, 0x77, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, + 0x5f, 0x50, 0x61, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xe9, + 0x02, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6c, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x6b, 0x69, + 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x65, 0x74, 0x49, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x50, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, + 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, + 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x6b, + 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x6b, + 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x4b, 0x69, 0x6c, 0x6c, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x4b, 0x69, 0x6c, + 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x43, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, + 0x6e, 0x73, 0x75, 0x6d, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x2e, + 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x1a, 0x3d, 0x0a, 0x0f, 0x49, + 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, + 0x5f, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x25, + 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, + 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xa2, 0x02, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x50, 0x68, 0x6f, + 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x17, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x5f, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, + 0x61, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x4f, 0x64, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4f, + 0x64, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x31, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x31, 0x12, 0x12, + 0x0a, 0x04, 0x4f, 0x64, 0x64, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4f, 0x64, + 0x64, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x32, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x32, 0x12, 0x12, + 0x0a, 0x04, 0x4f, 0x64, 0x64, 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4f, 0x64, + 0x64, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x33, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x33, 0x12, 0x1a, + 0x0a, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x34, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x34, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, + 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x41, 0x72, 0x72, + 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x68, 0x6f, 0x6e, + 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xd8, 0x04, + 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, + 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x4d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x42, 0x75, 0x79, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x73, 0x74, + 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, + 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, + 0x78, 0x47, 0x6f, 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x78, + 0x47, 0x6f, 0x6c, 0x64, 0x12, 0x41, 0x0a, 0x07, 0x47, 0x6f, 0x6c, 0x64, 0x45, 0x78, 0x63, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, + 0x42, 0x5f, 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, + 0x64, 0x2e, 0x47, 0x6f, 0x6c, 0x64, 0x45, 0x78, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, + 0x47, 0x6f, 0x6c, 0x64, 0x45, 0x78, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x78, 0x44, 0x69, + 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x78, + 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x69, 0x61, 0x6d, 0x6f, + 0x6e, 0x64, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x44, 0x69, 0x61, 0x6d, + 0x6f, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x4a, 0x0a, 0x0a, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, + 0x45, 0x78, 0x63, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, + 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x2e, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x45, 0x78, 0x63, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x45, 0x78, + 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, + 0x22, 0x0a, 0x0c, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4e, 0x6f, + 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x44, 0x69, + 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, 0x1a, 0x3a, 0x0a, + 0x0c, 0x47, 0x6f, 0x6c, 0x64, 0x45, 0x78, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x44, 0x69, 0x61, + 0x6d, 0x6f, 0x6e, 0x64, 0x45, 0x78, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4b, 0x0a, 0x19, 0x44, 0x42, 0x5f, 0x4e, - 0x65, 0x77, 0x59, 0x65, 0x61, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2e, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x4e, - 0x65, 0x77, 0x59, 0x65, 0x61, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x75, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x50, 0x61, 0x73, 0x73, - 0x53, 0x68, 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x39, 0x0a, 0x10, - 0x44, 0x42, 0x5f, 0x50, 0x61, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x72, 0x72, 0x61, 0x79, - 0x12, 0x25, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x61, 0x73, 0x73, 0x53, 0x68, - 0x6f, 0x77, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xe9, 0x02, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x50, - 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6b, 0x69, 0x6c, 0x6c, - 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, - 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x50, 0x65, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x50, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x12, - 0x1e, 0x0a, 0x0a, 0x53, 0x4b, 0x69, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x4b, 0x69, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, - 0x43, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x18, 0x09, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, - 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6e, - 0x73, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, - 0x6e, 0x73, 0x75, 0x6d, 0x1a, 0x3d, 0x0a, 0x0f, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6e, 0x73, - 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x42, 0x5f, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, - 0x6c, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x25, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, - 0x5f, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xa2, - 0x02, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, - 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x49, 0x74, - 0x65, 0x6d, 0x5f, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, - 0x6d, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4f, 0x64, 0x64, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4f, 0x64, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4f, - 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, - 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x31, 0x12, 0x12, 0x0a, 0x04, 0x4f, 0x64, 0x64, 0x32, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4f, 0x64, 0x64, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x4f, - 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, - 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x4f, 0x64, 0x64, 0x33, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4f, 0x64, 0x64, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x4f, - 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x33, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, - 0x64, 0x64, 0x72, 0x61, 0x74, 0x65, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, - 0x74, 0x65, 0x34, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, 0x64, 0x64, 0x72, 0x61, - 0x74, 0x65, 0x34, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, - 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, - 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, - 0x79, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xd8, 0x04, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x50, 0x69, - 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x20, 0x0a, - 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x12, - 0x20, 0x0a, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x61, - 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x6d, - 0x6f, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x78, 0x47, 0x6f, 0x6c, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x78, 0x47, 0x6f, 0x6c, 0x64, 0x12, 0x41, 0x0a, - 0x07, 0x47, 0x6f, 0x6c, 0x64, 0x45, 0x78, 0x63, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x42, 0x61, - 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x2e, 0x47, 0x6f, 0x6c, 0x64, 0x45, - 0x78, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x47, 0x6f, 0x6c, 0x64, 0x45, 0x78, 0x63, - 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x78, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x78, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, - 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x09, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x4a, - 0x0a, 0x0a, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x45, 0x78, 0x63, 0x18, 0x09, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, - 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x2e, 0x44, - 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x45, 0x78, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, - 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x45, 0x78, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x6f, - 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x43, - 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x44, 0x69, 0x61, 0x6d, - 0x6f, 0x6e, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, - 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0f, - 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4e, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4e, 0x6f, - 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, 0x1a, 0x3a, 0x0a, 0x0c, 0x47, 0x6f, 0x6c, 0x64, 0x45, 0x78, - 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x45, 0x78, 0x63, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, - 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2c, 0x0a, 0x03, - 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, - 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x5b, 0x0a, 0x0f, 0x44, 0x42, - 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, - 0x08, 0x50, 0x6f, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x50, 0x6f, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x72, 0x6f, - 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x50, 0x72, - 0x6f, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x50, 0x69, - 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, - 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, - 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x30, 0x0a, 0x0c, 0x44, 0x42, - 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x78, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x78, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x45, 0x78, 0x70, 0x22, 0x3b, 0x0a, 0x11, - 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x78, 0x70, 0x41, 0x72, 0x72, 0x61, - 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x45, 0x78, 0x70, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xa5, 0x05, 0x0a, 0x0d, 0x44, 0x42, - 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, - 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x50, 0x61, 0x79, 0x4c, 0x6f, 0x77, 0x65, 0x72, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x55, 0x70, 0x70, 0x65, - 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x50, 0x61, - 0x79, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x47, - 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x47, - 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x54, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, 0x5f, 0x50, + 0x69, 0x67, 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x41, 0x72, + 0x72, 0x61, 0x79, 0x12, 0x2c, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, + 0x42, 0x61, 0x6e, 0x6b, 0x5f, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x52, 0x03, 0x41, 0x72, + 0x72, 0x22, 0x5b, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, + 0x50, 0x72, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6f, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6f, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x50, 0x72, 0x6f, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x41, + 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x72, 0x6f, + 0x70, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, + 0x50, 0x69, 0x67, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x52, 0x03, 0x41, 0x72, + 0x72, 0x22, 0x30, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x78, + 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, + 0x64, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x78, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x45, 0x78, 0x70, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x45, 0x78, 0x70, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, + 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x78, 0x70, 0x52, 0x03, 0x41, 0x72, 0x72, + 0x22, 0xa5, 0x05, 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, + 0x65, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, + 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x4c, 0x6f, 0x77, + 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x50, + 0x61, 0x79, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x24, 0x0a, 0x0d, + 0x50, 0x61, 0x79, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0d, 0x50, 0x61, 0x79, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x6f, + 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, + 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x70, + 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, + 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x4c, 0x6f, 0x77, + 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x4c, - 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x49, 0x6e, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x55, 0x70, 0x70, - 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x4c, - 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, - 0x26, 0x0a, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x55, 0x70, 0x70, - 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x75, 0x63, 0x6b, 0x79, - 0x52, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4c, 0x75, 0x63, 0x6b, - 0x79, 0x52, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, - 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, - 0x0e, 0x43, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x18, - 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x43, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x45, - 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x10, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x0c, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, - 0x20, 0x0a, 0x0b, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x62, 0x52, 0x61, 0x74, 0x65, 0x18, 0x11, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x62, 0x52, 0x61, 0x74, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x62, 0x41, 0x72, 0x72, 0x18, - 0x12, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x62, 0x41, 0x72, - 0x72, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, - 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, - 0x22, 0x5d, 0x0a, 0x09, 0x44, 0x42, 0x5f, 0x50, 0x6f, 0x74, 0x4f, 0x64, 0x64, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x56, 0x69, 0x70, 0x4f, 0x64, - 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x56, 0x69, 0x70, 0x4f, 0x64, 0x64, 0x22, - 0x35, 0x0a, 0x0e, 0x44, 0x42, 0x5f, 0x50, 0x6f, 0x74, 0x4f, 0x64, 0x64, 0x41, 0x72, 0x72, 0x61, - 0x79, 0x12, 0x23, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x6f, 0x74, 0x4f, 0x64, - 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x97, 0x02, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x50, 0x72, - 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x12, 0x35, 0x0a, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x47, 0x61, 0x69, 0x6e, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, - 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x47, - 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x47, 0x61, 0x69, 0x6e, 0x1a, 0x37, - 0x0a, 0x09, 0x43, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x55, 0x70, 0x70, 0x65, 0x72, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x49, 0x6e, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, + 0x0a, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x4c, 0x6f, 0x77, 0x65, + 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x64, 0x64, 0x73, 0x55, 0x70, + 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, + 0x4f, 0x64, 0x64, 0x73, 0x55, 0x70, 0x70, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1c, + 0x0a, 0x09, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x09, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x52, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x61, 0x72, 0x64, + 0x52, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x61, 0x72, 0x64, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x43, 0x61, + 0x72, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x24, 0x0a, 0x0d, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0f, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x0d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, + 0x62, 0x52, 0x61, 0x74, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x61, 0x72, + 0x64, 0x4c, 0x69, 0x62, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, + 0x4c, 0x69, 0x62, 0x41, 0x72, 0x72, 0x18, 0x12, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, + 0x72, 0x64, 0x4c, 0x69, 0x62, 0x41, 0x72, 0x72, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x27, + 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x5d, 0x0a, 0x09, 0x44, 0x42, 0x5f, 0x50, 0x6f, + 0x74, 0x4f, 0x64, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x56, 0x69, 0x70, 0x4f, 0x64, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, + 0x56, 0x69, 0x70, 0x4f, 0x64, 0x64, 0x22, 0x35, 0x0a, 0x0e, 0x44, 0x42, 0x5f, 0x50, 0x6f, 0x74, + 0x4f, 0x64, 0x64, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x23, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, + 0x42, 0x5f, 0x50, 0x6f, 0x74, 0x4f, 0x64, 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x97, 0x02, + 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x35, 0x0a, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, + 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x43, + 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x35, + 0x0a, 0x04, 0x47, 0x61, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x47, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x04, 0x47, 0x61, 0x69, 0x6e, 0x1a, 0x37, 0x0a, 0x09, 0x43, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, + 0x0a, 0x09, 0x47, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x61, 0x69, 0x6e, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, - 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x03, - 0x41, 0x72, 0x72, 0x22, 0x46, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x79, - 0x63, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x6e, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x45, 0x6e, 0x64, 0x22, 0x3b, 0x0a, 0x11, 0x44, - 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x50, 0x72, + 0x6f, 0x70, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, + 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x50, 0x72, 0x6f, 0x70, 0x45, 0x78, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x46, 0x0a, 0x0c, 0x44, 0x42, + 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x45, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x45, + 0x6e, 0x64, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x79, 0x63, + 0x6c, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, + 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, + 0x7a, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, + 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x3b, 0x0a, 0x11, 0x44, + 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x43, 0x79, - 0x63, 0x6c, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x7a, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x52, - 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, - 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4c, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xff, 0x01, 0x0a, 0x0d, 0x44, 0x42, 0x5f, + 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, + 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, + 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, + 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, + 0x64, 0x31, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, + 0x72, 0x64, 0x31, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, + 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, + 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x4e, 0x75, 0x6d, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x4e, 0x75, 0x6d, + 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, + 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x4e, 0x75, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x4e, 0x75, 0x6d, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, + 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x41, 0x72, 0x72, 0x61, 0x79, + 0x12, 0x27, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x4d, 0x0a, 0x12, 0x44, 0x42, 0x5f, + 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x12, + 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, + 0x27, 0x0a, 0x0f, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, + 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, + 0x69, 0x76, 0x65, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, 0x5f, 0x53, + 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x41, 0x72, + 0x72, 0x61, 0x79, 0x12, 0x2c, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x65, 0x6e, + 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x03, 0x41, 0x72, + 0x72, 0x22, 0x83, 0x04, 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1c, 0x0a, + 0x09, 0x53, 0x6b, 0x69, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x53, 0x6b, 0x69, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x4d, + 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4d, 0x6f, 0x64, 0x65, + 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6b, 0x69, 0x6e, 0x50, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x53, 0x6b, 0x69, 0x6e, 0x50, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x53, + 0x6b, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, + 0x6b, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x6b, 0x69, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x6b, 0x69, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, + 0x6d, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x2e, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x49, + 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, + 0x49, 0x74, 0x65, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, + 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x53, 0x6b, 0x69, + 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x6b, + 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x63, 0x6f, 0x6e, + 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, + 0x6c, 0x44, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x53, 0x6b, 0x69, + 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x75, + 0x72, 0x6e, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x54, 0x75, 0x72, 0x6e, 0x12, 0x18, + 0x0a, 0x07, 0x54, 0x75, 0x72, 0x6e, 0x4b, 0x65, 0x79, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x07, 0x54, 0x75, 0x72, 0x6e, 0x4b, 0x65, 0x79, 0x1a, 0x3d, 0x0a, 0x0f, 0x55, 0x6e, 0x6c, 0x6f, + 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x53, 0x6b, + 0x69, 0x6e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x21, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, + 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xd7, 0x02, 0x0a, 0x0c, 0x44, + 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, + 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x6b, 0x69, + 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x38, 0x0a, 0x06, 0x55, 0x70, 0x49, + 0x74, 0x65, 0x6d, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x2e, + 0x55, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x55, 0x70, 0x49, + 0x74, 0x65, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, + 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, + 0x69, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, + 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x53, + 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x26, 0x0a, + 0x0e, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, + 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x53, 0x6b, 0x69, + 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x55, 0x70, 0x49, + 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x03, 0x41, 0x72, - 0x72, 0x22, 0xff, 0x01, 0x0a, 0x0d, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x02, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, 0x49, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, 0x49, - 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, 0x4e, 0x75, 0x6d, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x31, 0x4e, 0x75, 0x6d, 0x12, - 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, - 0x77, 0x61, 0x72, 0x64, 0x32, 0x4e, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, - 0x41, 0x77, 0x61, 0x72, 0x64, 0x32, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x77, 0x61, - 0x72, 0x64, 0x33, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x77, 0x61, - 0x72, 0x64, 0x33, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, 0x4e, - 0x75, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x41, 0x77, 0x61, 0x72, 0x64, 0x33, - 0x4e, 0x75, 0x6d, 0x22, 0x3d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x03, 0x41, 0x72, 0x72, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x44, 0x42, 0x5f, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x03, 0x41, - 0x72, 0x72, 0x22, 0x4d, 0x0a, 0x12, 0x44, 0x42, 0x5f, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x53, 0x65, 0x6e, 0x73, - 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x57, 0x6f, 0x72, 0x64, - 0x73, 0x22, 0x47, 0x0a, 0x17, 0x44, 0x42, 0x5f, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2c, 0x0a, 0x03, - 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x57, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x83, 0x04, 0x0a, 0x07, 0x44, - 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6e, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x6b, 0x69, 0x6e, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x6b, - 0x69, 0x6e, 0x50, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x6b, 0x69, - 0x6e, 0x50, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x6b, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x6b, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x6b, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x53, 0x6b, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, - 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3f, 0x0a, 0x0a, - 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, - 0x6e, 0x2e, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x24, 0x0a, - 0x0d, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, - 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x53, 0x6b, 0x69, 0x6e, - 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x6b, 0x69, - 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x12, 0x24, 0x0a, - 0x0d, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x75, 0x72, 0x6e, 0x18, 0x0d, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x04, 0x54, 0x75, 0x72, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x75, 0x72, 0x6e, 0x4b, - 0x65, 0x79, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x54, 0x75, 0x72, 0x6e, 0x4b, 0x65, - 0x79, 0x1a, 0x3d, 0x0a, 0x0f, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x41, 0x72, 0x72, 0x61, 0x79, - 0x12, 0x21, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x52, 0x03, - 0x41, 0x72, 0x72, 0x22, 0xd7, 0x02, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, - 0x65, 0x6c, 0x12, 0x38, 0x0a, 0x06, 0x55, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, - 0x6b, 0x69, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x2e, 0x55, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x55, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x20, 0x0a, 0x0b, - 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0b, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x26, - 0x0a, 0x0e, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, - 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, - 0x69, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, - 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x22, - 0x0a, 0x0c, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x73, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x53, 0x6b, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, - 0x65, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x55, 0x70, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, + 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x03, 0x41, 0x72, + 0x72, 0x22, 0xbb, 0x03, 0x0a, 0x11, 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, + 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, + 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, + 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, + 0x6d, 0x43, 0x6f, 0x6c, 0x31, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, + 0x6d, 0x43, 0x6f, 0x6c, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, + 0x32, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, + 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x33, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x33, 0x12, 0x1a, 0x0a, + 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x34, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, + 0x6d, 0x43, 0x6f, 0x6c, 0x35, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, + 0x6d, 0x43, 0x6f, 0x6c, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, + 0x31, 0x18, 0x09, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, + 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x32, 0x18, 0x0a, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x32, 0x12, 0x1a, 0x0a, + 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x33, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, + 0x65, 0x43, 0x6f, 0x6c, 0x34, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, + 0x65, 0x43, 0x6f, 0x6c, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, + 0x35, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, + 0x35, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x18, 0x0e, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4f, 0x75, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4d, + 0x61, 0x72, 0x79, 0x4d, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, + 0x72, 0x79, 0x4d, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x74, + 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x74, 0x22, + 0x45, 0x0a, 0x16, 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x2b, 0x0a, 0x03, 0x41, 0x72, 0x72, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, + 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x7d, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, + 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, 0x12, 0x1e, 0x0a, + 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x69, + 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x52, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x52, 0x61, 0x74, 0x65, 0x22, 0x41, 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, + 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x61, + 0x6e, 0x63, 0x65, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xfd, 0x02, 0x0a, 0x07, 0x44, 0x42, 0x5f, + 0x54, 0x61, 0x73, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x44, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x44, 0x65, 0x73, + 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x09, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, + 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x38, + 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x54, + 0x61, 0x73, 0x6b, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x21, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, + 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x85, 0x02, 0x0a, 0x1b, + 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x53, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0c, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, + 0x2c, 0x0a, 0x11, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x54, 0x68, 0x69, 0x72, + 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, + 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, + 0x65, 0x73, 0x63, 0x12, 0x34, 0x0a, 0x15, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x4f, 0x72, 0x69, + 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x15, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x68, 0x69, + 0x72, 0x64, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x54, 0x68, 0x69, 0x72, + 0x64, 0x49, 0x44, 0x22, 0x59, 0x0a, 0x20, 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x35, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, + 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, + 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x43, + 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, + 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, + 0x64, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x44, 0x65, 0x73, 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, 0x41, 0x72, + 0x72, 0x61, 0x79, 0x12, 0x21, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, + 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xce, 0x06, 0x0a, 0x06, 0x44, 0x42, 0x5f, 0x56, 0x49, + 0x50, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x56, + 0x69, 0x70, 0x45, 0x78, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x56, 0x69, 0x70, + 0x45, 0x78, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, + 0x31, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, + 0x67, 0x65, 0x31, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, + 0x32, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, + 0x67, 0x65, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x12, 0x1e, 0x0a, + 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x18, 0x08, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x12, 0x1e, 0x0a, + 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x12, 0x1e, 0x0a, + 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x12, 0x1e, 0x0a, + 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x12, 0x3e, 0x0a, + 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x18, 0x0c, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, + 0x50, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x12, 0x28, 0x0a, + 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, + 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, + 0x64, 0x37, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, + 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, + 0x38, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x18, 0x11, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, + 0x44, 0x12, 0x2f, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, + 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, + 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x13, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, + 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, + 0x69, 0x6c, 0x65, 0x67, 0x65, 0x39, 0x18, 0x15, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, + 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x39, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x72, 0x69, 0x76, + 0x69, 0x6c, 0x65, 0x67, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0d, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x1a, 0x3d, + 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3b, 0x0a, - 0x11, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x41, 0x72, 0x72, - 0x61, 0x79, 0x12, 0x26, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x6b, 0x69, 0x6e, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0xbb, 0x03, 0x0a, 0x11, 0x44, - 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, - 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, - 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, - 0x6f, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x31, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x31, 0x12, 0x1a, - 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x32, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, - 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x33, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, - 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, - 0x6c, 0x34, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, - 0x6c, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x35, 0x18, 0x08, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x4e, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6c, 0x35, 0x12, 0x1a, - 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x31, 0x18, 0x09, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, - 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x32, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, - 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, - 0x6c, 0x33, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, - 0x6c, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x34, 0x18, 0x0c, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x34, 0x12, 0x1a, - 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x35, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6f, 0x6c, 0x35, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, - 0x72, 0x79, 0x4f, 0x75, 0x74, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x72, - 0x79, 0x4f, 0x75, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4d, 0x69, 0x64, 0x18, - 0x0f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x72, 0x79, 0x4d, 0x69, 0x64, 0x12, 0x18, - 0x0a, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x74, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, - 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x74, 0x22, 0x45, 0x0a, 0x16, 0x44, 0x42, 0x5f, 0x53, - 0x6c, 0x6f, 0x74, 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x41, 0x72, 0x72, - 0x61, 0x79, 0x12, 0x2b, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x53, 0x6c, 0x6f, 0x74, - 0x52, 0x61, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, - 0x7d, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, - 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x68, 0x61, 0x6e, - 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x52, 0x61, - 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, 0x74, 0x65, 0x22, 0x41, - 0x0a, 0x14, 0x44, 0x42, 0x5f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x63, - 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, - 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x03, 0x41, 0x72, - 0x72, 0x22, 0xfd, 0x02, 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x0e, 0x0a, - 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, - 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x65, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x44, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x63, 0x74, - 0x69, 0x76, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x08, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x46, - 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x30, 0x0a, - 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x41, 0x77, - 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, - 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x50, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x22, 0x31, 0x0a, 0x0c, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x72, 0x72, 0x61, - 0x79, 0x12, 0x21, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x61, 0x73, 0x6b, 0x52, - 0x03, 0x41, 0x72, 0x72, 0x22, 0x85, 0x02, 0x0a, 0x1b, 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, - 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x02, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x61, - 0x6d, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x68, 0x69, 0x72, - 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x11, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, - 0x61, 0x6d, 0x65, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x54, 0x68, 0x69, - 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, 0x12, 0x34, 0x0a, 0x15, - 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x53, 0x63, 0x72, - 0x65, 0x65, 0x6e, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x68, 0x69, 0x72, 0x64, 0x49, 0x44, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x07, 0x54, 0x68, 0x69, 0x72, 0x64, 0x49, 0x44, 0x22, 0x59, 0x0a, 0x20, - 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, - 0x12, 0x35, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x43, 0x0a, 0x07, 0x44, 0x42, 0x5f, 0x54, 0x69, - 0x70, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x44, 0x65, 0x73, 0x22, 0x31, 0x0a, 0x0c, - 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x21, 0x0a, 0x03, - 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x54, 0x69, 0x70, 0x73, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, - 0xce, 0x06, 0x0a, 0x06, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x56, 0x69, 0x70, 0x45, 0x78, 0x70, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x56, 0x69, 0x70, 0x45, 0x78, 0x70, 0x12, 0x1e, 0x0a, 0x0a, - 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x31, 0x12, 0x1e, 0x0a, 0x0a, - 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x32, 0x12, 0x18, 0x0a, 0x07, - 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, - 0x68, 0x6f, 0x70, 0x49, 0x64, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x33, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, - 0x69, 0x6c, 0x65, 0x67, 0x65, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x34, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, - 0x69, 0x6c, 0x65, 0x67, 0x65, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x35, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, - 0x69, 0x6c, 0x65, 0x67, 0x65, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x36, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, - 0x69, 0x6c, 0x65, 0x67, 0x65, 0x36, 0x12, 0x3e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x37, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x69, - 0x6c, 0x65, 0x67, 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, - 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x12, 0x28, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x37, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x37, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, - 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, - 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x38, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, - 0x65, 0x49, 0x44, 0x18, 0x11, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x12, 0x2f, 0x0a, 0x05, 0x41, 0x77, - 0x61, 0x72, 0x64, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x39, 0x18, - 0x15, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, - 0x39, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x53, 0x68, - 0x6f, 0x77, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x76, 0x69, - 0x6c, 0x65, 0x67, 0x65, 0x37, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x22, 0x2f, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, - 0x20, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x52, 0x03, 0x41, 0x72, - 0x72, 0x22, 0x7c, 0x0a, 0x0a, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x53, 0x68, 0x6f, 0x77, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x6b, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x56, - 0x49, 0x50, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x56, - 0x49, 0x50, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x56, 0x49, 0x50, 0x44, 0x65, - 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x56, 0x49, 0x50, 0x44, 0x65, 0x73, 0x22, - 0x37, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x72, 0x72, - 0x61, 0x79, 0x12, 0x24, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x53, - 0x68, 0x6f, 0x77, 0x52, 0x03, 0x41, 0x72, 0x72, 0x42, 0x26, 0x5a, 0x24, 0x6d, 0x6f, 0x6e, 0x67, - 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, - 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x38, 0x0a, + 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x2f, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x56, 0x49, + 0x50, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x20, 0x0a, 0x03, 0x41, 0x72, 0x72, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, + 0x56, 0x49, 0x50, 0x52, 0x03, 0x41, 0x72, 0x72, 0x22, 0x7c, 0x0a, 0x0a, 0x44, 0x42, 0x5f, 0x56, + 0x49, 0x50, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6b, + 0x69, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x6b, 0x69, 0x6e, + 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x56, 0x49, 0x50, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x56, 0x49, 0x50, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x16, + 0x0a, 0x06, 0x56, 0x49, 0x50, 0x44, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x56, 0x49, 0x50, 0x44, 0x65, 0x73, 0x22, 0x37, 0x0a, 0x0f, 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, + 0x53, 0x68, 0x6f, 0x77, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x24, 0x0a, 0x03, 0x41, 0x72, 0x72, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, + 0x44, 0x42, 0x5f, 0x56, 0x49, 0x50, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x03, 0x41, 0x72, 0x72, 0x42, + 0x26, 0x5a, 0x24, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -12793,7 +12655,7 @@ func file_protocol_server_pbdata_proto_rawDescGZIP() []byte { return file_protocol_server_pbdata_proto_rawDescData } -var file_protocol_server_pbdata_proto_msgTypes = make([]protoimpl.MessageInfo, 163) +var file_protocol_server_pbdata_proto_msgTypes = make([]protoimpl.MessageInfo, 160) var file_protocol_server_pbdata_proto_goTypes = []interface{}{ (*DB_ActSign)(nil), // 0: server.DB_ActSign (*DB_ActSignArray)(nil), // 1: server.DB_ActSignArray @@ -12895,69 +12757,66 @@ var file_protocol_server_pbdata_proto_goTypes = []interface{}{ (*DB_NewPlayerArray)(nil), // 97: server.DB_NewPlayerArray (*DB_NewYearActivity)(nil), // 98: server.DB_NewYearActivity (*DB_NewYearActivityArray)(nil), // 99: server.DB_NewYearActivityArray - (*DB_NewYearRankReward)(nil), // 100: server.DB_NewYearRankReward - (*DB_NewYearRankRewardArray)(nil), // 101: server.DB_NewYearRankRewardArray - (*DB_PassShow)(nil), // 102: server.DB_PassShow - (*DB_PassShowArray)(nil), // 103: server.DB_PassShowArray - (*DB_PetSkill)(nil), // 104: server.DB_PetSkill - (*DB_PetSkillArray)(nil), // 105: server.DB_PetSkillArray - (*DB_PhoneLottery)(nil), // 106: server.DB_PhoneLottery - (*DB_PhoneLotteryArray)(nil), // 107: server.DB_PhoneLotteryArray - (*DB_PigBank_Diamond)(nil), // 108: server.DB_PigBank_Diamond - (*DB_PigBank_DiamondArray)(nil), // 109: server.DB_PigBank_DiamondArray - (*DB_Pigbank_Prop)(nil), // 110: server.DB_Pigbank_Prop - (*DB_Pigbank_PropArray)(nil), // 111: server.DB_Pigbank_PropArray - (*DB_PlayerExp)(nil), // 112: server.DB_PlayerExp - (*DB_PlayerExpArray)(nil), // 113: server.DB_PlayerExpArray - (*DB_PlayerType)(nil), // 114: server.DB_PlayerType - (*DB_PlayerTypeArray)(nil), // 115: server.DB_PlayerTypeArray - (*DB_PotOdd)(nil), // 116: server.DB_PotOdd - (*DB_PotOddArray)(nil), // 117: server.DB_PotOddArray - (*DB_PropExchange)(nil), // 118: server.DB_PropExchange - (*DB_PropExchangeArray)(nil), // 119: server.DB_PropExchangeArray - (*DB_RankCycle)(nil), // 120: server.DB_RankCycle - (*DB_RankCycleArray)(nil), // 121: server.DB_RankCycleArray - (*DB_RankLevel)(nil), // 122: server.DB_RankLevel - (*DB_RankLevelArray)(nil), // 123: server.DB_RankLevelArray - (*DB_RankReward)(nil), // 124: server.DB_RankReward - (*DB_RankRewardArray)(nil), // 125: server.DB_RankRewardArray - (*DB_Sensitive_Words)(nil), // 126: server.DB_Sensitive_Words - (*DB_Sensitive_WordsArray)(nil), // 127: server.DB_Sensitive_WordsArray - (*DB_Skin)(nil), // 128: server.DB_Skin - (*DB_SkinArray)(nil), // 129: server.DB_SkinArray - (*DB_SkinLevel)(nil), // 130: server.DB_SkinLevel - (*DB_SkinLevelArray)(nil), // 131: server.DB_SkinLevelArray - (*DB_SlotRateWeight)(nil), // 132: server.DB_SlotRateWeight - (*DB_SlotRateWeightArray)(nil), // 133: server.DB_SlotRateWeightArray - (*DB_SystemChance)(nil), // 134: server.DB_SystemChance - (*DB_SystemChanceArray)(nil), // 135: server.DB_SystemChanceArray - (*DB_Task)(nil), // 136: server.DB_Task - (*DB_TaskArray)(nil), // 137: server.DB_TaskArray - (*DB_ThirdPlatformGameMapping)(nil), // 138: server.DB_ThirdPlatformGameMapping - (*DB_ThirdPlatformGameMappingArray)(nil), // 139: server.DB_ThirdPlatformGameMappingArray - (*DB_Tips)(nil), // 140: server.DB_Tips - (*DB_TipsArray)(nil), // 141: server.DB_TipsArray - (*DB_VIP)(nil), // 142: server.DB_VIP - (*DB_VIPArray)(nil), // 143: server.DB_VIPArray - (*DB_VIPShow)(nil), // 144: server.DB_VIPShow - (*DB_VIPShowArray)(nil), // 145: server.DB_VIPShowArray - nil, // 146: server.DB_CollectBox.ItemIDEntry - nil, // 147: server.DB_GameItem.GainEntry - nil, // 148: server.DB_GameItem.CompoundEntry - nil, // 149: server.DB_GiftBox.ItemIDEntry - nil, // 150: server.DB_GiftCard.RewardsEntry - nil, // 151: server.DB_GiftCard.DayRewardsEntry - nil, // 152: server.DB_NewYearRankReward.AwardMapEntry - nil, // 153: server.DB_PetSkill.ItemConsumEntry - nil, // 154: server.DB_PigBank_Diamond.GoldExcEntry - nil, // 155: server.DB_PigBank_Diamond.DiamondExcEntry - nil, // 156: server.DB_PropExchange.CostEntry - nil, // 157: server.DB_PropExchange.GainEntry - nil, // 158: server.DB_Skin.UnlockItemEntry - nil, // 159: server.DB_SkinLevel.UpItemEntry - nil, // 160: server.DB_Task.AwardEntry - nil, // 161: server.DB_VIP.Privilege7Entry - nil, // 162: server.DB_VIP.AwardEntry + (*DB_PassShow)(nil), // 100: server.DB_PassShow + (*DB_PassShowArray)(nil), // 101: server.DB_PassShowArray + (*DB_PetSkill)(nil), // 102: server.DB_PetSkill + (*DB_PetSkillArray)(nil), // 103: server.DB_PetSkillArray + (*DB_PhoneLottery)(nil), // 104: server.DB_PhoneLottery + (*DB_PhoneLotteryArray)(nil), // 105: server.DB_PhoneLotteryArray + (*DB_PigBank_Diamond)(nil), // 106: server.DB_PigBank_Diamond + (*DB_PigBank_DiamondArray)(nil), // 107: server.DB_PigBank_DiamondArray + (*DB_Pigbank_Prop)(nil), // 108: server.DB_Pigbank_Prop + (*DB_Pigbank_PropArray)(nil), // 109: server.DB_Pigbank_PropArray + (*DB_PlayerExp)(nil), // 110: server.DB_PlayerExp + (*DB_PlayerExpArray)(nil), // 111: server.DB_PlayerExpArray + (*DB_PlayerType)(nil), // 112: server.DB_PlayerType + (*DB_PlayerTypeArray)(nil), // 113: server.DB_PlayerTypeArray + (*DB_PotOdd)(nil), // 114: server.DB_PotOdd + (*DB_PotOddArray)(nil), // 115: server.DB_PotOddArray + (*DB_PropExchange)(nil), // 116: server.DB_PropExchange + (*DB_PropExchangeArray)(nil), // 117: server.DB_PropExchangeArray + (*DB_RankCycle)(nil), // 118: server.DB_RankCycle + (*DB_RankCycleArray)(nil), // 119: server.DB_RankCycleArray + (*DB_RankLevel)(nil), // 120: server.DB_RankLevel + (*DB_RankLevelArray)(nil), // 121: server.DB_RankLevelArray + (*DB_RankReward)(nil), // 122: server.DB_RankReward + (*DB_RankRewardArray)(nil), // 123: server.DB_RankRewardArray + (*DB_Sensitive_Words)(nil), // 124: server.DB_Sensitive_Words + (*DB_Sensitive_WordsArray)(nil), // 125: server.DB_Sensitive_WordsArray + (*DB_Skin)(nil), // 126: server.DB_Skin + (*DB_SkinArray)(nil), // 127: server.DB_SkinArray + (*DB_SkinLevel)(nil), // 128: server.DB_SkinLevel + (*DB_SkinLevelArray)(nil), // 129: server.DB_SkinLevelArray + (*DB_SlotRateWeight)(nil), // 130: server.DB_SlotRateWeight + (*DB_SlotRateWeightArray)(nil), // 131: server.DB_SlotRateWeightArray + (*DB_SystemChance)(nil), // 132: server.DB_SystemChance + (*DB_SystemChanceArray)(nil), // 133: server.DB_SystemChanceArray + (*DB_Task)(nil), // 134: server.DB_Task + (*DB_TaskArray)(nil), // 135: server.DB_TaskArray + (*DB_ThirdPlatformGameMapping)(nil), // 136: server.DB_ThirdPlatformGameMapping + (*DB_ThirdPlatformGameMappingArray)(nil), // 137: server.DB_ThirdPlatformGameMappingArray + (*DB_Tips)(nil), // 138: server.DB_Tips + (*DB_TipsArray)(nil), // 139: server.DB_TipsArray + (*DB_VIP)(nil), // 140: server.DB_VIP + (*DB_VIPArray)(nil), // 141: server.DB_VIPArray + (*DB_VIPShow)(nil), // 142: server.DB_VIPShow + (*DB_VIPShowArray)(nil), // 143: server.DB_VIPShowArray + nil, // 144: server.DB_CollectBox.ItemIDEntry + nil, // 145: server.DB_GameItem.GainEntry + nil, // 146: server.DB_GameItem.CompoundEntry + nil, // 147: server.DB_GiftBox.ItemIDEntry + nil, // 148: server.DB_GiftCard.RewardsEntry + nil, // 149: server.DB_GiftCard.DayRewardsEntry + nil, // 150: server.DB_PetSkill.ItemConsumEntry + nil, // 151: server.DB_PigBank_Diamond.GoldExcEntry + nil, // 152: server.DB_PigBank_Diamond.DiamondExcEntry + nil, // 153: server.DB_PropExchange.CostEntry + nil, // 154: server.DB_PropExchange.GainEntry + nil, // 155: server.DB_Skin.UnlockItemEntry + nil, // 156: server.DB_SkinLevel.UpItemEntry + nil, // 157: server.DB_Task.AwardEntry + nil, // 158: server.DB_VIP.Privilege7Entry + nil, // 159: server.DB_VIP.AwardEntry } var file_protocol_server_pbdata_proto_depIdxs = []int32{ 0, // 0: server.DB_ActSignArray.Arr:type_name -> server.DB_ActSign @@ -12972,7 +12831,7 @@ var file_protocol_server_pbdata_proto_depIdxs = []int32{ 18, // 9: server.DB_ChessMatchRulesArray.Arr:type_name -> server.DB_ChessMatchRules 20, // 10: server.DB_ChessRankArray.Arr:type_name -> server.DB_ChessRank 22, // 11: server.DB_ClientVerArray.Arr:type_name -> server.DB_ClientVer - 146, // 12: server.DB_CollectBox.ItemID:type_name -> server.DB_CollectBox.ItemIDEntry + 144, // 12: server.DB_CollectBox.ItemID:type_name -> server.DB_CollectBox.ItemIDEntry 24, // 13: server.DB_CollectBoxArray.Arr:type_name -> server.DB_CollectBox 26, // 14: server.DB_CollectBoxGainArray.Arr:type_name -> server.DB_CollectBoxGain 28, // 15: server.DB_CrashSearchArray.Arr:type_name -> server.DB_CrashSearch @@ -12990,8 +12849,8 @@ var file_protocol_server_pbdata_proto_depIdxs = []int32{ 52, // 27: server.DB_GameBankruptcyArray.Arr:type_name -> server.DB_GameBankruptcy 54, // 28: server.DB_GameCoinPoolArray.Arr:type_name -> server.DB_GameCoinPool 56, // 29: server.DB_GameFreeArray.Arr:type_name -> server.DB_GameFree - 147, // 30: server.DB_GameItem.Gain:type_name -> server.DB_GameItem.GainEntry - 148, // 31: server.DB_GameItem.Compound:type_name -> server.DB_GameItem.CompoundEntry + 145, // 30: server.DB_GameItem.Gain:type_name -> server.DB_GameItem.GainEntry + 146, // 31: server.DB_GameItem.Compound:type_name -> server.DB_GameItem.CompoundEntry 58, // 32: server.DB_GameItemArray.Arr:type_name -> server.DB_GameItem 60, // 33: server.DB_GameMatchLevelArray.Arr:type_name -> server.DB_GameMatchLevel 62, // 34: server.DB_GameRuleArray.Arr:type_name -> server.DB_GameRule @@ -13000,10 +12859,10 @@ var file_protocol_server_pbdata_proto_depIdxs = []int32{ 68, // 37: server.DB_Game_IntroductionArray.Arr:type_name -> server.DB_Game_Introduction 70, // 38: server.DB_Game_PetArray.Arr:type_name -> server.DB_Game_Pet 72, // 39: server.DB_Game_RoleArray.Arr:type_name -> server.DB_Game_Role - 149, // 40: server.DB_GiftBox.ItemID:type_name -> server.DB_GiftBox.ItemIDEntry + 147, // 40: server.DB_GiftBox.ItemID:type_name -> server.DB_GiftBox.ItemIDEntry 74, // 41: server.DB_GiftBoxArray.Arr:type_name -> server.DB_GiftBox - 150, // 42: server.DB_GiftCard.Rewards:type_name -> server.DB_GiftCard.RewardsEntry - 151, // 43: server.DB_GiftCard.DayRewards:type_name -> server.DB_GiftCard.DayRewardsEntry + 148, // 42: server.DB_GiftCard.Rewards:type_name -> server.DB_GiftCard.RewardsEntry + 149, // 43: server.DB_GiftCard.DayRewards:type_name -> server.DB_GiftCard.DayRewardsEntry 76, // 44: server.DB_GiftCardArray.Arr:type_name -> server.DB_GiftCard 78, // 45: server.DB_IceAgeElementRateArray.Arr:type_name -> server.DB_IceAgeElementRate 80, // 46: server.DB_Legend_OddsArray.Arr:type_name -> server.DB_Legend_Odds @@ -13016,45 +12875,43 @@ var file_protocol_server_pbdata_proto_depIdxs = []int32{ 94, // 53: server.DB_NameGirlArray.Arr:type_name -> server.DB_NameGirl 96, // 54: server.DB_NewPlayerArray.Arr:type_name -> server.DB_NewPlayer 98, // 55: server.DB_NewYearActivityArray.Arr:type_name -> server.DB_NewYearActivity - 152, // 56: server.DB_NewYearRankReward.AwardMap:type_name -> server.DB_NewYearRankReward.AwardMapEntry - 100, // 57: server.DB_NewYearRankRewardArray.Arr:type_name -> server.DB_NewYearRankReward - 102, // 58: server.DB_PassShowArray.Arr:type_name -> server.DB_PassShow - 153, // 59: server.DB_PetSkill.ItemConsum:type_name -> server.DB_PetSkill.ItemConsumEntry - 104, // 60: server.DB_PetSkillArray.Arr:type_name -> server.DB_PetSkill - 106, // 61: server.DB_PhoneLotteryArray.Arr:type_name -> server.DB_PhoneLottery - 154, // 62: server.DB_PigBank_Diamond.GoldExc:type_name -> server.DB_PigBank_Diamond.GoldExcEntry - 155, // 63: server.DB_PigBank_Diamond.DiamondExc:type_name -> server.DB_PigBank_Diamond.DiamondExcEntry - 108, // 64: server.DB_PigBank_DiamondArray.Arr:type_name -> server.DB_PigBank_Diamond - 110, // 65: server.DB_Pigbank_PropArray.Arr:type_name -> server.DB_Pigbank_Prop - 112, // 66: server.DB_PlayerExpArray.Arr:type_name -> server.DB_PlayerExp - 114, // 67: server.DB_PlayerTypeArray.Arr:type_name -> server.DB_PlayerType - 116, // 68: server.DB_PotOddArray.Arr:type_name -> server.DB_PotOdd - 156, // 69: server.DB_PropExchange.Cost:type_name -> server.DB_PropExchange.CostEntry - 157, // 70: server.DB_PropExchange.Gain:type_name -> server.DB_PropExchange.GainEntry - 118, // 71: server.DB_PropExchangeArray.Arr:type_name -> server.DB_PropExchange - 120, // 72: server.DB_RankCycleArray.Arr:type_name -> server.DB_RankCycle - 122, // 73: server.DB_RankLevelArray.Arr:type_name -> server.DB_RankLevel - 124, // 74: server.DB_RankRewardArray.Arr:type_name -> server.DB_RankReward - 126, // 75: server.DB_Sensitive_WordsArray.Arr:type_name -> server.DB_Sensitive_Words - 158, // 76: server.DB_Skin.UnlockItem:type_name -> server.DB_Skin.UnlockItemEntry - 128, // 77: server.DB_SkinArray.Arr:type_name -> server.DB_Skin - 159, // 78: server.DB_SkinLevel.UpItem:type_name -> server.DB_SkinLevel.UpItemEntry - 130, // 79: server.DB_SkinLevelArray.Arr:type_name -> server.DB_SkinLevel - 132, // 80: server.DB_SlotRateWeightArray.Arr:type_name -> server.DB_SlotRateWeight - 134, // 81: server.DB_SystemChanceArray.Arr:type_name -> server.DB_SystemChance - 160, // 82: server.DB_Task.Award:type_name -> server.DB_Task.AwardEntry - 136, // 83: server.DB_TaskArray.Arr:type_name -> server.DB_Task - 138, // 84: server.DB_ThirdPlatformGameMappingArray.Arr:type_name -> server.DB_ThirdPlatformGameMapping - 140, // 85: server.DB_TipsArray.Arr:type_name -> server.DB_Tips - 161, // 86: server.DB_VIP.Privilege7:type_name -> server.DB_VIP.Privilege7Entry - 162, // 87: server.DB_VIP.Award:type_name -> server.DB_VIP.AwardEntry - 142, // 88: server.DB_VIPArray.Arr:type_name -> server.DB_VIP - 144, // 89: server.DB_VIPShowArray.Arr:type_name -> server.DB_VIPShow - 90, // [90:90] is the sub-list for method output_type - 90, // [90:90] is the sub-list for method input_type - 90, // [90:90] is the sub-list for extension type_name - 90, // [90:90] is the sub-list for extension extendee - 0, // [0:90] is the sub-list for field type_name + 100, // 56: server.DB_PassShowArray.Arr:type_name -> server.DB_PassShow + 150, // 57: server.DB_PetSkill.ItemConsum:type_name -> server.DB_PetSkill.ItemConsumEntry + 102, // 58: server.DB_PetSkillArray.Arr:type_name -> server.DB_PetSkill + 104, // 59: server.DB_PhoneLotteryArray.Arr:type_name -> server.DB_PhoneLottery + 151, // 60: server.DB_PigBank_Diamond.GoldExc:type_name -> server.DB_PigBank_Diamond.GoldExcEntry + 152, // 61: server.DB_PigBank_Diamond.DiamondExc:type_name -> server.DB_PigBank_Diamond.DiamondExcEntry + 106, // 62: server.DB_PigBank_DiamondArray.Arr:type_name -> server.DB_PigBank_Diamond + 108, // 63: server.DB_Pigbank_PropArray.Arr:type_name -> server.DB_Pigbank_Prop + 110, // 64: server.DB_PlayerExpArray.Arr:type_name -> server.DB_PlayerExp + 112, // 65: server.DB_PlayerTypeArray.Arr:type_name -> server.DB_PlayerType + 114, // 66: server.DB_PotOddArray.Arr:type_name -> server.DB_PotOdd + 153, // 67: server.DB_PropExchange.Cost:type_name -> server.DB_PropExchange.CostEntry + 154, // 68: server.DB_PropExchange.Gain:type_name -> server.DB_PropExchange.GainEntry + 116, // 69: server.DB_PropExchangeArray.Arr:type_name -> server.DB_PropExchange + 118, // 70: server.DB_RankCycleArray.Arr:type_name -> server.DB_RankCycle + 120, // 71: server.DB_RankLevelArray.Arr:type_name -> server.DB_RankLevel + 122, // 72: server.DB_RankRewardArray.Arr:type_name -> server.DB_RankReward + 124, // 73: server.DB_Sensitive_WordsArray.Arr:type_name -> server.DB_Sensitive_Words + 155, // 74: server.DB_Skin.UnlockItem:type_name -> server.DB_Skin.UnlockItemEntry + 126, // 75: server.DB_SkinArray.Arr:type_name -> server.DB_Skin + 156, // 76: server.DB_SkinLevel.UpItem:type_name -> server.DB_SkinLevel.UpItemEntry + 128, // 77: server.DB_SkinLevelArray.Arr:type_name -> server.DB_SkinLevel + 130, // 78: server.DB_SlotRateWeightArray.Arr:type_name -> server.DB_SlotRateWeight + 132, // 79: server.DB_SystemChanceArray.Arr:type_name -> server.DB_SystemChance + 157, // 80: server.DB_Task.Award:type_name -> server.DB_Task.AwardEntry + 134, // 81: server.DB_TaskArray.Arr:type_name -> server.DB_Task + 136, // 82: server.DB_ThirdPlatformGameMappingArray.Arr:type_name -> server.DB_ThirdPlatformGameMapping + 138, // 83: server.DB_TipsArray.Arr:type_name -> server.DB_Tips + 158, // 84: server.DB_VIP.Privilege7:type_name -> server.DB_VIP.Privilege7Entry + 159, // 85: server.DB_VIP.Award:type_name -> server.DB_VIP.AwardEntry + 140, // 86: server.DB_VIPArray.Arr:type_name -> server.DB_VIP + 142, // 87: server.DB_VIPShowArray.Arr:type_name -> server.DB_VIPShow + 88, // [88:88] is the sub-list for method output_type + 88, // [88:88] is the sub-list for method input_type + 88, // [88:88] is the sub-list for extension type_name + 88, // [88:88] is the sub-list for extension extendee + 0, // [0:88] is the sub-list for field type_name } func init() { file_protocol_server_pbdata_proto_init() } @@ -14264,30 +14121,6 @@ func file_protocol_server_pbdata_proto_init() { } } file_protocol_server_pbdata_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_NewYearRankReward); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_protocol_server_pbdata_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DB_NewYearRankRewardArray); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_protocol_server_pbdata_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PassShow); i { case 0: return &v.state @@ -14299,7 +14132,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PassShowArray); i { case 0: return &v.state @@ -14311,7 +14144,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PetSkill); i { case 0: return &v.state @@ -14323,7 +14156,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PetSkillArray); i { case 0: return &v.state @@ -14335,7 +14168,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PhoneLottery); i { case 0: return &v.state @@ -14347,7 +14180,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PhoneLotteryArray); i { case 0: return &v.state @@ -14359,7 +14192,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PigBank_Diamond); i { case 0: return &v.state @@ -14371,7 +14204,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PigBank_DiamondArray); i { case 0: return &v.state @@ -14383,7 +14216,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_Pigbank_Prop); i { case 0: return &v.state @@ -14395,7 +14228,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_Pigbank_PropArray); i { case 0: return &v.state @@ -14407,7 +14240,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PlayerExp); i { case 0: return &v.state @@ -14419,7 +14252,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PlayerExpArray); i { case 0: return &v.state @@ -14431,7 +14264,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PlayerType); i { case 0: return &v.state @@ -14443,7 +14276,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PlayerTypeArray); i { case 0: return &v.state @@ -14455,7 +14288,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PotOdd); i { case 0: return &v.state @@ -14467,7 +14300,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PotOddArray); i { case 0: return &v.state @@ -14479,7 +14312,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PropExchange); i { case 0: return &v.state @@ -14491,7 +14324,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_PropExchangeArray); i { case 0: return &v.state @@ -14503,7 +14336,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_RankCycle); i { case 0: return &v.state @@ -14515,7 +14348,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_RankCycleArray); i { case 0: return &v.state @@ -14527,7 +14360,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_RankLevel); i { case 0: return &v.state @@ -14539,7 +14372,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_RankLevelArray); i { case 0: return &v.state @@ -14551,7 +14384,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_RankReward); i { case 0: return &v.state @@ -14563,7 +14396,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_RankRewardArray); i { case 0: return &v.state @@ -14575,7 +14408,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_Sensitive_Words); i { case 0: return &v.state @@ -14587,7 +14420,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_Sensitive_WordsArray); i { case 0: return &v.state @@ -14599,7 +14432,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_Skin); i { case 0: return &v.state @@ -14611,7 +14444,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_SkinArray); i { case 0: return &v.state @@ -14623,7 +14456,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_SkinLevel); i { case 0: return &v.state @@ -14635,7 +14468,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_SkinLevelArray); i { case 0: return &v.state @@ -14647,7 +14480,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_SlotRateWeight); i { case 0: return &v.state @@ -14659,7 +14492,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_SlotRateWeightArray); i { case 0: return &v.state @@ -14671,7 +14504,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_SystemChance); i { case 0: return &v.state @@ -14683,7 +14516,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_SystemChanceArray); i { case 0: return &v.state @@ -14695,7 +14528,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_Task); i { case 0: return &v.state @@ -14707,7 +14540,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_TaskArray); i { case 0: return &v.state @@ -14719,7 +14552,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_ThirdPlatformGameMapping); i { case 0: return &v.state @@ -14731,7 +14564,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_ThirdPlatformGameMappingArray); i { case 0: return &v.state @@ -14743,7 +14576,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_Tips); i { case 0: return &v.state @@ -14755,7 +14588,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_TipsArray); i { case 0: return &v.state @@ -14767,7 +14600,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_VIP); i { case 0: return &v.state @@ -14779,7 +14612,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_VIPArray); i { case 0: return &v.state @@ -14791,7 +14624,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_VIPShow); i { case 0: return &v.state @@ -14803,7 +14636,7 @@ func file_protocol_server_pbdata_proto_init() { return nil } } - file_protocol_server_pbdata_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { + file_protocol_server_pbdata_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DB_VIPShowArray); i { case 0: return &v.state @@ -14822,7 +14655,7 @@ func file_protocol_server_pbdata_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_protocol_server_pbdata_proto_rawDesc, NumEnums: 0, - NumMessages: 163, + NumMessages: 160, NumExtensions: 0, NumServices: 0, }, diff --git a/protocol/server/pbdata.proto b/protocol/server/pbdata.proto index 531f3fd..319f765 100644 --- a/protocol/server/pbdata.proto +++ b/protocol/server/pbdata.proto @@ -1279,22 +1279,6 @@ message DB_NewYearActivityArray { repeated DB_NewYearActivity Arr = 1; } -message DB_NewYearRankReward { - - int32 Id = 1; - - int32 RankType = 2; - - int32 RankLevelId = 3; - - map AwardMap = 4; - -} - -message DB_NewYearRankRewardArray { - repeated DB_NewYearRankReward Arr = 1; -} - message DB_PassShow { int32 Id = 1; diff --git a/srvdata/db_newyearrankreward.go b/srvdata/db_newyearrankreward.go deleted file mode 100644 index 38c579f..0000000 --- a/srvdata/db_newyearrankreward.go +++ /dev/null @@ -1,77 +0,0 @@ - -// Code generated by xlsx2proto. -// DO NOT EDIT! - -package srvdata - -import ( - "google.golang.org/protobuf/proto" - - "mongo.games.com/game/protocol/server" -) - -var PBDB_NewYearRankRewardMgr = &DB_NewYearRankRewardMgr{ - Datas: &server.DB_NewYearRankRewardArray{}, - pool: make(map[int32]*server.DB_NewYearRankReward), - -} - -type DB_NewYearRankRewardMgr struct { - Datas *server.DB_NewYearRankRewardArray - pool map[int32]*server.DB_NewYearRankReward - -} - -func (this *DB_NewYearRankRewardMgr) unmarshal(data []byte) error { - err := proto.Unmarshal(data, this.Datas) - if err == nil { - this.arrangeData() - } - return err -} - -func (this *DB_NewYearRankRewardMgr) reunmarshal(data []byte) error { - newDatas := &server.DB_NewYearRankRewardArray{} - err := proto.Unmarshal(data, newDatas) - if err == nil { - for _, item := range newDatas.Arr { - existItem := this.GetData(item.GetId()) - if existItem == nil { - this.pool[item.GetId()] = item - this.Datas.Arr = append(this.Datas.Arr, item) - - } else { - *existItem = *item - } - } - } - return err -} - -func (this *DB_NewYearRankRewardMgr) arrangeData() { - if this.Datas == nil { - return - } - - dataArr := this.Datas.GetArr() - if dataArr == nil { - return - } - - for _, data := range dataArr { - this.pool[data.GetId()] = data - - } -} - -func (this *DB_NewYearRankRewardMgr) GetData(id int32) *server.DB_NewYearRankReward { - if data, ok := this.pool[id]; ok { - return data - } - return nil -} - - -func init() { - DataMgr.register("DB_NewYearRankReward.dat", &ProtobufDataLoader{dh: PBDB_NewYearRankRewardMgr}) -} diff --git a/worldsrv/action_nian.go b/worldsrv/action_nian.go index acd8108..dd866b2 100644 --- a/worldsrv/action_nian.go +++ b/worldsrv/action_nian.go @@ -207,15 +207,15 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) } else { return nil } - var items []*model.Item - items = append(items, &model.Item{ + var costItems []*model.Item + costItems = append(costItems, &model.Item{ ItemId: int32(itemId), ItemNum: int64(-itemNum), }) _, _, result := BagMgrSingleton.AddItems(&model.AddItemParam{ Platform: p.Platform, SnId: p.SnId, - Change: items, + Change: costItems, GainWay: common.GainWayNianCost, Operator: "system", Remark: "年兽活动消耗", @@ -223,7 +223,6 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) if !result { return nil } - items = []*model.Item{} //本次攻击总血量 AttackHp := int64(0) LuckyRankNeed := int64(0) @@ -309,6 +308,7 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) if typeId == 3 { p.WelfData.NianData.BigHurt += 1 //判断是否掉落保底奖励 + var guaranteeItems []*model.Item if p.WelfData.NianData.BigHurt%int32(floorCount) == 0 { floorReward := &activity.RankAwardData{} for _, value := range sData { @@ -316,7 +316,7 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) strSlice := strings.Split(value.PropValue, ",") FloorItemId, _ := strconv.Atoi(strSlice[0]) FloorItemNum, _ := strconv.Atoi(strSlice[1]) - items = append(items, &model.Item{ + guaranteeItems = append(guaranteeItems, &model.Item{ ItemId: int32(FloorItemId), ItemNum: int64(FloorItemNum), }) @@ -327,6 +327,14 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) } } } + BagMgrSingleton.AddItems(&model.AddItemParam{ + Platform: p.Platform, + SnId: p.SnId, + Change: guaranteeItems, + GainWay: common.GainWayNianGain_Attack_BigGuarantee, + Operator: "system", + Remark: "年兽活动-大爆竹保底奖励", + }) //额外掉落 extraItemId := 0 extraItemNum := 0 @@ -354,10 +362,19 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) } //随机个数 extraItemNum = rand.Intn(intSlice1[1]-intSlice1[0]+1) + intSlice1[0] - items = append(items, &model.Item{ + var extraItems []*model.Item + extraItems = append(extraItems, &model.Item{ ItemId: int32(extraItemId), ItemNum: int64(extraItemNum), }) + BagMgrSingleton.AddItems(&model.AddItemParam{ + Platform: p.Platform, + SnId: p.SnId, + Change: extraItems, + GainWay: common.GainWayNianGain_Attack_BigOther, + Operator: "system", + Remark: "年兽活动-打爆竹额外活动奖励", + }) extraDrop := &activity.RankAwardData{} extraDrop.ItemId = int32(extraItemId) extraDrop.ItemNum = int64(extraItemNum) @@ -365,6 +382,7 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) } else { p.WelfData.NianData.LittleHurt += 1 //判断是否掉落保底奖励 + var guaranteeItems []*model.Item if p.WelfData.NianData.LittleHurt%int32(floorCount) == 0 { floorReward := &activity.RankAwardData{} for _, value := range sData { @@ -372,7 +390,7 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) strSlice := strings.Split(value.PropValue, ",") FloorItemId, _ := strconv.Atoi(strSlice[0]) FloorItemNum, _ := strconv.Atoi(strSlice[1]) - items = append(items, &model.Item{ + guaranteeItems = append(guaranteeItems, &model.Item{ ItemId: int32(FloorItemId), ItemNum: int64(FloorItemNum), }) @@ -383,6 +401,14 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) } } } + BagMgrSingleton.AddItems(&model.AddItemParam{ + Platform: p.Platform, + SnId: p.SnId, + Change: guaranteeItems, + GainWay: common.GainWayNianGain_Attack_LittleGuarantee, + Operator: "system", + Remark: "年兽活动-打爆竹额外活动奖励", + }) } } p.WelfData.NianData.BossHp -= AttackHp @@ -395,32 +421,27 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) p.WelfData.NianData.BossHp = BossMaxHp p.WelfData.NianData.BossDieCount += 1 //获取死亡奖励 - for _, value := range sData { - if value.Id == 6 { - str := value.PropValue - strSlice := strings.Split(str, ";") - for _, s := range strSlice { - strSlice1 := strings.Split(s, ",") - bossDieItemId, err := strconv.Atoi(strSlice1[0]) - if err != nil { - return nil - } - bossDieItemNum, err := strconv.ParseInt(strSlice1[1], 10, 64) - if err != nil { - return nil - } - bossDieAward = append(bossDieAward, &model.Item{ - ItemId: int32(bossDieItemId), - ItemNum: bossDieItemNum, - }) - items = append(items, &model.Item{ - ItemId: int32(bossDieItemId), - ItemNum: bossDieItemNum, - }) - } - break - } + var bossDieItems []*model.Item + for _, value := range pool.List[0].BossDieReward { + bossDieItemId := value.ItemId + bossDieItemNum := value.ItemNum + bossDieAward = append(bossDieAward, &model.Item{ + ItemId: bossDieItemId, + ItemNum: bossDieItemNum, + }) + bossDieItems = append(bossDieItems, &model.Item{ + ItemId: bossDieItemId, + ItemNum: bossDieItemNum, + }) } + BagMgrSingleton.AddItems(&model.AddItemParam{ + Platform: p.Platform, + SnId: p.SnId, + Change: bossDieItems, + GainWay: common.GainWayNianGain_BossDie, + Operator: "system", + Remark: "年兽活动-Boss死亡获得", + }) //年兽死亡额外掉落 BigHurtCount := 0 for _, value := range sData { @@ -432,21 +453,21 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) logger.Logger.Trace("年兽死亡额外掉落 当前已使用BigHurt :", p.WelfData.NianData.BigHurt, "BigHurtCount = ", BigHurtCount) if p.WelfData.NianData.BigHurt >= int32(BigHurtCount) { //后台配置额外掉落 + var bossDieOther []*model.Item for _, info := range pool.List[0].BossDieOtherReward { - //value.BossDieOtherReward if p.WelfData.NianData.OtherAwardNum[info.Id] >= info.DropUp { logger.Logger.Trace("BOSS死亡 额外掉落达到上限 id = ", info.Id, "数量:", p.WelfData.NianData.OtherAwardNum[info.Id]) continue } //随机 - if rand.Intn(100) < int(info.DropRate) { + if rand.Intn(100)+1 <= int(info.DropRate) { otherItemId := info.ItemId otherItemNum := info.ItemNum if int32(otherItemNum)+p.WelfData.NianData.OtherAwardNum[info.Id] > info.DropUp { otherItemNum = int64(info.DropUp - p.WelfData.NianData.OtherAwardNum[info.Id]) } p.WelfData.NianData.OtherAwardNum[info.Id] += int32(otherItemNum) - items = append(items, &model.Item{ + bossDieOther = append(bossDieOther, &model.Item{ ItemId: otherItemId, ItemNum: otherItemNum, }) @@ -454,21 +475,30 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) ItemId: otherItemId, ItemNum: otherItemNum, }) + } } + BagMgrSingleton.AddItems(&model.AddItemParam{ + Platform: p.Platform, + SnId: p.SnId, + Change: bossDieOther, + GainWay: common.GainWayNianGain_BossDieOther, + Operator: "system", + Remark: "年兽活动-攻击年兽额外获得", + }) } TaskSubjectSingleton.Touch(common.TaskTypeNianBossKill, &TaskData{SnId: p.SnId, Num: 1}) // BOSS死亡 } - - items = append(items, &model.Item{ + coinItems := []*model.Item{} + coinItems = append(coinItems, &model.Item{ ItemId: common.ItemIDCoin, ItemNum: AttackHp, }) BagMgrSingleton.AddItems(&model.AddItemParam{ Platform: p.Platform, SnId: p.SnId, - Change: items, - GainWay: common.GainWayNianGain, + Change: coinItems, + GainWay: common.GainWayNianGain_Attack_Coin, Operator: "system", Remark: "年兽活动-攻击年兽获得", }) @@ -522,7 +552,6 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) func CSNianBuff(s *netlib.Session, packetid int, data interface{}, sid int64) error { if _, ok := data.(*activity.CSNianBuff); ok { p := PlayerMgrSington.GetOnlinePlayer(sid) - //yearActivity := &server.DB_NewYearActivity{} logger.Logger.Trace("客户端请求请求领取BUFF snid = ", p.SnId) if p == nil { return nil @@ -563,6 +592,8 @@ func CSNianBuff(s *netlib.Session, packetid int, data interface{}, sid int64) er BuffCount: p.WelfData.NianData.BuffCount, } p.SendToClient(int(activity.NianPacketID_PACKET_SCNianBuff), pack) + //统计领取BUff + //mq.Write() } else { logger.Logger.Trace("CSNianSignAward 活动时间未到!") pack := &activity.SCNianBuff{ @@ -614,7 +645,6 @@ func CSNianSignAward(s *netlib.Session, packetid int, data interface{}, sid int6 } p.WelfData.NianData.SignAwardTime = time.Now().Unix() //奖励 - pack.SignAwardTime = p.WelfData.NianData.SignAwardTime var items []*model.Item for _, info := range pool.List[0].SignReward { @@ -632,7 +662,7 @@ func CSNianSignAward(s *netlib.Session, packetid int, data interface{}, sid int6 Platform: p.Platform, SnId: p.SnId, Change: items, - GainWay: common.GainWayNianGain, + GainWay: common.GainWayNianGain_Sign, Operator: "system", Remark: "年兽活动-领取签到奖励获得", }) @@ -707,7 +737,7 @@ func CSNianChange(s *netlib.Session, packetid int, data interface{}, sid int64) Platform: p.Platform, SnId: p.SnId, Change: items, - GainWay: common.GainWayNianGain, + GainWay: common.GainWayNianGain_Change, Operator: "system", Remark: "年兽活动-兑换", }) diff --git a/xlsx/DB_NewYearRankReward.xlsx b/xlsx/DB_NewYearRankReward.xlsx deleted file mode 100644 index 8aacb03e70d61d5d20ffce926645c6f47e8721bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13497 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 From b4c377fc44649e49300c8650db59a61d4e56a589 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Mon, 6 Jan 2025 13:40:57 +0800 Subject: [PATCH 30/47] =?UTF-8?q?=E5=B9=B4=E5=85=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- protocol/activity/nian.pb.go | 242 ++++++++++++++++++++--------------- protocol/activity/nian.proto | 3 + worldsrv/action_nian.go | 15 ++- 3 files changed, 153 insertions(+), 107 deletions(-) diff --git a/protocol/activity/nian.pb.go b/protocol/activity/nian.pb.go index 5853f98..d810494 100644 --- a/protocol/activity/nian.pb.go +++ b/protocol/activity/nian.pb.go @@ -205,6 +205,9 @@ type SCNianData struct { BuffEndTime int64 `protobuf:"varint,11,opt,name=BuffEndTime,proto3" json:"BuffEndTime,omitempty"` //Buff结束领取时间 ShopData []*ShopData `protobuf:"bytes,12,rep,name=shopData,proto3" json:"shopData,omitempty"` //购买礼包数量 ChangeData string `protobuf:"bytes,13,opt,name=ChangeData,proto3" json:"ChangeData,omitempty"` //兑换数据 + LuckyRankNeed string `protobuf:"bytes,14,opt,name=LuckyRankNeed,proto3" json:"LuckyRankNeed,omitempty"` //幸运榜上榜条件 + RankNeed string `protobuf:"bytes,15,opt,name=RankNeed,proto3" json:"RankNeed,omitempty"` //总伤害榜上榜条件 + Switch int32 `protobuf:"varint,16,opt,name=Switch,proto3" json:"Switch,omitempty"` //活动开关 1.开启 2.关闭 } func (x *SCNianData) Reset() { @@ -330,6 +333,27 @@ func (x *SCNianData) GetChangeData() string { return "" } +func (x *SCNianData) GetLuckyRankNeed() string { + if x != nil { + return x.LuckyRankNeed + } + return "" +} + +func (x *SCNianData) GetRankNeed() string { + if x != nil { + return x.RankNeed + } + return "" +} + +func (x *SCNianData) GetSwitch() int32 { + if x != nil { + return x.Switch + } + return 0 +} + type ShopData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1039,7 +1063,7 @@ var file_protocol_activity_nian_proto_rawDesc = []byte{ 0x0a, 0x1c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2f, 0x6e, 0x69, 0x61, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x22, 0x0c, 0x0a, 0x0a, 0x43, 0x53, 0x4e, 0x69, - 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x22, 0xe8, 0x03, 0x0a, 0x0a, 0x53, 0x43, 0x4e, 0x69, 0x61, + 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x22, 0xc2, 0x04, 0x0a, 0x0a, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x11, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, @@ -1070,112 +1094,118 @@ var file_protocol_activity_nian_proto_rawDesc = []byte{ 0x68, 0x6f, 0x70, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x70, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x22, 0x5c, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x70, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, - 0x06, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, - 0x68, 0x6f, 0x70, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x75, 0x6d, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x12, - 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x78, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x78, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x22, - 0x0c, 0x0a, 0x0a, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x22, 0x65, 0x0a, - 0x0a, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x42, - 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, - 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x09, 0x4f, 0x70, 0x52, - 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x61, - 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, - 0x43, 0x6f, 0x64, 0x65, 0x22, 0x52, 0x0a, 0x0c, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x04, - 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x63, 0x74, - 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x55, 0x0a, 0x0c, 0x4e, 0x69, 0x61, 0x6e, - 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x61, 0x6e, 0x6b, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x64, - 0x12, 0x2d, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, - 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, - 0x41, 0x0a, 0x0d, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, - 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, - 0x75, 0x6d, 0x22, 0x26, 0x0a, 0x0c, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, - 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x22, 0xe8, 0x02, 0x0a, 0x10, 0x53, - 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x6f, 0x73, 0x73, 0x48, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x42, 0x6f, 0x73, 0x73, 0x48, 0x70, 0x12, - 0x2d, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, - 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x48, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x08, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x48, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, - 0x44, 0x69, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x49, 0x73, 0x44, 0x69, 0x65, - 0x12, 0x33, 0x0a, 0x08, 0x44, 0x69, 0x65, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, - 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x44, 0x69, 0x65, - 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x35, 0x0a, 0x09, 0x45, 0x78, 0x74, 0x72, 0x61, 0x44, 0x72, 0x6f, 0x70, - 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, - 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x09, 0x45, 0x78, 0x74, 0x72, 0x61, 0x44, 0x72, 0x6f, 0x70, 0x12, 0x39, 0x0a, 0x0b, 0x46, 0x6c, - 0x6f, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, - 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x53, - 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, 0xa9, 0x01, 0x0a, 0x0f, 0x53, 0x43, 0x4e, - 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x24, 0x0a, 0x0d, - 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0d, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, - 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, - 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x39, 0x0a, 0x09, 0x4f, 0x70, 0x52, - 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x61, - 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, - 0x43, 0x6f, 0x64, 0x65, 0x22, 0x20, 0x0a, 0x0c, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x8a, 0x01, 0x0a, 0x0c, 0x53, 0x43, 0x4e, 0x69, 0x61, - 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x2d, 0x0a, 0x05, 0x41, 0x77, 0x61, - 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x61, 0x12, 0x24, 0x0a, 0x0d, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x52, 0x61, 0x6e, 0x6b, 0x4e, 0x65, + 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x4c, 0x75, 0x63, 0x6b, 0x79, 0x52, + 0x61, 0x6e, 0x6b, 0x4e, 0x65, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4e, + 0x65, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4e, + 0x65, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0x5c, 0x0a, 0x08, 0x53, + 0x68, 0x6f, 0x70, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x68, 0x6f, 0x70, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x68, 0x6f, 0x70, 0x49, 0x64, 0x12, + 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x78, + 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, + 0x61, 0x78, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x22, 0x0c, 0x0a, 0x0a, 0x43, 0x53, 0x4e, + 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x22, 0x65, 0x0a, 0x0a, 0x53, 0x43, 0x4e, 0x69, 0x61, + 0x6e, 0x42, 0x75, 0x66, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, + 0x79, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x4e, + 0x69, 0x61, 0x6e, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x52, + 0x0a, 0x0c, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, + 0x0a, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, + 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x44, 0x61, + 0x74, 0x61, 0x22, 0x55, 0x0a, 0x0c, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x05, 0x41, 0x77, + 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, 0x41, 0x0a, 0x0d, 0x52, 0x61, 0x6e, + 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, + 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, + 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x07, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x22, 0x26, 0x0a, 0x0c, + 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, + 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, + 0x70, 0x65, 0x49, 0x64, 0x22, 0xe8, 0x02, 0x0a, 0x10, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x41, + 0x74, 0x74, 0x61, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x79, 0x70, + 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x79, 0x70, 0x65, 0x49, + 0x64, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x6f, 0x73, 0x73, 0x48, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x06, 0x42, 0x6f, 0x73, 0x73, 0x48, 0x70, 0x12, 0x2d, 0x0a, 0x05, 0x41, 0x77, 0x61, + 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x39, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, - 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, - 0x6f, 0x64, 0x65, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, - 0x6f, 0x64, 0x65, 0x2a, 0xe2, 0x02, 0x0a, 0x0c, 0x4e, 0x69, 0x61, 0x6e, 0x50, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4e, - 0x69, 0x61, 0x6e, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x10, - 0xe4, 0x14, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, - 0x69, 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe5, 0x14, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x10, - 0xe6, 0x14, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, - 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x10, 0xe7, 0x14, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, - 0x61, 0x74, 0x61, 0x10, 0xe8, 0x14, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, - 0xe9, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, - 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x10, 0xea, 0x14, 0x12, 0x1c, 0x0a, 0x17, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, - 0x61, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xeb, 0x14, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, - 0x77, 0x61, 0x72, 0x64, 0x10, 0xec, 0x14, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, - 0x64, 0x10, 0xed, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, - 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0xee, 0x14, 0x12, 0x18, - 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0xef, 0x14, 0x2a, 0x3e, 0x0a, 0x11, 0x4f, 0x70, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x12, 0x14, 0x0a, - 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x75, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x4e, 0x69, 0x61, - 0x6e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x10, 0x01, 0x42, 0x28, 0x5a, 0x26, 0x6d, 0x6f, 0x6e, 0x67, - 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, - 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, - 0x74, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x74, 0x74, 0x61, + 0x63, 0x6b, 0x48, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x41, 0x74, 0x74, 0x61, + 0x63, 0x6b, 0x48, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x44, 0x69, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x05, 0x49, 0x73, 0x44, 0x69, 0x65, 0x12, 0x33, 0x0a, 0x08, 0x44, 0x69, + 0x65, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x44, 0x69, 0x65, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, + 0x1c, 0x0a, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x09, 0x42, 0x75, 0x66, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x35, 0x0a, + 0x09, 0x45, 0x78, 0x74, 0x72, 0x61, 0x44, 0x72, 0x6f, 0x70, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, + 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x45, 0x78, 0x74, 0x72, 0x61, + 0x44, 0x72, 0x6f, 0x70, 0x12, 0x39, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x0b, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, + 0x11, 0x0a, 0x0f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, + 0x72, 0x64, 0x22, 0xa9, 0x01, 0x0a, 0x0f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, + 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, + 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x53, + 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x09, + 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x41, + 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, + 0x61, 0x72, 0x64, 0x12, 0x39, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, + 0x79, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x4e, + 0x69, 0x61, 0x6e, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x20, + 0x0a, 0x0c, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, + 0x22, 0x8a, 0x01, 0x0a, 0x0c, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x4e, 0x75, 0x6d, 0x12, 0x2d, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x52, 0x61, + 0x6e, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x41, 0x77, 0x61, + 0x72, 0x64, 0x12, 0x39, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x4e, 0x69, + 0x61, 0x6e, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x2a, 0xe2, 0x02, + 0x0a, 0x0c, 0x4e, 0x69, 0x61, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x14, + 0x0a, 0x10, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x5f, 0x5a, 0x45, + 0x52, 0x4f, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, + 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe4, 0x14, 0x12, 0x16, 0x0a, 0x11, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x44, 0x61, 0x74, + 0x61, 0x10, 0xe5, 0x14, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, + 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, 0x66, 0x10, 0xe6, 0x14, 0x12, 0x16, 0x0a, 0x11, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x42, 0x75, 0x66, + 0x66, 0x10, 0xe7, 0x14, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, + 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe8, 0x14, + 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, + 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xe9, 0x14, 0x12, 0x18, 0x0a, 0x13, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, + 0x61, 0x63, 0x6b, 0x10, 0xea, 0x14, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x44, 0x61, 0x74, + 0x61, 0x10, 0xeb, 0x14, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, + 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xec, + 0x14, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, + 0x61, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x10, 0xed, 0x14, 0x12, 0x18, + 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x4e, 0x69, 0x61, 0x6e, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0xee, 0x14, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x53, 0x43, 0x4e, 0x69, 0x61, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, + 0xef, 0x14, 0x2a, 0x3e, 0x0a, 0x11, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, + 0x64, 0x65, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, + 0x53, 0x75, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x4e, 0x69, 0x61, 0x6e, 0x10, 0x00, 0x12, 0x13, 0x0a, + 0x0f, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x4e, 0x69, 0x61, 0x6e, + 0x10, 0x01, 0x42, 0x28, 0x5a, 0x26, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/protocol/activity/nian.proto b/protocol/activity/nian.proto index e8d2a59..d819df8 100644 --- a/protocol/activity/nian.proto +++ b/protocol/activity/nian.proto @@ -42,6 +42,9 @@ message SCNianData{ int64 BuffEndTime = 11; //Buff结束领取时间 repeated ShopData shopData = 12;//购买礼包数量 string ChangeData = 13; //兑换数据 + string LuckyRankNeed = 14; //幸运榜上榜条件 + string RankNeed = 15; //总伤害榜上榜条件 + int32 Switch = 16; //活动开关 1.开启 2.关闭 } message ShopData{ diff --git a/worldsrv/action_nian.go b/worldsrv/action_nian.go index dd866b2..16fe5d0 100644 --- a/worldsrv/action_nian.go +++ b/worldsrv/action_nian.go @@ -128,6 +128,18 @@ func CSNianData(s *netlib.Session, packetid int, data interface{}, sid int64) er nextDay := time.Now().Add(24 * time.Hour).Truncate(24 * time.Hour) signTime = nextDay.Unix() } + for _, value := range sData { + if value.Id == 7 { + pack.LuckyRankNeed = value.PropValue + break + } + } + for _, value := range sData { + if value.Id == 8 { + pack.RankNeed = value.PropValue + break + } + } StartTs := common.IntToTime(int(pool.List[0].BuffStartTime)).Unix() EndTs := common.IntToTime(int(pool.List[0].BuffEndTime)).Unix() pack.BuffStartTime = StartTs @@ -141,6 +153,7 @@ func CSNianData(s *netlib.Session, packetid int, data interface{}, sid int64) er pack.BuffStatus = p.WelfData.NianData.BuffStatus pack.SignAwardTime = signTime pack.ChangeData = changeData + pack.Switch = pool.Switch logger.Logger.Trace("请求年兽活动信息 ", pack) p.SendToClient(int(activity.NianPacketID_PACKET_SCNianData), pack) } @@ -407,7 +420,7 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) Change: guaranteeItems, GainWay: common.GainWayNianGain_Attack_LittleGuarantee, Operator: "system", - Remark: "年兽活动-打爆竹额外活动奖励", + Remark: "年兽活动-小爆竹额外掉落奖励", }) } } From 32a6f12ebf386b9d292acc32915bbaee96146d38 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Mon, 6 Jan 2025 13:41:11 +0800 Subject: [PATCH 31/47] =?UTF-8?q?add=20tienlen=E6=98=AF=E5=90=A6=E5=87=BA?= =?UTF-8?q?=E6=9C=80=E5=B0=8F=E7=89=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gamesrv/tienlen/scenepolicy_tienlen.go | 5 +- protocol/tienlen/tienlen.pb.go | 534 +++++++++++++------------ protocol/tienlen/tienlen.proto | 3 +- 3 files changed, 278 insertions(+), 264 deletions(-) diff --git a/gamesrv/tienlen/scenepolicy_tienlen.go b/gamesrv/tienlen/scenepolicy_tienlen.go index 8ce4ef2..f71b8b9 100644 --- a/gamesrv/tienlen/scenepolicy_tienlen.go +++ b/gamesrv/tienlen/scenepolicy_tienlen.go @@ -427,6 +427,7 @@ func TienLenCreateRoomInfoPacket(s *base.Scene, p *base.Player, sceneEx *TienLen NumOfGames: proto.Int(sceneEx.NumOfGames), TotalOfGames: sceneEx.TotalOfGames, CurOpIdx: proto.Int(-1), + IsSmallCard: sceneEx.FindWinPos() == -1, MasterSnid: proto.Int32(sceneEx.masterSnid), AudienceNum: proto.Int(s.GetAudiencesNum()), BaseScore: proto.Int32(s.GetBaseScore()), @@ -1063,8 +1064,8 @@ func (this *SceneHandCardStateTienLen) OnEnter(s *base.Scene) { pos = sceneEx.startOpPos } pack := &tienlen.SCTienLenFirstOpPos{ - Pos: pos, - WinPos: winPos, + Pos: pos, + IsSmallCard: winPos == -1, } proto.SetDefaults(pack) sceneEx.Broadcast(int(tienlen.TienLenPacketID_PACKET_SCTienLenFirstOpPos), pack, 0) diff --git a/protocol/tienlen/tienlen.pb.go b/protocol/tienlen/tienlen.pb.go index 38fd80e..cc833fc 100644 --- a/protocol/tienlen/tienlen.pb.go +++ b/protocol/tienlen/tienlen.pb.go @@ -662,6 +662,8 @@ type SCTienLenRoomInfo struct { CostType int32 `protobuf:"varint,37,opt,name=CostType,proto3" json:"CostType,omitempty"` //房卡支付方式 1AA 2房主 Voice int32 `protobuf:"varint,38,opt,name=Voice,proto3" json:"Voice,omitempty"` //是否开启语音 1开启 Password string `protobuf:"bytes,39,opt,name=Password,proto3" json:"Password,omitempty"` //房间密码 + // 房卡场配置 + IsSmallCard bool `protobuf:"varint,40,opt,name=IsSmallCard,proto3" json:"IsSmallCard,omitempty"` //必出最小牌 } func (x *SCTienLenRoomInfo) Reset() { @@ -948,6 +950,13 @@ func (x *SCTienLenRoomInfo) GetPassword() string { return "" } +func (x *SCTienLenRoomInfo) GetIsSmallCard() bool { + if x != nil { + return x.IsSmallCard + } + return false +} + //房间状态更新 type SCTienLenRoomState struct { state protoimpl.MessageState @@ -2140,8 +2149,8 @@ type SCTienLenFirstOpPos struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Pos int32 `protobuf:"varint,1,opt,name=Pos,proto3" json:"Pos,omitempty"` //座位位置 - WinPos int32 `protobuf:"varint,2,opt,name=WinPos,proto3" json:"WinPos,omitempty"` //赢家位置 -1 没有赢家 + Pos int32 `protobuf:"varint,1,opt,name=Pos,proto3" json:"Pos,omitempty"` //座位位置 + IsSmallCard bool `protobuf:"varint,2,opt,name=IsSmallCard,proto3" json:"IsSmallCard,omitempty"` //必出最小牌 } func (x *SCTienLenFirstOpPos) Reset() { @@ -2183,11 +2192,11 @@ func (x *SCTienLenFirstOpPos) GetPos() int32 { return 0 } -func (x *SCTienLenFirstOpPos) GetWinPos() int32 { +func (x *SCTienLenFirstOpPos) GetIsSmallCard() bool { if x != nil { - return x.WinPos + return x.IsSmallCard } - return 0 + return false } //PACKET_SCTienLenThinkLongCnt @@ -2616,7 +2625,7 @@ var file_protocol_tienlen_tienlen_proto_rawDesc = []byte{ 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x23, 0x0a, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x44, 0x65, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x22, 0xfd, 0x08, 0x0a, 0x11, 0x53, 0x43, + 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x22, 0x9f, 0x09, 0x0a, 0x11, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x72, 0x65, 0x61, 0x74, @@ -2688,264 +2697,267 @@ var file_protocol_tienlen_tienlen_proto_rawDesc = []byte{ 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x27, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x42, 0x0a, 0x12, 0x53, 0x43, 0x54, - 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x45, 0x0a, - 0x11, 0x43, 0x53, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x4f, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x70, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x4f, 0x70, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x22, 0x8e, 0x01, 0x0a, 0x11, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, - 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x70, - 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4f, 0x70, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x03, 0x52, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x12, 0x0a, 0x04, - 0x53, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, - 0x12, 0x33, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x4f, 0x70, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, - 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x46, 0x0a, 0x14, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, - 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x2e, 0x0a, - 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x69, - 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x28, 0x0a, - 0x14, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x22, 0x6f, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x49, 0x74, - 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xb3, 0x02, 0x0a, 0x17, 0x54, 0x69, 0x65, - 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, - 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x18, - 0x0a, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, - 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, - 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x57, 0x69, - 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0c, 0x57, 0x69, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, - 0x41, 0x64, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, - 0x41, 0x64, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x2c, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x49, - 0x74, 0x65, 0x6d, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x69, 0x65, - 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x08, 0x41, 0x64, - 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x22, 0x4d, - 0x0a, 0x13, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x42, - 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x54, + 0x08, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x53, + 0x6d, 0x61, 0x6c, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x18, 0x28, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, + 0x49, 0x73, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x22, 0x42, 0x0a, 0x12, 0x53, + 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, + 0x45, 0x0a, 0x11, 0x43, 0x53, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x4f, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x4f, + 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x22, 0x8e, 0x01, 0x0a, 0x11, 0x53, 0x43, 0x54, 0x69, 0x65, + 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x12, 0x16, 0x0a, 0x06, + 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4f, 0x70, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x12, + 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, + 0x49, 0x64, 0x12, 0x33, 0x0a, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, + 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, + 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x46, 0x0a, 0x14, 0x53, 0x43, 0x54, 0x69, 0x65, + 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x2e, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, + 0x28, 0x0a, 0x14, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x22, 0x6f, 0x0a, 0x07, 0x41, 0x64, 0x64, + 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xb3, 0x02, 0x0a, 0x17, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, - 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x52, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x22, 0xc4, 0x01, - 0x0a, 0x18, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x53, 0x6d, 0x61, 0x6c, 0x6c, - 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x57, 0x69, - 0x6e, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x57, 0x69, 0x6e, 0x50, - 0x6f, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x43, 0x6f, - 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x07, 0x4c, 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x12, 0x20, 0x0a, 0x0b, - 0x4c, 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0b, 0x4c, 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x18, - 0x0a, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x73, 0x65, - 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x4c, 0x6f, 0x73, 0x65, - 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x5b, 0x0a, 0x0d, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, - 0x6e, 0x43, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x49, - 0x73, 0x4f, 0x75, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0b, 0x49, 0x73, 0x4f, 0x75, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, - 0x64, 0x22, 0x88, 0x02, 0x0a, 0x11, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, - 0x61, 0x72, 0x64, 0x54, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x47, 0x72, 0x61, 0x64, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, - 0x6e, 0x2e, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x54, - 0x65, 0x73, 0x74, 0x2e, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x06, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, - 0x6f, 0x74, 0x61, 0x6c, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x54, 0x6f, - 0x74, 0x61, 0x6c, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x6f, 0x75, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x6f, 0x75, - 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x52, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x01, 0x52, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, - 0x61, 0x1a, 0x39, 0x0a, 0x0b, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x7f, 0x0a, 0x11, - 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x75, 0x72, 0x4f, 0x70, 0x50, 0x6f, + 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, + 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, + 0x12, 0x18, 0x0a, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, + 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x47, 0x61, + 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, + 0x57, 0x69, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0c, 0x57, 0x69, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x41, 0x64, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x08, 0x41, 0x64, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x2c, 0x0a, 0x08, 0x41, 0x64, + 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, + 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x08, + 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x69, 0x61, 0x6e, + 0x48, 0x75, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, + 0x22, 0x4d, 0x0a, 0x13, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x47, 0x61, 0x6d, + 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, + 0x2e, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x61, + 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x52, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x22, + 0xc4, 0x01, 0x0a, 0x18, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x53, 0x6d, 0x61, + 0x6c, 0x6c, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x57, 0x69, + 0x6e, 0x50, 0x6f, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x43, 0x6f, + 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, + 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4c, 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x12, 0x20, + 0x0a, 0x0b, 0x4c, 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0b, 0x4c, 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, + 0x12, 0x18, 0x0a, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, + 0x73, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x4c, 0x6f, + 0x73, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x5b, 0x0a, 0x0d, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, + 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x20, 0x0a, + 0x0b, 0x49, 0x73, 0x4f, 0x75, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0b, 0x49, 0x73, 0x4f, 0x75, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, + 0x6e, 0x49, 0x64, 0x22, 0x88, 0x02, 0x0a, 0x11, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, + 0x6e, 0x43, 0x61, 0x72, 0x64, 0x54, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x47, 0x72, 0x61, + 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x74, 0x69, 0x65, 0x6e, + 0x6c, 0x65, 0x6e, 0x2e, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, + 0x64, 0x54, 0x65, 0x73, 0x74, 0x2e, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x06, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, + 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, + 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, + 0x6f, 0x75, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x52, 0x61, 0x74, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, + 0x61, 0x74, 0x61, 0x1a, 0x39, 0x0a, 0x0b, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x7f, + 0x0a, 0x11, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x75, 0x72, 0x4f, 0x70, + 0x50, 0x6f, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x4e, 0x65, 0x77, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x49, 0x73, 0x4e, 0x65, 0x77, 0x12, 0x14, 0x0a, 0x05, 0x43, + 0x61, 0x72, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, + 0x73, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x78, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x45, 0x78, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x66, + 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x22, + 0x3b, 0x0a, 0x19, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, + 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x22, 0x3e, 0x0a, 0x1a, + 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, + 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x75, + 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0b, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x22, 0xcb, 0x07, 0x0a, + 0x0f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x41, 0x49, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x19, 0x0a, 0x08, 0x42, 0x6f, 0x6d, 0x62, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x42, 0x6f, 0x6d, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x2f, 0x0a, 0x14, 0x43, + 0x61, 0x72, 0x64, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x73, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x43, 0x61, 0x72, 0x64, 0x50, + 0x6c, 0x61, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0b, + 0x4c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x30, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x4c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x76, 0x65, 0x30, 0x12, 0x1e, 0x0a, 0x0b, + 0x4c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x4c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x76, 0x65, 0x31, 0x12, 0x1e, 0x0a, 0x0b, + 0x4c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x4c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x76, 0x65, 0x32, 0x12, 0x1e, 0x0a, 0x0b, + 0x4c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x33, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x4c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x76, 0x65, 0x33, 0x12, 0x27, 0x0a, 0x10, + 0x4e, 0x75, 0x6d, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x30, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x4e, 0x75, 0x6d, 0x43, 0x61, 0x72, 0x64, 0x73, + 0x4c, 0x65, 0x66, 0x74, 0x30, 0x12, 0x27, 0x0a, 0x10, 0x4e, 0x75, 0x6d, 0x5f, 0x63, 0x61, 0x72, + 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x31, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0d, 0x4e, 0x75, 0x6d, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x31, 0x12, 0x27, + 0x0a, 0x10, 0x4e, 0x75, 0x6d, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, + 0x5f, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x4e, 0x75, 0x6d, 0x43, 0x61, 0x72, + 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x32, 0x12, 0x27, 0x0a, 0x10, 0x4e, 0x75, 0x6d, 0x5f, 0x63, + 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0d, 0x4e, 0x75, 0x6d, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x33, + 0x12, 0x28, 0x0a, 0x10, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x5f, 0x63, + 0x61, 0x72, 0x64, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x4f, 0x74, 0x68, 0x65, + 0x72, 0x48, 0x61, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x30, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x30, + 0x12, 0x24, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, + 0x5f, 0x31, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, + 0x43, 0x61, 0x72, 0x64, 0x73, 0x31, 0x12, 0x24, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, + 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x32, 0x12, 0x24, 0x0a, 0x0e, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x33, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, + 0x73, 0x33, 0x12, 0x2a, 0x0a, 0x11, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x6e, + 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x48, 0x61, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x27, + 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x49, 0x73, 0x54, 0x69, 0x65, + 0x6e, 0x4c, 0x65, 0x6e, 0x59, 0x75, 0x6c, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, + 0x49, 0x73, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x59, 0x75, 0x6c, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x49, 0x73, 0x46, 0x69, 0x72, 0x73, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x18, 0x13, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0b, 0x49, 0x73, 0x46, 0x69, 0x72, 0x73, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x12, + 0x20, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x30, 0x18, + 0x14, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, + 0x30, 0x12, 0x20, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, + 0x31, 0x18, 0x15, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, + 0x66, 0x74, 0x31, 0x12, 0x20, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, + 0x74, 0x5f, 0x32, 0x18, 0x16, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x73, + 0x4c, 0x65, 0x66, 0x74, 0x32, 0x12, 0x20, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, + 0x65, 0x66, 0x74, 0x5f, 0x33, 0x18, 0x17, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, + 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x33, 0x12, 0x19, 0x0a, 0x08, 0x4c, 0x61, 0x73, 0x74, 0x5f, + 0x70, 0x6f, 0x73, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4c, 0x61, 0x73, 0x74, 0x50, + 0x6f, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x45, 0x6e, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x05, 0x49, 0x73, 0x45, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x69, 0x6e, 0x53, + 0x6e, 0x69, 0x64, 0x73, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x57, 0x69, 0x6e, 0x53, + 0x6e, 0x69, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x18, 0x1b, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x05, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x22, 0x49, 0x0a, 0x13, 0x53, 0x43, + 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x4f, 0x70, 0x50, 0x6f, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, - 0x50, 0x6f, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x4e, 0x65, 0x77, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x05, 0x49, 0x73, 0x4e, 0x65, 0x77, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, - 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, - 0x18, 0x0a, 0x07, 0x45, 0x78, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x45, 0x78, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, - 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x22, 0x3b, 0x0a, - 0x19, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, - 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, - 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x22, 0x3e, 0x0a, 0x1a, 0x53, 0x43, - 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x75, 0x64, - 0x69, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x75, 0x64, 0x69, - 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x41, - 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x22, 0xcb, 0x07, 0x0a, 0x0f, 0x53, - 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x41, 0x49, 0x44, 0x61, 0x74, 0x61, 0x12, 0x19, - 0x0a, 0x08, 0x42, 0x6f, 0x6d, 0x62, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x42, 0x6f, 0x6d, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x2f, 0x0a, 0x14, 0x43, 0x61, 0x72, - 0x64, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, - 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x43, 0x61, 0x72, 0x64, 0x50, 0x6c, 0x61, - 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0b, 0x4c, 0x61, - 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x30, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x4c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x76, 0x65, 0x30, 0x12, 0x1e, 0x0a, 0x0b, 0x4c, 0x61, - 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x4c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x76, 0x65, 0x31, 0x12, 0x1e, 0x0a, 0x0b, 0x4c, 0x61, - 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x4c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x76, 0x65, 0x32, 0x12, 0x1e, 0x0a, 0x0b, 0x4c, 0x61, - 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x33, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x4c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x76, 0x65, 0x33, 0x12, 0x27, 0x0a, 0x10, 0x4e, 0x75, - 0x6d, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x30, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x4e, 0x75, 0x6d, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, - 0x66, 0x74, 0x30, 0x12, 0x27, 0x0a, 0x10, 0x4e, 0x75, 0x6d, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, - 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x31, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x4e, - 0x75, 0x6d, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x31, 0x12, 0x27, 0x0a, 0x10, - 0x4e, 0x75, 0x6d, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x32, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x4e, 0x75, 0x6d, 0x43, 0x61, 0x72, 0x64, 0x73, - 0x4c, 0x65, 0x66, 0x74, 0x32, 0x12, 0x27, 0x0a, 0x10, 0x4e, 0x75, 0x6d, 0x5f, 0x63, 0x61, 0x72, - 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0d, 0x4e, 0x75, 0x6d, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x33, 0x12, 0x28, - 0x0a, 0x10, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x61, 0x72, - 0x64, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x48, - 0x61, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x30, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x30, 0x12, 0x24, - 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x31, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x43, 0x61, - 0x72, 0x64, 0x73, 0x31, 0x12, 0x24, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x5f, 0x63, - 0x61, 0x72, 0x64, 0x73, 0x5f, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x32, 0x12, 0x24, 0x0a, 0x0e, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x33, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x33, - 0x12, 0x2a, 0x0a, 0x11, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x5f, - 0x63, 0x61, 0x72, 0x64, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x48, 0x61, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x49, 0x73, 0x54, 0x69, 0x65, 0x6e, 0x4c, - 0x65, 0x6e, 0x59, 0x75, 0x6c, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x49, 0x73, - 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x59, 0x75, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x49, - 0x73, 0x46, 0x69, 0x72, 0x73, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0b, 0x49, 0x73, 0x46, 0x69, 0x72, 0x73, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x12, 0x20, 0x0a, - 0x0c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x30, 0x18, 0x14, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x30, 0x12, - 0x20, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x31, 0x18, - 0x15, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, - 0x31, 0x12, 0x20, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, - 0x32, 0x18, 0x16, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, - 0x66, 0x74, 0x32, 0x12, 0x20, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, - 0x74, 0x5f, 0x33, 0x18, 0x17, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x73, - 0x4c, 0x65, 0x66, 0x74, 0x33, 0x12, 0x19, 0x0a, 0x08, 0x4c, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x6f, - 0x73, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4c, 0x61, 0x73, 0x74, 0x50, 0x6f, 0x73, - 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x45, 0x6e, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x05, 0x49, 0x73, 0x45, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x6e, 0x69, - 0x64, 0x73, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x6e, 0x69, - 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x18, 0x1b, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x05, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x22, 0x3f, 0x0a, 0x13, 0x53, 0x43, 0x54, 0x69, - 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x4f, 0x70, 0x50, 0x6f, 0x73, 0x12, - 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, - 0x73, 0x12, 0x16, 0x0a, 0x06, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x22, 0x41, 0x0a, 0x1b, 0x53, 0x43, 0x54, - 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x68, 0x69, 0x6e, - 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x68, 0x69, 0x6e, - 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, - 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, 0x74, 0x22, 0x68, 0x0a, 0x20, - 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, - 0x69, 0x72, 0x73, 0x74, 0x47, 0x69, 0x76, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x74, 0x65, 0x6d, - 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x49, 0x74, 0x65, 0x6d, - 0x52, 0x65, 0x63, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x11, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x63, 0x45, 0x78, 0x70, 0x69, - 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x5e, 0x0a, 0x14, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, - 0x4c, 0x65, 0x6e, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x12, 0x12, - 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, - 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x03, 0x50, 0x6f, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, - 0x52, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x50, 0x65, 0x74, 0x53, 0x6b, - 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x22, 0x2c, 0x0a, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x03, 0x4e, 0x75, 0x6d, 0x22, 0xab, 0x01, 0x0a, 0x16, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, - 0x43, 0x79, 0x63, 0x6c, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, - 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x27, 0x0a, 0x05, 0x41, 0x77, 0x61, - 0x72, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, - 0x65, 0x6e, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x41, 0x77, 0x61, - 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x22, 0x4b, 0x0a, 0x14, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, - 0x79, 0x63, 0x6c, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x33, 0x0a, 0x04, 0x4c, 0x69, - 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, - 0x65, 0x6e, 0x2e, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x42, - 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x2a, - 0x3e, 0x0a, 0x0c, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, - 0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x75, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, - 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, - 0x12, 0x0d, 0x0a, 0x09, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x48, 0x69, 0x6e, 0x74, 0x10, 0x02, 0x2a, - 0xa2, 0x05, 0x0a, 0x0f, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x54, 0x69, - 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x18, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x52, - 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xfa, 0x29, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x52, 0x6f, - 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, 0xfb, 0x29, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x10, 0xfc, 0x29, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x4f, 0x70, 0x10, 0xfd, 0x29, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x10, 0xfe, 0x29, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x10, 0xff, 0x29, 0x12, 0x19, 0x0a, 0x14, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, - 0x43, 0x61, 0x72, 0x64, 0x10, 0x80, 0x2a, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x42, - 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x10, 0x81, 0x2a, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x75, 0x72, 0x4f, - 0x70, 0x50, 0x6f, 0x73, 0x10, 0x82, 0x2a, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x53, 0x6d, 0x61, 0x6c, 0x6c, - 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x10, 0x83, 0x2a, 0x12, 0x25, 0x0a, - 0x20, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, - 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, - 0x64, 0x10, 0x84, 0x2a, 0x12, 0x26, 0x0a, 0x21, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x75, - 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x10, 0x85, 0x2a, 0x12, 0x17, 0x0a, 0x12, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, - 0x41, 0x49, 0x10, 0x86, 0x2a, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x4f, 0x70, - 0x50, 0x6f, 0x73, 0x10, 0x87, 0x2a, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x54, 0x65, - 0x73, 0x74, 0x10, 0x88, 0x2a, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, - 0x6e, 0x67, 0x43, 0x6e, 0x74, 0x10, 0x89, 0x2a, 0x12, 0x26, 0x0a, 0x21, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x46, 0x69, 0x72, 0x73, - 0x74, 0x47, 0x69, 0x76, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x10, 0x8a, 0x2a, - 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, - 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x10, - 0x8b, 0x2a, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, + 0x50, 0x6f, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x43, 0x61, + 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x49, 0x73, 0x53, 0x6d, 0x61, 0x6c, + 0x6c, 0x43, 0x61, 0x72, 0x64, 0x22, 0x41, 0x0a, 0x1b, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, + 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, + 0x67, 0x43, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, + 0x67, 0x43, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x54, 0x68, 0x69, 0x6e, + 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, 0x74, 0x22, 0x68, 0x0a, 0x20, 0x53, 0x43, 0x54, 0x69, + 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x69, 0x72, 0x73, 0x74, + 0x47, 0x69, 0x76, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, + 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, + 0x65, 0x6d, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x63, 0x45, + 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x11, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x63, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x22, 0x5e, 0x0a, 0x14, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, + 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x10, + 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, + 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, + 0x65, 0x73, 0x22, 0x2c, 0x0a, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, + 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x4e, 0x75, 0x6d, + 0x22, 0xab, 0x01, 0x0a, 0x16, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x79, 0x63, 0x6c, + 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x53, + 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, + 0x1e, 0x0a, 0x0a, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x03, 0x52, 0x0a, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x27, 0x0a, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x49, + 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1e, + 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x4b, + 0x0a, 0x14, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x79, 0x63, 0x6c, 0x65, + 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x33, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, - 0x64, 0x10, 0x8c, 0x2a, 0x42, 0x27, 0x5a, 0x25, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, - 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x2a, 0x3e, 0x0a, 0x0c, 0x4f, + 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, + 0x50, 0x52, 0x43, 0x5f, 0x53, 0x75, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, + 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, + 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x48, 0x69, 0x6e, 0x74, 0x10, 0x02, 0x2a, 0xa2, 0x05, 0x0a, 0x0f, + 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, + 0x16, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, + 0x6e, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x49, + 0x6e, 0x66, 0x6f, 0x10, 0xfa, 0x29, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x10, 0xfb, 0x29, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x43, 0x53, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x4f, 0x70, 0x10, 0xfc, 0x29, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, + 0x70, 0x10, 0xfd, 0x29, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, + 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, + 0x74, 0x65, 0x72, 0x10, 0xfe, 0x29, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x4c, 0x65, 0x61, 0x76, 0x65, 0x10, 0xff, 0x29, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, + 0x10, 0x80, 0x2a, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, + 0x64, 0x10, 0x81, 0x2a, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, + 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x75, 0x72, 0x4f, 0x70, 0x50, 0x6f, 0x73, + 0x10, 0x82, 0x2a, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x47, 0x61, 0x6d, 0x65, + 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x10, 0x83, 0x2a, 0x12, 0x25, 0x0a, 0x20, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x10, 0x84, 0x2a, + 0x12, 0x26, 0x0a, 0x21, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, + 0x6e, 0x4c, 0x65, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, + 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x10, 0x85, 0x2a, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x41, 0x49, 0x10, 0x86, + 0x2a, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, + 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x4f, 0x70, 0x50, 0x6f, 0x73, 0x10, + 0x87, 0x2a, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, + 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x54, 0x65, 0x73, 0x74, 0x10, 0x88, + 0x2a, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, + 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, + 0x74, 0x10, 0x89, 0x2a, 0x12, 0x26, 0x0a, 0x21, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, + 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x47, 0x69, 0x76, + 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x10, 0x8a, 0x2a, 0x12, 0x20, 0x0a, 0x1b, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, + 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x10, 0x8b, 0x2a, 0x12, 0x20, + 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, + 0x65, 0x6e, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x10, 0x8c, 0x2a, + 0x42, 0x27, 0x5a, 0x25, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2f, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( diff --git a/protocol/tienlen/tienlen.proto b/protocol/tienlen/tienlen.proto index 8c26dcf..e6c92a4 100644 --- a/protocol/tienlen/tienlen.proto +++ b/protocol/tienlen/tienlen.proto @@ -126,6 +126,7 @@ message SCTienLenRoomInfo { int32 Voice = 38; //是否开启语音 1开启 string Password = 39; //房间密码 // 房卡场配置 + bool IsSmallCard = 40; //必出最小牌 } //房间状态更新 @@ -257,7 +258,7 @@ message SCTienLenAIData { //PACKET_SCTienLenFirstOpPos message SCTienLenFirstOpPos { int32 Pos = 1;//座位位置 - int32 WinPos = 2;//赢家位置 -1 没有赢家 + bool IsSmallCard = 2; //必出最小牌 } //PACKET_SCTienLenThinkLongCnt From ee9878957a19b851785c00f54481605302f6a5c1 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Mon, 6 Jan 2025 14:08:40 +0800 Subject: [PATCH 32/47] =?UTF-8?q?modify=20=E7=B4=AF=E6=B6=88=E6=B4=BB?= =?UTF-8?q?=E5=8A=A8=E5=BC=80=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- model/config.go | 2 +- model/permit.go | 19 ++++++++++--------- worldsrv/action_task.go | 1 + worldsrv/welfmgr.go | 20 ++++++++++++++++++++ 4 files changed, 32 insertions(+), 10 deletions(-) diff --git a/model/config.go b/model/config.go index 0d00179..2080dbf 100644 --- a/model/config.go +++ b/model/config.go @@ -25,7 +25,7 @@ const ( OpPhoneLottery = 5 OpCollect = 6 OpNian = 7 - OpRedPacket = 8 // 红包活动 + OpConsume = 8 // 累计消耗活动 ) const ( diff --git a/model/permit.go b/model/permit.go index 70798d1..a1ca310 100644 --- a/model/permit.go +++ b/model/permit.go @@ -44,13 +44,14 @@ type BackendPermitJoin struct { // BackendPermitTask 通行证任务完成记录 type BackendPermitTask struct { - Platform string // 平台 - StartTs int64 // 活动开始时间 - SnId int32 // 玩家id - TaskId int32 // 任务id - TaskName string // 任务名称 - ActivityType int32 // 活动类型 - TaskType int32 // 任务类型 - Gain []AwardItem // 任务获得奖励 - Ts int64 // 时间戳 + Platform string // 平台 + StartTs int64 // 活动开始时间 + SnId int32 // 玩家id + TaskId int32 // 任务id + TaskName string // 任务名称 + ActivityType int32 // 活动类型 + TaskType int32 // 任务类型 + Gain []AwardItem // 任务获得奖励 + Ts int64 // 时间戳 + RemainDiamond int64 // 剩余钻石 } diff --git a/worldsrv/action_task.go b/worldsrv/action_task.go index fe0795f..ba9435e 100644 --- a/worldsrv/action_task.go +++ b/worldsrv/action_task.go @@ -136,6 +136,7 @@ func CSTaskReward(s *netlib.Session, packetId int, data interface{}, sid int64) taskLog.TaskName = data.GetDes() taskLog.ActivityType = data.GetActivityType() taskLog.TaskType = data.GetTaskType() + taskLog.RemainDiamond = p.Diamond } mq.Write(taskLog) ret.OpCode = taskproto.OpResultCode_OPRC_Success diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index 734e3fa..779cb51 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -1017,6 +1017,13 @@ func (this *WelfareMgr) WelfareSwitch(p *Player, platform string, op int) { } else { pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareClose) } + // 累消活动 + consumeConfig := info.ConsumeConfig + if consumeConfig != nil { + pack.WelfareSwitch = append(pack.WelfareSwitch, consumeConfig.On) //累消活动开关 + } else { + pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareClose) + } if model.GameParamData.TestActSwitch { for k := range pack.WelfareSwitch { @@ -2455,7 +2462,20 @@ func (this *WelfareMgr) GetRedPacket(p *Player, id int64) *welfare.SCRedPacketDr } func (this *WelfareMgr) UpdateConsumeConfig(conf *webapi_proto.ConsumeConfig) { + if model.GameParamData.TestActSwitch { + conf.On = model.WelfareOpen + } + s := int32(0) + info := this.GetConfig(conf.Platform) + if info.ConsumeConfig != nil { + s = info.ConsumeConfig.On + } this.GetConfig(conf.Platform).ConsumeConfig = conf + //更新活动时间 + // 打开关闭要广播给客户端 + if s != 0 && s != conf.On { + this.WelfareSwitch(nil, conf.Platform, model.OpConsume) + } } func (this *WelfareMgr) Update() { From 579c5791185e7faffc1506cfc4b2d77e83ec8bd5 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Mon, 6 Jan 2025 14:46:36 +0800 Subject: [PATCH 33/47] =?UTF-8?q?add=20=E7=B4=AF=E6=B6=88=E6=B4=BB?= =?UTF-8?q?=E5=8A=A8=E8=B4=A6=E5=8F=98=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/constant.go | 1 + worldsrv/taskmgr.go | 2 ++ 2 files changed, 3 insertions(+) diff --git a/common/constant.go b/common/constant.go index 93a3904..01e8fcd 100644 --- a/common/constant.go +++ b/common/constant.go @@ -340,6 +340,7 @@ const ( GainWayNianGain_Attack_BigOther = 129 //年兽活动大爆竹攻击年兽获得额外奖励 GainWayNianGain_Attack_BigGuarantee = 130 //年兽活动大爆竹攻击年兽获得保底奖励 GainWayNianGain_Attack_Coin = 131 //攻击年兽获得金币奖励 + GainWayConsume = 132 //累消活动获得 ) // 后台选择 金币变化类型 的充值 类型id号起始 diff --git a/worldsrv/taskmgr.go b/worldsrv/taskmgr.go index e453e87..cb81a20 100644 --- a/worldsrv/taskmgr.go +++ b/worldsrv/taskmgr.go @@ -402,6 +402,8 @@ func SendTaskReward(p *Player, m map[int64]int64, tp int32) { case 6: gain = common.GainWayItemTaskPermit giveType = model.SystemFreeGive_GiveType_TaskPermit + case 10: + gain = common.GainWayConsume } BagMgrSingleton.AddItems(&model.AddItemParam{ Platform: p.Platform, From 527e3b1acb0adeaf7b3f5f28097719ec5c5c3c59 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Mon, 6 Jan 2025 14:52:12 +0800 Subject: [PATCH 34/47] no message --- common/constant.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/constant.go b/common/constant.go index 01e8fcd..f995d6f 100644 --- a/common/constant.go +++ b/common/constant.go @@ -340,7 +340,7 @@ const ( GainWayNianGain_Attack_BigOther = 129 //年兽活动大爆竹攻击年兽获得额外奖励 GainWayNianGain_Attack_BigGuarantee = 130 //年兽活动大爆竹攻击年兽获得保底奖励 GainWayNianGain_Attack_Coin = 131 //攻击年兽获得金币奖励 - GainWayConsume = 132 //累消活动获得 + GainWayConsume = 134 //累消活动获得 ) // 后台选择 金币变化类型 的充值 类型id号起始 From 0ca34a5be4f07a93cb132f66af145017264e9baa Mon Sep 17 00:00:00 2001 From: tomas Date: Mon, 6 Jan 2025 15:28:02 +0800 Subject: [PATCH 35/47] bet-- --- .../excel/Base/Slots/FortuneDragon/Bet.xlsx | Bin 13010 -> 13009 bytes .../exported/excel2go/base/fortune_dragon.go | 34 +++++++++--------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/FortuneDragon/Bet.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/FortuneDragon/Bet.xlsx index 229e2df9b4eb574723f8942cd50f7737707e5628..c7259334c9738741dcfa965b4aad186a98f4bfc4 100644 GIT binary patch delta 5493 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 Rza42%g%U!^}KbiRNnf|R7RlngD>sicBj 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 diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_dragon.go b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_dragon.go index 7a793c0..59e1241 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_dragon.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_dragon.go @@ -49,79 +49,79 @@ func init() { FortuneDragonBetBetChangeList = map[int64]*structs.FortuneDragonBetBetChangeList{ 0: { Index: 0, - BetChangeList: 150000, + BetChangeList: 75000, BetSizeIndex: 0, BetLevelIndex: 0, }, 1: { Index: 1, - BetChangeList: 300000, + BetChangeList: 150000, BetSizeIndex: 0, BetLevelIndex: 1, }, 2: { Index: 2, - BetChangeList: 450000, + BetChangeList: 225000, BetSizeIndex: 0, BetLevelIndex: 2, }, 3: { Index: 3, - BetChangeList: 500000, + BetChangeList: 250000, BetSizeIndex: 1, BetLevelIndex: 0, }, 4: { Index: 4, - BetChangeList: 750000, + BetChangeList: 375000, BetSizeIndex: 0, BetLevelIndex: 4, }, 5: { Index: 5, - BetChangeList: 1500000, + BetChangeList: 750000, BetSizeIndex: 0, BetLevelIndex: 9, }, 6: { Index: 6, - BetChangeList: 2500000, + BetChangeList: 1250000, BetSizeIndex: 1, BetLevelIndex: 4, }, 7: { Index: 7, - BetChangeList: 4500000, + BetChangeList: 2250000, BetSizeIndex: 3, BetLevelIndex: 0, }, 8: { Index: 8, - BetChangeList: 5000000, + BetChangeList: 2500000, BetSizeIndex: 1, BetLevelIndex: 9, }, 9: { Index: 9, - BetChangeList: 7500000, + BetChangeList: 3750000, BetSizeIndex: 2, BetLevelIndex: 4, }, 10: { Index: 10, - BetChangeList: 15000000, + BetChangeList: 7500000, BetSizeIndex: 2, BetLevelIndex: 9, }, 11: { Index: 11, - BetChangeList: 22500000, + BetChangeList: 11250000, BetSizeIndex: 3, BetLevelIndex: 4, }, 12: { Index: 12, - BetChangeList: 45000000, + BetChangeList: 22500000, BetSizeIndex: 3, BetLevelIndex: 9, }, @@ -181,19 +181,19 @@ func init() { FortuneDragonBetBetSize = map[int64]*structs.FortuneDragonBetBetSize{ 0: { Index: 0, - BetSize: 300000000, + BetSize: 150000000, }, 1: { Index: 1, - BetSize: 1000000000, + BetSize: 500000000, }, 2: { Index: 2, - BetSize: 3000000000, + BetSize: 1500000000, }, 3: { Index: 3, - BetSize: 9000000000, + BetSize: 4500000000, }, } From b512310a92951ded1617ced11c479db260a15564 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Mon, 6 Jan 2025 16:00:07 +0800 Subject: [PATCH 36/47] =?UTF-8?q?=E5=B9=B4=E5=85=BD=E6=8E=92=E8=A1=8C?= =?UTF-8?q?=E6=A6=9C=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/constant.go | 2 ++ model/player.go | 3 +++ model/rank.go | 12 ++++++++++++ mq/keyconf.go | 1 + protocol/player/player.pb.go | 2 +- protocol/player/player.proto | 2 +- worldsrv/action_nian.go | 2 +- worldsrv/mq.go | 1 + worldsrv/rankmatch.go | 19 +++++++++++++++++++ worldsrv/taskmgr.go | 6 ++++++ 10 files changed, 47 insertions(+), 3 deletions(-) diff --git a/common/constant.go b/common/constant.go index 93a3904..f9a2fae 100644 --- a/common/constant.go +++ b/common/constant.go @@ -340,6 +340,8 @@ const ( GainWayNianGain_Attack_BigOther = 129 //年兽活动大爆竹攻击年兽获得额外奖励 GainWayNianGain_Attack_BigGuarantee = 130 //年兽活动大爆竹攻击年兽获得保底奖励 GainWayNianGain_Attack_Coin = 131 //攻击年兽获得金币奖励 + GainWayNianGain_EveryDayTask = 132 //年兽活动每日任务 + GainWayNianGain_Task = 133 //年兽活动任务 ) // 后台选择 金币变化类型 的充值 类型id号起始 diff --git a/model/player.go b/model/player.go index 3b1d44c..6266021 100644 --- a/model/player.go +++ b/model/player.go @@ -112,6 +112,8 @@ const ( SystemFreeGive_CollectBoxSwap // 卡片礼盒兑换奖励 SystemFreeGive_ClientUpgrade // 客户端升级奖励 SystemFreeGive_Guide // 新手引导奖励 + SystemFreeGive_NianEveryDayTask // 年兽每日任务 + SystemFreeGive_NianTask //年兽活动任务 ) const ( SystemFreeGive_CoinType_Coin int32 = iota //金币 @@ -132,6 +134,7 @@ const ( ActivityLog_Shop //商城购买 ActivityLog_Exchange //商城兑换 ActivityLog_CoinPigBank //金币存钱罐 + ActivityLog_NianBuff //年兽领取Buff ) type PlayerGameCtrlData struct { diff --git a/model/rank.go b/model/rank.go index 7dbfd16..35ca9de 100644 --- a/model/rank.go +++ b/model/rank.go @@ -406,3 +406,15 @@ func DelNianRank(args *FindNianListArgs) error { } return nil } + +// 年兽排行榜记录 +type NianPlayerRankLog struct { + TypeId int32 //1-幸运榜 2:伤害榜 + RankData []*NianPlayerRankData + Ts int64 +} +type NianPlayerRankData struct { + RankId int32 + Snid int32 + Score int64 +} diff --git a/mq/keyconf.go b/mq/keyconf.go index d4ba3b9..9c526bf 100644 --- a/mq/keyconf.go +++ b/mq/keyconf.go @@ -20,6 +20,7 @@ const ( BackActivityLog = "back_activitylog" BackOnlineGame = "back_onlinegame" BackRedPacket = "back_redpacket" + NianPlayerRank = "log_nianplayerrank" ) // go后端 diff --git a/protocol/player/player.pb.go b/protocol/player/player.pb.go index b00a216..9060b75 100644 --- a/protocol/player/player.pb.go +++ b/protocol/player/player.pb.go @@ -7986,7 +7986,7 @@ type SCEasyWelfaredInfo struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - WelfareSwitch []int32 `protobuf:"varint,1,rep,packed,name=WelfareSwitch,proto3" json:"WelfareSwitch,omitempty"` // 下标 0转盘1盲盒2首冲3连续充值4抽手机活动5集卡活动 1显示 2不显示 + WelfareSwitch []int32 `protobuf:"varint,1,rep,packed,name=WelfareSwitch,proto3" json:"WelfareSwitch,omitempty"` // 下标 0转盘1盲盒2首冲3连续充值4抽手机活动5集卡活动6年兽活动 1显示 2不显示 } func (x *SCEasyWelfaredInfo) Reset() { diff --git a/protocol/player/player.proto b/protocol/player/player.proto index 1501d66..4f429ea 100644 --- a/protocol/player/player.proto +++ b/protocol/player/player.proto @@ -1057,7 +1057,7 @@ message SCVIPInfo { // //PACKET_SC_SWELFAREINFO message SCEasyWelfaredInfo{ - repeated int32 WelfareSwitch = 1; // 下标 0转盘1盲盒2首冲3连续充值4抽手机活动5集卡活动 1显示 2不显示 + repeated int32 WelfareSwitch = 1; // 下标 0转盘1盲盒2首冲3连续充值4抽手机活动5集卡活动6年兽活动 1显示 2不显示 } message CSVIPPrivilegeInfo { diff --git a/worldsrv/action_nian.go b/worldsrv/action_nian.go index 16fe5d0..e1125a9 100644 --- a/worldsrv/action_nian.go +++ b/worldsrv/action_nian.go @@ -606,7 +606,7 @@ func CSNianBuff(s *netlib.Session, packetid int, data interface{}, sid int64) er } p.SendToClient(int(activity.NianPacketID_PACKET_SCNianBuff), pack) //统计领取BUff - //mq.Write() + mq.Write(model.GenerateActivityLog(p.SnId, p.Platform, model.ActivityLog_NianBuff, 1)) } else { logger.Logger.Trace("CSNianSignAward 活动时间未到!") pack := &activity.SCNianBuff{ diff --git a/worldsrv/mq.go b/worldsrv/mq.go index 7389fa7..e2ab918 100644 --- a/worldsrv/mq.go +++ b/worldsrv/mq.go @@ -35,6 +35,7 @@ func init() { mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.DBLotteryCode, Data: &model.LotteryCode{}}) mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.DBLotteryLog, Data: &model.LotteryLog{}}) mq.RegisterMessage(&mq.RegisterMessageParam{Name: model.MQRankNian, Data: &model.NianInfo{}}) + mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.NianPlayerRank, Data: &model.NianPlayerRankLog{}}) } func init() { diff --git a/worldsrv/rankmatch.go b/worldsrv/rankmatch.go index c312f2f..ad47dc4 100644 --- a/worldsrv/rankmatch.go +++ b/worldsrv/rankmatch.go @@ -959,8 +959,11 @@ func (r *RankMatchMgr) NianRankAward() { if nowTime < timestamp || nowTime > endTimestamp { return } + log := &model.NianPlayerRankLog{} + log.Ts = time.Now().Unix() for _, info := range rankConfig.RankData { if info.TypeId == 1 { + log.TypeId = info.TypeId rankAward := info.RankInfo if rankAward == nil { continue @@ -1021,6 +1024,13 @@ func (r *RankMatchMgr) NianRankAward() { p.AddMessage(newMsg) } })).Start() + //记录log + rankData := &model.NianPlayerRankData{ + RankId: rankId, + Snid: player.SnId, + Score: list.List[rankId-1].Luck, + } + log.RankData = append(log.RankData, rankData) rankId += 1 } //清除幸运榜数值 @@ -1030,6 +1040,7 @@ func (r *RankMatchMgr) NianRankAward() { if err != nil { logger.Logger.Errorf("清除幸运榜数值失败 err:%v", err) } + mq.Write(log) })).StartByExecutor("NianLuck_Award") } else if info.TypeId == 2 { @@ -1041,6 +1052,7 @@ func (r *RankMatchMgr) NianRankAward() { continue } var players []*model.PlayerBaseInfo + log.TypeId = info.TypeId list, err := model.FindDamageNianRankList(&model.FindNianListArgs{ Platform: platform, }) @@ -1096,6 +1108,12 @@ func (r *RankMatchMgr) NianRankAward() { p.AddMessage(newMsg) } })).Start() + rankData := &model.NianPlayerRankData{ + RankId: rankId, + Snid: player.SnId, + Score: list.List[rankId-1].Damage, + } + log.RankData = append(log.RankData, rankData) rankId += 1 } //删除数据库数据 @@ -1105,6 +1123,7 @@ func (r *RankMatchMgr) NianRankAward() { if err != nil { logger.Logger.Errorf("删除年兽排行榜数据库数据 err:%v", err) } + mq.Write(log) })).StartByExecutor("NianDamage_Award") } } diff --git a/worldsrv/taskmgr.go b/worldsrv/taskmgr.go index e453e87..e4652b8 100644 --- a/worldsrv/taskmgr.go +++ b/worldsrv/taskmgr.go @@ -402,6 +402,12 @@ func SendTaskReward(p *Player, m map[int64]int64, tp int32) { case 6: gain = common.GainWayItemTaskPermit giveType = model.SystemFreeGive_GiveType_TaskPermit + case 8: + gain = common.GainWayNianGain_EveryDayTask + giveType = model.SystemFreeGive_NianEveryDayTask + case 9: + gain = common.GainWayNianGain_Task + giveType = model.SystemFreeGive_NianTask } BagMgrSingleton.AddItems(&model.AddItemParam{ Platform: p.Platform, From cd0f2bf0973a5eef0e91a22e07b781bcf4e00e3a Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Mon, 6 Jan 2025 16:13:57 +0800 Subject: [PATCH 37/47] =?UTF-8?q?modify=20=E4=BF=AE=E6=94=B9=E5=BA=95?= =?UTF-8?q?=E6=B3=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../excel/Base/Slots/FortuneDragon/Bet.xlsx | Bin 13009 -> 13015 bytes .../excel/Base/Slots/FortuneMouse/Bet.xlsx | Bin 13009 -> 13010 bytes .../excel/Base/Slots/FortuneOx/Bet.xlsx | Bin 13059 -> 13056 bytes .../excel/Base/Slots/FortuneRabbit/Bet.xlsx | Bin 13033 -> 13054 bytes .../excel/Base/Slots/FortuneTiger/Bet.xlsx | Bin 13038 -> 13043 bytes .../exported/excel2go/base/cash_mania.go | 744 +++++++++--------- .../exported/excel2go/base/fortune_dragon.go | 386 ++++----- .../exported/excel2go/base/fortune_mouse.go | 284 +++---- .../exported/excel2go/base/fortune_ox.go | 310 ++++---- .../exported/excel2go/base/fortune_rabbit.go | 378 ++++----- .../exported/excel2go/base/fortune_tiger.go | 296 +++---- .../internal/exported/excel2go/base/matrix.go | 342 ++++---- 12 files changed, 1370 insertions(+), 1370 deletions(-) diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/FortuneDragon/Bet.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/FortuneDragon/Bet.xlsx index c7259334c9738741dcfa965b4aad186a98f4bfc4..d4bc52e27c6a66c0ba3dc9f0d070e146267f7478 100644 GIT binary patch delta 2900 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 delta 2914 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 delta 5537 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 nzaHjlkVTER+D+_1jC^t#;A)2!hA^F+%@ z6aWAK2mpsp;y}7Hky$Z<{a_fZr$WKOn!CORgjeshU>R zCT&u+?(*!wA+ZXW*-mKp>vwE}6B=5T2W*agzH`N1T|bwFcLX6BuM!gZA@QI}dB&<; zLVo?czlw<`6|FK_@Cp+00+L*>KYv;^Ts+A=fbx(~$%O2cs+U0^(>;__`n-mJ3RiM2 zN~-Wv>;hQ}pqWuBi(nLnv!JA`B9^ceA7Su3XDQtA^iV>jEJQ#-75Xpttd?HmGi;xtX;H?{QBs`cW3EJ4vc0CjtiikEj(QL$9UZ5p>dnMCtPP~#no3XK0qR^jAqFMJKC^Z>to#-G|eblPs*s71FeiX)I_q?k< zZq;#Y)nh+ioQ%)jw?1jraqOI*`p&YR3|S9s3QQ4n8?0A?Hy-{Xm4IyB~I0F6?oIChH0>_%(!(Wf0fG{!i9 zMyW$jUZJ%{A04|LJv8Rkp(B?NlsfcmSW&n9WhSSCIkeJo*gnI+*&uLcfRR(NnQNsT z@Km#2Y}i=?F3t^c^onSu&c!!~`g*twIyS^p?W~Vhx_HY+dqUV>=B()szEiPdmGlb8 zG4-K8#{>)e|Jx76Yg5rJS9rLY=^if_zy=QW`H*w2x(_@AH1iSEq4sK8gLq{B@IJ%i zg$ssPiMc@%QgfjMWlEnK7Itqa`UG=V-ugdKO9KRx5i%OHrwT{|3ZEFp?ivID09y@{ zp$Zv)G%k2;Y?W7AkE1peey`O3fc(CIbDfNmtQJt(O0Bf&^z!T>PGSvUYMe0JU*F>k z5F0Yu<{`l6bIx~eKA7$2_p%6XR5XlNJA}g+1+>cfkyYm%`ty&&rzaFNl2k`h@QUux zH`<`j`yYSUwp_e57fNLS7OG~4E>hOdQPkvr7g~}gdq+W9h_&S5`3jO^4e#MCD+A zr)}G?t(!2ftQU6)!t032^x8;XW<(OS-|7l{714fsWROKw`asar4t>GT2fRkGphf;- zv~BM014&+AXhCyHkI*Y9P(AR<`I{2_1)x|N*8<8U$tAndlorJf{WJ&h<{!L<;CCZC@(vIv_T#AJ8yrc?0k{n%sgD8fL~?7D*7wE(E=29 zXsL*DUVv5j4@#zb90etLH~t%oI1U#Jyy|{y6y!QxmQZ`!tIw=DTw9|)TZTA(n)kmC z)#p|nu2vnd{)hU)s>8KYUxq!iy7`cOW!2$o)i>dMt+N!FH0h$KKG|;tZv)tWL#l8! zQ9B$zFQCA=0>1zXX>Z{9wvV^b4QiO%wM1!Xy%zB9kTT^KXbnG-wLuxT=n zC$)y*sGgS5-9#>xc$T=PHq{027R4;IY~!)9?5zkwg+|9)5vBL=J6+kQ~8@f+AQ z--zEVdV4gprXJ;gdc3OhwYH^(wSI%_MivtEOhIZ zS*1rgm>zj>a@5n-3n#I-Z9*?Ysa+j)p)uy?z#JOQ`J^Ui`Wq2vRy9FEPw=veLpaL> z!W;?BgXFb-mA-Nb2Vi}BfsYUhXP8(W8Bd(c?g8Fr%H|7|*E*;xNlnEI`xm}>VA^rP z;B!NNW$aMRg%pHI_4+f$4%&)(8}^??`~Lt?O9KRxoiZAerwS9ZSQ4EI1h2jgvXl87 z9e>-7+At7(uhf5t{0_NrM}!ptqOJt16;QT)s=UdBSew|9Z7yxqfA2T}mcpvy$?Y@OSCy9_b)ql8^8(S3;Xsl8IooBY^IBh$pjFXC?FYn+ySMe#&))P2Z^l~JXqG1CzHq=8$phxb5> zSaMqgTbAKzui<#a9-d7;OWYW@YX*Du9yeQS&v-2MFD%xnPrOdAiBwhW3$RV9v45>z zql3YONu`&@KjsmOMw;zlMPH2?Eb z$;a3=M3*4UU$S3tg~94)NNMy6GJ_ptR~Q#tb_SJ#uR!CJ@(s+Gx>4A?KsG;6IAi=; zp=;)Ga@8u^QLAF>Vs43p_CKml5lDlRhtev@7< zlL-`kXNyY#003r_`YtyEGv!B Date: Mon, 6 Jan 2025 16:20:17 +0800 Subject: [PATCH 38/47] =?UTF-8?q?=E5=B9=B4=E5=85=BD=E6=8E=92=E8=A1=8C?= =?UTF-8?q?=E6=A6=9C=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- model/rank.go | 1 + worldsrv/rankmatch.go | 1 + 2 files changed, 2 insertions(+) diff --git a/model/rank.go b/model/rank.go index 35ca9de..f417be9 100644 --- a/model/rank.go +++ b/model/rank.go @@ -411,6 +411,7 @@ func DelNianRank(args *FindNianListArgs) error { type NianPlayerRankLog struct { TypeId int32 //1-幸运榜 2:伤害榜 RankData []*NianPlayerRankData + Platform string Ts int64 } type NianPlayerRankData struct { diff --git a/worldsrv/rankmatch.go b/worldsrv/rankmatch.go index ad47dc4..e2a7da1 100644 --- a/worldsrv/rankmatch.go +++ b/worldsrv/rankmatch.go @@ -961,6 +961,7 @@ func (r *RankMatchMgr) NianRankAward() { } log := &model.NianPlayerRankLog{} log.Ts = time.Now().Unix() + log.Platform = platform for _, info := range rankConfig.RankData { if info.TypeId == 1 { log.TypeId = info.TypeId From 56bfab6cbe27c46a03a8a87441fc7bbc858e4ee7 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Mon, 6 Jan 2025 16:44:49 +0800 Subject: [PATCH 39/47] =?UTF-8?q?modify=20=E7=BA=A2=E5=8C=85=E6=B4=BB?= =?UTF-8?q?=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/welfmgr.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index 779cb51..4f447eb 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -2351,7 +2351,7 @@ func (this *WelfareMgr) GetRedPacket(p *Player, id int64) *welfare.SCRedPacketDr p.WelfData.RedPacket[v.GetId()].JN++ } } - Send(welfare.OpResultCode_OPRC_Sucess) + //Send(welfare.OpResultCode_OPRC_Sucess) return pack } From 6a712e5b192336e23b0899f067c6f123d049e8af Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Tue, 7 Jan 2025 00:24:25 +0800 Subject: [PATCH 40/47] =?UTF-8?q?=E5=B9=B4=E5=85=BD=E6=8E=92=E8=A1=8C?= =?UTF-8?q?=E6=A6=9C=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dbproxy/svc/l_ranknian.go | 4 ++-- worldsrv/rankmatch.go | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dbproxy/svc/l_ranknian.go b/dbproxy/svc/l_ranknian.go index 018811c..868dc0f 100644 --- a/dbproxy/svc/l_ranknian.go +++ b/dbproxy/svc/l_ranknian.go @@ -80,7 +80,7 @@ func (svc *RankNianSvc) LuckFind(args *model.FindNianListArgs, ret *model.FindNi return RankNianColError } - err := fc.Find(bson.M{}).Sort("-luck").Limit(40).All(&ret.List) + err := fc.Find(bson.M{"luck": bson.M{"$gt": 0}}).Sort("-luck").Limit(40).All(&ret.List) if err != nil && !errors.Is(err, mgo.ErrNotFound) { logger.Logger.Error("QueryMatchSeason is err: ", err) return err @@ -95,7 +95,7 @@ func (svc *RankNianSvc) DamageFind(args *model.FindNianListArgs, ret *model.Find return RankNianColError } - err := fc.Find(bson.M{}).Sort("-damage").Limit(40).All(&ret.List) + err := fc.Find(bson.M{"damage": bson.M{"$gt": 0}}).Sort("-damage").Limit(40).All(&ret.List) if err != nil && !errors.Is(err, mgo.ErrNotFound) { logger.Logger.Error("QueryMatchSeason is err: ", err) return err diff --git a/worldsrv/rankmatch.go b/worldsrv/rankmatch.go index e2a7da1..7357426 100644 --- a/worldsrv/rankmatch.go +++ b/worldsrv/rankmatch.go @@ -1034,6 +1034,7 @@ func (r *RankMatchMgr) NianRankAward() { log.RankData = append(log.RankData, rankData) rankId += 1 } + mq.Write(log) //清除幸运榜数值 err := model.ClearNianRank(&model.FindNianListArgs{ Platform: platform, @@ -1041,7 +1042,6 @@ func (r *RankMatchMgr) NianRankAward() { if err != nil { logger.Logger.Errorf("清除幸运榜数值失败 err:%v", err) } - mq.Write(log) })).StartByExecutor("NianLuck_Award") } else if info.TypeId == 2 { @@ -1117,6 +1117,7 @@ func (r *RankMatchMgr) NianRankAward() { log.RankData = append(log.RankData, rankData) rankId += 1 } + mq.Write(log) //删除数据库数据 err := model.DelNianRank(&model.FindNianListArgs{ Platform: platform, @@ -1124,7 +1125,6 @@ func (r *RankMatchMgr) NianRankAward() { if err != nil { logger.Logger.Errorf("删除年兽排行榜数据库数据 err:%v", err) } - mq.Write(log) })).StartByExecutor("NianDamage_Award") } } From c54539edb10d7605e471b6eec5d1e69c3cf27b65 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Wed, 8 Jan 2025 00:10:35 +0800 Subject: [PATCH 41/47] =?UTF-8?q?=E5=B9=B4=E5=85=BD=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/DB_NewYearActivity.dat | 11 ++++++----- data/DB_NewYearActivity.json | 10 +++++----- data/DB_PropExchange.dat | Bin 384 -> 384 bytes data/DB_Task.dat | Bin 7589 -> 7589 bytes xlsx/DB_NewYearActivity.xlsx | Bin 11947 -> 11984 bytes 5 files changed, 11 insertions(+), 10 deletions(-) diff --git a/data/DB_NewYearActivity.dat b/data/DB_NewYearActivity.dat index 8a9c732..b28d448 100644 --- a/data/DB_NewYearActivity.dat +++ b/data/DB_NewYearActivity.dat @@ -8,18 +8,19 @@ SignReward50014,10;100001,100000" 签到奖励 BOSS血量 9 BossReward100001,100000;100002,10"BOSS击杀奖励 -0 LuckyRankNeed110000"幸运榜上榜条件 -0RankNeed80000000"总伤害榜上榜条件 -@ LittleHurtGold 80000,120000"小爆竹造成的伤害范围 +/ LuckyRankNeed10000"幸运榜上榜条件 +/RankNeed7000000"总伤害榜上榜条件 +> LittleHurtGold +8000,12000"小爆竹造成的伤害范围 >  BigHurtGold 400000,600000"大爆竹造成的伤害范围 4  BigHurtExc30001"大爆竹额外掉落道具ID -> BigHurtExcNumber10,30"!大爆竹额外掉落数量范围 += BigHurtExcNumber3,15"!大爆竹额外掉落数量范围 5 LittleGuaranteed30"小爆竹保底掉落次数 ALittleGuaranteedReward100002,5"小爆竹保底掉落物品 2 BigGuaranteed10"大爆竹保底掉落次数 -?BigGuaranteedReward 30001,100"大爆竹保底掉落物品 +>BigGuaranteedReward30001,80"大爆竹保底掉落物品 . GiftShopID991001,991002,991003"礼包ID @ GiftShopLimit3,0,0"&礼包每日限购次数,0为不限购 diff --git a/data/DB_NewYearActivity.json b/data/DB_NewYearActivity.json index e4df27e..f60e84e 100644 --- a/data/DB_NewYearActivity.json +++ b/data/DB_NewYearActivity.json @@ -39,19 +39,19 @@ { "Id": 7, "PorpName": "LuckyRankNeed", - "PropValue": "110000", + "PropValue": "10000", "PropDec": "幸运榜上榜条件" }, { "Id": 8, "PorpName": "RankNeed", - "PropValue": "80000000", + "PropValue": "7000000", "PropDec": "总伤害榜上榜条件" }, { "Id": 9, "PorpName": "LittleHurtGold", - "PropValue": "80000,120000", + "PropValue": "8000,12000", "PropDec": "小爆竹造成的伤害范围" }, { @@ -69,7 +69,7 @@ { "Id": 12, "PorpName": "BigHurtExcNumber", - "PropValue": "10,30", + "PropValue": "3,15", "PropDec": "大爆竹额外掉落数量范围" }, { @@ -93,7 +93,7 @@ { "Id": 16, "PorpName": "BigGuaranteedReward", - "PropValue": "30001,100", + "PropValue": "30001,80", "PropDec": "大爆竹保底掉落物品" }, { diff --git a/data/DB_PropExchange.dat b/data/DB_PropExchange.dat index c3d3957ac4cbb6c1b6054513b962afc344a2992c..1eb2fae2187ccbedcd0f06773a8e11043997602b 100644 GIT binary patch literal 384 zcmd-w<6snElw#w!+Qtl~uR-bSQ2H{Iz5=3^I5-yevI!h$vE|a^U;?YZ0hPZArEfv$ z+i2>;IUwfaQV%vC=nh==!`ufkmlN!chP97axMDe2usR&wBCtlF1t=au@;J=lcfby3 P=U4>v=oe-#2HHXZWwJaq literal 384 zcmd-w<6snElw#w!(#8y?uR`f-Q2IKQz6_$3I5-yevI!h$vE|a^U;?YZ0hPZArEfv$ z+i2>;IUwf4?17mNRtK~nrVnfnkPmYQ%zhMmlsLieXjuD*g)5eWg(wfe41ig92kKCm Ug(x0SV&_-{^yn96E(Y2{0Avb0H2?qr diff --git a/data/DB_Task.dat b/data/DB_Task.dat index 4425792e068ace73c625db1edf779dd53f3156f1..7a470a48a17a37f57a832fcb328186de3c56e8c8 100644 GIT binary patch delta 383 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 delta 3460 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 ZNsFlNrG|MJeb%O645` Date: Mon, 6 Jan 2025 17:51:42 +0800 Subject: [PATCH 42/47] =?UTF-8?q?=E5=B9=B4=E5=85=BD=E4=BB=BB=E5=8A=A1?= 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 4f447eb..2a3551b 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -2233,7 +2233,11 @@ func (this *WelfareMgr) ClearActivityNianData(p *Player) { p.WelfData.NianData = nil //清除任务数据 for id, _ := range p.WelfData.Task { + logger.Logger.Tracef("id = %d", id) data := srvdata.PBDB_TaskMgr.GetData(id) + if data == nil { + continue + } if data.ActivityType == common.TaskActivityTypeNianEveryDay || data.ActivityType == common.TaskActivityTypeNian { delete(p.WelfData.Task, id) } From 601a5efe8733cf190d0607d65d6f1de68ec3ceb2 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Mon, 6 Jan 2025 17:53:13 +0800 Subject: [PATCH 43/47] =?UTF-8?q?=E5=88=A0=E9=99=A4log?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/welfmgr.go | 1 - 1 file changed, 1 deletion(-) diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index 2a3551b..3614cd7 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -2233,7 +2233,6 @@ func (this *WelfareMgr) ClearActivityNianData(p *Player) { p.WelfData.NianData = nil //清除任务数据 for id, _ := range p.WelfData.Task { - logger.Logger.Tracef("id = %d", id) data := srvdata.PBDB_TaskMgr.GetData(id) if data == nil { continue From 03d1f119fe2453192d988b23bb4cdb15b158f4e4 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Mon, 6 Jan 2025 17:59:24 +0800 Subject: [PATCH 44/47] =?UTF-8?q?=E5=B9=B4=E5=85=BD=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/welfmgr.go | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index 3614cd7..7a331d9 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -2232,13 +2232,15 @@ func (this *WelfareMgr) ClearActivityNianData(p *Player) { if p != nil && p.WelfData != nil && p.WelfData.NianData != nil { p.WelfData.NianData = nil //清除任务数据 - for id, _ := range p.WelfData.Task { - data := srvdata.PBDB_TaskMgr.GetData(id) - if data == nil { - continue - } - if data.ActivityType == common.TaskActivityTypeNianEveryDay || data.ActivityType == common.TaskActivityTypeNian { - delete(p.WelfData.Task, id) + if p.WelfData.Task != nil { + for id, _ := range p.WelfData.Task { + data := srvdata.PBDB_TaskMgr.GetData(id) + if data == nil { + continue + } + if data.ActivityType == common.TaskActivityTypeNianEveryDay || data.ActivityType == common.TaskActivityTypeNian { + delete(p.WelfData.Task, id) + } } } } From ebc662d6361c258bccbdb310f31bf0c8ec3bda08 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Tue, 7 Jan 2025 09:28:09 +0800 Subject: [PATCH 45/47] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/DB_PigBank_Diamond.dat | 2 +- data/DB_PropExchange.dat | Bin 384 -> 384 bytes data/DB_Task.dat | Bin 7589 -> 7589 bytes worldsrv/action_nian.go | 2 +- 4 files changed, 2 insertions(+), 2 deletions(-) diff --git a/data/DB_PigBank_Diamond.dat b/data/DB_PigBank_Diamond.dat index 735a0e1..318e11f 100644 --- a/data/DB_PigBank_Diamond.dat +++ b/data/DB_PigBank_Diamond.dat @@ -1,4 +1,4 @@  (8@;PdX`c -< ((2Ÿ28@;JƸJPdX` +< ((2Ÿ28@;JJƸPdX` ?/ 2(2Ÿ28@;JƸJPdX` \ No newline at end of file diff --git a/data/DB_PropExchange.dat b/data/DB_PropExchange.dat index 1eb2fae2187ccbedcd0f06773a8e11043997602b..c7726ebfdd3cd5c062d18189dc39e95772ab1137 100644 GIT binary patch literal 384 zcmd-w<6snElw#w!+{O&1uR!UmQ2H8_z7C?5I5-yevI!h$vE|a^U;?YZ0hPZArEfv$ z+i2>;IUweP%>mj6Q-^LZ%s#MwpgNd4Q0!6S1iPbQ?IRYhSPmAjL(m<7%Ofy@??4?2 Xa{$a?V2hO4ITisu`h}T`fwm9;WimW9 literal 384 zcmd-w<6snElw#w!+Qtl~uR-bSQ2H{Iz5=3^I5-yevI!h$vE|a^U;?YZ0hPZArEfv$ z+i2>;IUwfaQV%vC=nh==!`ufkmlN!chP97axMDe2usR&wBCtlF1t=au@;J=lcfby3 P=U4>v=oe-#2HHXZWwJaq diff --git a/data/DB_Task.dat b/data/DB_Task.dat index 7a470a48a17a37f57a832fcb328186de3c56e8c8..8eed46c88eca9098dd4941132106299bf1a5ef8e 100644 GIT binary patch delta 317 zcmZ2#z0`U_xgZC}!d^Ck1G9L%*f^E|St1iV8U-OtE-#4Wg*N8NQjD!or9d7`>EsQJ zl~B=!&MK&=(Pk?qQKrcOoFbExS$;#M7aWoUN?&Ya7GRm2&)NdC0K|q{u+(QV3)@+s z=pvvCn4s1kXtACAh|O~H6j=dA*2y~TM<$ob2u^0?sGZCrD>%8IrJ14950(o}KF7Be VC@r{o3jYq?$(wlvC&$Wq005IGTW^4nVih>8z_CTjah&ND!t&4+~j=L7MKM~eSj8# 0 || damage > 0 { From 846234371531a2046cabd2fa98942a71dff25941 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Tue, 7 Jan 2025 11:25:21 +0800 Subject: [PATCH 46/47] =?UTF-8?q?=E5=B9=B4=E5=85=BD=E7=A4=BC=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/action_nian.go | 4 +++- worldsrv/player.go | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/worldsrv/action_nian.go b/worldsrv/action_nian.go index bf00c6a..eb9ed35 100644 --- a/worldsrv/action_nian.go +++ b/worldsrv/action_nian.go @@ -713,7 +713,10 @@ func CSNianChange(s *netlib.Session, packetid int, data interface{}, sid int64) return nil } num := msg.Num + pack := &activity.SCNianChange{} if num <= 0 || num > 99 { + pack.OpRetCode = activity.OpResultCode_Nian_OPRC_Error_Nian + p.SendToClient(int(activity.NianPacketID_PACKET_SCNianChange), pack) return nil } @@ -730,7 +733,6 @@ func CSNianChange(s *netlib.Session, packetid int, data interface{}, sid int64) break } } - pack := &activity.SCNianChange{} if p.Diamond < int64(diamond*int(num)) { pack.OpRetCode = activity.OpResultCode_Nian_OPRC_Error_Nian p.SendToClient(int(activity.NianPacketID_PACKET_SCNianChange), pack) diff --git a/worldsrv/player.go b/worldsrv/player.go index b2c4b72..064d9ba 100644 --- a/worldsrv/player.go +++ b/worldsrv/player.go @@ -2903,6 +2903,9 @@ func (this *Player) DoShopInfo(info *model.DbShop, isLogin bool) { } //年兽礼包 if info.PageId == ShopPageNian { + if this.WelfData.NianData.GiftShop == nil { + this.WelfData.NianData.GiftShop = map[int32]int32{} + } this.WelfData.NianData.GiftShop[info.ShopId] += 1 } From 2beffda5b63cbb865c713fa29092ff5f92cd0050 Mon Sep 17 00:00:00 2001 From: by <123456@qq.com> Date: Tue, 7 Jan 2025 11:42:28 +0800 Subject: [PATCH 47/47] =?UTF-8?q?=E5=B9=B4=E5=85=BD=E7=A4=BC=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/action_nian.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/worldsrv/action_nian.go b/worldsrv/action_nian.go index eb9ed35..8a6bf7d 100644 --- a/worldsrv/action_nian.go +++ b/worldsrv/action_nian.go @@ -479,6 +479,9 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64) if int32(otherItemNum)+p.WelfData.NianData.OtherAwardNum[info.Id] > info.DropUp { otherItemNum = int64(info.DropUp - p.WelfData.NianData.OtherAwardNum[info.Id]) } + if p.WelfData.NianData.OtherAwardNum == nil { + p.WelfData.NianData.OtherAwardNum = make(map[int32]int32) + } p.WelfData.NianData.OtherAwardNum[info.Id] += int32(otherItemNum) bossDieOther = append(bossDieOther, &model.Item{ ItemId: otherItemId,