Merge branch 'meixiongfeng' of http://git.legu.cc/liwei_3d/go_dreamfactory into dev

This commit is contained in:
meixiongfeng 2023-10-07 10:45:11 +08:00
commit 084eb5e275
8 changed files with 1007 additions and 632 deletions

View File

@ -36,6 +36,7 @@ const (
AtlasType = "atlas" //铁匠铺资源 AtlasType = "atlas" //铁匠铺资源
PandaType = "panda" //熊猫武馆资源 PandaType = "panda" //熊猫武馆资源
MountsType = "mts" //捕羊大赛坐骑资源 MountsType = "mts" //捕羊大赛坐骑资源
TitleType = "title" //称号资源
) )
type Autogenerated struct { type Autogenerated struct {

View File

@ -204,6 +204,7 @@ type (
// 清除玩家的虚拟币 // 清除玩家的虚拟币
CleanUserMerchantmoney(session IUserSession) (err error) CleanUserMerchantmoney(session IUserSession) (err error)
ChangeUserCaravanLv(session IUserSession, lv int32) (errdata *pb.ErrorData) ChangeUserCaravanLv(session IUserSession, lv int32) (errdata *pb.ErrorData)
AddTitle(session IUserSession, pers map[string]int32, bPush bool) (errdata *pb.ErrorData)
} }
//武器模块 //武器模块
IEquipment interface { IEquipment interface {

View File

@ -441,6 +441,7 @@ func (this *ModuleBase) DispenseRes(session comm.IUserSession, res []*cfg.Gameat
panda map[string]int32 // 熊猫武馆资源 panda map[string]int32 // 熊猫武馆资源
mts map[string]int32 // 捕羊大赛资源 mts map[string]int32 // 捕羊大赛资源
per map[string]int32 // 捕羊大赛资源 per map[string]int32 // 捕羊大赛资源
title map[string]int32 // 称号资源
) )
items = make(map[string]int32, 0) items = make(map[string]int32, 0)
heros = make(map[string]int32, 0) heros = make(map[string]int32, 0)
@ -451,6 +452,7 @@ func (this *ModuleBase) DispenseRes(session comm.IUserSession, res []*cfg.Gameat
panda = make(map[string]int32, 0) panda = make(map[string]int32, 0)
mts = make(map[string]int32, 0) mts = make(map[string]int32, 0)
per = make(map[string]int32, 0) per = make(map[string]int32, 0)
title = make(map[string]int32, 0)
for _, v := range res { for _, v := range res {
switch v.A { switch v.A {
@ -474,6 +476,8 @@ func (this *ModuleBase) DispenseRes(session comm.IUserSession, res []*cfg.Gameat
mts[v.T] = v.N // N 表示等级 mts[v.T] = v.N // N 表示等级
case comm.PerType: case comm.PerType:
per[v.T] = 1 per[v.T] = 1
case comm.TitleType:
title[v.T] = 1
default: default:
this.Error("not found res type", log.Field{Key: "Type", Value: v.A}) // 找不到资源类型 this.Error("not found res type", log.Field{Key: "Type", Value: v.A}) // 找不到资源类型
} }
@ -522,6 +526,10 @@ func (this *ModuleBase) DispenseRes(session comm.IUserSession, res []*cfg.Gameat
errdata = this.ModuleUser.AddPer(session, per, bPush) errdata = this.ModuleUser.AddPer(session, per, bPush)
this.Debugf("发放用户皮肤资源资源: %v errdata: %v", mts, errdata) this.Debugf("发放用户皮肤资源资源: %v errdata: %v", mts, errdata)
} }
if len(title) > 0 {
errdata = this.ModuleUser.AddTitle(session, title, bPush)
this.Debugf("发放用户称号资源资源: %v errdata: %v", mts, errdata)
}
return return
} }
@ -660,6 +668,7 @@ func (this *ModuleBase) DispenseAtno(session comm.IUserSession, res []*cfg.Gamea
panda map[string]int32 // 熊猫武馆资源 panda map[string]int32 // 熊猫武馆资源
mts map[string]int32 // 捕羊大赛资源 mts map[string]int32 // 捕羊大赛资源
per map[string]int32 // 捕羊大赛资源 per map[string]int32 // 捕羊大赛资源
title map[string]int32 // 称号资源
equipschange []*pb.DB_Equipment equipschange []*pb.DB_Equipment
heroschange []*pb.UserAtno heroschange []*pb.UserAtno
itemschange []*pb.UserAtno itemschange []*pb.UserAtno
@ -673,6 +682,7 @@ func (this *ModuleBase) DispenseAtno(session comm.IUserSession, res []*cfg.Gamea
panda = make(map[string]int32, 0) panda = make(map[string]int32, 0)
mts = make(map[string]int32, 0) mts = make(map[string]int32, 0)
per = make(map[string]int32, 0) per = make(map[string]int32, 0)
title = make(map[string]int32, 0)
for _, v := range res { for _, v := range res {
switch v.A { switch v.A {
@ -696,6 +706,8 @@ func (this *ModuleBase) DispenseAtno(session comm.IUserSession, res []*cfg.Gamea
mts[v.T] += v.N mts[v.T] += v.N
case comm.PerType: case comm.PerType:
per[v.T] = 1 per[v.T] = 1
case comm.TitleType:
title[v.T] = 1
default: default:
this.Error("not found res type", log.Field{Key: "Type", Value: v.A}) // 找不到资源类型 this.Error("not found res type", log.Field{Key: "Type", Value: v.A}) // 找不到资源类型
} }
@ -809,6 +821,19 @@ func (this *ModuleBase) DispenseAtno(session comm.IUserSession, res []*cfg.Gamea
} }
this.Debugf("发放用户皮肤资源资源: %v errdata: %v", mts, errdata) this.Debugf("发放用户皮肤资源资源: %v errdata: %v", mts, errdata)
} }
if len(title) > 0 {
if errdata = this.ModuleUser.AddTitle(session, title, bPush); errdata != nil {
return
}
for k, v := range title {
atno = append(atno, &pb.UserAtno{
A: comm.TitleType,
T: k,
N: v,
})
}
this.Debugf("发放用户称号资源资源: %v errdata: %v", mts, errdata)
}
return return
} }

View File

@ -0,0 +1,74 @@
package user
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
)
//参数校验
func (this *apiComp) SwitchTitleCheck(session comm.IUserSession, req *pb.UserSwitchTitleReq) (errdata *pb.ErrorData) {
if req.Title == "" {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_ReqParameterError,
Title: pb.ErrorCode_ReqParameterError.ToString(),
}
}
return
}
func (this *apiComp) SwitchTitle(session comm.IUserSession, req *pb.UserSwitchTitleReq) (errdata *pb.ErrorData) {
var (
change map[string]interface{} = make(map[string]interface{})
user *pb.DBUser
err error
keep bool
)
if errdata = this.SwitchTitleCheck(session, req); errdata != nil {
return
}
user, err = this.module.GetUser(session.GetUserId())
if err != nil {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_DBError,
Title: pb.ErrorCode_DBError.ToString(),
Message: err.Error(),
}
return
}
for _, v := range user.Titles {
if req.Title == v {
keep = true
break
}
}
if !keep {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_UserNoTitle,
Title: pb.ErrorCode_UserNoTitle.ToString(),
}
return
}
user.Curtitle = req.Title
change["curtitle"] = user.Curtitle
if err = this.module.modelUser.Change(session.GetUserId(), change); err != nil {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_DBError,
Title: pb.ErrorCode_DBError.ToString(),
Message: err.Error(),
}
return
}
session.SendMsg(string(this.module.GetType()), "titlelist", &pb.UserTitleListPush{
Titles: user.Titles,
Curtitle: user.Curtitle,
})
session.SendMsg(string(this.module.GetType()), "switchtitle", &pb.UserSwitchTitleResp{
Issucc: true,
Curtitle: req.Title,
})
return
}

View File

@ -1306,3 +1306,53 @@ func (this *User) ChangeUserCaravanLv(session comm.IUserSession, lv int32) (errd
} }
return return
} }
// 添加用户皮肤数据
func (this *User) AddTitle(session comm.IUserSession, titles map[string]int32, bPush bool) (errdata *pb.ErrorData) {
var (
err error
user *pb.DBUser
change map[string]interface{} = make(map[string]interface{})
iskeep bool
)
if user, err = this.GetUser(session.GetUserId()); err != nil {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_UserSessionNobeing,
Title: pb.ErrorCode_UserSessionNobeing.ToString(),
Message: err.Error(),
}
return
}
for k, _ := range titles {
iskeep = false
for _, v1 := range user.Titles {
if k == v1 {
iskeep = true
break
}
}
if !iskeep {
user.Titles = append(user.Titles, k)
change["titles"] = user.Titles
}
}
if len(change) > 0 {
if err = this.modelUser.Change(session.GetUserId(), change); err != nil {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_DBError,
Title: pb.ErrorCode_DBError.ToString(),
Message: err.Error(),
}
return
}
if bPush {
session.SendMsg(string(this.GetType()), "titlelist", &pb.UserTitleListPush{
Titles: user.Titles,
Curtitle: user.Curtitle,
})
}
}
return
}

File diff suppressed because it is too large Load Diff

View File

@ -132,7 +132,7 @@ type DBUser struct {
Lv int32 `protobuf:"varint,18,opt,name=lv,proto3" json:"lv" bson:"lv"` //等级 Lv int32 `protobuf:"varint,18,opt,name=lv,proto3" json:"lv" bson:"lv"` //等级
Vip int32 `protobuf:"varint,19,opt,name=vip,proto3" json:"vip" bson:"vip"` // vip等级 Vip int32 `protobuf:"varint,19,opt,name=vip,proto3" json:"vip" bson:"vip"` // vip等级
Diamond int64 `protobuf:"varint,20,opt,name=diamond,proto3" json:"diamond" bson:"diamond"` // 钻石 Diamond int64 `protobuf:"varint,20,opt,name=diamond,proto3" json:"diamond" bson:"diamond"` // 钻石
Title int32 `protobuf:"varint,21,opt,name=title,proto3" json:"title" bson:"title"` //头衔 //int32 title = 21; //@go_tags(`bson:"title"`) 头衔
Offlinetime int64 `protobuf:"varint,22,opt,name=offlinetime,proto3" json:"offlinetime" bson:"offlinetime"` //离线时间 Offlinetime int64 `protobuf:"varint,22,opt,name=offlinetime,proto3" json:"offlinetime" bson:"offlinetime"` //离线时间
Figure int32 `protobuf:"varint,23,opt,name=figure,proto3" json:"figure" bson:"figure"` //主角形象 Figure int32 `protobuf:"varint,23,opt,name=figure,proto3" json:"figure" bson:"figure"` //主角形象
Bgp string `protobuf:"bytes,24,opt,name=bgp,proto3" json:"bgp" bson:"bgp"` //背景 Bgp string `protobuf:"bytes,24,opt,name=bgp,proto3" json:"bgp" bson:"bgp"` //背景
@ -157,6 +157,8 @@ type DBUser struct {
Integral int64 `protobuf:"varint,44,opt,name=integral,proto3" json:"integral" bson:"integral"` //充值积分 Integral int64 `protobuf:"varint,44,opt,name=integral,proto3" json:"integral" bson:"integral"` //充值积分
Nologindays int32 `protobuf:"varint,45,opt,name=nologindays,proto3" json:"nologindays" bson:"nologindays"` //连续多少天未登录 Nologindays int32 `protobuf:"varint,45,opt,name=nologindays,proto3" json:"nologindays" bson:"nologindays"` //连续多少天未登录
Caravanlv int32 `protobuf:"varint,46,opt,name=caravanlv,proto3" json:"caravanlv"` Caravanlv int32 `protobuf:"varint,46,opt,name=caravanlv,proto3" json:"caravanlv"`
Titles []string `protobuf:"bytes,47,rep,name=titles,proto3" json:"titles"` // 称号
Curtitle string `protobuf:"bytes,48,opt,name=curtitle,proto3" json:"curtitle"` // 默认称号
} }
func (x *DBUser) Reset() { func (x *DBUser) Reset() {
@ -331,13 +333,6 @@ func (x *DBUser) GetDiamond() int64 {
return 0 return 0
} }
func (x *DBUser) GetTitle() int32 {
if x != nil {
return x.Title
}
return 0
}
func (x *DBUser) GetOfflinetime() int64 { func (x *DBUser) GetOfflinetime() int64 {
if x != nil { if x != nil {
return x.Offlinetime return x.Offlinetime
@ -506,6 +501,20 @@ func (x *DBUser) GetCaravanlv() int32 {
return 0 return 0
} }
func (x *DBUser) GetTitles() []string {
if x != nil {
return x.Titles
}
return nil
}
func (x *DBUser) GetCurtitle() string {
if x != nil {
return x.Curtitle
}
return ""
}
type DBUserSetting struct { type DBUserSetting struct {
state protoimpl.MessageState state protoimpl.MessageState
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
@ -831,7 +840,7 @@ var file_user_user_db_proto_rawDesc = []byte{
0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x0e, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x0e,
0x0a, 0x02, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x12, 0x1c, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x12, 0x1c,
0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28,
0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xe4, 0x08, 0x0a, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x82, 0x09, 0x0a,
0x06, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x06, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69,
@ -861,87 +870,88 @@ var file_user_user_db_proto_rawDesc = []byte{
0x02, 0x6c, 0x76, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x69, 0x70, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x02, 0x6c, 0x76, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x69, 0x70, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05,
0x52, 0x03, 0x76, 0x69, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x52, 0x03, 0x76, 0x69, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64,
0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x64, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x64, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12,
0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x20, 0x0a, 0x0b, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x16,
0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x74, 0x69, 0x6d,
0x74, 0x69, 0x6d, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6f, 0x66, 0x66, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28,
0x69, 0x6e, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x67, 0x75, 0x72, 0x05, 0x52, 0x06, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x67, 0x70,
0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x12, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x62, 0x67, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x70,
0x10, 0x0a, 0x03, 0x62, 0x67, 0x70, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x62, 0x67, 0x73, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x70, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x6c,
0x70, 0x12, 0x0e, 0x0a, 0x02, 0x70, 0x73, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x70, 0x61, 0x73, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x50, 0x73, 0x53, 0x65, 0x63, 0x18,
0x73, 0x12, 0x2a, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x1a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x76,
0x50, 0x73, 0x53, 0x65, 0x63, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6c, 0x61, 0x73, 0x65, 0x72, 0x50, 0x73, 0x53, 0x65, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x6f, 0x6f, 0x6e, 0x67,
0x74, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x50, 0x73, 0x53, 0x65, 0x63, 0x12, 0x1a, 0x0a, 0x6f, 0x6c, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6d, 0x6f, 0x6f, 0x6e, 0x67,
0x08, 0x6d, 0x6f, 0x6f, 0x6e, 0x67, 0x6f, 0x6c, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x6f, 0x6c, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x31, 0x18, 0x1c,
0x08, 0x6d, 0x6f, 0x6f, 0x6e, 0x67, 0x6f, 0x6c, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x6c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x31, 0x12, 0x18, 0x0a,
0x65, 0x6e, 0x74, 0x31, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x61, 0x6c, 0x65, 0x07, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x32, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07,
0x6e, 0x74, 0x31, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x32, 0x18, 0x1d, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x6c, 0x65, 0x6e,
0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x32, 0x12, 0x18, 0x0a, 0x74, 0x33, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74,
0x07, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x33, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x33, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x34, 0x18, 0x1f, 0x20, 0x01,
0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x33, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x28, 0x05, 0x52, 0x07, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x34, 0x12, 0x24, 0x0a, 0x0d, 0x6d,
0x74, 0x34, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x18, 0x20, 0x20, 0x01,
0x34, 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x6d, 0x6f, 0x6e, 0x28, 0x05, 0x52, 0x0d, 0x6d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x6d, 0x6f, 0x6e, 0x65,
0x65, 0x79, 0x18, 0x20, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6b, 0x69, 0x6e, 0x73, 0x18, 0x21, 0x20, 0x03, 0x28, 0x09,
0x6e, 0x74, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6b, 0x69, 0x6e, 0x73, 0x52, 0x05, 0x73, 0x6b, 0x69, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x53, 0x6b,
0x18, 0x21, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x73, 0x6b, 0x69, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x69, 0x6e, 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x75, 0x72, 0x53, 0x6b, 0x69,
0x07, 0x63, 0x75, 0x72, 0x53, 0x6b, 0x69, 0x6e, 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x75, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x23,
0x63, 0x75, 0x72, 0x53, 0x6b, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x75, 0x72, 0x41, 0x63, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x75, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12,
0x74, 0x69, 0x6f, 0x6e, 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x75, 0x72, 0x41, 0x14, 0x0a, 0x05, 0x63, 0x75, 0x72, 0x42, 0x67, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x75, 0x72, 0x42, 0x67, 0x18, 0x24, 0x63, 0x75, 0x72, 0x42, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x65, 0x61, 0x18, 0x25, 0x20,
0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x75, 0x72, 0x42, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x01, 0x28, 0x05, 0x52, 0x04, 0x61, 0x72, 0x65, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61,
0x72, 0x65, 0x61, 0x18, 0x25, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x61, 0x72, 0x65, 0x61, 0x12, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x26, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e,
0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x26, 0x20, 0x01, 0x28, 0x05, 0x6e, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x27, 0x20, 0x01,
0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x63, 0x6f, 0x28, 0x05, 0x52, 0x05, 0x76, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x6e, 0x61,
0x64, 0x65, 0x18, 0x27, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x6d, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x6e, 0x61, 0x6d, 0x65, 0x12,
0x14, 0x0a, 0x05, 0x76, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x03,
0x76, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x6f,
0x18, 0x2a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x66, 0x69, 0x74, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x72, 0x6f, 0x66, 0x69,
0x16, 0x0a, 0x06, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x18, 0x2c, 0x20,
0x06, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x12, 0x20, 0x0a,
0x72, 0x61, 0x6c, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x0b, 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x64, 0x61, 0x79, 0x73, 0x18, 0x2d, 0x20, 0x01,
0x72, 0x61, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x64, 0x61, 0x28, 0x05, 0x52, 0x0b, 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x64, 0x61, 0x79, 0x73, 0x12,
0x79, 0x73, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x6c, 0x76, 0x18, 0x2e, 0x20, 0x01,
0x6e, 0x64, 0x61, 0x79, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x28, 0x05, 0x52, 0x09, 0x63, 0x61, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x6c, 0x76, 0x12, 0x16, 0x0a,
0x6c, 0x76, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x61, 0x72, 0x61, 0x76, 0x61, 0x06, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x73, 0x18, 0x2f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x74,
0x6e, 0x6c, 0x76, 0x22, 0xc7, 0x02, 0x0a, 0x0d, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x69, 0x74, 0x6c, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x75, 0x72, 0x74, 0x69, 0x74, 0x6c,
0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x65, 0x18, 0x30, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x75, 0x72, 0x74, 0x69, 0x74, 0x6c,
0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x75, 0x61, 0x7a, 0x68, 0x65, 0x22, 0xc7, 0x02, 0x0a, 0x0d, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74,
0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x75, 0x61, 0x7a, 0x68, 0x69, 0x12, 0x69, 0x6e, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x1c, 0x0a, 0x09, 0x6b, 0x61, 0x6e, 0x67, 0x6a, 0x75, 0x63, 0x68, 0x69, 0x18, 0x04, 0x20, 0x01, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x75, 0x61, 0x7a, 0x68, 0x69, 0x18,
0x28, 0x0d, 0x52, 0x09, 0x6b, 0x61, 0x6e, 0x67, 0x6a, 0x75, 0x63, 0x68, 0x69, 0x12, 0x1a, 0x0a, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x75, 0x61, 0x7a, 0x68, 0x69, 0x12, 0x1c, 0x0a,
0x08, 0x67, 0x61, 0x6f, 0x67, 0x75, 0x61, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6b, 0x61, 0x6e, 0x67, 0x6a, 0x75, 0x63, 0x68, 0x69, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d,
0x08, 0x67, 0x61, 0x6f, 0x67, 0x75, 0x61, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x75, 0x6c, 0x52, 0x09, 0x6b, 0x61, 0x6e, 0x67, 0x6a, 0x75, 0x63, 0x68, 0x69, 0x12, 0x1a, 0x0a, 0x08, 0x67,
0x69, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x77, 0x75, 0x6c, 0x69, 0x12, 0x14, 0x0a, 0x61, 0x6f, 0x67, 0x75, 0x61, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x67,
0x05, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6d, 0x75, 0x61, 0x6f, 0x67, 0x75, 0x61, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x75, 0x6c, 0x69, 0x18,
0x73, 0x69, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x18, 0x08, 0x20, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x77, 0x75, 0x6c, 0x69, 0x12, 0x14, 0x0a, 0x05, 0x6d,
0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x75, 0x73, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6d, 0x75, 0x73, 0x69,
0x75, 0x61, 0x6a, 0x69, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x67, 0x75, 0x61, 0x6a, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28,
0x69, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x75, 0x62, 0x65, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x08, 0x52, 0x06, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x75, 0x61,
0x52, 0x05, 0x66, 0x75, 0x62, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x6e, 0x73, 0x75, 0x6a, 0x69, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x67, 0x75, 0x61, 0x6a, 0x69, 0x12,
0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x74, 0x61, 0x6e, 0x73, 0x75, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x75, 0x62, 0x65, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05,
0x18, 0x0a, 0x07, 0x68, 0x75, 0x6f, 0x64, 0x6f, 0x6e, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x66, 0x75, 0x62, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x6e, 0x73, 0x75, 0x6f, 0x18,
0x52, 0x07, 0x68, 0x75, 0x6f, 0x64, 0x6f, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x78, 0x75, 0x61, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x74, 0x61, 0x6e, 0x73, 0x75, 0x6f, 0x12, 0x18, 0x0a,
0x6e, 0x73, 0x68, 0x61, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x78, 0x75, 0x07, 0x68, 0x75, 0x6f, 0x64, 0x6f, 0x6e, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07,
0x61, 0x6e, 0x73, 0x68, 0x61, 0x6e, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x61, 0x69, 0x6a, 0x69, 0x68, 0x75, 0x6f, 0x64, 0x6f, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x78, 0x75, 0x61, 0x6e, 0x73,
0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x73, 0x61, 0x69, 0x6a, 0x69, 0x22, 0xb8, 0x01, 0x68, 0x61, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x78, 0x75, 0x61, 0x6e,
0x0a, 0x06, 0x44, 0x42, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x73, 0x68, 0x61, 0x6e, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x61, 0x69, 0x6a, 0x69, 0x18, 0x0e,
0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x73, 0x61, 0x69, 0x6a, 0x69, 0x22, 0xb8, 0x01, 0x0a, 0x06,
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x69, 0x44, 0x42, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
0x67, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x69, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20,
0x67, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x69, 0x67, 0x6e,
0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x69, 0x67, 0x6e,
0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x05, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x75, 0x6e,
0x01, 0x28, 0x05, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x75,
0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x64, 0x61, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28,
0x70, 0x75, 0x7a, 0x7a, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x70, 0x75, 0x05, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x79, 0x18,
0x7a, 0x7a, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x70, 0x73, 0x18, 0x08, 0x20, 0x01, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x64, 0x61, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x75,
0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x70, 0x73, 0x22, 0x57, 0x0a, 0x0c, 0x44, 0x42, 0x52, 0x61, 0x7a, 0x7a, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x70, 0x75, 0x7a, 0x7a,
0x6e, 0x64, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x61, 0x6d, 0x65, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x70, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05,
0x5f, 0x63, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x61, 0x6d, 0x65, 0x43, 0x52, 0x04, 0x74, 0x69, 0x70, 0x73, 0x22, 0x57, 0x0a, 0x0c, 0x44, 0x42, 0x52, 0x61, 0x6e, 0x64,
0x6e, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x63,
0x05, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x61, 0x6d, 0x65, 0x43, 0x6e, 0x12,
0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
0x33, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42,
0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (

View File

@ -3427,6 +3427,165 @@ func (x *UserGetdepositResp) GetAtn() *UserAssets {
return nil return nil
} }
//请求设置默认称号
type UserSwitchTitleReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title"`
}
func (x *UserSwitchTitleReq) Reset() {
*x = UserSwitchTitleReq{}
if protoimpl.UnsafeEnabled {
mi := &file_user_user_msg_proto_msgTypes[64]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UserSwitchTitleReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UserSwitchTitleReq) ProtoMessage() {}
func (x *UserSwitchTitleReq) ProtoReflect() protoreflect.Message {
mi := &file_user_user_msg_proto_msgTypes[64]
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 UserSwitchTitleReq.ProtoReflect.Descriptor instead.
func (*UserSwitchTitleReq) Descriptor() ([]byte, []int) {
return file_user_user_msg_proto_rawDescGZIP(), []int{64}
}
func (x *UserSwitchTitleReq) GetTitle() string {
if x != nil {
return x.Title
}
return ""
}
//请求设置默认皮肤
type UserSwitchTitleResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Issucc bool `protobuf:"varint,1,opt,name=issucc,proto3" json:"issucc"`
Curtitle string `protobuf:"bytes,2,opt,name=curtitle,proto3" json:"curtitle"`
}
func (x *UserSwitchTitleResp) Reset() {
*x = UserSwitchTitleResp{}
if protoimpl.UnsafeEnabled {
mi := &file_user_user_msg_proto_msgTypes[65]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UserSwitchTitleResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UserSwitchTitleResp) ProtoMessage() {}
func (x *UserSwitchTitleResp) ProtoReflect() protoreflect.Message {
mi := &file_user_user_msg_proto_msgTypes[65]
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 UserSwitchTitleResp.ProtoReflect.Descriptor instead.
func (*UserSwitchTitleResp) Descriptor() ([]byte, []int) {
return file_user_user_msg_proto_rawDescGZIP(), []int{65}
}
func (x *UserSwitchTitleResp) GetIssucc() bool {
if x != nil {
return x.Issucc
}
return false
}
func (x *UserSwitchTitleResp) GetCurtitle() string {
if x != nil {
return x.Curtitle
}
return ""
}
type UserTitleListPush struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Titles []string `protobuf:"bytes,1,rep,name=titles,proto3" json:"titles"` // 称号
Curtitle string `protobuf:"bytes,2,opt,name=curtitle,proto3" json:"curtitle"` // 默认称号
}
func (x *UserTitleListPush) Reset() {
*x = UserTitleListPush{}
if protoimpl.UnsafeEnabled {
mi := &file_user_user_msg_proto_msgTypes[66]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UserTitleListPush) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UserTitleListPush) ProtoMessage() {}
func (x *UserTitleListPush) ProtoReflect() protoreflect.Message {
mi := &file_user_user_msg_proto_msgTypes[66]
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 UserTitleListPush.ProtoReflect.Descriptor instead.
func (*UserTitleListPush) Descriptor() ([]byte, []int) {
return file_user_user_msg_proto_rawDescGZIP(), []int{66}
}
func (x *UserTitleListPush) GetTitles() []string {
if x != nil {
return x.Titles
}
return nil
}
func (x *UserTitleListPush) GetCurtitle() string {
if x != nil {
return x.Curtitle
}
return ""
}
var File_user_user_msg_proto protoreflect.FileDescriptor var File_user_user_msg_proto protoreflect.FileDescriptor
var file_user_user_msg_proto_rawDesc = []byte{ var file_user_user_msg_proto_rawDesc = []byte{
@ -3702,7 +3861,19 @@ var file_user_user_msg_proto_rawDesc = []byte{
0x69, 0x74, 0x52, 0x65, 0x71, 0x22, 0x33, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x69, 0x74, 0x52, 0x65, 0x71, 0x22, 0x33, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74,
0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x03, 0x61, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x03, 0x61,
0x74, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41,
0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x03, 0x61, 0x74, 0x6e, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x03, 0x61, 0x74, 0x6e, 0x22, 0x2a, 0x0a, 0x12, 0x55, 0x73,
0x65, 0x72, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x71,
0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x22, 0x49, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x53, 0x77,
0x69, 0x74, 0x63, 0x68, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a,
0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69,
0x73, 0x73, 0x75, 0x63, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x75, 0x72, 0x74, 0x69, 0x74, 0x6c,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x75, 0x72, 0x74, 0x69, 0x74, 0x6c,
0x65, 0x22, 0x47, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x4c, 0x69,
0x73, 0x74, 0x50, 0x75, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x73,
0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x73, 0x12, 0x1a,
0x0a, 0x08, 0x63, 0x75, 0x72, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x08, 0x63, 0x75, 0x72, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b,
0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
@ -3718,7 +3889,7 @@ func file_user_user_msg_proto_rawDescGZIP() []byte {
return file_user_user_msg_proto_rawDescData return file_user_user_msg_proto_rawDescData
} }
var file_user_user_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 64) var file_user_user_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 67)
var file_user_user_msg_proto_goTypes = []interface{}{ var file_user_user_msg_proto_goTypes = []interface{}{
(*UserLoginReq)(nil), // 0: UserLoginReq (*UserLoginReq)(nil), // 0: UserLoginReq
(*UserLoginQueueChangePush)(nil), // 1: UserLoginQueueChangePush (*UserLoginQueueChangePush)(nil), // 1: UserLoginQueueChangePush
@ -3784,44 +3955,47 @@ var file_user_user_msg_proto_goTypes = []interface{}{
(*UserDepositResp)(nil), // 61: UserDepositResp (*UserDepositResp)(nil), // 61: UserDepositResp
(*UserGetdepositReq)(nil), // 62: UserGetdepositReq (*UserGetdepositReq)(nil), // 62: UserGetdepositReq
(*UserGetdepositResp)(nil), // 63: UserGetdepositResp (*UserGetdepositResp)(nil), // 63: UserGetdepositResp
(*DBUser)(nil), // 64: DBUser (*UserSwitchTitleReq)(nil), // 64: UserSwitchTitleReq
(*DBUserExpand)(nil), // 65: DBUserExpand (*UserSwitchTitleResp)(nil), // 65: UserSwitchTitleResp
(ErrorCode)(0), // 66: ErrorCode (*UserTitleListPush)(nil), // 66: UserTitleListPush
(*CacheUser)(nil), // 67: CacheUser (*DBUser)(nil), // 67: DBUser
(*UserAtno)(nil), // 68: UserAtno (*DBUserExpand)(nil), // 68: DBUserExpand
(*DBUserSetting)(nil), // 69: DBUserSetting (ErrorCode)(0), // 69: ErrorCode
(*DBPagodaRecord)(nil), // 70: DBPagodaRecord (*CacheUser)(nil), // 70: CacheUser
(*DBHuntingRank)(nil), // 71: DBHuntingRank (*UserAtno)(nil), // 71: UserAtno
(*DBVikingRank)(nil), // 72: DBVikingRank (*DBUserSetting)(nil), // 72: DBUserSetting
(*DBServerData)(nil), // 73: DBServerData (*DBPagodaRecord)(nil), // 73: DBPagodaRecord
(*DBSign)(nil), // 74: DBSign (*DBHuntingRank)(nil), // 74: DBHuntingRank
(*UserAssets)(nil), // 75: UserAssets (*DBVikingRank)(nil), // 75: DBVikingRank
(*DBServerData)(nil), // 76: DBServerData
(*DBSign)(nil), // 77: DBSign
(*UserAssets)(nil), // 78: UserAssets
} }
var file_user_user_msg_proto_depIdxs = []int32{ var file_user_user_msg_proto_depIdxs = []int32{
64, // 0: UserLoginResp.data:type_name -> DBUser 67, // 0: UserLoginResp.data:type_name -> DBUser
65, // 1: UserLoginResp.ex:type_name -> DBUserExpand 68, // 1: UserLoginResp.ex:type_name -> DBUserExpand
64, // 2: UserInfoResp.data:type_name -> DBUser 67, // 2: UserInfoResp.data:type_name -> DBUser
65, // 3: UserInfoResp.ex:type_name -> DBUserExpand 68, // 3: UserInfoResp.ex:type_name -> DBUserExpand
66, // 4: UserRegisterResp.Code:type_name -> ErrorCode 69, // 4: UserRegisterResp.Code:type_name -> ErrorCode
67, // 5: UserLoadResp.data:type_name -> CacheUser 70, // 5: UserLoadResp.data:type_name -> CacheUser
68, // 6: UserCreateResp.award:type_name -> UserAtno 71, // 6: UserCreateResp.award:type_name -> UserAtno
69, // 7: UserGetSettingResp.setting:type_name -> DBUserSetting 72, // 7: UserGetSettingResp.setting:type_name -> DBUserSetting
69, // 8: UserUpdateSettingReq.setting:type_name -> DBUserSetting 72, // 8: UserUpdateSettingReq.setting:type_name -> DBUserSetting
66, // 9: UserModifynameResp.code:type_name -> ErrorCode 69, // 9: UserModifynameResp.code:type_name -> ErrorCode
64, // 10: UserBattlerecordResp.data:type_name -> DBUser 67, // 10: UserBattlerecordResp.data:type_name -> DBUser
65, // 11: UserBattlerecordResp.ex:type_name -> DBUserExpand 68, // 11: UserBattlerecordResp.ex:type_name -> DBUserExpand
70, // 12: UserBattlerecordResp.pagodaRecord:type_name -> DBPagodaRecord 73, // 12: UserBattlerecordResp.pagodaRecord:type_name -> DBPagodaRecord
71, // 13: UserBattlerecordResp.huntingRecord:type_name -> DBHuntingRank 74, // 13: UserBattlerecordResp.huntingRecord:type_name -> DBHuntingRank
72, // 14: UserBattlerecordResp.vikingRecord:type_name -> DBVikingRank 75, // 14: UserBattlerecordResp.vikingRecord:type_name -> DBVikingRank
67, // 15: UserOnlineResp.users:type_name -> CacheUser 70, // 15: UserOnlineResp.users:type_name -> CacheUser
64, // 16: UserDataListResp.users:type_name -> DBUser 67, // 16: UserDataListResp.users:type_name -> DBUser
73, // 17: UserGetServerDataResp.data:type_name -> DBServerData 76, // 17: UserGetServerDataResp.data:type_name -> DBServerData
74, // 18: UserSignResp.data:type_name -> DBSign 77, // 18: UserSignResp.data:type_name -> DBSign
74, // 19: UserChangeTipsResp.data:type_name -> DBSign 77, // 19: UserChangeTipsResp.data:type_name -> DBSign
68, // 20: UserSellResReq.atno:type_name -> UserAtno 71, // 20: UserSellResReq.atno:type_name -> UserAtno
75, // 21: UserSellResResp.atn:type_name -> UserAssets 78, // 21: UserSellResResp.atn:type_name -> UserAssets
75, // 22: UserDepositResp.atn:type_name -> UserAssets 78, // 22: UserDepositResp.atn:type_name -> UserAssets
75, // 23: UserGetdepositResp.atn:type_name -> UserAssets 78, // 23: UserGetdepositResp.atn:type_name -> UserAssets
24, // [24:24] is the sub-list for method output_type 24, // [24:24] is the sub-list for method output_type
24, // [24:24] is the sub-list for method input_type 24, // [24:24] is the sub-list for method input_type
24, // [24:24] is the sub-list for extension type_name 24, // [24:24] is the sub-list for extension type_name
@ -4611,6 +4785,42 @@ func file_user_user_msg_proto_init() {
return nil return nil
} }
} }
file_user_user_msg_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UserSwitchTitleReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_user_user_msg_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UserSwitchTitleResp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_user_user_msg_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UserTitleListPush); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
} }
type x struct{} type x struct{}
out := protoimpl.TypeBuilder{ out := protoimpl.TypeBuilder{
@ -4618,7 +4828,7 @@ func file_user_user_msg_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(), GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_user_user_msg_proto_rawDesc, RawDescriptor: file_user_user_msg_proto_rawDesc,
NumEnums: 0, NumEnums: 0,
NumMessages: 64, NumMessages: 67,
NumExtensions: 0, NumExtensions: 0,
NumServices: 0, NumServices: 0,
}, },