This commit is contained in:
wh_zcy 2023-04-04 12:13:50 +08:00
parent d1dcc03e3a
commit 4a18a075f5
3 changed files with 33 additions and 15 deletions

View File

@ -20,6 +20,12 @@ func (a *apiComp) Accept(session comm.IUserSession, req *pb.WorldtaskAcceptReq)
return
}
uid := session.GetUserId()
user := a.module.ModuleUser.GetUser(uid)
if user == nil {
code = pb.ErrorCode_UserSessionNobeing
return
}
myWorldtask, err := a.module.modelWorldtask.getWorldtask(uid)
if err != nil {
a.module.Error("获取玩家世界任务失败", log.Field{Key: "uid", Value: uid}, log.Field{Key: "err", Value: err.Error()})
@ -34,6 +40,19 @@ func (a *apiComp) Accept(session comm.IUserSession, req *pb.WorldtaskAcceptReq)
return
}
// 判断玩家等级要求
if user.Lv < curTaskConf.Lock {
code = pb.ErrorCode_WorldtaskLvNotEnough
return
}
// 前置任务ID 只有世界任务才校验前置
if !a.module.modelWorldtask.IsPreFinished(req.GroupId, myWorldtask, curTaskConf) {
a.module.Debug("前置任务未完成", log.Field{Key: "uid", Value: uid}, log.Field{Key: "preTaskId", Value: curTaskConf.Ontxe}, log.Field{Key: "taskId", Value: curTaskConf.Key})
code = pb.ErrorCode_WorldtaskLastUnFinished
return
}
if myWorldtask.CurrentTask == nil {
myWorldtask.CurrentTask = make(map[int32]*pb.Worldtask)
}

View File

@ -184,18 +184,17 @@ func (this *apiComp) Finish(session comm.IUserSession, req *pb.WorldtaskFinishRe
} else {
// 章节完成
if _, ok := userTask.Chapters[req.GroupId]; !ok {
delete(userTask.CurrentTask, req.GroupId)
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,
"currentTask": userTask.CurrentTask,
}
this.module.modelWorldtask.Change(uid, update)
}
userTask.Chapters[req.GroupId] = 1 //已解锁待领取
update := map[string]interface{}{
"chapters": userTask.Chapters,
"currentTask": userTask.CurrentTask,
}
this.module.modelWorldtask.Change(uid, update)
}
}
}

View File

@ -231,16 +231,16 @@ func (this *ModelWorldtask) taskFinishPush(session comm.IUserSession, groupId in
if curTaskConf.IdAfter == 0 {
// 章节完成
if _, ok := userTask.Chapters[groupId]; !ok {
delete(userTask.CurrentTask, groupId)
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,
"currentTask": userTask.CurrentTask,
}
this.Change(session.GetUserId(), update)
}
userTask.Chapters[groupId] = 1 //已解锁待领取
update := map[string]interface{}{
"chapters": userTask.Chapters,
"currentTask": userTask.CurrentTask,
}
this.Change(session.GetUserId(), update)
}
}