From 8966d3aebdd0bf213fa45ad973505269dd71f5a4 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 04 三月 2021 17:43:07 +0800
Subject: [PATCH] 4970 【主干】【gt_1.100.4】【BT】【BT2】【BTZF】服务器报错(防范虚假掉落NoneType物品报错);

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py |    9 +++++++--
 1 files changed, 7 insertions(+), 2 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 29fc916..5bd88cb 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
@@ -615,6 +615,9 @@
 def DoGiveItemByVirtualDrop(curPlayer, giveItemList, npcID, dropPosX=0, dropPosY=0, isDropDisperse=True, mailTypeKey="ItemNoPickUp", extraVirtualItemList=[]):
     ## 给物品并且做假掉落表现,直接先堆叠给物品,再拆开做虚假掉落表现
     
+    if not giveItemList:
+        return
+    
     mapID = PlayerControl.GetCustomMapID(curPlayer)
     lineID = PlayerControl.GetCustomLineID(curPlayer)
     if not mapID:
@@ -625,16 +628,18 @@
     virtualItemDropList = []
     itemControl = ItemControler.PlayerItemControler(curPlayer)
     for itemInfo in giveItemList:
-        if isinstance(itemInfo, list):
+        if isinstance(itemInfo, list) or isinstance(itemInfo, tuple):
             itemID, itemCount, isAuctionItem = itemInfo
             curItem = ItemControler.GetOutPutItemObj(itemID, itemCount, isAuctionItem, curPlayer=curPlayer)
             if not curItem:
                 continue
-        else:
+        elif hasattr(itemInfo, "GetItemTypeID"):
             curItem = itemInfo
             itemID = curItem.GetItemTypeID()
             itemCount = curItem.GetCount()
             isAuctionItem = ItemControler.GetIsAuctionItem(curItem)
+        else:
+            continue
         dropItemDataStr = ChItem.GetMapDropItemDataStr(curItem)
         giveItemObjList.append(curItem)
             

--
Gitblit v1.8.0