练功接口优化

This commit is contained in:
meixiongfeng 2023-03-03 10:47:57 +08:00
parent 9c11102b5a
commit 910568d2f4

View File

@ -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) { func (this *Hero) KungFuHero(session comm.IUserSession, heroObjID string, bKongfu bool) (code pb.ErrorCode) {
var ( var (
_hero *pb.DBHero _hero *pb.DBHero
newhero *pb.DBHero
_changeHero []*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{ if this.IsCross() {
"_id": heroObjID, 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 {
_hero = &pb.DBHero{} this.Errorf("err:%v", err)
if err := sr.Decode(_hero); err != nil {
this.modelHero.moduleHero.Errorf("find hero error: %v", err)
return return
} }
} }
@ -351,41 +342,36 @@ func (this *Hero) KungFuHero(session comm.IUserSession, heroObjID string, bKongf
code = pb.ErrorCode_HeroAlreadyKongFuStatus // 已经是练功状态 code = pb.ErrorCode_HeroAlreadyKongFuStatus // 已经是练功状态
return return
} }
if !bKongfu {
_heroMap := map[string]interface{}{ if !bKongfu && _hero.Status == pb.HeroType_HeroTypeNil {
"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) // 修改英雄信息 } else {
if err1 != nil { if err := this.modelHero.ChangeList(session.GetUserId(), heroObjID, _heroMap); err != nil { // 修改英雄信息
this.Errorf("update hero skill failed:%v", err1) this.Errorf("err:%v", err)
code = pb.ErrorCode_DBError code = pb.ErrorCode_DBError
return 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) _changeHero = append(_changeHero, _hero)
session.SendMsg(string(this.GetType()), "change", &pb.HeroChangePush{List: _changeHero}) session.SendMsg(string(this.GetType()), "change", &pb.HeroChangePush{List: _changeHero})
return return