From 42e373cc14e339b826bcc9903244ee71efa4ed3b Mon Sep 17 00:00:00 2001 From: luying Date: Sat, 18 Feb 2023 20:02:59 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9E=20fix(=E5=85=85=E5=80=BC):=20?= =?UTF-8?q?=E9=99=90=E8=B4=AD=E7=A4=BC=E5=8C=85=E9=99=90=E5=88=B6=E5=85=85?= =?UTF-8?q?=E5=80=BC=E6=AC=A1=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/services/activity/limitPackageService.ts | 15 +++++++++++++++ game-server/app/services/orderService.ts | 8 +++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/game-server/app/services/activity/limitPackageService.ts b/game-server/app/services/activity/limitPackageService.ts index 409c52d4a..082d7b15a 100644 --- a/game-server/app/services/activity/limitPackageService.ts +++ b/game-server/app/services/activity/limitPackageService.ts @@ -140,3 +140,18 @@ export async function makeLimitPackageReward(roleId: string, roleName: string, s data: Object.assign(result, { item: item, activityId: activityId }) } } + +export async function checkLimitPackageCanBuy(roleId: string, serverId: number, activityData: ActivityModelType, productID: string) { + if(!activityData) return false + let createTime = await getRoleCreateTime(roleId); + let serverTime = await getServerCreateTime(serverId); + let playerData = new LimitShopData(activityData, createTime, serverTime); + + let playerRecord: ActivityShopModelType = await ActivityShopModel.findData(activityData.activityId, roleId, playerData.roundIndex); + playerData.setPlayerRecords(playerRecord); + + let item = playerData.findItemByProductID(productID); + if (!item) return false + if (item.countMax > 0 && item.buyCount >= item.countMax) return false; + return true; +} \ No newline at end of file diff --git a/game-server/app/services/orderService.ts b/game-server/app/services/orderService.ts index 121f3ae50..06289b649 100644 --- a/game-server/app/services/orderService.ts +++ b/game-server/app/services/orderService.ts @@ -11,7 +11,7 @@ import { ActivityModel, ActivityModelType } from '../db/Activity'; import { ActivityFirstGiftModel } from '../db/ActivityFirstGift'; import { ServerlistModel } from '../db/Serverlist'; import { makeGrowthFund } from './activity/growthFundService'; -import { makeLimitPackageReward } from './activity/limitPackageService'; +import { checkLimitPackageCanBuy, makeLimitPackageReward } from './activity/limitPackageService'; import { makeShop } from './activity/treasureHuntService'; import { makeSelfServerShop } from './activity/selfServiceShopActivityService'; import { makeRefreshShopReward } from './activity/refreshShopService'; @@ -52,6 +52,12 @@ export async function checkOrderCanBuy(roleId: string, serverId: number, activit { return await checkShopCanBuyInOrder(roleId, serverId, activityData, productID) } + case ACTIVITY_TYPE.NEW_PLAYER_LIMIT_PACKAGE: + case ACTIVITY_TYPE.LIMIT_PACKAGE_SHOP_DAILY: + case ACTIVITY_TYPE.LIMIT_PACKAGE_SHOP_WEEKLY: + { + return await checkLimitPackageCanBuy(roleId, serverId, activityData, productID) + } } return true }