From 0494d4903383737139445b11e525a9e2ca583801 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期四, 21 二月 2019 16:47:35 +0800
Subject: [PATCH] 6268 【后端】【1.6.100】增加道具七日巡礼积分和节日巡礼积分支持

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/FunctionNPCCommon.py |   60 +++++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 45 insertions(+), 15 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/FunctionNPCCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/FunctionNPCCommon.py
index b14d26d..2573564 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/FunctionNPCCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/FunctionNPCCommon.py
@@ -64,6 +64,7 @@
 import PlayerRune
 import GameFuncComm
 import PlayerFairyCeremony
+import PlayerNewFairyCeremony
 import PlayerSpringSale
 import PyGameData
 
@@ -215,18 +216,29 @@
     elif onEventType == ShareDefine.Def_OnEventTypeEx:
         refreshType = [4]
         openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay)
-        if openServerDay % 3 == 0:
-            refreshType = [4,7]
+        isMixServer = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_IsMixServer)
+        if isMixServer:
+            mixServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_MixServerDay)
+            if mixServerDay % 3 == 0:
+                refreshType.append(7)
+        elif openServerDay % 3 == 0:
+            refreshType.append(7)
     else:
         return
-    __ResetShopItemBuyCount(curPlayer, refreshType)
+    ResetShopItemBuyCount(curPlayer, refreshType)
     return
 
 ##商店物品OnWeek
 # @param curPlayer 玩家实例
 # @return 
 def ShopItemOnWeek(curPlayer, onEventType):
-    __ResetShopItemBuyCount(curPlayer, [onEventType])
+    if onEventType == ShareDefine.Def_OnEventType:
+        refreshType = [1]
+    elif onEventType == ShareDefine.Def_OnEventTypeEx:
+        refreshType = [2]
+    else:
+        return
+    ResetShopItemBuyCount(curPlayer, refreshType)
     return
 
 ##商店物品OnMonth
@@ -239,18 +251,29 @@
         refreshType = 6
     else:
         return
-    __ResetShopItemBuyCount(curPlayer, [refreshType])
+    ResetShopItemBuyCount(curPlayer, [refreshType])
     return
 
-def __ResetShopItemBuyCount(curPlayer, onEventTypeList):
-    #重置商店物品购买次数  1:周一0点刷新    2:周一5点刷新    3:每日0点刷新    4:每日5点刷新    5每月0点    6每月5点
+def ShopItemOnCrossPKSeasonChange(curPlayer):
+    ## 按跨服PK赛季重置
+    refreshType = 8
+    ResetShopItemBuyCount(curPlayer, [refreshType])
+    return
+
+def ResetShopItemBuyCount(curPlayer, resetTypeList):
+    #@param resetTypeList: 需要重置的类型列表
+    #重置商店物品购买次数  1:周一0点刷新    2:周一5点刷新    3:每日0点刷新    4:每日5点刷新    5每月0点    6每月5点   7每3天5点  8每赛季
+    if not resetTypeList:
+        # 暂定必须指定类型列表,防止终身限购的误被重置
+        return
+    
     syncIndexList = []
     ipyDataMgr = IpyGameDataPY.IPY_Data()
     for i in xrange(ipyDataMgr.GetStoreCount()):
         shopItem = ipyDataMgr.GetStoreByIndex(i)
         if not shopItem.GetLimitCnt():
             continue
-        if shopItem.GetRefreshType() not in onEventTypeList:
+        if shopItem.GetRefreshType() not in resetTypeList:
             continue
         dayBuyCntKey = ChConfig.Def_PDict_ShopItemDayBuyCnt % shopItem.GetID()
         curDayBuyCnt = curPlayer.NomalDictGetProperty(dayBuyCntKey)
@@ -377,7 +400,10 @@
 # @param tick 时间戳
 # @return 返回值真, 逻辑运行成功
 def BuyItem(curPlayer, tick):
-
+    
+    if GameWorld.IsCrossServer():
+        return
+    
     buyItemList = IPY_GameWorld.IPY_CBuyItemList()    
     itemIndex = buyItemList.GetBuyItemIndex()
     if itemIndex < 0:
@@ -398,7 +424,7 @@
         if not state:
             GameWorld.DebugLog("限时特惠非活动中!state=%s" % (state), curPlayer.GetPlayerID())
             return
-        shopTypeList = PlayerSpringSale.GetShopTypeList(actInfo.get(ShareDefine.ActKey_CfgID, 0), actInfo.get(ShareDefine.ActKey_DayIndex, 0))
+        shopTypeList = PlayerSpringSale.GetShopTypeList(actInfo.get(ShareDefine.ActKey_CfgID, 0), actInfo.get(ShareDefine.ActKey_DayIndex, 0), actInfo.get(ShareDefine.ActKey_WorldLV, 0))
         if not shopTypeList:
             return
         actShopType = shopTypeList[-1] if state > len(shopTypeList) else shopTypeList[state - 1]
@@ -412,7 +438,7 @@
         if not state:
             GameWorld.DebugLog("限时抢购非活动中!state=%s" % (state), curPlayer.GetPlayerID())
             return
-        shopTypeList = PlayerFlashSale.GetShopTypeList(actInfo.get(ShareDefine.ActKey_CfgID, 0), actInfo.get(ShareDefine.ActKey_DayIndex, 0), state)
+        shopTypeList = PlayerFlashSale.GetShopTypeList(actInfo.get(ShareDefine.ActKey_CfgID, 0), actInfo.get(ShareDefine.ActKey_DayIndex, 0), state, actInfo.get(ShareDefine.ActKey_WorldLV, 0))
         if not shopTypeList:
             return
         actShopType = shopTypeList[0]
@@ -472,10 +498,10 @@
     jobItemList = ipyData.GetJobItem()
     totalItemList = []
     if itemID:
-        jobItemID = __GetShopJobItem(job, itemID, jobItemList)
+        jobItemID = GetShopJobItem(job, itemID, jobItemList)
         totalItemList.append([jobItemID, itemCount * clientBuyCount, isBind])
     for itemIDEx, itemCountEx, isBindEx in itemListEx:
-        jobItemID = __GetShopJobItem(job, itemIDEx, jobItemList)
+        jobItemID = GetShopJobItem(job, itemIDEx, jobItemList)
         totalItemList.append([jobItemID, itemCountEx * clientBuyCount, isBindEx])
     #允许价钱配置0,用来免费购买
     if not totalItemList:
@@ -592,9 +618,12 @@
     SyncShoppingResult(curPlayer, itemIndex, clientBuyCount)
     if itemIndex in IpyGameDataPY.GetFuncEvalCfg('CeremonyFireParty', 1, {}).values():
         PlayerFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_Fireworks, clientBuyCount)
+    if itemIndex in IpyGameDataPY.GetFuncEvalCfg('NewCeremonyFireParty', 1, {}).values():
+        PlayerNewFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_Fireworks, clientBuyCount)
+    
     return
 
-def __GetShopJobItem(job, itemID, jobItemList):
+def GetShopJobItem(job, itemID, jobItemList):
     ## 获取商城物品对应的职业物品, 职业从1开始
     for jobItemIDList in jobItemList:
         if type(jobItemIDList) not in [list, tuple]:
@@ -636,7 +665,8 @@
     #烟花狂欢
     if itemIndex in IpyGameDataPY.GetFuncEvalCfg('CeremonyFireParty', 1, {}).values():
         return not PlayerFairyCeremony.IsCanBuyFireworks(curPlayer, itemIndex)
-    
+    if itemIndex in IpyGameDataPY.GetFuncEvalCfg('NewCeremonyFireParty', 1, {}).values():
+        return not PlayerNewFairyCeremony.IsCanBuyFireworks(curPlayer, itemIndex)
 #    if itemIndex in dict(IpyGameDataPY.GetFuncEvalCfg('SuperGiftTimeList')):
 #        return not CheckSuperGiftBuy(curPlayer, itemIndex)
     if shopNPCID == 16:#神秘限购

--
Gitblit v1.8.0