From 7fc02b2111921a3b3d2c689fa9c46521945d68e6 Mon Sep 17 00:00:00 2001 From: qiaoxin Date: Thu, 24 Jun 2021 18:35:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B4=BB=E5=8A=A8=EF=BC=9A=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E7=BB=9F=E8=AE=A1=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../battle/handler/normalBattleHandler.ts | 2 +- .../app/servers/role/handler/friendHandler.ts | 7 +++- game-server/app/services/taskService.ts | 2 ++ shared/pubUtils/taskUtil.ts | 35 ++++++++++++------- 4 files changed, 32 insertions(+), 14 deletions(-) diff --git a/game-server/app/servers/battle/handler/normalBattleHandler.ts b/game-server/app/servers/battle/handler/normalBattleHandler.ts index 2cb9ee67c..54beb922b 100644 --- a/game-server/app/servers/battle/handler/normalBattleHandler.ts +++ b/game-server/app/servers/battle/handler/normalBattleHandler.ts @@ -331,7 +331,7 @@ export class NormalBattleHandler { // 任务 await checkTaskWithWar(roleId, sid, funcs, TASK_TYPE.BATTLE_MAIN_SWEEP, battleId, [], count, 0); //活动任务 - await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.BATTLE_MAIN_SWEEP, 1, { battleId }) + await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.BATTLE_MAIN_SWEEP, count, { battleId }) return resResult(STATUS.SUCCESS, { battleId, count, diff --git a/game-server/app/servers/role/handler/friendHandler.ts b/game-server/app/servers/role/handler/friendHandler.ts index e53aae1b3..18db9381f 100644 --- a/game-server/app/servers/role/handler/friendHandler.ts +++ b/game-server/app/servers/role/handler/friendHandler.ts @@ -22,7 +22,7 @@ import { FRIEND } from "../../../pubUtils/dicParam"; import { PlayerDetail, PlayerDetailHero } from "../../../domain/battleField/guild"; import { createPrivateMsg, pushMsgToRole, pushPresent } from "../../../services/chatService"; import { Rank } from "../../../services/rankService"; -import { checkTaskWithRoles, checkTask } from "../../../services/taskService"; +import { checkTaskWithRoles, checkTask, checkActivityTask } from "../../../services/taskService"; export default function (app: Application) { @@ -428,6 +428,7 @@ export class FriendHandler { let roleId: string = session.get('roleId'); let roleName: string = session.get('roleName'); let sid: string = session.get('sid'); + let serverId: number = session.get('serverId'); const funcs: number[] = session.get('funcs'); let { roleId: hisRoleId } = msg; @@ -484,6 +485,10 @@ export class FriendHandler { frdPointRec = await FriendPointModel.updateSendCntToday(roleId, roleName, todaySendInc, max, FRIEND_DROP_TYPE.SEND_GIFT); // 任务 await checkTask(roleId, sid, funcs, TASK_TYPE.FRIEND_SEND_HEART, todaySendInc, true, {}); + // 活动任务 + if (todaySendInc > 0) { + await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.FRIEND_SEND_HEART, todaySendInc); + } return resResult(STATUS.SUCCESS, { todaySendCnt, list diff --git a/game-server/app/services/taskService.ts b/game-server/app/services/taskService.ts index c31a05d59..4b86b0d51 100644 --- a/game-server/app/services/taskService.ts +++ b/game-server/app/services/taskService.ts @@ -120,6 +120,8 @@ export async function checkTaskInBattleEnd(serverId: number, roleId: string, sid await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.BATTLE_DUNGEON_WAR, 1, { warId: battleId }) } else if (dicWar.warType == WAR_TYPE.TOWER) { await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.BATTLE_TOWER, 1) + } else if (dicWar.warType == WAR_TYPE.DAILY) { + await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.BATTLE_DAILY, 1, { warId: battleId }) } } diff --git a/shared/pubUtils/taskUtil.ts b/shared/pubUtils/taskUtil.ts index d2927c26b..ab30e1494 100644 --- a/shared/pubUtils/taskUtil.ts +++ b/shared/pubUtils/taskUtil.ts @@ -569,7 +569,7 @@ export async function accomplishTask(serverId: number, roleId: string, taskType: for (let task of growthTaskArray) { let taskRecord = await ActivityGrowthModel.findDataByCellIndex(serverId, activity.activityId, roleId, task.dayIndex, task.cellIndex, task.taskType) let recordData = taskRecord && taskRecord.data ? JSON.parse(taskRecord.data) : null; - let { addCount, record } = isComplete(roleId, task.taskType, task.taskParam, count, parma, recordData); + let { addCount, record } = isComplete(roleId, task.taskType, task.taskParam, count, activity.activityId, parma, recordData); if (addCount) { if (taskType == TASK_TYPE.ROLE_LV || taskType == TASK_TYPE.ROLE_TITLE || taskType == TASK_TYPE.BATTLE_TOWER_LV) { let playerRecord = await ActivityGrowthModel.setTaskCount(serverId, activity.activityId, roleId, task.dayIndex, task.cellIndex, task.taskType, addCount); @@ -595,7 +595,7 @@ export async function accomplishTask(serverId: number, roleId: string, taskType: for (let task of dailyChallengeTaskArray) { let taskRecord = await ActivityDailyChallengesModel.findDataByCellIndex(serverId, activity.activityId, roleId, task.dayIndex, task.cellIndex, task.taskType) let recordData = taskRecord && taskRecord.data ? JSON.parse(taskRecord.data) : null - let { addCount, record } = isComplete(roleId, task.taskType, task.taskParam, count, parma, recordData); + let { addCount, record } = isComplete(roleId, task.taskType, task.taskParam, count, activity.activityId, parma, recordData); if (addCount) { if (taskType == TASK_TYPE.ROLE_LV || taskType == TASK_TYPE.ROLE_TITLE || taskType == TASK_TYPE.BATTLE_TOWER_LV) { let playerRecord = await ActivityDailyChallengesModel.setTaskCount(serverId, activity.activityId, roleId, task.dayIndex, task.cellIndex, task.taskType, addCount); @@ -625,7 +625,7 @@ export async function accomplishTask(serverId: number, roleId: string, taskType: for (let task of taskArray) { let taskRecord = await ActivityDailyChallengesModel.findDataByCellIndex(serverId, growthActivity.activityId, roleId, task.dayIndex, task.cellIndex, task.taskType) let recordData = taskRecord && taskRecord.data ? JSON.parse(taskRecord.data) : null - let { addCount, record } = isComplete(roleId, task.taskType, task.taskParam, count, parma, recordData); + let { addCount, record } = isComplete(roleId, task.taskType, task.taskParam, count, growthActivity.activityId, parma, recordData); if (addCount) { if (taskType == TASK_TYPE.ROLE_LV || taskType == TASK_TYPE.ROLE_TITLE || taskType == TASK_TYPE.BATTLE_TOWER_LV) { let playerRecord = await ActivityDailyChallengesModel.setTaskCount(serverId, growthActivity.activityId, roleId, task.dayIndex, task.cellIndex, task.taskType, addCount); @@ -655,7 +655,7 @@ export async function accomplishTask(serverId: number, roleId: string, taskType: for (let task of taskArray) { let taskRecord = await ActivityRefreshTaskModel.findDataById(serverId, taskActivity.activityId, roleId, taskActivity.roundIndex, task.pageIndex, task.id, task.taskType) let recordData = taskRecord && taskRecord.data ? JSON.parse(taskRecord.data) : null - let { addCount, record } = isComplete(roleId, task.taskType, task.taskParam, count, parma, recordData); + let { addCount, record } = isComplete(roleId, task.taskType, task.taskParam, count, taskActivity.activityId, parma, recordData); if (addCount) { if (taskType == TASK_TYPE.ROLE_LV || taskType == TASK_TYPE.ROLE_TITLE || taskType == TASK_TYPE.BATTLE_TOWER_LV) { let playerRecord = await ActivityRefreshTaskModel.setTaskCount(serverId, taskActivity.activityId, roleId, taskActivity.roundIndex, task.pageIndex, task.id, task.taskType, addCount); @@ -695,7 +695,7 @@ export async function accomplishTask(serverId: number, roleId: string, taskType: let taskRecord: ActivityTreasureHuntTaskModelType = await ActivityTreasureHuntTaskModel.findDataByCellIndex(serverId, activity.activityId, roleId, huntRoundIndex, task.cellIndex); if (!taskRecord || !taskRecord.isPush) { let recordData = taskRecord && taskRecord.data ? JSON.parse(taskRecord.data) : null - let { addCount, record } = isComplete(roleId, task.taskType, task.taskParam, count, parma, recordData); + let { addCount, record } = isComplete(roleId, task.taskType, task.taskParam, count, activity.activityId, parma, recordData); if (addCount) { let playerRecord = await ActivityTreasureHuntTaskModel.addTreasureHuntTaskCount(serverId, activity.activityId, roleId, huntRoundIndex, task.cellIndex, addCount); //推送 @@ -747,7 +747,7 @@ export async function accomplishTask(serverId: number, roleId: string, taskType: for (let task of taskArray) { let taskRecord = await ActivityThirtyDaysModel.findDataByCellIndex(serverId, thirtyDaysActivity.activityId, roleId, task.pageIndex, task.cellIndex, task.tab, task.taskType) let recordData = taskRecord && taskRecord.data ? JSON.parse(taskRecord.data) : null - let { addCount, record } = isComplete(roleId, task.taskType, task.taskParam, count, parma, recordData); + let { addCount, record } = isComplete(roleId, task.taskType, task.taskParam, count, thirtyDaysActivity.activityId, parma, recordData); if (addCount) { let playerRecord = await ActivityThirtyDaysModel.addTaskCount(serverId, thirtyDaysActivity.activityId, roleId, task.pageIndex, task.cellIndex, task.tab, task.taskType, addCount); //推送 @@ -787,7 +787,7 @@ export async function accomplishTask(serverId: number, roleId: string, taskType: } else if (taskType == TASK_TYPE.EQUIP_QUALITY_COUNT || taskType == TASK_TYPE.GACHA_QUALITY_COUNT || taskType == TASK_TYPE.GUILD_ACTIVITY) {//每天统计 let recordDate = moment(new Date()).startOf('d').toDate() let recordData: ActivityPopUpShopRecordModelType = await ActivityPopUpShopRecordModel.findRecordData(serverId, activity.activityId, roleId, task.id, task.taskType, recordDate) - let { addCount } = isComplete(roleId, task.taskType, task.taskParam, count, parma, null); + let { addCount } = isComplete(roleId, task.taskType, task.taskParam, count, activity.activityId, parma, null); let oldCount = (recordData && recordData.count) ? recordData.count : 0; if (oldCount < task.condition && (oldCount + addCount >= task.condition)) {//完成当天任务 let playerRecord = await ActivityPopUpShopModel.addTaskPushMessage(serverId, activity.activityId, roleId, task.id, task.taskType, oldCount + addCount, beginTime, endTime); @@ -812,7 +812,7 @@ export async function accomplishTask(serverId: number, roleId: string, taskType: let taskRecord = await ActivityPopUpShopModel.findDataByTaskId(serverId, activity.activityId, roleId, popShopData.id, popShopData.taskType) let recordData = taskRecord && taskRecord.data ? JSON.parse(taskRecord.data) : null if (!taskRecord || !taskRecord.isPush) { - let { addCount, record } = isComplete(roleId, task.taskType, task.taskParam, count, parma, recordData); + let { addCount, record } = isComplete(roleId, task.taskType, task.taskParam, count, activity.activityId, parma, recordData); if (addCount) { if (taskType == TASK_TYPE.ROLE_LV || taskType == TASK_TYPE.ROLE_TITLE || taskType == TASK_TYPE.BATTLE_TOWER_LV) { let playerRecord = await ActivityPopUpShopModel.setTaskCount(serverId, activity.activityId, roleId, task.id, task.taskType, addCount); @@ -903,8 +903,8 @@ export async function accomplishTask(serverId: number, roleId: string, taskType: * */ -export function isComplete(roleId: string, taskType: TASK_TYPE, taskParam: string, count: number, paramObj?: any, recordData?: any): any { - console.log('达成任务标准', roleId, taskType, taskParam, count, paramObj) +export function isComplete(roleId: string, taskType: TASK_TYPE, taskParam: string, count: number, activityId: number, paramObj?: any, recordData?: any): any { + console.log('达成任务标准', roleId, taskType, taskParam, count, activityId, paramObj) let param = splitString(taskParam, '&'); let addCount: number = 0; // 条件是否满足 let record: any = null; @@ -1181,7 +1181,7 @@ export function isComplete(roleId: string, taskType: TASK_TYPE, taskParam: strin } case TASK_TYPE.BATTLE_EVENT: { - if (param[0] == paramObj.eventType) { + if (param[0] == 0 || param[0] == paramObj.eventType) { addCount = count; } break; @@ -1213,7 +1213,18 @@ export function isComplete(roleId: string, taskType: TASK_TYPE, taskParam: strin addCount = count; break; } - + case TASK_TYPE.BATTLE_DAILY: + { + if (param[0] == 0 || param[0] == paramObj.warId) { + addCount = count; + } + break; + } + case TASK_TYPE.FRIEND_SEND_HEART: + { + addCount = count; + break; + } default: addCount = 0; break;