From bbf46cbf98692744262a7428e5971d5ae8b747e0 Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Thu, 17 Aug 2023 15:42:30 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E7=A7=98=E5=A2=83=E5=9F=8B=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/stonehenge/api_enterlevel.go | 9 ++++ modules/stonehenge/api_event.go | 77 ++++++++++++++++++++++++++-- modules/stonehenge/api_gotoroom.go | 10 ++++ 3 files changed, 92 insertions(+), 4 deletions(-) diff --git a/modules/stonehenge/api_enterlevel.go b/modules/stonehenge/api_enterlevel.go index a3cd984bf..b32da4548 100644 --- a/modules/stonehenge/api_enterlevel.go +++ b/modules/stonehenge/api_enterlevel.go @@ -167,5 +167,14 @@ func (this *apiComp) EnterLevel(session comm.IUserSession, req *pb.StonehengeEnt Hero: stone.Hero, Room: stone.Rooms, }) + + var szTask []*pb.BuriedParam + for _, v := range szEvent { // 首次触发指定ID的事件 + if c, e := this.module.configure.GetStoneEventDataById(v); e != nil { + szTask = append(szTask, comm.GetBuriedParam(comm.Rtype223, c.EventType, 1)) + } + } + + go this.module.ModuleBuried.TriggerBuried(session.Clone(), szTask...) return } diff --git a/modules/stonehenge/api_event.go b/modules/stonehenge/api_event.go index 1e2e4f7c1..f4dae89d1 100644 --- a/modules/stonehenge/api_event.go +++ b/modules/stonehenge/api_event.go @@ -31,6 +31,7 @@ func (this *apiComp) Event(session comm.IUserSession, req *pb.StonehengeEventReq eventConf *cfg.GameStoneEventData reward []*pb.UserAtno curbuff int32 + newbuff int32 // 新获得的buff ) update = make(map[string]interface{}) if errdata = this.EventCheck(session, req); errdata != nil { @@ -96,15 +97,17 @@ func (this *apiComp) Event(session comm.IUserSession, req *pb.StonehengeEventReq if lenSelect == 0 || lenSelect <= pos { return } - buffid := stone.Rooms.Selectbuff[pos] + newbuff = stone.Rooms.Selectbuff[pos] // 加入收藏 - if conf, err := this.module.configure.GetStoneBuffDataById(buffid); err == nil { - stone.Userbuff[buffid] = 1 + if conf, err := this.module.configure.GetStoneBuffDataById(newbuff); err == nil { + stone.Userbuff[newbuff] = 1 stone.Rooms.Selectbuff = []int32{} update["userbuff"] = stone.Userbuff this.module.modelStonehengeBook.addStonehengeBook(session.GetUserId(), conf.Type, conf.SkillId) + stone.Selectcount++ // 记录三选一的次数 + } else { + newbuff = 0 } - stone.Selectcount++ // 记录三选一的次数 } else { // 参数错误 errdata = &pb.ErrorData{ @@ -410,5 +413,71 @@ func (this *apiComp) Event(session comm.IUserSession, req *pb.StonehengeEventReq Userbuff: stone.Userbuff, Curbuff: curbuff, }) + + // 埋点处理 + var szTask []*pb.BuriedParam + for k := range stone.Rooms.Eventid { // 首次触发指定ID的事件 + szTask = append(szTask, comm.GetBuriedParam(comm.Rtype215, k)) + } + //上阵英雄都为指定职业 + if eventConf.EventType == EventType14 || 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 job != 0 { // 上阵英雄都为指定职业 + szTask = append(szTask, comm.GetBuriedParam(comm.Rtype216, job, stone.StageID)) //上阵英雄都为指定职业,击败石阵秘境中指定关卡的首领 + } + for _, v := range stone.Webuff { + szTask = append(szTask, comm.GetBuriedParam(comm.Rtype217, v, stone.StageID)) + } + for _, v := range stone.Enemybuff { + szTask = append(szTask, comm.GetBuriedParam(comm.Rtype217, v, stone.StageID)) + } + // Rtype218 统计类型 + var buffType map[int32]int32 + buffType = make(map[int32]int32, 0) + for _, v := range stone.Webuff { + if conf, err := this.module.configure.GetStoneBuffDataById(v); err != nil { + buffType[conf.Type]++ + } + + } + for _, v := range stone.Enemybuff { + if conf, err := this.module.configure.GetStoneBuffDataById(v); err != nil { + buffType[conf.Type]++ + } + } + for k, v := range buffType { + szTask = append(szTask, comm.GetBuriedParam(comm.Rtype218, k, v, stone.StageID)) //携带指定类型、≥指定数量的buff,击败石阵秘境中指定关卡的首领 + } + // 累计击败石阵秘境任意关卡的首领N次 + szTask = append(szTask, comm.GetBuriedParam(comm.Rtype219, stone.StageID)) + + //击败指定关卡的首领时,背包中指定道具数量≥指定数量 + //this.module.ModuleItems.CleanItems() + } + + // 强化商店 + if eventConf.EventType == EventType29 { + szTask = append(szTask, comm.GetBuriedParam(comm.Rtype220, 1)) // 强化buff 埋点 + } + // 累计获得指定类型buff + if eventConf.EventType == EventType25 { + if newbuff != 0 { + if conf, err := this.module.configure.GetStoneBuffDataById(newbuff); err == nil { + szTask = append(szTask, comm.GetBuriedParam(comm.Rtype221, conf.Type, 1)) //累计获得N个指定类型的buff + } + } + } + go this.module.ModuleBuried.TriggerBuried(session.Clone(), szTask...) return } diff --git a/modules/stonehenge/api_gotoroom.go b/modules/stonehenge/api_gotoroom.go index 0f99cfa56..386f9ae96 100644 --- a/modules/stonehenge/api_gotoroom.go +++ b/modules/stonehenge/api_gotoroom.go @@ -163,5 +163,15 @@ func (this *apiComp) GotoRoom(session comm.IUserSession, req *pb.StonehengeGotoR Room: stone.Rooms, Portal: req.Portal, }) + + // 埋点 + var szTask []*pb.BuriedParam + for _, v := range szEvent { // 首次触发指定ID的事件 + if c, e := this.module.configure.GetStoneEventDataById(v); e != nil { + szTask = append(szTask, comm.GetBuriedParam(comm.Rtype223, c.EventType, 1)) + } + } + + go this.module.ModuleBuried.TriggerBuried(session.Clone(), szTask...) return } From 560cb4a4215857ade1bfdb1c053ee137726f0f07 Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Thu, 17 Aug 2023 16:47:00 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=89=8B=E5=8A=A8=E7=BB=93=E6=9D=9F?= =?UTF-8?q?=E7=A7=98=E5=A2=83=20=E6=B8=85=E9=99=A4=E6=8C=87=E5=AE=9A?= =?UTF-8?q?=E9=81=93=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/stonehenge/api_event.go | 11 ++++++++++- modules/stonehenge/api_finish.go | 2 ++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/modules/stonehenge/api_event.go b/modules/stonehenge/api_event.go index f4dae89d1..26230f27b 100644 --- a/modules/stonehenge/api_event.go +++ b/modules/stonehenge/api_event.go @@ -130,6 +130,10 @@ func (this *apiComp) Event(session comm.IUserSession, req *pb.StonehengeEventReq bWin := false errdata, bWin = this.module.battle.CheckBattleReport(session, req.Report) if errdata != nil { + // 战斗失败埋点处理 + var szTask []*pb.BuriedParam + szTask = append(szTask, comm.GetBuriedParam(comm.Rtype225, 1)) + go this.module.ModuleBuried.TriggerBuried(session.Clone(), szTask...) return } if !bWin { // 战斗失败直接返回 @@ -419,8 +423,9 @@ func (this *apiComp) Event(session comm.IUserSession, req *pb.StonehengeEventReq for k := range stone.Rooms.Eventid { // 首次触发指定ID的事件 szTask = append(szTask, comm.GetBuriedParam(comm.Rtype215, k)) } + var totalhp int32 //上阵英雄都为指定职业 - if eventConf.EventType == EventType14 || eventConf.EventType == EventType28 { // 必须是战斗类型才可以触发 + 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 { @@ -432,6 +437,8 @@ func (this *apiComp) Event(session comm.IUserSession, req *pb.StonehengeEventReq break } } + maxHp := v.Property[battle.AttributesTransBase("hp")] + totalhp += v.Currhp * 1000 / maxHp } if job != 0 { // 上阵英雄都为指定职业 szTask = append(szTask, comm.GetBuriedParam(comm.Rtype216, job, stone.StageID)) //上阵英雄都为指定职业,击败石阵秘境中指定关卡的首领 @@ -464,6 +471,8 @@ func (this *apiComp) Event(session comm.IUserSession, req *pb.StonehengeEventReq //击败指定关卡的首领时,背包中指定道具数量≥指定数量 //this.module.ModuleItems.CleanItems() + //击败石阵秘境中指定关卡的首领时,每名上阵英雄血量≤比例(千分比) + szTask = append(szTask, comm.GetBuriedParam(comm.Rtype224, totalhp, stone.StageID)) } // 强化商店 diff --git a/modules/stonehenge/api_finish.go b/modules/stonehenge/api_finish.go index 6b8531176..4ca652770 100644 --- a/modules/stonehenge/api_finish.go +++ b/modules/stonehenge/api_finish.go @@ -62,6 +62,8 @@ func (this *apiComp) Finish(session comm.IUserSession, req *pb.StonehengeFinishR stone.Addweight = make(map[int32]int32, 0) update["addweight"] = stone.Addweight + // 清除指定类型道具 item,10000036 该货币在关卡结算时,清空 + this.module.ModuleItems.CleanItemById(session, "10000036") // 策划强烈要求这样写 this.module.modelStonehenge.ChangeStonehengeData(session.GetUserId(), update) session.SendMsg(string(this.module.GetType()), "finish", &pb.StonehengeFinishResp{ Data: stone,