From d168499bfb9fdf49f7dc1350e2d85f52dd92ab9f Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Wed, 27 Sep 2023 17:04:24 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E8=BF=9C=E5=BE=81=E5=8F=8C=E5=80=8Dboss?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/activity/module.go | 9 +++++++++ modules/items/module.go | 3 +++ modules/stonehenge/api_event.go | 24 ++++++++++++------------ modules/stonehenge/api_finish.go | 12 +++++++++++- 4 files changed, 35 insertions(+), 13 deletions(-) diff --git a/modules/activity/module.go b/modules/activity/module.go index 5a56a551b..b5313a426 100644 --- a/modules/activity/module.go +++ b/modules/activity/module.go @@ -240,11 +240,20 @@ func (this *Activity) HDCelebration(session comm.IUserSession, systemtype int32, } } if conf, err := this.configure.GetHDCelebration(list.Val); err == nil { + bfound := false for _, v1 := range conf.Bosstype { if v1 == 0 { // bosstype 为0 表示所有的boss 类型都算 bosstype = 0 + bfound = true break } + if v1 == bosstype { + bfound = true + break + } + } + if !bfound { + return false } if conf.Systemtype == systemtype { list.Gotarr[bosstype] += 1 diff --git a/modules/items/module.go b/modules/items/module.go index d1c3ebcc5..d321a4744 100644 --- a/modules/items/module.go +++ b/modules/items/module.go @@ -385,6 +385,9 @@ func (this *Items) CleanItemById(session comm.IUserSession, t string) (errdata * } if len(itmes) > 0 { this.modelItems.DeleteUserPack(session.GetUserId(), itmes...) + for _, v := range itmes { + v.Amount = 0 + } this.itemsChangePush(session, itmes) //推送道具背包变化 } return diff --git a/modules/stonehenge/api_event.go b/modules/stonehenge/api_event.go index cc503c06f..8242b9157 100644 --- a/modules/stonehenge/api_event.go +++ b/modules/stonehenge/api_event.go @@ -441,18 +441,18 @@ func (this *apiComp) Event(session comm.IUserSession, req *pb.StonehengeEventReq } } - if stone.Rooms.Complete { // 完成关卡 发放当前关奖励 - if conf := this.module.configure.GetStageConfByStageid(stone.StageID, stone.CurRoomIndes); conf != nil { - if len(conf.FirstReward) > 0 { - if errdata, reward = this.module.DispenseAtno(session, conf.FirstReward, true); errdata != nil { - return - } - } - } - // 记录首通 - // stone.Reward[stone.StageID] = true - // update["reward"] = stone.Reward - } + // if stone.Rooms.Complete { // 完成关卡 发放当前关奖励 + // if conf := this.module.configure.GetStageConfByStageid(stone.StageID, stone.CurRoomIndes); conf != nil { + // if len(conf.FirstReward) > 0 { + // if errdata, reward = this.module.DispenseAtno(session, conf.FirstReward, true); errdata != nil { + // return + // } + // } + // } + // // 记录首通 + // // stone.Reward[stone.StageID] = true + // // update["reward"] = stone.Reward + // } if len(eventConf.CostItem) > 0 { if errdata = this.module.ConsumeRes(session, eventConf.CostItem, true); errdata != nil { //真正的消耗 return diff --git a/modules/stonehenge/api_finish.go b/modules/stonehenge/api_finish.go index 9c4e0cc77..8f6fa626b 100644 --- a/modules/stonehenge/api_finish.go +++ b/modules/stonehenge/api_finish.go @@ -20,6 +20,7 @@ func (this *apiComp) Finish(session comm.IUserSession, req *pb.StonehengeFinishR err error curintegral int32 atno []*pb.UserAtno + reward []*pb.UserAtno ) update = make(map[string]interface{}) if errdata = this.FinishCheck(session, req); errdata != nil { @@ -49,7 +50,16 @@ func (this *apiComp) Finish(session comm.IUserSession, req *pb.StonehengeFinishR } } } - + if stone.Rooms.Complete { // 完成关卡 发放当前关奖励 + if conf := this.module.configure.GetStageConfByStageid(stone.StageID, 1); conf != nil { + if len(conf.FirstReward) > 0 { + if errdata, reward = this.module.DispenseAtno(session, conf.FirstReward, true); errdata != nil { + return + } + atno = append(atno, reward...) + } + } + } stone.StageID = 0 update["stageID"] = stone.StageID stone.CurRoomIndes = 0 From e9975bb5918fdfc627dd617a4bcd31e75995d8b9 Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Wed, 27 Sep 2023 17:38:41 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=88=98=E6=96=97=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/guildgve/api_challengefinish.go | 8 +++++--- modules/hunting/api_challengeover.go | 2 +- modules/mainline/api_challengeover.go | 2 +- modules/pagoda/api_challengeover.go | 4 ++-- modules/pagoda/api_racechallengeover.go | 2 +- modules/stonehenge/api_event.go | 20 +++++++++++--------- modules/viking/api_challengeover.go | 12 +++++++----- 7 files changed, 28 insertions(+), 22 deletions(-) diff --git a/modules/guildgve/api_challengefinish.go b/modules/guildgve/api_challengefinish.go index aefc84783..e55422d2f 100644 --- a/modules/guildgve/api_challengefinish.go +++ b/modules/guildgve/api_challengefinish.go @@ -64,7 +64,9 @@ func (this *apiComp) ChallengeFinish(session comm.IUserSession, req *pb.GuildGve } for _, v := range req.Report.Info.Redflist[0].Team { - member.Useheros = append(member.Useheros, v.Oid) + if v.Oid != "" { + member.Useheros = append(member.Useheros, v.Oid) + } } // if member.Boosticket <= 0 { @@ -122,10 +124,10 @@ func (this *apiComp) ChallengeFinish(session comm.IUserSession, req *pb.GuildGve member.Record[req.Boosid] = record go this.module.modelbattlerank.updateRank(req.Boosid, req.Report.Harm, record.User.Uid) for i, v := range req.Report.Info.Redflist[0].Team { - if int32(i) == req.Report.Info.Redflist[0].Leadpos && v != nil { + if int32(i) == req.Report.Info.Redflist[0].Leadpos && v.Oid != "" { record.CaptainHeroId = v.HeroID } - if v != nil { + if v.Oid != "" { record.Formation = append(record.Formation, &pb.DBSimpleHero{ HeroId: v.HeroID, Star: v.Star, diff --git a/modules/hunting/api_challengeover.go b/modules/hunting/api_challengeover.go index b7a98977d..3dd9063a6 100644 --- a/modules/hunting/api_challengeover.go +++ b/modules/hunting/api_challengeover.go @@ -161,7 +161,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.HuntingCha var heroObjs []string if req.Report != nil && req.Report.Info != nil && len(req.Report.Info.Redflist) > 0 { for _, v := range req.Report.Info.Redflist[0].Team { - if !v.Ishelp { // 助战英雄不加经验 + if v.Oid != "" && !v.Ishelp { // 助战英雄不加经验 heroObjs = append(heroObjs, v.Oid) changExp[v.Oid] = cfgHunting.Heroexp } diff --git a/modules/mainline/api_challengeover.go b/modules/mainline/api_challengeover.go index 57a51d9fd..d526a012e 100644 --- a/modules/mainline/api_challengeover.go +++ b/modules/mainline/api_challengeover.go @@ -154,7 +154,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.MainlineCh var heroObjs []string if req.Report != nil && req.Report.Info != nil && len(req.Report.Info.Redflist) > 0 { for _, v := range req.Report.Info.Redflist[0].Team { - if !v.Ishelp { // 助战英雄不加经验 + if v.Oid != "" && !v.Ishelp { // 助战英雄不加经验 heroObjs = append(heroObjs, v.Oid) } } diff --git a/modules/pagoda/api_challengeover.go b/modules/pagoda/api_challengeover.go index bb24186b7..bc921f585 100644 --- a/modules/pagoda/api_challengeover.go +++ b/modules/pagoda/api_challengeover.go @@ -99,7 +99,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.PagodaChal var heroObjs []string if req.Report != nil && req.Report.Info != nil && len(req.Report.Info.Redflist) > 0 { for _, v := range req.Report.Info.Redflist[0].Team { - if !v.Ishelp { // 助战英雄不加经验 + if v.Oid != "" && !v.Ishelp { // 助战英雄不加经验 heroObjs = append(heroObjs, v.Oid) } } @@ -139,7 +139,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.PagodaChal leadpos := req.Report.Info.Redflist[0].Leadpos szLine := make([]*pb.LineUp, 0) for _, v := range req.Report.Info.Redflist[0].Team { - if v != nil { + if v.Oid != "" { szLine = append(szLine, &pb.LineUp{ Cid: v.HeroID, Star: v.Star, diff --git a/modules/pagoda/api_racechallengeover.go b/modules/pagoda/api_racechallengeover.go index 8261607a2..c41220a97 100644 --- a/modules/pagoda/api_racechallengeover.go +++ b/modules/pagoda/api_racechallengeover.go @@ -97,7 +97,7 @@ func (this *apiComp) ChallengeRaceOver(session comm.IUserSession, req *pb.Pagoda var heroObjs []string if req.Report != nil && req.Report.Info != nil && len(req.Report.Info.Redflist) > 0 { for _, v := range req.Report.Info.Redflist[0].Team { - if !v.Ishelp { // 助战英雄不加经验 + if v.Oid != "" && !v.Ishelp { // 助战英雄不加经验 heroObjs = append(heroObjs, v.Oid) } } diff --git a/modules/stonehenge/api_event.go b/modules/stonehenge/api_event.go index 8242b9157..7dffb9853 100644 --- a/modules/stonehenge/api_event.go +++ b/modules/stonehenge/api_event.go @@ -479,17 +479,19 @@ func (this *apiComp) Event(session comm.IUserSession, req *pb.StonehengeEventReq if eventConf.EventType == EventType28 { // 必须是战斗类型才可以触发 var job int32 for _, v := range req.Report.Info.Redflist[0].Team { - if h, err := this.module.ModuleTools.GetHeroConfig(v.HeroID); err == nil { - if job == 0 { - job = h.Job - } - if job != h.Job { - job = 0 - break + if v.HeroID != "" { + if h, err := this.module.ModuleTools.GetHeroConfig(v.HeroID); err == nil { + if job == 0 { + job = h.Job + } + if job != h.Job { + job = 0 + break + } } + maxHp := v.Property[battle.AttributesTransBase("hp")] + totalhp += v.Currhp * 1000 / maxHp } - maxHp := v.Property[battle.AttributesTransBase("hp")] - totalhp += v.Currhp * 1000 / maxHp } if job != 0 { // 上阵英雄都为指定职业 tasks = append(tasks, comm.GetBuriedParam(comm.Rtype216, job, stone.StageID)) //上阵英雄都为指定职业,击败石阵秘境中指定关卡的首领 diff --git a/modules/viking/api_challengeover.go b/modules/viking/api_challengeover.go index 8e3c98378..10a005877 100644 --- a/modules/viking/api_challengeover.go +++ b/modules/viking/api_challengeover.go @@ -198,10 +198,12 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.VikingChal var heroObjs []string if req.Report != nil && req.Report.Info != nil && len(req.Report.Info.Redflist) > 0 { for _, v := range req.Report.Info.Redflist[0].Team { - if !v.Ishelp { // 助战英雄不加经验 - heroObjs = append(heroObjs, v.Oid) - } else { - bHelp = true + if v.HeroID != "" { + if !v.Ishelp { // 助战英雄不加经验 + heroObjs = append(heroObjs, v.Oid) + } else { + bHelp = true + } } } } @@ -227,7 +229,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.VikingChal if req.Report != nil && req.Report.Info != nil && len(req.Report.Info.Redflist) > 0 { for _, v := range req.Report.Info.Redflist[0].Team { - if v.Ishelp { // 判断是否有助战 + if v.Oid != "" && v.Ishelp { // 判断是否有助战 tasks = append(tasks, comm.GetBuriedParam(comm.Rtype79, req.Difficulty, req.BossId)) break }