From 84ff03c2da92a2612094deaa27fd725627115fca Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Wed, 11 Oct 2023 17:45:23 +0800 Subject: [PATCH] =?UTF-8?q?#36575=20=E4=BB=BB=E5=8A=A1=20=E3=80=90?= =?UTF-8?q?=E6=A2=A6=E5=B7=A5=E5=9C=BA=E7=B3=BB=E7=BB=9F=E3=80=91=20<-?= =?UTF-8?q?=E5=90=8E=E7=AB=AF->=20=E3=80=90=E7=9F=B3=E9=98=B5=E7=A7=98?= =?UTF-8?q?=E5=A2=83=E3=80=91=E5=BC=BA=E5=8C=96buff=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/stonehenge/api_event.go | 125 +++++++++++++++++++++++--------- 1 file changed, 90 insertions(+), 35 deletions(-) diff --git a/modules/stonehenge/api_event.go b/modules/stonehenge/api_event.go index 7dffb9853..6a7d264c0 100644 --- a/modules/stonehenge/api_event.go +++ b/modules/stonehenge/api_event.go @@ -166,24 +166,23 @@ func (this *apiComp) Event(session comm.IUserSession, req *pb.StonehengeEventReq tasks = append(tasks, comm.GetBuriedParam(comm.Rtype225, 1)) return } - if !bWin { // 战斗失败直接返回 - return - } - // 掉落奖励 - if conf, err := this.module.configure.GetStoneEventDataById(req.Eventid); err == nil { - if battleConf, err := this.module.configure.GetBattleConfById(conf.Value1); err == nil { - user, err := this.module.ModuleUser.GetUser(session.GetUserId()) - if err != nil { - errdata = &pb.ErrorData{ - Code: pb.ErrorCode_DBError, - Title: pb.ErrorCode_DBError.ToString(), - Message: err.Error(), + if bWin { // 战斗失败直接返回 + // 掉落奖励 + if conf, err := this.module.configure.GetStoneEventDataById(req.Eventid); err == nil { + if battleConf, err := this.module.configure.GetBattleConfById(conf.Value1); err == nil { + user, err := this.module.ModuleUser.GetUser(session.GetUserId()) + if err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_DBError, + Title: pb.ErrorCode_DBError.ToString(), + Message: err.Error(), + } + return } - return - } - if lotteryward := this.module.ModuleTools.GetGroupDataByLottery(battleConf.RewardLottery, user.Vip, user.Lv); len(lotteryward) > 0 { - if errdata, reward = this.module.DispenseAtno(session, lotteryward, true); errdata != nil { - this.module.Debugf("Mline lotteryward DispenseRes err:+%v", lotteryward) + if lotteryward := this.module.ModuleTools.GetGroupDataByLottery(battleConf.RewardLottery, user.Vip, user.Lv); len(lotteryward) > 0 { + if errdata, reward = this.module.DispenseAtno(session, lotteryward, true); errdata != nil { + this.module.Debugf("Mline lotteryward DispenseRes err:+%v", lotteryward) + } } } } @@ -220,6 +219,20 @@ func (this *apiComp) Event(session comm.IUserSession, req *pb.StonehengeEventReq } update["hero"] = stone.Hero + if !bWin { + update["rooms"] = stone.Rooms + this.module.modelStonehenge.ChangeStonehengeData(session.GetUserId(), update) + session.SendMsg(string(this.module.GetType()), "event", &pb.StonehengeEventResp{ + Eventid: req.Eventid, + NewEvent: newEvent, + Room: stone.Rooms, + Reward: reward, + Hero: stone.Hero, + Userbuff: stone.Userbuff, + Curbuff: curbuff, + }) + return + } case EventType10: // 宝箱事件 // 通关了才能领取宝箱 if !stone.Rooms.Complete { @@ -317,27 +330,69 @@ func (this *apiComp) Event(session comm.IUserSession, req *pb.StonehengeEventReq } } update["hero"] = stone.Hero - case EventType23, EventType29: // 事件buff 强化// 商店强化 - - if num, err := strconv.Atoi(req.Param1); err == nil { - buffid := int32(num) - if _, ok := stone.Userbuff[buffid]; ok { - if EventType29 == eventConf.EventType { // 商店消耗 走特殊消耗 - if oldbufConf, e := this.module.configure.GetStoneBuffDataById(buffid); e == nil { - if oldbufConf.BuffUpgradeCost.N > 0 { - if errdata = this.module.ConsumeRes(session, []*cfg.Gameatn{oldbufConf.BuffUpgradeCost}, true); errdata != nil { // 校验消耗 - return - } + case EventType23: // 事件buff 强化// 商店强化 + // EventType23///////////// + if eventConf.Value2 == 0 { // 强化所有1级buff + for _, v := range stone.Userbuff { + if conf, e := this.module.configure.GetStoneBuffDataById(v); e != nil { + if conf.BuffLevel == 1 && conf.Type != 5 { // 5是负面buff + if nextConf, e := this.module.configure.GetStoneBuffDataById(v + 1); e != nil { // 是否有2级 + delete(stone.Userbuff, v) + stone.Userbuff[nextConf.BuffId] = 1 + curbuff = nextConf.BuffId + break } - } else { - errdata = &pb.ErrorData{ - Code: pb.ErrorCode_ConfigNoFound, - Title: pb.ErrorCode_ConfigNoFound.ToString(), - Message: e.Error(), - } - return } } + } + } else if eventConf.Value2 == 1 { // 强化类型 buff + itype := eventConf.Value3 + for _, v := range stone.Userbuff { + if conf, e := this.module.configure.GetStoneBuffDataById(v); e != nil { + if conf.BuffLevel == 1 && conf.Type != itype { + if nextConf, e := this.module.configure.GetStoneBuffDataById(v + 1); e != nil { // 是否有2级 + delete(stone.Userbuff, v) + stone.Userbuff[nextConf.BuffId] = 1 + curbuff = nextConf.BuffId + break + } + } + } + } + } else if eventConf.Value2 == 2 { // 强化品质buff + quility := eventConf.Value3 + for _, v := range stone.Userbuff { + if conf, e := this.module.configure.GetStoneBuffDataById(v); e != nil { + if conf.BuffLevel == 1 && conf.Quality == quility && conf.Type != 5 { + if nextConf, e := this.module.configure.GetStoneBuffDataById(v + 1); e != nil { // 是否有2级 + delete(stone.Userbuff, v) + stone.Userbuff[nextConf.BuffId] = 1 + curbuff = nextConf.BuffId + break + } + } + } + } + } + //////////////end EventType23 + case EventType29: + if num, err := strconv.Atoi(req.Param1); err == nil { + buffid := int32(num) // 随机获得n个buff + if _, ok := stone.Userbuff[buffid]; ok { + if oldbufConf, e := this.module.configure.GetStoneBuffDataById(buffid); e == nil { + if oldbufConf.BuffUpgradeCost.N > 0 { + if errdata = this.module.ConsumeRes(session, []*cfg.Gameatn{oldbufConf.BuffUpgradeCost}, true); errdata != nil { // 校验消耗 + return + } + } + } else { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ConfigNoFound, + Title: pb.ErrorCode_ConfigNoFound.ToString(), + Message: e.Error(), + } + return + } if newbufConf, e := this.module.configure.GetStoneBuffDataById(buffid + 1); e == nil { stone.Userbuff[newbufConf.BuffId] = 1 delete(stone.Userbuff, buffid) // 删除旧buff