From 1498950478544f095db944509fe3ea72e4c889d1 Mon Sep 17 00:00:00 2001 From: luying Date: Mon, 9 May 2022 15:45:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=AF=8F=E6=97=A5=EF=BC=9A=E6=89=AB=E8=8D=A1?= =?UTF-8?q?=E6=AC=A1=E6=95=B0=E5=BF=98=E8=AE=B0=E8=80=83=E8=99=91=E6=9C=88?= =?UTF-8?q?=E5=8D=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../servers/battle/handler/normalBattleHandler.ts | 2 +- game-server/app/services/dailyBattleService.ts | 12 +++++------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/game-server/app/servers/battle/handler/normalBattleHandler.ts b/game-server/app/servers/battle/handler/normalBattleHandler.ts index 12fa8cd11..ec10c2e48 100644 --- a/game-server/app/servers/battle/handler/normalBattleHandler.ts +++ b/game-server/app/servers/battle/handler/normalBattleHandler.ts @@ -182,7 +182,7 @@ export class NormalBattleHandler { let dungeonNum = {}; if (warInfo.warType == WAR_TYPE.DAILY) { - let checkResult = await checkDailyAndIncrease(roleId, warStar, battleId, isSuccess?1:0, false, stars); + let checkResult = await checkDailyAndIncrease(roleId, warStar, battleId, isSuccess?1:0, false, stars, role); if (checkResult.status == -1) { return checkResult.resResult; } diff --git a/game-server/app/services/dailyBattleService.ts b/game-server/app/services/dailyBattleService.ts index 8f34526de..c7f1ec6fa 100644 --- a/game-server/app/services/dailyBattleService.ts +++ b/game-server/app/services/dailyBattleService.ts @@ -88,7 +88,7 @@ export async function checkDaily(roleId: string, battleId: number, inc: number) * @param isRef 在计算之前是否检查每日的刷新 */ -export async function checkDailyAndIncrease(roleId: string, warStar: WarStar[], battleId: number, inc: number, isRef: boolean, stars = []) { +export async function checkDailyAndIncrease(roleId: string, warStar: WarStar[], battleId: number, inc: number, isRef: boolean, stars = [], role?: RoleType) { let { newWarStars } = calculateWarStar(warStar, battleId, stars); let dailyWar = gameData.war.get(battleId); @@ -96,17 +96,15 @@ export async function checkDailyAndIncrease(roleId: string, warStar: WarStar[], let type = dailyWar.dailyType; let war = getDailyWarStatus(dailyWar, newWarStars); - let curDaily = gameData.daily.find(cur => cur.dailyType == type); - if(!curDaily) return { status: -1, resResult: resResult(STATUS.DAILY_TYPE_NOT_FOUND) }; - let dailyRecord: any; if(isRef) { dailyRecord = await DailyRecordModel.refreshRecord(roleId, type); } else { // 如果是手动挑战,由于在进入时已经检查过了,所以即使结算时过去了一天也还是累计在上一天 dailyRecord = await DailyRecordModel.getDailyRecordById(roleId, type); } - let { count = 0, buyCount = 0 } = dailyRecord; - if(count + inc > curDaily.timesPerDay + buyCount ) { + + let { count } = await getDailyNum(dailyRecord, role); + if(count < inc) { return { status: -1, resResult: resResult(STATUS.DAILY_TIMES_LACK) } } let result = await DailyRecordModel.increseDailyCount(roleId, type, inc); @@ -123,7 +121,7 @@ export async function getDailyNum(dailyRecord: DailyRecord, role?: RoleType) { role = await RoleModel.findByRoleId(roleId, 'vipStartTime'); } timesPerDay = getVipDailyCnt(timesPerDay, role); - + console.log('###### getDailyNum', timesPerDay, count, buyCount, timesCanBuy) return {count: timesPerDay - count + buyCount, buyCount: timesCanBuy - buyCount} }