diff --git a/bin/json/game_teaching.json b/bin/json/game_teaching.json
new file mode 100644
index 000000000..6854cdd80
--- /dev/null
+++ b/bin/json/game_teaching.json
@@ -0,0 +1,396 @@
+[
+ {
+ "id": 10001,
+ "suittype": 1,
+ "desc": {
+ "key": "mainline_desc_10001",
+ "text": "在实战中学习能够影响攻击力和防御力的技能作用"
+ },
+ "tips": {
+ "key": "mainline_desc_10001",
+ "text": "在实战中学习能够影响攻击力和防御力的技能作用"
+ },
+ "task": [
+ 1,
+ 2,
+ 11
+ ],
+ "us_FormatList": [
+ 101091
+ ],
+ "FormatList": [
+ 101091
+ ],
+ "award": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1650
+ }
+ ]
+ },
+ {
+ "id": 10002,
+ "suittype": 1,
+ "desc": {
+ "key": "",
+ "text": ""
+ },
+ "tips": {
+ "key": "",
+ "text": ""
+ },
+ "task": [],
+ "us_FormatList": [
+ 101091
+ ],
+ "FormatList": [
+ 101091
+ ],
+ "award": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1650
+ }
+ ]
+ },
+ {
+ "id": 10003,
+ "suittype": 1,
+ "desc": {
+ "key": "",
+ "text": ""
+ },
+ "tips": {
+ "key": "",
+ "text": ""
+ },
+ "task": [],
+ "us_FormatList": [
+ 101091
+ ],
+ "FormatList": [
+ 101091
+ ],
+ "award": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1650
+ }
+ ]
+ },
+ {
+ "id": 20001,
+ "suittype": 2,
+ "desc": {
+ "key": "mainline_desc_10001",
+ "text": "在实战中学习能够影响攻击力和防御力的技能作用"
+ },
+ "tips": {
+ "key": "",
+ "text": ""
+ },
+ "task": [],
+ "us_FormatList": [
+ 101091
+ ],
+ "FormatList": [
+ 101091
+ ],
+ "award": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1650
+ }
+ ]
+ },
+ {
+ "id": 20002,
+ "suittype": 2,
+ "desc": {
+ "key": "",
+ "text": ""
+ },
+ "tips": {
+ "key": "",
+ "text": ""
+ },
+ "task": [],
+ "us_FormatList": [
+ 101091
+ ],
+ "FormatList": [
+ 101091
+ ],
+ "award": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1650
+ }
+ ]
+ },
+ {
+ "id": 20003,
+ "suittype": 2,
+ "desc": {
+ "key": "",
+ "text": ""
+ },
+ "tips": {
+ "key": "",
+ "text": ""
+ },
+ "task": [],
+ "us_FormatList": [
+ 101091
+ ],
+ "FormatList": [
+ 101091
+ ],
+ "award": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1650
+ }
+ ]
+ },
+ {
+ "id": 30001,
+ "suittype": 3,
+ "desc": {
+ "key": "mainline_desc_10001",
+ "text": "在实战中学习能够影响攻击力和防御力的技能作用"
+ },
+ "tips": {
+ "key": "",
+ "text": ""
+ },
+ "task": [],
+ "us_FormatList": [
+ 101091
+ ],
+ "FormatList": [
+ 101091
+ ],
+ "award": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1650
+ }
+ ]
+ },
+ {
+ "id": 30002,
+ "suittype": 3,
+ "desc": {
+ "key": "",
+ "text": ""
+ },
+ "tips": {
+ "key": "",
+ "text": ""
+ },
+ "task": [],
+ "us_FormatList": [
+ 101091
+ ],
+ "FormatList": [
+ 101091
+ ],
+ "award": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1650
+ }
+ ]
+ },
+ {
+ "id": 30003,
+ "suittype": 3,
+ "desc": {
+ "key": "",
+ "text": ""
+ },
+ "tips": {
+ "key": "",
+ "text": ""
+ },
+ "task": [],
+ "us_FormatList": [
+ 101091
+ ],
+ "FormatList": [
+ 101091
+ ],
+ "award": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1650
+ }
+ ]
+ },
+ {
+ "id": 40001,
+ "suittype": 4,
+ "desc": {
+ "key": "mainline_desc_10001",
+ "text": "在实战中学习能够影响攻击力和防御力的技能作用"
+ },
+ "tips": {
+ "key": "",
+ "text": ""
+ },
+ "task": [],
+ "us_FormatList": [
+ 101091
+ ],
+ "FormatList": [
+ 101091
+ ],
+ "award": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1650
+ }
+ ]
+ },
+ {
+ "id": 40002,
+ "suittype": 4,
+ "desc": {
+ "key": "",
+ "text": ""
+ },
+ "tips": {
+ "key": "",
+ "text": ""
+ },
+ "task": [],
+ "us_FormatList": [
+ 101091
+ ],
+ "FormatList": [
+ 101091
+ ],
+ "award": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1650
+ }
+ ]
+ },
+ {
+ "id": 40003,
+ "suittype": 4,
+ "desc": {
+ "key": "",
+ "text": ""
+ },
+ "tips": {
+ "key": "",
+ "text": ""
+ },
+ "task": [],
+ "us_FormatList": [
+ 101091
+ ],
+ "FormatList": [
+ 101091
+ ],
+ "award": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1650
+ }
+ ]
+ },
+ {
+ "id": 50001,
+ "suittype": 5,
+ "desc": {
+ "key": "mainline_desc_10001",
+ "text": "在实战中学习能够影响攻击力和防御力的技能作用"
+ },
+ "tips": {
+ "key": "",
+ "text": ""
+ },
+ "task": [],
+ "us_FormatList": [
+ 101091
+ ],
+ "FormatList": [
+ 101091
+ ],
+ "award": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1650
+ }
+ ]
+ },
+ {
+ "id": 50002,
+ "suittype": 5,
+ "desc": {
+ "key": "",
+ "text": ""
+ },
+ "tips": {
+ "key": "",
+ "text": ""
+ },
+ "task": [],
+ "us_FormatList": [
+ 101091
+ ],
+ "FormatList": [
+ 101091
+ ],
+ "award": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1650
+ }
+ ]
+ },
+ {
+ "id": 50003,
+ "suittype": 5,
+ "desc": {
+ "key": "",
+ "text": ""
+ },
+ "tips": {
+ "key": "",
+ "text": ""
+ },
+ "task": [],
+ "us_FormatList": [
+ 101091
+ ],
+ "FormatList": [
+ 101091
+ ],
+ "award": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1650
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/comm/const.go b/comm/const.go
index 0396742d7..21d3ac943 100644
--- a/comm/const.go
+++ b/comm/const.go
@@ -185,6 +185,8 @@ const (
TablePayDaily = "paydaily"
// 巨怪列车收益记录
TableTrollRecord = "trollrecord"
+ //联盟学院
+ TableAcademy = "academy"
)
//RPC服务接口定义处
diff --git a/modules/academy/api_challenge.go b/modules/academy/api_challenge.go
index f41cab5ea..a211efd87 100644
--- a/modules/academy/api_challenge.go
+++ b/modules/academy/api_challenge.go
@@ -3,6 +3,7 @@ package academy
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
+ cfg "go_dreamfactory/sys/configure/structs"
"google.golang.org/protobuf/proto"
)
@@ -16,7 +17,9 @@ func (this *apiComp) ChallengeCheck(session comm.IUserSession, req *pb.AcademyCh
///挑战
func (this *apiComp) Challenge(session comm.IUserSession, req *pb.AcademyChallengeReq) (code pb.ErrorCode, data proto.Message) {
var (
+ level *cfg.GameTeachingData
record *pb.DBBattleRecord
+ err error
cd pb.ErrorCode
)
defer func() {
@@ -39,5 +42,14 @@ func (this *apiComp) Challenge(session comm.IUserSession, req *pb.AcademyChallen
return
}
+ if level, err = this.module.configure.getGameTeaching(req.Level); err != nil {
+ cd = pb.ErrorCode_DBError
+ return
+ }
+ cd, record = this.module.battle.CreateEveBattle(session, &pb.BattleEVEReq{
+ Ptype: pb.PlayType_academy,
+ Redformat: level.UsFormatList,
+ Buleformat: level.FormatList,
+ })
return
}
diff --git a/modules/academy/api_info.go b/modules/academy/api_info.go
index e3bf8734f..0842db7aa 100644
--- a/modules/academy/api_info.go
+++ b/modules/academy/api_info.go
@@ -15,11 +15,17 @@ func (this *apiComp) InfoCheck(session comm.IUserSession, req *pb.AcademyInfoReq
///获取自己的排行榜信息
func (this *apiComp) Info(session comm.IUserSession, req *pb.AcademyInfoReq) (code pb.ErrorCode, data proto.Message) {
- var ()
+ var (
+ info *pb.DBAcademy
+ err error
+ )
if code = this.InfoCheck(session, req); code != pb.ErrorCode_Success {
return
}
-
- session.SendMsg(string(this.module.GetType()), "info", &pb.AcademyInfoResp{})
+ if info, err = this.module.modelAcademy.queryInfo(session.GetUserId()); err != nil {
+ code = pb.ErrorCode_DBError
+ return
+ }
+ session.SendMsg(string(this.module.GetType()), "info", &pb.AcademyInfoResp{Info: info})
return
}
diff --git a/modules/academy/api_reward.go b/modules/academy/api_reward.go
new file mode 100644
index 000000000..70632af23
--- /dev/null
+++ b/modules/academy/api_reward.go
@@ -0,0 +1,61 @@
+package academy
+
+import (
+ "go_dreamfactory/comm"
+ "go_dreamfactory/pb"
+ cfg "go_dreamfactory/sys/configure/structs"
+
+ "google.golang.org/protobuf/proto"
+)
+
+//参数校验
+func (this *apiComp) RewardCheck(session comm.IUserSession, req *pb.AcademyReceiveReq) (code pb.ErrorCode) {
+
+ return
+}
+
+///奖励领取
+func (this *apiComp) Reward(session comm.IUserSession, req *pb.AcademyReceiveReq) (code pb.ErrorCode, data proto.Message) {
+ var (
+ iswin bool
+ level *cfg.GameTeachingData
+ info *pb.DBAcademy
+ // group []*cfg.GameTeachingData
+ err error
+ )
+ if code = this.RewardCheck(session, req); code != pb.ErrorCode_Success {
+ return
+ }
+ if code, iswin = this.module.battle.CheckBattleReport(session, req.Report); code != pb.ErrorCode_Success {
+ return
+ }
+ if iswin {
+ if info, err = this.module.modelAcademy.queryInfo(session.GetUserId()); err != nil {
+ code = pb.ErrorCode_DBError
+ return
+ }
+ if !info.Level[req.Level] {
+ info.Level[req.Level] = true
+ }
+ if err = this.module.modelAcademy.updateInfo(info); err != nil {
+ code = pb.ErrorCode_DBError
+ return
+ }
+ if level, err = this.module.configure.getGameTeaching(req.Level); err != nil {
+ code = pb.ErrorCode_DBError
+ return
+ }
+ // if group, err = this.module.configure.getGameTeachingByGroup(req.Group); err != nil {
+ // code = pb.ErrorCode_ConfigNoFound
+ // return
+ // }
+ // for _, v := range group {
+ // if !info.Level[v.Id] {
+ // return
+ // }
+ // }
+ this.module.DispenseRes(session, level.Award, true)
+ }
+
+ return
+}
diff --git a/modules/academy/configure.go b/modules/academy/configure.go
index e19baa595..b4aaa51d9 100644
--- a/modules/academy/configure.go
+++ b/modules/academy/configure.go
@@ -1,23 +1,59 @@
package academy
import (
- "go_dreamfactory/modules"
-
+ "fmt"
"go_dreamfactory/lego/core"
+ "go_dreamfactory/modules"
+ cfg "go_dreamfactory/sys/configure/structs"
)
const (
- game_equipment = "game_equipment.json"
+ game_teaching = "game_teaching.json"
)
///背包配置管理组件
type configureComp struct {
modules.MCompConfigure
+ module *Academy
}
//组件初始化接口
func (this *configureComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
this.MCompConfigure.Init(service, module, comp, options)
-
+ this.module = module.(*Academy)
+ this.LoadConfigure(game_teaching, cfg.NewGameTeaching)
+ return
+}
+
+//查询管卡表
+func (this *configureComp) getGameTeaching(id int32) (result *cfg.GameTeachingData, err error) {
+ var (
+ v interface{}
+ ok bool
+ )
+ if v, err = this.GetConfigure(game_teaching); err != nil {
+ this.module.Errorln(err)
+ } else {
+ if result, ok = v.(*cfg.GameTeaching).GetDataMap()[id]; !ok {
+ err = fmt.Errorf("on found GameMonster:%s", id)
+ this.module.Errorln(err)
+ }
+ }
+ return
+}
+
+//查询管卡表
+func (this *configureComp) getGameTeachingByGroup(group int32) (result []*cfg.GameTeachingData, err error) {
+ var (
+ v interface{}
+ )
+ if v, err = this.GetConfigure(game_teaching); err != nil {
+ this.module.Errorln(err)
+ } else {
+ result = make([]*cfg.GameTeachingData, 0)
+ for _, v := range v.(*cfg.GameTeaching).GetDataMap() {
+ result = append(result, v)
+ }
+ }
return
}
diff --git a/modules/academy/modelAcademy.go b/modules/academy/modelAcademy.go
new file mode 100644
index 000000000..92eaac081
--- /dev/null
+++ b/modules/academy/modelAcademy.go
@@ -0,0 +1,55 @@
+package academy
+
+import (
+ "go_dreamfactory/comm"
+ "go_dreamfactory/lego/core"
+ "go_dreamfactory/lego/sys/mgo"
+ "go_dreamfactory/modules"
+ "go_dreamfactory/pb"
+)
+
+///论坛 数据组件
+type modelAcademyComp struct {
+ modules.MCompModel
+ module *Academy
+}
+
+//组件初始化接口
+func (this *modelAcademyComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, opt core.IModuleOptions) (err error) {
+ this.TableName = comm.TableAcademy
+ this.MCompModel.Init(service, module, comp, opt)
+ this.module = module.(*Academy)
+
+ //创建uid索引
+ // this.DB.CreateIndex(core.SqlTable(this.TableName), mongo.IndexModel{
+ // Keys: bsonx.Doc{{Key: "heroid", Value: bsonx.Int32(1)}},
+ // })
+ return
+}
+
+//查询用户装备数据
+func (this *modelAcademyComp) queryInfo(uId string) (result *pb.DBAcademy, err error) {
+ result = &pb.DBAcademy{
+ Uid: uId,
+ Level: make(map[int32]bool),
+ }
+ if err = this.Get(uId, result); err != nil && err != mgo.MongodbNil {
+ this.module.Errorln(err)
+ return
+ }
+ if err == mgo.MongodbNil {
+ err = nil
+ }
+ return
+}
+
+///保存用户竞技场信息
+func (this *modelAcademyComp) updateInfo(info *pb.DBAcademy) (err error) {
+ if err = this.Change(info.Uid, map[string]interface{}{
+ "level": info.Level,
+ }); err != nil {
+ this.module.Errorln(err)
+ return
+ }
+ return
+}
diff --git a/modules/academy/modelForum.go b/modules/academy/modelForum.go
deleted file mode 100644
index 2b518209c..000000000
--- a/modules/academy/modelForum.go
+++ /dev/null
@@ -1,157 +0,0 @@
-package academy
-
-import (
- "context"
- "fmt"
- "go_dreamfactory/comm"
- "go_dreamfactory/lego/core"
- "go_dreamfactory/lego/sys/redis"
- "go_dreamfactory/modules"
- "go_dreamfactory/pb"
- "go_dreamfactory/sys/db"
-
- "go.mongodb.org/mongo-driver/bson"
- "go.mongodb.org/mongo-driver/mongo"
- "go.mongodb.org/mongo-driver/x/bsonx"
-)
-
-///论坛 数据组件
-type modelForumComp struct {
- modules.MCompModel
- module *Academy
-}
-
-//组件初始化接口
-func (this *modelForumComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, opt core.IModuleOptions) (err error) {
- this.TableName = comm.TableForum
- this.MCompModel.Init(service, module, comp, opt)
- this.module = module.(*Academy)
-
- //创建uid索引
- this.DB.CreateIndex(core.SqlTable(this.TableName), mongo.IndexModel{
- Keys: bsonx.Doc{{Key: "heroid", Value: bsonx.Int32(1)}},
- })
- return
-}
-
-//查询用户未读消息
-func (this *modelForumComp) getComment(herocId string) (result []*pb.DBComment, err error) {
- var (
- key string
- c *mongo.Cursor
- n int
- max_chat int32
- )
- result = make([]*pb.DBComment, 0)
- key = fmt.Sprintf("%s:%s", this.TableName, herocId)
- err = this.GetQueues(key, 10, &result)
- if err == redis.RedisNil {
- //query from mgo
- if c, err = this.DB.Find(core.SqlTable(this.TableName), bson.M{"heroid": herocId}); err != nil {
- return
- } else {
- result = make([]*pb.DBComment, c.RemainingBatchLength())
- for c.Next(context.Background()) {
- chat := &pb.DBComment{}
- if err = c.Decode(chat); err != nil {
- this.module.Errorf("err:%v", err)
- }
- result[n] = chat
- n++
- }
- if len(result) > 0 {
- this.addCommentChache(key, int64(max_chat), result...)
- }
- }
- }
- return
-}
-
-///发布评论
-func (this *modelForumComp) releaseComment(comment *pb.DBComment) (err error) {
- key := fmt.Sprintf("%s:%s", this.TableName, comment.Heroid)
- if err = this.addCommentChache(key, 99, comment); err != nil {
- this.module.Errorln(err)
- return
- }
- if _, err = this.DB.InsertOne(core.SqlTable(this.TableName), comment); err != nil {
- this.module.Errorln(err)
- return
- }
- return
-}
-
-//添加评论到缓存中
-func (this *modelForumComp) addCommentChache(key string, count int64, msgs ...*pb.DBComment) (err error) {
- var (
- data map[string]*pb.DBComment = make(map[string]*pb.DBComment, len(msgs))
- )
- for _, v := range msgs {
- data[fmt.Sprintf("%s-%s", key, v.Id)] = v
- }
- if _, err = this.AddQueues(key, count, data); err != nil {
- this.module.Errorln(err)
- return
- }
- return
-}
-
-//点赞
-func (this *modelForumComp) like(heroid, id string, islike bool) (comment *pb.DBComment, err error) {
- comment = &pb.DBComment{}
- key := fmt.Sprintf("%s:%s-%s", this.TableName, heroid, id)
- if err = this.Redis.HGetAll(key, comment); err != nil && err != redis.RedisNil {
- this.module.Errorln(err)
- return
- }
- if err == redis.RedisNil {
- if err = this.DB.FindOne(comm.TableHero, bson.M{"_id": id}).Decode(comment); err != nil {
- return
- }
- }
- if islike {
- comment.Starlist++
- } else {
- comment.Starlist--
- }
- if err = this.Redis.HMSet(key, map[string]interface{}{
- "starlist": comment.Starlist,
- }); err != nil {
- return
- }
- this.DB.UpdateOne(comm.TableHero, bson.M{"_id": id}, bson.M{"starlist": comment.Starlist})
- return
-}
-
-//查看
-func (this *modelForumComp) watchHero(stage string, uid string, herocid string) (hero *pb.DBHero, err error) {
-
- var (
- tcoon *db.DBConn
- c *mongo.Cursor
- )
- if tcoon, err = db.ServerDBConn(stage); err != nil {
- this.module.Errorf("stage:%s err:%v", stage, err)
- return
- }
- if c, err = tcoon.Mgo.Find(comm.TableHero, bson.M{"uid": uid, "heroID": herocid}); err != nil {
- return
- } else {
- n := 0
- result := make([]*pb.DBHero, c.RemainingBatchLength())
- for c.Next(context.Background()) {
- hero := &pb.DBHero{}
- if err = c.Decode(hero); err != nil {
- this.module.Errorf("err:%v", err)
- }
- result[n] = hero
- n++
- }
- for _, v := range result {
- if hero == nil || hero.Lv < v.Lv {
- hero = v
- }
- }
- }
- return
-}
diff --git a/modules/academy/module.go b/modules/academy/module.go
index 48bda2fe4..a1adb3584 100644
--- a/modules/academy/module.go
+++ b/modules/academy/module.go
@@ -2,6 +2,7 @@ package academy
import (
"go_dreamfactory/comm"
+ "go_dreamfactory/lego/base"
"go_dreamfactory/lego/core"
"go_dreamfactory/modules"
)
@@ -18,9 +19,11 @@ func NewModule() core.IModule {
type Academy struct {
modules.ModuleBase
- api_comp *apiComp
- configure *configureComp
- modelForum *modelForumComp
+ service base.IRPCXService
+ battle comm.IBattle
+ api_comp *apiComp
+ configure *configureComp
+ modelAcademy *modelAcademyComp
}
//模块名
@@ -31,6 +34,18 @@ func (this *Academy) GetType() core.M_Modules {
//模块初始化接口 注册用户创建角色事件
func (this *Academy) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) {
err = this.ModuleBase.Init(service, module, options)
+ this.service = service.(base.IRPCXService)
+ return
+}
+
+func (this *Academy) Start() (err error) {
+ err = this.ModuleBase.Start()
+ var module core.IModule
+ if module, err = this.service.GetModule(comm.ModuleBattle); err != nil {
+ return
+ }
+ this.battle = module.(comm.IBattle)
+
return
}
@@ -38,6 +53,6 @@ func (this *Academy) Init(service core.IService, module core.IModule, options co
func (this *Academy) OnInstallComp() {
this.ModuleBase.OnInstallComp()
this.api_comp = this.RegisterComp(new(apiComp)).(*apiComp)
- this.modelForum = this.RegisterComp(new(modelForumComp)).(*modelForumComp)
+ this.modelAcademy = this.RegisterComp(new(modelAcademyComp)).(*modelAcademyComp)
this.configure = this.RegisterComp(new(configureComp)).(*configureComp)
}
diff --git a/pb/academy_db.pb.go b/pb/academy_db.pb.go
index ff11de608..2a79c28ca 100644
--- a/pb/academy_db.pb.go
+++ b/pb/academy_db.pb.go
@@ -25,6 +25,9 @@ type DBAcademy struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
+
+ Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"`
+ Level map[int32]bool `protobuf:"bytes,2,rep,name=level,proto3" json:"level" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
}
func (x *DBAcademy) Reset() {
@@ -59,13 +62,35 @@ func (*DBAcademy) Descriptor() ([]byte, []int) {
return file_academy_academy_db_proto_rawDescGZIP(), []int{0}
}
+func (x *DBAcademy) GetUid() string {
+ if x != nil {
+ return x.Uid
+ }
+ return ""
+}
+
+func (x *DBAcademy) GetLevel() map[int32]bool {
+ if x != nil {
+ return x.Level
+ }
+ return nil
+}
+
var File_academy_academy_db_proto protoreflect.FileDescriptor
var file_academy_academy_db_proto_rawDesc = []byte{
0x0a, 0x18, 0x61, 0x63, 0x61, 0x64, 0x65, 0x6d, 0x79, 0x2f, 0x61, 0x63, 0x61, 0x64, 0x65, 0x6d,
- 0x79, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x0b, 0x0a, 0x09, 0x44, 0x42,
- 0x41, 0x63, 0x61, 0x64, 0x65, 0x6d, 0x79, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62,
- 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x79, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x84, 0x01, 0x0a, 0x09, 0x44,
+ 0x42, 0x41, 0x63, 0x61, 0x64, 0x65, 0x6d, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x05, 0x6c, 0x65,
+ 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x44, 0x42, 0x41, 0x63,
+ 0x61, 0x64, 0x65, 0x6d, 0x79, 0x2e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79,
+ 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x1a, 0x38, 0x0a, 0x0a, 0x4c, 0x65, 0x76, 0x65, 0x6c,
+ 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, 0x08, 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 (
@@ -80,16 +105,18 @@ func file_academy_academy_db_proto_rawDescGZIP() []byte {
return file_academy_academy_db_proto_rawDescData
}
-var file_academy_academy_db_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
+var file_academy_academy_db_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_academy_academy_db_proto_goTypes = []interface{}{
(*DBAcademy)(nil), // 0: DBAcademy
+ nil, // 1: DBAcademy.LevelEntry
}
var file_academy_academy_db_proto_depIdxs = []int32{
- 0, // [0:0] is the sub-list for method output_type
- 0, // [0:0] is the sub-list for method input_type
- 0, // [0:0] is the sub-list for extension type_name
- 0, // [0:0] is the sub-list for extension extendee
- 0, // [0:0] is the sub-list for field type_name
+ 1, // 0: DBAcademy.level:type_name -> DBAcademy.LevelEntry
+ 1, // [1:1] is the sub-list for method output_type
+ 1, // [1:1] is the sub-list for method input_type
+ 1, // [1:1] is the sub-list for extension type_name
+ 1, // [1:1] is the sub-list for extension extendee
+ 0, // [0:1] is the sub-list for field type_name
}
func init() { file_academy_academy_db_proto_init() }
@@ -117,7 +144,7 @@ func file_academy_academy_db_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_academy_academy_db_proto_rawDesc,
NumEnums: 0,
- NumMessages: 1,
+ NumMessages: 2,
NumExtensions: 0,
NumServices: 0,
},
diff --git a/pb/academy_msg.pb.go b/pb/academy_msg.pb.go
index 608f76b38..5d4ce619b 100644
--- a/pb/academy_msg.pb.go
+++ b/pb/academy_msg.pb.go
@@ -63,6 +63,8 @@ type AcademyInfoResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
+
+ Info *DBAcademy `protobuf:"bytes,1,opt,name=info,proto3" json:"info"`
}
func (x *AcademyInfoResp) Reset() {
@@ -97,11 +99,20 @@ func (*AcademyInfoResp) Descriptor() ([]byte, []int) {
return file_academy_academy_msg_proto_rawDescGZIP(), []int{1}
}
+func (x *AcademyInfoResp) GetInfo() *DBAcademy {
+ if x != nil {
+ return x.Info
+ }
+ return nil
+}
+
//挑战
type AcademyChallengeReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
+
+ Level int32 `protobuf:"varint,1,opt,name=level,proto3" json:"level"`
}
func (x *AcademyChallengeReq) Reset() {
@@ -136,6 +147,13 @@ func (*AcademyChallengeReq) Descriptor() ([]byte, []int) {
return file_academy_academy_msg_proto_rawDescGZIP(), []int{2}
}
+func (x *AcademyChallengeReq) GetLevel() int32 {
+ if x != nil {
+ return x.Level
+ }
+ return 0
+}
+
type AcademyChallengeResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -196,6 +214,10 @@ type AcademyReceiveReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
+
+ Level int32 `protobuf:"varint,1,opt,name=level,proto3" json:"level"`
+ Group int32 `protobuf:"varint,2,opt,name=group,proto3" json:"group"`
+ Report *BattleReport `protobuf:"bytes,3,opt,name=report,proto3" json:"report"` //战报
}
func (x *AcademyReceiveReq) Reset() {
@@ -230,10 +252,33 @@ func (*AcademyReceiveReq) Descriptor() ([]byte, []int) {
return file_academy_academy_msg_proto_rawDescGZIP(), []int{4}
}
+func (x *AcademyReceiveReq) GetLevel() int32 {
+ if x != nil {
+ return x.Level
+ }
+ return 0
+}
+
+func (x *AcademyReceiveReq) GetGroup() int32 {
+ if x != nil {
+ return x.Group
+ }
+ return 0
+}
+
+func (x *AcademyReceiveReq) GetReport() *BattleReport {
+ if x != nil {
+ return x.Report
+ }
+ return nil
+}
+
type AcademyReceiveResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
+
+ Issucc bool `protobuf:"varint,1,opt,name=issucc,proto3" json:"issucc"`
}
func (x *AcademyReceiveResp) Reset() {
@@ -268,27 +313,45 @@ func (*AcademyReceiveResp) Descriptor() ([]byte, []int) {
return file_academy_academy_msg_proto_rawDescGZIP(), []int{5}
}
+func (x *AcademyReceiveResp) GetIssucc() bool {
+ if x != nil {
+ return x.Issucc
+ }
+ return false
+}
+
var File_academy_academy_msg_proto protoreflect.FileDescriptor
var file_academy_academy_msg_proto_rawDesc = []byte{
0x0a, 0x19, 0x61, 0x63, 0x61, 0x64, 0x65, 0x6d, 0x79, 0x2f, 0x61, 0x63, 0x61, 0x64, 0x65, 0x6d,
- 0x79, 0x5f, 0x6d, 0x73, 0x67, 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, 0x0f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x2e,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x10, 0x0a, 0x0e, 0x41, 0x63, 0x61, 0x64, 0x65, 0x6d, 0x79,
- 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x22, 0x11, 0x0a, 0x0f, 0x41, 0x63, 0x61, 0x64, 0x65,
- 0x6d, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x15, 0x0a, 0x13, 0x41, 0x63,
- 0x61, 0x64, 0x65, 0x6d, 0x79, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x65,
- 0x71, 0x22, 0x57, 0x0a, 0x14, 0x41, 0x63, 0x61, 0x64, 0x65, 0x6d, 0x79, 0x43, 0x68, 0x61, 0x6c,
+ 0x79, 0x5f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x61, 0x63, 0x61,
+ 0x64, 0x65, 0x6d, 0x79, 0x2f, 0x61, 0x63, 0x61, 0x64, 0x65, 0x6d, 0x79, 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, 0x0f,
+ 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
+ 0x10, 0x0a, 0x0e, 0x41, 0x63, 0x61, 0x64, 0x65, 0x6d, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65,
+ 0x71, 0x22, 0x31, 0x0a, 0x0f, 0x41, 0x63, 0x61, 0x64, 0x65, 0x6d, 0x79, 0x49, 0x6e, 0x66, 0x6f,
+ 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44, 0x42, 0x41, 0x63, 0x61, 0x64, 0x65, 0x6d, 0x79, 0x52, 0x04,
+ 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x2b, 0x0a, 0x13, 0x41, 0x63, 0x61, 0x64, 0x65, 0x6d, 0x79, 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, 0x22, 0x57, 0x0a, 0x14, 0x41, 0x63, 0x61, 0x64, 0x65, 0x6d, 0x79, 0x43, 0x68, 0x61, 0x6c,
0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x63, 0x6f, 0x64,
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43,
0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66,
0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65,
- 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x13, 0x0a, 0x11, 0x41, 0x63,
- 0x61, 0x64, 0x65, 0x6d, 0x79, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x22,
- 0x14, 0x0a, 0x12, 0x41, 0x63, 0x61, 0x64, 0x65, 0x6d, 0x79, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76,
- 0x65, 0x52, 0x65, 0x73, 0x70, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x66, 0x0a, 0x11, 0x41, 0x63,
+ 0x61, 0x64, 0x65, 0x6d, 0x79, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 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, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x25, 0x0a, 0x06, 0x72,
+ 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 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, 0x2c, 0x0a, 0x12, 0x41, 0x63, 0x61, 0x64, 0x65, 0x6d, 0x79, 0x52, 0x65, 0x63,
+ 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75,
+ 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63,
+ 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -311,17 +374,21 @@ var file_academy_academy_msg_proto_goTypes = []interface{}{
(*AcademyChallengeResp)(nil), // 3: AcademyChallengeResp
(*AcademyReceiveReq)(nil), // 4: AcademyReceiveReq
(*AcademyReceiveResp)(nil), // 5: AcademyReceiveResp
- (ErrorCode)(0), // 6: ErrorCode
- (*BattleInfo)(nil), // 7: BattleInfo
+ (*DBAcademy)(nil), // 6: DBAcademy
+ (ErrorCode)(0), // 7: ErrorCode
+ (*BattleInfo)(nil), // 8: BattleInfo
+ (*BattleReport)(nil), // 9: BattleReport
}
var file_academy_academy_msg_proto_depIdxs = []int32{
- 6, // 0: AcademyChallengeResp.code:type_name -> ErrorCode
- 7, // 1: AcademyChallengeResp.info:type_name -> BattleInfo
- 2, // [2:2] is the sub-list for method output_type
- 2, // [2:2] is the sub-list for method input_type
- 2, // [2:2] is the sub-list for extension type_name
- 2, // [2:2] is the sub-list for extension extendee
- 0, // [0:2] is the sub-list for field type_name
+ 6, // 0: AcademyInfoResp.info:type_name -> DBAcademy
+ 7, // 1: AcademyChallengeResp.code:type_name -> ErrorCode
+ 8, // 2: AcademyChallengeResp.info:type_name -> BattleInfo
+ 9, // 3: AcademyReceiveReq.report:type_name -> BattleReport
+ 4, // [4:4] is the sub-list for method output_type
+ 4, // [4:4] is the sub-list for method input_type
+ 4, // [4:4] is the sub-list for extension type_name
+ 4, // [4:4] is the sub-list for extension extendee
+ 0, // [0:4] is the sub-list for field type_name
}
func init() { file_academy_academy_msg_proto_init() }
@@ -329,6 +396,7 @@ func file_academy_academy_msg_proto_init() {
if File_academy_academy_msg_proto != nil {
return
}
+ file_academy_academy_db_proto_init()
file_battle_battle_msg_proto_init()
file_errorcode_proto_init()
if !protoimpl.UnsafeEnabled {
diff --git a/pb/battle_db.pb.go b/pb/battle_db.pb.go
index bebbf72f8..b9c9163c8 100644
--- a/pb/battle_db.pb.go
+++ b/pb/battle_db.pb.go
@@ -87,6 +87,7 @@ const (
PlayType_viking PlayType = 5 //维京远征
PlayType_moonfantasy PlayType = 6 //月之秘境
PlayType_arena PlayType = 7 //竞技场
+ PlayType_academy PlayType = 8 //联盟学院
)
// Enum value maps for PlayType.
@@ -100,6 +101,7 @@ var (
5: "viking",
6: "moonfantasy",
7: "arena",
+ 8: "academy",
}
PlayType_value = map[string]int32{
"null": 0,
@@ -110,6 +112,7 @@ var (
"viking": 5,
"moonfantasy": 6,
"arena": 7,
+ "academy": 8,
}
)
@@ -641,20 +644,21 @@ var file_battle_battle_db_proto_rawDesc = []byte{
0x39, 0x0a, 0x0a, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x07, 0x0a,
0x03, 0x6e, 0x69, 0x6c, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x70, 0x76, 0x65, 0x10, 0x01, 0x12,
0x07, 0x0a, 0x03, 0x70, 0x76, 0x70, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x70, 0x76, 0x62, 0x10,
- 0x03, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x76, 0x65, 0x10, 0x04, 0x2a, 0x6e, 0x0a, 0x08, 0x50, 0x6c,
+ 0x03, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x76, 0x65, 0x10, 0x04, 0x2a, 0x7b, 0x0a, 0x08, 0x50, 0x6c,
0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x6e, 0x75, 0x6c, 0x6c, 0x10, 0x00,
0x12, 0x0c, 0x0a, 0x08, 0x6d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x10, 0x01, 0x12, 0x0a,
0x0a, 0x06, 0x70, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x72, 0x74,
0x61, 0x73, 0x6b, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x68, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67,
0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x10, 0x05, 0x12, 0x0f,
0x0a, 0x0b, 0x6d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x10, 0x06, 0x12,
- 0x09, 0x0a, 0x05, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x10, 0x07, 0x2a, 0x1f, 0x0a, 0x0c, 0x42, 0x42,
- 0x61, 0x74, 0x74, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x06, 0x0a, 0x02, 0x69, 0x6e,
- 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x10, 0x02, 0x2a, 0x2b, 0x0a, 0x0c, 0x44,
- 0x42, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x12, 0x08, 0x0a, 0x04, 0x64,
- 0x72, 0x61, 0x77, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x72, 0x65, 0x64, 0x10, 0x01, 0x12, 0x08,
- 0x0a, 0x04, 0x62, 0x75, 0x6c, 0x65, 0x10, 0x02, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62,
- 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x09, 0x0a, 0x05, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x10, 0x07, 0x12, 0x0b, 0x0a, 0x07, 0x61, 0x63,
+ 0x61, 0x64, 0x65, 0x6d, 0x79, 0x10, 0x08, 0x2a, 0x1f, 0x0a, 0x0c, 0x42, 0x42, 0x61, 0x74, 0x74,
+ 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x06, 0x0a, 0x02, 0x69, 0x6e, 0x10, 0x00, 0x12,
+ 0x07, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x10, 0x02, 0x2a, 0x2b, 0x0a, 0x0c, 0x44, 0x42, 0x42, 0x61,
+ 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x72, 0x61, 0x77,
+ 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x72, 0x65, 0x64, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x62,
+ 0x75, 0x6c, 0x65, 0x10, 0x02, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
diff --git a/sys/configure/structs/Game.Teaching.go b/sys/configure/structs/Game.Teaching.go
new file mode 100644
index 000000000..d718dd9b8
--- /dev/null
+++ b/sys/configure/structs/Game.Teaching.go
@@ -0,0 +1,42 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+package cfg
+
+type GameTeaching struct {
+ _dataMap map[int32]*GameTeachingData
+ _dataList []*GameTeachingData
+}
+
+func NewGameTeaching(_buf []map[string]interface{}) (*GameTeaching, error) {
+ _dataList := make([]*GameTeachingData, 0, len(_buf))
+ dataMap := make(map[int32]*GameTeachingData)
+ for _, _ele_ := range _buf {
+ if _v, err2 := DeserializeGameTeachingData(_ele_); err2 != nil {
+ return nil, err2
+ } else {
+ _dataList = append(_dataList, _v)
+ dataMap[_v.Id] = _v
+ }
+ }
+ return &GameTeaching{_dataList:_dataList, _dataMap:dataMap}, nil
+}
+
+func (table *GameTeaching) GetDataMap() map[int32]*GameTeachingData {
+ return table._dataMap
+}
+
+func (table *GameTeaching) GetDataList() []*GameTeachingData {
+ return table._dataList
+}
+
+func (table *GameTeaching) Get(key int32) *GameTeachingData {
+ return table._dataMap[key]
+}
+
+
diff --git a/sys/configure/structs/Game.TeachingData.go b/sys/configure/structs/Game.TeachingData.go
new file mode 100644
index 000000000..cbd4a749a
--- /dev/null
+++ b/sys/configure/structs/Game.TeachingData.go
@@ -0,0 +1,101 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+package cfg
+
+import "errors"
+
+type GameTeachingData struct {
+ Id int32
+ Suittype int32
+ Desc string
+ Tips string
+ Task []int32
+ UsFormatList []int32
+ FormatList []int32
+ Award []*Gameatn
+}
+
+const TypeId_GameTeachingData = -468541165
+
+func (*GameTeachingData) GetTypeId() int32 {
+ return -468541165
+}
+
+func (_v *GameTeachingData)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 _tempNum_ float64; if _tempNum_, _ok_ = _buf["suittype"].(float64); !_ok_ { err = errors.New("suittype error"); return }; _v.Suittype = int32(_tempNum_) }
+ {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["desc"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Desc error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Desc, _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["tips"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Tips error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Tips, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["task"].([]interface{}); !_ok_ { err = errors.New("task error"); return }
+
+ _v.Task = make([]int32, 0, len(_arr_))
+
+ for _, _e_ := range _arr_ {
+ var _list_v_ int32
+ { var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) }
+ _v.Task = append(_v.Task, _list_v_)
+ }
+ }
+
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["us_FormatList"].([]interface{}); !_ok_ { err = errors.New("us_FormatList error"); return }
+
+ _v.UsFormatList = make([]int32, 0, len(_arr_))
+
+ for _, _e_ := range _arr_ {
+ var _list_v_ int32
+ { var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) }
+ _v.UsFormatList = append(_v.UsFormatList, _list_v_)
+ }
+ }
+
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["FormatList"].([]interface{}); !_ok_ { err = errors.New("FormatList error"); return }
+
+ _v.FormatList = make([]int32, 0, len(_arr_))
+
+ for _, _e_ := range _arr_ {
+ var _list_v_ int32
+ { var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) }
+ _v.FormatList = append(_v.FormatList, _list_v_)
+ }
+ }
+
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["award"].([]interface{}); !_ok_ { err = errors.New("award error"); return }
+
+ _v.Award = 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.Award = append(_v.Award, _list_v_)
+ }
+ }
+
+ return
+}
+
+func DeserializeGameTeachingData(_buf map[string]interface{}) (*GameTeachingData, error) {
+ v := &GameTeachingData{}
+ if err := v.Deserialize(_buf); err == nil {
+ return v, nil
+ } else {
+ return nil, err
+ }
+}