This commit is contained in:
meixiongfeng 2023-05-26 14:14:50 +08:00
commit 63e9cb068a
33 changed files with 12502 additions and 1131 deletions

View File

@ -1,8 +1,8 @@
[ [
{ {
"id": 101, "id": 101,
"rtype": 2, "rtype": 1,
"type_sp": 0, "type_sp": 1,
"tasktxt": { "tasktxt": {
"key": "Localize_Localize_Program_tasktxt_1", "key": "Localize_Localize_Program_tasktxt_1",
"text": "" "text": ""

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -7586,15 +7586,15 @@
"data": 2, "data": 2,
"type_sp": 1, "type_sp": 1,
"tasktxt": { "tasktxt": {
"key": "觉醒副本3次", "key": "狩猎1boss1难度3次",
"text": "觉醒副本3次" "text": "狩猎1boss1难度3次"
}, },
"type": 0, "type": 80,
"valid": 0, "valid": 0,
"NPC": 10231, "NPC": 10231,
"data1": 0, "data1": 1,
"data2": 0, "data2": 3,
"data3": 0, "data3": 1,
"data4": 0, "data4": 0,
"data5": 0 "data5": 0
}, },

View File

@ -11484,6 +11484,27 @@
"Order": "", "Order": "",
"Limit": 10, "Limit": 10,
"ExecuteCnt": 1, "ExecuteCnt": 1,
"Type": 31,
"Argu": [
150
],
"FollowSK": [],
"SucFollowSK": [],
"FailFollowSK": [],
"MustHit": false,
"DpsRevisiType": 0,
"DpsCondition": "",
"RevisiCondition": "",
"RevisiParams": []
},
{
"Id": 245003213,
"EmitPR": 1000,
"From": 1,
"Where": [],
"Order": "",
"Limit": 10,
"ExecuteCnt": 1,
"Type": 3, "Type": 3,
"Argu": [ "Argu": [
390001125, 390001125,
@ -11501,7 +11522,7 @@
"RevisiParams": [] "RevisiParams": []
}, },
{ {
"Id": 245003213, "Id": 245003214,
"EmitPR": 1000, "EmitPR": 1000,
"From": 1, "From": 1,
"Where": [], "Where": [],
@ -14657,7 +14678,7 @@
"Argu": [ "Argu": [
1, 1,
4, 4,
1300 4000
], ],
"FollowSK": [], "FollowSK": [],
"SucFollowSK": [], "SucFollowSK": [],
@ -14727,7 +14748,7 @@
"Argu": [ "Argu": [
1, 1,
4, 4,
2200 4500
], ],
"FollowSK": [], "FollowSK": [],
"SucFollowSK": [ "SucFollowSK": [
@ -14776,7 +14797,7 @@
"Argu": [ "Argu": [
1, 1,
4, 4,
2600 6000
], ],
"FollowSK": [], "FollowSK": [],
"SucFollowSK": [], "SucFollowSK": [],
@ -17063,16 +17084,16 @@
{ {
"Id": 234003311, "Id": 234003311,
"EmitPR": 1000, "EmitPR": 1000,
"From": 2, "From": 4,
"Where": [], "Where": [],
"Order": "", "Order": "",
"Limit": 10, "Limit": 1,
"ExecuteCnt": 1, "ExecuteCnt": 1,
"Type": 1, "Type": 1,
"Argu": [ "Argu": [
1, 1,
4, 4,
1100 6000
], ],
"FollowSK": [], "FollowSK": [],
"SucFollowSK": [ "SucFollowSK": [
@ -17095,9 +17116,8 @@
"ExecuteCnt": 1, "ExecuteCnt": 1,
"Type": 32, "Type": 32,
"Argu": [ "Argu": [
1, 3,
1, -1
10
], ],
"FollowSK": [], "FollowSK": [],
"SucFollowSK": [ "SucFollowSK": [
@ -18269,8 +18289,7 @@
"Type": 32, "Type": 32,
"Argu": [ "Argu": [
3, 3,
1, 1
2
], ],
"FollowSK": [], "FollowSK": [],
"SucFollowSK": [], "SucFollowSK": [],
@ -18284,19 +18303,21 @@
{ {
"Id": 214005211, "Id": 214005211,
"EmitPR": 1000, "EmitPR": 1000,
"From": 2, "From": 4,
"Where": [], "Where": [],
"Order": "Type=Rand", "Order": "",
"Limit": 1, "Limit": 1,
"ExecuteCnt": 1, "ExecuteCnt": 3,
"Type": 1, "Type": 1,
"Argu": [ "Argu": [
1, 1,
4, 4,
750 1500
], ],
"FollowSK": [], "FollowSK": [],
"SucFollowSK": [], "SucFollowSK": [
214005212
],
"FailFollowSK": [], "FailFollowSK": [],
"MustHit": false, "MustHit": false,
"DpsRevisiType": 0, "DpsRevisiType": 0,
@ -18316,7 +18337,7 @@
"Argu": [ "Argu": [
1, 1,
1, 1,
0 3
], ],
"FollowSK": [], "FollowSK": [],
"SucFollowSK": [], "SucFollowSK": [],
@ -18341,9 +18362,7 @@
1, 1,
-1 -1
], ],
"FollowSK": [ "FollowSK": [],
214005214
],
"SucFollowSK": [], "SucFollowSK": [],
"FailFollowSK": [], "FailFollowSK": [],
"MustHit": false, "MustHit": false,
@ -18405,19 +18424,19 @@
"EmitPR": 1000, "EmitPR": 1000,
"From": 2, "From": 2,
"Where": [], "Where": [],
"Order": "Type=Rand", "Order": "",
"Limit": 1, "Limit": 1,
"ExecuteCnt": 1, "ExecuteCnt": 1,
"Type": 1, "Type": 1,
"Argu": [ "Argu": [
1, 1,
4, 4,
900 5000
], ],
"FollowSK": [ "FollowSK": [],
"SucFollowSK": [
214005313 214005313
], ],
"SucFollowSK": [],
"FailFollowSK": [], "FailFollowSK": [],
"MustHit": false, "MustHit": false,
"DpsRevisiType": 0, "DpsRevisiType": 0,
@ -18436,7 +18455,6 @@
"Type": 32, "Type": 32,
"Argu": [ "Argu": [
3, 3,
2,
2 2
], ],
"FollowSK": [], "FollowSK": [],
@ -22691,9 +22709,7 @@
1, 1,
1 1
], ],
"FollowSK": [ "FollowSK": [],
255002213
],
"SucFollowSK": [], "SucFollowSK": [],
"FailFollowSK": [], "FailFollowSK": [],
"MustHit": false, "MustHit": false,

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -573,7 +573,9 @@
"Type": "CallSkillPas", "Type": "CallSkillPas",
"MaxEmitTimes": 1, "MaxEmitTimes": 1,
"Callback": [ "Callback": [
245003212 245003212,
245003213,
245003214
] ]
}, },
{ {
@ -1064,7 +1066,7 @@
"Id": 414005211, "Id": 414005211,
"When": 16, "When": 16,
"FromCheck": "Target=3", "FromCheck": "Target=3",
"TargetCheck": "Target=2,Hasbuff=3", "TargetCheck": "Target=2,Nobuff=3",
"MainSkillCheck": "", "MainSkillCheck": "",
"AfterSkillCheck": "", "AfterSkillCheck": "",
"BuffCheck": "", "BuffCheck": "",
@ -1747,7 +1749,9 @@
"MainSkillCheck": "", "MainSkillCheck": "",
"AfterSkillCheck": "", "AfterSkillCheck": "",
"BuffCheck": "", "BuffCheck": "",
"AddCon": [], "AddCon": [
"SelfNoBuff=390001448"
],
"PasPr": 1000, "PasPr": 1000,
"Type": "CallSkillPas", "Type": "CallSkillPas",
"MaxEmitTimes": 1, "MaxEmitTimes": 1,
@ -2447,7 +2451,7 @@
}, },
{ {
"Id": 455002213, "Id": 455002213,
"When": 2, "When": 16,
"FromCheck": "", "FromCheck": "",
"TargetCheck": "Target=3", "TargetCheck": "Target=3",
"MainSkillCheck": "", "MainSkillCheck": "",

View File

@ -346,6 +346,8 @@ const (
EventSociatyRankChanged core.Event_Key = "event_sociatyRank_changed" //公会数据变化 EventSociatyRankChanged core.Event_Key = "event_sociatyRank_changed" //公会数据变化
EventOpenCond core.Event_Key = "event_open_cond" //功能开放事件 EventOpenCond core.Event_Key = "event_open_cond" //功能开放事件
EventBuriedComplete core.Event_Key = "event_buried_complete" //埋点系统条件完成事件批处理接口 接口样例 func(uid string,conids []int32)
) )
const ( const (

View File

@ -1,6 +1,7 @@
package comm package comm
import ( import (
"fmt"
"go_dreamfactory/pb" "go_dreamfactory/pb"
"github.com/pkg/errors" "github.com/pkg/errors"
@ -22,3 +23,8 @@ func NewCustomError(code pb.ErrorCode) error {
Message: code.String(), Message: code.String(),
}, "") }, "")
} }
//创建配置表错误对象
func NewNotFoundConfErr(moduleName string, filename string, id interface{}) error {
return fmt.Errorf("服务端配置未找到!模块:%s ,配置文件:%s,目标数据:%v", moduleName, filename, id)
}

View File

@ -354,7 +354,7 @@ type (
// 设置工会活跃度 // 设置工会活跃度
BingoSetActivity(session IUserSession, activity int32) error BingoSetActivity(session IUserSession, activity int32) error
// 任务条件达成通知 // 任务条件达成通知
TaskcondNotify(uid string, condId int32) error TaskcondNotify(uid string, condIds []int32) error
// 红点 // 红点
IReddot IReddot
} }
@ -390,11 +390,7 @@ type (
// 世界任务 // 世界任务
IWorldtask interface { IWorldtask interface {
// 任务条件达成通知 // 任务条件达成通知
// Deprecated TaskCondFinishNotify(session IUserSession, condIds []int32) error
// TaskcondNotify(session IUserSession, condId int32) error
TaskCondFinishNotify(session IUserSession, condId int32) error
// bingo所有任务
// BingoAllTask(session IUserSession) error
// bingo任务 // bingo任务
BingoJumpTask(session IUserSession, groupId, rtaskId int32) error BingoJumpTask(session IUserSession, groupId, rtaskId int32) error
// 查询我的世界任务 // 查询我的世界任务

View File

@ -34,6 +34,10 @@ func (this *apiComp) Receive(session comm.IUserSession, req *pb.AcademyReceiveRe
} }
if level, err = this.module.configure.getGameTeaching(req.Level); err != nil { if level, err = this.module.configure.getGameTeaching(req.Level); err != nil {
code = pb.ErrorCode_ConfigNoFound code = pb.ErrorCode_ConfigNoFound
data = &pb.ErrorData{
Title: pb.GetErrorCodeMsg(code),
Message: err.Error(),
}
return return
} }
if req.Report.Completetask == nil || len(req.Report.Completetask) != len(level.Task) { if req.Report.Completetask == nil || len(req.Report.Completetask) != len(level.Task) {

View File

@ -2,6 +2,7 @@ package academy
import ( import (
"fmt" "fmt"
"go_dreamfactory/comm"
"go_dreamfactory/lego/core" "go_dreamfactory/lego/core"
"go_dreamfactory/modules" "go_dreamfactory/modules"
cfg "go_dreamfactory/sys/configure/structs" cfg "go_dreamfactory/sys/configure/structs"
@ -37,7 +38,7 @@ func (this *configureComp) getGameTeaching(id int32) (result *cfg.GameTeachingDa
this.module.Errorln(err) this.module.Errorln(err)
} else { } else {
if result, ok = v.(*cfg.GameTeaching).GetDataMap()[id]; !ok { if result, ok = v.(*cfg.GameTeaching).GetDataMap()[id]; !ok {
err = fmt.Errorf("on found GameMonster:%d", id) err = comm.NewNotFoundConfErr(moduleName, game_teaching, id)
this.module.Errorln(err) this.module.Errorln(err)
} }
} }

View File

@ -7,6 +7,8 @@ import (
"go_dreamfactory/modules" "go_dreamfactory/modules"
) )
const moduleName = "联盟学院"
/* /*
模块名:联盟学院 模块名:联盟学院
描述:新手训练营 描述:新手训练营

View File

@ -3,7 +3,6 @@ package buried
import ( import (
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/lego/sys/log" "go_dreamfactory/lego/sys/log"
"go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs" cfg "go_dreamfactory/sys/configure/structs"
) )
@ -15,10 +14,12 @@ const (
) )
const ( const (
//叠加数据 //覆盖
overlay = 1 cover = 1
//覆盖数据 //累加
cover = 2 overlay = 2
//查询
query = 3
) )
const ( const (
@ -76,9 +77,3 @@ func checkburied(buried *comm.BuriedParam, conf *cfg.GameBuriedCondiData) (effic
efficient = true efficient = true
return return
} }
//更新埋点数据
func updateburied(buried *comm.TaskParam, conf *cfg.GameBuriedCondiData, data *pb.DBBuriedItem) (err error) {
return
}

View File

@ -61,7 +61,12 @@ func (this *buriedModel) getUserBurieds(uid string) (results map[int32]*pb.DBBur
return return
} }
func (this *buriedModel) updateUserBurieds(bdatas map[int32]*pb.DBBuried) (err error) { //更新用户数据
func (this *buriedModel) updateUserBurieds(uid string, bdatas []*pb.DBBuried) (err error) {
data := make(map[string]interface{})
for _, v := range bdatas {
data[v.Id] = v
}
err = this.model.ChangeLists(uid, data)
return return
} }

View File

@ -5,11 +5,14 @@ import (
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/lego/base" "go_dreamfactory/lego/base"
"go_dreamfactory/lego/core" "go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/event"
"go_dreamfactory/lego/sys/log" "go_dreamfactory/lego/sys/log"
"go_dreamfactory/modules" "go_dreamfactory/modules"
"go_dreamfactory/pb" "go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs" cfg "go_dreamfactory/sys/configure/structs"
"time" "time"
"go.mongodb.org/mongo-driver/bson/primitive"
) )
/* /*
@ -64,6 +67,7 @@ func (this *Buried) TriggerBuried(uid string, burieds ...*comm.BuriedParam) {
pass map[*comm.BuriedParam][]*cfg.GameBuriedCondiData = make(map[*comm.BuriedParam][]*cfg.GameBuriedCondiData) pass map[*comm.BuriedParam][]*cfg.GameBuriedCondiData = make(map[*comm.BuriedParam][]*cfg.GameBuriedCondiData)
model *buriedModel model *buriedModel
bdatas map[int32]*pb.DBBuried bdatas map[int32]*pb.DBBuried
change []*pb.DBBuried
bdata *pb.DBBuried bdata *pb.DBBuried
ok bool ok bool
complete bool complete bool
@ -91,14 +95,17 @@ func (this *Buried) TriggerBuried(uid string, burieds ...*comm.BuriedParam) {
} }
} }
completeConIds = make([]int32, 0) completeConIds = make([]int32, 0)
change = make([]*pb.DBBuried, 0)
//处理校验通过埋点数据 //处理校验通过埋点数据
for buried, conds := range pass { for buried, conds := range pass {
if bdata, ok = bdatas[bdata.Btype]; !ok { if bdata, ok = bdatas[bdata.Btype]; !ok {
bdatas[bdata.Btype] = &pb.DBBuried{ bdatas[bdata.Btype] = &pb.DBBuried{
Id: primitive.NewObjectID().Hex(),
Uid: uid, Uid: uid,
Btype: bdata.Btype, Btype: bdata.Btype,
Items: make(map[int32]*pb.DBBuriedItem), Items: make(map[int32]*pb.DBBuriedItem),
} }
bdata = bdatas[bdata.Btype]
} }
for _, cond := range conds { for _, cond := range conds {
if cond.Rtype == rtype1 { //创号后入录 if cond.Rtype == rtype1 { //创号后入录
@ -111,15 +118,24 @@ func (this *Buried) TriggerBuried(uid string, burieds ...*comm.BuriedParam) {
} }
} }
} }
change = append(change, bdatas[bdata.Btype])
} }
if len(change) > 0 { //同步数据
if err = model.updateUserBurieds(uid, change); err != nil {
this.Error("更新用户埋点数据错误!", log.Field{Key: "err", Value: err.Error()})
return
}
}
//通知事件 //通知事件
if len(completeConIds) > 0 { if len(completeConIds) > 0 {
event.TriggerEvent(comm.EventBuriedComplete, uid, completeConIds)
} }
} }
//更新并校验完成 //更新并校验完成
func (this *Buried) updateAndCheckBuried(bdata *pb.DBBuried, burie *comm.BuriedParam, cond *cfg.GameBuriedCondiData, autoActivated bool) (complete bool, err error) { func (this *Buried) updateAndCheckBuried(bdata *pb.DBBuried, collec *comm.BuriedParam, cond *cfg.GameBuriedCondiData, autoActivated bool) (complete bool, err error) {
var ( var (
ok bool ok bool
bitem *pb.DBBuriedItem bitem *pb.DBBuriedItem
@ -144,9 +160,17 @@ func (this *Buried) updateAndCheckBuried(bdata *pb.DBBuried, burie *comm.BuriedP
switch cond.Vtype { //数据接入方式 switch cond.Vtype { //数据接入方式
case overlay: //累加数据 case overlay: //累加数据
bitem.Value += burie.Value bitem.Value += collec.Value
case cover: case cover:
bitem.Value = burie.Value bitem.Value = collec.Value
case query:
switch collec.Btype {
case comm.Rtype1:
default:
err = fmt.Errorf("未实现的数据查询类型 埋点类型:%d", collec.Btype)
return
}
default: default:
err = fmt.Errorf("未知的埋点数据处理类型:%d", cond.Vtype) err = fmt.Errorf("未知的埋点数据处理类型:%d", cond.Vtype)
return return

View File

@ -19,7 +19,7 @@ func (this *apiComp) WashConfirmCheck(session comm.IUserSession, req *pb.Equipme
func (this *apiComp) WashConfirm(session comm.IUserSession, req *pb.EquipmentWashConfirmReq) (code pb.ErrorCode, data *pb.ErrorData) { func (this *apiComp) WashConfirm(session comm.IUserSession, req *pb.EquipmentWashConfirmReq) (code pb.ErrorCode, data *pb.ErrorData) {
var ( var (
equip *pb.DB_Equipment equip *pb.DB_Equipment
attrlibrary *cfg.GameEquipAttrlibraryData attrlibrary *cfg.GameEquipAttrlibrarySData
err error err error
) )
if code = this.WashConfirmCheck(session, req); code != pb.ErrorCode_Success { if code = this.WashConfirmCheck(session, req); code != pb.ErrorCode_Success {

View File

@ -155,7 +155,7 @@ func (this *configureComp) GetEquipmentAttrlibraryConfigure() (configure *cfg.Ga
} }
//获取属性词列表 //获取属性词列表
func (this *configureComp) GetEquipmentAttrlibraryConfigureByKey(key int32) (configure *cfg.GameEquipAttrlibraryData, err error) { func (this *configureComp) GetEquipmentAttrlibraryConfigureByKey(key int32) (configure *cfg.GameEquipAttrlibrarySData, err error) {
var ( var (
v interface{} v interface{}
ok bool ok bool
@ -164,7 +164,7 @@ func (this *configureComp) GetEquipmentAttrlibraryConfigureByKey(key int32) (con
this.module.Errorf("err:%v", err) this.module.Errorf("err:%v", err)
return return
} else { } else {
if configure, ok = v.(*cfg.GameEquipAttrlibrary).GetDataMap()[key]; !ok { if configure, ok = v.(*cfg.GameEquipAttrlibraryS).GetDataMap()[key]; !ok {
err = fmt.Errorf("EquipmentConfigure GetEquipmentAttrlibraryConfigureByKey not found:%d ", key) err = fmt.Errorf("EquipmentConfigure GetEquipmentAttrlibraryConfigureByKey not found:%d ", key)
this.module.Errorf("err:%v", err) this.module.Errorf("err:%v", err)

View File

@ -349,7 +349,7 @@ func (this *modelEquipmentComp) newEquipment(uid string, conf *cfg.GameEquipData
func (this *modelEquipmentComp) upgradeEquipment(equipment *pb.DB_Equipment, equip *cfg.GameEquipData, intensify *cfg.GameEquipIntensifyData) (err error) { func (this *modelEquipmentComp) upgradeEquipment(equipment *pb.DB_Equipment, equip *cfg.GameEquipData, intensify *cfg.GameEquipIntensifyData) (err error) {
equipment.Lv++ equipment.Lv++
equipment.MainEntry.Lv++ equipment.MainEntry.Lv++
var mainconfigure *cfg.GameEquipAttrlibraryData var mainconfigure *cfg.GameEquipAttrlibrarySData
if mainconfigure, err = this.module.configure.GetEquipmentAttrlibraryConfigureByKey(equipment.MainEntry.Id); err != nil { if mainconfigure, err = this.module.configure.GetEquipmentAttrlibraryConfigureByKey(equipment.MainEntry.Id); err != nil {
this.module.Errorf("升级服务错误 读取主词条配置错误!") this.module.Errorf("升级服务错误 读取主词条配置错误!")
return return
@ -411,7 +411,7 @@ func (this *modelEquipmentComp) upgradeEquipment(equipment *pb.DB_Equipment, equ
} }
} }
if equip.EquipId == 1 { if equip.EquipId == 1 {
var attrlibrary *cfg.GameEquipAttrlibraryData var attrlibrary *cfg.GameEquipAttrlibrarySData
r := rand.New(rand.NewSource(configure.Now().Unix())) r := rand.New(rand.NewSource(configure.Now().Unix()))
index := r.Perm(len(equipment.AdverbEntry))[0] index := r.Perm(len(equipment.AdverbEntry))[0]
if attrlibrary, err = this.module.configure.GetEquipmentAttrlibraryConfigureByKey(equipment.AdverbEntry[index].Id); err != nil { if attrlibrary, err = this.module.configure.GetEquipmentAttrlibraryConfigureByKey(equipment.AdverbEntry[index].Id); err != nil {

View File

@ -52,6 +52,9 @@ func (this *apiComp) Upgrade(session comm.IUserSession, req *pb.HoroscopeUpgrade
return return
} }
info.Nodes[conf.NodeId] = conf.Lv + 1 info.Nodes[conf.NodeId] = conf.Lv + 1
if info.Nodes[conf.NodeId] == 1 { //解锁
go this.module.ModuleRtask.TriggerTask(session.GetUserId(), comm.GettaskParam(comm.Rtype173, 1))
}
if err = this.module.modelHoroscope.updateInfo(session, info); err != nil { if err = this.module.modelHoroscope.updateInfo(session, info); err != nil {
code = pb.ErrorCode_DBError code = pb.ErrorCode_DBError
return return

View File

@ -80,7 +80,8 @@ func (this *ModuleRtask) getHandle(tt comm.TaskType) (handles []*rtaskCondHandle
for _, v := range this.configure.getRtaskCondis(int32(tt)) { for _, v := range this.configure.getRtaskCondis(int32(tt)) {
switch tt { switch tt {
// 两个参数 大于1个参数且第一个参数累计第二个参数等于 // 两个参数 大于1个参数且第一个参数累计第二个参数等于
case comm.Rtype1, comm.Rtype16, comm.Rtype17, comm.Rtype50, comm.Rtype125, comm.Rtype126, comm.Rtype127, comm.Rtype187: case comm.Rtype1, comm.Rtype16, comm.Rtype17, comm.Rtype50, comm.Rtype51,
comm.Rtype125, comm.Rtype126, comm.Rtype127, comm.Rtype187:
handle := &rtaskCondHandle{ handle := &rtaskCondHandle{
condId: v.Id, condId: v.Id,
verify: this.modelRtaskRecord.verifyMultiEqual, verify: this.modelRtaskRecord.verifyMultiEqual,
@ -99,7 +100,7 @@ func (this *ModuleRtask) getHandle(tt comm.TaskType) (handles []*rtaskCondHandle
handles = append(handles, handle) handles = append(handles, handle)
this.registerVerifyHandle(v.Id, handle) this.registerVerifyHandle(v.Id, handle)
// 两个参数 第一个大于等于 第二个等于 // 两个参数 第一个大于等于 第二个等于
case comm.Rtype159, comm.Rtype160, comm.Rtype75: case comm.Rtype61, comm.Rtype159, comm.Rtype160, comm.Rtype75:
handle := &rtaskCondHandle{ handle := &rtaskCondHandle{
condId: v.Id, condId: v.Id,
verify: this.modelRtaskRecord.verifyMultiEqual, //两个参数 等于 verify: this.modelRtaskRecord.verifyMultiEqual, //两个参数 等于
@ -108,7 +109,7 @@ func (this *ModuleRtask) getHandle(tt comm.TaskType) (handles []*rtaskCondHandle
handles = append(handles, handle) handles = append(handles, handle)
this.registerVerifyHandle(v.Id, handle) this.registerVerifyHandle(v.Id, handle)
// 一个参数且覆盖 // 一个参数且覆盖
case comm.Rtype61, comm.Rtype109, comm.Rtype129, comm.Rtype134: case comm.Rtype109, comm.Rtype129, comm.Rtype134:
handle := &rtaskCondHandle{ handle := &rtaskCondHandle{
condId: v.Id, condId: v.Id,
verify: this.modelRtaskRecord.verifyFirstEqualParam, verify: this.modelRtaskRecord.verifyFirstEqualParam,
@ -122,7 +123,7 @@ func (this *ModuleRtask) getHandle(tt comm.TaskType) (handles []*rtaskCondHandle
comm.Rtype12, comm.Rtype13, comm.Rtype14, comm.Rtype15, comm.Rtype18, comm.Rtype19, comm.Rtype12, comm.Rtype13, comm.Rtype14, comm.Rtype15, comm.Rtype18, comm.Rtype19,
comm.Rtype23, comm.Rtype24, comm.Rtype26, comm.Rtype27, comm.Rtype28, comm.Rtype38, comm.Rtype39, comm.Rtype23, comm.Rtype24, comm.Rtype26, comm.Rtype27, comm.Rtype28, comm.Rtype38, comm.Rtype39,
comm.Rtype47, comm.Rtype47,
comm.Rtype51, comm.Rtype53, comm.Rtype54, comm.Rtype57, comm.Rtype53, comm.Rtype54, comm.Rtype57,
comm.Rtype60, comm.Rtype62, comm.Rtype64, comm.Rtype87, comm.Rtype88, comm.Rtype89, comm.Rtype60, comm.Rtype62, comm.Rtype64, comm.Rtype87, comm.Rtype88, comm.Rtype89,
comm.Rtype90, comm.Rtype91, comm.Rtype92, comm.Rtype94, comm.Rtype95, comm.Rtype97, comm.Rtype96, comm.Rtype98, comm.Rtype99, comm.Rtype90, comm.Rtype91, comm.Rtype92, comm.Rtype94, comm.Rtype95, comm.Rtype97, comm.Rtype96, comm.Rtype98, comm.Rtype99,
comm.Rtype104, comm.Rtype102, comm.Rtype103, comm.Rtype105, comm.Rtype106, comm.Rtype108, comm.Rtype104, comm.Rtype102, comm.Rtype103, comm.Rtype105, comm.Rtype106, comm.Rtype108,
@ -293,12 +294,6 @@ func (this *ModuleRtask) TriggerTask(uid string, taskParams ...*comm.TaskParam)
this.Debug("任务触发", this.Debug("任务触发",
log.Field{Key: "uid", Value: uid}, log.Field{Key: "uid", Value: uid},
log.Field{Key: "tasks", Value: taskParams}) log.Field{Key: "tasks", Value: taskParams})
lock, _ := this.modelRtask.userlock(uid)
err := lock.Lock()
if err != nil {
this.Error("TriggerTask userlock err!", log.Field{Key: "err", Value: err.Error()})
}
defer lock.Unlock()
if this.IsCross() { if this.IsCross() {
//随机任务 //随机任务
@ -322,6 +317,14 @@ func (this *ModuleRtask) TriggerTask(uid string, taskParams ...*comm.TaskParam)
} }
func (this *ModuleRtask) processTasks(session comm.IUserSession, taskParams ...*comm.TaskParam) { func (this *ModuleRtask) processTasks(session comm.IUserSession, taskParams ...*comm.TaskParam) {
lock, _ := this.modelRtask.userlock(session.GetUserId())
err := lock.Lock()
if err != nil {
this.Error("TriggerTask userlock err!", log.Field{Key: "err", Value: err.Error()})
}
defer lock.Unlock()
uid := session.GetUserId() uid := session.GetUserId()
record := this.modelRtaskRecord.getRecord(uid) record := this.modelRtaskRecord.getRecord(uid)
var condIds []int32 var condIds []int32
@ -339,47 +342,37 @@ func (this *ModuleRtask) processTasks(session comm.IUserSession, taskParams ...*
//去重 //去重
condIds = removeDuplicate(condIds) condIds = removeDuplicate(condIds)
//带通知的condIds
var condIdsForNotify []int32
for _, condId := range condIds { for _, condId := range condIds {
r, _ := record.Vals[condId] r, _ := record.Vals[condId]
conf, _ := this.configure.getRtaskTypeById(condId) conf, _ := this.configure.getRtaskTypeById(condId)
if r.Data[0] >= conf.Data1 { if r.Data[0] >= conf.Data1 {
module, err := this.service.GetModule(comm.ModuleWorldtask) condIdsForNotify = append(condIdsForNotify, condId)
if err == nil {
//世界任务 }
if worldtask, ok := module.(comm.IWorldtask); ok { }
if err := worldtask.TaskCondFinishNotify(session, condId); err != nil {
// log.Error("世界任务条件达成通知", if len(condIdsForNotify) == 0 {
// log.Field{Key: "uid", Value: uid}, return
// log.Field{Key: "condId", Value: condId}, }
// log.Field{Key: "err", Value: err.Error()}, //通知世界任务模块
// ) module, err := this.service.GetModule(comm.ModuleWorldtask)
} if err == nil {
} //世界任务
if worldtask, ok := module.(comm.IWorldtask); ok {
if err := worldtask.TaskCondFinishNotify(session, condIdsForNotify); err != nil {
} }
// userModule, err := this.service.GetModule(comm.ModuleUser) }
// if err == nil { }
// // 公会 // 通知公会任务模块
// if user, ok := userModule.(comm.IUser); ok { sociatyModule, err := this.service.GetModule(comm.ModuleSociaty)
// ex, err := user.GetUserExpand(uid) if err != nil {
// if err == nil && ex.SociatyId != "" { return
sociatyModule, err := this.service.GetModule(comm.ModuleSociaty) }
if err != nil { if sociaty, ok := sociatyModule.(comm.ISociaty); ok {
return if err2 := sociaty.TaskcondNotify(uid, condIds); err2 != nil {
}
if sociaty, ok := sociatyModule.(comm.ISociaty); ok {
if err2 := sociaty.TaskcondNotify(uid, condId); err2 != nil {
// log.Error("公会任务条件达成通知",
// log.Field{Key: "uid", Value: uid},
// log.Field{Key: "sociatyId", Value: ex.SociatyId},
// log.Field{Key: "condId", Value: condId},
// log.Field{Key: "err", Value: err2.Error()},
// )
}
}
// }
// }
// }
} }
} }
} }

View File

@ -239,7 +239,7 @@ type TaskParams struct {
} }
// 任务条件达成通知 // 任务条件达成通知
func (this *Sociaty) TaskcondNotify(uid string, condId int32) error { func (this *Sociaty) TaskcondNotify(uid string, condIds []int32) error {
// log.Debug("公会任务", // log.Debug("公会任务",
// log.Field{Key: "uid", Value: uid}, // log.Field{Key: "uid", Value: uid},
// log.Field{Key: "sociatyId", Value: sociatyId}, // log.Field{Key: "sociatyId", Value: sociatyId},
@ -247,7 +247,7 @@ func (this *Sociaty) TaskcondNotify(uid string, condId int32) error {
sociaty := this.modelSociaty.getUserSociaty(uid) sociaty := this.modelSociaty.getUserSociaty(uid)
if sociaty == nil { if sociaty == nil {
return fmt.Errorf("公会未找到 uid:%v condId:%v", uid, condId) return fmt.Errorf("公会未找到 uid:%v condIds:%v", uid, condIds)
} }
sociatyId := sociaty.Id sociatyId := sociaty.Id
@ -259,10 +259,11 @@ func (this *Sociaty) TaskcondNotify(uid string, condId int32) error {
var flag bool var flag bool
for _, v := range dt.TaskList { for _, v := range dt.TaskList {
if v.TaskId == condId { for _, condId := range condIds {
v.Status = 1 if v.TaskId == condId {
flag = true v.Status = 1
break flag = true
}
} }
} }
if !flag { if !flag {

View File

@ -37,7 +37,7 @@ func (a *apiComp) Accept(session comm.IUserSession, req *pb.WorldtaskAcceptReq)
// 当前任务配置 // 当前任务配置
curTaskConf, err := a.module.configure.getWorldtaskById(req.TaskId) curTaskConf, err := a.module.configure.getWorldtaskById(req.TaskId)
if err != nil || curTaskConf == nil { if err != nil || curTaskConf == nil {
code = pb.ErrorCode_ConfigNoFound code = pb.ErrorCode_ConfigNoFound
log.Error("世界任务配置未找到", log.Error("世界任务配置未找到",
log.Field{Key: "uid", Value: uid}, log.Field{Key: "uid", Value: uid},
log.Field{Key: "taskId", Value: req.TaskId}, log.Field{Key: "taskId", Value: req.TaskId},

View File

@ -55,15 +55,13 @@ func (this *Worldtask) Start() (err error) {
} }
// 任务条件达成通知 // 任务条件达成通知
func (this *Worldtask) TaskCondFinishNotify(session comm.IUserSession, condId int32) error { func (this *Worldtask) TaskCondFinishNotify(session comm.IUserSession, condIds []int32) error {
this.Debug("世界任务完成条件通知", log.Field{Key: "uid", Value: session.GetUserId()}, log.Field{Key: "condIds", Value: condIds})
this.Debug("世界任务完成条件通知", log.Field{Key: "uid", Value: session.GetUserId()}, log.Field{Key: "condId", Value: condId})
uid := session.GetUserId() uid := session.GetUserId()
// 玩家世界任务 // 玩家世界任务
userTask, err := this.modelWorldtask.getWorldtask(uid) userTask, err := this.modelWorldtask.getWorldtask(uid)
if err != nil { if err != nil {
this.Error("获取玩家世界任务", log.Field{Key: "uid", Value: uid}, log.Field{Key: "condId", Value: condId}) this.Error("获取玩家世界任务", log.Field{Key: "uid", Value: uid})
return err return err
} }
@ -72,16 +70,18 @@ func (this *Worldtask) TaskCondFinishNotify(session comm.IUserSession, condId in
finishedTaskIds := make(map[int32]int32) //达成的任务条件 finishedTaskIds := make(map[int32]int32) //达成的任务条件
for _, c := range this.worldtaskConf.GetDataList() { for _, c := range this.worldtaskConf.GetDataList() {
for _, v := range c.Completetask { for _, v := range c.Completetask {
if v == condId { for _, condId := range condIds {
//校验任务是否是当前任务 if v == condId {
if task, ok := userTask.CurrentTask[c.Group]; ok { //校验任务是否是当前任务
if task.NpcStatus == 1 && c.Key == task.TaskId { if task, ok := userTask.CurrentTask[c.Group]; ok {
finishedTaskIds[c.Group] = c.Key if task.NpcStatus == 1 && c.Key == task.TaskId {
groupId = c.Group finishedTaskIds[c.Group] = c.Key
taskId = c.Key groupId = c.Group
taskId = c.Key
}
} }
break
} }
break
} }
} }
} }
@ -102,13 +102,14 @@ func (this *Worldtask) TaskCondFinishNotify(session comm.IUserSession, condId in
wt = &pb.Worldtask{} wt = &pb.Worldtask{}
} }
if _, ok := utils.Findx(wt.CondiIds, condId); !ok { for _, condId := range condIds {
wt.CondiIds = append(wt.CondiIds, condId) if _, ok := utils.Findx(wt.CondiIds, condId); !ok {
wt.CondiIds = append(wt.CondiIds, condId)
}
} }
userTask.CurrentTask[groupId] = wt userTask.CurrentTask[groupId] = wt
//this.Debug("当前任务更新", log.Field{Key: "currentTask", Value: userTask.CurrentTask})
update := map[string]interface{}{ update := map[string]interface{}{
"currentTask": userTask.CurrentTask, "currentTask": userTask.CurrentTask,
} }

View File

@ -151,9 +151,10 @@ type DBBuried struct {
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid" bson:"uid"` //用户ID Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` //唯一ID
Btype int32 `protobuf:"varint,2,opt,name=btype,proto3" json:"btype"` //@go_tags(`bson:"btype"`)埋点类型 Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid" bson:"uid"` //用户ID
Items map[int32]*DBBuriedItem `protobuf:"bytes,3,rep,name=items,proto3" json:"items" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3" bson:"burieds"` //埋点数据 key条件id Btype int32 `protobuf:"varint,3,opt,name=btype,proto3" json:"btype"` //@go_tags(`bson:"btype"`)埋点类型
Items map[int32]*DBBuriedItem `protobuf:"bytes,4,rep,name=items,proto3" json:"items" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3" bson:"burieds"` //埋点数据 key条件id
} }
func (x *DBBuried) Reset() { func (x *DBBuried) Reset() {
@ -188,6 +189,13 @@ func (*DBBuried) Descriptor() ([]byte, []int) {
return file_buried_buried_db_proto_rawDescGZIP(), []int{1} return file_buried_buried_db_proto_rawDescGZIP(), []int{1}
} }
func (x *DBBuried) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *DBBuried) GetUid() string { func (x *DBBuried) GetUid() string {
if x != nil { if x != nil {
return x.Uid return x.Uid
@ -221,11 +229,12 @@ var file_buried_buried_db_proto_rawDesc = []byte{
0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a,
0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03,
0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xa7, 0x01, 0x0a, 0x08, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xb7, 0x01, 0x0a, 0x08,
0x44, 0x42, 0x42, 0x75, 0x72, 0x69, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x44, 0x42, 0x42, 0x75, 0x72, 0x69, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x74, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18,
0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x62, 0x74, 0x79, 0x70, 0x65, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x74,
0x12, 0x2a, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x62, 0x74, 0x79, 0x70, 0x65,
0x12, 0x2a, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x14, 0x2e, 0x44, 0x42, 0x42, 0x75, 0x72, 0x69, 0x65, 0x64, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x14, 0x2e, 0x44, 0x42, 0x42, 0x75, 0x72, 0x69, 0x65, 0x64, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x73,
0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x47, 0x0a, 0x0a, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x47, 0x0a, 0x0a,
0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,

View File

@ -85,7 +85,7 @@ type ErrorData struct {
Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title"` Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title"`
Dataint int32 `protobuf:"varint,2,opt,name=dataint,proto3" json:"dataint"` Dataint int32 `protobuf:"varint,2,opt,name=dataint,proto3" json:"dataint"`
Datastring string `protobuf:"bytes,3,opt,name=datastring,proto3" json:"datastring"` Datastring string `protobuf:"bytes,3,opt,name=datastring,proto3" json:"datastring"`
ErrMsg string `protobuf:"bytes,4,opt,name=errMsg,proto3" json:"errMsg"` // 错误码 Message string `protobuf:"bytes,4,opt,name=message,proto3" json:"message"`
} }
func (x *ErrorData) Reset() { func (x *ErrorData) Reset() {
@ -141,9 +141,15 @@ func (x *ErrorData) GetDatastring() string {
return "" return ""
} }
<<<<<<< HEAD
func (x *ErrorData) GetErrMsg() string { func (x *ErrorData) GetErrMsg() string {
if x != nil { if x != nil {
return x.ErrMsg return x.ErrMsg
=======
func (x *ErrorData) GetMessage() string {
if x != nil {
return x.Message
>>>>>>> 0c3b382923687da2a0db4e18dd0534e6a73ff3bb
} }
return "" return ""
} }
@ -1930,12 +1936,17 @@ var file_comm_proto_rawDesc = []byte{
0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0f, 0x65, 0x72, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0f, 0x65, 0x72,
0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61,
<<<<<<< HEAD
0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x73, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x73, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f,
=======
0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x75, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f,
>>>>>>> 0c3b382923687da2a0db4e18dd0534e6a73ff3bb
0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64,
0x61, 0x74, 0x61, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x64, 0x61, 0x61, 0x74, 0x61, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x64, 0x61,
0x74, 0x61, 0x69, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x72,
0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x73,
<<<<<<< HEAD
0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18,
0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0xa1, 0x01, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0xa1, 0x01,
0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a,
@ -2025,6 +2036,86 @@ var file_comm_proto_rawDesc = []byte{
0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x22, 0xaf, 0x01, 0x0a, 0x13, 0x4e, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x22, 0xaf, 0x01, 0x0a, 0x13, 0x4e, 0x6f,
0x74, 0x69, 0x63, 0x65, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x74, 0x69, 0x63, 0x65, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65,
=======
0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22,
0xa1, 0x01, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12,
0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x08, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53,
0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x75,
0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
0x50, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76,
0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18,
0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74,
0x61, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
0x73, 0x65, 0x63, 0x22, 0x8e, 0x02, 0x0a, 0x0c, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73,
0x73, 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x02, 0x49, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73,
0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x55, 0x73, 0x65,
0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73,
0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72,
0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x61, 0x67,
0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54,
0x61, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72,
0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x47, 0x61,
0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1a,
0x0a, 0x08, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
0x52, 0x08, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75,
0x62, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x75, 0x62,
0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18,
0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x07, 0x4d, 0x65, 0x73,
0x73, 0x61, 0x67, 0x65, 0x22, 0xa3, 0x01, 0x0a, 0x0f, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x73, 0x73,
0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f,
0x64, 0x65, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x72, 0x72, 0x6f,
0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
0x45, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x09,
0x45, 0x72, 0x72, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x0a, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x45, 0x72, 0x72,
0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18,
0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73,
0x61, 0x67, 0x65, 0x52, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x69, 0x0a, 0x0d, 0x41, 0x67,
0x65, 0x6e, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x12, 0x24, 0x0a, 0x0d, 0x55,
0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49,
0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x6f, 0x72,
0x6b, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x57, 0x6f, 0x72,
0x6b, 0x65, 0x72, 0x49, 0x64, 0x22, 0x37, 0x0a, 0x0f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x55, 0x6e,
0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72,
0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x5f,
0x0a, 0x13, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61,
0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73,
0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x55, 0x73,
0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x05, 0x52,
0x65, 0x70, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x55, 0x73, 0x65,
0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22,
0x99, 0x01, 0x0a, 0x0f, 0x42, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
0x52, 0x65, 0x71, 0x12, 0x26, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69,
0x6f, 0x6e, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x55, 0x73, 0x65,
0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4d,
0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4d,
0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x54, 0x79,
0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70,
0x65, 0x12, 0x28, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x75, 0x0a, 0x13, 0x42,
0x72, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52,
0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4d, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18,
0x0a, 0x07, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x07, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61,
0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x44, 0x61,
0x74, 0x61, 0x22, 0x36, 0x0a, 0x0e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6c, 0x6f, 0x73, 0x65,
0x65, 0x52, 0x65, 0x71, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73,
0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x55, 0x73, 0x65,
0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xae, 0x01, 0x0a, 0x12, 0x4e,
0x6f, 0x74, 0x69, 0x63, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65,
>>>>>>> 0c3b382923687da2a0db4e18dd0534e6a73ff3bb
0x71, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49,
0x70, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65,
@ -2034,6 +2125,7 @@ var file_comm_proto_rawDesc = []byte{
0x01, 0x28, 0x09, 0x52, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x61, 0x67, 0x12, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x61, 0x67, 0x12,
0x2a, 0x0a, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x2a, 0x0a, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77,
<<<<<<< HEAD
0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x22, 0xae, 0x01, 0x0a, 0x12, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x22, 0xae, 0x01, 0x0a, 0x12,
0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52,
0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
@ -2129,6 +2221,114 @@ var file_comm_proto_rawDesc = []byte{
0x02, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x70, 0x65, 0x65, 0x64, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x70, 0x65, 0x65, 0x64, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04,
0x43, 0x72, 0x69, 0x74, 0x10, 0x04, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x43, 0x72, 0x69, 0x74, 0x10, 0x04, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
=======
0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x22, 0xaf, 0x01, 0x0a, 0x13,
0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x02, 0x49, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69,
0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x55, 0x73, 0x65, 0x72,
0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65,
0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49,
0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x61, 0x67, 0x18,
0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x61,
0x67, 0x12, 0x2a, 0x0a, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76,
0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x47, 0x61, 0x74,
0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x22, 0xae, 0x01,
0x0a, 0x12, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6c, 0x6f, 0x73,
0x65, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x02, 0x49, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73,
0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x55, 0x73, 0x65,
0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73,
0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72,
0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x61, 0x67,
0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54,
0x61, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72,
0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x47, 0x61,
0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x22, 0x3f,
0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x73,
0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x6b,
0x69, 0x6c, 0x6c, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x76,
0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x22,
0x36, 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x0c, 0x0a,
0x01, 0x41, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x41, 0x12, 0x0c, 0x0a, 0x01, 0x54,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x54, 0x12, 0x0c, 0x0a, 0x01, 0x4e, 0x18, 0x03,
0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x4e, 0x22, 0x42, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x41,
0x74, 0x6e, 0x6f, 0x12, 0x0c, 0x0a, 0x01, 0x41, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01,
0x41, 0x12, 0x0c, 0x0a, 0x01, 0x54, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x54, 0x12,
0x0c, 0x0a, 0x01, 0x4e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x4e, 0x12, 0x0c, 0x0a,
0x01, 0x4f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x4f, 0x22, 0x39, 0x0a, 0x09, 0x54,
0x61, 0x73, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x72, 0x73,
0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x12, 0x16,
0x0a, 0x06, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06,
0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x22, 0x54, 0x0a, 0x0a, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x50,
0x61, 0x72, 0x61, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x18, 0x01,
0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x12, 0x16, 0x0a, 0x06,
0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x61,
0x72, 0x61, 0x6d, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x18, 0x03,
0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x22, 0x1a, 0x0a, 0x06,
0x55, 0x49, 0x64, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x1d, 0x0a, 0x07, 0x4e, 0x61, 0x6d, 0x65,
0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x0a, 0x0a, 0x08, 0x45, 0x6d, 0x70, 0x74, 0x79,
0x52, 0x65, 0x71, 0x22, 0x0b, 0x0a, 0x09, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70,
0x22, 0x29, 0x0a, 0x0f, 0x52, 0x50, 0x43, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x65,
0x71, 0x41, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x22, 0x41, 0x0a, 0x0f, 0x52,
0x50, 0x43, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x41, 0x32, 0x12, 0x16,
0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x22, 0x59,
0x0a, 0x0f, 0x52, 0x50, 0x43, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x41,
0x33, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72,
0x61, 0x6d, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d,
0x32, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28,
0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x22, 0x71, 0x0a, 0x0f, 0x52, 0x50, 0x43,
0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x41, 0x34, 0x12, 0x16, 0x0a, 0x06,
0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61,
0x72, 0x61, 0x6d, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x12, 0x16, 0x0a, 0x06,
0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61,
0x72, 0x61, 0x6d, 0x33, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x34, 0x18, 0x04,
0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x34, 0x22, 0x51, 0x0a, 0x0b,
0x52, 0x50, 0x43, 0x52, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75,
0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a,
0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
0x08, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x72,
0x61, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x22,
0xa1, 0x03, 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x42, 0x49, 0x6e, 0x66,
0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x69, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x69, 0x64, 0x12, 0x1e, 0x0a,
0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a,
0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77,
0x6e, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01,
0x28, 0x09, 0x52, 0x05, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x6f,
0x73, 0x73, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x6f, 0x73,
0x73, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x65, 0x72,
0x76, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x69, 0x6e, 0x67, 0x6c,
0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x74,
0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x74,
0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x64, 0x69, 0x73, 0x49, 0x73, 0x43, 0x6c,
0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x72, 0x65, 0x64,
0x69, 0x73, 0x49, 0x73, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x72,
0x65, 0x64, 0x69, 0x73, 0x41, 0x64, 0x64, 0x72, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09,
0x72, 0x65, 0x64, 0x69, 0x73, 0x41, 0x64, 0x64, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x64,
0x69, 0x73, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09,
0x52, 0x0d, 0x72, 0x65, 0x64, 0x69, 0x73, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12,
0x18, 0x0a, 0x07, 0x72, 0x65, 0x64, 0x69, 0x73, 0x44, 0x62, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05,
0x52, 0x07, 0x72, 0x65, 0x64, 0x69, 0x73, 0x44, 0x62, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x6f, 0x6e,
0x67, 0x6f, 0x64, 0x62, 0x55, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x4d,
0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x55, 0x72, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x6f, 0x6e,
0x67, 0x6f, 0x64, 0x62, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x0d, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x44, 0x61, 0x74, 0x61, 0x62,
0x61, 0x73, 0x65, 0x2a, 0x43, 0x0a, 0x12, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x74, 0x74, 0x72, 0x69,
0x62, 0x75, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x06, 0x0a, 0x02, 0x48, 0x70, 0x10,
0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x74, 0x6b, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x65,
0x66, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x70, 0x65, 0x65, 0x64, 0x10, 0x03, 0x12, 0x08,
0x0a, 0x04, 0x43, 0x72, 0x69, 0x74, 0x10, 0x04, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62,
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
>>>>>>> 0c3b382923687da2a0db4e18dd0534e6a73ff3bb
} }
var ( var (

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 GameBuriedType struct {
_dataMap map[int32]*GameBuriedTypeData
_dataList []*GameBuriedTypeData
}
func NewGameBuriedType(_buf []map[string]interface{}) (*GameBuriedType, error) {
_dataList := make([]*GameBuriedTypeData, 0, len(_buf))
dataMap := make(map[int32]*GameBuriedTypeData)
for _, _ele_ := range _buf {
if _v, err2 := DeserializeGameBuriedTypeData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Id] = _v
}
}
return &GameBuriedType{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *GameBuriedType) GetDataMap() map[int32]*GameBuriedTypeData {
return table._dataMap
}
func (table *GameBuriedType) GetDataList() []*GameBuriedTypeData {
return table._dataList
}
func (table *GameBuriedType) Get(key int32) *GameBuriedTypeData {
return table._dataMap[key]
}

View File

@ -0,0 +1,47 @@
//------------------------------------------------------------------------------
// <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 GameBuriedTypeData struct {
Id int32
Insert int32
Desc string
Data1 string
Data2 string
Data3 string
Data4 string
}
const TypeId_GameBuriedTypeData = -452590967
func (*GameBuriedTypeData) GetTypeId() int32 {
return -452590967
}
func (_v *GameBuriedTypeData)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["insert"].(float64); !_ok_ { err = errors.New("insert error"); return }; _v.Insert = int32(_tempNum_) }
{ var _ok_ bool; if _v.Desc, _ok_ = _buf["desc"].(string); !_ok_ { err = errors.New("desc error"); return } }
{ var _ok_ bool; if _v.Data1, _ok_ = _buf["data1"].(string); !_ok_ { err = errors.New("data1 error"); return } }
{ var _ok_ bool; if _v.Data2, _ok_ = _buf["data2"].(string); !_ok_ { err = errors.New("data2 error"); return } }
{ var _ok_ bool; if _v.Data3, _ok_ = _buf["data3"].(string); !_ok_ { err = errors.New("data3 error"); return } }
{ var _ok_ bool; if _v.Data4, _ok_ = _buf["data4"].(string); !_ok_ { err = errors.New("data4 error"); return } }
return
}
func DeserializeGameBuriedTypeData(_buf map[string]interface{}) (*GameBuriedTypeData, error) {
v := &GameBuriedTypeData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
return nil, err
}
}

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 GameEquipAttrlibraryS struct {
_dataMap map[int32]*GameEquipAttrlibrarySData
_dataList []*GameEquipAttrlibrarySData
}
func NewGameEquipAttrlibraryS(_buf []map[string]interface{}) (*GameEquipAttrlibraryS, error) {
_dataList := make([]*GameEquipAttrlibrarySData, 0, len(_buf))
dataMap := make(map[int32]*GameEquipAttrlibrarySData)
for _, _ele_ := range _buf {
if _v, err2 := DeserializeGameEquipAttrlibrarySData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Key] = _v
}
}
return &GameEquipAttrlibraryS{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *GameEquipAttrlibraryS) GetDataMap() map[int32]*GameEquipAttrlibrarySData {
return table._dataMap
}
func (table *GameEquipAttrlibraryS) GetDataList() []*GameEquipAttrlibrarySData {
return table._dataList
}
func (table *GameEquipAttrlibraryS) Get(key int32) *GameEquipAttrlibrarySData {
return table._dataMap[key]
}

View File

@ -0,0 +1,60 @@
//------------------------------------------------------------------------------
// <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 GameEquipAttrlibrarySData struct {
Key int32
Libraryid int32
Attrkey string
Attrvar int32
AttrvarCorrect int32
Probability int32
Addition []int32
}
const TypeId_GameEquipAttrlibrarySData = 170770055
func (*GameEquipAttrlibrarySData) GetTypeId() int32 {
return 170770055
}
func (_v *GameEquipAttrlibrarySData)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["libraryid"].(float64); !_ok_ { err = errors.New("libraryid error"); return }; _v.Libraryid = int32(_tempNum_) }
{ var _ok_ bool; if _v.Attrkey, _ok_ = _buf["attrkey"].(string); !_ok_ { err = errors.New("attrkey error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["attrvar"].(float64); !_ok_ { err = errors.New("attrvar error"); return }; _v.Attrvar = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["attrvar_correct"].(float64); !_ok_ { err = errors.New("attrvar_correct error"); return }; _v.AttrvarCorrect = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["probability"].(float64); !_ok_ { err = errors.New("probability error"); return }; _v.Probability = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["Addition"].([]interface{}); !_ok_ { err = errors.New("Addition error"); return }
_v.Addition = 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.Addition = append(_v.Addition, _list_v_)
}
}
return
}
func DeserializeGameEquipAttrlibrarySData(_buf map[string]interface{}) (*GameEquipAttrlibrarySData, error) {
v := &GameEquipAttrlibrarySData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
return nil, err
}
}

View File

@ -25,7 +25,7 @@ type Tables struct {
HeroExp *GameHeroExp HeroExp *GameHeroExp
HeroLevelup *GameHeroLevelup HeroLevelup *GameHeroLevelup
Equip *GameEquip Equip *GameEquip
EquipAttrlibrary *GameEquipAttrlibrary EquipAttrlibraryS *GameEquipAttrlibraryS
EquipSuit *GameEquipSuit EquipSuit *GameEquipSuit
EquipColor *GameEquipColor EquipColor *GameEquipColor
EquipIntensify *GameEquipIntensify EquipIntensify *GameEquipIntensify
@ -196,6 +196,8 @@ type Tables struct {
RuleDesc *GameRuleDesc RuleDesc *GameRuleDesc
HeroTalent *GameHeroTalent HeroTalent *GameHeroTalent
TalentBox *GameTalentBox TalentBox *GameTalentBox
BuriedCondi *GameBuriedCondi
BuriedType *GameBuriedType
} }
func NewTables(loader JsonLoader) (*Tables, error) { func NewTables(loader JsonLoader) (*Tables, error) {
@ -287,10 +289,10 @@ func NewTables(loader JsonLoader) (*Tables, error) {
if tables.Equip, err = NewGameEquip(buf) ; err != nil { if tables.Equip, err = NewGameEquip(buf) ; err != nil {
return nil, err return nil, err
} }
if buf, err = loader("game_equipattrlibrary") ; err != nil { if buf, err = loader("game_equipattrlibrarys") ; err != nil {
return nil, err return nil, err
} }
if tables.EquipAttrlibrary, err = NewGameEquipAttrlibrary(buf) ; err != nil { if tables.EquipAttrlibraryS, err = NewGameEquipAttrlibraryS(buf) ; err != nil {
return nil, err return nil, err
} }
if buf, err = loader("game_equipsuit") ; err != nil { if buf, err = loader("game_equipsuit") ; err != nil {
@ -1313,5 +1315,17 @@ func NewTables(loader JsonLoader) (*Tables, error) {
if tables.TalentBox, err = NewGameTalentBox(buf) ; err != nil { if tables.TalentBox, err = NewGameTalentBox(buf) ; err != nil {
return nil, err return nil, err
} }
if buf, err = loader("game_buriedcondi") ; err != nil {
return nil, err
}
if tables.BuriedCondi, err = NewGameBuriedCondi(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_buriedtype") ; err != nil {
return nil, err
}
if tables.BuriedType, err = NewGameBuriedType(buf) ; err != nil {
return nil, err
}
return tables, nil return tables, nil
} }

View File

@ -313,7 +313,7 @@ func (this *DBModel) Change(uid string, data map[string]interface{}, opt ...DBOp
return nil return nil
} }
//修改数据多个字段 uid 作为主键 //修改列表中一个数据
func (this *DBModel) ChangeList(uid string, _id string, data map[string]interface{}, opt ...DBOption) (err error) { func (this *DBModel) ChangeList(uid string, _id string, data map[string]interface{}, opt ...DBOption) (err error) {
//defer log.Debug("DBModel ChangeList", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "uid", Value: uid}, log.Field{Key: "_id", Value: _id}, log.Field{Key: "data", Value: data}) //defer log.Debug("DBModel ChangeList", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "uid", Value: uid}, log.Field{Key: "_id", Value: _id}, log.Field{Key: "data", Value: data})
if err = this.Redis.HMSet(this.ukeylist(uid, _id), data); err != nil { if err = this.Redis.HMSet(this.ukeylist(uid, _id), data); err != nil {
@ -336,6 +336,36 @@ func (this *DBModel) ChangeList(uid string, _id string, data map[string]interfac
return nil return nil
} }
//修改列表中多个数据 datas key是 _id value是 这个数据对象
func (this *DBModel) ChangeLists(uid string, datas map[string]interface{}, opt ...DBOption) (err error) {
pipe := this.Redis.RedisPipe(context.TODO())
for k, v := range datas {
if err = pipe.HMSet(this.ukeylist(uid, k), v); err != nil {
log.Error("DBModel ChangeList", log.Field{Key: "err", Value: err.Error()})
return
}
}
pipe.Exec()
option := newDBOption(opt...)
if option.IsMgoLog {
if uid == "" {
for k, v := range datas {
err = this.UpdateModelLogs(this.TableName, uid, bson.M{"_id": k}, v)
}
} else {
for k, v := range datas {
err = this.UpdateModelLogs(this.TableName, uid, bson.M{"_id": k, "uid": uid}, v)
}
}
}
if this.Expired > 0 {
this.conn.UpDateModelExpired(this.ukey(uid), nil, this.Expired)
// this.Redis.Expire(this.ukey(uid), option.Expire)
}
return nil
}
//读取全部数据 //读取全部数据
func (this *DBModel) Get(uid string, data interface{}, opt ...DBOption) (err error) { func (this *DBModel) Get(uid string, data interface{}, opt ...DBOption) (err error) {
//defer log.Debug("DBModel Get", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "uid", Value: uid}, log.Field{Key: "data", Value: data}) //defer log.Debug("DBModel Get", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "uid", Value: uid}, log.Field{Key: "data", Value: data})
@ -772,7 +802,7 @@ func (this *DBModel) GetListObj(uid string, id string, data interface{}) (err er
return return
} }
//读取列表数据中单个数据 //读取列表数据中多条数据
func (this *DBModel) GetListObjs(uid string, ids []string, data interface{}) (err error) { func (this *DBModel) GetListObjs(uid string, ids []string, data interface{}) (err error) {
//defer log.Debug("DBModel GetListObjs", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "uid", Value: uid}, log.Field{Key: "ids", Value: ids}, log.Field{Key: "data", Value: data}) //defer log.Debug("DBModel GetListObjs", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "uid", Value: uid}, log.Field{Key: "ids", Value: ids}, log.Field{Key: "data", Value: data})
defer func() { //程序异常 收集异常信息传递给前端显示 defer func() { //程序异常 收集异常信息传递给前端显示