From 2eb39c9fe42c1ee32500f81c4bf7d735c6116d9d Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期二, 30 七月 2019 00:26:20 +0800 Subject: [PATCH] 8180 【后端】【主干】优化打boss掉落套装体验 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py | 18 +++++++++++++++++- 1 files changed, 17 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 5b31ada..66b9ac2 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py @@ -1079,7 +1079,10 @@ continue if color in colorMaxDropCntDict: colorDropCntDict[color] = dropCount + 1 - randItemID = random.choice(randEquipIDList) + if isSuit and len(jobList) > 1: + randItemID = __GetRandDropSuitEquipID(dropPlayer, randEquipIDList) + else: + randItemID = random.choice(randEquipIDList) dropIDList.append(randItemID) GameWorld.DebugLog("掉落装备: npcID=%s,itemID=%s,classLV=%s,color=%s,isSuit=%s,placeKey=%s,jobList=%s,randEquipIDList=%s" % (npcID, randItemID, classLV, color, isSuit, placeKey, jobList, randEquipIDList), playerID) @@ -1143,6 +1146,19 @@ GameWorld.ErrLog("Boss没有掉落物品,NPCID=%s" % (npcID), dropPlayer.GetPlayerID()) return dropIDList, auctionIDList, dropMoneyCnt, moneyValue +def __GetRandDropSuitEquipID(curPlayer, randEquipIDList): + ## 获取随机掉落的套装ID,为了玩家掉落体验, 当非本职业套装时可至多重新随机X次 + randItemID = 0 + suitRandCountEx = IpyGameDataPY.GetFuncCfg("EquipSuitDrop", 1) + 1 + for _ in xrange(suitRandCountEx): + randItemID = random.choice(randEquipIDList) + itemData = GameWorld.GetGameData().GetItemByTypeID(randItemID) + if not itemData: + continue + if ItemCommon.CheckJob(curPlayer, itemData): + break + return randItemID + def GetAllEquipPlaceByPlaceKey(placeKey): placeKeyRateListDict = IpyGameDataPY.GetFuncEvalCfg("EquipDropPartSets", 2, {}) # {集合数字key1:[[概率1,部位1],...],...} if placeKey in placeKeyRateListDict: -- Gitblit v1.8.0