From 69fe11a076b9fd4782a3484f41d48f649f5856bc Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Fri, 1 Jul 2022 18:45:38 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=B1=9E=E6=80=A7=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/hero/api_awaken.go | 2 +- modules/hero/api_chouka.go | 4 +-- modules/hero/api_info.go | 2 +- modules/hero/api_list.go | 2 +- modules/hero/api_resonance.go | 6 ++-- modules/hero/api_resonanceReset.go | 11 +++++-- modules/hero/api_resonanceSelect.go | 24 ++++++++++++-- modules/hero/api_skillUp.go | 4 +-- modules/hero/api_starUp.go | 21 ++---------- modules/hero/api_strengthen.go | 48 ++++++++++++++------------- modules/hero/hero_test.go | 10 +++--- modules/hero/model_hero.go | 50 ++++++++++++++++++++++++----- modules/hero/module.go | 35 +++++++++++++------- pb/proto/hero/hero_db.proto | 2 +- 14 files changed, 139 insertions(+), 82 deletions(-) diff --git a/modules/hero/api_awaken.go b/modules/hero/api_awaken.go index 31404ecff..cfada16cd 100644 --- a/modules/hero/api_awaken.go +++ b/modules/hero/api_awaken.go @@ -104,7 +104,7 @@ func (this *apiComp) Awaken(session comm.IUserSession, req *pb.HeroAwakenReq) (c } } - err1 = this.module.hero.PushHeroProperty(session, _hero.Id) // 推送属性变化 + err1 = this.module.modelHero.PushHeroProperty(session, _hero.Id) // 推送属性变化 if err1 != nil { log.Errorf("PushHeroProperty err!") } diff --git a/modules/hero/api_chouka.go b/modules/hero/api_chouka.go index 14e97c1f6..d135d9905 100644 --- a/modules/hero/api_chouka.go +++ b/modules/hero/api_chouka.go @@ -26,12 +26,12 @@ func (this *apiComp) Chouka(session comm.IUserSession, req *pb.HeroChoukaReq) (c }() heroCfgIds := req.HeroIds - if err := this.module.hero.createMultiHero(session.GetUserId(), heroCfgIds...); err != nil { + if err := this.module.modelHero.createMultiHero(session.GetUserId(), heroCfgIds...); err != nil { code = pb.ErrorCode_HeroCreate return } - heroes, err := this.module.hero.getHeroList(session.GetUserId()) + heroes, err := this.module.modelHero.getHeroList(session.GetUserId()) if err != nil { log.Errorf("%v", err) code = pb.ErrorCode_DBError diff --git a/modules/hero/api_info.go b/modules/hero/api_info.go index 86c8962e4..fc7fceea2 100644 --- a/modules/hero/api_info.go +++ b/modules/hero/api_info.go @@ -24,7 +24,7 @@ func (this *apiComp) Info(session comm.IUserSession, req *pb.HeroInfoReq) (code utils.TraceFunc(session.GetUserId(), string(this.module.GetType()), HeroSubTypeList, req, rsp) }() - hero := this.module.hero.getOneHero(session.GetUserId(), req.HeroId) + hero := this.module.modelHero.getOneHero(session.GetUserId(), req.HeroId) if hero == nil { code = pb.ErrorCode_HeroNoExist } diff --git a/modules/hero/api_list.go b/modules/hero/api_list.go index b6edaead6..397c6bbc2 100644 --- a/modules/hero/api_list.go +++ b/modules/hero/api_list.go @@ -24,7 +24,7 @@ func (this *apiComp) List(session comm.IUserSession, req *pb.HeroListReq) (code utils.TraceFunc(session.GetUserId(), string(this.module.GetType()), HeroSubTypeList, req, rsp) }() - list, err := this.module.hero.getHeroList(session.GetUserId()) + list, err := this.module.modelHero.getHeroList(session.GetUserId()) if err != nil { code = pb.ErrorCode_DBError return diff --git a/modules/hero/api_resonance.go b/modules/hero/api_resonance.go index ab7555fb4..bd9fc68ef 100644 --- a/modules/hero/api_resonance.go +++ b/modules/hero/api_resonance.go @@ -104,7 +104,7 @@ func (this *apiComp) Resonance(session comm.IUserSession, req *pb.HeroResonanceR _heroMap := map[string]interface{}{ "resonateNum": _hero.ResonateNum + resonConfig.Energy, } - err1 = this.module.hero.modifyHeroData(session.GetUserId(), req.HeroObjID, _heroMap) // 修改英雄信息 + err1 = this.module.modelHero.modifyHeroData(session.GetUserId(), req.HeroObjID, _heroMap) // 修改英雄信息 if err1 != nil { log.Errorf("update hero skill failed:%v", err1) } @@ -117,11 +117,11 @@ func (this *apiComp) Resonance(session comm.IUserSession, req *pb.HeroResonanceR return } for i := 0; i < int(v.N); i++ { // 有多少张加多少次 - this.module.hero.createOneHero(session.GetUserId(), int32(value)) + this.module.modelHero.createOneHero(session.GetUserId(), int32(value)) } } } - err1 = this.module.hero.PushHeroProperty(session, _hero.Id) // 推送属性变化 + err1 = this.module.modelHero.PushHeroProperty(session, _hero.Id) // 推送属性变化 if err1 != nil { log.Errorf("PushHeroProperty err!") } diff --git a/modules/hero/api_resonanceReset.go b/modules/hero/api_resonanceReset.go index 25c40bb86..75d9f60ab 100644 --- a/modules/hero/api_resonanceReset.go +++ b/modules/hero/api_resonanceReset.go @@ -75,13 +75,20 @@ func (this *apiComp) ResonanceReset(session comm.IUserSession, req *pb.HeroReson "Energy": _hero.Energy, } - err1 = this.module.hero.modifyHeroData(session.GetUserId(), req.HeroObjID, _heroMap) // 修改英雄信息 + err1 = this.module.modelHero.modifyHeroData(session.GetUserId(), req.HeroObjID, _heroMap) // 修改英雄信息 if err1 != nil { log.Errorf("update hero skill failed:%v", err1) } - err1 = this.module.hero.PushHeroProperty(session, _hero.Id) // 推送属性变化 + err1 = this.module.modelHero.PushHeroProperty(session, _hero.Id) // 推送属性变化 if err1 != nil { log.Errorf("PushHeroProperty err!") } + + property := make(map[string]int32, 0) + property[comm.HpPro] -= _hero.AddProperty[comm.HpPro] + property[comm.AtkPro] -= _hero.AddProperty[comm.AtkPro] + property[comm.DefPro] -= _hero.AddProperty[comm.DefPro] + this.module.modelHero.mergeMainProperty(session.GetUserId(), _hero.Id, property) + return } diff --git a/modules/hero/api_resonanceSelect.go b/modules/hero/api_resonanceSelect.go index a386af7d6..30ba57e5f 100644 --- a/modules/hero/api_resonanceSelect.go +++ b/modules/hero/api_resonanceSelect.go @@ -4,13 +4,14 @@ import ( "go_dreamfactory/comm" "go_dreamfactory/lego/sys/log" "go_dreamfactory/pb" + "math" "google.golang.org/protobuf/proto" ) //参数校验 func (this *apiComp) ResonanceUseEnergyCheck(session comm.IUserSession, req *pb.HeroResonanceUseEnergyReq) (code pb.ErrorCode) { - if len(req.HeroObjID) == 0 || req.UseEnergy <= 0 || req.UseType < 0 { + if len(req.HeroObjID) == 0 || req.UseEnergy <= 0 || req.UseType < 0 || req.UseType > 3 { code = pb.ErrorCode_ReqParameterError } return @@ -40,13 +41,30 @@ func (this *apiComp) ResonanceUseEnergy(session comm.IUserSession, req *pb.HeroR "Energy": _hero.Energy, } - err1 := this.module.hero.modifyHeroData(session.GetUserId(), req.HeroObjID, _heroMap) // 修改英雄信息 + err1 := this.module.modelHero.modifyHeroData(session.GetUserId(), req.HeroObjID, _heroMap) // 修改英雄信息 if err1 != nil { code = pb.ErrorCode_DBError log.Errorf("update hero skill failed:%v", err1) } + // 计算属性 + resonConfig, errr := this.module.configure.GetHeroResonanceConfig(_hero.HeroID) + if errr != nil { + code = pb.ErrorCode_ConfigNoFound + return + } - err1 = this.module.hero.PushHeroProperty(session, _hero.Id) // 推送属性变化 + property := make(map[string]int32, 0) + switch req.UseType { + case 1: + property[comm.Hp] = int32(math.Floor((1.0 + float64(resonConfig.Hppro*req.UseEnergy)/1000) * float64(_hero.Property[comm.Hp]))) + case 2: + property[comm.Atk] = int32(math.Floor((1.0 + float64(resonConfig.Atkpro*req.UseEnergy)/1000) * float64(_hero.Property[comm.Atk]))) + case 3: + property[comm.Def] = int32(math.Floor((1.0 + float64(resonConfig.Defpro*req.UseEnergy)/1000) * float64(_hero.Property[comm.Def]))) + } + this.module.modelHero.mergeMainProperty(session.GetUserId(), _hero.Id, property) + + err1 = this.module.modelHero.PushHeroProperty(session, _hero.Id) // 推送属性变化 if err1 != nil { log.Errorf("PushHeroProperty err!") } diff --git a/modules/hero/api_skillUp.go b/modules/hero/api_skillUp.go index 658af4b76..e505ae800 100644 --- a/modules/hero/api_skillUp.go +++ b/modules/hero/api_skillUp.go @@ -116,7 +116,7 @@ func (this *apiComp) StrengthenUpSkill(session comm.IUserSession, req *pb.HeroSt _heroMap := map[string]interface{}{ "normalSkill": _hero.NormalSkill, } - err1 = this.module.hero.modifyHeroData(session.GetUserId(), req.HeroObjID, _heroMap) // 修改英雄信息 + err1 = this.module.modelHero.modifyHeroData(session.GetUserId(), req.HeroObjID, _heroMap) // 修改英雄信息 if err1 != nil { log.Errorf("update hero skill failed:%v", err) } @@ -126,7 +126,7 @@ func (this *apiComp) StrengthenUpSkill(session comm.IUserSession, req *pb.HeroSt code = pb.ErrorCode_DBError return } - err1 = this.module.hero.PushHeroProperty(session, _hero.Id) // 推送属性变化 + err1 = this.module.modelHero.PushHeroProperty(session, _hero.Id) // 推送属性变化 if err1 != nil { log.Errorf("PushHeroProperty err!") } diff --git a/modules/hero/api_starUp.go b/modules/hero/api_starUp.go index d17d77cb3..7c2cef976 100644 --- a/modules/hero/api_starUp.go +++ b/modules/hero/api_starUp.go @@ -21,9 +21,7 @@ func (this *apiComp) StrengthenUpStarCheck(session comm.IUserSession, req *pb.He func (this *apiComp) StrengthenUpStar(session comm.IUserSession, req *pb.HeroStrengthenUpStarReq) (code pb.ErrorCode, data proto.Message) { var ( target *cfg.Game_heroStarupData // 配置表目标升星英雄信息 - raceHero *pb.DBHero // 消耗的阵容英雄 costRaceCount int32 - curGold int32 ) _hero, err := this.module.GetHero(session.GetUserId(), req.HeroObjID) defer func() { @@ -71,7 +69,7 @@ func (this *apiComp) StrengthenUpStar(session comm.IUserSession, req *pb.HeroStr } // 校验阵容英雄消耗 for _, v := range req.HeroRace { - if raceHero, err = this.module.GetHero(session.GetUserId(), v.CostCardObj); err != pb.ErrorCode_Success { + if raceHero, err := this.module.GetHero(session.GetUserId(), v.CostCardObj); err != pb.ErrorCode_Success { code = pb.ErrorCode_ReqParameterError return } else { @@ -100,7 +98,7 @@ func (this *apiComp) StrengthenUpStar(session comm.IUserSession, req *pb.HeroStr return } // 金币消耗判断 - curGold = this.module.ModuleUser.QueryAttributeValue(session.GetUserId(), "gold") + curGold := this.module.ModuleUser.QueryAttributeValue(session.GetUserId(), "gold") if curGold < target.Gold { // 金币不足 code = pb.ErrorCode_GoldNoEnough return @@ -131,19 +129,6 @@ func (this *apiComp) StrengthenUpStar(session comm.IUserSession, req *pb.HeroStr return } } - _hero.Star += 1 - _heroMap := map[string]interface{}{ - "star": _hero.Star, - } - // 保存数据 - err1 = this.module.hero.modifyHeroData(session.GetUserId(), req.HeroObjID, _heroMap) - if err1 != nil { - code = pb.ErrorCode_DBError - log.Errorf("update hero skill failed:%v", err) - } - err1 = this.module.hero.PushHeroProperty(session, _hero.Id) // 推送属性变化 - if err1 != nil { - log.Errorf("PushHeroProperty err!") - } + code = this.module.modelHero.HeroStarUp(session, _hero) // 执行升星操作 return } diff --git a/modules/hero/api_strengthen.go b/modules/hero/api_strengthen.go index 72cb243d4..7a05bd7d9 100644 --- a/modules/hero/api_strengthen.go +++ b/modules/hero/api_strengthen.go @@ -22,13 +22,13 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren var ( curLv int32 - curExp int32 // 当前英雄的经验 - costRes int32 // 当前需要消资源的数量 - addExp int32 // 需要增加的经验 - curRes int32 - atn = map[string]interface{}{} + curExp int32 // 当前英雄的经验 + costRes map[string]int32 // 当前需要消资源的数量 + addExp int32 // 需要增加的经验 + curRes map[string]int32 ) - atn = make(map[string]interface{}, 0) + curRes = make(map[string]int32, 0) + costRes = make(map[string]int32, 0) _hero, err := this.module.GetHero(session.GetUserId(), req.HeroObjID) // 校验升级的对象是否存在 if err != pb.ErrorCode_Success { @@ -91,19 +91,18 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren curLv -= 1 break } - costRes += _data.Gold[0].N + for _, v := range _data.Gold { + _curRes := this.module.ModuleUser.QueryAttributeValue(session.GetUserId(), v.T) + if _curRes < v.N { + code = pb.ErrorCode_GoldNoEnough + return + } + curRes[v.T] = _curRes + costRes[v.T] += v.N + } } } - for _, v := range _data.Gold { - atn["a"] = v.A - atn["t"] = v.T - atn["n"] = v.N - } - // 资源消耗判断 - curRes = this.module.ModuleUser.QueryAttributeValue(session.GetUserId(), atn["t"].(string)) - if curRes < costRes { - code = pb.ErrorCode_GoldNoEnough - } + } else { code = pb.ErrorCode_HeroNoExist return @@ -117,25 +116,28 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren session.SendMsg(string(this.module.GetType()), StrengthenUplv, &pb.HeroStrengthenUplvResp{Hero: _hero}) } }() - log.Debugf("升级后当前等级: %d,经验: %d,需要消耗的金币: %d,增加的经验: %d", curLv, curExp, costRes, addExp) + log.Debugf("升级后当前等级: %d,经验: %d,需要消耗的金币: %d,增加的经验: %d", curLv, curExp, costRes["gold"], addExp) // 执行升级逻辑 code = this.module.AddCardExp(session.GetUserId(), req.HeroObjID, addExp) // 加经验 if code != pb.ErrorCode_Success { return } // 消耗道具 - code = this.module.ModuleUser.AddAttributeValue(session.GetUserId(), atn["t"].(string), int32(curRes-costRes)) // 减少金币 - if code != pb.ErrorCode_Success { - return + for k, v := range costRes { + + code = this.module.ModuleUser.AddAttributeValue(session.GetUserId(), k, int32(curRes[k]-v)) // 减少金币 + if code != pb.ErrorCode_Success { + return + } } // 删除经验卡 - err1 := this.module.hero.consumeOneHeroCard(session.GetUserId(), req.ExpCardID, req.Amount) + err1 := this.module.modelHero.consumeOneHeroCard(session.GetUserId(), req.ExpCardID, req.Amount) if err1 != nil { log.Errorf("delete err failed err:%T!", err) return } - err1 = this.module.hero.PushHeroProperty(session, _hero.Id) // 推送属性变化 + err1 = this.module.modelHero.PushHeroProperty(session, _hero.Id) // 推送属性变化 if err1 != nil { log.Errorf("PushHeroProperty err!") } diff --git a/modules/hero/hero_test.go b/modules/hero/hero_test.go index d853d14ce..6f2f760a1 100644 --- a/modules/hero/hero_test.go +++ b/modules/hero/hero_test.go @@ -70,23 +70,23 @@ func TestMain(m *testing.M) { //创建一个英雄s func TestCreateOneHero(t *testing.T) { - err := module.hero.createOneHero("u1", 25001) + err := module.modelHero.createOneHero("u1", 25001) fmt.Println(err) } //获取玩家英雄 func TestGetOneHero(t *testing.T) { - d := module.hero.getOneHero("u1", "62b534bebf4745d4117acabe") + d := module.modelHero.getOneHero("u1", "62b534bebf4745d4117acabe") fmt.Printf("%v", d) } func TestPropertyCompute(t *testing.T) { - m := module.hero.PropertyCompute("u1", "62b534bebf4745d4117acabe") + m := module.modelHero.PropertyCompute("u1", "62b534bebf4745d4117acabe") fmt.Println(m) } func TestHeroList(t *testing.T) { - heroes, err := module.hero.getHeroList("u1") + heroes, err := module.modelHero.getHeroList("u1") fmt.Printf("%v %v", heroes, err) } @@ -95,6 +95,6 @@ func TestModify(t *testing.T) { "lv": 2, "exp": 1000, } - err := module.hero.modifyHeroData("u1", "62b534bebf4745d4117acabe", data) + err := module.modelHero.modifyHeroData("u1", "62b534bebf4745d4117acabe", data) fmt.Printf("%v ", err) } diff --git a/modules/hero/model_hero.go b/modules/hero/model_hero.go index c548e22f4..83c8837e2 100644 --- a/modules/hero/model_hero.go +++ b/modules/hero/model_hero.go @@ -57,7 +57,7 @@ func (this *ModelHero) initHero(uid string, heroCfgId int32) *pb.DBHero { func (this *ModelHero) createOneHero(uid string, heroCfgId int32) (err error) { hero := this.initHero(uid, heroCfgId) if hero != nil { - if err = this.moduleHero.hero.AddList(uid, hero.Id, hero); err != nil { + if err = this.moduleHero.modelHero.AddList(uid, hero.Id, hero); err != nil { log.Errorf("%v", err) return } @@ -67,7 +67,7 @@ func (this *ModelHero) createOneHero(uid string, heroCfgId int32) (err error) { //创建多个指定的英雄 heroCfgIds可填入多个英雄ID func (this *ModelHero) createMultiHero(uid string, heroCfgIds ...int32) error { - heroes, err := this.moduleHero.hero.getHeroList(uid) + heroes, err := this.moduleHero.modelHero.getHeroList(uid) if err != nil { return err } @@ -111,7 +111,7 @@ func (this *ModelHero) createMultiHero(uid string, heroCfgIds ...int32) error { //获取一个英雄 func (this *ModelHero) getOneHero(uid, heroId string) *pb.DBHero { hero := &pb.DBHero{} - err := this.moduleHero.hero.GetListObj(uid, heroId, hero) + err := this.moduleHero.modelHero.GetListObj(uid, heroId, hero) if err != nil { return nil } @@ -121,7 +121,7 @@ func (this *ModelHero) getOneHero(uid, heroId string) *pb.DBHero { //消耗一张英雄卡 func (this *ModelHero) consumeOneHeroCard(uid, heroId string, count int32) (err error) { for i := 0; i < int(count); i++ { - if err := this.moduleHero.hero.DelListlds(uid, heroId); err != nil { + if err := this.moduleHero.modelHero.DelListlds(uid, heroId); err != nil { log.Errorf("%v", err) break } @@ -131,7 +131,7 @@ func (this *ModelHero) consumeOneHeroCard(uid, heroId string, count int32) (err //更新英雄数据 func (this *ModelHero) modifyHeroData(uid, heroId string, data map[string]interface{}) error { - return this.moduleHero.hero.ChangeList(uid, heroId, data) + return this.moduleHero.modelHero.ChangeList(uid, heroId, data) } //获取玩家的英雄列表 @@ -173,9 +173,9 @@ func (this *ModelHero) mergeAddProperty(uid, heroId string, data map[string]int3 if hero == nil { return } - hero.AddProperty[comm.Hp] += data[comm.Hp] - hero.AddProperty[comm.Atk] += data[comm.Atk] - hero.AddProperty[comm.Def] += data[comm.Def] + hero.AddProperty[comm.Hp] = data[comm.Hp] + hero.AddProperty[comm.Atk] = data[comm.Atk] + hero.AddProperty[comm.Def] = data[comm.Def] } //属性计算 - 暂时放在modelHero里实现 @@ -250,3 +250,37 @@ func (this *ModelHero) PushHeroProperty(session comm.IUserSession, heroId string } return session.SendMsg("push", "property", &pb.HeroProperty{Property: m}) } + +// 英雄升星 +func (this *ModelHero) HeroStarUp(session comm.IUserSession, hero *pb.DBHero) (code pb.ErrorCode) { + + _heroMap := map[string]interface{}{ + "star": hero.Star, + } + // 保存数据 + err1 := this.modifyHeroData(session.GetUserId(), hero.Id, _heroMap) + if err1 != nil { + code = pb.ErrorCode_DBError + log.Errorf("update hero skill failed:%v", err1) + } + // 计算属性 + data := make(map[string]int32, 0) + newConfig := this.moduleHero.configure.GetHeroStar(hero.Star - 1) + if newConfig == nil { + code = pb.ErrorCode_ConfigurationException + return + } + + data[comm.Hp] = int32(math.Floor((1.0 + float64(newConfig.StarupHp)) * float64(hero.Property[comm.Hp]) / 100)) + data[comm.Atk] = int32(math.Floor((1.0 + float64(newConfig.StarupAtk)) * float64(hero.Property[comm.Atk]) / 100)) + data[comm.Def] = int32(math.Floor((1.0 + float64(newConfig.StarupDef)) * float64(hero.Property[comm.Def]) / 100)) + data[comm.Speed] = int32(math.Floor((1.0 + float64(newConfig.StarupSpeed)) * float64(hero.Property[comm.Speed]) / 100)) + this.mergeMainProperty(session.GetUserId(), hero.Id, data) + + err1 = this.PushHeroProperty(session, hero.Id) // 推送属性变化 + if err1 != nil { + code = pb.ErrorCode_Unknown + log.Errorf("PushHeroProperty err!") + } + return +} diff --git a/modules/hero/module.go b/modules/hero/module.go index 148e85329..0a3adf3d6 100644 --- a/modules/hero/module.go +++ b/modules/hero/module.go @@ -16,7 +16,7 @@ type Hero struct { modules.ModuleBase api *apiComp configure *configureComp - hero *ModelHero + modelHero *ModelHero items comm.IItems } @@ -35,13 +35,13 @@ func (this *Hero) Init(service core.IService, module core.IModule, options core. func (this *Hero) OnInstallComp() { this.ModuleBase.OnInstallComp() this.api = this.RegisterComp(new(apiComp)).(*apiComp) - this.hero = this.RegisterComp(new(ModelHero)).(*ModelHero) + this.modelHero = this.RegisterComp(new(ModelHero)).(*ModelHero) this.configure = this.RegisterComp(new(configureComp)).(*configureComp) } //创建新英雄 func (this *Hero) CreateHero(uid string, heroCfgId ...int32) error { - return this.hero.createMultiHero(uid, heroCfgId...) + return this.modelHero.createMultiHero(uid, heroCfgId...) } //消耗英雄卡 @@ -58,7 +58,7 @@ func (this *Hero) ChangeCard(uId string, heroCfgId int32, count int32) (code pb. } for _, v := range curList { - err := this.hero.consumeOneHeroCard(v.Uid, v.Id, count) + err := this.modelHero.consumeOneHeroCard(v.Uid, v.Id, count) if err != nil { return pb.ErrorCode_DBError } @@ -69,7 +69,7 @@ func (this *Hero) ChangeCard(uId string, heroCfgId int32, count int32) (code pb. //获取英雄 func (this *Hero) GetHero(uid, heroId string) (*pb.DBHero, pb.ErrorCode) { - hero := this.hero.getOneHero(uid, heroId) + hero := this.modelHero.getOneHero(uid, heroId) if hero == nil { return nil, pb.ErrorCode_HeroNoExist } @@ -91,14 +91,14 @@ func (this *Hero) UpdateEquipment(hero *pb.DBHero, equip []*pb.DB_Equipment) (co } } - this.hero.mergeMainProperty(hero.Uid, hero.Id, property) - this.hero.mergeAddProperty(hero.Uid, hero.Id, addProperty) - return this.hero.setEquipment(hero.Uid, hero.Id, equipIds) + this.modelHero.mergeMainProperty(hero.Uid, hero.Id, property) + this.modelHero.mergeAddProperty(hero.Uid, hero.Id, addProperty) + return this.modelHero.setEquipment(hero.Uid, hero.Id, equipIds) } //英雄列表 func (this *Hero) GetHeroList(uid string) []*pb.DBHero { - list, err := this.hero.getHeroList(uid) + list, err := this.modelHero.getHeroList(uid) if err != nil { return nil } @@ -159,16 +159,27 @@ func (this *Hero) AddCardExp(uid string, heroId string, exp int32) (code pb.Erro } } } - // _hero.Lv = curLv - // _hero.Exp = curExp + + // 检测等级有变化 推送属性 + if curLv != _hero.Lv { + data := make(map[string]int32, 0) + preConfig := this.configure.GetHeroLv(_hero.Lv) + nowConfig := this.configure.GetHeroLv(curLv) + data["hp"] = int32(nowConfig.Hp - preConfig.Hp) + data["atk"] = int32(nowConfig.Atk - preConfig.Atk) + data["def"] = int32(nowConfig.Def - preConfig.Def) + this.modelHero.mergeMainProperty(uid, heroId, data) + } + update := map[string]interface{}{ "lv": curLv, "exp": curExp, } - if err := this.hero.modifyHeroData(uid, heroId, update); err != nil { + if err := this.modelHero.modifyHeroData(uid, heroId, update); err != nil { code = pb.ErrorCode_DBError } // 修改英雄数据 + } else { code = pb.ErrorCode_HeroNoExist return diff --git a/pb/proto/hero/hero_db.proto b/pb/proto/hero/hero_db.proto index ff12059dd..0a12ead31 100644 --- a/pb/proto/hero/hero_db.proto +++ b/pb/proto/hero/hero_db.proto @@ -29,7 +29,7 @@ message DBHero { int32 resonateNum = 18; //@go_tags(`bson:"resonateNum"`) 共鸣次数 int32 distributionResonate = 19; //@go_tags(`bson:"distributionResonate"`) 分配的共鸣能量 - map energy = 20; // @go_tags(`bson:"energy"`)能量分配到哪里 + map energy = 20; // @go_tags(`bson:"energy"`)能量分配到哪里[1,0] int32 sameCount = 21; // @go_tags(`bson:"sameCount"`) 卡片叠加数量 int32 suiteId = 22; //@go_tags(`bson:"suiteId"`) 套装Id int32 suiteExtId = 23; // go_tags(`bson:"suiteExtId"`) 扩展套装Id From 1ed01cb9b6937c8776b4399a3655e12b460a2fd7 Mon Sep 17 00:00:00 2001 From: zhaocy Date: Thu, 30 Jun 2022 19:53:30 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E6=B5=8B=E8=AF=95job1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/robot/friend.go | 2 +- cmd/robot/hero.go | 2 +- cmd/robot/job.go | 16 ++++++++++++++++ cmd/robot/login.go | 2 +- cmd/robot/notify.go | 2 +- cmd/robot/pack.go | 2 +- cmd/robot/robot.go | 10 +++++----- cmd/robot/user.go | 2 +- 8 files changed, 27 insertions(+), 11 deletions(-) create mode 100644 cmd/robot/job.go diff --git a/cmd/robot/friend.go b/cmd/robot/friend.go index de8aa0bd0..d4d0cb9ac 100644 --- a/cmd/robot/friend.go +++ b/cmd/robot/friend.go @@ -8,7 +8,7 @@ import ( var ( //friend - friendBuilders = []*builder{ + friendBuilders = []*testCase{ { //list mainType: string(comm.ModuleFriend), diff --git a/cmd/robot/hero.go b/cmd/robot/hero.go index 2ea33ac8a..15958b5ac 100644 --- a/cmd/robot/hero.go +++ b/cmd/robot/hero.go @@ -11,7 +11,7 @@ import ( var ( //hero - heroBuilders = []*builder{ + heroBuilders = []*testCase{ { desc: "英雄列表", mainType: string(comm.ModuleHero), diff --git a/cmd/robot/job.go b/cmd/robot/job.go new file mode 100644 index 000000000..bc15dcf44 --- /dev/null +++ b/cmd/robot/job.go @@ -0,0 +1,16 @@ +package robot + +type CaseNode struct { + caseName testCase //用例名 + next *CaseNode //测试用例 +} + +type LinkCase struct { + head *CaseNode +} + +func NewLinkCase() *LinkCase { + return &LinkCase{} +} + + diff --git a/cmd/robot/login.go b/cmd/robot/login.go index 11f0db9ab..0a907c2ae 100644 --- a/cmd/robot/login.go +++ b/cmd/robot/login.go @@ -35,7 +35,7 @@ func (r *Robot) BuildSecStr() string { //处理登录请求 func (r *Robot) AccountLogin() { log.Printf("区服:[%d] 账号:[%s] login...", r.opts.ServerId, r.opts.Account) - builders := []*builder{ + builders := []*testCase{ { mainType: string(comm.ModuleUser), subType: user.UserSubTypeLogin, diff --git a/cmd/robot/notify.go b/cmd/robot/notify.go index 331b4e651..61bb3fde5 100644 --- a/cmd/robot/notify.go +++ b/cmd/robot/notify.go @@ -5,7 +5,7 @@ import ( "go_dreamfactory/pb" ) -var notify_builders = []*builder{ +var notify_builders = []*testCase{ { //create mainType: comm.MainTypeNotify, diff --git a/cmd/robot/pack.go b/cmd/robot/pack.go index e5d0ef588..aeeba61b2 100644 --- a/cmd/robot/pack.go +++ b/cmd/robot/pack.go @@ -6,7 +6,7 @@ import ( ) //申明测试接口及请求和响应参数 -var pack_builders = []*builder{ +var pack_builders = []*testCase{ { //create mainType: string(comm.ModulePack), diff --git a/cmd/robot/robot.go b/cmd/robot/robot.go index 6cf465a03..953d08959 100644 --- a/cmd/robot/robot.go +++ b/cmd/robot/robot.go @@ -20,7 +20,7 @@ type Robot struct { ws *websocket.Conn opts *Options user *pb.DBUser - builders []*builder + builders []*testCase } func NewRobot(opts *Options) *Robot { @@ -67,7 +67,7 @@ func (r *Robot) Run() { select {} } -type builder struct { +type testCase struct { desc string mainType string subType string @@ -79,7 +79,7 @@ type builder struct { print func(rsp proto.Message) } -func (r *Robot) addBuilders(builders []*builder) { +func (r *Robot) addBuilders(builders []*testCase) { for _, b := range builders { if b.enabled { r.builders = append(r.builders, b) @@ -199,7 +199,7 @@ func (r *Robot) AccountRegister(account string, sid int32) { fmt.Printf("account:%s 注册成功", regRsp.Account) //登录 - var user_builders = []*builder{ + var user_builders = []*testCase{ { desc: "登录", mainType: "user", @@ -218,7 +218,7 @@ func (r *Robot) AccountRegister(account string, sid int32) { } //打印响应 -func printReply(msg *pb.UserMessage, builder *builder) { +func printReply(msg *pb.UserMessage, builder *testCase) { if m, ok := builder.rsp.(*pb.NotifyErrorNotifyPush); ok { var tt time.Duration if builder.start.IsZero() { diff --git a/cmd/robot/user.go b/cmd/robot/user.go index 1f709eb08..cd78bdd8e 100644 --- a/cmd/robot/user.go +++ b/cmd/robot/user.go @@ -7,7 +7,7 @@ import ( ) //申明测试接口及请求和响应参数 -var user_builders = []*builder{ +var user_builders = []*testCase{ { //create desc: "创角", From 435d90193682556e293e2d96279d60dcee9454cd Mon Sep 17 00:00:00 2001 From: zhaocy Date: Fri, 1 Jul 2022 13:46:30 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E6=9C=BA=E5=99=A8=E4=BA=BAjob2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/robot/friend.go | 2 +- cmd/robot/hero.go | 2 +- cmd/robot/job.go | 12 +++++++++++- cmd/robot/login.go | 2 +- cmd/robot/notify.go | 2 +- cmd/robot/pack.go | 2 +- cmd/robot/robot.go | 10 +++++----- cmd/robot/user.go | 2 +- 8 files changed, 22 insertions(+), 12 deletions(-) diff --git a/cmd/robot/friend.go b/cmd/robot/friend.go index d4d0cb9ac..47232d460 100644 --- a/cmd/robot/friend.go +++ b/cmd/robot/friend.go @@ -8,7 +8,7 @@ import ( var ( //friend - friendBuilders = []*testCase{ + friendBuilders = []*TestCase{ { //list mainType: string(comm.ModuleFriend), diff --git a/cmd/robot/hero.go b/cmd/robot/hero.go index 15958b5ac..0d9a77c36 100644 --- a/cmd/robot/hero.go +++ b/cmd/robot/hero.go @@ -11,7 +11,7 @@ import ( var ( //hero - heroBuilders = []*testCase{ + heroBuilders = []*TestCase{ { desc: "英雄列表", mainType: string(comm.ModuleHero), diff --git a/cmd/robot/job.go b/cmd/robot/job.go index bc15dcf44..52c857c25 100644 --- a/cmd/robot/job.go +++ b/cmd/robot/job.go @@ -1,7 +1,7 @@ package robot type CaseNode struct { - caseName testCase //用例名 + testCase TestCase //用例名 next *CaseNode //测试用例 } @@ -13,4 +13,14 @@ func NewLinkCase() *LinkCase { return &LinkCase{} } +func (this *LinkCase) isEmpty() bool { + return this.head == nil +} +func (this *LinkCase) append(testCase *TestCase) { + newNode := &CaseNode{testCase: *testCase} + if this.isEmpty() { + this.head = newNode + } + +} diff --git a/cmd/robot/login.go b/cmd/robot/login.go index 0a907c2ae..7100eaf65 100644 --- a/cmd/robot/login.go +++ b/cmd/robot/login.go @@ -35,7 +35,7 @@ func (r *Robot) BuildSecStr() string { //处理登录请求 func (r *Robot) AccountLogin() { log.Printf("区服:[%d] 账号:[%s] login...", r.opts.ServerId, r.opts.Account) - builders := []*testCase{ + builders := []*TestCase{ { mainType: string(comm.ModuleUser), subType: user.UserSubTypeLogin, diff --git a/cmd/robot/notify.go b/cmd/robot/notify.go index 61bb3fde5..effd2412e 100644 --- a/cmd/robot/notify.go +++ b/cmd/robot/notify.go @@ -5,7 +5,7 @@ import ( "go_dreamfactory/pb" ) -var notify_builders = []*testCase{ +var notify_builders = []*TestCase{ { //create mainType: comm.MainTypeNotify, diff --git a/cmd/robot/pack.go b/cmd/robot/pack.go index aeeba61b2..565b8b2dc 100644 --- a/cmd/robot/pack.go +++ b/cmd/robot/pack.go @@ -6,7 +6,7 @@ import ( ) //申明测试接口及请求和响应参数 -var pack_builders = []*testCase{ +var pack_builders = []*TestCase{ { //create mainType: string(comm.ModulePack), diff --git a/cmd/robot/robot.go b/cmd/robot/robot.go index 953d08959..c1790faed 100644 --- a/cmd/robot/robot.go +++ b/cmd/robot/robot.go @@ -20,7 +20,7 @@ type Robot struct { ws *websocket.Conn opts *Options user *pb.DBUser - builders []*testCase + builders []*TestCase } func NewRobot(opts *Options) *Robot { @@ -67,7 +67,7 @@ func (r *Robot) Run() { select {} } -type testCase struct { +type TestCase struct { desc string mainType string subType string @@ -79,7 +79,7 @@ type testCase struct { print func(rsp proto.Message) } -func (r *Robot) addBuilders(builders []*testCase) { +func (r *Robot) addBuilders(builders []*TestCase) { for _, b := range builders { if b.enabled { r.builders = append(r.builders, b) @@ -199,7 +199,7 @@ func (r *Robot) AccountRegister(account string, sid int32) { fmt.Printf("account:%s 注册成功", regRsp.Account) //登录 - var user_builders = []*testCase{ + var user_builders = []*TestCase{ { desc: "登录", mainType: "user", @@ -218,7 +218,7 @@ func (r *Robot) AccountRegister(account string, sid int32) { } //打印响应 -func printReply(msg *pb.UserMessage, builder *testCase) { +func printReply(msg *pb.UserMessage, builder *TestCase) { if m, ok := builder.rsp.(*pb.NotifyErrorNotifyPush); ok { var tt time.Duration if builder.start.IsZero() { diff --git a/cmd/robot/user.go b/cmd/robot/user.go index cd78bdd8e..c11d030f3 100644 --- a/cmd/robot/user.go +++ b/cmd/robot/user.go @@ -7,7 +7,7 @@ import ( ) //申明测试接口及请求和响应参数 -var user_builders = []*testCase{ +var user_builders = []*TestCase{ { //create desc: "创角", From 78ee56dedab0cf931d9aacecb19695b54caad682 Mon Sep 17 00:00:00 2001 From: zhaocy Date: Fri, 1 Jul 2022 18:49:48 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B1=9E=E6=80=A7key?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/robot/friend.go | 10 ++-- cmd/robot/hero.go | 2 +- cmd/robot/job.go | 26 ---------- cmd/robot/linkcase.go | 95 ++++++++++++++++++++++++++++++++++++ cmd/robot/linkcase_test.go | 32 ++++++++++++ cmd/robot/robot.go | 29 +++++++---- cmd/robot/user.go | 8 +-- modules/friend/api_list.go | 2 +- modules/friend/api_search.go | 4 +- modules/hero/model_hero.go | 22 +++++++-- 10 files changed, 179 insertions(+), 51 deletions(-) delete mode 100644 cmd/robot/job.go create mode 100644 cmd/robot/linkcase.go create mode 100644 cmd/robot/linkcase_test.go diff --git a/cmd/robot/friend.go b/cmd/robot/friend.go index 47232d460..5c57ef68c 100644 --- a/cmd/robot/friend.go +++ b/cmd/robot/friend.go @@ -11,11 +11,12 @@ var ( friendBuilders = []*TestCase{ { //list + Desc: "好友列表", mainType: string(comm.ModuleFriend), subType: friend.FriendSubTypeList, req: &pb.FriendListReq{}, rsp: &pb.FriendListRsp{}, - // enabled: true, + enabled: true, }, { //blacklist mainType: string(comm.ModuleFriend), @@ -29,7 +30,8 @@ var ( req: &pb.FriendSearchReq{ NickName: "", //设置测试参数 }, - rsp: &pb.FriendSearchRsp{}, + rsp: &pb.FriendSearchRsp{}, + enabled: true, }, { //apply mainType: string(comm.ModuleFriend), @@ -62,8 +64,8 @@ var ( req: &pb.FriendBlackAddReq{ FriendId: "0_62be9f40f67327fb53039b70", }, - rsp: &pb.FriendBlackAddRsp{}, - enabled: true, + rsp: &pb.FriendBlackAddRsp{}, + // enabled: true, }, { //delblack mainType: string(comm.ModuleFriend), diff --git a/cmd/robot/hero.go b/cmd/robot/hero.go index 0d9a77c36..e131373af 100644 --- a/cmd/robot/hero.go +++ b/cmd/robot/hero.go @@ -13,7 +13,7 @@ var ( //hero heroBuilders = []*TestCase{ { - desc: "英雄列表", + Desc: "英雄列表", mainType: string(comm.ModuleHero), subType: hero.HeroSubTypeList, req: &pb.HeroListReq{}, diff --git a/cmd/robot/job.go b/cmd/robot/job.go deleted file mode 100644 index 52c857c25..000000000 --- a/cmd/robot/job.go +++ /dev/null @@ -1,26 +0,0 @@ -package robot - -type CaseNode struct { - testCase TestCase //用例名 - next *CaseNode //测试用例 -} - -type LinkCase struct { - head *CaseNode -} - -func NewLinkCase() *LinkCase { - return &LinkCase{} -} - -func (this *LinkCase) isEmpty() bool { - return this.head == nil -} - -func (this *LinkCase) append(testCase *TestCase) { - newNode := &CaseNode{testCase: *testCase} - if this.isEmpty() { - this.head = newNode - } - -} diff --git a/cmd/robot/linkcase.go b/cmd/robot/linkcase.go new file mode 100644 index 000000000..ef0a3936f --- /dev/null +++ b/cmd/robot/linkcase.go @@ -0,0 +1,95 @@ +package robot + +import ( + "fmt" + "log" +) + +type CaseNode struct { + testCase *TestCase //用例名 + Next *CaseNode //测试用例 +} + +type LinkCase struct { + Head *CaseNode + force bool +} + +func NewLinkCase() *LinkCase { + return &LinkCase{} +} + +func NewDefault(testCast *TestCase) *LinkCase { + return &LinkCase{ + force: true, + Head: &CaseNode{testCase: testCast}, + } +} + +func (this *LinkCase) isEmpty() bool { + return this.Head == nil +} + +func (this *LinkCase) lastNode() *CaseNode { + cur := this.Head + for cur.Next != nil { + cur = cur.Next + } + return cur +} + +//尾部追加 +func (this *LinkCase) Append(testCase *TestCase) { + newNode := &CaseNode{testCase: testCase} + if this.isEmpty() { + this.Head = newNode + } else { + this.lastNode().Next = newNode + } +} + +//头部添加 +func (this *LinkCase) Unshift(testCase *TestCase) { + if this.force { + log.Fatal("use `NewLinkCase` method create link if you want to use `Unshift` opt") + return + } + newNode := &CaseNode{testCase: testCase} + newNode.Next = this.Head + this.Head = newNode +} + +func (this *LinkCase) length() int { + cur := this.Head + count := 0 + for cur.Next != nil { + cur = cur.Next + count++ + } + return count +} + +func (this *LinkCase) Insert(index int, testCase *TestCase) { + if this.force { + log.Fatal("use `NewLinkCase` method create link if you want to use `Insert` opt") + return + } + if index < 0 { + this.Unshift(testCase) + } else if index > this.length() { + this.Append(testCase) + } else { + preNode := this.Head + count := 0 + for count < index-1 { + preNode = preNode.Next + count++ + } + newNode := &CaseNode{testCase: testCase, Next: preNode.Next} + preNode.Next = newNode + } +} + +func (this *CaseNode) String() string { + return fmt.Sprintf("value=%v", this.testCase.Desc) +} diff --git a/cmd/robot/linkcase_test.go b/cmd/robot/linkcase_test.go new file mode 100644 index 000000000..fc1a98950 --- /dev/null +++ b/cmd/robot/linkcase_test.go @@ -0,0 +1,32 @@ +package robot_test + +import ( + "fmt" + "go_dreamfactory/cmd/robot" + "sync" + "testing" +) + +func TestJob(t *testing.T) { + // link := robot.NewLinkCase() + link := robot.NewDefault(&robot.TestCase{Desc: "login"}) + link.Append(&robot.TestCase{Desc: "aa"}) + // link.Append(&robot.TestCase{Desc: "bb"}) + + // link.Unshift(&robot.TestCase{Desc: "cc"}) + // link.Unshift(&robot.TestCase{Desc: "dd"}) + + // link.Insert(1, &robot.TestCase{Desc: "ee"}) + cur := link.Head + for cur != nil { + fmt.Println(cur) + cur = cur.Next + } +} + +func TestGJo(t *testing.T) { + var wg sync.WaitGroup + + wg.Add(1) + +} diff --git a/cmd/robot/robot.go b/cmd/robot/robot.go index c1790faed..a3a54be59 100644 --- a/cmd/robot/robot.go +++ b/cmd/robot/robot.go @@ -9,6 +9,7 @@ import ( "io/ioutil" "log" "net/http" + "sync" "time" "github.com/gorilla/websocket" @@ -20,7 +21,10 @@ type Robot struct { ws *websocket.Conn opts *Options user *pb.DBUser - builders []*TestCase + builders []*TestCase //测试用例 + + linkCase *LinkCase //测试用例链,适应于用例跑批 + wg sync.WaitGroup } func NewRobot(opts *Options) *Robot { @@ -29,8 +33,9 @@ func NewRobot(opts *Options) *Robot { log.Fatal(err) } r := &Robot{ - ws: ws, - opts: opts, + ws: ws, + opts: opts, + linkCase: NewLinkCase(), } return r @@ -50,7 +55,7 @@ func (r *Robot) Run() { //处理响应 go func() { - for { + for { var msg *pb.UserMessage = &pb.UserMessage{} _, data, err := r.ws.ReadMessage() if err != nil { @@ -64,11 +69,12 @@ func (r *Robot) Run() { } }() - select {} + // select {} + r.wg.Wait() } type TestCase struct { - desc string + Desc string mainType string subType string req proto.Message @@ -91,6 +97,7 @@ func (r *Robot) addBuilders(builders []*TestCase) { func (r *Robot) handleReq() { for _, b := range r.builders { if b.req != nil && !b.requested { + r.wg.Add(1) time.Sleep(time.Second * 1) b.requested = true b.start = time.Now() @@ -115,7 +122,7 @@ func (r *Robot) handleRsp(msg *pb.UserMessage) { if b.print == nil { printReply(msg, b) } else { - fmt.Printf("===== %s [%s.%s] =====\n", b.desc, msg.MainType, msg.SubType) + fmt.Printf("===== %s [%s.%s] =====\n", b.Desc, msg.MainType, msg.SubType) b.print(b.rsp) fmt.Println("==============================") } @@ -127,6 +134,8 @@ func (r *Robot) handleRsp(msg *pb.UserMessage) { r.builders = append(r.builders[:i], r.builders[i+1:]...) } } + + r.wg.Done() } } @@ -201,7 +210,7 @@ func (r *Robot) AccountRegister(account string, sid int32) { //登录 var user_builders = []*TestCase{ { - desc: "登录", + Desc: "登录", mainType: "user", subType: "login", req: &pb.UserLoginReq{ @@ -226,9 +235,9 @@ func printReply(msg *pb.UserMessage, builder *TestCase) { } else { tt = time.Since(builder.start) } - log.Printf("rsp %s [%v] [%s.%s] [%v:%v]", builder.desc, tt, m.ReqMainType, m.ReqSubType, int32(m.Code), m.Data) + log.Printf("rsp %s [%v] [%s.%s] [%v:%v]", builder.Desc, tt, m.ReqMainType, m.ReqSubType, int32(m.Code), m.Data) } else { - log.Printf("rsp %s [%v] [%s.%s] [%v]", builder.desc, time.Since(builder.start), msg.MainType, msg.SubType, builder.rsp) + log.Printf("rsp %s [%v] [%s.%s] [%v]", builder.Desc, time.Since(builder.start), msg.MainType, msg.SubType, builder.rsp) } } diff --git a/cmd/robot/user.go b/cmd/robot/user.go index c11d030f3..e69d0d740 100644 --- a/cmd/robot/user.go +++ b/cmd/robot/user.go @@ -10,16 +10,16 @@ import ( var user_builders = []*TestCase{ { //create - desc: "创角", + Desc: "创角", mainType: string(comm.ModuleUser), subType: user.UserSubTypeCreate, req: &pb.UserCreateReq{ //设置请求参数 NickName: "乐谷6301", }, - rsp: &pb.UserCreateRsp{}, + rsp: &pb.UserCreateRsp{}, // enabled: true, }, { - desc: "添加资源", + Desc: "添加资源", mainType: string(comm.ModuleUser), subType: user.UserSubTypeAddRes, req: &pb.UserAddResReq{ //设置请求参数 @@ -27,7 +27,7 @@ var user_builders = []*TestCase{ Count: 100, }, rsp: &pb.UserAddResResp{}, - // enabled: true, + enabled: true, }, } diff --git a/modules/friend/api_list.go b/modules/friend/api_list.go index e41bfdfe4..dec98cbd3 100644 --- a/modules/friend/api_list.go +++ b/modules/friend/api_list.go @@ -12,7 +12,7 @@ func (this *apiComp) ListCheck(session comm.IUserSession, req *pb.FriendListReq) } //好友列表 -func (this *apiComp) List(session comm.IUserSession, chk map[string]interface{}, req *pb.FriendListReq) (code pb.ErrorCode, data proto.Message) { +func (this *apiComp) List(session comm.IUserSession, req *pb.FriendListReq) (code pb.ErrorCode, data proto.Message) { var ( self *pb.DBFriend rsp *pb.FriendListRsp diff --git a/modules/friend/api_search.go b/modules/friend/api_search.go index b1de7dc9d..eada9698d 100644 --- a/modules/friend/api_search.go +++ b/modules/friend/api_search.go @@ -7,9 +7,9 @@ import ( "google.golang.org/protobuf/proto" ) -func (this *apiComp) SearchCheck(session comm.IUserSession, req *pb.FriendSearchReq) (code comm.ErrorCode) { +func (this *apiComp) SearchCheck(session comm.IUserSession, req *pb.FriendSearchReq) (code pb.ErrorCode) { if req.NickName == "" { - code = comm.ErrorCode{Code: pb.ErrorCode_FriendSearchNameEmpty} + code = pb.ErrorCode_FriendSearchNameEmpty return } return diff --git a/modules/hero/model_hero.go b/modules/hero/model_hero.go index 83c8837e2..9a80d1680 100644 --- a/modules/hero/model_hero.go +++ b/modules/hero/model_hero.go @@ -165,6 +165,14 @@ func (this *ModelHero) mergeMainProperty(uid, heroId string, data map[string]int hero.Property[comm.Hp] += data[comm.Hp] hero.Property[comm.Atk] += data[comm.Atk] hero.Property[comm.Def] += data[comm.Def] + update := map[string]interface{}{ + comm.Hp: hero.Property[comm.Hp], + comm.Atk: hero.Property[comm.Atk], + comm.Def: hero.Property[comm.Def], + } + if err := this.modifyHeroData(uid, heroId, update); err != nil { + log.Errorf("mergeMainProperty err %v", err) + } } //合并附加属性 @@ -173,9 +181,17 @@ func (this *ModelHero) mergeAddProperty(uid, heroId string, data map[string]int3 if hero == nil { return } - hero.AddProperty[comm.Hp] = data[comm.Hp] - hero.AddProperty[comm.Atk] = data[comm.Atk] - hero.AddProperty[comm.Def] = data[comm.Def] + hero.AddProperty[comm.HpPro] += data[comm.HpPro] + hero.AddProperty[comm.AtkPro] += data[comm.AtkPro] + hero.AddProperty[comm.DefPro] += data[comm.DefPro] + update := map[string]interface{}{ + comm.HpPro: hero.AddProperty[comm.HpPro], + comm.AtkPro: hero.AddProperty[comm.AtkPro], + comm.DefPro: hero.AddProperty[comm.DefPro], + } + if err := this.modifyHeroData(uid, heroId, update); err != nil { + log.Errorf("mergeAddProperty err %v", err) + } } //属性计算 - 暂时放在modelHero里实现