diff --git a/game-server/app/servers/role/handler/shopHandler.ts b/game-server/app/servers/role/handler/shopHandler.ts index 751c8c023..e1f6e8f11 100644 --- a/game-server/app/servers/role/handler/shopHandler.ts +++ b/game-server/app/servers/role/handler/shopHandler.ts @@ -40,6 +40,7 @@ export class ShopHandler { let sid = session.get('sid'); let guildCode = session.get('guildCode'); let serverId = session.get('serverId'); + let vipStartTime: number = session.get('vipStartTime'); let { shopItemId, count } = msg; if( count < 0) return resResult(STATUS.WRONG_PARMS); @@ -65,8 +66,14 @@ export class ShopHandler { let userShop = await UserShopModel.findByRoleAndItem(roleId, dicShopItem.id); if(dicShopItem.purchaseLimit != -1) { - if(userShop && userShop.count + count > dicShopItem.purchaseLimit) { - return resResult(STATUS.BUY_COUNT_OVER); + if(vipStartTime > 0 && dicShopItem.purchaseLimit != -1) { + if(userShop && userShop.count + count > dicShopItem.purchaseLimit + dicShopItem.vipPurchaseLimit) { + return resResult(STATUS.BUY_COUNT_OVER); + } + } else { + if(userShop && userShop.count + count > dicShopItem.purchaseLimit) { + return resResult(STATUS.BUY_COUNT_OVER); + } } } diff --git a/shared/pubUtils/dictionary/DicShop.ts b/shared/pubUtils/dictionary/DicShop.ts index 280b48dde..27e42ace2 100644 --- a/shared/pubUtils/dictionary/DicShop.ts +++ b/shared/pubUtils/dictionary/DicShop.ts @@ -20,6 +20,8 @@ export interface DicShop { readonly lvlimit: number; // 购买次数限制 readonly purchaseLimit: number; + // vip购买次数限制 + readonly vipPurchaseLimit: number; // 刷新类型 1-每日 2-每周 3-每月 readonly refreshType: number; // 用于购买的货币 @@ -39,7 +41,8 @@ export function loadShop() { arr.forEach(o => { o.guildLvLimit = o.guildlvlimit == '&'?0: o.guildlvlimit; o.lvlimit = o.lvlimit == '&'?0: o.lvlimit; - o.purchaseLimit = o.purchaselimit == '&'?-1: o.purchaselimit; + o.purchaseLimit = o.purchaselimit == '&'?-1: (o.purchaselimit||0); + o.vipPurchaseLimit = o.vipPurchaseLimit == '&'?-1: (o.vipPurchaseLimit||0); if(!dicShop.has(o.shop)) { dicShop.set(o.shop, [o]); } else { diff --git a/shared/resource/jsons/dic_zyz_shop.json b/shared/resource/jsons/dic_zyz_shop.json index 27d38222b..3d7533edb 100644 --- a/shared/resource/jsons/dic_zyz_shop.json +++ b/shared/resource/jsons/dic_zyz_shop.json @@ -12,7 +12,8 @@ "money": 31002, "price": 50, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 4 }, { "id": 2, @@ -27,7 +28,8 @@ "money": 31002, "price": 800, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 3, @@ -42,7 +44,8 @@ "money": 31002, "price": 1000, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 4, @@ -57,7 +60,8 @@ "money": 31002, "price": 300, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 5, @@ -72,7 +76,8 @@ "money": 31002, "price": 300, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6, @@ -87,7 +92,8 @@ "money": 31002, "price": 400, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 7, @@ -102,7 +108,8 @@ "money": 31002, "price": 250, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 8, @@ -117,7 +124,8 @@ "money": 31002, "price": 200, "chosen": 1, - "indirectId": 1 + "indirectId": 1, + "vipPurchaseLimit": 0 }, { "id": 9, @@ -132,7 +140,8 @@ "money": 31002, "price": 500, "chosen": 1, - "indirectId": 2 + "indirectId": 2, + "vipPurchaseLimit": 0 }, { "id": 10, @@ -147,7 +156,8 @@ "money": 31002, "price": 500, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 11, @@ -162,7 +172,8 @@ "money": 31002, "price": 200, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 2001, @@ -177,7 +188,8 @@ "money": 40005, "price": 200, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 2002, @@ -192,7 +204,8 @@ "money": 40005, "price": 500, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 2003, @@ -207,7 +220,8 @@ "money": 40005, "price": 1200, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 2004, @@ -222,7 +236,8 @@ "money": 40005, "price": 2400, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 2005, @@ -237,7 +252,8 @@ "money": 40005, "price": 10000, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 2006, @@ -252,7 +268,8 @@ "money": 40005, "price": 30, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 2007, @@ -267,7 +284,8 @@ "money": 40005, "price": 25, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 2008, @@ -282,7 +300,8 @@ "money": 40005, "price": 200, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 2009, @@ -297,7 +316,8 @@ "money": 40005, "price": 1500, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 3001, @@ -312,7 +332,8 @@ "money": 40001, "price": 100, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 3002, @@ -327,7 +348,8 @@ "money": 40001, "price": 400, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 3003, @@ -342,7 +364,8 @@ "money": 40001, "price": 10, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 3004, @@ -357,7 +380,8 @@ "money": 40001, "price": 20, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 3005, @@ -372,7 +396,8 @@ "money": 40001, "price": 30, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 3006, @@ -387,7 +412,8 @@ "money": 40001, "price": 50, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 4000, @@ -402,7 +428,8 @@ "money": 40004, "price": 150, "chosen": 1, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 4001, @@ -417,7 +444,8 @@ "money": 40004, "price": 400, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 4002, @@ -432,7 +460,8 @@ "money": 40004, "price": 10, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 4003, @@ -447,7 +476,8 @@ "money": 40004, "price": 45, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 4004, @@ -462,7 +492,8 @@ "money": 40004, "price": 60, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 4005, @@ -477,7 +508,8 @@ "money": 40004, "price": 75, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 4006, @@ -492,7 +524,8 @@ "money": 40004, "price": 90, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 4007, @@ -507,7 +540,8 @@ "money": 40004, "price": 120, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 4008, @@ -522,7 +556,8 @@ "money": 40004, "price": 100, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 5001, @@ -537,7 +572,8 @@ "money": 40014, "price": 30, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 5002, @@ -552,7 +588,8 @@ "money": 40014, "price": 30, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 5003, @@ -567,7 +604,8 @@ "money": 40006, "price": 30, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 5004, @@ -582,7 +620,8 @@ "money": 40006, "price": 10, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6001, @@ -597,7 +636,8 @@ "money": 40002, "price": 500, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6002, @@ -612,7 +652,8 @@ "money": 40002, "price": 400, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6003, @@ -627,7 +668,8 @@ "money": 40002, "price": 250, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6004, @@ -642,7 +684,8 @@ "money": 40002, "price": 500, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6005, @@ -657,7 +700,8 @@ "money": 40002, "price": 200, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6006, @@ -672,7 +716,8 @@ "money": 40002, "price": 200, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6007, @@ -687,7 +732,8 @@ "money": 40002, "price": 200, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6008, @@ -702,7 +748,8 @@ "money": 40002, "price": 200, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6009, @@ -717,7 +764,8 @@ "money": 40002, "price": 200, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6010, @@ -732,7 +780,8 @@ "money": 40002, "price": 500, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6011, @@ -747,7 +796,8 @@ "money": 40002, "price": 500, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6012, @@ -762,7 +812,8 @@ "money": 40002, "price": 500, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6013, @@ -777,7 +828,8 @@ "money": 40002, "price": 500, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6014, @@ -792,7 +844,8 @@ "money": 40002, "price": 1000, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6015, @@ -807,7 +860,8 @@ "money": 40002, "price": 1000, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6016, @@ -822,7 +876,8 @@ "money": 40002, "price": 1000, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6017, @@ -837,7 +892,8 @@ "money": 40002, "price": 1000, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6018, @@ -852,7 +908,8 @@ "money": 40002, "price": 2500, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6019, @@ -867,7 +924,8 @@ "money": 40002, "price": 2500, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6020, @@ -882,7 +940,8 @@ "money": 40002, "price": 2500, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6021, @@ -897,7 +956,8 @@ "money": 40002, "price": 2500, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6022, @@ -912,7 +972,8 @@ "money": 40002, "price": 5000, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6023, @@ -927,7 +988,8 @@ "money": 40002, "price": 5000, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6024, @@ -942,7 +1004,8 @@ "money": 40002, "price": 5000, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6025, @@ -957,7 +1020,8 @@ "money": 40002, "price": 5000, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6026, @@ -972,7 +1036,8 @@ "money": 40002, "price": 8000, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6027, @@ -987,7 +1052,8 @@ "money": 40002, "price": 8000, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6028, @@ -1002,7 +1068,8 @@ "money": 40002, "price": 8000, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6029, @@ -1017,7 +1084,8 @@ "money": 40002, "price": 8000, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6030, @@ -1032,7 +1100,8 @@ "money": 40002, "price": 15000, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6031, @@ -1047,7 +1116,8 @@ "money": 40002, "price": 15000, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6032, @@ -1062,7 +1132,8 @@ "money": 40002, "price": 15000, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 6033, @@ -1077,7 +1148,8 @@ "money": 40002, "price": 15000, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 7001, @@ -1092,7 +1164,8 @@ "money": 40007, "price": 100, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 7002, @@ -1107,7 +1180,8 @@ "money": 40007, "price": 250, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 7003, @@ -1122,7 +1196,8 @@ "money": 40007, "price": 600, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 7004, @@ -1137,7 +1212,8 @@ "money": 40007, "price": 1200, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 7005, @@ -1152,7 +1228,8 @@ "money": 40007, "price": 5000, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 7006, @@ -1167,7 +1244,8 @@ "money": 40007, "price": 20, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 8001, @@ -1182,7 +1260,8 @@ "money": 40011, "price": 10, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 8002, @@ -1197,7 +1276,8 @@ "money": 40011, "price": 10, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 8003, @@ -1212,7 +1292,8 @@ "money": 40011, "price": 10, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 8004, @@ -1227,7 +1308,8 @@ "money": 40011, "price": 10, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 8005, @@ -1242,7 +1324,8 @@ "money": 40011, "price": 1000, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 8006, @@ -1257,7 +1340,8 @@ "money": 40011, "price": 2000, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 8007, @@ -1272,7 +1356,8 @@ "money": 40011, "price": 4000, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 }, { "id": 8008, @@ -1287,6 +1372,7 @@ "money": 40011, "price": 800, "chosen": 0, - "indirectId": 0 + "indirectId": 0, + "vipPurchaseLimit": 0 } ] \ No newline at end of file