修复任务完成判断

This commit is contained in:
wh_zcy 2022-11-24 20:34:10 +08:00
parent ef00cae401
commit dd231f44d1

View File

@ -25,6 +25,11 @@ func (this *apiComp) Finish(session comm.IUserSession, req *pb.WorldtaskFinishRe
uid := session.GetUserId() uid := session.GetUserId()
rsp := &pb.WorldtaskFinishResp{
GroupId: req.GroupId,
TaskId: req.TaskId,
}
// 获取用户信息 // 获取用户信息
user := this.module.ModuleUser.GetUser(uid) user := this.module.ModuleUser.GetUser(uid)
if user == nil { if user == nil {
@ -69,18 +74,27 @@ func (this *apiComp) Finish(session comm.IUserSession, req *pb.WorldtaskFinishRe
} }
} }
//判断任务是否已完成 var nextTaskId int32
for _, t := range userTask.TaskList { nextTaskId = curTaskConf.IdAfter
if t.TaskId == req.TaskId { finishRsp := func() {
code = pb.ErrorCode_WorldtaskFinihed if err := session.SendMsg(string(this.module.GetType()), WorldtaskSubtypeFinish, rsp); err != nil {
code = pb.ErrorCode_SystemError
return 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() { finishCall := func() {
nextTaskId = curTaskConf.IdAfter
defer func() { defer func() {
this.module.Debug("世界任务完成", log.Fields{"uid": uid, "params": req, "nextTaskId": nextTaskId}) 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 curTaskConf.Completetask != 0 {
if c := this.module.ModuleRtask.CheckCondi(uid, curTaskConf.Completetask); c == pb.ErrorCode_Success { if c := this.module.ModuleRtask.CheckCondi(uid, curTaskConf.Completetask); c == pb.ErrorCode_Success {
finishCall() finishCall()
@ -108,24 +131,7 @@ func (this *apiComp) Finish(session comm.IUserSession, req *pb.WorldtaskFinishRe
finishCall() finishCall()
} }
rsp := &pb.WorldtaskFinishResp{ finishRsp()
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
}
}
return return
} }