diff --git a/game-server/app/servers/role/handler/heroHandler.ts b/game-server/app/servers/role/handler/heroHandler.ts index 9471a46bc..63ac825b8 100644 --- a/game-server/app/servers/role/handler/heroHandler.ts +++ b/game-server/app/servers/role/handler/heroHandler.ts @@ -356,6 +356,7 @@ export class HeroHandler { return resResult(STATUS.HERO_JOB_REACH_MAX_STAGE); let newJobStage = hero.jobStage; + let oldJobStage = hero.jobStage, oldJob = hero.job; let max = isOneClick ? dicJob.maxStage: hero.jobStage + 1; let check = new CheckMeterial(roleId); for(let i = hero.jobStage; i < max; i++) { @@ -377,7 +378,7 @@ export class HeroHandler { jobStage: newJobStage }); // 任务 - await checkTaskWithHero(roleId, sid, TASK_TYPE.HERO_TRAIN, hero); + await checkTaskWithHero(roleId, sid, TASK_TYPE.HERO_TRAIN, hero, [oldJob, oldJobStage]); await checkTask(roleId, sid, TASK_TYPE.HERO_TRAIN_SUM, 1, true, {}); //活动统计 await checkActivityTask(serverId, sid, roleId, TASK_TYPE.HERO_TRAIN_SUM, 1) @@ -542,7 +543,7 @@ export class HeroHandler { }, [oldLv]); // 任务 - await checkTaskWithHero(roleId, sid, TASK_TYPE.HERO_FAVOUR_LV, hero); + await checkTaskWithHero(roleId, sid, TASK_TYPE.HERO_FAVOUR_LV, hero, [oldLv]); } else { hero = await HeroModel.updateHeroInfo(roleId, hero.hid, { favour: newExp, favourLv: newLv }); } diff --git a/shared/domain/roleField/task.ts b/shared/domain/roleField/task.ts index 1d0921870..1e68fe04a 100644 --- a/shared/domain/roleField/task.ts +++ b/shared/domain/roleField/task.ts @@ -23,6 +23,7 @@ export class TaskParam { job?: number; aid?: number; isDebug?: boolean; + oldCount?: number; } export class TaskListReturn { diff --git a/shared/pubUtils/taskUtil.ts b/shared/pubUtils/taskUtil.ts index d05091326..7884cf558 100644 --- a/shared/pubUtils/taskUtil.ts +++ b/shared/pubUtils/taskUtil.ts @@ -107,8 +107,12 @@ export async function checkTaskWithHero(roleId: string, taskType: number, hero: let dicHero = gameData.hero.get(hero.hid); let initGrage = gameData.job.get(dicHero.jobid).grade; let curGrade = gameData.job.get(hero.job).grade; + let oldGrade = gameData.job.get(args[0]).grade; let count = (curGrade - initGrage) * (ABI_STAGE.END - ABI_STAGE.START) + (hero.jobStage - ABI_STAGE.START); // 训练次数 - pushMessage = await checkTask(roleId, taskType, 1, true, { count }); + let oldCount = (oldGrade - initGrage) * (ABI_STAGE.END - ABI_STAGE.START) + (args[1] - ABI_STAGE.START); + + console.log('******', oldCount); + pushMessage = await checkTask(roleId, taskType, 1, true, { count, oldCount }); } else if (taskType == TASK_TYPE.HERO_QUALITY_UP) { let dicHero = gameData.hero.get(hero.hid); @@ -124,7 +128,7 @@ export async function checkTaskWithHero(roleId: string, taskType: number, hero: pushMessage = await checkTask(roleId, taskType, 1, true, { count }); } else if (taskType == TASK_TYPE.HERO_FAVOUR_LV) { - pushMessage = await checkTask(roleId, taskType, 1, true, { favourLv: hero.favourLv }) + pushMessage = await checkTask(roleId, taskType, 1, true, { favourLv: hero.favourLv, oldLv: args[0] }) } else if (taskType == TASK_TYPE.EQUIP_BY_HERO) { // arg[0] 1:穿上 -1:脱下 @@ -357,10 +361,10 @@ export async function checkTaskRec(roleId: string, type: number, group: number, isMatch = param.lv >= taskParam[1] && param.oldLv < taskParam[1]; break; case TASK_TYPE.HERO_TRAIN: - isMatch = taskParam[1] == param.count; + isMatch = param.count >= taskParam[1] && param.oldCount < taskParam[1]; break; case TASK_TYPE.HERO_FAVOUR_LV: - isMatch = taskParam[1] == param.favourLv; + isMatch = param.favourLv >= taskParam[1] && param.oldLv < taskParam[1]; break; case TASK_TYPE.HERO_CONNECT: isMatch = taskParam[1] == param.connectLv; diff --git a/shared/resource/jsons/dic_zyz_achievement.json b/shared/resource/jsons/dic_zyz_achievement.json index 93aaae6a6..ad57b5c48 100644 --- a/shared/resource/jsons/dic_zyz_achievement.json +++ b/shared/resource/jsons/dic_zyz_achievement.json @@ -942,7 +942,7 @@ "subTab": 7, "subTabName": "好感", "taskType": 15, - "taskParam": "&", + "taskParam": "1&6", "group": 3, "achieveType": 17, "achieveTaskName": "亲密无间", @@ -959,7 +959,7 @@ "subTab": 7, "subTabName": "好感", "taskType": 15, - "taskParam": "1&6&", + "taskParam": "1&12&", "group": 4, "achieveType": 17, "achieveTaskName": "生死之交",