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