修复任务完成判断
This commit is contained in:
parent
ef00cae401
commit
dd231f44d1
@ -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
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user