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/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/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/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 cc503c06f..7dffb9853 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 @@ -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/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 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 }