diff --git a/app/user_center/pb/user_center.pb.go b/app/user_center/pb/user_center.pb.go
index 74154a8..ec1bce8 100644
--- a/app/user_center/pb/user_center.pb.go
+++ b/app/user_center/pb/user_center.pb.go
@@ -266,6 +266,55 @@ func (x *PlatformUserResp) GetUser() *User {
return nil
}
+// 用户ID请求
+type UserIdReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"`
+}
+
+func (x *UserIdReq) Reset() {
+ *x = UserIdReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_user_center_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UserIdReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UserIdReq) ProtoMessage() {}
+
+func (x *UserIdReq) ProtoReflect() protoreflect.Message {
+ mi := &file_user_center_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UserIdReq.ProtoReflect.Descriptor instead.
+func (*UserIdReq) Descriptor() ([]byte, []int) {
+ return file_user_center_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *UserIdReq) GetUserId() int64 {
+ if x != nil {
+ return x.UserId
+ }
+ return 0
+}
+
+// 用户ID回复
type UserIdResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -277,7 +326,7 @@ type UserIdResp struct {
func (x *UserIdResp) Reset() {
*x = UserIdResp{}
if protoimpl.UnsafeEnabled {
- mi := &file_user_center_proto_msgTypes[4]
+ mi := &file_user_center_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -290,7 +339,7 @@ func (x *UserIdResp) String() string {
func (*UserIdResp) ProtoMessage() {}
func (x *UserIdResp) ProtoReflect() protoreflect.Message {
- mi := &file_user_center_proto_msgTypes[4]
+ mi := &file_user_center_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -303,7 +352,7 @@ func (x *UserIdResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use UserIdResp.ProtoReflect.Descriptor instead.
func (*UserIdResp) Descriptor() ([]byte, []int) {
- return file_user_center_proto_rawDescGZIP(), []int{4}
+ return file_user_center_proto_rawDescGZIP(), []int{5}
}
func (x *UserIdResp) GetUserId() int64 {
@@ -313,6 +362,7 @@ func (x *UserIdResp) GetUserId() int64 {
return 0
}
+// 变更积分请求
type ChangeIntegralReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -325,7 +375,7 @@ type ChangeIntegralReq struct {
func (x *ChangeIntegralReq) Reset() {
*x = ChangeIntegralReq{}
if protoimpl.UnsafeEnabled {
- mi := &file_user_center_proto_msgTypes[5]
+ mi := &file_user_center_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -338,7 +388,7 @@ func (x *ChangeIntegralReq) String() string {
func (*ChangeIntegralReq) ProtoMessage() {}
func (x *ChangeIntegralReq) ProtoReflect() protoreflect.Message {
- mi := &file_user_center_proto_msgTypes[5]
+ mi := &file_user_center_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -351,7 +401,7 @@ func (x *ChangeIntegralReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use ChangeIntegralReq.ProtoReflect.Descriptor instead.
func (*ChangeIntegralReq) Descriptor() ([]byte, []int) {
- return file_user_center_proto_rawDescGZIP(), []int{5}
+ return file_user_center_proto_rawDescGZIP(), []int{6}
}
func (x *ChangeIntegralReq) GetUserId() int64 {
@@ -368,6 +418,7 @@ func (x *ChangeIntegralReq) GetChange() int64 {
return 0
}
+// 变更积分回复
type ChangeIntegralResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -381,7 +432,7 @@ type ChangeIntegralResp struct {
func (x *ChangeIntegralResp) Reset() {
*x = ChangeIntegralResp{}
if protoimpl.UnsafeEnabled {
- mi := &file_user_center_proto_msgTypes[6]
+ mi := &file_user_center_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -394,7 +445,7 @@ func (x *ChangeIntegralResp) String() string {
func (*ChangeIntegralResp) ProtoMessage() {}
func (x *ChangeIntegralResp) ProtoReflect() protoreflect.Message {
- mi := &file_user_center_proto_msgTypes[6]
+ mi := &file_user_center_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -407,7 +458,7 @@ func (x *ChangeIntegralResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use ChangeIntegralResp.ProtoReflect.Descriptor instead.
func (*ChangeIntegralResp) Descriptor() ([]byte, []int) {
- return file_user_center_proto_rawDescGZIP(), []int{6}
+ return file_user_center_proto_rawDescGZIP(), []int{7}
}
func (x *ChangeIntegralResp) GetUserId() int64 {
@@ -431,6 +482,7 @@ func (x *ChangeIntegralResp) GetIntegral() int64 {
return 0
}
+// 用户积分回复
type UserIntegralResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -443,7 +495,7 @@ type UserIntegralResp struct {
func (x *UserIntegralResp) Reset() {
*x = UserIntegralResp{}
if protoimpl.UnsafeEnabled {
- mi := &file_user_center_proto_msgTypes[7]
+ mi := &file_user_center_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -456,7 +508,7 @@ func (x *UserIntegralResp) String() string {
func (*UserIntegralResp) ProtoMessage() {}
func (x *UserIntegralResp) ProtoReflect() protoreflect.Message {
- mi := &file_user_center_proto_msgTypes[7]
+ mi := &file_user_center_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -469,7 +521,7 @@ func (x *UserIntegralResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use UserIntegralResp.ProtoReflect.Descriptor instead.
func (*UserIntegralResp) Descriptor() ([]byte, []int) {
- return file_user_center_proto_rawDescGZIP(), []int{7}
+ return file_user_center_proto_rawDescGZIP(), []int{8}
}
func (x *UserIntegralResp) GetUserId() int64 {
@@ -486,25 +538,107 @@ func (x *UserIntegralResp) GetIntegral() int64 {
return 0
}
+// 用户打卡(签到)回复
+type UserCheckInResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` // 成功与否
+ Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // 消息
+ IntegralChange int64 `protobuf:"varint,3,opt,name=integralChange,proto3" json:"integralChange,omitempty"` // 积分变动量
+ Integral int64 `protobuf:"varint,4,opt,name=integral,proto3" json:"integral,omitempty"` // 变动后的积分量
+ IsCritical bool `protobuf:"varint,5,opt,name=isCritical,proto3" json:"isCritical,omitempty"` // 是否发生了暴击奖励
+}
+
+func (x *UserCheckInResp) Reset() {
+ *x = UserCheckInResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_user_center_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UserCheckInResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UserCheckInResp) ProtoMessage() {}
+
+func (x *UserCheckInResp) ProtoReflect() protoreflect.Message {
+ mi := &file_user_center_proto_msgTypes[9]
+ 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 UserCheckInResp.ProtoReflect.Descriptor instead.
+func (*UserCheckInResp) Descriptor() ([]byte, []int) {
+ return file_user_center_proto_rawDescGZIP(), []int{9}
+}
+
+func (x *UserCheckInResp) GetSuccess() bool {
+ if x != nil {
+ return x.Success
+ }
+ return false
+}
+
+func (x *UserCheckInResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *UserCheckInResp) GetIntegralChange() int64 {
+ if x != nil {
+ return x.IntegralChange
+ }
+ return 0
+}
+
+func (x *UserCheckInResp) GetIntegral() int64 {
+ if x != nil {
+ return x.Integral
+ }
+ return 0
+}
+
+func (x *UserCheckInResp) GetIsCritical() bool {
+ if x != nil {
+ return x.IsCritical
+ }
+ return false
+}
+
+// 用户送礼请求
type UserSendGiftReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Platform string `protobuf:"bytes,1,opt,name=platform,proto3" json:"platform,omitempty"` // 平台
- PUid string `protobuf:"bytes,2,opt,name=pUid,proto3" json:"pUid,omitempty"` // 平台用户ID
- RoomId string `protobuf:"bytes,3,opt,name=roomId,proto3" json:"roomId,omitempty"` // 直播间ID
- GiftId int64 `protobuf:"varint,4,opt,name=giftId,proto3" json:"giftId,omitempty"` // 礼物ID
- GiftName string `protobuf:"bytes,5,opt,name=giftName,proto3" json:"giftName,omitempty"` // 礼物名
- Num int64 `protobuf:"varint,6,opt,name=num,proto3" json:"num,omitempty"` // 赠送数量
- Price int64 `protobuf:"varint,7,opt,name=price,proto3" json:"price,omitempty"` // 礼物单价(系统不存在对应礼物数据时使用)
- IsPaid bool `protobuf:"varint,8,opt,name=isPaid,proto3" json:"isPaid,omitempty"` // 是否收费礼物
+ UserId int64 `protobuf:"varint,2,opt,name=userId,proto3" json:"userId,omitempty"` // 系统用户ID
+ PUid string `protobuf:"bytes,3,opt,name=pUid,proto3" json:"pUid,omitempty"` // 平台用户ID
+ RoomId string `protobuf:"bytes,4,opt,name=roomId,proto3" json:"roomId,omitempty"` // 直播间ID
+ GiftId int64 `protobuf:"varint,5,opt,name=giftId,proto3" json:"giftId,omitempty"` // 礼物ID
+ GiftName string `protobuf:"bytes,6,opt,name=giftName,proto3" json:"giftName,omitempty"` // 礼物名
+ Num int64 `protobuf:"varint,7,opt,name=num,proto3" json:"num,omitempty"` // 赠送数量
+ Price int64 `protobuf:"varint,8,opt,name=price,proto3" json:"price,omitempty"` // 礼物单价(系统不存在对应礼物数据时使用)
+ IsPaid bool `protobuf:"varint,9,opt,name=isPaid,proto3" json:"isPaid,omitempty"` // 是否收费礼物
}
func (x *UserSendGiftReq) Reset() {
*x = UserSendGiftReq{}
if protoimpl.UnsafeEnabled {
- mi := &file_user_center_proto_msgTypes[8]
+ mi := &file_user_center_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -517,7 +651,7 @@ func (x *UserSendGiftReq) String() string {
func (*UserSendGiftReq) ProtoMessage() {}
func (x *UserSendGiftReq) ProtoReflect() protoreflect.Message {
- mi := &file_user_center_proto_msgTypes[8]
+ mi := &file_user_center_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -530,7 +664,7 @@ func (x *UserSendGiftReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use UserSendGiftReq.ProtoReflect.Descriptor instead.
func (*UserSendGiftReq) Descriptor() ([]byte, []int) {
- return file_user_center_proto_rawDescGZIP(), []int{8}
+ return file_user_center_proto_rawDescGZIP(), []int{10}
}
func (x *UserSendGiftReq) GetPlatform() string {
@@ -540,6 +674,13 @@ func (x *UserSendGiftReq) GetPlatform() string {
return ""
}
+func (x *UserSendGiftReq) GetUserId() int64 {
+ if x != nil {
+ return x.UserId
+ }
+ return 0
+}
+
func (x *UserSendGiftReq) GetPUid() string {
if x != nil {
return x.PUid
@@ -589,19 +730,19 @@ func (x *UserSendGiftReq) GetIsPaid() bool {
return false
}
+// 用户送礼回复
type UserSendGiftResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- User *User `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` // 系统用户信息
Integral *ChangeIntegralResp `protobuf:"bytes,10,opt,name=integral,proto3" json:"integral,omitempty"` // 积分变动
}
func (x *UserSendGiftResp) Reset() {
*x = UserSendGiftResp{}
if protoimpl.UnsafeEnabled {
- mi := &file_user_center_proto_msgTypes[9]
+ mi := &file_user_center_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -614,7 +755,7 @@ func (x *UserSendGiftResp) String() string {
func (*UserSendGiftResp) ProtoMessage() {}
func (x *UserSendGiftResp) ProtoReflect() protoreflect.Message {
- mi := &file_user_center_proto_msgTypes[9]
+ mi := &file_user_center_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -627,14 +768,7 @@ func (x *UserSendGiftResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use UserSendGiftResp.ProtoReflect.Descriptor instead.
func (*UserSendGiftResp) Descriptor() ([]byte, []int) {
- return file_user_center_proto_rawDescGZIP(), []int{9}
-}
-
-func (x *UserSendGiftResp) GetUser() *User {
- if x != nil {
- return x.User
- }
- return nil
+ return file_user_center_proto_rawDescGZIP(), []int{11}
}
func (x *UserSendGiftResp) GetIntegral() *ChangeIntegralResp {
@@ -644,6 +778,7 @@ func (x *UserSendGiftResp) GetIntegral() *ChangeIntegralResp {
return nil
}
+// 用户购买舰长请求
type UserBuyNobilityReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -664,7 +799,7 @@ type UserBuyNobilityReq struct {
func (x *UserBuyNobilityReq) Reset() {
*x = UserBuyNobilityReq{}
if protoimpl.UnsafeEnabled {
- mi := &file_user_center_proto_msgTypes[10]
+ mi := &file_user_center_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -677,7 +812,7 @@ func (x *UserBuyNobilityReq) String() string {
func (*UserBuyNobilityReq) ProtoMessage() {}
func (x *UserBuyNobilityReq) ProtoReflect() protoreflect.Message {
- mi := &file_user_center_proto_msgTypes[10]
+ mi := &file_user_center_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -690,7 +825,7 @@ func (x *UserBuyNobilityReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use UserBuyNobilityReq.ProtoReflect.Descriptor instead.
func (*UserBuyNobilityReq) Descriptor() ([]byte, []int) {
- return file_user_center_proto_rawDescGZIP(), []int{10}
+ return file_user_center_proto_rawDescGZIP(), []int{12}
}
func (x *UserBuyNobilityReq) GetPlatform() string {
@@ -763,6 +898,7 @@ func (x *UserBuyNobilityReq) GetEndTime() int64 {
return 0
}
+// 用户购买舰长回复
type UserBuyNobilityResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -775,7 +911,7 @@ type UserBuyNobilityResp struct {
func (x *UserBuyNobilityResp) Reset() {
*x = UserBuyNobilityResp{}
if protoimpl.UnsafeEnabled {
- mi := &file_user_center_proto_msgTypes[11]
+ mi := &file_user_center_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -788,7 +924,7 @@ func (x *UserBuyNobilityResp) String() string {
func (*UserBuyNobilityResp) ProtoMessage() {}
func (x *UserBuyNobilityResp) ProtoReflect() protoreflect.Message {
- mi := &file_user_center_proto_msgTypes[11]
+ mi := &file_user_center_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -801,7 +937,7 @@ func (x *UserBuyNobilityResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use UserBuyNobilityResp.ProtoReflect.Descriptor instead.
func (*UserBuyNobilityResp) Descriptor() ([]byte, []int) {
- return file_user_center_proto_rawDescGZIP(), []int{11}
+ return file_user_center_proto_rawDescGZIP(), []int{13}
}
func (x *UserBuyNobilityResp) GetUser() *User {
@@ -832,7 +968,7 @@ type StatPvPKillReq struct {
func (x *StatPvPKillReq) Reset() {
*x = StatPvPKillReq{}
if protoimpl.UnsafeEnabled {
- mi := &file_user_center_proto_msgTypes[12]
+ mi := &file_user_center_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -845,7 +981,7 @@ func (x *StatPvPKillReq) String() string {
func (*StatPvPKillReq) ProtoMessage() {}
func (x *StatPvPKillReq) ProtoReflect() protoreflect.Message {
- mi := &file_user_center_proto_msgTypes[12]
+ mi := &file_user_center_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -858,7 +994,7 @@ func (x *StatPvPKillReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use StatPvPKillReq.ProtoReflect.Descriptor instead.
func (*StatPvPKillReq) Descriptor() ([]byte, []int) {
- return file_user_center_proto_rawDescGZIP(), []int{12}
+ return file_user_center_proto_rawDescGZIP(), []int{14}
}
func (x *StatPvPKillReq) GetUid() int64 {
@@ -895,7 +1031,7 @@ type StatPvPFirstBloodReq struct {
func (x *StatPvPFirstBloodReq) Reset() {
*x = StatPvPFirstBloodReq{}
if protoimpl.UnsafeEnabled {
- mi := &file_user_center_proto_msgTypes[13]
+ mi := &file_user_center_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -908,7 +1044,7 @@ func (x *StatPvPFirstBloodReq) String() string {
func (*StatPvPFirstBloodReq) ProtoMessage() {}
func (x *StatPvPFirstBloodReq) ProtoReflect() protoreflect.Message {
- mi := &file_user_center_proto_msgTypes[13]
+ mi := &file_user_center_proto_msgTypes[15]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -921,7 +1057,7 @@ func (x *StatPvPFirstBloodReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use StatPvPFirstBloodReq.ProtoReflect.Descriptor instead.
func (*StatPvPFirstBloodReq) Descriptor() ([]byte, []int) {
- return file_user_center_proto_rawDescGZIP(), []int{13}
+ return file_user_center_proto_rawDescGZIP(), []int{15}
}
func (x *StatPvPFirstBloodReq) GetUid() int64 {
@@ -953,7 +1089,7 @@ type StatPvPReportReq struct {
func (x *StatPvPReportReq) Reset() {
*x = StatPvPReportReq{}
if protoimpl.UnsafeEnabled {
- mi := &file_user_center_proto_msgTypes[14]
+ mi := &file_user_center_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -966,7 +1102,7 @@ func (x *StatPvPReportReq) String() string {
func (*StatPvPReportReq) ProtoMessage() {}
func (x *StatPvPReportReq) ProtoReflect() protoreflect.Message {
- mi := &file_user_center_proto_msgTypes[14]
+ mi := &file_user_center_proto_msgTypes[16]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -979,7 +1115,7 @@ func (x *StatPvPReportReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use StatPvPReportReq.ProtoReflect.Descriptor instead.
func (*StatPvPReportReq) Descriptor() ([]byte, []int) {
- return file_user_center_proto_rawDescGZIP(), []int{14}
+ return file_user_center_proto_rawDescGZIP(), []int{16}
}
func (x *StatPvPReportReq) GetWinCamp() int32 {
@@ -1010,6 +1146,62 @@ func (x *StatPvPReportReq) GetLostItems() []*StatPvPReportReq_Item {
return nil
}
+// 通知-PvP战报 回复
+type StatPvPReportResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ WinItems []*StatPvPReportResp_Item `protobuf:"bytes,3,rep,name=winItems,proto3" json:"winItems,omitempty"` // 获胜方数据
+ LostItems []*StatPvPReportResp_Item `protobuf:"bytes,4,rep,name=lostItems,proto3" json:"lostItems,omitempty"` // 战败方数据
+}
+
+func (x *StatPvPReportResp) Reset() {
+ *x = StatPvPReportResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_user_center_proto_msgTypes[17]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *StatPvPReportResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StatPvPReportResp) ProtoMessage() {}
+
+func (x *StatPvPReportResp) ProtoReflect() protoreflect.Message {
+ mi := &file_user_center_proto_msgTypes[17]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use StatPvPReportResp.ProtoReflect.Descriptor instead.
+func (*StatPvPReportResp) Descriptor() ([]byte, []int) {
+ return file_user_center_proto_rawDescGZIP(), []int{17}
+}
+
+func (x *StatPvPReportResp) GetWinItems() []*StatPvPReportResp_Item {
+ if x != nil {
+ return x.WinItems
+ }
+ return nil
+}
+
+func (x *StatPvPReportResp) GetLostItems() []*StatPvPReportResp_Item {
+ if x != nil {
+ return x.LostItems
+ }
+ return nil
+}
+
// rank
type RankPvpReq struct {
state protoimpl.MessageState
@@ -1023,7 +1215,7 @@ type RankPvpReq struct {
func (x *RankPvpReq) Reset() {
*x = RankPvpReq{}
if protoimpl.UnsafeEnabled {
- mi := &file_user_center_proto_msgTypes[15]
+ mi := &file_user_center_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1036,7 +1228,7 @@ func (x *RankPvpReq) String() string {
func (*RankPvpReq) ProtoMessage() {}
func (x *RankPvpReq) ProtoReflect() protoreflect.Message {
- mi := &file_user_center_proto_msgTypes[15]
+ mi := &file_user_center_proto_msgTypes[18]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1049,7 +1241,7 @@ func (x *RankPvpReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use RankPvpReq.ProtoReflect.Descriptor instead.
func (*RankPvpReq) Descriptor() ([]byte, []int) {
- return file_user_center_proto_rawDescGZIP(), []int{15}
+ return file_user_center_proto_rawDescGZIP(), []int{18}
}
func (x *RankPvpReq) GetType() int32 {
@@ -1078,7 +1270,7 @@ type RankPvpResp struct {
func (x *RankPvpResp) Reset() {
*x = RankPvpResp{}
if protoimpl.UnsafeEnabled {
- mi := &file_user_center_proto_msgTypes[16]
+ mi := &file_user_center_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1091,7 +1283,7 @@ func (x *RankPvpResp) String() string {
func (*RankPvpResp) ProtoMessage() {}
func (x *RankPvpResp) ProtoReflect() protoreflect.Message {
- mi := &file_user_center_proto_msgTypes[16]
+ mi := &file_user_center_proto_msgTypes[19]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1104,7 +1296,7 @@ func (x *RankPvpResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use RankPvpResp.ProtoReflect.Descriptor instead.
func (*RankPvpResp) Descriptor() ([]byte, []int) {
- return file_user_center_proto_rawDescGZIP(), []int{16}
+ return file_user_center_proto_rawDescGZIP(), []int{19}
}
func (x *RankPvpResp) GetType() int32 {
@@ -1136,7 +1328,7 @@ type StatPvPReportReq_Item struct {
func (x *StatPvPReportReq_Item) Reset() {
*x = StatPvPReportReq_Item{}
if protoimpl.UnsafeEnabled {
- mi := &file_user_center_proto_msgTypes[17]
+ mi := &file_user_center_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1149,7 +1341,7 @@ func (x *StatPvPReportReq_Item) String() string {
func (*StatPvPReportReq_Item) ProtoMessage() {}
func (x *StatPvPReportReq_Item) ProtoReflect() protoreflect.Message {
- mi := &file_user_center_proto_msgTypes[17]
+ mi := &file_user_center_proto_msgTypes[20]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1162,7 +1354,7 @@ func (x *StatPvPReportReq_Item) ProtoReflect() protoreflect.Message {
// Deprecated: Use StatPvPReportReq_Item.ProtoReflect.Descriptor instead.
func (*StatPvPReportReq_Item) Descriptor() ([]byte, []int) {
- return file_user_center_proto_rawDescGZIP(), []int{14, 0}
+ return file_user_center_proto_rawDescGZIP(), []int{16, 0}
}
func (x *StatPvPReportReq_Item) GetUid() int64 {
@@ -1200,6 +1392,61 @@ func (x *StatPvPReportReq_Item) GetDeKillUnit() int64 {
return 0
}
+type StatPvPReportResp_Item struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Uid int64 `protobuf:"varint,1,opt,name=uid,proto3" json:"uid,omitempty"` // 用户ID
+ AddonIntegral int64 `protobuf:"varint,2,opt,name=addonIntegral,proto3" json:"addonIntegral,omitempty"` // 本次获取的积分
+}
+
+func (x *StatPvPReportResp_Item) Reset() {
+ *x = StatPvPReportResp_Item{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_user_center_proto_msgTypes[21]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *StatPvPReportResp_Item) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StatPvPReportResp_Item) ProtoMessage() {}
+
+func (x *StatPvPReportResp_Item) ProtoReflect() protoreflect.Message {
+ mi := &file_user_center_proto_msgTypes[21]
+ 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 StatPvPReportResp_Item.ProtoReflect.Descriptor instead.
+func (*StatPvPReportResp_Item) Descriptor() ([]byte, []int) {
+ return file_user_center_proto_rawDescGZIP(), []int{17, 0}
+}
+
+func (x *StatPvPReportResp_Item) GetUid() int64 {
+ if x != nil {
+ return x.Uid
+ }
+ return 0
+}
+
+func (x *StatPvPReportResp_Item) GetAddonIntegral() int64 {
+ if x != nil {
+ return x.AddonIntegral
+ }
+ return 0
+}
+
type RankPvpResp_Item struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -1214,7 +1461,7 @@ type RankPvpResp_Item struct {
func (x *RankPvpResp_Item) Reset() {
*x = RankPvpResp_Item{}
if protoimpl.UnsafeEnabled {
- mi := &file_user_center_proto_msgTypes[18]
+ mi := &file_user_center_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1227,7 +1474,7 @@ func (x *RankPvpResp_Item) String() string {
func (*RankPvpResp_Item) ProtoMessage() {}
func (x *RankPvpResp_Item) ProtoReflect() protoreflect.Message {
- mi := &file_user_center_proto_msgTypes[18]
+ mi := &file_user_center_proto_msgTypes[22]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1240,7 +1487,7 @@ func (x *RankPvpResp_Item) ProtoReflect() protoreflect.Message {
// Deprecated: Use RankPvpResp_Item.ProtoReflect.Descriptor instead.
func (*RankPvpResp_Item) Descriptor() ([]byte, []int) {
- return file_user_center_proto_rawDescGZIP(), []int{16, 0}
+ return file_user_center_proto_rawDescGZIP(), []int{19, 0}
}
func (x *RankPvpResp_Item) GetUid() int64 {
@@ -1296,149 +1543,178 @@ var file_user_center_proto_rawDesc = []byte{
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x55, 0x69, 0x64, 0x22, 0x30, 0x0a, 0x10,
0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70,
0x12, 0x1c, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08,
- 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x24,
- 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06,
- 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73,
- 0x65, 0x72, 0x49, 0x64, 0x22, 0x43, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e,
- 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65,
- 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49,
- 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x03, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x60, 0x0a, 0x12, 0x43, 0x68, 0x61,
- 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12,
- 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
- 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67,
- 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12,
- 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x03, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x22, 0x46, 0x0a, 0x10, 0x55,
- 0x73, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12,
- 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
- 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67,
- 0x72, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67,
- 0x72, 0x61, 0x6c, 0x22, 0xcd, 0x01, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64,
- 0x47, 0x69, 0x66, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66,
- 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66,
- 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x04, 0x70, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49,
- 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12,
- 0x16, 0x0a, 0x06, 0x67, 0x69, 0x66, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52,
- 0x06, 0x67, 0x69, 0x66, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x69, 0x66, 0x74, 0x4e,
- 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x69, 0x66, 0x74, 0x4e,
- 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03,
- 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07,
- 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x69,
- 0x73, 0x50, 0x61, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x50,
- 0x61, 0x69, 0x64, 0x22, 0x64, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x47,
- 0x69, 0x66, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52,
- 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61,
- 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x61,
- 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x52,
- 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x22, 0x86, 0x02, 0x0a, 0x12, 0x55, 0x73,
- 0x65, 0x72, 0x42, 0x75, 0x79, 0x4e, 0x6f, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71,
+ 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x23,
+ 0x0a, 0x09, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75,
+ 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65,
+ 0x72, 0x49, 0x64, 0x22, 0x24, 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x73,
+ 0x70, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x43, 0x0a, 0x11, 0x43, 0x68, 0x61,
+ 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x16,
+ 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06,
+ 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x60,
+ 0x0a, 0x12, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c,
+ 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06,
+ 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x68,
+ 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c,
+ 0x22, 0x46, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c,
+ 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08,
+ 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08,
+ 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x22, 0xa1, 0x01, 0x0a, 0x0f, 0x55, 0x73, 0x65,
+ 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07,
+ 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73,
+ 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x6e, 0x74, 0x65,
+ 0x67, 0x72, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03,
+ 0x52, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65,
+ 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x03, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x12, 0x1e, 0x0a, 0x0a,
+ 0x69, 0x73, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x0a, 0x69, 0x73, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x22, 0xe5, 0x01, 0x0a,
+ 0x0f, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x69, 0x66, 0x74, 0x52, 0x65, 0x71,
0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04,
- 0x70, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x55, 0x69, 0x64,
- 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x69, 0x66, 0x74,
- 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x67, 0x69, 0x66, 0x74, 0x49, 0x64,
- 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x69, 0x66, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x08, 0x67, 0x69, 0x66, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03,
- 0x6e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x14,
- 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x70,
- 0x72, 0x69, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x08, 0x20,
- 0x01, 0x28, 0x03, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74,
- 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73,
- 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54,
- 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69,
- 0x6d, 0x65, 0x22, 0x67, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x42, 0x75, 0x79, 0x4e, 0x6f, 0x62,
- 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x04, 0x75, 0x73, 0x65,
- 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65,
- 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67,
- 0x72, 0x61, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x43,
- 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x52, 0x65, 0x73,
- 0x70, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x22, 0x5e, 0x0a, 0x0e, 0x53,
- 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x4b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a,
- 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12,
- 0x1c, 0x0a, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x03, 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x12, 0x1c, 0x0a,
- 0x09, 0x69, 0x73, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08,
- 0x52, 0x09, 0x69, 0x73, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x3c, 0x0a, 0x14, 0x53,
- 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x46, 0x69, 0x72, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x6f, 0x64,
- 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
- 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xc7, 0x02, 0x0a, 0x10, 0x53, 0x74,
- 0x61, 0x74, 0x50, 0x76, 0x50, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x18,
- 0x0a, 0x07, 0x77, 0x69, 0x6e, 0x43, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
- 0x07, 0x77, 0x69, 0x6e, 0x43, 0x61, 0x6d, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x65,
- 0x72, 0x61, 0x6c, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x67, 0x65,
- 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x55, 0x69, 0x64, 0x12, 0x35, 0x0a, 0x08, 0x77, 0x69, 0x6e, 0x49,
- 0x74, 0x65, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x62, 0x2e,
- 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71,
- 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x08, 0x77, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12,
- 0x37, 0x0a, 0x09, 0x6c, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03,
- 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x52,
- 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x09, 0x6c,
- 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x88, 0x01, 0x0a, 0x04, 0x49, 0x74, 0x65,
- 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03,
- 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x03, 0x52, 0x06, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64,
- 0x65, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x64,
- 0x65, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x69, 0x6c, 0x6c, 0x55,
- 0x6e, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6b, 0x69, 0x6c, 0x6c, 0x55,
- 0x6e, 0x69, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x4b, 0x69, 0x6c, 0x6c, 0x55, 0x6e, 0x69,
- 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x64, 0x65, 0x4b, 0x69, 0x6c, 0x6c, 0x55,
- 0x6e, 0x69, 0x74, 0x22, 0x34, 0x0a, 0x0a, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x52, 0x65,
- 0x71, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
- 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x6f, 0x70, 0x4e, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x6f, 0x70, 0x4e, 0x22, 0xab, 0x01, 0x0a, 0x0b, 0x52, 0x61,
- 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70,
- 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a,
- 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70,
- 0x62, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x49, 0x74,
- 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x5c, 0x0a, 0x04, 0x49, 0x74, 0x65,
- 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03,
- 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x05, 0x75, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f,
- 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12,
- 0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x32, 0xc6, 0x04, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72,
- 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x14, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65,
- 0x76, 0x65, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x12, 0x13,
- 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x55, 0x73, 0x65, 0x72,
- 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72,
- 0x6d, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x0f, 0x67, 0x65, 0x74,
- 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x42, 0x79, 0x50, 0x55, 0x69, 0x64, 0x12, 0x13, 0x2e, 0x70,
- 0x62, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65,
- 0x71, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x73,
- 0x70, 0x12, 0x3f, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67,
- 0x72, 0x61, 0x6c, 0x12, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49,
- 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x70, 0x62, 0x2e,
+ 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06,
+ 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73,
+ 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x04, 0x70, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d,
+ 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64,
+ 0x12, 0x16, 0x0a, 0x06, 0x67, 0x69, 0x66, 0x74, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03,
+ 0x52, 0x06, 0x67, 0x69, 0x66, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x69, 0x66, 0x74,
+ 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x69, 0x66, 0x74,
+ 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28,
+ 0x03, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18,
+ 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06,
+ 0x69, 0x73, 0x50, 0x61, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73,
+ 0x50, 0x61, 0x69, 0x64, 0x22, 0x46, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64,
+ 0x47, 0x69, 0x66, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x32, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65,
+ 0x67, 0x72, 0x61, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x62, 0x2e,
0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x52, 0x65,
- 0x73, 0x70, 0x12, 0x37, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x74,
- 0x65, 0x67, 0x72, 0x61, 0x6c, 0x12, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49,
- 0x64, 0x52, 0x65, 0x73, 0x70, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49,
- 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, 0x0c, 0x75,
- 0x73, 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x69, 0x66, 0x74, 0x12, 0x13, 0x2e, 0x70, 0x62,
- 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x69, 0x66, 0x74, 0x52, 0x65, 0x71,
- 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x69,
- 0x66, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x42, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x42, 0x75,
- 0x79, 0x4e, 0x6f, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x55,
- 0x73, 0x65, 0x72, 0x42, 0x75, 0x79, 0x4e, 0x6f, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65,
- 0x71, 0x1a, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x42, 0x75, 0x79, 0x4e, 0x6f,
- 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2c, 0x0a, 0x0b, 0x73, 0x74,
- 0x61, 0x74, 0x50, 0x76, 0x70, 0x4b, 0x69, 0x6c, 0x6c, 0x12, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x53,
- 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x4b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e,
- 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x38, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x74,
- 0x50, 0x76, 0x70, 0x46, 0x69, 0x72, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x6f, 0x64, 0x12, 0x18, 0x2e,
- 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x46, 0x69, 0x72, 0x73, 0x74, 0x42,
- 0x6c, 0x6f, 0x6f, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70,
- 0x74, 0x79, 0x12, 0x30, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x50, 0x76, 0x70, 0x52, 0x65, 0x70,
- 0x6f, 0x72, 0x74, 0x12, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50,
- 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x45,
- 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x07, 0x72, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x12,
- 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x52, 0x65, 0x71, 0x1a,
- 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x52, 0x65, 0x73, 0x70,
- 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x73, 0x70, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x22, 0x86, 0x02, 0x0a,
+ 0x12, 0x55, 0x73, 0x65, 0x72, 0x42, 0x75, 0x79, 0x4e, 0x6f, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79,
+ 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12,
+ 0x12, 0x0a, 0x04, 0x70, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70,
+ 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x67,
+ 0x69, 0x66, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x67, 0x69, 0x66,
+ 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x69, 0x66, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18,
+ 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x69, 0x66, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12,
+ 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6e, 0x75,
+ 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03,
+ 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c,
+ 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1c, 0x0a,
+ 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03,
+ 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65,
+ 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e,
+ 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x67, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x42, 0x75, 0x79,
+ 0x4e, 0x6f, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x04,
+ 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e,
+ 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x08, 0x69, 0x6e,
+ 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70,
+ 0x62, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c,
+ 0x52, 0x65, 0x73, 0x70, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x22, 0x5e,
+ 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x4b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x71,
+ 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75,
+ 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64,
+ 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x3c,
+ 0x0a, 0x14, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x46, 0x69, 0x72, 0x73, 0x74, 0x42, 0x6c,
+ 0x6f, 0x6f, 0x64, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xc7, 0x02, 0x0a,
+ 0x10, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65,
+ 0x71, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x69, 0x6e, 0x43, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x05, 0x52, 0x07, 0x77, 0x69, 0x6e, 0x43, 0x61, 0x6d, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x67,
+ 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52,
+ 0x0a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x55, 0x69, 0x64, 0x12, 0x35, 0x0a, 0x08, 0x77,
+ 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e,
+ 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74,
+ 0x52, 0x65, 0x71, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x08, 0x77, 0x69, 0x6e, 0x49, 0x74, 0x65,
+ 0x6d, 0x73, 0x12, 0x37, 0x0a, 0x09, 0x6c, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18,
+ 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50,
+ 0x76, 0x50, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x2e, 0x49, 0x74, 0x65, 0x6d,
+ 0x52, 0x09, 0x6c, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x88, 0x01, 0x0a, 0x04,
+ 0x49, 0x74, 0x65, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x03, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1a,
+ 0x0a, 0x08, 0x64, 0x65, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03,
+ 0x52, 0x08, 0x64, 0x65, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x69,
+ 0x6c, 0x6c, 0x55, 0x6e, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6b, 0x69,
+ 0x6c, 0x6c, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x4b, 0x69, 0x6c, 0x6c,
+ 0x55, 0x6e, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x64, 0x65, 0x4b, 0x69,
+ 0x6c, 0x6c, 0x55, 0x6e, 0x69, 0x74, 0x22, 0xc5, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x61, 0x74, 0x50,
+ 0x76, 0x50, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x08,
+ 0x77, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a,
+ 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x52, 0x65, 0x70, 0x6f, 0x72,
+ 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x08, 0x77, 0x69, 0x6e, 0x49,
+ 0x74, 0x65, 0x6d, 0x73, 0x12, 0x38, 0x0a, 0x09, 0x6c, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d,
+ 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61,
+ 0x74, 0x50, 0x76, 0x50, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x49,
+ 0x74, 0x65, 0x6d, 0x52, 0x09, 0x6c, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x3e,
+ 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x64, 0x64, 0x6f,
+ 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52,
+ 0x0d, 0x61, 0x64, 0x64, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x22, 0x34,
+ 0x0a, 0x0a, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04,
+ 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65,
+ 0x12, 0x12, 0x0a, 0x04, 0x74, 0x6f, 0x70, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04,
+ 0x74, 0x6f, 0x70, 0x4e, 0x22, 0xab, 0x01, 0x0a, 0x0b, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70,
+ 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d,
+ 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x61, 0x6e,
+ 0x6b, 0x50, 0x76, 0x70, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69,
+ 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x5c, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x10, 0x0a, 0x03,
+ 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x14,
+ 0x0a, 0x05, 0x75, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x75,
+ 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x76,
+ 0x61, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74,
+ 0x61, 0x72, 0x32, 0x84, 0x05, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65,
+ 0x72, 0x12, 0x41, 0x0a, 0x14, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x50, 0x6c, 0x61,
+ 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x12, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x50,
+ 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14,
+ 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x55, 0x73, 0x65, 0x72,
+ 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x0f, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49,
+ 0x64, 0x42, 0x79, 0x50, 0x55, 0x69, 0x64, 0x12, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x6c, 0x61,
+ 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x70,
+ 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x0e,
+ 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x12, 0x15,
+ 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72,
+ 0x61, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67,
+ 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a,
+ 0x0f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c,
+ 0x12, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a,
+ 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61,
+ 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x43, 0x68, 0x65,
+ 0x63, 0x6b, 0x49, 0x6e, 0x12, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64,
+ 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x68, 0x65,
+ 0x63, 0x6b, 0x49, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72,
+ 0x53, 0x65, 0x6e, 0x64, 0x47, 0x69, 0x66, 0x74, 0x12, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73,
+ 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x69, 0x66, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e,
+ 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x69, 0x66, 0x74, 0x52,
+ 0x65, 0x73, 0x70, 0x12, 0x42, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x42, 0x75, 0x79, 0x4e, 0x6f,
+ 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72,
+ 0x42, 0x75, 0x79, 0x4e, 0x6f, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x17,
+ 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x42, 0x75, 0x79, 0x4e, 0x6f, 0x62, 0x69, 0x6c,
+ 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2c, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x50,
+ 0x76, 0x70, 0x4b, 0x69, 0x6c, 0x6c, 0x12, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74,
+ 0x50, 0x76, 0x50, 0x4b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x70, 0x62, 0x2e,
+ 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x38, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x74, 0x50, 0x76, 0x70,
+ 0x46, 0x69, 0x72, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x6f, 0x64, 0x12, 0x18, 0x2e, 0x70, 0x62, 0x2e,
+ 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x46, 0x69, 0x72, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x6f,
+ 0x64, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12,
+ 0x3c, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x50, 0x76, 0x70, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74,
+ 0x12, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x52, 0x65, 0x70,
+ 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74,
+ 0x50, 0x76, 0x50, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a,
+ 0x07, 0x72, 0x61, 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x12, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x61,
+ 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x61,
+ 0x6e, 0x6b, 0x50, 0x76, 0x70, 0x52, 0x65, 0x73, 0x70, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70,
+ 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -1453,62 +1729,69 @@ func file_user_center_proto_rawDescGZIP() []byte {
return file_user_center_proto_rawDescData
}
-var file_user_center_proto_msgTypes = make([]protoimpl.MessageInfo, 19)
+var file_user_center_proto_msgTypes = make([]protoimpl.MessageInfo, 23)
var file_user_center_proto_goTypes = []interface{}{
- (*User)(nil), // 0: pb.User
- (*Empty)(nil), // 1: pb.Empty
- (*PlatformUserReq)(nil), // 2: pb.PlatformUserReq
- (*PlatformUserResp)(nil), // 3: pb.PlatformUserResp
- (*UserIdResp)(nil), // 4: pb.UserIdResp
- (*ChangeIntegralReq)(nil), // 5: pb.ChangeIntegralReq
- (*ChangeIntegralResp)(nil), // 6: pb.ChangeIntegralResp
- (*UserIntegralResp)(nil), // 7: pb.UserIntegralResp
- (*UserSendGiftReq)(nil), // 8: pb.UserSendGiftReq
- (*UserSendGiftResp)(nil), // 9: pb.UserSendGiftResp
- (*UserBuyNobilityReq)(nil), // 10: pb.UserBuyNobilityReq
- (*UserBuyNobilityResp)(nil), // 11: pb.UserBuyNobilityResp
- (*StatPvPKillReq)(nil), // 12: pb.StatPvPKillReq
- (*StatPvPFirstBloodReq)(nil), // 13: pb.StatPvPFirstBloodReq
- (*StatPvPReportReq)(nil), // 14: pb.StatPvPReportReq
- (*RankPvpReq)(nil), // 15: pb.RankPvpReq
- (*RankPvpResp)(nil), // 16: pb.RankPvpResp
- (*StatPvPReportReq_Item)(nil), // 17: pb.StatPvPReportReq.Item
- (*RankPvpResp_Item)(nil), // 18: pb.RankPvpResp.Item
+ (*User)(nil), // 0: pb.User
+ (*Empty)(nil), // 1: pb.Empty
+ (*PlatformUserReq)(nil), // 2: pb.PlatformUserReq
+ (*PlatformUserResp)(nil), // 3: pb.PlatformUserResp
+ (*UserIdReq)(nil), // 4: pb.UserIdReq
+ (*UserIdResp)(nil), // 5: pb.UserIdResp
+ (*ChangeIntegralReq)(nil), // 6: pb.ChangeIntegralReq
+ (*ChangeIntegralResp)(nil), // 7: pb.ChangeIntegralResp
+ (*UserIntegralResp)(nil), // 8: pb.UserIntegralResp
+ (*UserCheckInResp)(nil), // 9: pb.UserCheckInResp
+ (*UserSendGiftReq)(nil), // 10: pb.UserSendGiftReq
+ (*UserSendGiftResp)(nil), // 11: pb.UserSendGiftResp
+ (*UserBuyNobilityReq)(nil), // 12: pb.UserBuyNobilityReq
+ (*UserBuyNobilityResp)(nil), // 13: pb.UserBuyNobilityResp
+ (*StatPvPKillReq)(nil), // 14: pb.StatPvPKillReq
+ (*StatPvPFirstBloodReq)(nil), // 15: pb.StatPvPFirstBloodReq
+ (*StatPvPReportReq)(nil), // 16: pb.StatPvPReportReq
+ (*StatPvPReportResp)(nil), // 17: pb.StatPvPReportResp
+ (*RankPvpReq)(nil), // 18: pb.RankPvpReq
+ (*RankPvpResp)(nil), // 19: pb.RankPvpResp
+ (*StatPvPReportReq_Item)(nil), // 20: pb.StatPvPReportReq.Item
+ (*StatPvPReportResp_Item)(nil), // 21: pb.StatPvPReportResp.Item
+ (*RankPvpResp_Item)(nil), // 22: pb.RankPvpResp.Item
}
var file_user_center_proto_depIdxs = []int32{
0, // 0: pb.PlatformUserResp.user:type_name -> pb.User
- 0, // 1: pb.UserSendGiftResp.user:type_name -> pb.User
- 6, // 2: pb.UserSendGiftResp.integral:type_name -> pb.ChangeIntegralResp
- 0, // 3: pb.UserBuyNobilityResp.user:type_name -> pb.User
- 6, // 4: pb.UserBuyNobilityResp.integral:type_name -> pb.ChangeIntegralResp
- 17, // 5: pb.StatPvPReportReq.winItems:type_name -> pb.StatPvPReportReq.Item
- 17, // 6: pb.StatPvPReportReq.lostItems:type_name -> pb.StatPvPReportReq.Item
- 18, // 7: pb.RankPvpResp.items:type_name -> pb.RankPvpResp.Item
- 2, // 8: pb.userCenter.retrievePlatformUser:input_type -> pb.PlatformUserReq
- 2, // 9: pb.userCenter.getUserIdByPUid:input_type -> pb.PlatformUserReq
- 5, // 10: pb.userCenter.ChangeIntegral:input_type -> pb.ChangeIntegralReq
- 4, // 11: pb.userCenter.GetUserIntegral:input_type -> pb.UserIdResp
- 8, // 12: pb.userCenter.userSendGift:input_type -> pb.UserSendGiftReq
- 10, // 13: pb.userCenter.userBuyNobility:input_type -> pb.UserBuyNobilityReq
- 12, // 14: pb.userCenter.statPvpKill:input_type -> pb.StatPvPKillReq
- 13, // 15: pb.userCenter.statPvpFirstBlood:input_type -> pb.StatPvPFirstBloodReq
- 14, // 16: pb.userCenter.statPvpReport:input_type -> pb.StatPvPReportReq
- 15, // 17: pb.userCenter.rankPvp:input_type -> pb.RankPvpReq
- 3, // 18: pb.userCenter.retrievePlatformUser:output_type -> pb.PlatformUserResp
- 4, // 19: pb.userCenter.getUserIdByPUid:output_type -> pb.UserIdResp
- 6, // 20: pb.userCenter.ChangeIntegral:output_type -> pb.ChangeIntegralResp
- 7, // 21: pb.userCenter.GetUserIntegral:output_type -> pb.UserIntegralResp
- 9, // 22: pb.userCenter.userSendGift:output_type -> pb.UserSendGiftResp
- 11, // 23: pb.userCenter.userBuyNobility:output_type -> pb.UserBuyNobilityResp
- 1, // 24: pb.userCenter.statPvpKill:output_type -> pb.Empty
- 1, // 25: pb.userCenter.statPvpFirstBlood:output_type -> pb.Empty
- 1, // 26: pb.userCenter.statPvpReport:output_type -> pb.Empty
- 16, // 27: pb.userCenter.rankPvp:output_type -> pb.RankPvpResp
- 18, // [18:28] is the sub-list for method output_type
- 8, // [8:18] is the sub-list for method input_type
- 8, // [8:8] is the sub-list for extension type_name
- 8, // [8:8] is the sub-list for extension extendee
- 0, // [0:8] is the sub-list for field type_name
+ 7, // 1: pb.UserSendGiftResp.integral:type_name -> pb.ChangeIntegralResp
+ 0, // 2: pb.UserBuyNobilityResp.user:type_name -> pb.User
+ 7, // 3: pb.UserBuyNobilityResp.integral:type_name -> pb.ChangeIntegralResp
+ 20, // 4: pb.StatPvPReportReq.winItems:type_name -> pb.StatPvPReportReq.Item
+ 20, // 5: pb.StatPvPReportReq.lostItems:type_name -> pb.StatPvPReportReq.Item
+ 21, // 6: pb.StatPvPReportResp.winItems:type_name -> pb.StatPvPReportResp.Item
+ 21, // 7: pb.StatPvPReportResp.lostItems:type_name -> pb.StatPvPReportResp.Item
+ 22, // 8: pb.RankPvpResp.items:type_name -> pb.RankPvpResp.Item
+ 2, // 9: pb.userCenter.retrievePlatformUser:input_type -> pb.PlatformUserReq
+ 2, // 10: pb.userCenter.getUserIdByPUid:input_type -> pb.PlatformUserReq
+ 6, // 11: pb.userCenter.ChangeIntegral:input_type -> pb.ChangeIntegralReq
+ 4, // 12: pb.userCenter.GetUserIntegral:input_type -> pb.UserIdReq
+ 4, // 13: pb.userCenter.UserCheckIn:input_type -> pb.UserIdReq
+ 10, // 14: pb.userCenter.userSendGift:input_type -> pb.UserSendGiftReq
+ 12, // 15: pb.userCenter.userBuyNobility:input_type -> pb.UserBuyNobilityReq
+ 14, // 16: pb.userCenter.statPvpKill:input_type -> pb.StatPvPKillReq
+ 15, // 17: pb.userCenter.statPvpFirstBlood:input_type -> pb.StatPvPFirstBloodReq
+ 16, // 18: pb.userCenter.statPvpReport:input_type -> pb.StatPvPReportReq
+ 18, // 19: pb.userCenter.rankPvp:input_type -> pb.RankPvpReq
+ 3, // 20: pb.userCenter.retrievePlatformUser:output_type -> pb.PlatformUserResp
+ 5, // 21: pb.userCenter.getUserIdByPUid:output_type -> pb.UserIdResp
+ 7, // 22: pb.userCenter.ChangeIntegral:output_type -> pb.ChangeIntegralResp
+ 8, // 23: pb.userCenter.GetUserIntegral:output_type -> pb.UserIntegralResp
+ 9, // 24: pb.userCenter.UserCheckIn:output_type -> pb.UserCheckInResp
+ 11, // 25: pb.userCenter.userSendGift:output_type -> pb.UserSendGiftResp
+ 13, // 26: pb.userCenter.userBuyNobility:output_type -> pb.UserBuyNobilityResp
+ 1, // 27: pb.userCenter.statPvpKill:output_type -> pb.Empty
+ 1, // 28: pb.userCenter.statPvpFirstBlood:output_type -> pb.Empty
+ 17, // 29: pb.userCenter.statPvpReport:output_type -> pb.StatPvPReportResp
+ 19, // 30: pb.userCenter.rankPvp:output_type -> pb.RankPvpResp
+ 20, // [20:31] is the sub-list for method output_type
+ 9, // [9:20] 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_user_center_proto_init() }
@@ -1566,7 +1849,7 @@ func file_user_center_proto_init() {
}
}
file_user_center_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*UserIdResp); i {
+ switch v := v.(*UserIdReq); i {
case 0:
return &v.state
case 1:
@@ -1578,7 +1861,7 @@ func file_user_center_proto_init() {
}
}
file_user_center_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ChangeIntegralReq); i {
+ switch v := v.(*UserIdResp); i {
case 0:
return &v.state
case 1:
@@ -1590,7 +1873,7 @@ func file_user_center_proto_init() {
}
}
file_user_center_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ChangeIntegralResp); i {
+ switch v := v.(*ChangeIntegralReq); i {
case 0:
return &v.state
case 1:
@@ -1602,7 +1885,7 @@ func file_user_center_proto_init() {
}
}
file_user_center_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*UserIntegralResp); i {
+ switch v := v.(*ChangeIntegralResp); i {
case 0:
return &v.state
case 1:
@@ -1614,7 +1897,7 @@ func file_user_center_proto_init() {
}
}
file_user_center_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*UserSendGiftReq); i {
+ switch v := v.(*UserIntegralResp); i {
case 0:
return &v.state
case 1:
@@ -1626,7 +1909,7 @@ func file_user_center_proto_init() {
}
}
file_user_center_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*UserSendGiftResp); i {
+ switch v := v.(*UserCheckInResp); i {
case 0:
return &v.state
case 1:
@@ -1638,7 +1921,7 @@ func file_user_center_proto_init() {
}
}
file_user_center_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*UserBuyNobilityReq); i {
+ switch v := v.(*UserSendGiftReq); i {
case 0:
return &v.state
case 1:
@@ -1650,7 +1933,7 @@ func file_user_center_proto_init() {
}
}
file_user_center_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*UserBuyNobilityResp); i {
+ switch v := v.(*UserSendGiftResp); i {
case 0:
return &v.state
case 1:
@@ -1662,7 +1945,7 @@ func file_user_center_proto_init() {
}
}
file_user_center_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*StatPvPKillReq); i {
+ switch v := v.(*UserBuyNobilityReq); i {
case 0:
return &v.state
case 1:
@@ -1674,7 +1957,7 @@ func file_user_center_proto_init() {
}
}
file_user_center_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*StatPvPFirstBloodReq); i {
+ switch v := v.(*UserBuyNobilityResp); i {
case 0:
return &v.state
case 1:
@@ -1686,7 +1969,7 @@ func file_user_center_proto_init() {
}
}
file_user_center_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*StatPvPReportReq); i {
+ switch v := v.(*StatPvPKillReq); i {
case 0:
return &v.state
case 1:
@@ -1698,7 +1981,7 @@ func file_user_center_proto_init() {
}
}
file_user_center_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*RankPvpReq); i {
+ switch v := v.(*StatPvPFirstBloodReq); i {
case 0:
return &v.state
case 1:
@@ -1710,7 +1993,7 @@ func file_user_center_proto_init() {
}
}
file_user_center_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*RankPvpResp); i {
+ switch v := v.(*StatPvPReportReq); i {
case 0:
return &v.state
case 1:
@@ -1722,7 +2005,7 @@ func file_user_center_proto_init() {
}
}
file_user_center_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*StatPvPReportReq_Item); i {
+ switch v := v.(*StatPvPReportResp); i {
case 0:
return &v.state
case 1:
@@ -1734,6 +2017,54 @@ func file_user_center_proto_init() {
}
}
file_user_center_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*RankPvpReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_user_center_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*RankPvpResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_user_center_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*StatPvPReportReq_Item); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_user_center_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*StatPvPReportResp_Item); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_user_center_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RankPvpResp_Item); i {
case 0:
return &v.state
@@ -1752,7 +2083,7 @@ func file_user_center_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_user_center_proto_rawDesc,
NumEnums: 0,
- NumMessages: 19,
+ NumMessages: 23,
NumExtensions: 0,
NumServices: 1,
},
diff --git a/app/user_center/pb/user_center.proto b/app/user_center/pb/user_center.proto
index 5879091..07827f0 100644
--- a/app/user_center/pb/user_center.proto
+++ b/app/user_center/pb/user_center.proto
@@ -29,42 +29,63 @@ message PlatformUserResp {
User user = 1;
}
+// 用户ID请求
+message UserIdReq {
+ int64 userId = 1;
+}
+
+// 用户ID回复
message UserIdResp {
int64 userId = 1;
}
+// 变更积分请求
message ChangeIntegralReq {
int64 userId = 1; // 系统用户ID
int64 change = 2; // 变更数量
}
+// 变更积分回复
message ChangeIntegralResp {
int64 userId = 1; // 系统用户ID
int64 change = 2; // 本次变更积分数量,负数为扣减
int64 integral = 3; // 用户当前总积分
}
+// 用户积分回复
message UserIntegralResp {
int64 userId = 1; // 用户ID
int64 integral = 2; // 用户当前总积分
}
+// 用户打卡(签到)回复
+message UserCheckInResp {
+ bool success = 1; // 成功与否
+ string msg = 2; // 消息
+ int64 integralChange = 3; // 积分变动量
+ int64 integral = 4; // 变动后的积分量
+ bool isCritical = 5; // 是否发生了暴击奖励
+}
+
+// 用户送礼请求
message UserSendGiftReq {
string platform = 1; // 平台
- string pUid = 2; // 平台用户ID
- string roomId = 3; // 直播间ID
- int64 giftId = 4; // 礼物ID
- string giftName = 5; // 礼物名
- int64 num = 6; // 赠送数量
- int64 price = 7; // 礼物单价(系统不存在对应礼物数据时使用)
- bool isPaid = 8; // 是否收费礼物
+ int64 userId = 2; // 系统用户ID
+ string pUid = 3; // 平台用户ID
+ string roomId = 4; // 直播间ID
+ int64 giftId = 5; // 礼物ID
+ string giftName = 6; // 礼物名
+ int64 num = 7; // 赠送数量
+ int64 price = 8; // 礼物单价(系统不存在对应礼物数据时使用)
+ bool isPaid = 9; // 是否收费礼物
}
+// 用户送礼回复
message UserSendGiftResp {
- User user = 1; // 系统用户信息
ChangeIntegralResp integral = 10; // 积分变动
}
+// 用户购买舰长请求
message UserBuyNobilityReq {
string platform = 1; // 平台
string pUid = 2; // 平台用户ID
@@ -78,6 +99,7 @@ message UserBuyNobilityReq {
int64 endTime = 10; // 结束时间
}
+// 用户购买舰长回复
message UserBuyNobilityResp {
User user = 1; // 系统用户信息
ChangeIntegralResp integral = 10; // 积分变动
@@ -111,6 +133,16 @@ message StatPvPReportReq {
repeated Item lostItems = 4; // 战败方数据
}
+// 通知-PvP战报 回复
+message StatPvPReportResp {
+ message Item {
+ int64 uid = 1; // 用户ID
+ int64 addonIntegral = 2; // 本次获取的积分
+ }
+ repeated Item winItems = 3; // 获胜方数据
+ repeated Item lostItems = 4; // 战败方数据
+}
+
// rank
message RankPvpReq {
int32 type = 1; // rank类型
@@ -141,7 +173,9 @@ service userCenter {
//ChangeIntegral 新增用户积分
rpc ChangeIntegral(ChangeIntegralReq) returns (ChangeIntegralResp);
//GetUserIntegral 获取用户积分
- rpc GetUserIntegral(UserIdResp) returns (UserIntegralResp);
+ rpc GetUserIntegral(UserIdReq) returns (UserIntegralResp);
+ //UserCheckIn 用户签到|打卡
+ rpc UserCheckIn(UserIdReq) returns (UserCheckInResp);
/// @ZeroGroup: gift
@@ -153,7 +187,7 @@ service userCenter {
rpc statPvpKill(StatPvPKillReq) returns (Empty);
rpc statPvpFirstBlood(StatPvPFirstBloodReq) returns (Empty);
- rpc statPvpReport(StatPvPReportReq) returns (Empty);
+ rpc statPvpReport(StatPvPReportReq) returns (StatPvPReportResp);
/// @ZeroGroup: rank
diff --git a/app/user_center/pb/user_center_grpc.pb.go b/app/user_center/pb/user_center_grpc.pb.go
index d86ebed..e95fea4 100644
--- a/app/user_center/pb/user_center_grpc.pb.go
+++ b/app/user_center/pb/user_center_grpc.pb.go
@@ -29,13 +29,15 @@ type UserCenterClient interface {
//ChangeIntegral 新增用户积分
ChangeIntegral(ctx context.Context, in *ChangeIntegralReq, opts ...grpc.CallOption) (*ChangeIntegralResp, error)
//GetUserIntegral 获取用户积分
- GetUserIntegral(ctx context.Context, in *UserIdResp, opts ...grpc.CallOption) (*UserIntegralResp, error)
+ GetUserIntegral(ctx context.Context, in *UserIdReq, opts ...grpc.CallOption) (*UserIntegralResp, error)
+ //UserCheckIn 用户签到|打卡
+ UserCheckIn(ctx context.Context, in *UserIdReq, opts ...grpc.CallOption) (*UserCheckInResp, error)
// UserSendGift 用户赠送礼物
UserSendGift(ctx context.Context, in *UserSendGiftReq, opts ...grpc.CallOption) (*UserSendGiftResp, error)
UserBuyNobility(ctx context.Context, in *UserBuyNobilityReq, opts ...grpc.CallOption) (*UserBuyNobilityResp, error)
StatPvpKill(ctx context.Context, in *StatPvPKillReq, opts ...grpc.CallOption) (*Empty, error)
StatPvpFirstBlood(ctx context.Context, in *StatPvPFirstBloodReq, opts ...grpc.CallOption) (*Empty, error)
- StatPvpReport(ctx context.Context, in *StatPvPReportReq, opts ...grpc.CallOption) (*Empty, error)
+ StatPvpReport(ctx context.Context, in *StatPvPReportReq, opts ...grpc.CallOption) (*StatPvPReportResp, error)
// rankPvp pvp排行
RankPvp(ctx context.Context, in *RankPvpReq, opts ...grpc.CallOption) (*RankPvpResp, error)
}
@@ -75,7 +77,7 @@ func (c *userCenterClient) ChangeIntegral(ctx context.Context, in *ChangeIntegra
return out, nil
}
-func (c *userCenterClient) GetUserIntegral(ctx context.Context, in *UserIdResp, opts ...grpc.CallOption) (*UserIntegralResp, error) {
+func (c *userCenterClient) GetUserIntegral(ctx context.Context, in *UserIdReq, opts ...grpc.CallOption) (*UserIntegralResp, error) {
out := new(UserIntegralResp)
err := c.cc.Invoke(ctx, "/pb.userCenter/GetUserIntegral", in, out, opts...)
if err != nil {
@@ -84,6 +86,15 @@ func (c *userCenterClient) GetUserIntegral(ctx context.Context, in *UserIdResp,
return out, nil
}
+func (c *userCenterClient) UserCheckIn(ctx context.Context, in *UserIdReq, opts ...grpc.CallOption) (*UserCheckInResp, error) {
+ out := new(UserCheckInResp)
+ err := c.cc.Invoke(ctx, "/pb.userCenter/UserCheckIn", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
func (c *userCenterClient) UserSendGift(ctx context.Context, in *UserSendGiftReq, opts ...grpc.CallOption) (*UserSendGiftResp, error) {
out := new(UserSendGiftResp)
err := c.cc.Invoke(ctx, "/pb.userCenter/userSendGift", in, out, opts...)
@@ -120,8 +131,8 @@ func (c *userCenterClient) StatPvpFirstBlood(ctx context.Context, in *StatPvPFir
return out, nil
}
-func (c *userCenterClient) StatPvpReport(ctx context.Context, in *StatPvPReportReq, opts ...grpc.CallOption) (*Empty, error) {
- out := new(Empty)
+func (c *userCenterClient) StatPvpReport(ctx context.Context, in *StatPvPReportReq, opts ...grpc.CallOption) (*StatPvPReportResp, error) {
+ out := new(StatPvPReportResp)
err := c.cc.Invoke(ctx, "/pb.userCenter/statPvpReport", in, out, opts...)
if err != nil {
return nil, err
@@ -149,13 +160,15 @@ type UserCenterServer interface {
//ChangeIntegral 新增用户积分
ChangeIntegral(context.Context, *ChangeIntegralReq) (*ChangeIntegralResp, error)
//GetUserIntegral 获取用户积分
- GetUserIntegral(context.Context, *UserIdResp) (*UserIntegralResp, error)
+ GetUserIntegral(context.Context, *UserIdReq) (*UserIntegralResp, error)
+ //UserCheckIn 用户签到|打卡
+ UserCheckIn(context.Context, *UserIdReq) (*UserCheckInResp, error)
// UserSendGift 用户赠送礼物
UserSendGift(context.Context, *UserSendGiftReq) (*UserSendGiftResp, error)
UserBuyNobility(context.Context, *UserBuyNobilityReq) (*UserBuyNobilityResp, error)
StatPvpKill(context.Context, *StatPvPKillReq) (*Empty, error)
StatPvpFirstBlood(context.Context, *StatPvPFirstBloodReq) (*Empty, error)
- StatPvpReport(context.Context, *StatPvPReportReq) (*Empty, error)
+ StatPvpReport(context.Context, *StatPvPReportReq) (*StatPvPReportResp, error)
// rankPvp pvp排行
RankPvp(context.Context, *RankPvpReq) (*RankPvpResp, error)
mustEmbedUnimplementedUserCenterServer()
@@ -174,9 +187,12 @@ func (UnimplementedUserCenterServer) GetUserIdByPUid(context.Context, *PlatformU
func (UnimplementedUserCenterServer) ChangeIntegral(context.Context, *ChangeIntegralReq) (*ChangeIntegralResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method ChangeIntegral not implemented")
}
-func (UnimplementedUserCenterServer) GetUserIntegral(context.Context, *UserIdResp) (*UserIntegralResp, error) {
+func (UnimplementedUserCenterServer) GetUserIntegral(context.Context, *UserIdReq) (*UserIntegralResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetUserIntegral not implemented")
}
+func (UnimplementedUserCenterServer) UserCheckIn(context.Context, *UserIdReq) (*UserCheckInResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method UserCheckIn not implemented")
+}
func (UnimplementedUserCenterServer) UserSendGift(context.Context, *UserSendGiftReq) (*UserSendGiftResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method UserSendGift not implemented")
}
@@ -189,7 +205,7 @@ func (UnimplementedUserCenterServer) StatPvpKill(context.Context, *StatPvPKillRe
func (UnimplementedUserCenterServer) StatPvpFirstBlood(context.Context, *StatPvPFirstBloodReq) (*Empty, error) {
return nil, status.Errorf(codes.Unimplemented, "method StatPvpFirstBlood not implemented")
}
-func (UnimplementedUserCenterServer) StatPvpReport(context.Context, *StatPvPReportReq) (*Empty, error) {
+func (UnimplementedUserCenterServer) StatPvpReport(context.Context, *StatPvPReportReq) (*StatPvPReportResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method StatPvpReport not implemented")
}
func (UnimplementedUserCenterServer) RankPvp(context.Context, *RankPvpReq) (*RankPvpResp, error) {
@@ -263,7 +279,7 @@ func _UserCenter_ChangeIntegral_Handler(srv interface{}, ctx context.Context, de
}
func _UserCenter_GetUserIntegral_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
- in := new(UserIdResp)
+ in := new(UserIdReq)
if err := dec(in); err != nil {
return nil, err
}
@@ -275,7 +291,25 @@ func _UserCenter_GetUserIntegral_Handler(srv interface{}, ctx context.Context, d
FullMethod: "/pb.userCenter/GetUserIntegral",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
- return srv.(UserCenterServer).GetUserIntegral(ctx, req.(*UserIdResp))
+ return srv.(UserCenterServer).GetUserIntegral(ctx, req.(*UserIdReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _UserCenter_UserCheckIn_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(UserIdReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(UserCenterServer).UserCheckIn(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/pb.userCenter/UserCheckIn",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(UserCenterServer).UserCheckIn(ctx, req.(*UserIdReq))
}
return interceptor(ctx, in, info, handler)
}
@@ -411,6 +445,10 @@ var UserCenter_ServiceDesc = grpc.ServiceDesc{
MethodName: "GetUserIntegral",
Handler: _UserCenter_GetUserIntegral_Handler,
},
+ {
+ MethodName: "UserCheckIn",
+ Handler: _UserCenter_UserCheckIn_Handler,
+ },
{
MethodName: "userSendGift",
Handler: _UserCenter_UserSendGift_Handler,
diff --git a/app/user_center/usercenter/user_center.go b/app/user_center/usercenter/user_center.go
index 91e2b1b..9b6fe2e 100644
--- a/app/user_center/usercenter/user_center.go
+++ b/app/user_center/usercenter/user_center.go
@@ -13,25 +13,29 @@ import (
)
type (
- ChangeIntegralReq = pb.ChangeIntegralReq
- ChangeIntegralResp = pb.ChangeIntegralResp
- Empty = pb.Empty
- PlatformUserReq = pb.PlatformUserReq
- PlatformUserResp = pb.PlatformUserResp
- RankPvpReq = pb.RankPvpReq
- RankPvpResp = pb.RankPvpResp
- RankPvpResp_Item = pb.RankPvpResp_Item
- StatPvPFirstBloodReq = pb.StatPvPFirstBloodReq
- StatPvPKillReq = pb.StatPvPKillReq
- StatPvPReportReq = pb.StatPvPReportReq
- StatPvPReportReq_Item = pb.StatPvPReportReq_Item
- User = pb.User
- UserBuyNobilityReq = pb.UserBuyNobilityReq
- UserBuyNobilityResp = pb.UserBuyNobilityResp
- UserIdResp = pb.UserIdResp
- UserIntegralResp = pb.UserIntegralResp
- UserSendGiftReq = pb.UserSendGiftReq
- UserSendGiftResp = pb.UserSendGiftResp
+ ChangeIntegralReq = pb.ChangeIntegralReq
+ ChangeIntegralResp = pb.ChangeIntegralResp
+ Empty = pb.Empty
+ PlatformUserReq = pb.PlatformUserReq
+ PlatformUserResp = pb.PlatformUserResp
+ RankPvpReq = pb.RankPvpReq
+ RankPvpResp = pb.RankPvpResp
+ RankPvpResp_Item = pb.RankPvpResp_Item
+ StatPvPFirstBloodReq = pb.StatPvPFirstBloodReq
+ StatPvPKillReq = pb.StatPvPKillReq
+ StatPvPReportReq = pb.StatPvPReportReq
+ StatPvPReportReq_Item = pb.StatPvPReportReq_Item
+ StatPvPReportResp = pb.StatPvPReportResp
+ StatPvPReportResp_Item = pb.StatPvPReportResp_Item
+ User = pb.User
+ UserBuyNobilityReq = pb.UserBuyNobilityReq
+ UserBuyNobilityResp = pb.UserBuyNobilityResp
+ UserCheckInResp = pb.UserCheckInResp
+ UserIdReq = pb.UserIdReq
+ UserIdResp = pb.UserIdResp
+ UserIntegralResp = pb.UserIntegralResp
+ UserSendGiftReq = pb.UserSendGiftReq
+ UserSendGiftResp = pb.UserSendGiftResp
UserCenter interface {
// retrievePlatformUser 新增或获取用户
@@ -41,13 +45,15 @@ type (
// ChangeIntegral 新增用户积分
ChangeIntegral(ctx context.Context, in *ChangeIntegralReq, opts ...grpc.CallOption) (*ChangeIntegralResp, error)
// GetUserIntegral 获取用户积分
- GetUserIntegral(ctx context.Context, in *UserIdResp, opts ...grpc.CallOption) (*UserIntegralResp, error)
+ GetUserIntegral(ctx context.Context, in *UserIdReq, opts ...grpc.CallOption) (*UserIntegralResp, error)
+ // UserCheckIn 用户签到|打卡
+ UserCheckIn(ctx context.Context, in *UserIdReq, opts ...grpc.CallOption) (*UserCheckInResp, error)
// UserSendGift 用户赠送礼物
UserSendGift(ctx context.Context, in *UserSendGiftReq, opts ...grpc.CallOption) (*UserSendGiftResp, error)
UserBuyNobility(ctx context.Context, in *UserBuyNobilityReq, opts ...grpc.CallOption) (*UserBuyNobilityResp, error)
StatPvpKill(ctx context.Context, in *StatPvPKillReq, opts ...grpc.CallOption) (*Empty, error)
StatPvpFirstBlood(ctx context.Context, in *StatPvPFirstBloodReq, opts ...grpc.CallOption) (*Empty, error)
- StatPvpReport(ctx context.Context, in *StatPvPReportReq, opts ...grpc.CallOption) (*Empty, error)
+ StatPvpReport(ctx context.Context, in *StatPvPReportReq, opts ...grpc.CallOption) (*StatPvPReportResp, error)
// rankPvp pvp排行
RankPvp(ctx context.Context, in *RankPvpReq, opts ...grpc.CallOption) (*RankPvpResp, error)
}
@@ -82,11 +88,17 @@ func (m *defaultUserCenter) ChangeIntegral(ctx context.Context, in *ChangeIntegr
}
// GetUserIntegral 获取用户积分
-func (m *defaultUserCenter) GetUserIntegral(ctx context.Context, in *UserIdResp, opts ...grpc.CallOption) (*UserIntegralResp, error) {
+func (m *defaultUserCenter) GetUserIntegral(ctx context.Context, in *UserIdReq, opts ...grpc.CallOption) (*UserIntegralResp, error) {
client := pb.NewUserCenterClient(m.cli.Conn())
return client.GetUserIntegral(ctx, in, opts...)
}
+// UserCheckIn 用户签到|打卡
+func (m *defaultUserCenter) UserCheckIn(ctx context.Context, in *UserIdReq, opts ...grpc.CallOption) (*UserCheckInResp, error) {
+ client := pb.NewUserCenterClient(m.cli.Conn())
+ return client.UserCheckIn(ctx, in, opts...)
+}
+
// UserSendGift 用户赠送礼物
func (m *defaultUserCenter) UserSendGift(ctx context.Context, in *UserSendGiftReq, opts ...grpc.CallOption) (*UserSendGiftResp, error) {
client := pb.NewUserCenterClient(m.cli.Conn())
@@ -108,7 +120,7 @@ func (m *defaultUserCenter) StatPvpFirstBlood(ctx context.Context, in *StatPvPFi
return client.StatPvpFirstBlood(ctx, in, opts...)
}
-func (m *defaultUserCenter) StatPvpReport(ctx context.Context, in *StatPvPReportReq, opts ...grpc.CallOption) (*Empty, error) {
+func (m *defaultUserCenter) StatPvpReport(ctx context.Context, in *StatPvPReportReq, opts ...grpc.CallOption) (*StatPvPReportResp, error) {
client := pb.NewUserCenterClient(m.cli.Conn())
return client.StatPvpReport(ctx, in, opts...)
}
diff --git a/config-dev.yml b/config-dev.yml
index 14c09c8..0c9074e 100644
--- a/config-dev.yml
+++ b/config-dev.yml
@@ -1,6 +1,6 @@
Server:
Debug: false
- Listen: 0.0.0.0:38888
+ Listen: 0.0.0.0:11111
UserCenterRpc:
Etcd:
Hosts:
@@ -10,14 +10,23 @@ Kafka:
Danmaku:
Addr: [ "127.0.0.1:9093" ]
Topic: "danmaku-dev"
- ConsumerGroup: "msgToPush-Dev"
+ ConsumerGroup: "msgToPush-dev"
Gift:
Addr: [ "127.0.0.1:9093" ]
Topic: "gift-dev"
- ConsumerGroup: "giftToPush-Dev"
+ ConsumerGroup: "giftToPush-dev"
Game:
+ Common:
+ Commands: [ "q", "查询", "打卡", "签到" ]
Zhg:
- Commands: [ "j", "加入", "加入游戏", "s", "w", "我在哪", "c1", "c2", "c3", "c4", "r1", "r2", "r3", "m1", "m2", "m3" ]
+ Commands: [ "j", "加入", "加入游戏", "s", "w", "我在哪", "s1", "s2", "s3", "s4", "c1", "c2", "c3", "c4", "r1", "r2", "r3", "m1", "m2", "m3" ]
+ OutbreakCount: 5
+ OutbreakBaseCost: 300
+ OutbreakCostDict:
+ 1: 250 # 步兵
+ 2: 300 # 骑兵
+ 3: 350 # 弓箭手
+ 4: 350 # 法师
Zhghz:
Commands: [ "j", "加入", "t1", "t2", "t3", "t4", "t5", "t6", "t7", "t8", "w", "我在哪", "m1", "m2", "m3", "m4", "f", "开炮" ]
Zhgfb:
@@ -32,7 +41,7 @@ Log:
Format: json
Path: ./logs
Filename: dcg.log
- FileMaxSize: 10 # 10mb
+ FileMaxSize: 8 # 10mb
FileMaxBackups: 30 #
MaxAge: 7 # 保留7天
Compress: true # 压缩日志
\ No newline at end of file
diff --git a/config.yml b/config.yml
index f5666f2..078b7c8 100644
--- a/config.yml
+++ b/config.yml
@@ -1,8 +1,6 @@
Server:
Debug: false
Listen: 0.0.0.0:8888
-Command:
- Keys: [ "j", "加入", "加入游戏", "s", "w", "我在哪", "c1", "c2", "c3", "c4", "r1", "r2", "r3", "m1", "m2", "m3" ]
UserCenterRpc:
Etcd:
Hosts:
@@ -12,15 +10,30 @@ Kafka:
Danmaku:
Addr: [ "127.0.0.1:9093" ]
Topic: "danmaku"
+ ConsumerGroup: "msgToPush"
Gift:
Addr: [ "127.0.0.1:9093" ]
Topic: "gift"
-ConsumerGroupId:
- GiftToPush: "giftToPush"
- MsgToPush: "msgToPush"
+ ConsumerGroup: "giftToPush"
+Game:
+ Common:
+ Commands: [ "q", "查询", "打卡", "签到" ]
+ Zhg:
+ Commands: [ "j", "加入", "加入游戏", "s", "w", "我在哪", "s1", "s2", "s3", "s4", "c1", "c2", "c3", "c4", "r1", "r2", "r3", "m1", "m2", "m3" ]
+ OutbreakCount: 5
+ OutbreakBaseCost: 300
+ OutbreakCostDict:
+ 1: 250 # 步兵
+ 2: 300 # 骑兵
+ 3: 350 # 弓箭手
+ 4: 350 # 法师
+ Zhghz:
+ Commands: [ "j", "加入", "t1", "t2", "t3", "t4", "t5", "t6", "t7", "t8", "w", "我在哪", "m1", "m2", "m3", "m4", "f", "开炮" ]
+ Zhgfb:
+ Commands: [ ]
Log:
Console:
- Level: warn
+ Level: info
Format: console
File:
Enabled: true
@@ -28,7 +41,7 @@ Log:
Format: json
Path: ./logs
Filename: dcg.log
- FileMaxSize: 10 # 10mb
+ FileMaxSize: 8 # 10mb
FileMaxBackups: 30 #
MaxAge: 7 # 保留7天
Compress: true # 压缩日志
\ No newline at end of file
diff --git a/config/Config.go b/config/Config.go
index bef4f16..d18ebb2 100644
--- a/config/Config.go
+++ b/config/Config.go
@@ -38,7 +38,17 @@ type (
Gift Kafka
}
Game struct {
- Zhg Game // 指挥官PvP模式
+ // 通用模式
+ Common struct {
+ Commands []string
+ }
+ // Zhg 指挥官PvP模式
+ Zhg struct {
+ Commands []string
+ OutbreakCount int64 // 每次暴兵数量
+ OutbreakBaseCost int64 // 默认每次暴兵消耗积分(不限兵种)
+ OutbreakCostDict map[int]int64 // 暴兵消耗积分表
+ }
Zhghz Game // 指挥官海战模式
Zhgfb Game // 指挥官副本模式
}
diff --git a/game/live_logic/common_handler.go b/game/live_logic/common_handler.go
new file mode 100644
index 0000000..b119b0e
--- /dev/null
+++ b/game/live_logic/common_handler.go
@@ -0,0 +1,98 @@
+package live_logic
+
+import (
+ "dcg/app/user_center/usercenter"
+ "dcg/config"
+ "dcg/game/logic"
+ pbCommon "dcg/game/pb/common"
+ pbMq "dcg/game/pb/mq"
+ "dcg/game/svc"
+ "dcg/pkg/cmd"
+ "git.noahlan.cn/northlan/ntools-go/logger"
+ "strconv"
+)
+
+type commonGameLogic struct {
+ svcCtx *svc.ServiceContext
+ *LiveGameLogic
+}
+
+func NewCommonLiveGameLogic(svcCtx *svc.ServiceContext) *LiveGameLogic {
+ resp := &commonGameLogic{
+ svcCtx: svcCtx,
+ LiveGameLogic: NewLiveGameLogic(-1, cmd.NewCMDParser(true, config.Config.Game.Common.Commands...)),
+ }
+ // 通用指令处理器
+ resp.RegisterCMDHandler(resp.handleQuery, "q", "查询")
+ resp.RegisterCMDHandler(resp.handleCheckIn, "打卡", "签到")
+ // 通用礼物处理器
+ resp.RegisterGiftHandler(resp.handleGift)
+ return resp.LiveGameLogic
+}
+
+func (h *commonGameLogic) handleCheckIn(roomId int64, _ string, user *pbCommon.PbUser) {
+ room, err := logic.GameLogic.RoomManager.RoomByLiveRoomId(roomId)
+ if err != nil {
+ return
+ }
+ respMsg := &pbCommon.CheckInMsg{User: user}
+ // RPC - 签到
+ resp, err := h.svcCtx.UserCenterRpc.UserCheckIn(h.svcCtx.Ctx, &usercenter.UserIdReq{UserId: user.UId})
+ if err != nil {
+ respMsg.Msg = "打卡失败,UP主有罪。"
+ } else {
+ user.Integral = resp.Integral
+ respMsg.Success = resp.Success
+ respMsg.Msg = resp.Msg
+ respMsg.IntegralChange = resp.IntegralChange
+ respMsg.IsCritical = resp.IsCritical
+ }
+ room.PushToLiveRoom(roomId, "user.checkIn", respMsg)
+}
+
+func (h *commonGameLogic) handleQuery(roomId int64, _ string, user *pbCommon.PbUser) {
+ room, err := logic.GameLogic.RoomManager.RoomByLiveRoomId(roomId)
+ if err != nil {
+ return
+ }
+ room.PushToLiveRoom(roomId, "user.query", &pbCommon.UserQueryMsg{User: user})
+}
+
+func (h *commonGameLogic) handleGift(roomId int64, user *pbCommon.PbUser, gift *pbMq.MqGift) {
+ room, err := logic.GameLogic.RoomManager.RoomByLiveRoomId(roomId)
+ if err != nil {
+ return
+ }
+ // 1. 发送通用礼物消息
+ room.PushToLiveRoom(roomId, "live.gift", &pbCommon.GiftMsg{
+ User: user,
+ GiftId: gift.GiftId,
+ Num: gift.Num,
+ GiftName: gift.GiftName,
+ Price: gift.Price,
+ IsPaid: gift.IsPaid,
+ })
+ // 2. RPC 记录送礼,积分变动
+ req := &usercenter.UserSendGiftReq{
+ Platform: gift.Platform,
+ UserId: user.UId,
+ PUid: strconv.FormatInt(gift.Uid, 10),
+ RoomId: strconv.FormatInt(roomId, 10),
+ GiftId: gift.GiftId,
+ GiftName: gift.GiftName,
+ Num: gift.Num,
+ Price: gift.Price,
+ IsPaid: gift.IsPaid,
+ }
+ giftResp, err := h.svcCtx.UserCenterRpc.UserSendGift(h.svcCtx.Ctx, req)
+ if err != nil {
+ logger.SLog.Info("rpc 用户送礼记录失败,积分变动不通知了...")
+ return
+ }
+ user.Integral = giftResp.Integral.Integral // 更新最新积分
+ room.PushToLiveRoom(roomId, "user.integral.change", &pbCommon.UserIntegralChanged{
+ User: user,
+ Change: giftResp.Integral.Change,
+ Integral: giftResp.Integral.Integral,
+ })
+}
diff --git a/game/logic/logic.go b/game/live_logic/logic.go
similarity index 78%
rename from game/logic/logic.go
rename to game/live_logic/logic.go
index c88157c..7e3424d 100644
--- a/game/logic/logic.go
+++ b/game/live_logic/logic.go
@@ -1,6 +1,7 @@
-package logic
+package live_logic
import (
+ "dcg/game/logic"
pbCommon "dcg/game/pb/common"
pbMq "dcg/game/pb/mq"
pbRoom "dcg/game/pb/room"
@@ -48,14 +49,16 @@ func (l *LiveGameLogic) RegisterGiftHandler(h GiftHandlerFunc) {
l.GiftHandler = h
}
-func (l *LiveGameLogic) HandleDanmaku(user *pbCommon.PbUser, dm *pbMq.MqDanmaku) {
+// HandleDanmaku 弹幕数据处理
+// pushCommonMsg 非弹幕数据是否转发
+func (l *LiveGameLogic) HandleDanmaku(pushCommonMsg bool, user *pbCommon.PbUser, dm *pbMq.MqDanmaku) {
cmdStruct := l.CmdParser.Parse(dm.Content)
if cmdStruct.IsCMD {
for _, c := range cmdStruct.Arr {
go l.handleCMD(dm.LiveRoomId, c, user)
}
- } else {
- room, err := GameLogic.RoomManager.RoomByLiveRoomId(dm.LiveRoomId)
+ } else if pushCommonMsg {
+ room, err := logic.GameLogic.RoomManager.RoomByLiveRoomId(dm.LiveRoomId)
if err != nil {
return
}
@@ -74,19 +77,8 @@ func (l *LiveGameLogic) handleCMD(roomId int64, cmd string, user *pbCommon.PbUse
}
func (l *LiveGameLogic) HandleGift(roomId int64, user *pbCommon.PbUser, gift *pbMq.MqGift) {
- if room, err := GameLogic.RoomManager.RoomByLiveRoomId(roomId); err == nil {
- // 发送通用礼物消息
- room.PushToLiveRoom(roomId, "live.gift", &pbCommon.GiftMsg{
- User: user,
- GiftId: gift.GiftId,
- Num: gift.Num,
- GiftName: gift.GiftName,
- Price: gift.Price,
- IsPaid: gift.IsPaid,
- })
- }
if l.GiftHandler == nil {
return
}
- l.GiftHandler(roomId, user, gift)
+ go l.GiftHandler(roomId, user, gift)
}
diff --git a/game/live/manager.go b/game/live_logic/manager.go
similarity index 61%
rename from game/live/manager.go
rename to game/live_logic/manager.go
index 0af8c4e..37c7bc1 100644
--- a/game/live/manager.go
+++ b/game/live_logic/manager.go
@@ -1,10 +1,7 @@
-package live
+package live_logic
import (
"dcg/game"
- "dcg/game/logic"
- "dcg/game/logic/zhg"
- "dcg/game/logic/zhghz"
pbCommon "dcg/game/pb/common"
pbMq "dcg/game/pb/mq"
pbRoom "dcg/game/pb/room"
@@ -17,28 +14,33 @@ var LiveManager *Manager
type (
Manager struct {
- gameLogics map[pbRoom.GameType]*logic.LiveGameLogic
+ // commonLogic 通用游戏逻辑处理器,类型无关
+ commonLogic *LiveGameLogic
+ // gameLogics 游戏逻辑处理器 游戏类型相关
+ gameLogics map[pbRoom.GameType]*LiveGameLogic
}
)
func InitLiveManager(svcCtx *svc.ServiceContext) {
LiveManager = newManager()
- // zhg
- LiveManager.RegisterLogic(zhg.NewZhgLiveGameLogic().LiveGameLogic)
- LiveManager.RegisterLogic(zhghz.NewZhghzLiveGameLogic().LiveGameLogic)
+ // commonLogic
+ LiveManager.commonLogic = NewCommonLiveGameLogic(svcCtx)
+ // gameLogic
+ LiveManager.RegisterLogic(NewZhgLiveGameLogic(svcCtx))
+ LiveManager.RegisterLogic(NewZhghzLiveGameLogic().LiveGameLogic)
}
func newManager() *Manager {
return &Manager{
- gameLogics: make(map[pbRoom.GameType]*logic.LiveGameLogic),
+ gameLogics: make(map[pbRoom.GameType]*LiveGameLogic),
}
}
-func (m *Manager) RegisterLogic(h *logic.LiveGameLogic) {
+func (m *Manager) RegisterLogic(h *LiveGameLogic) {
m.gameLogics[h.GameType] = h
}
-func (m *Manager) logicByLiveRoomId(roomId int64) (*logic.LiveGameLogic, error) {
+func (m *Manager) logicByLiveRoomId(roomId int64) (*LiveGameLogic, error) {
gameType, err := game.GameTypeByLiveRoomId(roomId)
if err != nil {
return nil, errors.New("当前直播间未加入游戏房间")
@@ -50,15 +52,19 @@ func (m *Manager) logicByLiveRoomId(roomId int64) (*logic.LiveGameLogic, error)
}
func (m *Manager) HandleDanmaku(user *pbCommon.PbUser, dm *pbMq.MqDanmaku) {
+ m.commonLogic.HandleDanmaku(false, user, dm)
+
l, err := m.logicByLiveRoomId(dm.LiveRoomId)
if err != nil {
logger.SLog.Errorf("获取游戏逻辑失败, err:%+v", err)
return
}
- l.HandleDanmaku(user, dm)
+ l.HandleDanmaku(true, user, dm)
}
func (m *Manager) HandleGift(roomId int64, user *pbCommon.PbUser, gift *pbMq.MqGift) {
+ m.commonLogic.HandleGift(roomId, user, gift)
+
l, err := m.logicByLiveRoomId(roomId)
if err != nil {
logger.SLog.Errorf("获取游戏逻辑失败, err:%+v", err)
diff --git a/game/logic/zhg/handler.go b/game/live_logic/zhg_handler.go
similarity index 68%
rename from game/logic/zhg/handler.go
rename to game/live_logic/zhg_handler.go
index c1fac6b..9bed412 100644
--- a/game/logic/zhg/handler.go
+++ b/game/live_logic/zhg_handler.go
@@ -1,4 +1,4 @@
-package zhg
+package live_logic
import (
"dcg/config"
@@ -7,26 +7,31 @@ import (
pbGameZhg "dcg/game/pb/game/zhg"
pbMq "dcg/game/pb/mq"
pbRoom "dcg/game/pb/room"
+ "dcg/game/svc"
"dcg/pkg/cmd"
+ "strconv"
)
type ZhgGameLogic struct {
- *logic.LiveGameLogic
+ svcCtx *svc.ServiceContext
+ *LiveGameLogic
}
-func NewZhgLiveGameLogic() *ZhgGameLogic {
+func NewZhgLiveGameLogic(svcCtx *svc.ServiceContext) *LiveGameLogic {
resp := &ZhgGameLogic{
- LiveGameLogic: logic.NewLiveGameLogic(pbRoom.GameType_ZHG, cmd.NewCMDParser(config.Config.Game.Zhg.Commands)),
+ svcCtx: svcCtx,
+ LiveGameLogic: NewLiveGameLogic(pbRoom.GameType_ZHG, cmd.NewCMDParser(false, config.Config.Game.Zhg.Commands...)),
}
resp.RegisterCMDHandler(resp.handleJoinGame, "j", "加入", "加入游戏")
resp.RegisterCMDHandler(resp.handleOutbreak, "s")
+ resp.RegisterCMDHandler(resp.handleOutbreakIntegral, "s1", "s2", "s3", "s4")
resp.RegisterCMDHandler(resp.handleWai, "w", "我在哪")
resp.RegisterCMDHandler(resp.handleCreateUnit, "c1", "c2", "c3", "c4")
resp.RegisterCMDHandler(resp.handleMove, "m1", "m2", "m3")
resp.RegisterCMDHandler(resp.handleMode, "r1", "r2", "r3")
// gift
resp.RegisterGiftHandler(resp.handleGift)
- return resp
+ return resp.LiveGameLogic
}
func (h *ZhgGameLogic) handleJoinGame(roomId int64, _ string, user *pbCommon.PbUser) {
@@ -45,6 +50,34 @@ func (h *ZhgGameLogic) handleOutbreak(roomId int64, _ string, user *pbCommon.PbU
room.PushToLiveRoom(roomId, "game.outbreak", &pbGameZhg.Outbreak{User: user})
}
+func (h *ZhgGameLogic) handleOutbreakIntegral(roomId int64, cmd string, user *pbCommon.PbUser) {
+ room, err := logic.GameLogic.RoomManager.RoomByLiveRoomId(roomId)
+ if err != nil {
+ return
+ }
+ cmdRune := []rune(cmd)
+ if len(cmdRune) < 2 {
+ return
+ }
+ var unitTypeInt int
+ unitTypeInt, _ = strconv.Atoi(string(cmdRune[1]))
+
+ zhgCfg := config.Config.Game.Zhg
+
+ // 根据unitType计算 消耗积分
+ costIntegral, ok := zhgCfg.OutbreakCostDict[unitTypeInt]
+ if !ok {
+ costIntegral = zhgCfg.OutbreakBaseCost
+ }
+
+ room.PushToLiveRoom(roomId, "game.outbreak.integral", &pbGameZhg.OutbreakIntegral{
+ User: user,
+ UnitType: string(cmdRune[1]),
+ Count: int32(zhgCfg.OutbreakCount),
+ CostIntegral: -costIntegral,
+ })
+}
+
func (h *ZhgGameLogic) handleCreateUnit(roomId int64, cmd string, user *pbCommon.PbUser) {
if len(cmd) < 2 {
return
@@ -102,5 +135,5 @@ func (h *ZhgGameLogic) handleMode(roomId int64, cmd string, user *pbCommon.PbUse
}
func (h *ZhgGameLogic) handleGift(roomId int64, user *pbCommon.PbUser, gift *pbMq.MqGift) {
- // TODO live.gift 已经发出,这里暂时不需要
+ // TODO 暂时没有特殊礼物需求,留空
}
diff --git a/game/logic/zhghz/handler.go b/game/live_logic/zhghz_handler.go
similarity index 95%
rename from game/logic/zhghz/handler.go
rename to game/live_logic/zhghz_handler.go
index 7beec65..5691367 100644
--- a/game/logic/zhghz/handler.go
+++ b/game/live_logic/zhghz_handler.go
@@ -1,4 +1,4 @@
-package zhghz
+package live_logic
import (
"dcg/config"
@@ -14,7 +14,7 @@ import (
type (
ZhghzGameLogic struct {
- *logic.LiveGameLogic
+ *LiveGameLogic
// giftLogics 礼物处理 platform-cmd:logic
giftLogics map[string]giftLogic
@@ -28,7 +28,7 @@ type (
func NewZhghzLiveGameLogic() *ZhghzGameLogic {
resp := &ZhghzGameLogic{
- LiveGameLogic: logic.NewLiveGameLogic(pbRoom.GameType_ZHGHZ, cmd.NewCMDParser(config.Config.Game.Zhghz.Commands)),
+ LiveGameLogic: NewLiveGameLogic(pbRoom.GameType_ZHGHZ, cmd.NewCMDParser(false, config.Config.Game.Zhghz.Commands...)),
giftLogics: make(map[string]giftLogic),
}
resp.RegisterCMDHandler(resp.handleJoinGame, "j", "t1", "t2", "t3", "t4", "t5", "t6", "t7", "t8")
diff --git a/game/logic/init.go b/game/logic/init.go
index 6ad6071..fa13563 100644
--- a/game/logic/init.go
+++ b/game/logic/init.go
@@ -1,6 +1,7 @@
package logic
import (
+ "dcg/game/logic/user"
"dcg/game/logic/zhg/rank"
"dcg/game/logic/zhg/statistics"
"dcg/game/room"
@@ -17,6 +18,7 @@ type Logics struct {
RoomManager *room.Manager
StatisticsPvP *statistics.PvP
Rank *rank.Rank
+ UserIntegral *user.UserIntegral
}
func Init(svcCtx *svc.ServiceContext) {
@@ -43,10 +45,18 @@ func Init(svcCtx *svc.ServiceContext) {
return strings.ToLower(s)
}))
+ userIntegral := user.NewUserIntegral(svcCtx)
+ services.Register(userIntegral,
+ component.WithName(userIntegral.CMD()),
+ component.WithNameFunc(func(s string) string {
+ return userIntegral.Prefix() + "." + strings.ToLower(s)
+ }))
+
GameLogic = &Logics{
Services: services,
RoomManager: roomManager,
StatisticsPvP: statisticsPvP,
Rank: rk,
+ UserIntegral: userIntegral,
}
}
diff --git a/game/logic/user/user_integral.go b/game/logic/user/user_integral.go
new file mode 100644
index 0000000..03ca72d
--- /dev/null
+++ b/game/logic/user/user_integral.go
@@ -0,0 +1,58 @@
+package user
+
+import (
+ "dcg/app/user_center/usercenter"
+ pbCommon "dcg/game/pb/common"
+ "dcg/game/svc"
+ "git.noahlan.cn/northlan/ngs/component"
+ "git.noahlan.cn/northlan/ngs/session"
+)
+
+type UserIntegral struct {
+ component.Base
+ svcCtx *svc.ServiceContext
+}
+
+func NewUserIntegral(svcCtx *svc.ServiceContext) *UserIntegral {
+ return &UserIntegral{
+ svcCtx: svcCtx,
+ }
+}
+
+func (p *UserIntegral) Init() {
+}
+
+func (p *UserIntegral) Shutdown() {
+}
+
+func (p *UserIntegral) CMD() string {
+ return "user"
+}
+
+func (p *UserIntegral) Prefix() string {
+ return "integral"
+}
+
+// Change 更新积分
+func (p *UserIntegral) Change(s *session.Session, msg *pbCommon.ChangeUserIntegralReq) error {
+ integral, err := p.svcCtx.UserCenterRpc.ChangeIntegral(p.svcCtx.Ctx, &usercenter.ChangeIntegralReq{
+ UserId: msg.UserId,
+ Change: msg.Change,
+ })
+ if err != nil {
+ return s.Response(&pbCommon.ChangeUserIntegralResp{
+ Success: false,
+ Msg: err.Error(),
+ UserId: msg.UserId,
+ Change: 0,
+ Integral: 0,
+ })
+ }
+ return s.Response(&pbCommon.ChangeUserIntegralResp{
+ Success: true,
+ Msg: "成功",
+ UserId: msg.UserId,
+ Change: msg.Change,
+ Integral: integral.Integral,
+ })
+}
diff --git a/game/logic/zhg/statistics/stat_pvp.go b/game/logic/zhg/statistics/stat_pvp.go
index 7dc09ff..b2187b0 100644
--- a/game/logic/zhg/statistics/stat_pvp.go
+++ b/game/logic/zhg/statistics/stat_pvp.go
@@ -6,6 +6,7 @@ import (
"dcg/game/svc"
"git.noahlan.cn/northlan/ngs/component"
"git.noahlan.cn/northlan/ngs/session"
+ "git.noahlan.cn/northlan/ntools-go/logger"
)
type PvP struct {
@@ -82,8 +83,8 @@ func (p *PvP) Report(s *session.Session, msg *pbGameZhg.StatPvPReport) error {
DeKillUnit: item.DeKillUnit,
})
}
-
- _, err := p.svcCtx.UserCenterRpc.StatPvpReport(p.svcCtx.Ctx, &usercenter.StatPvPReportReq{
+ logger.SLog.Info("接收客户端战报", msg)
+ resp, err := p.svcCtx.UserCenterRpc.StatPvpReport(p.svcCtx.Ctx, &usercenter.StatPvPReportReq{
WinCamp: msg.WinCamp,
GeneralUid: msg.GeneralUid,
WinItems: winItems,
@@ -92,5 +93,23 @@ func (p *PvP) Report(s *session.Session, msg *pbGameZhg.StatPvPReport) error {
if err != nil {
return err
}
- return nil
+ winItemsResp := make([]*pbGameZhg.StatPvPReportResp_Item, 0, len(resp.WinItems))
+ lostItemsResp := make([]*pbGameZhg.StatPvPReportResp_Item, 0, len(resp.LostItems))
+ for _, item := range resp.WinItems {
+ winItemsResp = append(winItemsResp, &pbGameZhg.StatPvPReportResp_Item{
+ Uid: item.Uid,
+ AddonIntegral: item.AddonIntegral,
+ })
+ }
+ for _, item := range resp.LostItems {
+ lostItemsResp = append(lostItemsResp, &pbGameZhg.StatPvPReportResp_Item{
+ Uid: item.Uid,
+ AddonIntegral: item.AddonIntegral,
+ })
+ }
+
+ return s.Response(&pbGameZhg.StatPvPReportResp{
+ WinItems: winItemsResp,
+ LostItems: lostItemsResp,
+ })
}
diff --git a/game/msg_transfer/gift_to_push.go b/game/msg_transfer/gift_to_push.go
index a81ad7f..8269cca 100644
--- a/game/msg_transfer/gift_to_push.go
+++ b/game/msg_transfer/gift_to_push.go
@@ -3,8 +3,7 @@ package msg_transfer
import (
"dcg/app/user_center/usercenter"
"dcg/config"
- "dcg/game/live"
- "dcg/game/logic"
+ "dcg/game/live_logic"
pbCommon "dcg/game/pb/common"
pbMq "dcg/game/pb/mq"
"dcg/game/svc"
@@ -41,7 +40,7 @@ func (h *GiftToPushHandler) Init(svcCtx *svc.ServiceContext) {
}
}
-func (h *GiftToPushHandler) handleGift(data []byte, msgKey string) {
+func (h *GiftToPushHandler) handleGift(data []byte, _ string) {
// msg proto
var msgFromMq pbMq.MqGift
err := proto.Unmarshal(data, &msgFromMq)
@@ -49,41 +48,26 @@ func (h *GiftToPushHandler) handleGift(data []byte, msgKey string) {
logger.SLog.Error("unmarshal msg err", err)
return
}
- // rpc记录送礼
- logger.SLog.Debugf("队列礼物消息: %s 投喂 %s 价值 %d", msgFromMq.Uname, msgFromMq.GiftName, msgFromMq.Price*msgFromMq.Num)
- req := &usercenter.UserSendGiftReq{
+ // rpc创建或获取用户数据
+ rpcUser, err := h.svcCtx.UserCenterRpc.RetrievePlatformUser(h.svcCtx.Ctx, &usercenter.PlatformUserReq{
Platform: msgFromMq.Platform,
PUid: strconv.FormatInt(msgFromMq.Uid, 10),
- RoomId: strconv.FormatInt(msgFromMq.LiveRoomId, 10),
- GiftId: msgFromMq.GiftId,
- GiftName: msgFromMq.GiftName,
- Num: msgFromMq.Num,
- Price: msgFromMq.Price,
- IsPaid: msgFromMq.IsPaid,
- }
- giftResp, err := h.svcCtx.UserCenterRpc.UserSendGift(h.svcCtx.Ctx, req)
+ })
if err != nil {
- logger.SLog.Info("rpc 用户送礼记录失败,本条消息丢弃...")
+ logger.SLog.Info("rpc获取用户信息失败,本条消息丢弃...")
return
}
- rpcUser := giftResp.User
pbUser := &pbCommon.PbUser{
- UId: rpcUser.Id,
- Uname: rpcUser.PUname,
- Avatar: rpcUser.PAvatar,
- NobilityLevel: rpcUser.NobilityLevel,
- Integral: rpcUser.Integral,
- }
- // 用户积分变更,通用消息
- if room, err := logic.GameLogic.RoomManager.RoomByLiveRoomId(msgFromMq.LiveRoomId); err == nil {
- room.PushToLiveRoom(msgFromMq.LiveRoomId, "user.integral", &pbCommon.UserIntegralChanged{
- User: pbUser,
- Change: giftResp.Integral.Change,
- Integral: giftResp.Integral.Integral,
- })
+ UId: rpcUser.User.Id,
+ Uname: msgFromMq.Uname,
+ Avatar: rpcUser.User.PAvatar,
+ NobilityLevel: rpcUser.User.NobilityLevel,
+ Integral: rpcUser.User.Integral,
}
+ logger.SLog.Debugf("队列礼物消息: %s 投喂 %s 价值 %d", msgFromMq.Uname, msgFromMq.GiftName, msgFromMq.Price*msgFromMq.Num)
+
// 游戏逻辑处理
- live.LiveManager.HandleGift(msgFromMq.LiveRoomId, pbUser, &msgFromMq)
+ live_logic.LiveManager.HandleGift(msgFromMq.LiveRoomId, pbUser, &msgFromMq)
}
func (GiftToPushHandler) Setup(_ sarama.ConsumerGroupSession) error { return nil }
diff --git a/game/msg_transfer/msg_to_push.go b/game/msg_transfer/msg_to_push.go
index c7323e7..a7ef5ad 100644
--- a/game/msg_transfer/msg_to_push.go
+++ b/game/msg_transfer/msg_to_push.go
@@ -4,7 +4,7 @@ import (
"context"
"dcg/app/user_center/usercenter"
"dcg/config"
- "dcg/game/live"
+ "dcg/game/live_logic"
pbCommon "dcg/game/pb/common"
pbMq "dcg/game/pb/mq"
"dcg/game/svc"
@@ -68,7 +68,7 @@ func (h *MsgToPushHandler) handleDanmaku(data []byte, _ string) {
}
// 游戏命令逻辑处理
- live.LiveManager.HandleDanmaku(pbUser, &msgFromMq)
+ live_logic.LiveManager.HandleDanmaku(pbUser, &msgFromMq)
}
func (MsgToPushHandler) Setup(_ sarama.ConsumerGroupSession) error { return nil }
diff --git a/game/pb/common/Common.cs b/game/pb/common/Common.cs
index 74250ca..c5b4155 100644
--- a/game/pb/common/Common.cs
+++ b/game/pb/common/Common.cs
@@ -28,17 +28,29 @@ namespace Pb.Common {
"ASgDEg0KBXVuYW1lGAIgASgJEg4KBmF2YXRhchgDIAEoCRIVCg1ub2JpbGl0",
"eUxldmVsGAQgASgFEhAKCGludGVncmFsGAUgASgDIlgKE1VzZXJJbnRlZ3Jh",
"bENoYW5nZWQSHwoEdXNlchgBIAEoCzIRLnBiLmNvbW1vbi5QYlVzZXISDgoG",
- "Y2hhbmdlGAIgASgDEhAKCGludGVncmFsGAMgASgDIj4KCkRhbm1ha3VNc2cS",
- "HwoEdXNlchgBIAEoCzIRLnBiLmNvbW1vbi5QYlVzZXISDwoHY29udGVudBgC",
- "IAEoCSJ4CgdHaWZ0TXNnEh8KBHVzZXIYASABKAsyES5wYi5jb21tb24uUGJV",
- "c2VyEg4KBmdpZnRJZBgCIAEoAxILCgNudW0YAyABKAMSEAoIZ2lmdE5hbWUY",
- "BCABKAkSDQoFcHJpY2UYBSABKAMSDgoGaXNQYWlkGAYgASgIQh1aG2RjZy9n",
- "YW1lL3BiL2NvbW1vbjtwYkNvbW1vbmIGcHJvdG8z"));
+ "Y2hhbmdlGAIgASgDEhAKCGludGVncmFsGAMgASgDIjcKFUNoYW5nZVVzZXJJ",
+ "bnRlZ3JhbFJlcRIOCgZ1c2VySWQYASABKAMSDgoGY2hhbmdlGAIgASgDImgK",
+ "FkNoYW5nZVVzZXJJbnRlZ3JhbFJlc3ASDwoHc3VjY2VzcxgBIAEoCBILCgNt",
+ "c2cYAiABKAkSDgoGdXNlcklkGAMgASgDEg4KBmNoYW5nZRgEIAEoAxIQCghp",
+ "bnRlZ3JhbBgFIAEoAyJ3CgpDaGVja0luTXNnEh8KBHVzZXIYASABKAsyES5w",
+ "Yi5jb21tb24uUGJVc2VyEg8KB3N1Y2Nlc3MYAiABKAgSCwoDbXNnGAMgASgJ",
+ "EhYKDmludGVncmFsQ2hhbmdlGAQgASgDEhIKCmlzQ3JpdGljYWwYBSABKAgi",
+ "LwoMVXNlclF1ZXJ5TXNnEh8KBHVzZXIYASABKAsyES5wYi5jb21tb24uUGJV",
+ "c2VyIj4KCkRhbm1ha3VNc2cSHwoEdXNlchgBIAEoCzIRLnBiLmNvbW1vbi5Q",
+ "YlVzZXISDwoHY29udGVudBgCIAEoCSJ4CgdHaWZ0TXNnEh8KBHVzZXIYASAB",
+ "KAsyES5wYi5jb21tb24uUGJVc2VyEg4KBmdpZnRJZBgCIAEoAxILCgNudW0Y",
+ "AyABKAMSEAoIZ2lmdE5hbWUYBCABKAkSDQoFcHJpY2UYBSABKAMSDgoGaXNQ",
+ "YWlkGAYgASgIQh1aG2RjZy9nYW1lL3BiL2NvbW1vbjtwYkNvbW1vbmIGcHJv",
+ "dG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Common.PbUser), global::Pb.Common.PbUser.Parser, new[]{ "UId", "Uname", "Avatar", "NobilityLevel", "Integral" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Common.UserIntegralChanged), global::Pb.Common.UserIntegralChanged.Parser, new[]{ "User", "Change", "Integral" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Common.ChangeUserIntegralReq), global::Pb.Common.ChangeUserIntegralReq.Parser, new[]{ "UserId", "Change" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Common.ChangeUserIntegralResp), global::Pb.Common.ChangeUserIntegralResp.Parser, new[]{ "Success", "Msg", "UserId", "Change", "Integral" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Common.CheckInMsg), global::Pb.Common.CheckInMsg.Parser, new[]{ "User", "Success", "Msg", "IntegralChange", "IsCritical" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Common.UserQueryMsg), global::Pb.Common.UserQueryMsg.Parser, new[]{ "User" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Common.DanmakuMsg), global::Pb.Common.DanmakuMsg.Parser, new[]{ "User", "Content" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Common.GiftMsg), global::Pb.Common.GiftMsg.Parser, new[]{ "User", "GiftId", "Num", "GiftName", "Price", "IsPaid" }, null, null, null, null)
}));
@@ -403,7 +415,7 @@ namespace Pb.Common {
}
///
- /// UserIntegralChanged 用户积分变更 push -> user.integral
+ /// UserIntegralChanged 用户积分变更 push -> user.integral.change
///
public sealed partial class UserIntegralChanged : pb::IMessage
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
@@ -683,6 +695,1161 @@ namespace Pb.Common {
}
+ ///
+ /// ChangeUserIntegral 更新用户积分 request -> user.integral.change
+ ///
+ public sealed partial class ChangeUserIntegralReq : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ChangeUserIntegralReq());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Pb.Common.CommonReflection.Descriptor.MessageTypes[2]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public ChangeUserIntegralReq() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public ChangeUserIntegralReq(ChangeUserIntegralReq other) : this() {
+ userId_ = other.userId_;
+ change_ = other.change_;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public ChangeUserIntegralReq Clone() {
+ return new ChangeUserIntegralReq(this);
+ }
+
+ /// Field number for the "userId" field.
+ public const int UserIdFieldNumber = 1;
+ private long userId_;
+ ///
+ /// 用户ID
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public long UserId {
+ get { return userId_; }
+ set {
+ userId_ = value;
+ }
+ }
+
+ /// Field number for the "change" field.
+ public const int ChangeFieldNumber = 2;
+ private long change_;
+ ///
+ /// 更新积分量,负数为消耗,正数为增加
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public long Change {
+ get { return change_; }
+ set {
+ change_ = value;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as ChangeUserIntegralReq);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(ChangeUserIntegralReq other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (UserId != other.UserId) return false;
+ if (Change != other.Change) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (UserId != 0L) hash ^= UserId.GetHashCode();
+ if (Change != 0L) hash ^= Change.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (UserId != 0L) {
+ output.WriteRawTag(8);
+ output.WriteInt64(UserId);
+ }
+ if (Change != 0L) {
+ output.WriteRawTag(16);
+ output.WriteInt64(Change);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (UserId != 0L) {
+ output.WriteRawTag(8);
+ output.WriteInt64(UserId);
+ }
+ if (Change != 0L) {
+ output.WriteRawTag(16);
+ output.WriteInt64(Change);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (UserId != 0L) {
+ size += 1 + pb::CodedOutputStream.ComputeInt64Size(UserId);
+ }
+ if (Change != 0L) {
+ size += 1 + pb::CodedOutputStream.ComputeInt64Size(Change);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(ChangeUserIntegralReq other) {
+ if (other == null) {
+ return;
+ }
+ if (other.UserId != 0L) {
+ UserId = other.UserId;
+ }
+ if (other.Change != 0L) {
+ Change = other.Change;
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 8: {
+ UserId = input.ReadInt64();
+ break;
+ }
+ case 16: {
+ Change = input.ReadInt64();
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 8: {
+ UserId = input.ReadInt64();
+ break;
+ }
+ case 16: {
+ Change = input.ReadInt64();
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
+ ///
+ /// ChangeUserIntegralResp 用户积分更新返回
+ ///
+ public sealed partial class ChangeUserIntegralResp : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ChangeUserIntegralResp());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Pb.Common.CommonReflection.Descriptor.MessageTypes[3]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public ChangeUserIntegralResp() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public ChangeUserIntegralResp(ChangeUserIntegralResp other) : this() {
+ success_ = other.success_;
+ msg_ = other.msg_;
+ userId_ = other.userId_;
+ change_ = other.change_;
+ integral_ = other.integral_;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public ChangeUserIntegralResp Clone() {
+ return new ChangeUserIntegralResp(this);
+ }
+
+ /// Field number for the "success" field.
+ public const int SuccessFieldNumber = 1;
+ private bool success_;
+ ///
+ /// 是否更新成功
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Success {
+ get { return success_; }
+ set {
+ success_ = value;
+ }
+ }
+
+ /// Field number for the "msg" field.
+ public const int MsgFieldNumber = 2;
+ private string msg_ = "";
+ ///
+ /// 消息
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public string Msg {
+ get { return msg_; }
+ set {
+ msg_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
+
+ /// Field number for the "userId" field.
+ public const int UserIdFieldNumber = 3;
+ private long userId_;
+ ///
+ /// 用户ID
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public long UserId {
+ get { return userId_; }
+ set {
+ userId_ = value;
+ }
+ }
+
+ /// Field number for the "change" field.
+ public const int ChangeFieldNumber = 4;
+ private long change_;
+ ///
+ /// 本次更新积分量
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public long Change {
+ get { return change_; }
+ set {
+ change_ = value;
+ }
+ }
+
+ /// Field number for the "integral" field.
+ public const int IntegralFieldNumber = 5;
+ private long integral_;
+ ///
+ /// 当前剩余积分
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public long Integral {
+ get { return integral_; }
+ set {
+ integral_ = value;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as ChangeUserIntegralResp);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(ChangeUserIntegralResp other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (Success != other.Success) return false;
+ if (Msg != other.Msg) return false;
+ if (UserId != other.UserId) return false;
+ if (Change != other.Change) return false;
+ if (Integral != other.Integral) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (Success != false) hash ^= Success.GetHashCode();
+ if (Msg.Length != 0) hash ^= Msg.GetHashCode();
+ if (UserId != 0L) hash ^= UserId.GetHashCode();
+ if (Change != 0L) hash ^= Change.GetHashCode();
+ if (Integral != 0L) hash ^= Integral.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (Success != false) {
+ output.WriteRawTag(8);
+ output.WriteBool(Success);
+ }
+ if (Msg.Length != 0) {
+ output.WriteRawTag(18);
+ output.WriteString(Msg);
+ }
+ if (UserId != 0L) {
+ output.WriteRawTag(24);
+ output.WriteInt64(UserId);
+ }
+ if (Change != 0L) {
+ output.WriteRawTag(32);
+ output.WriteInt64(Change);
+ }
+ if (Integral != 0L) {
+ output.WriteRawTag(40);
+ output.WriteInt64(Integral);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (Success != false) {
+ output.WriteRawTag(8);
+ output.WriteBool(Success);
+ }
+ if (Msg.Length != 0) {
+ output.WriteRawTag(18);
+ output.WriteString(Msg);
+ }
+ if (UserId != 0L) {
+ output.WriteRawTag(24);
+ output.WriteInt64(UserId);
+ }
+ if (Change != 0L) {
+ output.WriteRawTag(32);
+ output.WriteInt64(Change);
+ }
+ if (Integral != 0L) {
+ output.WriteRawTag(40);
+ output.WriteInt64(Integral);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (Success != false) {
+ size += 1 + 1;
+ }
+ if (Msg.Length != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(Msg);
+ }
+ if (UserId != 0L) {
+ size += 1 + pb::CodedOutputStream.ComputeInt64Size(UserId);
+ }
+ if (Change != 0L) {
+ size += 1 + pb::CodedOutputStream.ComputeInt64Size(Change);
+ }
+ if (Integral != 0L) {
+ size += 1 + pb::CodedOutputStream.ComputeInt64Size(Integral);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(ChangeUserIntegralResp other) {
+ if (other == null) {
+ return;
+ }
+ if (other.Success != false) {
+ Success = other.Success;
+ }
+ if (other.Msg.Length != 0) {
+ Msg = other.Msg;
+ }
+ if (other.UserId != 0L) {
+ UserId = other.UserId;
+ }
+ if (other.Change != 0L) {
+ Change = other.Change;
+ }
+ if (other.Integral != 0L) {
+ Integral = other.Integral;
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 8: {
+ Success = input.ReadBool();
+ break;
+ }
+ case 18: {
+ Msg = input.ReadString();
+ break;
+ }
+ case 24: {
+ UserId = input.ReadInt64();
+ break;
+ }
+ case 32: {
+ Change = input.ReadInt64();
+ break;
+ }
+ case 40: {
+ Integral = input.ReadInt64();
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 8: {
+ Success = input.ReadBool();
+ break;
+ }
+ case 18: {
+ Msg = input.ReadString();
+ break;
+ }
+ case 24: {
+ UserId = input.ReadInt64();
+ break;
+ }
+ case 32: {
+ Change = input.ReadInt64();
+ break;
+ }
+ case 40: {
+ Integral = input.ReadInt64();
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
+ ///
+ /// CheckInMsg 每日打卡 push -> user.checkIn
+ ///
+ public sealed partial class CheckInMsg : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new CheckInMsg());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Pb.Common.CommonReflection.Descriptor.MessageTypes[4]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public CheckInMsg() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public CheckInMsg(CheckInMsg other) : this() {
+ user_ = other.user_ != null ? other.user_.Clone() : null;
+ success_ = other.success_;
+ msg_ = other.msg_;
+ integralChange_ = other.integralChange_;
+ isCritical_ = other.isCritical_;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public CheckInMsg Clone() {
+ return new CheckInMsg(this);
+ }
+
+ /// Field number for the "user" field.
+ public const int UserFieldNumber = 1;
+ private global::Pb.Common.PbUser user_;
+ ///
+ /// 最新积分放置在user中
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::Pb.Common.PbUser User {
+ get { return user_; }
+ set {
+ user_ = value;
+ }
+ }
+
+ /// Field number for the "success" field.
+ public const int SuccessFieldNumber = 2;
+ private bool success_;
+ ///
+ /// 打卡成功与否
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Success {
+ get { return success_; }
+ set {
+ success_ = value;
+ }
+ }
+
+ /// Field number for the "msg" field.
+ public const int MsgFieldNumber = 3;
+ private string msg_ = "";
+ ///
+ /// 打卡消息: [打卡成功,快乐玩耍吧! | 今天已打过卡了!]
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public string Msg {
+ get { return msg_; }
+ set {
+ msg_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
+
+ /// Field number for the "integralChange" field.
+ public const int IntegralChangeFieldNumber = 4;
+ private long integralChange_;
+ ///
+ /// 积分变动
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public long IntegralChange {
+ get { return integralChange_; }
+ set {
+ integralChange_ = value;
+ }
+ }
+
+ /// Field number for the "isCritical" field.
+ public const int IsCriticalFieldNumber = 5;
+ private bool isCritical_;
+ ///
+ /// 是否发生了打卡积分奖励暴击
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool IsCritical {
+ get { return isCritical_; }
+ set {
+ isCritical_ = value;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as CheckInMsg);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(CheckInMsg other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (!object.Equals(User, other.User)) return false;
+ if (Success != other.Success) return false;
+ if (Msg != other.Msg) return false;
+ if (IntegralChange != other.IntegralChange) return false;
+ if (IsCritical != other.IsCritical) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (user_ != null) hash ^= User.GetHashCode();
+ if (Success != false) hash ^= Success.GetHashCode();
+ if (Msg.Length != 0) hash ^= Msg.GetHashCode();
+ if (IntegralChange != 0L) hash ^= IntegralChange.GetHashCode();
+ if (IsCritical != false) hash ^= IsCritical.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (user_ != null) {
+ output.WriteRawTag(10);
+ output.WriteMessage(User);
+ }
+ if (Success != false) {
+ output.WriteRawTag(16);
+ output.WriteBool(Success);
+ }
+ if (Msg.Length != 0) {
+ output.WriteRawTag(26);
+ output.WriteString(Msg);
+ }
+ if (IntegralChange != 0L) {
+ output.WriteRawTag(32);
+ output.WriteInt64(IntegralChange);
+ }
+ if (IsCritical != false) {
+ output.WriteRawTag(40);
+ output.WriteBool(IsCritical);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (user_ != null) {
+ output.WriteRawTag(10);
+ output.WriteMessage(User);
+ }
+ if (Success != false) {
+ output.WriteRawTag(16);
+ output.WriteBool(Success);
+ }
+ if (Msg.Length != 0) {
+ output.WriteRawTag(26);
+ output.WriteString(Msg);
+ }
+ if (IntegralChange != 0L) {
+ output.WriteRawTag(32);
+ output.WriteInt64(IntegralChange);
+ }
+ if (IsCritical != false) {
+ output.WriteRawTag(40);
+ output.WriteBool(IsCritical);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (user_ != null) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(User);
+ }
+ if (Success != false) {
+ size += 1 + 1;
+ }
+ if (Msg.Length != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(Msg);
+ }
+ if (IntegralChange != 0L) {
+ size += 1 + pb::CodedOutputStream.ComputeInt64Size(IntegralChange);
+ }
+ if (IsCritical != false) {
+ size += 1 + 1;
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(CheckInMsg other) {
+ if (other == null) {
+ return;
+ }
+ if (other.user_ != null) {
+ if (user_ == null) {
+ User = new global::Pb.Common.PbUser();
+ }
+ User.MergeFrom(other.User);
+ }
+ if (other.Success != false) {
+ Success = other.Success;
+ }
+ if (other.Msg.Length != 0) {
+ Msg = other.Msg;
+ }
+ if (other.IntegralChange != 0L) {
+ IntegralChange = other.IntegralChange;
+ }
+ if (other.IsCritical != false) {
+ IsCritical = other.IsCritical;
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 10: {
+ if (user_ == null) {
+ User = new global::Pb.Common.PbUser();
+ }
+ input.ReadMessage(User);
+ break;
+ }
+ case 16: {
+ Success = input.ReadBool();
+ break;
+ }
+ case 26: {
+ Msg = input.ReadString();
+ break;
+ }
+ case 32: {
+ IntegralChange = input.ReadInt64();
+ break;
+ }
+ case 40: {
+ IsCritical = input.ReadBool();
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 10: {
+ if (user_ == null) {
+ User = new global::Pb.Common.PbUser();
+ }
+ input.ReadMessage(User);
+ break;
+ }
+ case 16: {
+ Success = input.ReadBool();
+ break;
+ }
+ case 26: {
+ Msg = input.ReadString();
+ break;
+ }
+ case 32: {
+ IntegralChange = input.ReadInt64();
+ break;
+ }
+ case 40: {
+ IsCritical = input.ReadBool();
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
+ ///
+ /// QueryIntegralMsg 用户查询信息通知 push -> user.query
+ ///
+ public sealed partial class UserQueryMsg : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new UserQueryMsg());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Pb.Common.CommonReflection.Descriptor.MessageTypes[5]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public UserQueryMsg() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public UserQueryMsg(UserQueryMsg other) : this() {
+ user_ = other.user_ != null ? other.user_.Clone() : null;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public UserQueryMsg Clone() {
+ return new UserQueryMsg(this);
+ }
+
+ /// Field number for the "user" field.
+ public const int UserFieldNumber = 1;
+ private global::Pb.Common.PbUser user_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::Pb.Common.PbUser User {
+ get { return user_; }
+ set {
+ user_ = value;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as UserQueryMsg);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(UserQueryMsg other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (!object.Equals(User, other.User)) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (user_ != null) hash ^= User.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (user_ != null) {
+ output.WriteRawTag(10);
+ output.WriteMessage(User);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (user_ != null) {
+ output.WriteRawTag(10);
+ output.WriteMessage(User);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (user_ != null) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(User);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(UserQueryMsg other) {
+ if (other == null) {
+ return;
+ }
+ if (other.user_ != null) {
+ if (user_ == null) {
+ User = new global::Pb.Common.PbUser();
+ }
+ User.MergeFrom(other.User);
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 10: {
+ if (user_ == null) {
+ User = new global::Pb.Common.PbUser();
+ }
+ input.ReadMessage(User);
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 10: {
+ if (user_ == null) {
+ User = new global::Pb.Common.PbUser();
+ }
+ input.ReadMessage(User);
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
///
/// DanmakuMsg 普通弹幕消息 push -> live.danmaku
///
@@ -700,7 +1867,7 @@ namespace Pb.Common {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
- get { return global::Pb.Common.CommonReflection.Descriptor.MessageTypes[2]; }
+ get { return global::Pb.Common.CommonReflection.Descriptor.MessageTypes[6]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -922,7 +2089,7 @@ namespace Pb.Common {
}
///
- /// 赠送礼物 push -> game.gift
+ /// 赠送礼物 push -> live.gift
///
public sealed partial class GiftMsg : pb::IMessage
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
@@ -938,7 +2105,7 @@ namespace Pb.Common {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
- get { return global::Pb.Common.CommonReflection.Descriptor.MessageTypes[3]; }
+ get { return global::Pb.Common.CommonReflection.Descriptor.MessageTypes[7]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
diff --git a/game/pb/common/common.pb.go b/game/pb/common/common.pb.go
index e37f4fe..dd36175 100644
--- a/game/pb/common/common.pb.go
+++ b/game/pb/common/common.pb.go
@@ -100,7 +100,7 @@ func (x *PbUser) GetIntegral() int64 {
return 0
}
-// UserIntegralChanged 用户积分变更 push -> user.integral
+// UserIntegralChanged 用户积分变更 push -> user.integral.change
type UserIntegralChanged struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -164,6 +164,270 @@ func (x *UserIntegralChanged) GetIntegral() int64 {
return 0
}
+// ChangeUserIntegral 更新用户积分 request -> user.integral.change
+type ChangeUserIntegralReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` // 用户ID
+ Change int64 `protobuf:"varint,2,opt,name=change,proto3" json:"change,omitempty"` // 更新积分量,负数为消耗,正数为增加
+}
+
+func (x *ChangeUserIntegralReq) Reset() {
+ *x = ChangeUserIntegralReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_common_common_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ChangeUserIntegralReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ChangeUserIntegralReq) ProtoMessage() {}
+
+func (x *ChangeUserIntegralReq) ProtoReflect() protoreflect.Message {
+ mi := &file_common_common_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 ChangeUserIntegralReq.ProtoReflect.Descriptor instead.
+func (*ChangeUserIntegralReq) Descriptor() ([]byte, []int) {
+ return file_common_common_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *ChangeUserIntegralReq) GetUserId() int64 {
+ if x != nil {
+ return x.UserId
+ }
+ return 0
+}
+
+func (x *ChangeUserIntegralReq) GetChange() int64 {
+ if x != nil {
+ return x.Change
+ }
+ return 0
+}
+
+// ChangeUserIntegralResp 用户积分更新返回
+type ChangeUserIntegralResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` // 是否更新成功
+ Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // 消息
+ UserId int64 `protobuf:"varint,3,opt,name=userId,proto3" json:"userId,omitempty"` // 用户ID
+ Change int64 `protobuf:"varint,4,opt,name=change,proto3" json:"change,omitempty"` // 本次更新积分量
+ Integral int64 `protobuf:"varint,5,opt,name=integral,proto3" json:"integral,omitempty"` // 当前剩余积分
+}
+
+func (x *ChangeUserIntegralResp) Reset() {
+ *x = ChangeUserIntegralResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_common_common_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ChangeUserIntegralResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ChangeUserIntegralResp) ProtoMessage() {}
+
+func (x *ChangeUserIntegralResp) ProtoReflect() protoreflect.Message {
+ mi := &file_common_common_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ChangeUserIntegralResp.ProtoReflect.Descriptor instead.
+func (*ChangeUserIntegralResp) Descriptor() ([]byte, []int) {
+ return file_common_common_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *ChangeUserIntegralResp) GetSuccess() bool {
+ if x != nil {
+ return x.Success
+ }
+ return false
+}
+
+func (x *ChangeUserIntegralResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *ChangeUserIntegralResp) GetUserId() int64 {
+ if x != nil {
+ return x.UserId
+ }
+ return 0
+}
+
+func (x *ChangeUserIntegralResp) GetChange() int64 {
+ if x != nil {
+ return x.Change
+ }
+ return 0
+}
+
+func (x *ChangeUserIntegralResp) GetIntegral() int64 {
+ if x != nil {
+ return x.Integral
+ }
+ return 0
+}
+
+// CheckInMsg 每日打卡 push -> user.checkIn
+type CheckInMsg struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ User *PbUser `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` // 最新积分放置在user中
+ Success bool `protobuf:"varint,2,opt,name=success,proto3" json:"success,omitempty"` // 打卡成功与否
+ Msg string `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"` // 打卡消息: [打卡成功,快乐玩耍吧! | 今天已打过卡了!]
+ IntegralChange int64 `protobuf:"varint,4,opt,name=integralChange,proto3" json:"integralChange,omitempty"` // 积分变动
+ IsCritical bool `protobuf:"varint,5,opt,name=isCritical,proto3" json:"isCritical,omitempty"` // 是否发生了打卡积分奖励暴击
+}
+
+func (x *CheckInMsg) Reset() {
+ *x = CheckInMsg{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_common_common_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CheckInMsg) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CheckInMsg) ProtoMessage() {}
+
+func (x *CheckInMsg) ProtoReflect() protoreflect.Message {
+ mi := &file_common_common_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CheckInMsg.ProtoReflect.Descriptor instead.
+func (*CheckInMsg) Descriptor() ([]byte, []int) {
+ return file_common_common_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *CheckInMsg) GetUser() *PbUser {
+ if x != nil {
+ return x.User
+ }
+ return nil
+}
+
+func (x *CheckInMsg) GetSuccess() bool {
+ if x != nil {
+ return x.Success
+ }
+ return false
+}
+
+func (x *CheckInMsg) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *CheckInMsg) GetIntegralChange() int64 {
+ if x != nil {
+ return x.IntegralChange
+ }
+ return 0
+}
+
+func (x *CheckInMsg) GetIsCritical() bool {
+ if x != nil {
+ return x.IsCritical
+ }
+ return false
+}
+
+// QueryIntegralMsg 用户查询信息通知 push -> user.query
+type UserQueryMsg struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ User *PbUser `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"`
+}
+
+func (x *UserQueryMsg) Reset() {
+ *x = UserQueryMsg{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_common_common_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UserQueryMsg) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UserQueryMsg) ProtoMessage() {}
+
+func (x *UserQueryMsg) ProtoReflect() protoreflect.Message {
+ mi := &file_common_common_proto_msgTypes[5]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UserQueryMsg.ProtoReflect.Descriptor instead.
+func (*UserQueryMsg) Descriptor() ([]byte, []int) {
+ return file_common_common_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *UserQueryMsg) GetUser() *PbUser {
+ if x != nil {
+ return x.User
+ }
+ return nil
+}
+
// DanmakuMsg 普通弹幕消息 push -> live.danmaku
type DanmakuMsg struct {
state protoimpl.MessageState
@@ -177,7 +441,7 @@ type DanmakuMsg struct {
func (x *DanmakuMsg) Reset() {
*x = DanmakuMsg{}
if protoimpl.UnsafeEnabled {
- mi := &file_common_common_proto_msgTypes[2]
+ mi := &file_common_common_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -190,7 +454,7 @@ func (x *DanmakuMsg) String() string {
func (*DanmakuMsg) ProtoMessage() {}
func (x *DanmakuMsg) ProtoReflect() protoreflect.Message {
- mi := &file_common_common_proto_msgTypes[2]
+ mi := &file_common_common_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -203,7 +467,7 @@ func (x *DanmakuMsg) ProtoReflect() protoreflect.Message {
// Deprecated: Use DanmakuMsg.ProtoReflect.Descriptor instead.
func (*DanmakuMsg) Descriptor() ([]byte, []int) {
- return file_common_common_proto_rawDescGZIP(), []int{2}
+ return file_common_common_proto_rawDescGZIP(), []int{6}
}
func (x *DanmakuMsg) GetUser() *PbUser {
@@ -220,7 +484,7 @@ func (x *DanmakuMsg) GetContent() string {
return ""
}
-// 赠送礼物 push -> game.gift
+// 赠送礼物 push -> live.gift
type GiftMsg struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -237,7 +501,7 @@ type GiftMsg struct {
func (x *GiftMsg) Reset() {
*x = GiftMsg{}
if protoimpl.UnsafeEnabled {
- mi := &file_common_common_proto_msgTypes[3]
+ mi := &file_common_common_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -250,7 +514,7 @@ func (x *GiftMsg) String() string {
func (*GiftMsg) ProtoMessage() {}
func (x *GiftMsg) ProtoReflect() protoreflect.Message {
- mi := &file_common_common_proto_msgTypes[3]
+ mi := &file_common_common_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -263,7 +527,7 @@ func (x *GiftMsg) ProtoReflect() protoreflect.Message {
// Deprecated: Use GiftMsg.ProtoReflect.Descriptor instead.
func (*GiftMsg) Descriptor() ([]byte, []int) {
- return file_common_common_proto_rawDescGZIP(), []int{3}
+ return file_common_common_proto_rawDescGZIP(), []int{7}
}
func (x *GiftMsg) GetUser() *PbUser {
@@ -329,24 +593,52 @@ var file_common_common_proto_rawDesc = []byte{
0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x68, 0x61,
0x6e, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x18,
0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x22,
- 0x4d, 0x0a, 0x0a, 0x44, 0x61, 0x6e, 0x6d, 0x61, 0x6b, 0x75, 0x4d, 0x73, 0x67, 0x12, 0x25, 0x0a,
- 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62,
- 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x62, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04,
- 0x75, 0x73, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0xa4,
- 0x01, 0x0a, 0x07, 0x47, 0x69, 0x66, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x25, 0x0a, 0x04, 0x75, 0x73,
+ 0x47, 0x0a, 0x15, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x74,
+ 0x65, 0x67, 0x72, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72,
+ 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64,
+ 0x12, 0x16, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03,
+ 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x16, 0x43, 0x68, 0x61,
+ 0x6e, 0x67, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x52,
+ 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a,
+ 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12,
+ 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52,
+ 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67,
+ 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12,
+ 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28,
+ 0x03, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x22, 0xa7, 0x01, 0x0a, 0x0a,
+ 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x4d, 0x73, 0x67, 0x12, 0x25, 0x0a, 0x04, 0x75, 0x73,
0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x63, 0x6f,
0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x62, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65,
- 0x72, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x69, 0x66, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x03, 0x52, 0x06, 0x67, 0x69, 0x66, 0x74, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d,
- 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x67,
- 0x69, 0x66, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67,
- 0x69, 0x66, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65,
- 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a,
- 0x06, 0x69, 0x73, 0x50, 0x61, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69,
- 0x73, 0x50, 0x61, 0x69, 0x64, 0x42, 0x1d, 0x5a, 0x1b, 0x64, 0x63, 0x67, 0x2f, 0x67, 0x61, 0x6d,
- 0x65, 0x2f, 0x70, 0x62, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x3b, 0x70, 0x62, 0x43, 0x6f,
- 0x6d, 0x6d, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d,
+ 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x26, 0x0a,
+ 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x43,
+ 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x43, 0x72, 0x69, 0x74, 0x69,
+ 0x63, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x43, 0x72, 0x69,
+ 0x74, 0x69, 0x63, 0x61, 0x6c, 0x22, 0x35, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x65,
+ 0x72, 0x79, 0x4d, 0x73, 0x67, 0x12, 0x25, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
+ 0x50, 0x62, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x4d, 0x0a, 0x0a,
+ 0x44, 0x61, 0x6e, 0x6d, 0x61, 0x6b, 0x75, 0x4d, 0x73, 0x67, 0x12, 0x25, 0x0a, 0x04, 0x75, 0x73,
+ 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x62, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65,
+ 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0xa4, 0x01, 0x0a, 0x07,
+ 0x47, 0x69, 0x66, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x25, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
+ 0x6e, 0x2e, 0x50, 0x62, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x16,
+ 0x0a, 0x06, 0x67, 0x69, 0x66, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06,
+ 0x67, 0x69, 0x66, 0x74, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x03, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x69, 0x66, 0x74,
+ 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x69, 0x66, 0x74,
+ 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20,
+ 0x01, 0x28, 0x03, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73,
+ 0x50, 0x61, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x50, 0x61,
+ 0x69, 0x64, 0x42, 0x1d, 0x5a, 0x1b, 0x64, 0x63, 0x67, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70,
+ 0x62, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x3b, 0x70, 0x62, 0x43, 0x6f, 0x6d, 0x6d, 0x6f,
+ 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -361,22 +653,28 @@ func file_common_common_proto_rawDescGZIP() []byte {
return file_common_common_proto_rawDescData
}
-var file_common_common_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
+var file_common_common_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
var file_common_common_proto_goTypes = []interface{}{
- (*PbUser)(nil), // 0: pb.common.PbUser
- (*UserIntegralChanged)(nil), // 1: pb.common.UserIntegralChanged
- (*DanmakuMsg)(nil), // 2: pb.common.DanmakuMsg
- (*GiftMsg)(nil), // 3: pb.common.GiftMsg
+ (*PbUser)(nil), // 0: pb.common.PbUser
+ (*UserIntegralChanged)(nil), // 1: pb.common.UserIntegralChanged
+ (*ChangeUserIntegralReq)(nil), // 2: pb.common.ChangeUserIntegralReq
+ (*ChangeUserIntegralResp)(nil), // 3: pb.common.ChangeUserIntegralResp
+ (*CheckInMsg)(nil), // 4: pb.common.CheckInMsg
+ (*UserQueryMsg)(nil), // 5: pb.common.UserQueryMsg
+ (*DanmakuMsg)(nil), // 6: pb.common.DanmakuMsg
+ (*GiftMsg)(nil), // 7: pb.common.GiftMsg
}
var file_common_common_proto_depIdxs = []int32{
0, // 0: pb.common.UserIntegralChanged.user:type_name -> pb.common.PbUser
- 0, // 1: pb.common.DanmakuMsg.user:type_name -> pb.common.PbUser
- 0, // 2: pb.common.GiftMsg.user:type_name -> pb.common.PbUser
- 3, // [3:3] is the sub-list for method output_type
- 3, // [3:3] is the sub-list for method input_type
- 3, // [3:3] is the sub-list for extension type_name
- 3, // [3:3] is the sub-list for extension extendee
- 0, // [0:3] is the sub-list for field type_name
+ 0, // 1: pb.common.CheckInMsg.user:type_name -> pb.common.PbUser
+ 0, // 2: pb.common.UserQueryMsg.user:type_name -> pb.common.PbUser
+ 0, // 3: pb.common.DanmakuMsg.user:type_name -> pb.common.PbUser
+ 0, // 4: pb.common.GiftMsg.user:type_name -> pb.common.PbUser
+ 5, // [5:5] is the sub-list for method output_type
+ 5, // [5:5] is the sub-list for method input_type
+ 5, // [5:5] is the sub-list for extension type_name
+ 5, // [5:5] is the sub-list for extension extendee
+ 0, // [0:5] is the sub-list for field type_name
}
func init() { file_common_common_proto_init() }
@@ -410,7 +708,7 @@ func file_common_common_proto_init() {
}
}
file_common_common_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*DanmakuMsg); i {
+ switch v := v.(*ChangeUserIntegralReq); i {
case 0:
return &v.state
case 1:
@@ -422,6 +720,54 @@ func file_common_common_proto_init() {
}
}
file_common_common_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ChangeUserIntegralResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_common_common_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CheckInMsg); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_common_common_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UserQueryMsg); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_common_common_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DanmakuMsg); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_common_common_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GiftMsg); i {
case 0:
return &v.state
@@ -440,7 +786,7 @@ func file_common_common_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_common_common_proto_rawDesc,
NumEnums: 0,
- NumMessages: 4,
+ NumMessages: 8,
NumExtensions: 0,
NumServices: 0,
},
diff --git a/game/pb/common/common.proto b/game/pb/common/common.proto
index 3f9dec0..5916789 100644
--- a/game/pb/common/common.proto
+++ b/game/pb/common/common.proto
@@ -13,13 +13,42 @@ message PbUser {
int64 integral = 5; // 用户当前积分
}
-// UserIntegralChanged 用户积分变更 push -> user.integral
+// UserIntegralChanged 用户积分变更 push -> user.integral.change
message UserIntegralChanged {
pb.common.PbUser user = 1;
int64 change = 2; // 变更量
int64 integral = 3; // 现有量
}
+// ChangeUserIntegral 更新用户积分 request -> user.integral.change
+message ChangeUserIntegralReq {
+ int64 userId = 1; // 用户ID
+ int64 change = 2; // 更新积分量,负数为消耗,正数为增加
+}
+
+// ChangeUserIntegralResp 用户积分更新返回
+message ChangeUserIntegralResp {
+ bool success = 1; // 是否更新成功
+ string msg = 2; // 消息
+ int64 userId = 3; // 用户ID
+ int64 change = 4; // 本次更新积分量
+ int64 integral = 5; // 当前剩余积分
+}
+
+// CheckInMsg 每日打卡 push -> user.checkIn
+message CheckInMsg {
+ pb.common.PbUser user = 1; // 最新积分放置在user中
+ bool success = 2; // 打卡成功与否
+ string msg = 3; // 打卡消息: [打卡成功,快乐玩耍吧! | 今天已打过卡了!]
+ int64 integralChange = 4; // 积分变动
+ bool isCritical = 5; // 是否发生了打卡积分奖励暴击
+}
+
+// QueryIntegralMsg 用户查询信息通知 push -> user.query
+message UserQueryMsg {
+ pb.common.PbUser user = 1;
+}
+
// DanmakuMsg 普通弹幕消息 push -> live.danmaku
message DanmakuMsg {
pb.common.PbUser user = 1;
diff --git a/game/pb/game/zhg/Command.cs b/game/pb/game/zhg/Command.cs
index dfe117b..3e40f7d 100644
--- a/game/pb/game/zhg/Command.cs
+++ b/game/pb/game/zhg/Command.cs
@@ -29,10 +29,13 @@ namespace Pb.Game.Zhg {
"VXNlciI7CgpDcmVhdGVVbml0Eh8KBHVzZXIYASABKAsyES5wYi5jb21tb24u",
"UGJVc2VyEgwKBHVuaXQYAiABKAkiNQoETW92ZRIfCgR1c2VyGAEgASgLMhEu",
"cGIuY29tbW9uLlBiVXNlchIMCgRsaW5lGAIgASgJIisKCE91dGJyZWFrEh8K",
- "BHVzZXIYASABKAsyES5wYi5jb21tb24uUGJVc2VyIiYKA1dhaRIfCgR1c2Vy",
- "GAEgASgLMhEucGIuY29tbW9uLlBiVXNlciI9CgxCdWlsZGluZ01vZGUSHwoE",
- "dXNlchgBIAEoCzIRLnBiLmNvbW1vbi5QYlVzZXISDAoEbW9kZRgCIAEoCUIg",
- "Wh5kY2cvZ2FtZS9wYi9nYW1lL3poZztwYkdhbWVaaGdiBnByb3RvMw=="));
+ "BHVzZXIYASABKAsyES5wYi5jb21tb24uUGJVc2VyImoKEE91dGJyZWFrSW50",
+ "ZWdyYWwSHwoEdXNlchgBIAEoCzIRLnBiLmNvbW1vbi5QYlVzZXISEAoIdW5p",
+ "dFR5cGUYAiABKAkSDQoFY291bnQYAyABKAUSFAoMY29zdEludGVncmFsGAQg",
+ "ASgDIiYKA1dhaRIfCgR1c2VyGAEgASgLMhEucGIuY29tbW9uLlBiVXNlciI9",
+ "CgxCdWlsZGluZ01vZGUSHwoEdXNlchgBIAEoCzIRLnBiLmNvbW1vbi5QYlVz",
+ "ZXISDAoEbW9kZRgCIAEoCUIgWh5kY2cvZ2FtZS9wYi9nYW1lL3poZztwYkdh",
+ "bWVaaGdiBnByb3RvMw=="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::Pb.Common.CommonReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
@@ -40,6 +43,7 @@ namespace Pb.Game.Zhg {
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.CreateUnit), global::Pb.Game.Zhg.CreateUnit.Parser, new[]{ "User", "Unit" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.Move), global::Pb.Game.Zhg.Move.Parser, new[]{ "User", "Line" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.Outbreak), global::Pb.Game.Zhg.Outbreak.Parser, new[]{ "User" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.OutbreakIntegral), global::Pb.Game.Zhg.OutbreakIntegral.Parser, new[]{ "User", "UnitType", "Count", "CostIntegral" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.Wai), global::Pb.Game.Zhg.Wai.Parser, new[]{ "User" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.BuildingMode), global::Pb.Game.Zhg.BuildingMode.Parser, new[]{ "User", "Mode" }, null, null, null, null)
}));
@@ -932,6 +936,327 @@ namespace Pb.Game.Zhg {
}
+ ///
+ /// 暴兵(积分) push -> game.outbreak.integral
+ ///
+ public sealed partial class OutbreakIntegral : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new OutbreakIntegral());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Pb.Game.Zhg.CommandReflection.Descriptor.MessageTypes[4]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public OutbreakIntegral() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public OutbreakIntegral(OutbreakIntegral other) : this() {
+ user_ = other.user_ != null ? other.user_.Clone() : null;
+ unitType_ = other.unitType_;
+ count_ = other.count_;
+ costIntegral_ = other.costIntegral_;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public OutbreakIntegral Clone() {
+ return new OutbreakIntegral(this);
+ }
+
+ /// Field number for the "user" field.
+ public const int UserFieldNumber = 1;
+ private global::Pb.Common.PbUser user_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::Pb.Common.PbUser User {
+ get { return user_; }
+ set {
+ user_ = value;
+ }
+ }
+
+ /// Field number for the "unitType" field.
+ public const int UnitTypeFieldNumber = 2;
+ private string unitType_ = "";
+ ///
+ /// 暴兵类型
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public string UnitType {
+ get { return unitType_; }
+ set {
+ unitType_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
+
+ /// Field number for the "count" field.
+ public const int CountFieldNumber = 3;
+ private int count_;
+ ///
+ /// 数量
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int Count {
+ get { return count_; }
+ set {
+ count_ = value;
+ }
+ }
+
+ /// Field number for the "costIntegral" field.
+ public const int CostIntegralFieldNumber = 4;
+ private long costIntegral_;
+ ///
+ /// 消耗积分
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public long CostIntegral {
+ get { return costIntegral_; }
+ set {
+ costIntegral_ = value;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as OutbreakIntegral);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(OutbreakIntegral other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (!object.Equals(User, other.User)) return false;
+ if (UnitType != other.UnitType) return false;
+ if (Count != other.Count) return false;
+ if (CostIntegral != other.CostIntegral) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (user_ != null) hash ^= User.GetHashCode();
+ if (UnitType.Length != 0) hash ^= UnitType.GetHashCode();
+ if (Count != 0) hash ^= Count.GetHashCode();
+ if (CostIntegral != 0L) hash ^= CostIntegral.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (user_ != null) {
+ output.WriteRawTag(10);
+ output.WriteMessage(User);
+ }
+ if (UnitType.Length != 0) {
+ output.WriteRawTag(18);
+ output.WriteString(UnitType);
+ }
+ if (Count != 0) {
+ output.WriteRawTag(24);
+ output.WriteInt32(Count);
+ }
+ if (CostIntegral != 0L) {
+ output.WriteRawTag(32);
+ output.WriteInt64(CostIntegral);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (user_ != null) {
+ output.WriteRawTag(10);
+ output.WriteMessage(User);
+ }
+ if (UnitType.Length != 0) {
+ output.WriteRawTag(18);
+ output.WriteString(UnitType);
+ }
+ if (Count != 0) {
+ output.WriteRawTag(24);
+ output.WriteInt32(Count);
+ }
+ if (CostIntegral != 0L) {
+ output.WriteRawTag(32);
+ output.WriteInt64(CostIntegral);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (user_ != null) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(User);
+ }
+ if (UnitType.Length != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(UnitType);
+ }
+ if (Count != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeInt32Size(Count);
+ }
+ if (CostIntegral != 0L) {
+ size += 1 + pb::CodedOutputStream.ComputeInt64Size(CostIntegral);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(OutbreakIntegral other) {
+ if (other == null) {
+ return;
+ }
+ if (other.user_ != null) {
+ if (user_ == null) {
+ User = new global::Pb.Common.PbUser();
+ }
+ User.MergeFrom(other.User);
+ }
+ if (other.UnitType.Length != 0) {
+ UnitType = other.UnitType;
+ }
+ if (other.Count != 0) {
+ Count = other.Count;
+ }
+ if (other.CostIntegral != 0L) {
+ CostIntegral = other.CostIntegral;
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 10: {
+ if (user_ == null) {
+ User = new global::Pb.Common.PbUser();
+ }
+ input.ReadMessage(User);
+ break;
+ }
+ case 18: {
+ UnitType = input.ReadString();
+ break;
+ }
+ case 24: {
+ Count = input.ReadInt32();
+ break;
+ }
+ case 32: {
+ CostIntegral = input.ReadInt64();
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 10: {
+ if (user_ == null) {
+ User = new global::Pb.Common.PbUser();
+ }
+ input.ReadMessage(User);
+ break;
+ }
+ case 18: {
+ UnitType = input.ReadString();
+ break;
+ }
+ case 24: {
+ Count = input.ReadInt32();
+ break;
+ }
+ case 32: {
+ CostIntegral = input.ReadInt64();
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
///
/// 查询位置 push -> game.wai
///
@@ -949,7 +1274,7 @@ namespace Pb.Game.Zhg {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
- get { return global::Pb.Game.Zhg.CommandReflection.Descriptor.MessageTypes[4]; }
+ get { return global::Pb.Game.Zhg.CommandReflection.Descriptor.MessageTypes[5]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -1150,7 +1475,7 @@ namespace Pb.Game.Zhg {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
- get { return global::Pb.Game.Zhg.CommandReflection.Descriptor.MessageTypes[5]; }
+ get { return global::Pb.Game.Zhg.CommandReflection.Descriptor.MessageTypes[6]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
diff --git a/game/pb/game/zhg/Stat.cs b/game/pb/game/zhg/Stat.cs
index 1b53d89..298a794 100644
--- a/game/pb/game/zhg/Stat.cs
+++ b/game/pb/game/zhg/Stat.cs
@@ -32,14 +32,19 @@ namespace Pb.Game.Zhg {
"Zy5TdGF0UHZQUmVwb3J0Lkl0ZW0SMgoJbG9zdEl0ZW1zGAQgAygLMh8ucGIu",
"Z2FtZS56aGcuU3RhdFB2UFJlcG9ydC5JdGVtGlsKBEl0ZW0SCwoDdWlkGAEg",
"ASgDEg4KBmRhbWFnZRgCIAEoAxIQCghkZURhbWFnZRgDIAEoAxIQCghraWxs",
- "VW5pdBgEIAEoAxISCgpkZUtpbGxVbml0GAUgASgDQiBaHmRjZy9nYW1lL3Bi",
- "L2dhbWUvemhnO3BiR2FtZVpoZ2IGcHJvdG8z"));
+ "VW5pdBgEIAEoAxISCgpkZUtpbGxVbml0GAUgASgDIq4BChFTdGF0UHZQUmVw",
+ "b3J0UmVzcBI1Cgh3aW5JdGVtcxgDIAMoCzIjLnBiLmdhbWUuemhnLlN0YXRQ",
+ "dlBSZXBvcnRSZXNwLkl0ZW0SNgoJbG9zdEl0ZW1zGAQgAygLMiMucGIuZ2Ft",
+ "ZS56aGcuU3RhdFB2UFJlcG9ydFJlc3AuSXRlbRoqCgRJdGVtEgsKA3VpZBgB",
+ "IAEoAxIVCg1hZGRvbkludGVncmFsGAIgASgDQiBaHmRjZy9nYW1lL3BiL2dh",
+ "bWUvemhnO3BiR2FtZVpoZ2IGcHJvdG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.StatPvPKill), global::Pb.Game.Zhg.StatPvPKill.Parser, new[]{ "Uid", "TargetUid", "IsGeneral" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.StatPvPFirstBlood), global::Pb.Game.Zhg.StatPvPFirstBlood.Parser, new[]{ "Uid", "Type" }, null, null, null, null),
- new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.StatPvPReport), global::Pb.Game.Zhg.StatPvPReport.Parser, new[]{ "WinCamp", "GeneralUid", "WinItems", "LostItems" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.StatPvPReport.Types.Item), global::Pb.Game.Zhg.StatPvPReport.Types.Item.Parser, new[]{ "Uid", "Damage", "DeDamage", "KillUnit", "DeKillUnit" }, null, null, null, null)})
+ new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.StatPvPReport), global::Pb.Game.Zhg.StatPvPReport.Parser, new[]{ "WinCamp", "GeneralUid", "WinItems", "LostItems" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.StatPvPReport.Types.Item), global::Pb.Game.Zhg.StatPvPReport.Types.Item.Parser, new[]{ "Uid", "Damage", "DeDamage", "KillUnit", "DeKillUnit" }, null, null, null, null)}),
+ new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.StatPvPReportResp), global::Pb.Game.Zhg.StatPvPReportResp.Parser, new[]{ "WinItems", "LostItems" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.StatPvPReportResp.Types.Item), global::Pb.Game.Zhg.StatPvPReportResp.Types.Item.Parser, new[]{ "Uid", "AddonIntegral" }, null, null, null, null)})
}));
}
#endregion
@@ -1209,6 +1214,459 @@ namespace Pb.Game.Zhg {
}
+ ///
+ /// 通知-PvP战报 回复
+ ///
+ public sealed partial class StatPvPReportResp : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new StatPvPReportResp());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Pb.Game.Zhg.StatReflection.Descriptor.MessageTypes[3]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public StatPvPReportResp() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public StatPvPReportResp(StatPvPReportResp other) : this() {
+ winItems_ = other.winItems_.Clone();
+ lostItems_ = other.lostItems_.Clone();
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public StatPvPReportResp Clone() {
+ return new StatPvPReportResp(this);
+ }
+
+ /// Field number for the "winItems" field.
+ public const int WinItemsFieldNumber = 3;
+ private static readonly pb::FieldCodec _repeated_winItems_codec
+ = pb::FieldCodec.ForMessage(26, global::Pb.Game.Zhg.StatPvPReportResp.Types.Item.Parser);
+ private readonly pbc::RepeatedField winItems_ = new pbc::RepeatedField();
+ ///
+ /// 获胜方数据
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public pbc::RepeatedField WinItems {
+ get { return winItems_; }
+ }
+
+ /// Field number for the "lostItems" field.
+ public const int LostItemsFieldNumber = 4;
+ private static readonly pb::FieldCodec _repeated_lostItems_codec
+ = pb::FieldCodec.ForMessage(34, global::Pb.Game.Zhg.StatPvPReportResp.Types.Item.Parser);
+ private readonly pbc::RepeatedField lostItems_ = new pbc::RepeatedField();
+ ///
+ /// 战败方数据
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public pbc::RepeatedField LostItems {
+ get { return lostItems_; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as StatPvPReportResp);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(StatPvPReportResp other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if(!winItems_.Equals(other.winItems_)) return false;
+ if(!lostItems_.Equals(other.lostItems_)) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ hash ^= winItems_.GetHashCode();
+ hash ^= lostItems_.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ winItems_.WriteTo(output, _repeated_winItems_codec);
+ lostItems_.WriteTo(output, _repeated_lostItems_codec);
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ winItems_.WriteTo(ref output, _repeated_winItems_codec);
+ lostItems_.WriteTo(ref output, _repeated_lostItems_codec);
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ size += winItems_.CalculateSize(_repeated_winItems_codec);
+ size += lostItems_.CalculateSize(_repeated_lostItems_codec);
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(StatPvPReportResp other) {
+ if (other == null) {
+ return;
+ }
+ winItems_.Add(other.winItems_);
+ lostItems_.Add(other.lostItems_);
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 26: {
+ winItems_.AddEntriesFrom(input, _repeated_winItems_codec);
+ break;
+ }
+ case 34: {
+ lostItems_.AddEntriesFrom(input, _repeated_lostItems_codec);
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 26: {
+ winItems_.AddEntriesFrom(ref input, _repeated_winItems_codec);
+ break;
+ }
+ case 34: {
+ lostItems_.AddEntriesFrom(ref input, _repeated_lostItems_codec);
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ #region Nested types
+ /// Container for nested types declared in the StatPvPReportResp message type.
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static partial class Types {
+ public sealed partial class Item : pb::IMessage-
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser
- _parser = new pb::MessageParser
- (() => new Item());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser
- Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::Pb.Game.Zhg.StatPvPReportResp.Descriptor.NestedTypes[0]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public Item() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public Item(Item other) : this() {
+ uid_ = other.uid_;
+ addonIntegral_ = other.addonIntegral_;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public Item Clone() {
+ return new Item(this);
+ }
+
+ /// Field number for the "uid" field.
+ public const int UidFieldNumber = 1;
+ private long uid_;
+ ///
+ /// 用户ID
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public long Uid {
+ get { return uid_; }
+ set {
+ uid_ = value;
+ }
+ }
+
+ /// Field number for the "addonIntegral" field.
+ public const int AddonIntegralFieldNumber = 2;
+ private long addonIntegral_;
+ ///
+ /// 本次获取的积分
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public long AddonIntegral {
+ get { return addonIntegral_; }
+ set {
+ addonIntegral_ = value;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as Item);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(Item other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (Uid != other.Uid) return false;
+ if (AddonIntegral != other.AddonIntegral) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (Uid != 0L) hash ^= Uid.GetHashCode();
+ if (AddonIntegral != 0L) hash ^= AddonIntegral.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (Uid != 0L) {
+ output.WriteRawTag(8);
+ output.WriteInt64(Uid);
+ }
+ if (AddonIntegral != 0L) {
+ output.WriteRawTag(16);
+ output.WriteInt64(AddonIntegral);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (Uid != 0L) {
+ output.WriteRawTag(8);
+ output.WriteInt64(Uid);
+ }
+ if (AddonIntegral != 0L) {
+ output.WriteRawTag(16);
+ output.WriteInt64(AddonIntegral);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (Uid != 0L) {
+ size += 1 + pb::CodedOutputStream.ComputeInt64Size(Uid);
+ }
+ if (AddonIntegral != 0L) {
+ size += 1 + pb::CodedOutputStream.ComputeInt64Size(AddonIntegral);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(Item other) {
+ if (other == null) {
+ return;
+ }
+ if (other.Uid != 0L) {
+ Uid = other.Uid;
+ }
+ if (other.AddonIntegral != 0L) {
+ AddonIntegral = other.AddonIntegral;
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 8: {
+ Uid = input.ReadInt64();
+ break;
+ }
+ case 16: {
+ AddonIntegral = input.ReadInt64();
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 8: {
+ Uid = input.ReadInt64();
+ break;
+ }
+ case 16: {
+ AddonIntegral = input.ReadInt64();
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
+ }
+ #endregion
+
+ }
+
#endregion
}
diff --git a/game/pb/game/zhg/command.pb.go b/game/pb/game/zhg/command.pb.go
index 80d4bb0..801c72c 100644
--- a/game/pb/game/zhg/command.pb.go
+++ b/game/pb/game/zhg/command.pb.go
@@ -229,6 +229,78 @@ func (x *Outbreak) GetUser() *common.PbUser {
return nil
}
+// 暴兵(积分) push -> game.outbreak.integral
+type OutbreakIntegral struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ User *common.PbUser `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"`
+ UnitType string `protobuf:"bytes,2,opt,name=unitType,proto3" json:"unitType,omitempty"` // 暴兵类型
+ Count int32 `protobuf:"varint,3,opt,name=count,proto3" json:"count,omitempty"` // 数量
+ CostIntegral int64 `protobuf:"varint,4,opt,name=costIntegral,proto3" json:"costIntegral,omitempty"` // 消耗积分
+}
+
+func (x *OutbreakIntegral) Reset() {
+ *x = OutbreakIntegral{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_game_zhg_command_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *OutbreakIntegral) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OutbreakIntegral) ProtoMessage() {}
+
+func (x *OutbreakIntegral) ProtoReflect() protoreflect.Message {
+ mi := &file_game_zhg_command_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use OutbreakIntegral.ProtoReflect.Descriptor instead.
+func (*OutbreakIntegral) Descriptor() ([]byte, []int) {
+ return file_game_zhg_command_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *OutbreakIntegral) GetUser() *common.PbUser {
+ if x != nil {
+ return x.User
+ }
+ return nil
+}
+
+func (x *OutbreakIntegral) GetUnitType() string {
+ if x != nil {
+ return x.UnitType
+ }
+ return ""
+}
+
+func (x *OutbreakIntegral) GetCount() int32 {
+ if x != nil {
+ return x.Count
+ }
+ return 0
+}
+
+func (x *OutbreakIntegral) GetCostIntegral() int64 {
+ if x != nil {
+ return x.CostIntegral
+ }
+ return 0
+}
+
// 查询位置 push -> game.wai
type Wai struct {
state protoimpl.MessageState
@@ -241,7 +313,7 @@ type Wai struct {
func (x *Wai) Reset() {
*x = Wai{}
if protoimpl.UnsafeEnabled {
- mi := &file_game_zhg_command_proto_msgTypes[4]
+ mi := &file_game_zhg_command_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -254,7 +326,7 @@ func (x *Wai) String() string {
func (*Wai) ProtoMessage() {}
func (x *Wai) ProtoReflect() protoreflect.Message {
- mi := &file_game_zhg_command_proto_msgTypes[4]
+ mi := &file_game_zhg_command_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -267,7 +339,7 @@ func (x *Wai) ProtoReflect() protoreflect.Message {
// Deprecated: Use Wai.ProtoReflect.Descriptor instead.
func (*Wai) Descriptor() ([]byte, []int) {
- return file_game_zhg_command_proto_rawDescGZIP(), []int{4}
+ return file_game_zhg_command_proto_rawDescGZIP(), []int{5}
}
func (x *Wai) GetUser() *common.PbUser {
@@ -290,7 +362,7 @@ type BuildingMode struct {
func (x *BuildingMode) Reset() {
*x = BuildingMode{}
if protoimpl.UnsafeEnabled {
- mi := &file_game_zhg_command_proto_msgTypes[5]
+ mi := &file_game_zhg_command_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -303,7 +375,7 @@ func (x *BuildingMode) String() string {
func (*BuildingMode) ProtoMessage() {}
func (x *BuildingMode) ProtoReflect() protoreflect.Message {
- mi := &file_game_zhg_command_proto_msgTypes[5]
+ mi := &file_game_zhg_command_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -316,7 +388,7 @@ func (x *BuildingMode) ProtoReflect() protoreflect.Message {
// Deprecated: Use BuildingMode.ProtoReflect.Descriptor instead.
func (*BuildingMode) Descriptor() ([]byte, []int) {
- return file_game_zhg_command_proto_rawDescGZIP(), []int{5}
+ return file_game_zhg_command_proto_rawDescGZIP(), []int{6}
}
func (x *BuildingMode) GetUser() *common.PbUser {
@@ -354,17 +426,27 @@ var file_game_zhg_command_proto_rawDesc = []byte{
0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x31, 0x0a, 0x08, 0x4f, 0x75, 0x74,
0x62, 0x72, 0x65, 0x61, 0x6b, 0x12, 0x25, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
- 0x50, 0x62, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x2c, 0x0a, 0x03,
- 0x57, 0x61, 0x69, 0x12, 0x25, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x62,
- 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x49, 0x0a, 0x0c, 0x42, 0x75,
- 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x04, 0x75, 0x73,
- 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x63, 0x6f,
- 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x62, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65,
- 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x20, 0x5a, 0x1e, 0x64, 0x63, 0x67, 0x2f, 0x67, 0x61, 0x6d,
- 0x65, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x7a, 0x68, 0x67, 0x3b, 0x70, 0x62,
- 0x47, 0x61, 0x6d, 0x65, 0x5a, 0x68, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x50, 0x62, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x8f, 0x01, 0x0a,
+ 0x10, 0x4f, 0x75, 0x74, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61,
+ 0x6c, 0x12, 0x25, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x62, 0x55, 0x73,
+ 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x6e, 0x69, 0x74,
+ 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x6e, 0x69, 0x74,
+ 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f,
+ 0x73, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03,
+ 0x52, 0x0c, 0x63, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x22, 0x2c,
+ 0x0a, 0x03, 0x57, 0x61, 0x69, 0x12, 0x25, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
+ 0x50, 0x62, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x49, 0x0a, 0x0c,
+ 0x42, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x04,
+ 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x62, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75,
+ 0x73, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x20, 0x5a, 0x1e, 0x64, 0x63, 0x67, 0x2f, 0x67,
+ 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x7a, 0x68, 0x67, 0x3b,
+ 0x70, 0x62, 0x47, 0x61, 0x6d, 0x65, 0x5a, 0x68, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x33,
}
var (
@@ -379,28 +461,30 @@ func file_game_zhg_command_proto_rawDescGZIP() []byte {
return file_game_zhg_command_proto_rawDescData
}
-var file_game_zhg_command_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
+var file_game_zhg_command_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
var file_game_zhg_command_proto_goTypes = []interface{}{
- (*JoinGame)(nil), // 0: pb.game.zhg.JoinGame
- (*CreateUnit)(nil), // 1: pb.game.zhg.CreateUnit
- (*Move)(nil), // 2: pb.game.zhg.Move
- (*Outbreak)(nil), // 3: pb.game.zhg.Outbreak
- (*Wai)(nil), // 4: pb.game.zhg.Wai
- (*BuildingMode)(nil), // 5: pb.game.zhg.BuildingMode
- (*common.PbUser)(nil), // 6: pb.common.PbUser
+ (*JoinGame)(nil), // 0: pb.game.zhg.JoinGame
+ (*CreateUnit)(nil), // 1: pb.game.zhg.CreateUnit
+ (*Move)(nil), // 2: pb.game.zhg.Move
+ (*Outbreak)(nil), // 3: pb.game.zhg.Outbreak
+ (*OutbreakIntegral)(nil), // 4: pb.game.zhg.OutbreakIntegral
+ (*Wai)(nil), // 5: pb.game.zhg.Wai
+ (*BuildingMode)(nil), // 6: pb.game.zhg.BuildingMode
+ (*common.PbUser)(nil), // 7: pb.common.PbUser
}
var file_game_zhg_command_proto_depIdxs = []int32{
- 6, // 0: pb.game.zhg.JoinGame.user:type_name -> pb.common.PbUser
- 6, // 1: pb.game.zhg.CreateUnit.user:type_name -> pb.common.PbUser
- 6, // 2: pb.game.zhg.Move.user:type_name -> pb.common.PbUser
- 6, // 3: pb.game.zhg.Outbreak.user:type_name -> pb.common.PbUser
- 6, // 4: pb.game.zhg.Wai.user:type_name -> pb.common.PbUser
- 6, // 5: pb.game.zhg.BuildingMode.user:type_name -> pb.common.PbUser
- 6, // [6:6] is the sub-list for method output_type
- 6, // [6:6] is the sub-list for method input_type
- 6, // [6:6] is the sub-list for extension type_name
- 6, // [6:6] is the sub-list for extension extendee
- 0, // [0:6] is the sub-list for field type_name
+ 7, // 0: pb.game.zhg.JoinGame.user:type_name -> pb.common.PbUser
+ 7, // 1: pb.game.zhg.CreateUnit.user:type_name -> pb.common.PbUser
+ 7, // 2: pb.game.zhg.Move.user:type_name -> pb.common.PbUser
+ 7, // 3: pb.game.zhg.Outbreak.user:type_name -> pb.common.PbUser
+ 7, // 4: pb.game.zhg.OutbreakIntegral.user:type_name -> pb.common.PbUser
+ 7, // 5: pb.game.zhg.Wai.user:type_name -> pb.common.PbUser
+ 7, // 6: pb.game.zhg.BuildingMode.user:type_name -> pb.common.PbUser
+ 7, // [7:7] is the sub-list for method output_type
+ 7, // [7:7] is the sub-list for method input_type
+ 7, // [7:7] is the sub-list for extension type_name
+ 7, // [7:7] is the sub-list for extension extendee
+ 0, // [0:7] is the sub-list for field type_name
}
func init() { file_game_zhg_command_proto_init() }
@@ -458,7 +542,7 @@ func file_game_zhg_command_proto_init() {
}
}
file_game_zhg_command_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Wai); i {
+ switch v := v.(*OutbreakIntegral); i {
case 0:
return &v.state
case 1:
@@ -470,6 +554,18 @@ func file_game_zhg_command_proto_init() {
}
}
file_game_zhg_command_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Wai); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_game_zhg_command_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BuildingMode); i {
case 0:
return &v.state
@@ -488,7 +584,7 @@ func file_game_zhg_command_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_game_zhg_command_proto_rawDesc,
NumEnums: 0,
- NumMessages: 6,
+ NumMessages: 7,
NumExtensions: 0,
NumServices: 0,
},
diff --git a/game/pb/game/zhg/command.proto b/game/pb/game/zhg/command.proto
index f27bf76..e939ad5 100644
--- a/game/pb/game/zhg/command.proto
+++ b/game/pb/game/zhg/command.proto
@@ -28,6 +28,14 @@ message Outbreak{
pb.common.PbUser user = 1;
}
+// 暴兵(积分) push -> game.outbreak.integral
+message OutbreakIntegral {
+ pb.common.PbUser user = 1;
+ string unitType = 2; // 暴兵类型
+ int32 count = 3; // 数量
+ int64 costIntegral = 4; // 消耗积分
+}
+
// 查询位置 push -> game.wai
message Wai{
pb.common.PbUser user = 1;
diff --git a/game/pb/game/zhg/stat.pb.go b/game/pb/game/zhg/stat.pb.go
index d28022e..edbb343 100644
--- a/game/pb/game/zhg/stat.pb.go
+++ b/game/pb/game/zhg/stat.pb.go
@@ -212,6 +212,62 @@ func (x *StatPvPReport) GetLostItems() []*StatPvPReport_Item {
return nil
}
+// 通知-PvP战报 回复
+type StatPvPReportResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ WinItems []*StatPvPReportResp_Item `protobuf:"bytes,3,rep,name=winItems,proto3" json:"winItems,omitempty"` // 获胜方数据
+ LostItems []*StatPvPReportResp_Item `protobuf:"bytes,4,rep,name=lostItems,proto3" json:"lostItems,omitempty"` // 战败方数据
+}
+
+func (x *StatPvPReportResp) Reset() {
+ *x = StatPvPReportResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_game_zhg_stat_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *StatPvPReportResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StatPvPReportResp) ProtoMessage() {}
+
+func (x *StatPvPReportResp) ProtoReflect() protoreflect.Message {
+ mi := &file_game_zhg_stat_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use StatPvPReportResp.ProtoReflect.Descriptor instead.
+func (*StatPvPReportResp) Descriptor() ([]byte, []int) {
+ return file_game_zhg_stat_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *StatPvPReportResp) GetWinItems() []*StatPvPReportResp_Item {
+ if x != nil {
+ return x.WinItems
+ }
+ return nil
+}
+
+func (x *StatPvPReportResp) GetLostItems() []*StatPvPReportResp_Item {
+ if x != nil {
+ return x.LostItems
+ }
+ return nil
+}
+
type StatPvPReport_Item struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -227,7 +283,7 @@ type StatPvPReport_Item struct {
func (x *StatPvPReport_Item) Reset() {
*x = StatPvPReport_Item{}
if protoimpl.UnsafeEnabled {
- mi := &file_game_zhg_stat_proto_msgTypes[3]
+ mi := &file_game_zhg_stat_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -240,7 +296,7 @@ func (x *StatPvPReport_Item) String() string {
func (*StatPvPReport_Item) ProtoMessage() {}
func (x *StatPvPReport_Item) ProtoReflect() protoreflect.Message {
- mi := &file_game_zhg_stat_proto_msgTypes[3]
+ mi := &file_game_zhg_stat_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -291,6 +347,61 @@ func (x *StatPvPReport_Item) GetDeKillUnit() int64 {
return 0
}
+type StatPvPReportResp_Item struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Uid int64 `protobuf:"varint,1,opt,name=uid,proto3" json:"uid,omitempty"` // 用户ID
+ AddonIntegral int64 `protobuf:"varint,2,opt,name=addonIntegral,proto3" json:"addonIntegral,omitempty"` // 本次获取的积分
+}
+
+func (x *StatPvPReportResp_Item) Reset() {
+ *x = StatPvPReportResp_Item{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_game_zhg_stat_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *StatPvPReportResp_Item) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StatPvPReportResp_Item) ProtoMessage() {}
+
+func (x *StatPvPReportResp_Item) ProtoReflect() protoreflect.Message {
+ mi := &file_game_zhg_stat_proto_msgTypes[5]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use StatPvPReportResp_Item.ProtoReflect.Descriptor instead.
+func (*StatPvPReportResp_Item) Descriptor() ([]byte, []int) {
+ return file_game_zhg_stat_proto_rawDescGZIP(), []int{3, 0}
+}
+
+func (x *StatPvPReportResp_Item) GetUid() int64 {
+ if x != nil {
+ return x.Uid
+ }
+ return 0
+}
+
+func (x *StatPvPReportResp_Item) GetAddonIntegral() int64 {
+ if x != nil {
+ return x.AddonIntegral
+ }
+ return 0
+}
+
var File_game_zhg_stat_proto protoreflect.FileDescriptor
var file_game_zhg_stat_proto_rawDesc = []byte{
@@ -326,10 +437,24 @@ var file_game_zhg_stat_proto_rawDesc = []byte{
0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x69, 0x6c, 0x6c, 0x55, 0x6e, 0x69, 0x74, 0x18, 0x04, 0x20,
0x01, 0x28, 0x03, 0x52, 0x08, 0x6b, 0x69, 0x6c, 0x6c, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x1e, 0x0a,
0x0a, 0x64, 0x65, 0x4b, 0x69, 0x6c, 0x6c, 0x55, 0x6e, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28,
- 0x03, 0x52, 0x0a, 0x64, 0x65, 0x4b, 0x69, 0x6c, 0x6c, 0x55, 0x6e, 0x69, 0x74, 0x42, 0x20, 0x5a,
- 0x1e, 0x64, 0x63, 0x67, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x61, 0x6d,
- 0x65, 0x2f, 0x7a, 0x68, 0x67, 0x3b, 0x70, 0x62, 0x47, 0x61, 0x6d, 0x65, 0x5a, 0x68, 0x67, 0x62,
- 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x03, 0x52, 0x0a, 0x64, 0x65, 0x4b, 0x69, 0x6c, 0x6c, 0x55, 0x6e, 0x69, 0x74, 0x22, 0xd7, 0x01,
+ 0x0a, 0x11, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52,
+ 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x08, 0x77, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18,
+ 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x2e,
+ 0x7a, 0x68, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x52, 0x65, 0x70, 0x6f, 0x72,
+ 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x08, 0x77, 0x69, 0x6e, 0x49,
+ 0x74, 0x65, 0x6d, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x6c, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d,
+ 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x67, 0x61, 0x6d,
+ 0x65, 0x2e, 0x7a, 0x68, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x52, 0x65, 0x70,
+ 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x09, 0x6c, 0x6f,
+ 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x3e, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12,
+ 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69,
+ 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x64, 0x64, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72,
+ 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x61, 0x64, 0x64, 0x6f, 0x6e, 0x49,
+ 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x42, 0x20, 0x5a, 0x1e, 0x64, 0x63, 0x67, 0x2f, 0x67,
+ 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x7a, 0x68, 0x67, 0x3b,
+ 0x70, 0x62, 0x47, 0x61, 0x6d, 0x65, 0x5a, 0x68, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x33,
}
var (
@@ -344,21 +469,25 @@ func file_game_zhg_stat_proto_rawDescGZIP() []byte {
return file_game_zhg_stat_proto_rawDescData
}
-var file_game_zhg_stat_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
+var file_game_zhg_stat_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
var file_game_zhg_stat_proto_goTypes = []interface{}{
- (*StatPvPKill)(nil), // 0: pb.game.zhg.StatPvPKill
- (*StatPvPFirstBlood)(nil), // 1: pb.game.zhg.StatPvPFirstBlood
- (*StatPvPReport)(nil), // 2: pb.game.zhg.StatPvPReport
- (*StatPvPReport_Item)(nil), // 3: pb.game.zhg.StatPvPReport.Item
+ (*StatPvPKill)(nil), // 0: pb.game.zhg.StatPvPKill
+ (*StatPvPFirstBlood)(nil), // 1: pb.game.zhg.StatPvPFirstBlood
+ (*StatPvPReport)(nil), // 2: pb.game.zhg.StatPvPReport
+ (*StatPvPReportResp)(nil), // 3: pb.game.zhg.StatPvPReportResp
+ (*StatPvPReport_Item)(nil), // 4: pb.game.zhg.StatPvPReport.Item
+ (*StatPvPReportResp_Item)(nil), // 5: pb.game.zhg.StatPvPReportResp.Item
}
var file_game_zhg_stat_proto_depIdxs = []int32{
- 3, // 0: pb.game.zhg.StatPvPReport.winItems:type_name -> pb.game.zhg.StatPvPReport.Item
- 3, // 1: pb.game.zhg.StatPvPReport.lostItems:type_name -> pb.game.zhg.StatPvPReport.Item
- 2, // [2:2] is the sub-list for method output_type
- 2, // [2:2] is the sub-list for method input_type
- 2, // [2:2] is the sub-list for extension type_name
- 2, // [2:2] is the sub-list for extension extendee
- 0, // [0:2] is the sub-list for field type_name
+ 4, // 0: pb.game.zhg.StatPvPReport.winItems:type_name -> pb.game.zhg.StatPvPReport.Item
+ 4, // 1: pb.game.zhg.StatPvPReport.lostItems:type_name -> pb.game.zhg.StatPvPReport.Item
+ 5, // 2: pb.game.zhg.StatPvPReportResp.winItems:type_name -> pb.game.zhg.StatPvPReportResp.Item
+ 5, // 3: pb.game.zhg.StatPvPReportResp.lostItems:type_name -> pb.game.zhg.StatPvPReportResp.Item
+ 4, // [4:4] is the sub-list for method output_type
+ 4, // [4:4] is the sub-list for method input_type
+ 4, // [4:4] is the sub-list for extension type_name
+ 4, // [4:4] is the sub-list for extension extendee
+ 0, // [0:4] is the sub-list for field type_name
}
func init() { file_game_zhg_stat_proto_init() }
@@ -404,6 +533,18 @@ func file_game_zhg_stat_proto_init() {
}
}
file_game_zhg_stat_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*StatPvPReportResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_game_zhg_stat_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StatPvPReport_Item); i {
case 0:
return &v.state
@@ -415,6 +556,18 @@ func file_game_zhg_stat_proto_init() {
return nil
}
}
+ file_game_zhg_stat_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*StatPvPReportResp_Item); 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{
@@ -422,7 +575,7 @@ func file_game_zhg_stat_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_game_zhg_stat_proto_rawDesc,
NumEnums: 0,
- NumMessages: 4,
+ NumMessages: 6,
NumExtensions: 0,
NumServices: 0,
},
diff --git a/game/pb/game/zhg/stat.proto b/game/pb/game/zhg/stat.proto
index b18cad6..b52f326 100644
--- a/game/pb/game/zhg/stat.proto
+++ b/game/pb/game/zhg/stat.proto
@@ -30,4 +30,14 @@ message StatPvPReport {
int64 generalUid = 2; // 名将UID
repeated Item winItems = 3; // 获胜方数据
repeated Item lostItems = 4; // 战败方数据
+}
+
+// 通知-PvP战报 回复
+message StatPvPReportResp {
+ message Item {
+ int64 uid = 1; // 用户ID
+ int64 addonIntegral = 2; // 本次获取的积分
+ }
+ repeated Item winItems = 3; // 获胜方数据
+ repeated Item lostItems = 4; // 战败方数据
}
\ No newline at end of file
diff --git a/go.mod b/go.mod
index 396d5d1..e20329e 100644
--- a/go.mod
+++ b/go.mod
@@ -6,7 +6,7 @@ require (
git.noahlan.cn/northlan/ngs v0.1.2
git.noahlan.cn/northlan/ntools-go/kafka v1.0.1
git.noahlan.cn/northlan/ntools-go/logger v1.0.1
- git.noahlan.cn/northlan/ntools-go/stringn v1.0.0
+ git.noahlan.cn/northlan/ntools-go/stringn v1.1.0
github.com/Shopify/sarama v1.32.0
github.com/golang/protobuf v1.5.2
github.com/gookit/config/v2 v2.1.0
diff --git a/go.sum b/go.sum
index e3ccf4e..35456c1 100644
--- a/go.sum
+++ b/go.sum
@@ -39,6 +39,8 @@ git.noahlan.cn/northlan/ntools-go/logger v1.0.1 h1:+08dMbsKGECM1B7H8GqwtRzGqOl5y
git.noahlan.cn/northlan/ntools-go/logger v1.0.1/go.mod h1:QQwgylABV9P8MFGvXKlujJO5NV0MP0JUPzqQt3I0Y+w=
git.noahlan.cn/northlan/ntools-go/stringn v1.0.0 h1:kQlk6JkJSX2JRsxtji6Ht1f3FfwdJiFEJ52k0ehjR8s=
git.noahlan.cn/northlan/ntools-go/stringn v1.0.0/go.mod h1:71TA+fLLhTNGsZvX4Fd/YbV6UeYiliW5hxK+3a9wKko=
+git.noahlan.cn/northlan/ntools-go/stringn v1.1.0 h1:wcV/1RAUxEX17CDBPs9HmgY+HFtTX0jJoM6n9Q4Nj70=
+git.noahlan.cn/northlan/ntools-go/stringn v1.1.0/go.mod h1:71TA+fLLhTNGsZvX4Fd/YbV6UeYiliW5hxK+3a9wKko=
git.noahlan.cn/northlan/ntools-go/uuid v1.0.0 h1:C0PazSzG3+e/Hfh2C6Qf8R46sNZmZKTOcWS990yUmrE=
git.noahlan.cn/northlan/ntools-go/uuid v1.0.0/go.mod h1:qTbvG+IYjUYTjIOvo//P3KRBTJOSCt9Z3Sv2xnjlG0w=
github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
diff --git a/main.go b/main.go
index 02d851e..359e0b7 100644
--- a/main.go
+++ b/main.go
@@ -2,7 +2,7 @@ package main
import (
"dcg/config"
- "dcg/game/live"
+ "dcg/game/live_logic"
"dcg/game/logic"
"dcg/game/msg_transfer"
"dcg/game/svc"
@@ -25,7 +25,7 @@ func main() {
ctx := svc.NewServiceContext()
logic.Init(ctx)
- live.InitLiveManager(ctx)
+ live_logic.InitLiveManager(ctx)
msg_transfer.Init(ctx)
msg_transfer.Run()
diff --git a/pkg/cmd/cmd_parser.go b/pkg/cmd/cmd_parser.go
index ecbe4a1..cb09d97 100644
--- a/pkg/cmd/cmd_parser.go
+++ b/pkg/cmd/cmd_parser.go
@@ -11,7 +11,8 @@ type (
Arr []string // 具体CMD []string
}
Parser struct {
- trie *ac.Trie
+ ac ac.AhoCorasick
+ distinct bool // 命令是否去重
allKeyArr []string
keywordMap map[string]struct{}
}
@@ -19,8 +20,9 @@ type (
}
)
-func NewCMDParser(keys []string) *Parser {
+func NewCMDParser(distinct bool, keys ...string) *Parser {
p := &Parser{
+ distinct: distinct,
keywordMap: make(map[string]struct{}),
allKeyArr: make([]string, 0, len(keys)),
}
@@ -28,23 +30,37 @@ func NewCMDParser(keys []string) *Parser {
p.keywordMap[keyword] = struct{}{}
p.allKeyArr = append(p.allKeyArr, keyword)
}
- p.trie = ac.NewTrieBuilder().AddStrings(p.allKeyArr).Build()
+ builder := ac.NewAhoCorasickBuilder(ac.Opts{
+ AsciiCaseInsensitive: true,
+ MatchOnlyWholeWords: false,
+ MatchKind: ac.LeftMostLongestMatch,
+ DFA: true,
+ })
+ p.ac = builder.Build(p.allKeyArr)
return p
}
-func (p *Parser) ParseTest(content string) {
- p.trie.MatchString(content)
+func (p *Parser) ParseTest(content string) []ac.Match {
+ return p.ac.FindAll(content)
}
+// SetDistinct 设置命令去重
+func (p *Parser) SetDistinct(distinct bool) {
+ p.distinct = distinct
+}
+
+// Parse 从弹幕内容解析命令
+// distinct 是否去重
func (p *Parser) Parse(content string) *CMD {
// 移除多余空格,小写
tmpContent := strings.ToLower(strings.TrimSpace(content))
- matches := p.trie.MatchString(tmpContent)
allKeyLen := 0
matchedKeys := make([]string, 0)
- for _, match := range matches {
- tmp := p.allKeyArr[match.Pattern()]
+
+ iter := p.ac.Iter(tmpContent)
+ for next := iter.Next(); next != nil; next = iter.Next() {
+ tmp := p.allKeyArr[next.Pattern()]
matchedKeys = append(matchedKeys, tmp)
allKeyLen += len(tmp)
}
@@ -53,7 +69,7 @@ func (p *Parser) Parse(content string) *CMD {
// 避免同类型指令重复
arrMap := make(map[rune]struct{})
var matchedCmdArr []string
- if isCMD {
+ if p.distinct && isCMD {
matchedCmdArr = make([]string, 0, len(matchedKeys))
for i := len(matchedKeys) - 1; i >= 0; i-- {
s := matchedKeys[i]
@@ -64,8 +80,9 @@ func (p *Parser) Parse(content string) *CMD {
}
}
}
- return &CMD{
- IsCMD: isCMD,
- Arr: matchedCmdArr,
+ resp := &CMD{IsCMD: isCMD, Arr: matchedKeys}
+ if p.distinct {
+ resp.Arr = matchedCmdArr
}
+ return resp
}
diff --git a/pkg/cmd/cmd_parser_test.go b/pkg/cmd/cmd_parser_test.go
index 5dd158f..eee7671 100644
--- a/pkg/cmd/cmd_parser_test.go
+++ b/pkg/cmd/cmd_parser_test.go
@@ -37,6 +37,12 @@ func TestParse(t *testing.T) {
}
}
+func TestA(t *testing.T) {
+ p := NewCMDParser([]string{"j", "j1", "j2", "j3"})
+ c := p.Parse("j2j2jjjjja")
+ fmt.Println(c)
+}
+
func BenchmarkCmd(b *testing.B) {
p := NewCMDParser([]string{"j", "c1", "c2", "c3", "c4", "b1", "b2", "b3", "s", "b2", "b3", "w", "m1", "m2", "m3", "加入", "加入游戏"})
content := "jc2m2b1s"