diff --git a/bin/json/game_rdtaskcondi.json b/bin/json/game_rdtaskcondi.json index 110cb3ef0..3a0ae855d 100644 --- a/bin/json/game_rdtaskcondi.json +++ b/bin/json/game_rdtaskcondi.json @@ -1201,7 +1201,7 @@ "tasktxt": "", "type": 70, "valid": 0, - "NPC": 4, + "NPC": 10110, "data1": 1, "data2": 114, "data3": 4, diff --git a/bin/json/game_worldtask.json b/bin/json/game_worldtask.json index 825e11adb..8c48ede55 100644 --- a/bin/json/game_worldtask.json +++ b/bin/json/game_worldtask.json @@ -322,7 +322,7 @@ "key": 20100, "lock": 1, "ontxe": 20090, - "id_after": 0, + "id_after": 20110, "group": 20010, "des": 2, "icon": "", @@ -343,7 +343,7 @@ 307 ], "deliver_npc": 10102, - "auto_accept": 1, + "auto_accept": 0, "reword": [ { "a": "item", @@ -353,6 +353,41 @@ ], "module": [] }, + { + "key": 20110, + "lock": 0, + "ontxe": 20100, + "id_after": 0, + "group": 20010, + "des": 2, + "icon": "", + "task_Tname": { + "key": "Mainline_Tasks", + "text": "1" + }, + "task_name": { + "key": "Mainline_Tasks_11", + "text": "敬请期待" + }, + "task_display": { + "key": "story_80", + "text": "1" + }, + "npc": 10110, + "completetask": [ + 193 + ], + "deliver_npc": 0, + "auto_accept": 0, + "reword": [ + { + "a": "item", + "t": "110001", + "n": 110 + } + ], + "module": [] + }, { "key": 30010, "lock": 1, diff --git a/modules/worldtask/api_finish.go b/modules/worldtask/api_finish.go index 63d51799c..4cf15b13d 100644 --- a/modules/worldtask/api_finish.go +++ b/modules/worldtask/api_finish.go @@ -179,10 +179,12 @@ func (this *apiComp) Finish(session comm.IUserSession, req *pb.WorldtaskFinishRe // 章节完成 if _, ok := userTask.Chapters[req.GroupId]; !ok { if userTask.Chapters == nil { + delete(userTask.CurrentTask, req.GroupId) userTask.Chapters = make(map[int32]int32) userTask.Chapters[req.GroupId] = 1 //已解锁待领取 update := map[string]interface{}{ - "chapters": userTask.Chapters, + "chapters": userTask.Chapters, + "currentTask": userTask.CurrentTask, } this.module.modelWorldtask.Change(uid, update) } @@ -213,7 +215,7 @@ func (this *apiComp) Finish(session comm.IUserSession, req *pb.WorldtaskFinishRe log.Field{Key: "code", Value: code}, ) } - + //判断是否配置了通知module for _, m := range curTaskConf.Module { i, err := this.service.GetModule(core.M_Modules(m)) diff --git a/modules/worldtask/model_worldtask.go b/modules/worldtask/model_worldtask.go index f50e9d8f3..b938d20af 100644 --- a/modules/worldtask/model_worldtask.go +++ b/modules/worldtask/model_worldtask.go @@ -226,24 +226,26 @@ func (this *ModelWorldtask) taskFinishPush(session comm.IUserSession, groupId in nextTask[groupId] = &pb.Worldtask{} //表示没有下一个任务 } - // 任务完成推送 - session.SendMsg(string(this.moduleWorldtask.GetType()), WorldtaskNexttaskPush, &pb.WorldtaskNexttaskPush{ - NextTask: nextTask, - }) - if curTaskConf.IdAfter == 0 { // 章节完成 if _, ok := userTask.Chapters[groupId]; !ok { if userTask.Chapters == nil { + delete(userTask.CurrentTask,groupId) userTask.Chapters = make(map[int32]int32) userTask.Chapters[groupId] = 1 //已解锁待领取 update := map[string]interface{}{ - "chapters": userTask.Chapters, + "chapters": userTask.Chapters, + "currentTask": userTask.CurrentTask, } this.Change(session.GetUserId(), update) } } } + + // 任务完成推送 + session.SendMsg(string(this.moduleWorldtask.GetType()), WorldtaskNexttaskPush, &pb.WorldtaskNexttaskPush{ + NextTask: nextTask, + }) } func (this *ModelWorldtask) taskFinish(session comm.IUserSession, groupId, taskId int32, userTask *pb.DBWorldtask, curTaskConf *cfg.GameWorldTaskData) { diff --git a/modules/worldtask/module.go b/modules/worldtask/module.go index 2ef8ca7f3..225dd4e86 100644 --- a/modules/worldtask/module.go +++ b/modules/worldtask/module.go @@ -72,13 +72,7 @@ func (this *Worldtask) TaskCondFinishNotify(session comm.IUserSession, condId in if v == condId { //校验任务是否是当前任务 if task, ok := userTask.CurrentTask[c.Group]; ok { - this.Debug("推送NextTask", - log.Field{Key: "group", Value: c.Group}, - log.Field{Key: "Key", Value: c.Key}, - log.Field{Key: "taskId", Value: task.TaskId}, - log.Field{Key: "condId", Value: condId}, - log.Field{Key: "npcStatus", Value: task.NpcStatus}) - if task.NpcStatus == 1 { + if task.NpcStatus == 1 && c.Key == task.TaskId{ finishedTaskIds[c.Group] = c.Key groupId = c.Group taskId = c.Key