From 36f748f8770aa1046261b6b3a7ff80d33b071b75 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期六, 18 八月 2018 16:57:15 +0800
Subject: [PATCH] Fix: 2678 【后端】物品ID集合key掉率支持超越1配置;

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 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 4029be1..7b8d579 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
@@ -1080,12 +1080,18 @@
             if len(jobItemList) < job:
                 GameWorld.ErrLog("职业物品集合key没有配置对应职业ID: npcID=%s,jobItemKey=%s,job=%s" % (npcID, jobItemKey, job))
                 continue
+            mustDropCount = dropRate / Def_NPCMaxDropRate
+            dropRate = dropRate % Def_NPCMaxDropRate # 基础概率
+            canDropCount = mustDropCount
             doCnt = ItemKeyMaxDropCountDict.get(jobItemKey, 1) # 默认1个
             doCnt = __GetNPCDropDoCountChange(doCnt, doCountRate, doCountAdd)
             for _ in xrange(doCnt):
                 if not GameWorld.CanHappen(dropRate, maxRate=Def_NPCMaxDropRate):
                     continue
-                jobItemID = jobItemList[job - 1]
+                canDropCount += 1
+                
+            jobItemID = jobItemList[job - 1]
+            for _ in xrange(canDropCount):
                 dropItemIDList.append(jobItemID)
                 #GameWorld.DebugLog("掉落自身职业指定物品ID: jobItemKey=%s,jobItemID=%s" % (jobItemKey, jobItemID))
                 
@@ -1102,11 +1108,17 @@
             # 在只掉本职业里的不处理
             if jobItemKey in ItemKeyDropRateJobDict:
                 continue
+            mustDropCount = dropRate / Def_NPCMaxDropRate
+            dropRate = dropRate % Def_NPCMaxDropRate # 基础概率
+            canDropCount = mustDropCount
             doCnt = ItemKeyMaxDropCountDict.get(jobItemKey, 1) # 默认1个
             doCnt = __GetNPCDropDoCountChange(doCnt, doCountRate, doCountAdd)
             for _ in xrange(doCnt):
                 if not GameWorld.CanHappen(dropRate, maxRate=Def_NPCMaxDropRate):
                     continue
+                canDropCount += 1
+                
+            for _ in xrange(canDropCount):
                 randJobItemID = random.choice(jobItemList)
                 dropItemIDList.append(randJobItemID)
                 #GameWorld.DebugLog("掉落随机职业指定物品ID: jobItemKey=%s,randJobItemID=%s" % (jobItemKey, randJobItemID))

--
Gitblit v1.8.0