From 2589c198a9ac3d05a86e89e32924c3757c3c7660 Mon Sep 17 00:00:00 2001 From: wh_zcy Date: Tue, 20 Dec 2022 12:52:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BB=BB=E5=8A=A1=E8=AE=B0?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/rtask/updateHandle.go | 2 +- modules/task/model_task.go | 29 ++++++++++++++++++++++++++++- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/modules/rtask/updateHandle.go b/modules/rtask/updateHandle.go index c1b4cb014..8a6aa4cd0 100644 --- a/modules/rtask/updateHandle.go +++ b/modules/rtask/updateHandle.go @@ -89,7 +89,7 @@ func (this *ModelRtaskRecord) addUpdate(uid string, cfg *cfg.GameRdtaskCondiData //查找任务数据 if v, ok := record.Vals[cfg.Id]; ok { newArr := make([]int32, len(vals)) - newArr = vals + copy(newArr, vals) srcCount := v.Data[0] newArr[0] = srcCount + vals[0] v.Data = toMap(newArr...) diff --git a/modules/task/model_task.go b/modules/task/model_task.go index e4fc19854..a42bd5de7 100644 --- a/modules/task/model_task.go +++ b/modules/task/model_task.go @@ -119,7 +119,7 @@ func (this *ModelTask) getTaskListByTag(uid string, taskTag comm.TaskTag) *pb.DB } if err := this.moduleTask.modelTask.Change(uid, update); err != nil { - + this.moduleTask.Error("change err", log.Field{Key: "uid", Value: uid}) } } @@ -147,6 +147,7 @@ func (this *ModelTask) getTaskListByTag(uid string, taskTag comm.TaskTag) *pb.DB // 成就列表 var achieveList []*pb.TaskData + var bflag bool if taskTag == comm.TASK_ACHIEVE { for _, v := range task.AchieveList { if curTask := this.moduleTask.configure.getTaskById(v.TaskId); curTask != nil { @@ -170,6 +171,32 @@ func (this *ModelTask) getTaskListByTag(uid string, taskTag comm.TaskTag) *pb.DB } } } + + for _, v := range achieveList { + oldVal := v.Progress + var newVal int32 + if p, ok := dr.Vals[v.TypeId]; ok { + if len(p.Data) == 0 { + continue + } + newVal = p.Data[0] + if code := this.moduleTask.ModuleRtask.CheckCondi(uid, v.TypeId); code == pb.ErrorCode_Success { + v.Progress = p.Data[0] + v.Status = 1 + } else { + v.Progress = p.Data[0] + } + } + if oldVal != newVal { + bflag = true + } + } + if bflag { + update["achieveList"] = achieveList + if err := this.moduleTask.modelTask.Change(uid, update); err != nil { + log.Error("err", log.Field{Key: "uid", Value: uid}) + } + } task.AchieveList = achieveList }