diff --git a/comm/imodule.go b/comm/imodule.go index 8d1022f86..cc11cc821 100644 --- a/comm/imodule.go +++ b/comm/imodule.go @@ -52,6 +52,8 @@ type ( CleanData(uid string) // 获取指定星级等级的英雄 GetSpecifiedHero(session IUserSession, heroConfId string, star, lv, amount int32) (code pb.ErrorCode) + // 英雄加经验 + AddHeroExp(session IUserSession, heroObjID string, exp int32) (code pb.ErrorCode) } //玩家 diff --git a/modules/hero/module.go b/modules/hero/module.go index 1c01452a5..e9a91c3cd 100644 --- a/modules/hero/module.go +++ b/modules/hero/module.go @@ -224,3 +224,25 @@ func (this *Hero) CreateRepeatHeros(session comm.IUserSession, heros map[string] return } +func (this *ModelHero) AddHeroExp(session comm.IUserSession, heroObjID string, exp int32) (code pb.ErrorCode) { + var ( + _hero *pb.DBHero + newhero *pb.DBHero + _changeHero []*pb.DBHero // 变化的英雄 + ) + _hero, code = this.moduleHero.GetHeroByObjID(session.GetUserId(), heroObjID) + if code != pb.ErrorCode_Success { + return + } + newhero, code = this.AddCardExp(session.GetUserId(), _hero, exp) + if code != pb.ErrorCode_Success { + return + } + _changeHero = append(_changeHero, _hero) // 升级后的英雄 hero id 不变 + if newhero != nil { + _changeHero = append(_changeHero, newhero) // 原来的英雄 只是数量变化了 + } + _changeHero = append(_changeHero, _hero) + session.SendMsg(string(this.moduleHero.GetType()), "change", &pb.HeroChangePush{List: _changeHero}) + return +}