上传商队任务接取
This commit is contained in:
parent
992417d129
commit
960b5fd14a
@ -402,8 +402,8 @@ type (
|
||||
JumpTaskByTaskId(session IUserSession, rtaskId int32) error
|
||||
// 查询我的世界任务
|
||||
GetMyWorldtask(uid string) *pb.DBWorldtask
|
||||
// 获取分组任务
|
||||
GetWorldTaskBy(session IUserSession, groupId int32) int32
|
||||
//接取商队任务
|
||||
AcceptCaravanTask(session IUserSession, groupId int32) (task *pb.Worldtask, errdata *pb.ErrorData)
|
||||
//更新接取任务
|
||||
UpdateTaskStatus(uid string, taskId int32)
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ import (
|
||||
"go_dreamfactory/sys/configure"
|
||||
)
|
||||
|
||||
//参数校验
|
||||
// 参数校验
|
||||
func (this *apiComp) GetStoryCheck(session comm.IUserSession, req *pb.CaravanGetStoryReq) (errdata *pb.ErrorData) {
|
||||
if req.Cid == 0 || req.Citystory == 0 {
|
||||
errdata = &pb.ErrorData{
|
||||
|
@ -156,30 +156,6 @@ func (this *Worldtask) TCondFinishNotify(uid string, conds []*pb.ConIProgress) {
|
||||
return
|
||||
}
|
||||
|
||||
// taskConds := make(map[int32][]*pb.CurrentTask)
|
||||
// finishedCondIds := []*pb.ConIProgress{}
|
||||
|
||||
// for _, cond := range conds {
|
||||
// if cfg, ok := this.configure.worldtaskConf[cond.Conid]; ok {
|
||||
// //校验任务是否是当前任务
|
||||
// if task, ok := userTask.CurrentTasks[cfg.Group]; ok {
|
||||
// var currentTasks []*pb.CurrentTask
|
||||
// for _, t := range task.TaskMap {
|
||||
// if cfg.Key == t.TaskId {
|
||||
// finishedCondIds = append(finishedCondIds, cond)
|
||||
// currentTasks = append(currentTasks, &pb.CurrentTask{
|
||||
// GroupId: cfg.Group,
|
||||
// TaskId: cfg.Key,
|
||||
// Conds: finishedCondIds,
|
||||
// })
|
||||
// }
|
||||
// }
|
||||
// if currentTasks != nil {
|
||||
// taskConds[cfg.Group] = currentTasks
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
tasks := map[int32][]int32{}
|
||||
taskgroup := map[int32]int32{}
|
||||
allconds := []int32{}
|
||||
@ -255,116 +231,11 @@ func (this *Worldtask) TCondFinishNotify(uid string, conds []*pb.ConIProgress) {
|
||||
}
|
||||
}
|
||||
|
||||
// var currentTasks []*pb.CurrentTask
|
||||
// for _, tasks := range taskConds {
|
||||
// for _, t := range tasks {
|
||||
// // curTaskConf, err := this.configure.getWorldtaskById(t.TaskId)
|
||||
// // if err != nil || curTaskConf == nil {
|
||||
// // return
|
||||
// // }
|
||||
// // var flag bool
|
||||
// // if curTaskConf.DeliverNpc == 0 {
|
||||
// // //判断当前任务下的条件是否全部是完成状态
|
||||
// // for _, cond := range t.Conds {
|
||||
// // if cond.State == pb.BuriedItemFinishState_buried_finish {
|
||||
// // flag = true
|
||||
// // } else {
|
||||
// // flag = false
|
||||
// // }
|
||||
// // }
|
||||
// // if flag {
|
||||
|
||||
// // defer func() {
|
||||
// // this.modelWorldtask.taskFinish(session, t.TaskId, userTask, curTaskConf)
|
||||
// // this.modelWorldtask.taskFinishPush(session, userTask, curTaskConf)
|
||||
// // }()
|
||||
// // }
|
||||
// // }
|
||||
// currentTasks = append(currentTasks, t)
|
||||
// }
|
||||
// }
|
||||
|
||||
// if len(currentTasks) > 0 {
|
||||
// session.SendMsg(string(this.GetType()), "changecondis", &pb.WorldtaskChangecondisPush{
|
||||
// Tasks: currentTasks,
|
||||
// })
|
||||
|
||||
// for _, task := range currentTasks {
|
||||
// curTaskConf, err := this.configure.getWorldtaskById(task.TaskId)
|
||||
// if err != nil || curTaskConf == nil {
|
||||
// return
|
||||
// }
|
||||
|
||||
// var newconds []*pb.ConIProgress
|
||||
// if tasks, ok := userTask.CurrentTasks[task.GroupId]; ok {
|
||||
// if t, ok := tasks.TaskMap[task.TaskId]; ok {
|
||||
// //更新cond
|
||||
|
||||
// for _, t1 := range task.Conds {
|
||||
// for _, t2 := range t.Conds {
|
||||
// if t1.Conid == t2.Conid {
|
||||
// // t2 = t1
|
||||
// newconds = append(newconds, t1)
|
||||
// } else {
|
||||
// newconds = append(newconds, t2)
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// t.Conds = newconds
|
||||
|
||||
// //判断所有的条件是都是
|
||||
// var flag bool
|
||||
// for _, cond := range t.Conds {
|
||||
// if cond.State == pb.BuriedItemFinishState_buried_finish {
|
||||
// flag = true
|
||||
// } else {
|
||||
// flag = false
|
||||
// break
|
||||
// }
|
||||
// }
|
||||
|
||||
// if curTaskConf.DeliverNpc == 0 {
|
||||
// if flag {
|
||||
// this.modelWorldtask.taskFinish(session, t.TaskId, userTask, curTaskConf)
|
||||
// this.modelWorldtask.taskFinishPush(session, userTask, curTaskConf)
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
update := map[string]interface{}{
|
||||
"currentTasks": userTask.CurrentTasks,
|
||||
}
|
||||
this.modelWorldtask.Change(uid, update)
|
||||
|
||||
// for _, task := range currentTasks {
|
||||
// curTaskConf, err := this.configure.getWorldtaskById(task.TaskId)
|
||||
// if err != nil || curTaskConf == nil {
|
||||
// return
|
||||
// }
|
||||
// var flag bool
|
||||
// if curTaskConf.DeliverNpc == 0 {
|
||||
// if tasks, ok := userTask.CurrentTasks[task.GroupId]; ok {
|
||||
// if t, ok := tasks.TaskMap[task.TaskId]; ok {
|
||||
// for _, cond := range t.Conds {
|
||||
// if cond.State == pb.BuriedItemFinishState_buried_finish {
|
||||
// flag = true
|
||||
// } else {
|
||||
// flag = false
|
||||
// }
|
||||
// }
|
||||
// if flag {
|
||||
// this.modelWorldtask.taskFinish(session, t.TaskId, userTask, curTaskConf)
|
||||
// this.modelWorldtask.taskFinishPush(session, userTask, curTaskConf)
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// }
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
@ -537,31 +408,44 @@ func (this *Worldtask) JumpTaskByTaskId(session comm.IUserSession, taskId int32)
|
||||
}
|
||||
|
||||
// 返回任务ID
|
||||
func (this *Worldtask) GetWorldTaskBy(session comm.IUserSession, groupId int32) (taskId int32) {
|
||||
func (this *Worldtask) AcceptCaravanTask(session comm.IUserSession, groupId int32) (task *pb.Worldtask, errdata *pb.ErrorData) {
|
||||
uid := session.GetUserId()
|
||||
var (
|
||||
curTaskConf *cfg.GameWorldTaskData
|
||||
isfinsh bool
|
||||
)
|
||||
mytask, err := this.modelWorldtask.getWorldtask(uid)
|
||||
if err != nil {
|
||||
return 0
|
||||
errdata = &pb.ErrorData{
|
||||
Code: pb.ErrorCode_DBError,
|
||||
Title: pb.ErrorCode_DBError.String(),
|
||||
Message: "no found task data",
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
if gwt, err := this.configure.getWorldtaskCfg(); err == nil {
|
||||
for _, v := range gwt.GetDataList() {
|
||||
if v.Group == groupId && v.Des == 5 {
|
||||
if _, ok := utils.Findx(mytask.TaskList, v.Key); !ok {
|
||||
taskId = v.Key
|
||||
task = &pb.Worldtask{
|
||||
TaskId: v.Key,
|
||||
TaskType: v.Des,
|
||||
NpcStatus: 1,
|
||||
}
|
||||
curTaskConf = v
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if taskId == 0 {
|
||||
return
|
||||
if task == nil {
|
||||
errdata = &pb.ErrorData{
|
||||
Code: pb.ErrorCode_ConfigNoFound,
|
||||
Title: pb.ErrorCode_ConfigNoFound.String(),
|
||||
Message: fmt.Sprintf("no fond groupId:%d", groupId),
|
||||
}
|
||||
|
||||
// 当前任务配置
|
||||
curTaskConf, err := this.configure.getWorldtaskById(taskId)
|
||||
if err != nil || curTaskConf == nil {
|
||||
return
|
||||
}
|
||||
|
||||
@ -570,27 +454,44 @@ func (this *Worldtask) GetWorldTaskBy(session comm.IUserSession, groupId int32)
|
||||
}
|
||||
|
||||
if v, ok1 := mytask.CurrentTasks[curTaskConf.Group]; ok1 {
|
||||
v.TaskMap[taskId] = &pb.Worldtask{
|
||||
TaskId: taskId,
|
||||
v.TaskMap[task.TaskId] = &pb.Worldtask{
|
||||
TaskId: task.TaskId,
|
||||
TaskType: curTaskConf.Des,
|
||||
NpcStatus: 1,
|
||||
}
|
||||
}
|
||||
|
||||
if task.Conds, err = this.ModuleBuried.CheckCondition(uid, curTaskConf.Completetask...); err != nil {
|
||||
log.Errorf("调用接口错误:%s", err.Error())
|
||||
errdata = &pb.ErrorData{
|
||||
Code: pb.ErrorCode_ExternalModule,
|
||||
Title: pb.ErrorCode_ExternalModule.String(),
|
||||
Message: fmt.Sprintf("ModuleBuried.CheckCondition err:%s", err.Error()),
|
||||
}
|
||||
return
|
||||
}
|
||||
isfinsh = true
|
||||
for _, v := range task.Conds {
|
||||
if v.State != pb.BuriedItemFinishState_buried_finish {
|
||||
isfinsh = false
|
||||
}
|
||||
}
|
||||
if isfinsh && curTaskConf.DeliverNpc != 0 {
|
||||
isfinsh = false
|
||||
}
|
||||
//判断是否要结束任务
|
||||
if ((len(curTaskConf.Completetask) >= 1 && curTaskConf.Completetask[0] == 0) ||
|
||||
len(curTaskConf.Completetask) == 0) && curTaskConf.DeliverNpc == 0 {
|
||||
isfinsh = true
|
||||
}
|
||||
|
||||
update := map[string]interface{}{
|
||||
"currentTasks": mytask.CurrentTasks,
|
||||
}
|
||||
|
||||
if err := this.modelWorldtask.Change(uid, update); err != nil {
|
||||
|
||||
}
|
||||
|
||||
//判断是否要结束任务
|
||||
if ((len(curTaskConf.Completetask) >= 1 && curTaskConf.Completetask[0] == 0) ||
|
||||
len(curTaskConf.Completetask) == 0) &&
|
||||
curTaskConf.DeliverNpc == 0 {
|
||||
//结束任务
|
||||
this.modelWorldtask.taskFinish(session, taskId, mytask, curTaskConf)
|
||||
if isfinsh { //结束任务
|
||||
this.modelWorldtask.taskFinish(session, task.TaskId, mytask, curTaskConf)
|
||||
this.modelWorldtask.taskFinishPush(session, mytask, curTaskConf)
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user