diff --git a/game-server/app/servers/battle/handler/pvpHandler.ts b/game-server/app/servers/battle/handler/pvpHandler.ts index 050233afd..8d847f79a 100644 --- a/game-server/app/servers/battle/handler/pvpHandler.ts +++ b/game-server/app/servers/battle/handler/pvpHandler.ts @@ -302,6 +302,7 @@ export class PvpHandler { await checkTaskInPvpEnd(roleId, sid, funcs, isSuccess, heroScores); if (isSuccess) { + await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.PVP_WIN, 1) await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.PVP_WIN_SERIES, 1) } diff --git a/shared/db/ActivityGrowth.ts b/shared/db/ActivityGrowth.ts index 0df5d7b84..bf8d66c71 100644 --- a/shared/db/ActivityGrowth.ts +++ b/shared/db/ActivityGrowth.ts @@ -69,8 +69,8 @@ export default class Activity_Growth extends BaseModel { } //查询第几天某个的活动数据 - public static async findDataByCellIndex(serverId: number, activityId: number, roleId: string, dayIndex: number, cellIndex: number, lean = true) { - let result: ActivityGrowthModelType[] = await ActivityGrowthModel.find({ serverId, roleId, activityId, dayIndex, cellIndex }).lean(lean); + public static async findDataByCellIndex(serverId: number, activityId: number, roleId: string, dayIndex: number, cellIndex: number, type: number,) { + let result: ActivityGrowthModelType = await ActivityGrowthModel.findOne({ serverId, roleId, activityId, dayIndex, cellIndex, type }).lean(true); return result; } diff --git a/shared/db/ActivityThirtyDays.ts b/shared/db/ActivityThirtyDays.ts index 41e8196ed..1e917ce68 100644 --- a/shared/db/ActivityThirtyDays.ts +++ b/shared/db/ActivityThirtyDays.ts @@ -67,8 +67,8 @@ export default class Activity_Thirty_Days extends BaseModel { } //查询第*页的某个的活动数据 - public static async findDataByCellIndex(serverId: number, activityId: number, roleId: string, pageIndex: number, cellIndex: number, lean = true) { - let result: ActivityThirtyDaysModelType[] = await ActivityThirtyDaysModel.find({ serverId, roleId, activityId, pageIndex, cellIndex }).lean(lean); + public static async findDataByCellIndex(serverId: number, activityId: number, roleId: string, pageIndex: number, cellIndex: number, type: number,) { + let result: ActivityThirtyDaysModelType = await ActivityThirtyDaysModel.findOne({ serverId, roleId, activityId, pageIndex, cellIndex, type }).lean(true); return result; } diff --git a/shared/pubUtils/taskUtil.ts b/shared/pubUtils/taskUtil.ts index 1f072a806..df82d83c0 100644 --- a/shared/pubUtils/taskUtil.ts +++ b/shared/pubUtils/taskUtil.ts @@ -486,6 +486,7 @@ function checkRecResult(rec: UserTaskRecType, id: number) { * */ export async function accomplishTask(serverId: number, roleId: string, taskType: TASK_TYPE, count: number, parma?: any) { + console.log('accomplishTask', roleId, taskType, count, JSON.stringify(parma)) let pushMessage = []; let { activityGroupId } = await ServerlistModel.findByServerId(serverId); //七天乐-成长活动统计 @@ -494,7 +495,7 @@ export async function accomplishTask(serverId: number, roleId: string, taskType: let growthActivity = new GrowthData(activity); let taskArray = growthActivity.findTaskByType(taskType); for (let task of taskArray) { - let taskRecord = await ActivityDailyChallengesModel.findDataByCellIndex(serverId, growthActivity.activityId, roleId, task.dayIndex, task.cellIndex, task.taskType) + let taskRecord = await ActivityGrowthModel.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); if (addCount) { @@ -553,7 +554,7 @@ export async function accomplishTask(serverId: number, roleId: string, taskType: thirtyDaysActivity.setPlayerRecords(playerRecords); let taskArray = thirtyDaysActivity.findUncompleteTaskByType(taskType); for (let task of taskArray) { - let taskRecord = await ActivityDailyChallengesModel.findDataByCellIndex(serverId, thirtyDaysActivity.activityId, roleId, task.dayIndex, task.cellIndex, task.taskType) + let taskRecord = await ActivityThirtyDaysModel.findDataByCellIndex(serverId, thirtyDaysActivity.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); if (addCount) { @@ -751,10 +752,18 @@ export function isComplete(roleId: string, taskType: TASK_TYPE, taskParam: strin } } else { record[hid] = count; + if (count >= param[1]) { + addCount = count; + break; + } } } else { record = {}; record[hid] = count; + if (count >= param[1]) { + addCount = count; + break; + } } break; } @@ -780,7 +789,11 @@ export function isComplete(roleId: string, taskType: TASK_TYPE, taskParam: strin addCount = count; break; } - + case TASK_TYPE.PVP_WIN: + { + addCount = count; + break; + } default: addCount = 0; break;