From 949037c4b948f8ad143a11226dd75d73c07f2f13 Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Wed, 1 Feb 2023 18:26:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8D=E5=86=8D=E5=86=99=E5=9B=BE=E9=89=B4?= =?UTF-8?q?=E6=95=B0=E6=8D=AE,=E5=8F=AF=E9=80=9A=E8=BF=87=E8=8B=B1?= =?UTF-8?q?=E9=9B=84=E5=88=97=E8=A1=A8=E6=95=B0=E6=8D=AE=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/hero/model_hero.go | 3 ++- modules/hero/module.go | 53 ++++++++++++++------------------------ 2 files changed, 21 insertions(+), 35 deletions(-) diff --git a/modules/hero/model_hero.go b/modules/hero/model_hero.go index 6ab0b28eb..f7b999c1c 100644 --- a/modules/hero/model_hero.go +++ b/modules/hero/model_hero.go @@ -903,6 +903,7 @@ func (this *ModelHero) createHero(session comm.IUserSession, heroCfgId string, c this.moduleHero.Errorf("err:%v", err) } } + bFirst = true for _, obj := range heros { if obj.HeroID == heroCfgId { hero = obj @@ -910,7 +911,7 @@ func (this *ModelHero) createHero(session comm.IUserSession, heroCfgId string, c break } } - if hero != nil { // 没有当前英雄 + if bFirst { // 没有当前英雄 count -= 1 hero, err = this.initHeroOverlying(uid, heroCfgId, 1) if err != nil { diff --git a/modules/hero/module.go b/modules/hero/module.go index 9c977d6b3..3c3d5826b 100644 --- a/modules/hero/module.go +++ b/modules/hero/module.go @@ -76,10 +76,9 @@ func (this *Hero) Start() (err error) { } //创建单个叠加英雄 -func (this *Hero) createRepeatHero(session comm.IUserSession, heroCfgId string, num int32) (hero *pb.DBHero, code pb.ErrorCode) { +func (this *Hero) createRepeatHero(session comm.IUserSession, heroCfgId string, num int32) (hero *pb.DBHero, bFirst bool, code pb.ErrorCode) { var ( - err error - bFirst bool + err error ) hero, bFirst, err = this.modelHero.createHero(session, heroCfgId, num) if err == nil && bFirst { @@ -270,47 +269,33 @@ func (this *Hero) CreateRepeatHeros(session comm.IUserSession, heros map[string] var ( changeList []*pb.DBHero firstGet []string + bFirst bool ) for heroCfgId, num := range heros { if num == 0 { // 数量为0 不做处理 continue } - if hero, code = this.createRepeatHero(session, heroCfgId, num); code != pb.ErrorCode_Success { + if hero, bFirst, code = this.createRepeatHero(session, heroCfgId, num); code != pb.ErrorCode_Success { this.Errorf("create hero %s failed", heroCfgId) - return + continue } - if result, err1 := this.ModuleUser.GetUserExpand(session.GetUserId()); err1 == nil { - initUpdate := map[string]interface{}{} - sz := result.GetTujian() - if len(sz) == 0 { - sz = make(map[string]int32, 0) - } - - if _, ok := result.GetTujian()[heroCfgId]; !ok { - heroConf := this.modelHero.moduleHero.configure.GetHeroConfig(heroCfgId) - if heroConf != nil { - if heroConf.Handbook == -1 { - sz[heroCfgId] = 0 - } else { - sz[heroCfgId] = 1 - } - initUpdate["tujian"] = sz - this.ModuleUser.ChangeUserExpand(session.GetUserId(), initUpdate) - firstGet = append(firstGet, heroCfgId) - } - changeList = append(changeList, hero) - } + if bFirst { + firstGet = append(firstGet, heroCfgId) + changeList = append(changeList, hero) } } - if bPush && len(changeList) > 0 { //推送 - session.SendMsg("hero", "change", &pb.HeroChangePush{List: changeList}) - } - // 首次获得英雄 则推送 - if len(firstGet) > 0 { - session.SendMsg("hero", "firstget", &pb.HeroFirstGetPush{ - HeroId: firstGet, - }) + if bPush { //推送 + if len(changeList) > 0 { + session.SendMsg("hero", "change", &pb.HeroChangePush{List: changeList}) + } + + // 首次获得英雄 则推送 + if len(firstGet) > 0 { + session.SendMsg("hero", "firstget", &pb.HeroFirstGetPush{ + HeroId: firstGet, + }) + } } return