This commit is contained in:
liwei1dao 2023-08-24 18:45:10 +08:00
commit b23a88b63f
20 changed files with 2265 additions and 2946 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,155 @@
[
{
"key": 110001,
"id": 11001,
"title": {
"key": "mainchapter_main_achievement_title_1",
"text": "碎片1"
},
"taskid": 11001001,
"reword": [
{
"a": "attr",
"t": "gold",
"n": 1000
}
],
"icon": "item_50013001"
},
{
"key": 110002,
"id": 11001,
"title": {
"key": "mainchapter_main_achievement_title_2",
"text": "碎片2"
},
"taskid": 11001001,
"reword": [
{
"a": "attr",
"t": "gold",
"n": 1001
}
],
"icon": "item_50013001"
},
{
"key": 110003,
"id": 11001,
"title": {
"key": "mainchapter_main_achievement_title_3",
"text": "碎片3"
},
"taskid": 11001001,
"reword": [
{
"a": "attr",
"t": "gold",
"n": 1002
}
],
"icon": "item_50013001"
},
{
"key": 110004,
"id": 11001,
"title": {
"key": "mainchapter_main_achievement_title_4",
"text": "碎片4"
},
"taskid": 11001001,
"reword": [
{
"a": "attr",
"t": "gold",
"n": 1003
}
],
"icon": "item_50013001"
},
{
"key": 110005,
"id": 11001,
"title": {
"key": "mainchapter_main_achievement_title_5",
"text": "碎片5"
},
"taskid": 11001001,
"reword": [
{
"a": "attr",
"t": "gold",
"n": 1004
}
],
"icon": "item_50013001"
},
{
"key": 110006,
"id": 11001,
"title": {
"key": "mainchapter_main_achievement_title_6",
"text": "碎片6"
},
"taskid": 11001001,
"reword": [
{
"a": "attr",
"t": "gold",
"n": 1005
}
],
"icon": "item_50013001"
},
{
"key": 110007,
"id": 11001,
"title": {
"key": "mainchapter_main_achievement_title_7",
"text": "碎片7"
},
"taskid": 11001001,
"reword": [
{
"a": "attr",
"t": "gold",
"n": 1006
}
],
"icon": "item_50013001"
},
{
"key": 110008,
"id": 11001,
"title": {
"key": "mainchapter_main_achievement_title_8",
"text": "碎片8"
},
"taskid": 11001001,
"reword": [
{
"a": "attr",
"t": "gold",
"n": 1007
}
],
"icon": "item_50013001"
},
{
"key": 110009,
"id": 11001,
"title": {
"key": "mainchapter_main_achievement_title_9",
"text": "碎片9"
},
"taskid": 11001001,
"reword": [
{
"a": "attr",
"t": "gold",
"n": 1008
}
],
"icon": "item_50013001"
}
]

View File

@ -1,6 +1,21 @@
[
{
"id": 11001,
"reward": {
"a": "hero",
"t": "44005",
"n": 1
},
"describe": {
"key": "mainchapter_main_chapter_describe_1",
"text": "获得小伊"
},
"achunlock": 11001001,
"shopname": {
"key": "mainchapter_main_chapter_shopname_1",
"text": "特色商店"
},
"shopunlock": 11001001,
"name": {
"key": "mainchapter_main_chapter_name_1",
"text": "预言之声"
@ -25,6 +40,21 @@
},
{
"id": 11002,
"reward": {
"a": "hero",
"t": "44005",
"n": 1
},
"describe": {
"key": "mainchapter_main_chapter_describe_2",
"text": "获得小伊"
},
"achunlock": 11001001,
"shopname": {
"key": "mainchapter_main_chapter_shopname_2",
"text": "特色商店"
},
"shopunlock": 11001001,
"name": {
"key": "mainchapter_main_chapter_name_2",
"text": "大龙复仇记"
@ -49,6 +79,21 @@
},
{
"id": 11003,
"reward": {
"a": "hero",
"t": "44005",
"n": 1
},
"describe": {
"key": "mainchapter_main_chapter_describe_3",
"text": "获得小伊"
},
"achunlock": 11001001,
"shopname": {
"key": "mainchapter_main_chapter_shopname_3",
"text": "特色商店"
},
"shopunlock": 11001001,
"name": {
"key": "mainchapter_main_chapter_name_3",
"text": "小偷与大盗"
@ -73,6 +118,21 @@
},
{
"id": 11004,
"reward": {
"a": "hero",
"t": "44005",
"n": 1
},
"describe": {
"key": "mainchapter_main_chapter_describe_4",
"text": "获得小伊"
},
"achunlock": 11001001,
"shopname": {
"key": "mainchapter_main_chapter_shopname_4",
"text": "特色商店"
},
"shopunlock": 11001001,
"name": {
"key": "mainchapter_main_chapter_name_4",
"text": "智取邀请函"
@ -97,6 +157,21 @@
},
{
"id": 11005,
"reward": {
"a": "hero",
"t": "44005",
"n": 1
},
"describe": {
"key": "mainchapter_main_chapter_describe_5",
"text": "获得小伊"
},
"achunlock": 11001001,
"shopname": {
"key": "mainchapter_main_chapter_shopname_5",
"text": "特色商店"
},
"shopunlock": 11001001,
"name": {
"key": "mainchapter_main_chapter_name_5",
"text": "黑市风波"
@ -121,6 +196,21 @@
},
{
"id": 11006,
"reward": {
"a": "hero",
"t": "44005",
"n": 1
},
"describe": {
"key": "mainchapter_main_chapter_describe_6",
"text": "获得小伊"
},
"achunlock": 11001001,
"shopname": {
"key": "mainchapter_main_chapter_shopname_6",
"text": "特色商店"
},
"shopunlock": 11001001,
"name": {
"key": "mainchapter_main_chapter_name_6",
"text": "小马王 · 一路向北"
@ -145,6 +235,21 @@
},
{
"id": 11007,
"reward": {
"a": "hero",
"t": "44005",
"n": 1
},
"describe": {
"key": "mainchapter_main_chapter_describe_7",
"text": "获得小伊"
},
"achunlock": 11001001,
"shopname": {
"key": "mainchapter_main_chapter_shopname_7",
"text": "特色商店"
},
"shopunlock": 11001001,
"name": {
"key": "mainchapter_main_chapter_name_7",
"text": "海洋之歌"
@ -169,6 +274,21 @@
},
{
"id": 11008,
"reward": {
"a": "hero",
"t": "44005",
"n": 1
},
"describe": {
"key": "mainchapter_main_chapter_describe_8",
"text": "获得小伊"
},
"achunlock": 11001001,
"shopname": {
"key": "mainchapter_main_chapter_shopname_8",
"text": "特色商店"
},
"shopunlock": 11001001,
"name": {
"key": "mainchapter_main_chapter_name_8",
"text": "布兰奇的逃亡"
@ -193,6 +313,21 @@
},
{
"id": 11009,
"reward": {
"a": "hero",
"t": "44005",
"n": 1
},
"describe": {
"key": "mainchapter_main_chapter_describe_9",
"text": "获得小伊"
},
"achunlock": 11001001,
"shopname": {
"key": "mainchapter_main_chapter_shopname_9",
"text": "特色商店"
},
"shopunlock": 11001001,
"name": {
"key": "mainchapter_main_chapter_name_9",
"text": "配方奶工厂"
@ -217,6 +352,21 @@
},
{
"id": 11010,
"reward": {
"a": "hero",
"t": "44005",
"n": 1
},
"describe": {
"key": "mainchapter_main_chapter_describe_10",
"text": "获得小伊"
},
"achunlock": 11001001,
"shopname": {
"key": "mainchapter_main_chapter_shopname_10",
"text": "特色商店"
},
"shopunlock": 11001001,
"name": {
"key": "mainchapter_main_chapter_name_10",
"text": "预言之声"
@ -241,6 +391,21 @@
},
{
"id": 11011,
"reward": {
"a": "hero",
"t": "44005",
"n": 1
},
"describe": {
"key": "mainchapter_main_chapter_describe_11",
"text": "获得小伊"
},
"achunlock": 11001001,
"shopname": {
"key": "mainchapter_main_chapter_shopname_11",
"text": "特色商店"
},
"shopunlock": 11001001,
"name": {
"key": "mainchapter_main_chapter_name_11",
"text": "大龙复仇记"
@ -265,6 +430,21 @@
},
{
"id": 11012,
"reward": {
"a": "hero",
"t": "44005",
"n": 1
},
"describe": {
"key": "mainchapter_main_chapter_describe_12",
"text": "获得小伊"
},
"achunlock": 11001001,
"shopname": {
"key": "mainchapter_main_chapter_shopname_12",
"text": "特色商店"
},
"shopunlock": 11001001,
"name": {
"key": "mainchapter_main_chapter_name_12",
"text": "小偷与大盗"

View File

@ -69,7 +69,7 @@
"Episodetype": 1,
"openlevel": 1,
"EditorStage": 0,
"venturemodel": "",
"venturemodel": "Person/badcar/badcar.prefab",
"bubbletalk": {
"key": "",
"text": ""

View File

@ -6319,12 +6319,12 @@
"Levelid": 0,
"datas": [
"GameMain",
"功能入口-招募",
"功能入口-浇水拼图",
"901"
],
"event": [
2,
12890
10000390
],
"goto": 0
},
@ -6349,12 +6349,12 @@
"Levelid": 0,
"datas": [
"GameMain",
"功能入口-招募",
"功能入口-浇水拼图",
"901"
],
"event": [
2,
13010
10000420
],
"goto": 0
},
@ -6364,12 +6364,12 @@
"Levelid": 0,
"datas": [
"GameMain",
"功能入口-招募",
"功能入口-浇水拼图",
"901"
],
"event": [
2,
12890
10000390
],
"goto": 0
},
@ -6394,12 +6394,12 @@
"Levelid": 0,
"datas": [
"GameMain",
"功能入口-招募",
"功能入口-浇水拼图",
"901"
],
"event": [
2,
13010
10000420
],
"goto": 0
},
@ -6409,12 +6409,12 @@
"Levelid": 0,
"datas": [
"GameMain",
"功能入口-招募",
"功能入口-浇水拼图",
"901"
],
"event": [
2,
12890
10000390
],
"goto": 0
},
@ -6439,12 +6439,12 @@
"Levelid": 0,
"datas": [
"GameMain",
"功能入口-招募",
"功能入口-浇水拼图",
"901"
],
"event": [
2,
13010
10000420
],
"goto": 0
},
@ -6454,12 +6454,12 @@
"Levelid": 0,
"datas": [
"GameMain",
"功能入口-招募",
"功能入口-浇水拼图",
"901"
],
"event": [
2,
12890
10000390
],
"goto": 0
},
@ -6484,12 +6484,12 @@
"Levelid": 0,
"datas": [
"GameMain",
"功能入口-招募",
"功能入口-浇水拼图",
"901"
],
"event": [
2,
13010
10000420
],
"goto": 0
},
@ -6499,12 +6499,12 @@
"Levelid": 0,
"datas": [
"GameMain",
"功能入口-招募",
"功能入口-浇水拼图",
"901"
],
"event": [
2,
12890
10000390
],
"goto": 0
},
@ -6529,12 +6529,12 @@
"Levelid": 0,
"datas": [
"GameMain",
"功能入口-招募",
"功能入口-浇水拼图",
"901"
],
"event": [
2,
13010
10000420
],
"goto": 0
},
@ -6544,12 +6544,12 @@
"Levelid": 0,
"datas": [
"GameMain",
"功能入口-招募",
"功能入口-浇水拼图",
"901"
],
"event": [
2,
12890
10000390
],
"goto": 0
},
@ -6574,12 +6574,12 @@
"Levelid": 0,
"datas": [
"GameMain",
"功能入口-招募",
"功能入口-浇水拼图",
"901"
],
"event": [
2,
13010
10000420
],
"goto": 0
},
@ -6589,12 +6589,12 @@
"Levelid": 0,
"datas": [
"GameMain",
"功能入口-招募",
"功能入口-浇水拼图",
"901"
],
"event": [
2,
12890
10000390
],
"goto": 0
},
@ -6619,12 +6619,12 @@
"Levelid": 0,
"datas": [
"GameMain",
"功能入口-招募",
"功能入口-浇水拼图",
"901"
],
"event": [
2,
13010
10000420
],
"goto": 0
},
@ -6859,7 +6859,7 @@
"Levelid": 0,
"datas": [
"GameMain",
"功能入口-竞技场",
"功能入口-浇水拼图",
"901"
],
"event": [
@ -6882,7 +6882,7 @@
"Levelid": 0,
"datas": [
"GameMain",
"功能入口-竞技场",
"功能入口-浇水拼图",
"901"
],
"event": [
@ -6897,7 +6897,7 @@
"Levelid": 0,
"datas": [
"GameMain",
"功能入口-竞技场",
"功能入口-维京远征",
"901"
],
"event": [
@ -6920,7 +6920,7 @@
"Levelid": 0,
"datas": [
"GameMain",
"功能入口-竞技场",
"功能入口-维京远征",
"901"
],
"event": [
@ -6935,7 +6935,7 @@
"Levelid": 0,
"datas": [
"GameMain",
"功能入口-竞技场",
"功能入口-魔药",
"901"
],
"event": [
@ -6958,7 +6958,7 @@
"Levelid": 0,
"datas": [
"GameMain",
"功能入口-竞技场",
"功能入口-魔药",
"901"
],
"event": [
@ -6972,9 +6972,9 @@
"heroid": 25001,
"Levelid": 0,
"datas": [
"GameMain",
"功能入口-竞技场",
"901"
"SmithyScene",
"打造",
"139"
],
"event": [
2,
@ -6995,9 +6995,9 @@
"heroid": 25001,
"Levelid": 0,
"datas": [
"GameMain",
"功能入口-竞技场",
"901"
"SmithyScene",
"打造",
"139"
],
"event": [
2,

View File

@ -51,7 +51,7 @@
},
"content": {
"key": "ruledesc_ruledesc_content_5",
"text": "这里可以查看各种功夫陪练,完成陪练可以获得高额奖励。<br>完成3/6/9次的陪练还有额外奖励可以领取。"
"text": "这里可以查看各种功夫陪练,完成陪练可以获得高额奖励。<br>完成4/8/12次的陪练还有额外奖励可以领取。"
}
},
{

View File

@ -354,6 +354,8 @@ const (
//新主线商店数据表
TableMainlineShop = "mainlineshop"
TableMainlinetask = "mlinetask"
)
// RPC服务接口定义处

View File

@ -6,24 +6,24 @@ import (
)
// 参数校验
func (this *apiComp) InfoCheck(session comm.IUserSession, req *pb.MainlineInfoReq) (errdata *pb.ErrorData) {
func (this *apiComp) InfoCheck(session comm.IUserSession, req *pb.MainlineTaskInfoReq) (errdata *pb.ErrorData) {
return
}
// /获取主线关卡信息
func (this *apiComp) Info(session comm.IUserSession, req *pb.MainlineInfoReq) (errdata *pb.ErrorData) {
func (this *apiComp) Info(session comm.IUserSession, req *pb.MainlineTaskInfoReq) (errdata *pb.ErrorData) {
var (
info *pb.DBMainline
dtask *pb.DBMainTask
tasks map[int32]struct{}
condiIds []int32
progress []*pb.ConIProgress
err error
)
errdata = this.InfoCheck(session, req)
if errdata != nil {
return // 参数校验失败直接返回
if errdata = this.InfoCheck(session, req); errdata != nil {
return
}
info, err = this.module.modelMline.getMainlineData(session.GetUserId())
if err != nil {
if dtask, err = this.module.modelTask.getUserDTasks(session.GetUserId()); err != nil {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_DBError,
Title: pb.ErrorCode_DBError.ToString(),
@ -31,6 +31,16 @@ func (this *apiComp) Info(session comm.IUserSession, req *pb.MainlineInfoReq) (e
}
return
}
session.SendMsg(string(this.module.GetType()), "info", &pb.MainlineInfoResp{Info: info})
tasks = this.module.configure.gettasks()
condiIds = make([]int32, 0, len(tasks))
for k, _ := range tasks {
condiIds = append(condiIds, k)
}
if progress, err = this.module.ModuleBuried.CheckCondition(session.GetUserId(), condiIds...); err != nil {
return
}
session.SendMsg(string(this.module.GetType()), "info", &pb.MainlineTaskInfoResp{Conlds: progress, Tasks: dtask.Tasks})
return
}

View File

@ -0,0 +1,81 @@
package mainline
import (
"fmt"
"go_dreamfactory/comm"
"go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs"
)
// 参数校验
func (this *apiComp) ReceiveCheck(session comm.IUserSession, req *pb.MainlineTaskReceiveReq) (errdata *pb.ErrorData) {
return
}
// /获取自己的排行榜信息
func (this *apiComp) Receive(session comm.IUserSession, req *pb.MainlineTaskReceiveReq) (errdata *pb.ErrorData) {
var (
dtask *pb.DBMainTask
conf *cfg.GameMainAchievementData
progress []*pb.ConIProgress
award []*pb.UserAtno
err error
)
if errdata = this.ReceiveCheck(session, req); errdata != nil {
return
}
if conf, err = this.module.configure.getGameVenturegiftsTask(req.Id); err != nil {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_DBError,
Title: pb.ErrorCode_DBError.ToString(),
Message: err.Error(),
}
return
}
if dtask, err = this.module.modelTask.getUserDTasks(session.GetUserId()); err != nil {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_DBError,
Title: pb.ErrorCode_DBError.ToString(),
Message: err.Error(),
}
return
}
if dtask.Tasks[req.Id] == 1 {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_ReqParameterError,
Title: pb.ErrorCode_ReqParameterError.ToString(),
Message: fmt.Sprintf("%d received", req.Id),
}
return
}
if progress, err = this.module.ModuleBuried.CheckCondition(session.GetUserId(), conf.Id); err != nil {
return
}
for _, v := range progress {
if v.State == pb.BuriedItemFinishState_buried_unfinish {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_ReqParameterError,
Title: pb.ErrorCode_ReqParameterError.ToString(),
Message: "task no finish",
}
return
}
}
if errdata, award = this.module.DispenseAtno(session, conf.Reword, true); errdata != nil {
return
}
dtask.Tasks[req.Id] = 1
this.module.modelTask.Change(session.GetUserId(), map[string]interface{}{
"tasks": dtask.Tasks,
})
session.SendMsg(string(this.module.GetType()), "receive", &pb.MainlineTaskReceiveResp{Id: req.Id, Award: award})
return
}

View File

@ -15,6 +15,7 @@ const (
game_mainstage = "game_mainstage.json"
game_mainstarreward = "game_mainstarreward.json"
game_mainshopitem = "game_mainshopitem.json"
game_mainachievement = "game_mainachievement.json"
)
// /配置管理基础组件
@ -24,6 +25,9 @@ type configureComp struct {
lock sync.RWMutex
chapterMap map[int32][]*cfg.GameMainStageData
rewardMap map[int32][]*cfg.GameMainStarrewardData
tasks map[int32]struct{}
groupTasks map[int32][]*cfg.GameMainAchievementData //key 条件ID
}
// 组件初始化接口
@ -37,7 +41,9 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp
this.chapterMap = make(map[int32][]*cfg.GameMainStageData)
configure.RegisterConfigure(game_mainstage, cfg.NewGameMainStage, this.updateMlineStage)
configure.RegisterConfigure(game_mainstarreward, cfg.NewGameMainStarreward, this.updateMlineReward)
configure.RegisterConfigure(game_mainachievement, cfg.NewGameMainAchievement, this.GameMainAchievement)
this.gettasks()
return
}
@ -178,3 +184,56 @@ func (this *configureComp) GetMlineShopConfById(cid int32) (conf *cfg.GameMainSh
err = comm.NewNotFoundConfErr(moduleName, game_mainstage, cid)
return
}
// 更新任务配置表
func (this *configureComp) GameMainAchievement() {
var (
v interface{}
conf *cfg.GameMainAchievement
ok bool
err error
)
if v, err = this.GetConfigure(game_mainachievement); err != nil {
return
}
if conf, ok = v.(*cfg.GameMainAchievement); !ok {
this.module.Error("日常任务配置异常!")
return
}
tasks := make(map[int32]struct{})
groupTasksConf := make(map[int32][]*cfg.GameMainAchievementData)
for _, v := range conf.GetDataList() {
if _, ok := groupTasksConf[v.Id]; !ok {
groupTasksConf[v.Id] = make([]*cfg.GameMainAchievementData, 0)
}
groupTasksConf[v.Id] = append(groupTasksConf[v.Id], v)
tasks[v.Taskid] = struct{}{}
}
this.lock.Lock()
this.groupTasks = groupTasksConf
this.tasks = tasks
this.lock.Unlock()
}
func (this *configureComp) gettasks() map[int32]struct{} {
this.lock.RLock()
defer this.lock.RUnlock()
return this.tasks
}
func (this *configureComp) getGameVenturegiftsTask(id int32) (conf *cfg.GameMainAchievementData, err error) {
var (
v interface{}
ok bool
)
if v, err = this.GetConfigure(game_mainachievement); err != nil {
return
}
if conf, ok = v.(*cfg.GameMainAchievement).GetDataMap()[id]; !ok {
err = comm.NewNotFoundConfErr(string(this.module.GetType()), game_mainachievement, id)
this.module.Errorln(err)
return
}
return
}

View File

@ -0,0 +1,46 @@
package mainline
import (
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/mgo"
"go_dreamfactory/modules"
"go_dreamfactory/pb"
"go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/x/bsonx"
)
type Modeltask struct {
modules.MCompModel
module *Mainline
}
func (this *Modeltask) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
err = this.MCompModel.Init(service, module, comp, options)
this.TableName = comm.TableMainlinetask
this.module = module.(*Mainline)
this.DB.CreateIndex(core.SqlTable(this.TableName), mongo.IndexModel{
Keys: bsonx.Doc{{Key: "uid", Value: bsonx.Int32(1)}},
})
return
}
// 获取用户全部的埋点数据
func (this *Modeltask) getUserDTasks(uid string) (results *pb.DBMainTask, err error) {
results = &pb.DBMainTask{}
if err = this.Get(uid, results); err != nil && err != mgo.MongodbNil {
this.module.Errorln(err)
return
}
if err == mgo.MongodbNil {
results = &pb.DBMainTask{
Id: primitive.NewObjectID().Hex(),
Uid: uid,
Tasks: make(map[int32]int32),
}
err = this.Add(uid, results)
}
return
}

View File

@ -17,6 +17,7 @@ type Mainline struct {
configure *configureComp
battle comm.IBattle
modelShop *ModelShop
modelTask *Modeltask
}
func NewModule() core.IModule {
@ -38,6 +39,7 @@ func (this *Mainline) OnInstallComp() {
this.api = this.RegisterComp(new(apiComp)).(*apiComp)
this.modelMline = this.RegisterComp(new(ModelMline)).(*ModelMline)
this.modelShop = this.RegisterComp(new(ModelShop)).(*ModelShop)
this.modelTask = this.RegisterComp(new(Modeltask)).(*Modeltask)
this.configure = this.RegisterComp(new(configureComp)).(*configureComp)
}

View File

@ -14,9 +14,11 @@ import (
//爬塔模块 机器人
type ModuleRobot_Pagoda struct {
pagoda *pb.DBPagoda
c *configureComp
}
func (this *ModuleRobot_Pagoda) Init() (err error) {
this.c = new(configureComp)
return
}
@ -27,7 +29,12 @@ func (this *ModuleRobot_Pagoda) Receive(robot IRobot, stype string, message prot
resp := message.(*pb.PagodaGetListResp)
this.pagoda = resp.Data
break
case "challengeover": // 更新塔信息
resp := message.(*pb.PagodaChallengeOverResp)
this.pagoda = resp.Data
break
}
return
}

View File

@ -250,6 +250,69 @@ func (x *DBMainlineShop) GetUnlock() map[int32]int32 {
return nil
}
type DBMainTask struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"`
Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid"`
Tasks map[int32]int32 `protobuf:"bytes,3,rep,name=tasks,proto3" json:"tasks" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
}
func (x *DBMainTask) Reset() {
*x = DBMainTask{}
if protoimpl.UnsafeEnabled {
mi := &file_mainline_mainline_db_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DBMainTask) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DBMainTask) ProtoMessage() {}
func (x *DBMainTask) ProtoReflect() protoreflect.Message {
mi := &file_mainline_mainline_db_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DBMainTask.ProtoReflect.Descriptor instead.
func (*DBMainTask) Descriptor() ([]byte, []int) {
return file_mainline_mainline_db_proto_rawDescGZIP(), []int{3}
}
func (x *DBMainTask) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *DBMainTask) GetUid() string {
if x != nil {
return x.Uid
}
return ""
}
func (x *DBMainTask) GetTasks() map[int32]int32 {
if x != nil {
return x.Tasks
}
return nil
}
var File_mainline_mainline_db_proto protoreflect.FileDescriptor
var file_mainline_mainline_db_proto_rawDesc = []byte{
@ -332,8 +395,17 @@ var file_mainline_mainline_db_proto_rawDesc = []byte{
0x63, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
0x02, 0x38, 0x01, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x33,
0x02, 0x38, 0x01, 0x22, 0x96, 0x01, 0x0a, 0x0a, 0x44, 0x42, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x61,
0x73, 0x6b, 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, 0x20, 0x01, 0x28, 0x09, 0x52,
0x03, 0x75, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x03, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x44, 0x42, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x61, 0x73, 0x6b,
0x2e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x74, 0x61, 0x73,
0x6b, 0x73, 0x1a, 0x38, 0x0a, 0x0a, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b,
0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x06, 0x5a, 0x04,
0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@ -348,39 +420,42 @@ func file_mainline_mainline_db_proto_rawDescGZIP() []byte {
return file_mainline_mainline_db_proto_rawDescData
}
var file_mainline_mainline_db_proto_msgTypes = make([]protoimpl.MessageInfo, 12)
var file_mainline_mainline_db_proto_msgTypes = make([]protoimpl.MessageInfo, 14)
var file_mainline_mainline_db_proto_goTypes = []interface{}{
(*DBMainline)(nil), // 0: DBMainline
(*DBMainlineAward)(nil), // 1: DBMainlineAward
(*DBMainlineShop)(nil), // 2: DBMainlineShop
nil, // 3: DBMainline.LastlevelEntry
nil, // 4: DBMainline.LevelEntry
nil, // 5: DBMainline.ChapterawardEntry
nil, // 6: DBMainline.ExploreawardEntry
nil, // 7: DBMainline.GroupawardEntry
nil, // 8: DBMainline.PsEntry
nil, // 9: DBMainlineAward.AwardEntry
nil, // 10: DBMainlineShop.BuytimeEntry
nil, // 11: DBMainlineShop.UnlockEntry
(*DBMainTask)(nil), // 3: DBMainTask
nil, // 4: DBMainline.LastlevelEntry
nil, // 5: DBMainline.LevelEntry
nil, // 6: DBMainline.ChapterawardEntry
nil, // 7: DBMainline.ExploreawardEntry
nil, // 8: DBMainline.GroupawardEntry
nil, // 9: DBMainline.PsEntry
nil, // 10: DBMainlineAward.AwardEntry
nil, // 11: DBMainlineShop.BuytimeEntry
nil, // 12: DBMainlineShop.UnlockEntry
nil, // 13: DBMainTask.TasksEntry
}
var file_mainline_mainline_db_proto_depIdxs = []int32{
3, // 0: DBMainline.lastlevel:type_name -> DBMainline.LastlevelEntry
4, // 1: DBMainline.level:type_name -> DBMainline.LevelEntry
5, // 2: DBMainline.chapteraward:type_name -> DBMainline.ChapterawardEntry
6, // 3: DBMainline.exploreaward:type_name -> DBMainline.ExploreawardEntry
7, // 4: DBMainline.groupaward:type_name -> DBMainline.GroupawardEntry
8, // 5: DBMainline.ps:type_name -> DBMainline.PsEntry
9, // 6: DBMainlineAward.award:type_name -> DBMainlineAward.AwardEntry
10, // 7: DBMainlineShop.buytime:type_name -> DBMainlineShop.BuytimeEntry
11, // 8: DBMainlineShop.unlock:type_name -> DBMainlineShop.UnlockEntry
1, // 9: DBMainline.ChapterawardEntry.value:type_name -> DBMainlineAward
1, // 10: DBMainline.ExploreawardEntry.value:type_name -> DBMainlineAward
1, // 11: DBMainline.GroupawardEntry.value:type_name -> DBMainlineAward
12, // [12:12] is the sub-list for method output_type
12, // [12:12] is the sub-list for method input_type
12, // [12:12] is the sub-list for extension type_name
12, // [12:12] is the sub-list for extension extendee
0, // [0:12] is the sub-list for field type_name
4, // 0: DBMainline.lastlevel:type_name -> DBMainline.LastlevelEntry
5, // 1: DBMainline.level:type_name -> DBMainline.LevelEntry
6, // 2: DBMainline.chapteraward:type_name -> DBMainline.ChapterawardEntry
7, // 3: DBMainline.exploreaward:type_name -> DBMainline.ExploreawardEntry
8, // 4: DBMainline.groupaward:type_name -> DBMainline.GroupawardEntry
9, // 5: DBMainline.ps:type_name -> DBMainline.PsEntry
10, // 6: DBMainlineAward.award:type_name -> DBMainlineAward.AwardEntry
11, // 7: DBMainlineShop.buytime:type_name -> DBMainlineShop.BuytimeEntry
12, // 8: DBMainlineShop.unlock:type_name -> DBMainlineShop.UnlockEntry
13, // 9: DBMainTask.tasks:type_name -> DBMainTask.TasksEntry
1, // 10: DBMainline.ChapterawardEntry.value:type_name -> DBMainlineAward
1, // 11: DBMainline.ExploreawardEntry.value:type_name -> DBMainlineAward
1, // 12: DBMainline.GroupawardEntry.value:type_name -> DBMainlineAward
13, // [13:13] is the sub-list for method output_type
13, // [13:13] is the sub-list for method input_type
13, // [13:13] is the sub-list for extension type_name
13, // [13:13] is the sub-list for extension extendee
0, // [0:13] is the sub-list for field type_name
}
func init() { file_mainline_mainline_db_proto_init() }
@ -425,6 +500,18 @@ func file_mainline_mainline_db_proto_init() {
return nil
}
}
file_mainline_mainline_db_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DBMainTask); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
@ -432,7 +519,7 @@ func file_mainline_mainline_db_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_mainline_mainline_db_proto_rawDesc,
NumEnums: 0,
NumMessages: 12,
NumMessages: 14,
NumExtensions: 0,
NumServices: 0,
},

View File

@ -868,92 +868,311 @@ func (x *MainlineShopChangePush) GetCid() []int32 {
return nil
}
type MainlineTaskInfoReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *MainlineTaskInfoReq) Reset() {
*x = MainlineTaskInfoReq{}
if protoimpl.UnsafeEnabled {
mi := &file_mainline_mainline_msg_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MainlineTaskInfoReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MainlineTaskInfoReq) ProtoMessage() {}
func (x *MainlineTaskInfoReq) ProtoReflect() protoreflect.Message {
mi := &file_mainline_mainline_msg_proto_msgTypes[15]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MainlineTaskInfoReq.ProtoReflect.Descriptor instead.
func (*MainlineTaskInfoReq) Descriptor() ([]byte, []int) {
return file_mainline_mainline_msg_proto_rawDescGZIP(), []int{15}
}
type MainlineTaskInfoResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Conlds []*ConIProgress `protobuf:"bytes,1,rep,name=conlds,proto3" json:"conlds"` //子任务进度数据
Tasks map[int32]int32 `protobuf:"bytes,2,rep,name=tasks,proto3" json:"tasks" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
}
func (x *MainlineTaskInfoResp) Reset() {
*x = MainlineTaskInfoResp{}
if protoimpl.UnsafeEnabled {
mi := &file_mainline_mainline_msg_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MainlineTaskInfoResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MainlineTaskInfoResp) ProtoMessage() {}
func (x *MainlineTaskInfoResp) ProtoReflect() protoreflect.Message {
mi := &file_mainline_mainline_msg_proto_msgTypes[16]
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 MainlineTaskInfoResp.ProtoReflect.Descriptor instead.
func (*MainlineTaskInfoResp) Descriptor() ([]byte, []int) {
return file_mainline_mainline_msg_proto_rawDescGZIP(), []int{16}
}
func (x *MainlineTaskInfoResp) GetConlds() []*ConIProgress {
if x != nil {
return x.Conlds
}
return nil
}
func (x *MainlineTaskInfoResp) GetTasks() map[int32]int32 {
if x != nil {
return x.Tasks
}
return nil
}
//领奖 请求
type MainlineTaskReceiveReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id"`
}
func (x *MainlineTaskReceiveReq) Reset() {
*x = MainlineTaskReceiveReq{}
if protoimpl.UnsafeEnabled {
mi := &file_mainline_mainline_msg_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MainlineTaskReceiveReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MainlineTaskReceiveReq) ProtoMessage() {}
func (x *MainlineTaskReceiveReq) ProtoReflect() protoreflect.Message {
mi := &file_mainline_mainline_msg_proto_msgTypes[17]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MainlineTaskReceiveReq.ProtoReflect.Descriptor instead.
func (*MainlineTaskReceiveReq) Descriptor() ([]byte, []int) {
return file_mainline_mainline_msg_proto_rawDescGZIP(), []int{17}
}
func (x *MainlineTaskReceiveReq) GetId() int32 {
if x != nil {
return x.Id
}
return 0
}
//领奖 请求回应
type MainlineTaskReceiveResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id"`
Award []*UserAtno `protobuf:"bytes,2,rep,name=award,proto3" json:"award"` //奖励
}
func (x *MainlineTaskReceiveResp) Reset() {
*x = MainlineTaskReceiveResp{}
if protoimpl.UnsafeEnabled {
mi := &file_mainline_mainline_msg_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MainlineTaskReceiveResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MainlineTaskReceiveResp) ProtoMessage() {}
func (x *MainlineTaskReceiveResp) ProtoReflect() protoreflect.Message {
mi := &file_mainline_mainline_msg_proto_msgTypes[18]
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 MainlineTaskReceiveResp.ProtoReflect.Descriptor instead.
func (*MainlineTaskReceiveResp) Descriptor() ([]byte, []int) {
return file_mainline_mainline_msg_proto_rawDescGZIP(), []int{18}
}
func (x *MainlineTaskReceiveResp) GetId() int32 {
if x != nil {
return x.Id
}
return 0
}
func (x *MainlineTaskReceiveResp) GetAward() []*UserAtno {
if x != nil {
return x.Award
}
return nil
}
var File_mainline_mainline_msg_proto protoreflect.FileDescriptor
var file_mainline_mainline_msg_proto_rawDesc = []byte{
0x0a, 0x1b, 0x6d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x6c,
0x69, 0x6e, 0x65, 0x5f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x6d,
0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65,
0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x62, 0x61, 0x74, 0x74, 0x6c,
0x65, 0x2f, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x1a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x11,
0x0a, 0x0f, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65,
0x71, 0x22, 0x33, 0x0a, 0x10, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66,
0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x44, 0x42, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65,
0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x56, 0x0a, 0x14, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69,
0x6e, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x14,
0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c,
0x65, 0x76, 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x06, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x18, 0x02,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x72,
0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x22, 0x4e,
0x0a, 0x15, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65,
0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x6e,
0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65,
0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x57,
0x0a, 0x18, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65,
0x6e, 0x67, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65,
0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c,
0x12, 0x25, 0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x0d, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52,
0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x9c, 0x01, 0x0a, 0x19, 0x4d, 0x61, 0x69, 0x6e,
0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x4f, 0x76, 0x65,
0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01,
0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x73,
0x74, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x74, 0x61, 0x72, 0x12,
0x21, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x09, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, 0x6e, 0x6f, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61,
0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x70, 0x18, 0x04, 0x20,
0x01, 0x28, 0x05, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x70, 0x12, 0x18, 0x0a, 0x07,
0x68, 0x65, 0x72, 0x6f, 0x45, 0x78, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x68,
0x65, 0x72, 0x6f, 0x45, 0x78, 0x70, 0x22, 0x2c, 0x0a, 0x14, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69,
0x6e, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x52, 0x65, 0x71, 0x12, 0x14,
0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c,
0x65, 0x76, 0x65, 0x6c, 0x22, 0x98, 0x01, 0x0a, 0x15, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e,
0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14,
0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c,
0x65, 0x76, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x74, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01,
0x28, 0x05, 0x52, 0x04, 0x73, 0x74, 0x61, 0x72, 0x12, 0x21, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61,
0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41,
0x74, 0x6e, 0x6f, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x75,
0x73, 0x65, 0x72, 0x45, 0x78, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x75, 0x73,
0x65, 0x72, 0x45, 0x78, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x45, 0x78, 0x70,
0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x45, 0x78, 0x70, 0x22,
0x75, 0x0a, 0x17, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69,
0x76, 0x65, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x74,
0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x74, 0x79, 0x70, 0x65,
0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28,
0x05, 0x52, 0x07, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72,
0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70,
0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52,
0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x22, 0x99, 0x01, 0x0a, 0x18, 0x4d, 0x61, 0x69, 0x6e, 0x6c,
0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x16, 0x62, 0x75, 0x72, 0x69, 0x65,
0x64, 0x2f, 0x62, 0x75, 0x72, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x1a, 0x17, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x2f, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65,
0x5f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x11, 0x0a, 0x0f, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69,
0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x22, 0x33, 0x0a, 0x10, 0x4d, 0x61, 0x69,
0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1f, 0x0a,
0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x44, 0x42,
0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x56,
0x0a, 0x14, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65,
0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18,
0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x06,
0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x42,
0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06,
0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x22, 0x4e, 0x0a, 0x15, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69,
0x6e, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12,
0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e,
0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f,
0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x57, 0x0a, 0x18, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69,
0x6e, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x52,
0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28,
0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x25, 0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f,
0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c,
0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22,
0x9c, 0x01, 0x0a, 0x19, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68, 0x61, 0x6c,
0x6c, 0x65, 0x6e, 0x67, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a,
0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65,
0x76, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x74, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28,
0x05, 0x52, 0x04, 0x73, 0x74, 0x61, 0x72, 0x12, 0x21, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72,
0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74,
0x6e, 0x6f, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x73,
0x65, 0x72, 0x45, 0x78, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x75, 0x73, 0x65,
0x72, 0x45, 0x78, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x45, 0x78, 0x70, 0x18,
0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x45, 0x78, 0x70, 0x22, 0x2c,
0x0a, 0x14, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x50,
0x61, 0x73, 0x73, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18,
0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x98, 0x01, 0x0a,
0x15, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x50, 0x61,
0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18,
0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04,
0x73, 0x74, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x74, 0x61, 0x72,
0x12, 0x21, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x09, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, 0x6e, 0x6f, 0x52, 0x06, 0x72, 0x65, 0x77,
0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x70, 0x18, 0x04,
0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x70, 0x12, 0x18, 0x0a,
0x07, 0x68, 0x65, 0x72, 0x6f, 0x45, 0x78, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07,
0x68, 0x65, 0x72, 0x6f, 0x45, 0x78, 0x70, 0x22, 0x75, 0x0a, 0x17, 0x4d, 0x61, 0x69, 0x6e, 0x6c,
0x69, 0x6e, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52,
0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01,
0x28, 0x05, 0x52, 0x05, 0x72, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61,
0x70, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x68, 0x61, 0x70,
0x74, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01,
0x28, 0x05, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61,
0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x12,
0x21, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x09, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, 0x6e, 0x6f, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61,
0x72, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x68,
0x6f, 0x70, 0x52, 0x65, 0x71, 0x22, 0x37, 0x0a, 0x10, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e,
0x65, 0x53, 0x68, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x23, 0x0a, 0x04, 0x69, 0x6e, 0x66,
0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x44, 0x42, 0x4d, 0x61, 0x69, 0x6e,
0x6c, 0x69, 0x6e, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x26,
0x0a, 0x12, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x42, 0x75,
0x79, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x05, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0x59, 0x0a, 0x13, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69,
0x6e, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x42, 0x75, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x23, 0x0a,
0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x44, 0x42,
0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x52, 0x04, 0x69, 0x6e,
0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x09, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, 0x6e, 0x6f, 0x52, 0x04, 0x69, 0x74, 0x65,
0x6d, 0x22, 0x2a, 0x0a, 0x16, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x68, 0x6f,
0x70, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x63,
0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x03, 0x63, 0x69, 0x64, 0x42, 0x06, 0x5a,
0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
0x05, 0x52, 0x05, 0x72, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x70,
0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x68, 0x61, 0x70, 0x74,
0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28,
0x05, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67,
0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x22, 0x99,
0x01, 0x0a, 0x18, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69,
0x76, 0x65, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x72,
0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x74, 0x79, 0x70,
0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01,
0x28, 0x05, 0x52, 0x07, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x67,
0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75,
0x70, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05,
0x52, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72,
0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74,
0x6e, 0x6f, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x4d, 0x61,
0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x22, 0x37, 0x0a,
0x10, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x52, 0x65, 0x73,
0x70, 0x12, 0x23, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x0f, 0x2e, 0x44, 0x42, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x68, 0x6f, 0x70,
0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x26, 0x0a, 0x12, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69,
0x6e, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x42, 0x75, 0x79, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03,
0x63, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0x59,
0x0a, 0x13, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x42, 0x75,
0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x23, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x44, 0x42, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65,
0x53, 0x68, 0x6f, 0x70, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x04, 0x69, 0x74,
0x65, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41,
0x74, 0x6e, 0x6f, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x22, 0x2a, 0x0a, 0x16, 0x4d, 0x61, 0x69,
0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50,
0x75, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05,
0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e,
0x65, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x22, 0xaf, 0x01, 0x0a,
0x14, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66,
0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x25, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x6c, 0x64, 0x73, 0x18,
0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x43, 0x6f, 0x6e, 0x49, 0x50, 0x72, 0x6f, 0x67,
0x72, 0x65, 0x73, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x6c, 0x64, 0x73, 0x12, 0x36, 0x0a, 0x05,
0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x61,
0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65,
0x73, 0x70, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x74,
0x61, 0x73, 0x6b, 0x73, 0x1a, 0x38, 0x0a, 0x0a, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x45, 0x6e, 0x74,
0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x28,
0x0a, 0x16, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65,
0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x22, 0x4a, 0x0a, 0x17, 0x4d, 0x61, 0x69, 0x6e,
0x6c, 0x69, 0x6e, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x52,
0x65, 0x73, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
0x02, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x05, 0x61, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x09, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, 0x6e, 0x6f, 0x52, 0x05, 0x61,
0x77, 0x61, 0x72, 0x64, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x33,
}
var (
@ -968,7 +1187,7 @@ func file_mainline_mainline_msg_proto_rawDescGZIP() []byte {
return file_mainline_mainline_msg_proto_rawDescData
}
var file_mainline_mainline_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 15)
var file_mainline_mainline_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 20)
var file_mainline_mainline_msg_proto_goTypes = []interface{}{
(*MainlineInfoReq)(nil), // 0: MainlineInfoReq
(*MainlineInfoResp)(nil), // 1: MainlineInfoResp
@ -985,29 +1204,38 @@ var file_mainline_mainline_msg_proto_goTypes = []interface{}{
(*MainlineShopBuyReq)(nil), // 12: MainlineShopBuyReq
(*MainlineShopBuyResp)(nil), // 13: MainlineShopBuyResp
(*MainlineShopChangePush)(nil), // 14: MainlineShopChangePush
(*DBMainline)(nil), // 15: DBMainline
(*BattleFormation)(nil), // 16: BattleFormation
(*BattleInfo)(nil), // 17: BattleInfo
(*BattleReport)(nil), // 18: BattleReport
(*UserAtno)(nil), // 19: UserAtno
(*DBMainlineShop)(nil), // 20: DBMainlineShop
(*MainlineTaskInfoReq)(nil), // 15: MainlineTaskInfoReq
(*MainlineTaskInfoResp)(nil), // 16: MainlineTaskInfoResp
(*MainlineTaskReceiveReq)(nil), // 17: MainlineTaskReceiveReq
(*MainlineTaskReceiveResp)(nil), // 18: MainlineTaskReceiveResp
nil, // 19: MainlineTaskInfoResp.TasksEntry
(*DBMainline)(nil), // 20: DBMainline
(*BattleFormation)(nil), // 21: BattleFormation
(*BattleInfo)(nil), // 22: BattleInfo
(*BattleReport)(nil), // 23: BattleReport
(*UserAtno)(nil), // 24: UserAtno
(*DBMainlineShop)(nil), // 25: DBMainlineShop
(*ConIProgress)(nil), // 26: ConIProgress
}
var file_mainline_mainline_msg_proto_depIdxs = []int32{
15, // 0: MainlineInfoResp.info:type_name -> DBMainline
16, // 1: MainlineChallengeReq.battle:type_name -> BattleFormation
17, // 2: MainlineChallengeResp.info:type_name -> BattleInfo
18, // 3: MainlineChallengeOverReq.report:type_name -> BattleReport
19, // 4: MainlineChallengeOverResp.reward:type_name -> UserAtno
19, // 5: MainlineLevelPassResp.reward:type_name -> UserAtno
19, // 6: MainlineReceiveAwardResp.reward:type_name -> UserAtno
20, // 7: MainlineShopResp.info:type_name -> DBMainlineShop
20, // 8: MainlineShopBuyResp.info:type_name -> DBMainlineShop
19, // 9: MainlineShopBuyResp.item:type_name -> UserAtno
10, // [10:10] is the sub-list for method output_type
10, // [10:10] is the sub-list for method input_type
10, // [10:10] is the sub-list for extension type_name
10, // [10:10] is the sub-list for extension extendee
0, // [0:10] is the sub-list for field type_name
20, // 0: MainlineInfoResp.info:type_name -> DBMainline
21, // 1: MainlineChallengeReq.battle:type_name -> BattleFormation
22, // 2: MainlineChallengeResp.info:type_name -> BattleInfo
23, // 3: MainlineChallengeOverReq.report:type_name -> BattleReport
24, // 4: MainlineChallengeOverResp.reward:type_name -> UserAtno
24, // 5: MainlineLevelPassResp.reward:type_name -> UserAtno
24, // 6: MainlineReceiveAwardResp.reward:type_name -> UserAtno
25, // 7: MainlineShopResp.info:type_name -> DBMainlineShop
25, // 8: MainlineShopBuyResp.info:type_name -> DBMainlineShop
24, // 9: MainlineShopBuyResp.item:type_name -> UserAtno
26, // 10: MainlineTaskInfoResp.conlds:type_name -> ConIProgress
19, // 11: MainlineTaskInfoResp.tasks:type_name -> MainlineTaskInfoResp.TasksEntry
24, // 12: MainlineTaskReceiveResp.award:type_name -> UserAtno
13, // [13:13] is the sub-list for method output_type
13, // [13:13] is the sub-list for method input_type
13, // [13:13] is the sub-list for extension type_name
13, // [13:13] is the sub-list for extension extendee
0, // [0:13] is the sub-list for field type_name
}
func init() { file_mainline_mainline_msg_proto_init() }
@ -1016,6 +1244,7 @@ func file_mainline_mainline_msg_proto_init() {
return
}
file_mainline_mainline_db_proto_init()
file_buried_buried_db_proto_init()
file_battle_battle_msg_proto_init()
file_comm_proto_init()
if !protoimpl.UnsafeEnabled {
@ -1199,6 +1428,54 @@ func file_mainline_mainline_msg_proto_init() {
return nil
}
}
file_mainline_mainline_msg_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MainlineTaskInfoReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_mainline_mainline_msg_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MainlineTaskInfoResp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_mainline_mainline_msg_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MainlineTaskReceiveReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_mainline_mainline_msg_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MainlineTaskReceiveResp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
@ -1206,7 +1483,7 @@ func file_mainline_mainline_msg_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_mainline_mainline_msg_proto_rawDesc,
NumEnums: 0,
NumMessages: 15,
NumMessages: 20,
NumExtensions: 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 GameMainAchievement struct {
_dataMap map[int32]*GameMainAchievementData
_dataList []*GameMainAchievementData
}
func NewGameMainAchievement(_buf []map[string]interface{}) (*GameMainAchievement, error) {
_dataList := make([]*GameMainAchievementData, 0, len(_buf))
dataMap := make(map[int32]*GameMainAchievementData)
for _, _ele_ := range _buf {
if _v, err2 := DeserializeGameMainAchievementData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Key] = _v
}
}
return &GameMainAchievement{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *GameMainAchievement) GetDataMap() map[int32]*GameMainAchievementData {
return table._dataMap
}
func (table *GameMainAchievement) GetDataList() []*GameMainAchievementData {
return table._dataList
}
func (table *GameMainAchievement) Get(key int32) *GameMainAchievementData {
return table._dataMap[key]
}

View File

@ -0,0 +1,58 @@
//------------------------------------------------------------------------------
// <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 GameMainAchievementData struct {
Key int32
Id int32
Title string
Taskid int32
Reword []*Gameatn
Icon string
}
const TypeId_GameMainAchievementData = 587955332
func (*GameMainAchievementData) GetTypeId() int32 {
return 587955332
}
func (_v *GameMainAchievementData)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["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["title"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Title error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Title, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["taskid"].(float64); !_ok_ { err = errors.New("taskid error"); return }; _v.Taskid = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["reword"].([]interface{}); !_ok_ { err = errors.New("reword error"); return }
_v.Reword = 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.Reword = append(_v.Reword, _list_v_)
}
}
{ var _ok_ bool; if _v.Icon, _ok_ = _buf["icon"].(string); !_ok_ { err = errors.New("icon error"); return } }
return
}
func DeserializeGameMainAchievementData(_buf map[string]interface{}) (*GameMainAchievementData, error) {
v := &GameMainAchievementData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
return nil, err
}
}

View File

@ -12,6 +12,11 @@ import "errors"
type GameMainChapterData struct {
Id int32
Reward *Gameatn
Describe string
Achunlock int32
Shopname string
Shopunlock int32
Name string
Worldname string
ChapterType int32
@ -31,6 +36,11 @@ func (*GameMainChapterData) GetTypeId() int32 {
func (_v *GameMainChapterData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _buf["reward"].(map[string]interface{}); !_ok_ { err = errors.New("reward error"); return }; if _v.Reward, err = DeserializeGameatn(_x_); err != nil { return } }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["describe"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Describe error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Describe, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["achunlock"].(float64); !_ok_ { err = errors.New("achunlock error"); return }; _v.Achunlock = int32(_tempNum_) }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["shopname"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Shopname error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Shopname, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["shopunlock"].(float64); !_ok_ { err = errors.New("shopunlock error"); return }; _v.Shopunlock = int32(_tempNum_) }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["name"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Name error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Name, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["worldname"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Worldname error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Worldname, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["chapter_type"].(float64); !_ok_ { err = errors.New("chapter_type error"); return }; _v.ChapterType = int32(_tempNum_) }

View File

@ -252,6 +252,7 @@ type Tables struct {
UiGameConsum *GameUiGameConsum
TopUIConfig *GameTopUIConfig
MainShopItem *GameMainShopItem
MainAchievement *GameMainAchievement
}
func NewTables(loader JsonLoader) (*Tables, error) {
@ -1705,5 +1706,11 @@ func NewTables(loader JsonLoader) (*Tables, error) {
if tables.MainShopItem, err = NewGameMainShopItem(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_mainachievement") ; err != nil {
return nil, err
}
if tables.MainAchievement, err = NewGameMainAchievement(buf) ; err != nil {
return nil, err
}
return tables, nil
}