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 }