任务:修复看板提出的任务bug

This commit is contained in:
luying
2021-11-02 17:44:34 +08:00
parent eff6e5f738
commit 55638b5ed6
4 changed files with 14 additions and 8 deletions
@@ -356,6 +356,7 @@ export class HeroHandler {
return resResult(STATUS.HERO_JOB_REACH_MAX_STAGE); return resResult(STATUS.HERO_JOB_REACH_MAX_STAGE);
let newJobStage = hero.jobStage; let newJobStage = hero.jobStage;
let oldJobStage = hero.jobStage, oldJob = hero.job;
let max = isOneClick ? dicJob.maxStage: hero.jobStage + 1; let max = isOneClick ? dicJob.maxStage: hero.jobStage + 1;
let check = new CheckMeterial(roleId); let check = new CheckMeterial(roleId);
for(let i = hero.jobStage; i < max; i++) { for(let i = hero.jobStage; i < max; i++) {
@@ -377,7 +378,7 @@ export class HeroHandler {
jobStage: newJobStage 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 checkTask(roleId, sid, TASK_TYPE.HERO_TRAIN_SUM, 1, true, {});
//活动统计 //活动统计
await checkActivityTask(serverId, sid, roleId, TASK_TYPE.HERO_TRAIN_SUM, 1) await checkActivityTask(serverId, sid, roleId, TASK_TYPE.HERO_TRAIN_SUM, 1)
@@ -542,7 +543,7 @@ export class HeroHandler {
}, [oldLv]); }, [oldLv]);
// 任务 // 任务
await checkTaskWithHero(roleId, sid, TASK_TYPE.HERO_FAVOUR_LV, hero); await checkTaskWithHero(roleId, sid, TASK_TYPE.HERO_FAVOUR_LV, hero, [oldLv]);
} else { } else {
hero = await HeroModel.updateHeroInfo(roleId, hero.hid, { favour: newExp, favourLv: newLv }); hero = await HeroModel.updateHeroInfo(roleId, hero.hid, { favour: newExp, favourLv: newLv });
} }
+1
View File
@@ -23,6 +23,7 @@ export class TaskParam {
job?: number; job?: number;
aid?: number; aid?: number;
isDebug?: boolean; isDebug?: boolean;
oldCount?: number;
} }
export class TaskListReturn { export class TaskListReturn {
+8 -4
View File
@@ -107,8 +107,12 @@ export async function checkTaskWithHero(roleId: string, taskType: number, hero:
let dicHero = gameData.hero.get(hero.hid); let dicHero = gameData.hero.get(hero.hid);
let initGrage = gameData.job.get(dicHero.jobid).grade; let initGrage = gameData.job.get(dicHero.jobid).grade;
let curGrade = gameData.job.get(hero.job).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); // 训练次数 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) { else if (taskType == TASK_TYPE.HERO_QUALITY_UP) {
let dicHero = gameData.hero.get(hero.hid); 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 }); pushMessage = await checkTask(roleId, taskType, 1, true, { count });
} }
else if (taskType == TASK_TYPE.HERO_FAVOUR_LV) { 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) { else if (taskType == TASK_TYPE.EQUIP_BY_HERO) {
// arg[0] 1:穿上 -1:脱下 // 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]; isMatch = param.lv >= taskParam[1] && param.oldLv < taskParam[1];
break; break;
case TASK_TYPE.HERO_TRAIN: case TASK_TYPE.HERO_TRAIN:
isMatch = taskParam[1] == param.count; isMatch = param.count >= taskParam[1] && param.oldCount < taskParam[1];
break; break;
case TASK_TYPE.HERO_FAVOUR_LV: case TASK_TYPE.HERO_FAVOUR_LV:
isMatch = taskParam[1] == param.favourLv; isMatch = param.favourLv >= taskParam[1] && param.oldLv < taskParam[1];
break; break;
case TASK_TYPE.HERO_CONNECT: case TASK_TYPE.HERO_CONNECT:
isMatch = taskParam[1] == param.connectLv; isMatch = taskParam[1] == param.connectLv;
@@ -942,7 +942,7 @@
"subTab": 7, "subTab": 7,
"subTabName": "好感", "subTabName": "好感",
"taskType": 15, "taskType": 15,
"taskParam": "&", "taskParam": "1&6",
"group": 3, "group": 3,
"achieveType": 17, "achieveType": 17,
"achieveTaskName": "亲密无间", "achieveTaskName": "亲密无间",
@@ -959,7 +959,7 @@
"subTab": 7, "subTab": 7,
"subTabName": "好感", "subTabName": "好感",
"taskType": 15, "taskType": 15,
"taskParam": "1&6&", "taskParam": "1&12&",
"group": 4, "group": 4,
"achieveType": 17, "achieveType": 17,
"achieveTaskName": "生死之交", "achieveTaskName": "生死之交",