From dd231f44d16b579555c1af68eb6a8fab17427894 Mon Sep 17 00:00:00 2001 From: wh_zcy Date: Thu, 24 Nov 2022 20:34:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BB=BB=E5=8A=A1=E5=AE=8C?= =?UTF-8?q?=E6=88=90=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/worldtask/api_finish.go | 56 ++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 25 deletions(-) diff --git a/modules/worldtask/api_finish.go b/modules/worldtask/api_finish.go index 6aa101688..426196141 100644 --- a/modules/worldtask/api_finish.go +++ b/modules/worldtask/api_finish.go @@ -25,6 +25,11 @@ func (this *apiComp) Finish(session comm.IUserSession, req *pb.WorldtaskFinishRe uid := session.GetUserId() + rsp := &pb.WorldtaskFinishResp{ + GroupId: req.GroupId, + TaskId: req.TaskId, + } + // 获取用户信息 user := this.module.ModuleUser.GetUser(uid) if user == nil { @@ -69,18 +74,27 @@ func (this *apiComp) Finish(session comm.IUserSession, req *pb.WorldtaskFinishRe } } - //判断任务是否已完成 - for _, t := range userTask.TaskList { - if t.TaskId == req.TaskId { - code = pb.ErrorCode_WorldtaskFinihed + var nextTaskId int32 + nextTaskId = curTaskConf.IdAfter + finishRsp := func() { + if err := session.SendMsg(string(this.module.GetType()), WorldtaskSubtypeFinish, rsp); err != nil { + code = pb.ErrorCode_SystemError return } + + // 世界任务类型 + if curTaskConf.Des == 2 { + // 任务完成推送 + if err := session.SendMsg(string(this.module.GetType()), WorldtaskNexttaskPush, &pb.WorldtaskNexttaskPush{ + NextTaskId: nextTaskId, + }); err != nil { + code = pb.ErrorCode_SystemError + return + } + } } - var nextTaskId int32 - finishCall := func() { - nextTaskId = curTaskConf.IdAfter defer func() { this.module.Debug("世界任务完成", log.Fields{"uid": uid, "params": req, "nextTaskId": nextTaskId}) }() @@ -97,6 +111,15 @@ func (this *apiComp) Finish(session comm.IUserSession, req *pb.WorldtaskFinishRe } } + //判断任务是否已完成 + for _, t := range userTask.TaskList { + if t.TaskId == req.TaskId { + this.module.Debug("任务已完成,返回下一个", log.Fields{"uid": uid, "taskId": req.TaskId}) + finishRsp() + return + } + } + if curTaskConf.Completetask != 0 { if c := this.module.ModuleRtask.CheckCondi(uid, curTaskConf.Completetask); c == pb.ErrorCode_Success { finishCall() @@ -108,24 +131,7 @@ func (this *apiComp) Finish(session comm.IUserSession, req *pb.WorldtaskFinishRe finishCall() } - rsp := &pb.WorldtaskFinishResp{ - GroupId: req.GroupId, - TaskId: req.TaskId, - } - - if err := session.SendMsg(string(this.module.GetType()), WorldtaskSubtypeFinish, rsp); err != nil { - code = pb.ErrorCode_SystemError - } - - // 世界任务类型 - if curTaskConf.Des == 2 { - // 任务完成推送 - if err := session.SendMsg(string(this.module.GetType()), WorldtaskNexttaskPush, &pb.WorldtaskNexttaskPush{ - NextTaskId: nextTaskId, - }); err != nil { - code = pb.ErrorCode_SystemError - } - } + finishRsp() return }