diff --git a/game-server/app/servers/battle/handler/normalBattleHandler.ts b/game-server/app/servers/battle/handler/normalBattleHandler.ts index ae34687c0..c048b6710 100644 --- a/game-server/app/servers/battle/handler/normalBattleHandler.ts +++ b/game-server/app/servers/battle/handler/normalBattleHandler.ts @@ -275,7 +275,7 @@ export class NormalBattleHandler { let actordata = await roleLevelup(KING_EXP_RATIO_TYPE.BATTLE, roleId, isSuccess ? warInfo.kingExp : 0, session);// 主公升级经验 - await checkTaskInBattleEnd(serverId, roleId, sid, battleId, dbHeroes, newStar); + await checkTaskInBattleEnd(serverId, roleId, sid, battleId, dbHeroes, newStar, isSuccess); // 返回值: // towerStatus: false-本层未通过, true-本层已通过 return resResult(STATUS.SUCCESS, { diff --git a/game-server/app/services/task/taskService.ts b/game-server/app/services/task/taskService.ts index 322d36c66..4246bcd8a 100644 --- a/game-server/app/services/task/taskService.ts +++ b/game-server/app/services/task/taskService.ts @@ -110,22 +110,24 @@ export async function checkTaskInGuildTrain(serverId: number, roleId: string, si /** * battle.normalBattleHandler.battleEnd 中会触发的任务,因为有点多提出来了 */ - export async function checkTaskInBattleEnd(serverId: number, roleId: string, sid: string, warId: number, battleHeroes: number[], battleStar: number) { - let task = new CheckTask(serverId, roleId); - task.setParam(TASK_TYPE.BATTLE_WITH_HERO, { warId, battleHeroes }); - task.setParam(TASK_TYPE.BATTLE_MAIN, { warId, count: 1 }); - task.setParam(TASK_TYPE.BATTLE_DAILY_STAR, { warId, battleStar }); - task.setParam(TASK_TYPE.BATTLE_DAILY, { warId, count: 1 }); - task.setParam(TASK_TYPE.BATTLE_DUNGEON, { warId, count: 1 }); - task.setParam(TASK_TYPE.BATTLE_DUNGEON_WAR, { warId, count: 1 }); - task.setParam(TASK_TYPE.BATTLE_TOWER, { warId, count: 1 }); - task.setParam(TASK_TYPE.BATTLE_VESTIGE, { warId, count: 1 }); - task.setParam(TASK_TYPE.BATTLE_EXPEDITION, { warId, count: 1 }); - task.setParam(TASK_TYPE.BATTLE_MAIN_ELITE, { warId, count: 1 }); - await task.saveAndPush(sid); - let dicWar = gameData.war.get(warId); - if(dicWar && dicWar.warType == WAR_TYPE.NORMAL) { - checkPopUpCondition(serverId, roleId, POP_UP_SHOP_CONDITION_TYPE.MAIN_BATTLE, { warId }, sid); + export async function checkTaskInBattleEnd(serverId: number, roleId: string, sid: string, warId: number, battleHeroes: number[], battleStar: number, isSuccess: boolean) { + if(isSuccess) { + let task = new CheckTask(serverId, roleId); + task.setParam(TASK_TYPE.BATTLE_WITH_HERO, { warId, battleHeroes }); + task.setParam(TASK_TYPE.BATTLE_MAIN, { warId, count: 1 }); + task.setParam(TASK_TYPE.BATTLE_DAILY_STAR, { warId, battleStar }); + task.setParam(TASK_TYPE.BATTLE_DAILY, { warId, count: 1 }); + task.setParam(TASK_TYPE.BATTLE_DUNGEON, { warId, count: 1 }); + task.setParam(TASK_TYPE.BATTLE_DUNGEON_WAR, { warId, count: 1 }); + task.setParam(TASK_TYPE.BATTLE_TOWER, { warId, count: 1 }); + task.setParam(TASK_TYPE.BATTLE_VESTIGE, { warId, count: 1 }); + task.setParam(TASK_TYPE.BATTLE_EXPEDITION, { warId, count: 1 }); + task.setParam(TASK_TYPE.BATTLE_MAIN_ELITE, { warId, count: 1 }); + await task.saveAndPush(sid); + let dicWar = gameData.war.get(warId); + if(dicWar && dicWar.warType == WAR_TYPE.NORMAL) { + checkPopUpCondition(serverId, roleId, POP_UP_SHOP_CONDITION_TYPE.MAIN_BATTLE, { warId }, sid); + } } }