From 910568d2f499bfeed521eadcaf58ee2bf5b0697f Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Fri, 3 Mar 2023 10:47:57 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=83=E5=8A=9F=E6=8E=A5=E5=8F=A3=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/hero/module.go | 72 +++++++++++++++++------------------------- 1 file changed, 29 insertions(+), 43 deletions(-) diff --git a/modules/hero/module.go b/modules/hero/module.go index 7418b7a85..437c9b740 100644 --- a/modules/hero/module.go +++ b/modules/hero/module.go @@ -321,22 +321,13 @@ func (this *Hero) AddHeroExp(session comm.IUserSession, heroObjID string, exp in func (this *Hero) KungFuHero(session comm.IUserSession, heroObjID string, bKongfu bool) (code pb.ErrorCode) { var ( _hero *pb.DBHero - newhero *pb.DBHero _changeHero []*pb.DBHero // 变化的英雄 ) - if this.IsCross() { - for _, tag := range db.GetServerTags() { - conn, err1 := db.ServerDBConn(tag) // 遍历连接对象 - if err1 != nil { - continue - } - sr := conn.Mgo.FindOne(comm.TableHero, bson.M{ - "_id": heroObjID, - }) - _hero = &pb.DBHero{} - if err := sr.Decode(_hero); err != nil { - this.modelHero.moduleHero.Errorf("find hero error: %v", err) + if this.IsCross() { + if model, err := this.GetDBModuleByUid(session.GetUserId(), this.modelHero.TableName, this.modelHero.Expired); err == nil { + if err := model.GetListObj(session.GetUserId(), heroObjID, _hero); err != nil { + this.Errorf("err:%v", err) return } } @@ -351,41 +342,36 @@ func (this *Hero) KungFuHero(session comm.IUserSession, heroObjID string, bKongf code = pb.ErrorCode_HeroAlreadyKongFuStatus // 已经是练功状态 return } - if !bKongfu { - _heroMap := map[string]interface{}{ - "status": pb.HeroType_HeroTypeNil, + + if !bKongfu && _hero.Status == pb.HeroType_HeroTypeNil { + return + } + if bKongfu { + _hero.Status = pb.HeroType_HeroTypeKongFu + } else { + _hero.Status = pb.HeroType_HeroTypeNil + } + + _heroMap := map[string]interface{}{ + "status": _hero.Status, + } + + if this.IsCross() { + if model, err := this.GetDBModuleByUid(session.GetUserId(), this.modelHero.TableName, this.modelHero.Expired); err == nil { + if err := model.ChangeList(session.GetUserId(), heroObjID, _heroMap); err != nil { + this.Errorf("err:%v", err) + code = pb.ErrorCode_DBError + return + } } - err1 := this.modelHero.ChangeList(session.GetUserId(), heroObjID, _heroMap) // 修改英雄信息 - if err1 != nil { - this.Errorf("update hero skill failed:%v", err1) + } else { + if err := this.modelHero.ChangeList(session.GetUserId(), heroObjID, _heroMap); err != nil { // 修改英雄信息 + this.Errorf("err:%v", err) code = pb.ErrorCode_DBError return } - _hero.Status = pb.HeroType_HeroTypeNil - _changeHero = append(_changeHero, _hero) - session.SendMsg(string(this.GetType()), "change", &pb.HeroChangePush{List: _changeHero}) - return - } - // if _hero.SameCount > 1 { - // _hero.SameCount -= 1 - // newHero := this.modelHero.CloneNewHero(session.GetUserId(), _hero) - // _changeHero = append(_changeHero, newHero) - // } - _heroMap := map[string]interface{}{ - "status": pb.HeroType_HeroTypeKongFu, - } - _hero.Status = pb.HeroType_HeroTypeKongFu - //_hero.SameCount = 1 - err1 := this.modelHero.ChangeList(session.GetUserId(), heroObjID, _heroMap) // 修改英雄信息 - if err1 != nil { - this.Errorf("update hero skill failed:%v", err1) - code = pb.ErrorCode_DBError - return - } - _changeHero = append(_changeHero, _hero) // 升级后的英雄 hero id 不变 - if newhero != nil { - _changeHero = append(_changeHero, newhero) // 原来的英雄 只是数量变化了 } + _changeHero = append(_changeHero, _hero) session.SendMsg(string(this.GetType()), "change", &pb.HeroChangePush{List: _changeHero}) return