diff --git a/modules/worldtask/api_accept.go b/modules/worldtask/api_accept.go index ed47debbf..45b645847 100644 --- a/modules/worldtask/api_accept.go +++ b/modules/worldtask/api_accept.go @@ -82,11 +82,29 @@ func (a *apiComp) Accept(session comm.IUserSession, req *pb.WorldtaskAcceptReq) } //判断是否要结束任务 - if ((len(curTaskConf.Completetask) == 1 && curTaskConf.Completetask[0] == 0) || - len(curTaskConf.Completetask) == 0) && curTaskConf.DeliverNpc == 0 { + if ((len(curTaskConf.Completetask) == 1 && curTaskConf.Completetask[0] == 0) || len(curTaskConf.Completetask) == 0) && + curTaskConf.DeliverNpc == 0 { //结束任务 a.module.modelWorldtask.taskFinish(session, req.GroupId, req.TaskId, myWorldtask, curTaskConf) a.module.modelWorldtask.taskFinishPush(session, req.GroupId, myWorldtask, curTaskConf) + } else if curTaskConf.DeliverNpc == 0 && len(curTaskConf.Completetask) > 0 { + conds, err := a.module.ModuleBuried.CheckCondition(uid, curTaskConf.Completetask...) + if err == nil { + var flag bool + for _, cond := range conds { + if cond.State == pb.BuriedItemFinishState_buried_finish { + flag = true + rsp.CondiIds = append(rsp.CondiIds, cond.Conid) + } else { + flag = false + break + } + } + if flag { + a.module.modelWorldtask.taskFinish(session, req.GroupId, req.TaskId, myWorldtask, curTaskConf) + a.module.modelWorldtask.taskFinishPush(session, req.GroupId, myWorldtask, curTaskConf) + } + } } else { // 已完成的任务条件 conds, err := a.module.ModuleBuried.CheckCondition(uid, curTaskConf.Completetask...)