From 20de6959f02b1d0ffdd9ec33312d89f67818be37 Mon Sep 17 00:00:00 2001 From: luying Date: Thu, 28 Jul 2022 15:47:48 +0800 Subject: [PATCH] =?UTF-8?q?=E9=95=87=E5=BF=B5=E5=A1=94=EF=BC=9A=E5=8A=A0?= =?UTF-8?q?=E9=80=9F=E6=8C=82=E6=9C=BA=E6=9F=A5=E8=AF=A2=E5=8E=86=E5=8F=B2?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game-server/app/services/battleService.ts | 6 +++--- gm-server/app/service/users.ts | 5 +++-- shared/db/HangUpSpdUpRec.ts | 5 +++++ 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/game-server/app/services/battleService.ts b/game-server/app/services/battleService.ts index 1df949c79..7bfbb2edc 100644 --- a/game-server/app/services/battleService.ts +++ b/game-server/app/services/battleService.ts @@ -300,14 +300,14 @@ export async function calcuHangUpReward(role: RoleType, speedUp = false, speedUp let towerInfo = gameData.tower.get(towerLv - 1); // towerLv 是当前层,奖励计算按照已经通过的层,即上一层 let baseReward = towerInfo.rewardOfcollect; - if (speedUp) { // 加速,直接收取6小时收益,小数的累积和普通收取独立 + if (speedUp) { // 加速,直接收取2小时收益,小数的累积和普通收取独立 if (hangUpSpdUpCnt + speedUpCnt <= dicParam.TOWER_BOOST.TOWER_BOOSTTIME || !lastSpdUpTime || shouldRefresh(lastSpdUpTime, new Date)) { // 可加速 let startTime = curTime; let endTime = new Date(curTime.getTime() + HANG_UP_CONSTS.SPD_UP_REC_TIME); let deltaTime = endTime.getTime() - startTime.getTime(); // 累计的挂机时间,受最大时间限制 - let spdUpRec = await HangUpSpdUpRecModel.getSpdUpRec(roleId, towerLv - 1); - let goods = []; + let goods: {gid: number, count: number}[] = []; + let spdUpRec = await HangUpSpdUpRecModel.getLatestSpdUpRec(roleId); if (spdUpRec) { let { notReceivedGoodsList = [], cnt } = spdUpRec; let notReceivedGoods = notReceivedGoodsList.find(cur => cur.cnt == cnt); diff --git a/gm-server/app/service/users.ts b/gm-server/app/service/users.ts index f3bd33b46..7a09df707 100644 --- a/gm-server/app/service/users.ts +++ b/gm-server/app/service/users.ts @@ -22,6 +22,7 @@ import { UserGuildModel } from '@db/UserGuild'; import { TowerRecordModel } from '@db/TowerRecord'; import { nowSeconds } from '@pubUtils/timeUtil'; import { RoleCeModel, RoleCeType } from '@db/RoleCe'; +import HangUpRecord from '@db/HangUpRecord'; // import { resResult } from '@pubUtils/util'; @@ -577,10 +578,10 @@ export default class GMUsers extends Service { towerLv = lv; break; } } - await RoleModel.updateRoleInfo(roleId, { towerLv }); + let role = await RoleModel.updateRoleInfo(roleId, { towerLv }); await TowerRecordModel.deleteAccount(roleId); await TowerRecordModel.insertTowerRec(roleId, towerLv); - // await HangUpRecordModel.updateRec(roleId, role.roleName, towerLv, new Date(), []); + await HangUpRecord.updateRec(roleId, role.roleName, towerLv, new Date(), []); } public async setCreateTime(roleId: string, day: number) { diff --git a/shared/db/HangUpSpdUpRec.ts b/shared/db/HangUpSpdUpRec.ts index 6fc93d095..d89ebf826 100644 --- a/shared/db/HangUpSpdUpRec.ts +++ b/shared/db/HangUpSpdUpRec.ts @@ -39,6 +39,11 @@ export default class HangUpSpdUpRec extends BaseModel { return rec; } + public static async getLatestSpdUpRec(roleId, lean = true ) { + let rec = await HangUpSpdUpRecModel.findOne({roleId}).sort({ lv: -1 }).lean(lean); + return rec; + } + public static async updateRec(roleId, roleName, multi, lv, needReceiveGoods: Array<{gid:number, count: number}>, lean = true ) { if (multi <= 0) return null; let rec: HangUpSpdUpRecType = await HangUpSpdUpRecModel.findOneAndUpdate({roleId, lv, roleName}, {$inc: {cnt: multi}}, {upsert: true, new: true}).lean(lean);