上传自动恢复机制

This commit is contained in:
liwei1dao 2023-12-07 15:30:54 +08:00
parent 4e9bebde19
commit cc7a5c1031
10 changed files with 447 additions and 209 deletions

View File

@ -0,0 +1,50 @@
[
{
"key": 1,
"tpye": 1,
"cycle": 1,
"maximums": [
{
"a": "item",
"t": "24022003",
"n": 3
}
]
},
{
"key": 2,
"tpye": 1,
"cycle": 1,
"maximums": [
{
"a": "item",
"t": "24013003",
"n": 8
}
]
},
{
"key": 3,
"tpye": 1,
"cycle": 1,
"maximums": [
{
"a": "item",
"t": "18000004",
"n": 10
}
]
},
{
"key": 4,
"tpye": 2,
"cycle": 30,
"maximums": [
{
"a": "attr",
"t": "consumeexp",
"n": 0
}
]
}
]

View File

@ -37,11 +37,13 @@ func (this *apiComp) PassLevel(session comm.IUserSession, req *pb.CatchbugsPassL
return return
} }
info.Integral += conf.Points info.Integral += conf.Points
info.Accruedintegral += conf.Points
info.Level[req.Level] = true info.Level[req.Level] = true
this.module.model.Change(session.GetUserId(), map[string]interface{}{ this.module.model.Change(session.GetUserId(), map[string]interface{}{
"integral": info.Integral, "integral": info.Integral,
"level": info.Level, "accruedintegral": info.Accruedintegral,
"level": info.Level,
}) })
session.SendMsg(string(this.module.GetType()), "award", &pb.CatchbugsPassLevelResp{Level: req.Level, Integral: info.Integral}) session.SendMsg(string(this.module.GetType()), "passlevel", &pb.CatchbugsPassLevelResp{Level: req.Level, Integral: info.Integral})
return return
} }

View File

@ -17,6 +17,7 @@ const (
game_SignExtra = "game_signextra.json" game_SignExtra = "game_signextra.json"
game_initial = "game_initial.json" //初始化表 game_initial = "game_initial.json" //初始化表
game_playerinfor_overview = "game_playerinfor_overview.json" //皮肤配置表 game_playerinfor_overview = "game_playerinfor_overview.json" //皮肤配置表
game_restore = "game_restore.json" //资源自动恢复表
) )
// /配置管理基础组件 // /配置管理基础组件
@ -33,11 +34,12 @@ type configureComp struct {
func (this *configureComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) { func (this *configureComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
err = this.MCompConfigure.Init(service, module, comp, options) err = this.MCompConfigure.Init(service, module, comp, options)
this.module = module.(*User) this.module = module.(*User)
err = this.LoadConfigure(game_initial, cfg.NewGameInitial)
this._sign = make(map[int32]*cfg.GameSignData, 0) this._sign = make(map[int32]*cfg.GameSignData, 0)
configure.RegisterConfigure(game_sign, cfg.NewGameSign, this.LoadSignData)
this.LoadConfigure(gameOpencond, cfg.NewGameOpencond)
this._signExtra = make(map[int32]*cfg.GameSignExtraData, 0) this._signExtra = make(map[int32]*cfg.GameSignExtraData, 0)
err = this.LoadConfigure(game_initial, cfg.NewGameInitial)
this.LoadConfigure(gameOpencond, cfg.NewGameOpencond)
this.LoadConfigure(game_restore, cfg.NewGameRestore)
configure.RegisterConfigure(game_sign, cfg.NewGameSign, this.LoadSignData)
configure.RegisterConfigure(game_SignExtra, cfg.NewGameSignExtra, this.LoadSignExtraData) configure.RegisterConfigure(game_SignExtra, cfg.NewGameSignExtra, this.LoadSignExtraData)
configure.RegisterConfigure(game_playerinfor_overview, cfg.NewGamePlayerInfor_overview, this.updatePlayerOverview) configure.RegisterConfigure(game_playerinfor_overview, cfg.NewGamePlayerInfor_overview, this.updatePlayerOverview)
return return
@ -197,4 +199,15 @@ func (this *configureComp) GetPlayerOverview(id string, sex int32) (configure *c
return return
} }
/////////////////// ///读取资源恢复表
func (this *configureComp) getGameRestoreData() (confs []*cfg.GameRestoreData, err error) {
var (
v interface{}
)
if v, err = this.GetConfigure(game_restore); err != nil {
this.module.Errorf("err:%v", err)
return
}
confs = v.(*cfg.GameRestore).GetDataList()
return
}

View File

@ -4,7 +4,6 @@ import (
"fmt" "fmt"
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/lego/core" "go_dreamfactory/lego/core"
event_v2 "go_dreamfactory/lego/sys/event/v2"
"go_dreamfactory/lego/sys/log" "go_dreamfactory/lego/sys/log"
"go_dreamfactory/modules" "go_dreamfactory/modules"
"go_dreamfactory/pb" "go_dreamfactory/pb"
@ -350,30 +349,6 @@ func (this *ModelUser) CleanUserMerchantmoney(session comm.IUserSession) (err er
return return
} }
// 玩家信息监听
type UserListen struct {
event_v2.Event
session comm.IUserSession
exp int64
lv int32
name string
vipexp int64
viplv int32
Gold int64
Diamond int64
Friend int32
Starcoin int64
Guildcoin int64
Arenacoin int32
Ps int32
Moongold int32
Talent1 int32
Talent2 int32
Talent3 int32
Talent4 int32
Merchantmoney int32
}
func (this *ModelUser) CleanUserConsumeexp(session comm.IUserSession) (err error) { func (this *ModelUser) CleanUserConsumeexp(session comm.IUserSession) (err error) {
var ( var (
model *db.DBModel model *db.DBModel
@ -406,3 +381,71 @@ func (this *ModelUser) CleanUserConsumeexp(session comm.IUserSession) (err error
return return
} }
///资源自动恢复
func (this *ModelUser) ResAutoReplies(session comm.IUserSession, resreplies map[int32]int64) {
var (
confs []*cfg.GameRestoreData
restore []*cfg.GameRestoreData
amount int64
add []*cfg.Gameatn
subtract []*cfg.Gameatn
ok bool
err error
)
if confs, err = this.module.configure.getGameRestoreData(); err != nil {
return
}
//计算是否有大到重置周期的
for _, v := range confs {
if configure.Now().Sub(time.Unix(resreplies[v.Key], 0)).Hours() > float64(v.Cycle*24) {
restore = append(restore, v)
}
}
for _, conf := range restore {
ok = false
for _, v := range conf.Maximums {
amount = 0
switch v.A {
case comm.AttrType:
amount = this.module.ModuleUser.QueryAttributeValue(session.GetUserId(), v.T)
case comm.ItemType:
default:
this.module.Error("not support res type", log.Field{Key: "Type", Value: v.A})
continue
}
if conf.Tpye == 1 { //恢复
if amount < int64(v.N) { //需要补充
add = append(add, &cfg.Gameatn{A: v.A, T: v.T, N: int32(int64(v.N) - amount)})
ok = true
}
} else { //重置
if amount != int64(v.N) {
ok = true
if amount < int64(v.N) { //需要补充
add = append(add, &cfg.Gameatn{A: v.A, T: v.T, N: int32(int64(v.N) - amount)})
} else { //需要消减
subtract = append(add, &cfg.Gameatn{A: v.A, T: v.T, N: int32(amount - int64(v.N))})
}
}
}
}
if ok {
resreplies[conf.Key] = configure.Now().Unix()
}
}
if len(add) > 0 || len(subtract) > 0 {
this.module.DispenseAtno(session, add, true)
this.module.ConsumeRes(session, subtract, true)
if err = this.Change(session.GetUserId(), map[string]interface{}{
"resreplies": resreplies,
}); err != nil {
this.module.Errorln(err)
}
}
}

View File

@ -29,7 +29,7 @@ type DBCatchBugs struct {
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` //ID Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` //ID
Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid"` Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid"`
Integral int32 `protobuf:"varint,3,opt,name=integral,proto3" json:"integral"` Integral int32 `protobuf:"varint,3,opt,name=integral,proto3" json:"integral"`
Accruedintegral int32 `protobuf:"varint,4,opt,name=Accruedintegral,proto3" json:"Accruedintegral"` //累计积分 Accruedintegral int32 `protobuf:"varint,4,opt,name=accruedintegral,proto3" json:"accruedintegral"` //累计积分
Books map[int32]int32 `protobuf:"bytes,5,rep,name=books,proto3" json:"books" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //图鉴 Books map[int32]int32 `protobuf:"bytes,5,rep,name=books,proto3" json:"books" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //图鉴
Weekaward map[int32]bool `protobuf:"bytes,6,rep,name=weekaward,proto3" json:"weekaward" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //周奖励 Weekaward map[int32]bool `protobuf:"bytes,6,rep,name=weekaward,proto3" json:"weekaward" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //周奖励
Allaward map[int32]bool `protobuf:"bytes,7,rep,name=allaward,proto3" json:"allaward" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //累计奖励 Allaward map[int32]bool `protobuf:"bytes,7,rep,name=allaward,proto3" json:"allaward" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //累计奖励
@ -470,9 +470,9 @@ var file_catchbugs_catchbugs_db_proto_rawDesc = []byte{
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x18, 0x01, 0x20, 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, 0x1a, 0x0a, 0x08, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08,
0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08,
0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x72, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x72,
0x75, 0x65, 0x64, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x75, 0x65, 0x64, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28,
0x05, 0x52, 0x0f, 0x41, 0x63, 0x63, 0x72, 0x75, 0x65, 0x64, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x05, 0x52, 0x0f, 0x61, 0x63, 0x63, 0x72, 0x75, 0x65, 0x64, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72,
0x61, 0x6c, 0x12, 0x2d, 0x0a, 0x05, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x61, 0x6c, 0x12, 0x2d, 0x0a, 0x05, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x17, 0x2e, 0x44, 0x42, 0x43, 0x61, 0x74, 0x63, 0x68, 0x42, 0x75, 0x67, 0x73, 0x2e, 0x0b, 0x32, 0x17, 0x2e, 0x44, 0x42, 0x43, 0x61, 0x74, 0x63, 0x68, 0x42, 0x75, 0x67, 0x73, 0x2e,
0x42, 0x6f, 0x6f, 0x6b, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x62, 0x6f, 0x6f, 0x6b, 0x42, 0x6f, 0x6f, 0x6b, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x62, 0x6f, 0x6f, 0x6b,

View File

@ -158,8 +158,9 @@ type CatchbugsPassLevelResp struct {
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
Level int32 `protobuf:"varint,1,opt,name=level,proto3" json:"level"` Level int32 `protobuf:"varint,1,opt,name=level,proto3" json:"level"`
Integral int32 `protobuf:"varint,2,opt,name=integral,proto3" json:"integral"` //红方积分 Integral int32 `protobuf:"varint,2,opt,name=integral,proto3" json:"integral"` //周积分
Accruedintegral int32 `protobuf:"varint,3,opt,name=accruedintegral,proto3" json:"accruedintegral"` //累计积分
} }
func (x *CatchbugsPassLevelResp) Reset() { func (x *CatchbugsPassLevelResp) Reset() {
@ -208,6 +209,13 @@ func (x *CatchbugsPassLevelResp) GetIntegral() int32 {
return 0 return 0
} }
func (x *CatchbugsPassLevelResp) GetAccruedintegral() int32 {
if x != nil {
return x.Accruedintegral
}
return 0
}
//领奖 //领奖
type CatchbugsAwardReq struct { type CatchbugsAwardReq struct {
state protoimpl.MessageState state protoimpl.MessageState
@ -1073,91 +1081,93 @@ var file_catchbugs_catchbugs_msg_proto_rawDesc = []byte{
0x69, 0x6e, 0x66, 0x6f, 0x22, 0x2d, 0x0a, 0x15, 0x43, 0x61, 0x74, 0x63, 0x68, 0x62, 0x75, 0x67, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x2d, 0x0a, 0x15, 0x43, 0x61, 0x74, 0x63, 0x68, 0x62, 0x75, 0x67,
0x73, 0x50, 0x61, 0x73, 0x73, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x73, 0x50, 0x61, 0x73, 0x73, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a,
0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65,
0x76, 0x65, 0x6c, 0x22, 0x4a, 0x0a, 0x16, 0x43, 0x61, 0x74, 0x63, 0x68, 0x62, 0x75, 0x67, 0x73, 0x76, 0x65, 0x6c, 0x22, 0x74, 0x0a, 0x16, 0x43, 0x61, 0x74, 0x63, 0x68, 0x62, 0x75, 0x67, 0x73,
0x50, 0x61, 0x73, 0x73, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x50, 0x61, 0x73, 0x73, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a,
0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65,
0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x18, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x18,
0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x22, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x12,
0x29, 0x0a, 0x11, 0x43, 0x61, 0x74, 0x63, 0x68, 0x62, 0x75, 0x67, 0x73, 0x41, 0x77, 0x61, 0x72, 0x28, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x72, 0x75, 0x65, 0x64, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72,
0x64, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x61, 0x63, 0x63, 0x72, 0x75, 0x65,
0x01, 0x28, 0x05, 0x52, 0x05, 0x61, 0x74, 0x79, 0x70, 0x65, 0x22, 0xc7, 0x01, 0x0a, 0x12, 0x43, 0x64, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x22, 0x29, 0x0a, 0x11, 0x43, 0x61, 0x74,
0x61, 0x74, 0x63, 0x68, 0x62, 0x75, 0x67, 0x73, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x63, 0x68, 0x62, 0x75, 0x67, 0x73, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x14,
0x70, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x0a, 0x05, 0x61, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x61,
0x52, 0x05, 0x61, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x05, 0x61, 0x77, 0x61, 0x72, 0x64, 0x74, 0x79, 0x70, 0x65, 0x22, 0xc7, 0x01, 0x0a, 0x12, 0x43, 0x61, 0x74, 0x63, 0x68, 0x62, 0x75,
0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, 0x6e, 0x67, 0x73, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x61,
0x6f, 0x52, 0x05, 0x61, 0x77, 0x61, 0x72, 0x64, 0x12, 0x3d, 0x0a, 0x08, 0x61, 0x77, 0x61, 0x72, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x61, 0x74, 0x79, 0x70,
0x64, 0x6d, 0x61, 0x70, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x05, 0x61, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
0x63, 0x68, 0x62, 0x75, 0x67, 0x73, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x32, 0x09, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, 0x6e, 0x6f, 0x52, 0x05, 0x61, 0x77, 0x61,
0x41, 0x77, 0x61, 0x72, 0x64, 0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x61, 0x72, 0x64, 0x12, 0x3d, 0x0a, 0x08, 0x61, 0x77, 0x61, 0x72, 0x64, 0x6d, 0x61, 0x70, 0x18, 0x03,
0x77, 0x61, 0x72, 0x64, 0x6d, 0x61, 0x70, 0x1a, 0x3b, 0x0a, 0x0d, 0x41, 0x77, 0x61, 0x72, 0x64, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x43, 0x61, 0x74, 0x63, 0x68, 0x62, 0x75, 0x67, 0x73,
0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x6d,
0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x61, 0x77, 0x61, 0x72, 0x64, 0x6d, 0x61,
0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x70, 0x1a, 0x3b, 0x0a, 0x0d, 0x41, 0x77, 0x61, 0x72, 0x64, 0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74,
0x3a, 0x02, 0x38, 0x01, 0x22, 0x41, 0x0a, 0x16, 0x43, 0x61, 0x74, 0x63, 0x68, 0x62, 0x75, 0x67, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
0x73, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x12, 0x27, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x41,
0x44, 0x42, 0x43, 0x61, 0x74, 0x63, 0x68, 0x42, 0x75, 0x67, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x0a, 0x16, 0x43, 0x61, 0x74, 0x63, 0x68, 0x62, 0x75, 0x67, 0x73, 0x53, 0x69, 0x6e, 0x67, 0x6c,
0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x43, 0x61, 0x74, 0x63, 0x68, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x12, 0x27, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65,
0x62, 0x75, 0x67, 0x73, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x44, 0x42, 0x43, 0x61, 0x74, 0x63,
0x73, 0x70, 0x22, 0x60, 0x0a, 0x16, 0x43, 0x61, 0x74, 0x63, 0x68, 0x62, 0x75, 0x67, 0x73, 0x47, 0x68, 0x42, 0x75, 0x67, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65,
0x61, 0x6d, 0x65, 0x52, 0x65, 0x61, 0x64, 0x79, 0x50, 0x75, 0x73, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x43, 0x61, 0x74, 0x63, 0x68, 0x62, 0x75, 0x67, 0x73, 0x53, 0x69,
0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x6e, 0x67, 0x6c, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x60, 0x0a, 0x16,
0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x24, 0x43, 0x61, 0x74, 0x63, 0x68, 0x62, 0x75, 0x67, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x61,
0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x44, 0x64, 0x79, 0x50, 0x75, 0x73, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
0x42, 0x43, 0x61, 0x74, 0x63, 0x68, 0x42, 0x75, 0x67, 0x73, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x04, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72,
0x72, 0x6f, 0x6f, 0x6d, 0x22, 0x2b, 0x0a, 0x11, 0x43, 0x61, 0x74, 0x63, 0x68, 0x62, 0x75, 0x67, 0x76, 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x6d,
0x73, 0x52, 0x65, 0x61, 0x64, 0x79, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x44, 0x42, 0x43, 0x61, 0x74, 0x63, 0x68,
0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x42, 0x75, 0x67, 0x73, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x22, 0x2b,
0x64, 0x22, 0x44, 0x0a, 0x12, 0x43, 0x61, 0x74, 0x63, 0x68, 0x62, 0x75, 0x67, 0x73, 0x52, 0x65, 0x0a, 0x11, 0x43, 0x61, 0x74, 0x63, 0x68, 0x62, 0x75, 0x67, 0x73, 0x52, 0x65, 0x61, 0x64, 0x79,
0x61, 0x64, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x12, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x22, 0x44, 0x0a, 0x12, 0x43,
0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x61, 0x74, 0x63, 0x68, 0x62, 0x75, 0x67, 0x73, 0x52, 0x65, 0x61, 0x64, 0x79, 0x52, 0x65, 0x73,
0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x22, 0x53, 0x0a, 0x17, 0x43, 0x61, 0x74, 0x63, 0x68, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x62, 0x75, 0x67, 0x73, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x50, 0x75, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73,
0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x75, 0x63, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63,
0x05, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x63, 0x22, 0x53, 0x0a, 0x17, 0x43, 0x61, 0x74, 0x63, 0x68, 0x62, 0x75, 0x67, 0x73, 0x52, 0x6f,
0x6c, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x75, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x50, 0x75, 0x73, 0x68, 0x12, 0x14, 0x0a, 0x05,
0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x22, 0x5a, 0x0a, 0x12, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x6f, 0x75,
0x43, 0x61, 0x74, 0x63, 0x68, 0x62, 0x75, 0x67, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x6e, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x70, 0x6c, 0x61, 0x79,
0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65,
0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x22, 0x5a, 0x0a, 0x12, 0x43, 0x61, 0x74, 0x63, 0x68, 0x62,
0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x75, 0x67, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06,
0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,
0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x15, 0x0a, 0x13, 0x43, 0x61, 0x74, 0x63,
0x68, 0x62, 0x75, 0x67, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22,
0xb1, 0x01, 0x0a, 0x15, 0x43, 0x61, 0x74, 0x63, 0x68, 0x62, 0x75, 0x67, 0x73, 0x4f, 0x70, 0x65,
0x6e, 0x43, 0x61, 0x72, 0x64, 0x50, 0x75, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f,
0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69,
0x64, 0x12, 0x22, 0x0a, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x65,
0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x70,
0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03,
0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x6e,
0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d,
0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, 0x05, 0x20,
0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x63,
0x6f, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x63, 0x6f, 0x69,
0x6c, 0x65, 0x64, 0x22, 0x2f, 0x0a, 0x15, 0x43, 0x61, 0x74, 0x63, 0x68, 0x62, 0x75, 0x67, 0x73,
0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06,
0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f,
0x6f, 0x6d, 0x69, 0x64, 0x22, 0x18, 0x0a, 0x16, 0x43, 0x61, 0x74, 0x63, 0x68, 0x62, 0x75, 0x67, 0x6f, 0x6d, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20,
0x73, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x61, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75,
0x0a, 0x19, 0x43, 0x61, 0x74, 0x63, 0x68, 0x62, 0x75, 0x67, 0x73, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62,
0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x65, 0x72, 0x22, 0x15, 0x0a, 0x13, 0x43, 0x61, 0x74, 0x63, 0x68, 0x62, 0x75, 0x67, 0x73, 0x48,
0x68, 0x61, 0x6e, 0x67, 0x65, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0xb1, 0x01, 0x0a, 0x15, 0x43, 0x61,
0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x74, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x04, 0x63, 0x74, 0x63, 0x68, 0x62, 0x75, 0x67, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x50,
0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x44, 0x42, 0x43, 0x61, 0x75, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20,
0x74, 0x63, 0x68, 0x42, 0x75, 0x67, 0x73, 0x43, 0x61, 0x72, 0x64, 0x52, 0x04, 0x63, 0x61, 0x72, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x68,
0x64, 0x22, 0x17, 0x0a, 0x15, 0x43, 0x61, 0x74, 0x63, 0x68, 0x62, 0x75, 0x67, 0x73, 0x52, 0x6f, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28,
0x75, 0x6e, 0x64, 0x45, 0x6e, 0x64, 0x50, 0x75, 0x73, 0x68, 0x22, 0x75, 0x0a, 0x15, 0x43, 0x61, 0x09, 0x52, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12,
0x74, 0x63, 0x68, 0x62, 0x75, 0x67, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x50, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05,
0x75, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x69, 0x6e, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18,
0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x69, 0x6e, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a,
0x65, 0x64, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69,
0x52, 0x0b, 0x72, 0x65, 0x64, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x12, 0x22, 0x0a, 0x73, 0x73, 0x75, 0x63, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x69, 0x6c, 0x65, 0x64, 0x18,
0x0c, 0x62, 0x6c, 0x75, 0x65, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x63, 0x6f, 0x69, 0x6c, 0x65, 0x64, 0x22, 0x2f, 0x0a,
0x01, 0x28, 0x05, 0x52, 0x0c, 0x62, 0x6c, 0x75, 0x65, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x15, 0x43, 0x61, 0x74, 0x63, 0x68, 0x62, 0x75, 0x67, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65,
0x6c, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x45, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64,
0x33, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x22, 0x18,
0x0a, 0x16, 0x43, 0x61, 0x74, 0x63, 0x68, 0x62, 0x75, 0x67, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x6c,
0x65, 0x45, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x61, 0x0a, 0x19, 0x43, 0x61, 0x74, 0x63,
0x68, 0x62, 0x75, 0x67, 0x73, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67,
0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x74,
0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67,
0x65, 0x74, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x04, 0x63, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x44, 0x42, 0x43, 0x61, 0x74, 0x63, 0x68, 0x42, 0x75, 0x67,
0x73, 0x43, 0x61, 0x72, 0x64, 0x52, 0x04, 0x63, 0x61, 0x72, 0x64, 0x22, 0x17, 0x0a, 0x15, 0x43,
0x61, 0x74, 0x63, 0x68, 0x62, 0x75, 0x67, 0x73, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x6e, 0x64,
0x50, 0x75, 0x73, 0x68, 0x22, 0x75, 0x0a, 0x15, 0x43, 0x61, 0x74, 0x63, 0x68, 0x62, 0x75, 0x67,
0x73, 0x47, 0x61, 0x6d, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x50, 0x75, 0x73, 0x68, 0x12, 0x16, 0x0a,
0x06, 0x77, 0x69, 0x6e, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77,
0x69, 0x6e, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x64, 0x69, 0x6e, 0x74, 0x65,
0x67, 0x72, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x64, 0x69,
0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x6c, 0x75, 0x65, 0x69,
0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x62,
0x6c, 0x75, 0x65, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x42, 0x06, 0x5a, 0x04, 0x2e,
0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (

View File

@ -133,38 +133,39 @@ type DBUser struct {
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"` // 钻石
//int32 title = 21; //@go_tags(`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"` //背景
Ps int32 `protobuf:"varint,25,opt,name=ps,proto3" json:"ps" bson:"ps"` //体力 Ps int32 `protobuf:"varint,25,opt,name=ps,proto3" json:"ps" bson:"ps"` //体力
LastRecoverPsSec int64 `protobuf:"varint,26,opt,name=lastRecoverPsSec,proto3" json:"lastRecoverPsSec" bson:"lastRecoverPsSec"` // 上次体会恢复时间 LastRecoverPsSec int64 `protobuf:"varint,26,opt,name=lastRecoverPsSec,proto3" json:"lastRecoverPsSec" bson:"lastRecoverPsSec"` // 上次体会恢复时间
Moongold int32 `protobuf:"varint,27,opt,name=moongold,proto3" json:"moongold" bson:"moongold"` //纯净月髓 Moongold int32 `protobuf:"varint,27,opt,name=moongold,proto3" json:"moongold" bson:"moongold"` //纯净月髓
Talent1 int32 `protobuf:"varint,28,opt,name=talent1,proto3" json:"talent1" bson:"talent1"` //阵营1天赋点 Talent1 int32 `protobuf:"varint,28,opt,name=talent1,proto3" json:"talent1" bson:"talent1"` //阵营1天赋点
Talent2 int32 `protobuf:"varint,29,opt,name=talent2,proto3" json:"talent2" bson:"talent2"` //阵营2天赋点 Talent2 int32 `protobuf:"varint,29,opt,name=talent2,proto3" json:"talent2" bson:"talent2"` //阵营2天赋点
Talent3 int32 `protobuf:"varint,30,opt,name=talent3,proto3" json:"talent3" bson:"talent3"` //阵营3天赋点 Talent3 int32 `protobuf:"varint,30,opt,name=talent3,proto3" json:"talent3" bson:"talent3"` //阵营3天赋点
Talent4 int32 `protobuf:"varint,31,opt,name=talent4,proto3" json:"talent4" bson:"talent4"` //阵营4天赋点 Talent4 int32 `protobuf:"varint,31,opt,name=talent4,proto3" json:"talent4" bson:"talent4"` //阵营4天赋点
Merchantmoney int32 `protobuf:"varint,32,opt,name=merchantmoney,proto3" json:"merchantmoney" bson:"merchantmoney"` //虚拟币利润(商队) Merchantmoney int32 `protobuf:"varint,32,opt,name=merchantmoney,proto3" json:"merchantmoney" bson:"merchantmoney"` //虚拟币利润(商队)
Skins []string `protobuf:"bytes,33,rep,name=skins,proto3" json:"skins" bson:"skins"` //皮肤,动作,背景,头像框 Skins []string `protobuf:"bytes,33,rep,name=skins,proto3" json:"skins" bson:"skins"` //皮肤,动作,背景,头像框
CurSkin string `protobuf:"bytes,34,opt,name=curSkin,proto3" json:"curSkin" bson:"curSkin"` //默认皮肤 CurSkin string `protobuf:"bytes,34,opt,name=curSkin,proto3" json:"curSkin" bson:"curSkin"` //默认皮肤
CurAction string `protobuf:"bytes,35,opt,name=curAction,proto3" json:"curAction" bson:"curAction"` //默认动作 CurAction string `protobuf:"bytes,35,opt,name=curAction,proto3" json:"curAction" bson:"curAction"` //默认动作
CurBg string `protobuf:"bytes,36,opt,name=curBg,proto3" json:"curBg" bson:"curBg"` //默认背景 CurBg string `protobuf:"bytes,36,opt,name=curBg,proto3" json:"curBg" bson:"curBg"` //默认背景
Area string `protobuf:"bytes,37,opt,name=area,proto3" json:"area"` //@go_tags(`bson:"area"`)区域 Area string `protobuf:"bytes,37,opt,name=area,proto3" json:"area"` //@go_tags(`bson:"area"`)区域
Channel string `protobuf:"bytes,38,opt,name=channel,proto3" json:"channel"` //@go_tags(`bson:"channel"`)渠道 Channel string `protobuf:"bytes,38,opt,name=channel,proto3" json:"channel"` //@go_tags(`bson:"channel"`)渠道
Vcode int32 `protobuf:"varint,39,opt,name=vcode,proto3" json:"vcode"` //@go_tags(`bson:"vcode"`)版本号 Vcode int32 `protobuf:"varint,39,opt,name=vcode,proto3" json:"vcode"` //@go_tags(`bson:"vcode"`)版本号
Vname string `protobuf:"bytes,40,opt,name=vname,proto3" json:"vname"` //@go_tags(`bson:"vname"`)版本名 Vname string `protobuf:"bytes,40,opt,name=vname,proto3" json:"vname"` //@go_tags(`bson:"vname"`)版本名
Deposit int64 `protobuf:"varint,42,opt,name=deposit,proto3" json:"deposit" bson:"deposit"` //储蓄 Deposit int64 `protobuf:"varint,42,opt,name=deposit,proto3" json:"deposit" bson:"deposit"` //储蓄
Profit int64 `protobuf:"varint,43,opt,name=profit,proto3" json:"profit" bson:"profit"` //商队盈利 Profit int64 `protobuf:"varint,43,opt,name=profit,proto3" json:"profit" bson:"profit"` //商队盈利
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"` // 称号 Titles []string `protobuf:"bytes,47,rep,name=titles,proto3" json:"titles"` // 称号
Curtitle string `protobuf:"bytes,48,opt,name=curtitle,proto3" json:"curtitle"` // 默认称号 Curtitle string `protobuf:"bytes,48,opt,name=curtitle,proto3" json:"curtitle"` // 默认称号
Curaframe string `protobuf:"bytes,49,opt,name=curaframe,proto3" json:"curaframe"` //默认头像框 Curaframe string `protobuf:"bytes,49,opt,name=curaframe,proto3" json:"curaframe"` //默认头像框
Consumeexp int32 `protobuf:"varint,50,opt,name=consumeexp,proto3" json:"consumeexp"` //消消乐赛季进度积分 Consumeexp int32 `protobuf:"varint,50,opt,name=consumeexp,proto3" json:"consumeexp"` //消消乐赛季进度积分
Consumemoney int32 `protobuf:"varint,51,opt,name=consumemoney,proto3" json:"consumemoney"` //三消专属货币 Consumemoney int32 `protobuf:"varint,51,opt,name=consumemoney,proto3" json:"consumemoney"` //三消专属货币
Ban bool `protobuf:"varint,52,opt,name=ban,proto3" json:"ban"` // 封号标识 Ban bool `protobuf:"varint,52,opt,name=ban,proto3" json:"ban"` // 封号标识
Prohibition int32 `protobuf:"varint,53,opt,name=prohibition,proto3" json:"prohibition"` // 禁言 Prohibition int32 `protobuf:"varint,53,opt,name=prohibition,proto3" json:"prohibition"` // 禁言
Moonlv int32 `protobuf:"varint,54,opt,name=moonlv,proto3" json:"moonlv"` // 月明度等级 Moonlv int32 `protobuf:"varint,54,opt,name=moonlv,proto3" json:"moonlv"` // 月明度等级
Resreplies map[int32]int64 `protobuf:"bytes,55,rep,name=resreplies,proto3" json:"resreplies" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //资源恢复时间记录表
} }
func (x *DBUser) Reset() { func (x *DBUser) Reset() {
@ -563,6 +564,13 @@ func (x *DBUser) GetMoonlv() int32 {
return 0 return 0
} }
func (x *DBUser) GetResreplies() map[int32]int64 {
if x != nil {
return x.Resreplies
}
return nil
}
type DBUserSetting struct { type DBUserSetting struct {
state protoimpl.MessageState state protoimpl.MessageState
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
@ -896,7 +904,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, 0xb0, 0x0a, 0x0a, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xa8, 0x0b, 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,
@ -979,55 +987,62 @@ var file_user_user_db_proto_rawDesc = []byte{
0x52, 0x03, 0x62, 0x61, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x52, 0x03, 0x62, 0x61, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69,
0x74, 0x69, 0x6f, 0x6e, 0x18, 0x35, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x68, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x35, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x68,
0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x6f, 0x6e, 0x6c, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x6f, 0x6e, 0x6c,
0x76, 0x18, 0x36, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x6f, 0x6f, 0x6e, 0x6c, 0x76, 0x22, 0x76, 0x18, 0x36, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x6f, 0x6f, 0x6e, 0x6c, 0x76, 0x12,
0xd2, 0x03, 0x0a, 0x0d, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x37, 0x0a, 0x0a, 0x72, 0x65, 0x73, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x37, 0x20,
0x67, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73,
0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x75, 0x61, 0x7a, 0x68, 0x69, 0x18, 0x03, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x72, 0x65,
0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x75, 0x61, 0x7a, 0x68, 0x69, 0x12, 0x1c, 0x0a, 0x09, 0x6b, 0x73, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x72,
0x61, 0x6e, 0x67, 0x6a, 0x75, 0x63, 0x68, 0x69, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
0x6b, 0x61, 0x6e, 0x67, 0x6a, 0x75, 0x63, 0x68, 0x69, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x61, 0x6f, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a,
0x67, 0x75, 0x61, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x67, 0x61, 0x6f, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61,
0x67, 0x75, 0x61, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x75, 0x6c, 0x69, 0x18, 0x06, 0x20, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xd2, 0x03, 0x0a, 0x0d, 0x44, 0x42, 0x55, 0x73,
0x01, 0x28, 0x08, 0x52, 0x04, 0x77, 0x75, 0x6c, 0x69, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64,
0x69, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x12, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68,
0x16, 0x0a, 0x06, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x75, 0x61, 0x7a, 0x68, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x75, 0x61,
0x06, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x75, 0x61, 0x6a, 0x69, 0x7a, 0x68, 0x69, 0x12, 0x1c, 0x0a, 0x09, 0x6b, 0x61, 0x6e, 0x67, 0x6a, 0x75, 0x63, 0x68, 0x69,
0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x67, 0x75, 0x61, 0x6a, 0x69, 0x12, 0x14, 0x0a, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6b, 0x61, 0x6e, 0x67, 0x6a, 0x75, 0x63, 0x68,
0x05, 0x66, 0x75, 0x62, 0x65, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x75, 0x69, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x61, 0x6f, 0x67, 0x75, 0x61, 0x6e, 0x67, 0x18, 0x05, 0x20,
0x62, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x6e, 0x73, 0x75, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x67, 0x61, 0x6f, 0x67, 0x75, 0x61, 0x6e, 0x67, 0x12, 0x12, 0x0a,
0x01, 0x28, 0x08, 0x52, 0x06, 0x74, 0x61, 0x6e, 0x73, 0x75, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x04, 0x77, 0x75, 0x6c, 0x69, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x77, 0x75, 0x6c,
0x75, 0x6f, 0x64, 0x6f, 0x6e, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x75, 0x69, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08,
0x6f, 0x64, 0x6f, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x78, 0x75, 0x61, 0x6e, 0x73, 0x68, 0x61, 0x52, 0x05, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x66, 0x66, 0x65, 0x63,
0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x78, 0x75, 0x61, 0x6e, 0x73, 0x68, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x12,
0x61, 0x6e, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x61, 0x69, 0x6a, 0x69, 0x18, 0x0e, 0x20, 0x01, 0x14, 0x0a, 0x05, 0x67, 0x75, 0x61, 0x6a, 0x69, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05,
0x28, 0x08, 0x52, 0x05, 0x73, 0x61, 0x69, 0x6a, 0x69, 0x12, 0x47, 0x0a, 0x0d, 0x62, 0x61, 0x74, 0x67, 0x75, 0x61, 0x6a, 0x69, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x75, 0x62, 0x65, 0x6e, 0x18, 0x0a,
0x74, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x75, 0x62, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x74,
0x32, 0x21, 0x2e, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x6e, 0x73, 0x75, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x74, 0x61, 0x6e,
0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x45, 0x6e, 0x73, 0x75, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x75, 0x6f, 0x64, 0x6f, 0x6e, 0x67, 0x18, 0x0c,
0x74, 0x72, 0x79, 0x52, 0x0d, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x75, 0x6f, 0x64, 0x6f, 0x6e, 0x67, 0x12, 0x1c, 0x0a,
0x74, 0x73, 0x1a, 0x40, 0x0a, 0x12, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x09, 0x78, 0x75, 0x61, 0x6e, 0x73, 0x68, 0x61, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08,
0x61, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x52, 0x09, 0x78, 0x75, 0x61, 0x6e, 0x73, 0x68, 0x61, 0x6e, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x73,
0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x61, 0x69, 0x6a, 0x69, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x73, 0x61, 0x69, 0x6a,
0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x69, 0x12, 0x47, 0x0a, 0x0d, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61,
0x3a, 0x02, 0x38, 0x01, 0x22, 0xb8, 0x01, 0x0a, 0x06, 0x44, 0x42, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x74, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x44, 0x42, 0x55, 0x73, 0x65,
0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46,
0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x62, 0x61, 0x74,
0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x1a, 0x40, 0x0a, 0x12, 0x42, 0x61,
0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
0x09, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b,
0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x72, 0x6f, 0x75, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb8, 0x01, 0x0a,
0x70, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x06, 0x44, 0x42, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
0x64, 0x61, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x75, 0x7a, 0x7a, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02,
0x03, 0x28, 0x05, 0x52, 0x06, 0x70, 0x75, 0x7a, 0x7a, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x69, 0x67,
0x69, 0x70, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x70, 0x73, 0x22, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x69, 0x67,
0x57, 0x0a, 0x0c, 0x44, 0x42, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x75,
0x17, 0x0a, 0x07, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x63, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x43, 0x6f,
0x52, 0x06, 0x6e, 0x61, 0x6d, 0x65, 0x43, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x05, 0x20, 0x01,
0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x28, 0x05, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x79,
0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x64, 0x61, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x70,
0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x75, 0x7a, 0x7a, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x70, 0x75, 0x7a,
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x7a, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x70, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28,
0x05, 0x52, 0x04, 0x74, 0x69, 0x70, 0x73, 0x22, 0x57, 0x0a, 0x0c, 0x44, 0x42, 0x52, 0x61, 0x6e,
0x64, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x61, 0x6d, 0x65, 0x5f,
0x63, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x61, 0x6d, 0x65, 0x43, 0x6e,
0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74,
0x75, 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 (
@ -1042,22 +1057,24 @@ func file_user_user_db_proto_rawDescGZIP() []byte {
return file_user_user_db_proto_rawDescData return file_user_user_db_proto_rawDescData
} }
var file_user_user_db_proto_msgTypes = make([]protoimpl.MessageInfo, 6) var file_user_user_db_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
var file_user_user_db_proto_goTypes = []interface{}{ var file_user_user_db_proto_goTypes = []interface{}{
(*CacheUser)(nil), // 0: CacheUser (*CacheUser)(nil), // 0: CacheUser
(*DBUser)(nil), // 1: DBUser (*DBUser)(nil), // 1: DBUser
(*DBUserSetting)(nil), // 2: DBUserSetting (*DBUserSetting)(nil), // 2: DBUserSetting
(*DBSign)(nil), // 3: DBSign (*DBSign)(nil), // 3: DBSign
(*DBRandomName)(nil), // 4: DBRandomName (*DBRandomName)(nil), // 4: DBRandomName
nil, // 5: DBUserSetting.BattleFormatsEntry nil, // 5: DBUser.ResrepliesEntry
nil, // 6: DBUserSetting.BattleFormatsEntry
} }
var file_user_user_db_proto_depIdxs = []int32{ var file_user_user_db_proto_depIdxs = []int32{
5, // 0: DBUserSetting.battleFormats:type_name -> DBUserSetting.BattleFormatsEntry 5, // 0: DBUser.resreplies:type_name -> DBUser.ResrepliesEntry
1, // [1:1] is the sub-list for method output_type 6, // 1: DBUserSetting.battleFormats:type_name -> DBUserSetting.BattleFormatsEntry
1, // [1:1] is the sub-list for method input_type 2, // [2:2] is the sub-list for method output_type
1, // [1:1] is the sub-list for extension type_name 2, // [2:2] is the sub-list for method input_type
1, // [1:1] is the sub-list for extension extendee 2, // [2:2] is the sub-list for extension type_name
0, // [0:1] is the sub-list for field type_name 2, // [2:2] is the sub-list for extension extendee
0, // [0:2] is the sub-list for field type_name
} }
func init() { file_user_user_db_proto_init() } func init() { file_user_user_db_proto_init() }
@ -1133,7 +1150,7 @@ func file_user_user_db_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(), GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_user_user_db_proto_rawDesc, RawDescriptor: file_user_user_db_proto_rawDesc,
NumEnums: 0, NumEnums: 0,
NumMessages: 6, NumMessages: 7,
NumExtensions: 0, NumExtensions: 0,
NumServices: 0, NumServices: 0,
}, },

View File

@ -0,0 +1,42 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
type GameRestore struct {
_dataMap map[int32]*GameRestoreData
_dataList []*GameRestoreData
}
func NewGameRestore(_buf []map[string]interface{}) (*GameRestore, error) {
_dataList := make([]*GameRestoreData, 0, len(_buf))
dataMap := make(map[int32]*GameRestoreData)
for _, _ele_ := range _buf {
if _v, err2 := DeserializeGameRestoreData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Key] = _v
}
}
return &GameRestore{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *GameRestore) GetDataMap() map[int32]*GameRestoreData {
return table._dataMap
}
func (table *GameRestore) GetDataList() []*GameRestoreData {
return table._dataList
}
func (table *GameRestore) Get(key int32) *GameRestoreData {
return table._dataMap[key]
}

View File

@ -0,0 +1,54 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
import "errors"
type GameRestoreData struct {
Key int32
Tpye int32
Cycle int32
Maximums []*Gameatn
}
const TypeId_GameRestoreData = -1179593892
func (*GameRestoreData) GetTypeId() int32 {
return -1179593892
}
func (_v *GameRestoreData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["key"].(float64); !_ok_ { err = errors.New("key error"); return }; _v.Key = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["tpye"].(float64); !_ok_ { err = errors.New("tpye error"); return }; _v.Tpye = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["cycle"].(float64); !_ok_ { err = errors.New("cycle error"); return }; _v.Cycle = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["maximums"].([]interface{}); !_ok_ { err = errors.New("maximums error"); return }
_v.Maximums = make([]*Gameatn, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ *Gameatn
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ { err = errors.New("_list_v_ error"); return }; if _list_v_, err = DeserializeGameatn(_x_); err != nil { return } }
_v.Maximums = append(_v.Maximums, _list_v_)
}
}
return
}
func DeserializeGameRestoreData(_buf map[string]interface{}) (*GameRestoreData, error) {
v := &GameRestoreData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
return nil, err
}
}

View File

@ -319,6 +319,7 @@ type Tables struct {
IntegralReward *GameIntegralReward IntegralReward *GameIntegralReward
IntegralCondition *GameIntegralCondition IntegralCondition *GameIntegralCondition
IntegralTime *GameIntegralTime IntegralTime *GameIntegralTime
Restore *GameRestore
} }
func NewTables(loader JsonLoader) (*Tables, error) { func NewTables(loader JsonLoader) (*Tables, error) {
@ -2174,5 +2175,11 @@ func NewTables(loader JsonLoader) (*Tables, error) {
if tables.IntegralTime, err = NewGameIntegralTime(buf) ; err != nil { if tables.IntegralTime, err = NewGameIntegralTime(buf) ; err != nil {
return nil, err return nil, err
} }
if buf, err = loader("game_restore") ; err != nil {
return nil, err
}
if tables.Restore, err = NewGameRestore(buf) ; err != nil {
return nil, err
}
return tables, nil return tables, nil
} }