From 485144792e0323a8467b83ab3e6da22e41f0b4b3 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期二, 06 十一月 2018 14:13:56 +0800
Subject: [PATCH] 4592 【1.2】【开发】潜力技能升级增加流向记录升级成功率

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py |   16 +++++++++++++---
 1 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
index c6753db..374823e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
@@ -3919,7 +3919,7 @@
                 return moneyID
         return moneyItemList[-1][1]
     
-    def __NPCSpecialDropItem(self, ownerPlayerList, ipyDrop):
+    def __NPCSpecialDropItem(self, dropPlayer, ownerPlayerList, ipyDrop):
         '''特殊掉落 (私有特殊掉落 + 击杀次数特殊掉落), 支持摸怪
         @return: None
         @return: [[ownerPlayer, itemID, isBind, isDropInItemPack], ...]
@@ -3927,6 +3927,12 @@
         curNPC = self.__Instance
         npcID = curNPC.GetNPCID()
         specDropItemList = []
+        
+        playerLV = dropPlayer.GetLV()
+        maxDropLV = ipyDrop.GetMaxDropLV()
+        if maxDropLV and playerLV > maxDropLV:
+            GameWorld.DebugLog("超过最大可掉落等级,不掉落物品,特殊掉落!npcID=%s,playerLV(%s) > maxDropLV(%s)" % (npcID, playerLV, maxDropLV))
+            return specDropItemList
         
         # 私有掉落
         fbGradePriItemIDDropDict = IpyGameDataPY.GetFuncEvalCfg("FBGradeEquipDropRate", 3)
@@ -4027,7 +4033,7 @@
         mapID = FBCommon.GetRecordMapID(mapID)
         isGameBoss = ChConfig.IsGameBoss(curNPC)
         if isGameBoss:
-            GameWorld.Log("NPC开始掉落: npcID=%s,dropPlayerID=%s" % (npcID, dropPlayer.GetPlayerID()))
+            GameWorld.Log("NPC开始掉落: npcID=%s,dropPlayerID=%s" % (npcID, dropPlayer.GetPlayerID()), dropPlayer.GetPlayerID())
         if mapID == ChConfig.Def_FBMapID_MunekadoTrial:
             return
         ipyDrop = GetNPCDropIpyData(npcID)
@@ -4051,7 +4057,7 @@
             dropIDList += [moneyID] * dropMoneyCnt
             
         specItemSign = "SpecItem"
-        playerSpecDropList = self.__NPCSpecialDropItem(ownerPlayerList, ipyDrop) # 特殊掉落 [[ownerPlayer, itemID, isBind, isDropInItemPack], ...]  私有特殊掉落 + 击杀次数特殊掉落
+        playerSpecDropList = self.__NPCSpecialDropItem(dropPlayer, ownerPlayerList, ipyDrop) # 特殊掉落 [[ownerPlayer, itemID, isBind, isDropInItemPack], ...]  私有特殊掉落 + 击杀次数特殊掉落
         dropIDList += [specItemSign] * len(playerSpecDropList)
         
         if len(dropIDList) > 5:
@@ -4059,6 +4065,10 @@
             random.shuffle(playerSpecDropList)
             random.shuffle(dropIDList)
             
+        if not dropIDList and isGameBoss:
+            GameWorld.ErrLog("Boss没有掉落: dropPlayerLV=%s,ipyWorldLV=%s,maxDropLV=%s" 
+                             % (dropPlayer.GetLV(), ipyDrop.GetMaxWorldLV(), ipyDrop.GetMaxDropLV()), dropPlayer.GetPlayerID())
+            
         gameMap = GameWorld.GetMap()
         dropPosX, dropPosY = curNPC.GetPosX(), curNPC.GetPosY() # 以NPC为中心点开始掉落
         index = 0

--
Gitblit v1.8.0