ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
@@ -4201,58 +4201,6 @@
                #GameWorld.DebugLog("私有物品掉落: dropItemID=%s" % dropItemID, ownerPlayer.GetPlayerID())
                
        return specDropItemList
    def __NPCDropItemByPlayers(self, dropPlayerList, mapID, ipyDrop):
        '''NPC掉落物品, 多玩家每人一份, 混合掉落'''
        curNPC = self.__Instance
        npcID = curNPC.GetNPCID()
        if not dropPlayerList:
            return
        #GameWorld.DebugLog("NPC多玩家混合掉落: dropPlayerCount=%s" % len(dropPlayerList))
        auctionItemIDList = []
        dropItemList = []
        for dropPlayer in dropPlayerList:
            dropInfo = GetNPCDropInfo(dropPlayer, mapID, npcID, ipyDrop=ipyDrop)
            if not dropInfo:
                continue
            dropIDList, auctionIDList, dropMoneyCnt, moneyValue = dropInfo
            moneyID = self.__GetDropMoneyModelID(moneyValue)
            if dropMoneyCnt:
                dropIDList += [moneyID] * dropMoneyCnt
            dropPlayerID = dropPlayer.GetPlayerID()
            #GameWorld.DebugLog("    dropPlayerID=%s,dropIDList=%s" % (dropPlayerID, dropIDList))
            for dropID in dropIDList:
                dropItemList.append([dropID, dropPlayerID])
            auctionItemIDList += auctionIDList
        #打乱物品顺序
        random.shuffle(dropItemList)
        gameMap = GameWorld.GetMap()
        dropPosX, dropPosY = curNPC.GetPosX(), curNPC.GetPosY() # 以NPC为中心点开始掉落
        index = 0
        for posX, posY in ChConfig.Def_DropItemAreaMatrix:
            resultX = dropPosX + posX
            resultY = dropPosY + posY
            if not gameMap.CanMove(resultX, resultY):
                #玩家不可移动这个点
                continue
            if index > len(dropItemList) - 1:
                break
            itemID, ownerID = dropItemList[index]
            index += 1
            itemCnt = moneyValue if itemID == moneyID else 1
            iaAuctionItem = itemID in auctionItemIDList
            curItem = self.__CreateDropItem(curNPC, itemID, itemCnt, iaAuctionItem, dropPlayer)
            if not curItem:
                continue
            self.__MapCreateItem(curItem, resultX, resultY, ChConfig.Def_NPCHurtTypePlayer, ownerID)
        return
    
    ## 物品掉落
    #  @param self 类实例
@@ -4284,10 +4232,6 @@
                curWorldLV = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_WorldAverageLv)
                GameWorld.ErrLog("取不到NPC掉落信息!npcID=%s,curWorldLV=%s" % (npcID, curWorldLV))
            return
        #if mapID == ChConfig.Def_FBMapID_MunekadoTrial:
        #    dropPlayerList = GameLogic_MunekadoTrial.GetCanDropPlayerList()
        #    return self.__NPCDropItemByPlayers(dropPlayerList, mapID, ipyDrop)
        
        dropIDList, auctionIDList, dropMoneyCnt, moneyValue = [], [], 0, 0
        dropInfo = GetNPCDropInfo(dropPlayer, mapID, npcID, ownerPlayerList, ipyDrop, False)
@@ -4966,8 +4910,13 @@
            self.__KillNPCFuncEx(curPlayer, curNPC, maxHurtID, True)
        self.__ownerPlayerList = ownerPlayerList
        
        fbOwnerInfo = FBLogic.GetFBEveryoneDropInfo(curNPC)
        if fbOwnerInfo != None:
            ownerPlayerList, isOnlySelfSee = fbOwnerInfo
            for curPlayer in ownerPlayerList:
                self.__NPCDropItem(curPlayer, ChConfig.Def_NPCHurtTypePlayer, curPlayer.GetPlayerID(), [curPlayer], isOnlySelfSee=isOnlySelfSee)
        #调用物品掉落,boss一人一份
        if isGameBoss and hurtType in [ChConfig.Def_NPCHurtTypePlayer, ChConfig.Def_NPCHurtTypeTeam, ChConfig.Def_NPCHurtTypeSpecial]:
        elif isGameBoss and hurtType in [ChConfig.Def_NPCHurtTypePlayer, ChConfig.Def_NPCHurtTypeTeam, ChConfig.Def_NPCHurtTypeSpecial]:
            isOnlySelfSee = len(ownerPlayerList) > 1
            for curPlayer in ownerPlayerList:
                self.__NPCDropItem(curPlayer, ChConfig.Def_NPCHurtTypePlayer, curPlayer.GetPlayerID(), [curPlayer], isOnlySelfSee=isOnlySelfSee)