From ccfd713e99081322e68bc8c2f3f1ea02f0df52eb Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 02 一月 2020 14:11:11 +0800
Subject: [PATCH] 8358 【主干】【后端】坐骑修改(修复bug)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_CrossGrassland.py |   52 ++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 36 insertions(+), 16 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_CrossGrassland.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_CrossGrassland.py
index 2614330..fe910da 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_CrossGrassland.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_CrossGrassland.py
@@ -25,6 +25,7 @@
 import PlayerControl
 import ChConfig
 import FBCommon
+import ItemControler
 
 FBDict_SyncFBNPC = 'SyncFBNPC' #是否需要同步副本NPC
 
@@ -139,7 +140,9 @@
             
         if mapID == ChConfig.Def_FBMapID_CrossGrasslandXian:
             FBCommon.DelFBEnterTicket(curPlayer, mapID, lineID)
-            
+    else:
+        DoCheckUpdateGrasslandEnd(curPlayer)
+        
     SyncCustomSceneNPCCount(curPlayer, mapID, lineID)
     if mapID == ChConfig.Def_FBMapID_CrossGrasslandXian:
         boxNPCID = IpyGameDataPY.GetFuncCfg("CrossGrasslandCfg", 1)
@@ -243,21 +246,28 @@
         return
     
     # 采集次数是否已用完
-    collNPCIpyDataList = IpyGameDataPY.GetIpyGameDataListNotLog("MapRefreshNPC", mapID)
-    if not collNPCIpyDataList:
-        return
-    
-    for collIpyData in collNPCIpyDataList:
-        npcIDList = collIpyData.GetNPCIDList()
-        for npcID in npcIDList:
-            collectNPCIpyData = IpyGameDataPY.GetIpyGameData("CollectNPC", npcID)
-            if not collectNPCIpyData:
-                return
-            limitMaxTime = collectNPCIpyData.GetMaxCollectCount()
-            totalCollTime = NPCCommon.GetTodayCollectCount(curPlayer, npcID)
-            if totalCollTime < limitMaxTime:
-                GameWorld.DebugLog("草园NPC采集次数未用完! npcID=%s,totalCollTime=%s < limitMaxTime=%s" % (npcID, totalCollTime, limitMaxTime))
-                return
+    if mapID == PlayerControl.GetCustomMapID(curPlayer):
+        refreshMapNPCDict = IpyGameDataPY.GetFuncEvalCfg("CrossGrasslandCfg", 2)
+        npcCountDict = refreshMapNPCDict.get((mapID, lineID), {})
+        npcIDList = npcCountDict.keys()
+    else:
+        collNPCIpyDataList = IpyGameDataPY.GetIpyGameDataListNotLog("MapRefreshNPC", mapID)
+        if not collNPCIpyDataList:
+            return
+        
+        npcIDList = []
+        for collIpyData in collNPCIpyDataList:
+            npcIDList += collIpyData.GetNPCIDList()
+            
+    for npcID in npcIDList:
+        collectNPCIpyData = IpyGameDataPY.GetIpyGameData("CollectNPC", npcID)
+        if not collectNPCIpyData:
+            return
+        limitMaxTime = collectNPCIpyData.GetMaxCollectCount()
+        totalCollTime = NPCCommon.GetTodayCollectCount(curPlayer, npcID)
+        if totalCollTime < limitMaxTime:
+            GameWorld.DebugLog("草园NPC采集次数未用完! npcID=%s,totalCollTime=%s < limitMaxTime=%s" % (npcID, totalCollTime, limitMaxTime))
+            return
             
     # 宝箱怪攻击次数是否已用完
     boxNPCID = IpyGameDataPY.GetFuncCfg("CrossGrasslandCfg", 1)
@@ -287,6 +297,16 @@
         isAuctionItem = 0
         itemID, itemCount = itemCountInfo/100, itemCountInfo%100
         awardItemList.append([itemID, itemCount, isAuctionItem])
+    extraAward = [] #额外物品奖励
+    ipyData = IpyGameDataPY.GetIpyGameDataByCondition("FairyDomain", {"MapID":mapID, "LineID":lineID})
+    if ipyData:
+        fdEventID = ipyData.GetID()
+        extraAward = PlayerFairyDomain.GetFairyAppointAward(curPlayer, fdEventID)
+    if not extraAward:
+        extraAward = FBCommon.GetFBLineReward(mapID, lineID)
+    if extraAward:
+        ItemControler.GivePlayerItemOrMail(curPlayer, extraAward)
+        awardItemList += extraAward
     overDict = {FBCommon.Over_itemInfo:FBCommon.GetJsonItemList(awardItemList)}
     FBCommon.NotifyFBOver(curPlayer, mapID, lineID, 1, overDict)
     ResetGrasslandAwardRecord(curPlayer)

--
Gitblit v1.8.0