From 73a30b6eb0505d1429f03f63fed825245556b42a Mon Sep 17 00:00:00 2001 From: liangtongchuan Date: Fri, 16 Oct 2020 12:07:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8C=82=E6=9C=BA=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E8=AE=A1=E7=AE=97=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game-server/app/services/battleService.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/game-server/app/services/battleService.ts b/game-server/app/services/battleService.ts index 13e4bd255..d5e7babdc 100644 --- a/game-server/app/services/battleService.ts +++ b/game-server/app/services/battleService.ts @@ -102,7 +102,8 @@ export async function calcuHangUpReward(roleId: string, speedUp = false, speedUp let { towerLv, hangUpSpdUpCnt, lastSpdUpTime } = await RoleModel.findByRoleId(roleId); let { startLv, startTime} = await HangUpRecordModel.getCurRec(roleId); let towerInfo = getTowerDataByLv(towerLv - 1); // towerLv 是当前层,奖励计算按照已经通过的层,即上一层 - let multi = 1; + let multi = 1; // 结算奖励的倍数,受最大时间限制 + let multiReal = 1; // 距开始挂机实际过去的时间单位 if (speedUp) { if (hangUpSpdUpCnt >= speedUpCnt || shouldRefresh(lastSpdUpTime, new Date, HANG_UP_CONSTS.REFRESH_TIME, 1)) { multi = speedUpCnt; @@ -111,12 +112,13 @@ export async function calcuHangUpReward(roleId: string, speedUp = false, speedUp } } else { let deltaTime = curTime.getTime() - startTime.getTime(); + multiReal = Math.floor(deltaTime / HANG_UP_CONSTS.UNIT_TIME); if (deltaTime > HANG_UP_CONSTS.MAX_TIME) deltaTime = HANG_UP_CONSTS.MAX_TIME; multi = Math.floor(deltaTime / HANG_UP_CONSTS.UNIT_TIME); } return { endLv: towerLv - 1, - endTime: new Date(startTime.getTime() + multi * HANG_UP_CONSTS.UNIT_TIME), + endTime: new Date(startTime.getTime() + multiReal * HANG_UP_CONSTS.UNIT_TIME), timeReward: towerInfo.timeReward, multi };