练功接口优化
This commit is contained in:
parent
9c11102b5a
commit
910568d2f4
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user