From 608bd56472d25fcbccb572df24a71eab836e1fe7 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期二, 21 五月 2019 17:23:15 +0800
Subject: [PATCH] 6603 【后端】【2.0】增加新版的sp和被动技能 - 1090减速受符文影响

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFlashGiftbag.py |   33 ++++++++++++++++++++++-----------
 1 files changed, 22 insertions(+), 11 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFlashGiftbag.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFlashGiftbag.py
index 87e8612..45d0497 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFlashGiftbag.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFlashGiftbag.py
@@ -24,18 +24,19 @@
 import DataRecordPack
 import ItemControler
 import IPY_GameWorld
+import PlayerWeekParty
 import ItemCommon
 import GameWorld
 import ChConfig
 
 
-def GetGiftbagTypeList(cfgID, dayIndex):
+def GetGiftbagTypeList(cfgID, dayIndex, woldLV):
     if cfgID == None or dayIndex == None:
         return []
     ipyData = IpyGameDataPY.GetIpyGameData("ActFlashGiftbag", cfgID)
     if not ipyData:
         return []
-    giftbagTypeList = ipyData.GetGiftbagTypeList()
+    giftbagTypeList = GameWorld.GetDictValueByRangeKey(ipyData.GetGiftbagTypeList(), woldLV, [])
     todayGiftbag = giftbagTypeList[-1] if dayIndex >= len(giftbagTypeList) else giftbagTypeList[dayIndex]
     return todayGiftbag
 
@@ -64,7 +65,7 @@
     cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
     
     playerActID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FlashGiftbagID) # 玩家身上的活动ID
-    giftbagTypeList = [] if not cfgID else GetGiftbagTypeList(cfgID, actInfo.get(ShareDefine.ActKey_DayIndex, 0))
+    giftbagTypeList = [] if not cfgID else GetGiftbagTypeList(cfgID, actInfo.get(ShareDefine.ActKey_DayIndex, 0), actInfo.get(ShareDefine.ActKey_WorldLV, 0))
     isReset = False
     if actID != playerActID:
         isReset = True
@@ -122,7 +123,7 @@
         DataRecordPack.DR_CTGError(curPlayer, "FlashGiftbag state is 0!", addDRDict)
         return
     
-    giftbagTypeList = GetGiftbagTypeList(actInfo.get(ShareDefine.ActKey_CfgID, 0), actInfo.get(ShareDefine.ActKey_DayIndex, 0))
+    giftbagTypeList = GetGiftbagTypeList(actInfo.get(ShareDefine.ActKey_CfgID, 0), actInfo.get(ShareDefine.ActKey_DayIndex, 0), actInfo.get(ShareDefine.ActKey_WorldLV, 0))
     if not giftbagTypeList:
         DataRecordPack.DR_CTGError(curPlayer, "FlashGiftbag GiftbagTypeList is null!", addDRDict)
         return
@@ -142,7 +143,7 @@
         return
     
     giftbagID = giftbagIpyData.GetGiftbagID()
-    giftItemList = giftbagIpyData.GetGiftItemList()
+    giftItemList = __GetJobItemList(giftbagIpyData.GetGiftItemList(), curPlayer.GetJob()) 
     addDRDict.update({"giftbagID":giftbagID, "giftItemList":giftItemList})
     buyCountLimit = giftbagIpyData.GetBuyCountLimit()
     buyCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FlashGiftbagBuyCount % giftbagID)
@@ -161,19 +162,29 @@
             PlayerControl.SendMailByKey("", [curPlayer.GetPlayerID()], giftItemList)
         else:
             for itemID, itemCount, isBind in giftItemList:
-                ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isBind, [IPY_GameWorld.rptItem], 
+                ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, 0, [IPY_GameWorld.rptItem], 
                                              event=[ChConfig.ItemGive_CTG, True, addDRDict])
     
     # 取玩家APPID,混服使用
-    appID = GameWorld.GetPlayerPlatform(curPlayer.GetAccID())
+    appID = GameWorld.GetPlayerPlatform(curPlayer)
     notifyKey = giftbagIpyData.GetNotifyKey()
     if notifyKey:
         orderIpyData = GetFlashGiftbagIDOrderInfoIpyData(giftbagID, appID)
         rmb = 0 if not orderIpyData else int(orderIpyData.GetPayRMBNum())
         PlayerControl.WorldNotify(0, notifyKey, [curPlayer.GetPlayerName(), rmb, giftbagIpyData.GetMainItemID()])
-        
+    
     SyncFlashGiftbagBuyCount(curPlayer, [giftbagID])
+    PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_GiftBag, actGiftbagType, False)
     return True
+
+def __GetJobItemList(itemList, job):
+    jobItemList = []
+    for itemID, itemCnt, isBind in itemList:
+        if type(itemID) == int:
+            jobItemList.append([itemID, itemCnt, isBind])
+        elif job in itemID:
+            jobItemList.append([itemID[job], itemCnt, isBind])
+    return jobItemList
 
 def SyncFlashGiftbagBuyCount(curPlayer, syncIDList=[], giftbagTypeList=[]):
     ## 通知限时礼包玩家活动信息
@@ -219,7 +230,7 @@
     cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
     if not cfgID:
         return
-    giftbagTypeList = GetGiftbagTypeList(cfgID, actInfo.get(ShareDefine.ActKey_DayIndex, 0))
+    giftbagTypeList = GetGiftbagTypeList(cfgID, actInfo.get(ShareDefine.ActKey_DayIndex, 0), actInfo.get(ShareDefine.ActKey_WorldLV, 0))
     
     if not giftbagTypeList:
         return
@@ -235,7 +246,7 @@
         return
     
     # 取玩家APPID,混服使用
-    appID = GameWorld.GetPlayerPlatform(curPlayer.GetAccID())
+    appID = GameWorld.GetPlayerPlatform(curPlayer)
     
     openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay) + 1
     packInfo = ChPyNetSendPack.tagMCFlashGiftbagInfo()
@@ -272,7 +283,7 @@
             giftBag.RMB = 0 if not orderIpyData else int(orderIpyData.GetPayRMBNum())
             giftBag.RMBOriginal = giftIpyData.GetOriginalRMB()
             giftBag.ItemInfo = []
-            for itemID, itemCount, isBind in giftIpyData.GetGiftItemList():
+            for itemID, itemCount, isBind in __GetJobItemList(giftIpyData.GetGiftItemList(), curPlayer.GetJob()):
                 item = ChPyNetSendPack.tagMCFlashGiftbagItem()
                 item.ItemID = itemID
                 item.ItemCount = itemCount

--
Gitblit v1.8.0