diff --git a/comm/imodule.go b/comm/imodule.go index 0ac10a8b0..a8bef5354 100644 --- a/comm/imodule.go +++ b/comm/imodule.go @@ -94,7 +94,7 @@ type ( GetAllMaxHero(session IUserSession) (code pb.ErrorCode) // 教习登记 - RegisterInstructor(session IUserSession, heroCid string, registerId int32) (code pb.ErrorCode) + RegisterInstructor(session IUserSession, heroOid string, registerId int32) (code pb.ErrorCode) } //玩家 diff --git a/modules/hero/module.go b/modules/hero/module.go index 1cc945a6f..60c235618 100644 --- a/modules/hero/module.go +++ b/modules/hero/module.go @@ -798,24 +798,30 @@ func (this *Hero) InRange(heroRecord *pb.DBHeroRecord, strPool []string, update return } -func (this *Hero) RegisterInstructor(session comm.IUserSession, heroCid string, fulllvenr int32) (code pb.ErrorCode) { - list := this.GetHeroList(session.GetUserId()) - for _, v := range list { - if v.HeroID == heroCid && v.Fulllvenr == 0 { - v.Fulllvenr = fulllvenr - _heroMap := map[string]interface{}{ - "fulllvenr": v.Fulllvenr, - } - if err := this.modelHero.ChangeList(session.GetUserId(), v.Id, _heroMap); err != nil { - code = pb.ErrorCode_DBError - return - } - return - } else { - code = pb.ErrorCode_HeroIsRegister // 英雄已经注册过 +func (this *Hero) RegisterInstructor(session comm.IUserSession, heroOid string, fulllvenr int32) (code pb.ErrorCode) { + _hero, code := this.GetHeroByObjID(session.GetUserId(), heroOid) + if code != pb.ErrorCode_Success { + return + } + + if _hero.Fulllvenr == 0 { + // 校验有没有满级 + if _hero.Lv < _hero.Star*comm.HeroStarLvRatio { + code = pb.ErrorCode_HeroInsufficientLv // 必须满级 return } + _hero.Fulllvenr = fulllvenr + _heroMap := map[string]interface{}{ + "fulllvenr": _hero.Fulllvenr, + } + if err := this.modelHero.ChangeList(session.GetUserId(), _hero.Id, _heroMap); err != nil { + code = pb.ErrorCode_DBError + return + } + + } else { + code = pb.ErrorCode_HeroIsRegister // 英雄已经注册过 + return } - code = pb.ErrorCode_HeroNoExist // 英雄不存在 return } diff --git a/modules/mail/model_mail.go b/modules/mail/model_mail.go index 5a655e2f4..2d17c4754 100644 --- a/modules/mail/model_mail.go +++ b/modules/mail/model_mail.go @@ -49,8 +49,8 @@ func (this *modelMail) MailQueryUserMail(uId string) (mail []*pb.DBMailData, err } // 插入一封新的邮件 -func (this *modelMail) MailInsertUserMail(mail *pb.DBMailData) (err error) { +func (this *modelMail) MailInsertUserMail(mail *pb.DBMailData) (err error) { mail.ObjId = primitive.NewObjectID().Hex() mail.Check = false mail.Reward = true diff --git a/pb/errorcode.pb.go b/pb/errorcode.pb.go index d6ebed969..ce61e5688 100644 --- a/pb/errorcode.pb.go +++ b/pb/errorcode.pb.go @@ -132,6 +132,7 @@ const ( ErrorCode_HeroAlreadyKongFuStatus ErrorCode = 1324 // 已经是练功状态 ErrorCode_HeroLvNoEnough ErrorCode = 1325 // 英雄等级不足 ErrorCode_HeroIsRegister ErrorCode = 1326 // 英雄已经登记过 + ErrorCode_HeroInsufficientLv ErrorCode = 1327 // 英雄等级不足 // equipment ErrorCode_EquipmentOnFoundEquipment ErrorCode = 1400 // 未找到武器 ErrorCode_EquipmentLvlimitReached ErrorCode = 1401 // 武器等级已达上限