This commit is contained in:
wh_zcy 2023-04-20 17:12:35 +08:00
parent 6b5d64cec6
commit 49c99c2843
4 changed files with 68 additions and 84 deletions

View File

@ -379,7 +379,7 @@ type (
// TaskcondNotify(session IUserSession, condId int32) error // TaskcondNotify(session IUserSession, condId int32) error
TaskCondFinishNotify(session IUserSession, condId int32) error TaskCondFinishNotify(session IUserSession, condId int32) error
// bingo所有任务 // bingo所有任务
BingoAllTask(session IUserSession) error // BingoAllTask(session IUserSession) error
// bingo任务 // bingo任务
BingoJumpTask(session IUserSession, groupId, rtaskId int32) error BingoJumpTask(session IUserSession, groupId, rtaskId int32) error
// 查询我的世界任务 // 查询我的世界任务

View File

@ -285,20 +285,7 @@ func (this *GM) CreateCmd(session comm.IUserSession, cmd string) (code pb.ErrorC
log.Field{Key: "uid", Value: session.GetUserId()}, log.Field{Key: "uid", Value: session.GetUserId()},
log.Field{Key: "0", Value: datas[1]}, log.Field{Key: "0", Value: datas[1]},
) )
} else if len(datas) == 1 && (datas[0] == "alltask") { // 完成所有世界任务 } else if len(datas) == 1 && (datas[0] == "allgrowtask") { // 完成所有成长任务
module, err := this.service.GetModule(comm.ModuleWorldtask)
if err != nil {
return
}
if wt, ok := module.(comm.IWorldtask); ok {
if err = wt.BingoAllTask(session); err != nil {
this.Error("bingo 世界任务",
log.Field{Key: "param", Value: datas},
log.Field{Key: "err", Value: err.Error()})
}
}
} else if len(datas) == 1 && (datas[0] == "allgrowtask") { // 完成所有成长任务
module, err := this.service.GetModule(comm.ModuleGrowtask) module, err := this.service.GetModule(comm.ModuleGrowtask)
if err != nil { if err != nil {
return return

View File

@ -41,6 +41,7 @@ func (this *apiComp) CompleteCondi(session comm.IUserSession, req *pb.WorldtaskC
return return
} }
myWorldtask.Uid = uid
wt := myWorldtask.CurrentTask[req.GroupId] wt := myWorldtask.CurrentTask[req.GroupId]
if m, err := this.module.service.GetModule(comm.ModuleRtask); err == nil { if m, err := this.module.service.GetModule(comm.ModuleRtask); err == nil {
iwt, ok := m.(comm.IRtask) iwt, ok := m.(comm.IRtask)
@ -77,5 +78,10 @@ func (this *apiComp) CompleteCondi(session comm.IUserSession, req *pb.WorldtaskC
session.SendMsg(string(this.module.GetType()), "completecondi", rsp) session.SendMsg(string(this.module.GetType()), "completecondi", rsp)
//结束任务
if curTaskConf.DeliverNpc == 0 {
this.module.modelWorldtask.taskFinish(session, req.GroupId, req.TaskId, myWorldtask, curTaskConf)
this.module.modelWorldtask.taskFinishPush(session, req.GroupId, myWorldtask, curTaskConf)
}
return return
} }

View File

@ -72,7 +72,7 @@ func (this *Worldtask) TaskCondFinishNotify(session comm.IUserSession, condId in
if v == condId { if v == condId {
//校验任务是否是当前任务 //校验任务是否是当前任务
if task, ok := userTask.CurrentTask[c.Group]; ok { if task, ok := userTask.CurrentTask[c.Group]; ok {
if task.NpcStatus == 1 && c.Key == task.TaskId{ if task.NpcStatus == 1 && c.Key == task.TaskId {
finishedTaskIds[c.Group] = c.Key finishedTaskIds[c.Group] = c.Key
groupId = c.Group groupId = c.Group
taskId = c.Key taskId = c.Key
@ -141,81 +141,72 @@ func (this *Worldtask) GetMyWorldtask(uid string) *pb.DBWorldtask {
return wt return wt
} }
func (this *Worldtask) BingoAllTask(session comm.IUserSession) error {
// uid := session.GetUserId()
// mytask := &pb.DBWorldtask{Uid: uid}
// tasklist := this.worldtaskConf.GetDataList()
// for _, conf := range tasklist {
// //世界任务配置
// wt := &pb.Worldtask{
// TaskId: conf.Key,
// TaskType: conf.Des,
// }
// mytask.TaskList = append(mytask.TaskList, wt)
// }
// if err := this.modelWorldtask.Add(uid, mytask); err != nil {
// return err
// }
// rsp := &pb.WorldtaskFinishIdsPush{
// TaskList: mytask.TaskList,
// }
return nil //session.SendMsg(string(this.GetType()), "finishids", rsp)
}
// bingo世界任务跳跃 支持回退 // bingo世界任务跳跃 支持回退
func (this *Worldtask) BingoJumpTask(session comm.IUserSession, groupId, taskId int32) error { func (this *Worldtask) BingoJumpTask(session comm.IUserSession, groupId, taskId int32) error {
// uid := session.GetUserId() uid := session.GetUserId()
// mytask, err := this.modelWorldtask.getWorldtask(uid) // 更新数据
// if err != nil { update := make(map[string]interface{})
// return err
// }
// mytask.Uid = uid
// // 更新数据
// update := map[string]interface{}{}
// taskConf := this.worldtaskConf.GetDataMap()[taskId] mytask, err := this.modelWorldtask.getWorldtask(uid)
// if taskConf == nil { if err != nil {
// return fmt.Errorf("taskId: %v config is nil", taskId) return err
// } }
// //重置taskList if mytask == nil {
// mytask.TaskList = []*pb.Worldtask{} mytask = &pb.DBWorldtask{}
mytask.Uid = uid
if err := this.modelWorldtask.Add(uid, mytask); err != nil {
this.Error("添加世界任务失败", log.Field{Key: "uid", Value: uid}, log.Field{Key: "err", Value: err})
return err
}
}
// //遍历 if _, ok := utils.Findx(mytask.TaskList, taskId); ok {
// if taskConf.Ontxe != 0 && taskConf.IdAfter != 0 { this.Error("GM 任务已完成", log.Field{Key: "taskId", Value: taskId})
// for _, v := range this.worldtaskConf.GetDataList() { return comm.NewCustomError(pb.ErrorCode_WorldtaskFinihed)
// if v.Group == groupId && v.Key <= taskId { }
// wt := &pb.Worldtask{
// TaskId: v.Key,
// TaskType: v.Des,
// }
// mytask.TaskList = append(mytask.TaskList, wt)
// }
// } taskConf := this.worldtaskConf.GetDataMap()[taskId]
// } else { if taskConf == nil {
// wt := &pb.Worldtask{ return comm.NewCustomError(pb.ErrorCode_ConfigNoFound)
// TaskId: taskId, }
// TaskType: taskConf.Des,
// }
// mytask.TaskList = append(mytask.TaskList, wt)
// }
// update = map[string]interface{}{
// "taskList": mytask.TaskList,
// }
// if err := this.modelWorldtask.Change(uid, update); err != nil { //重置taskList
// return err mytask.TaskList = []int32{}
// }
// rsp := &pb.WorldtaskFinishIdsPush{ //遍历
// TaskList: mytask.TaskList, if taskConf.Ontxe != 0 && taskConf.IdAfter != 0 {
// } for _, v := range this.worldtaskConf.GetDataList() {
if v.Group == groupId && v.Key <= taskId && v.Des == 2 { //只做主线的des=2
mytask.TaskList = append(mytask.TaskList, v.Key)
}
}
} else {
mytask.TaskList = append(mytask.TaskList, taskId)
}
return nil //session.SendMsg(string(this.GetType()), "finishids", rsp) update = map[string]interface{}{
"taskList": mytask.TaskList,
}
//当前任务
nextTaskIds := this.modelWorldtask.findNextTasks(taskId)
if mytask.CurrentTask == nil {
mytask.CurrentTask = make(map[int32]*pb.Worldtask)
}
if len(nextTaskIds) == 1 {
mytask.CurrentTask[groupId] = &pb.Worldtask{
TaskId: nextTaskIds[0],
}
}
if err := this.modelWorldtask.Change(uid, update); err != nil {
return err
}
rsp := &pb.WorldtaskFinishIdsPush{}
return session.SendMsg(string(this.GetType()), "finishids", rsp)
} }