From 545986a8fdde345b28cf3004be84c6cfe79a3dc1 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 19 四月 2019 11:29:12 +0800
Subject: [PATCH] 6459 【后端】【2.0】缥缈仙域开发单(跨服分区逻辑优化,支持跨服妖王分区状态同步)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py |   42 +++++-------------------------------------
 1 files changed, 5 insertions(+), 37 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py
index b40aa4e..b67f0aa 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py
@@ -2559,16 +2559,13 @@
 def GivePlayerItemOrMail(curPlayer, itemList, mailKey=None, event=["", False, {}]):
     ##给物品,背包满则发邮件
     needPackSpaceDict = {}
-    for itemInfo in itemList:
-        itemID, itemCount, isAuctionItem, userData = GetItemInfo(itemInfo)
-        if not itemID:
-            continue
+    for itemID, itemCnt, isAuctionItem in itemList:
         curItem = GameWorld.GetGameData().GetItemByTypeID(itemID)
         if not curItem:
             GameWorld.ErrLog('GivePlayerItemOrMail 物品ID不存在 itemID=%s'%itemID, curPlayer.GetID())
             return
         packType = ChConfig.GetItemPackType(curItem.GetType())
-        needSpace = GetItemNeedPackCount(packType, curItem, itemCount, isAuctionItem)
+        needSpace = GetItemNeedPackCount(packType, curItem, itemCnt, isAuctionItem)
         needPackSpaceDict[packType] = needPackSpaceDict.get(packType, 0) + needSpace
     isSendMail = False
     for packType, needSpace in needPackSpaceDict.items():
@@ -2579,37 +2576,8 @@
     if isSendMail:
         PlayerControl.SendMailByKey(mailKey, [curPlayer.GetPlayerID()], itemList)
         GameWorld.DebugLog("GivePlayerItemOrMail背包空间不够,发送邮件: mailItemList=%s" % str(itemList), curPlayer.GetPlayerID())
-        return
-    
-    playerItemControl = PlayerItemControler(curPlayer)
-    for itemInfo in itemList:
-        itemID, itemCount, isAuctionItem, userData = GetItemInfo(itemInfo)
-        if not itemID:
-            continue
-        if GetAppointItemRealID(itemID):
-            curCreateItem = GetItemByData(GetAppointItemDictData(itemID, isAuctionItem))
-        else:
-            curCreateItem = ItemCommon.CreateSingleItem(itemID, itemCount, isAuctionItem)
-        if not curCreateItem:
-            continue
-        if userData: 
-            curCreateItem.SetUserData(userData, len(userData))
-        ItemCommon.MakeEquipGS(curCreateItem)
-        #放入玩家背包
-        playerItemControl.PutInItem(IPY_GameWorld.rptItem, curCreateItem, event=event)
-        
-    return
-
-def GetItemInfo(itemInfo):
-    if isinstance(itemInfo, dict):
-        itemID = itemInfo['ItemID']
-        itemCount = itemInfo['Count']
-        isAuctionItem = itemInfo['IsAuctionItem']
-        userData = itemInfo['UserData']
-    elif isinstance(itemInfo, list) and len(itemInfo) == 3:
-        itemID, itemCount, isAuctionItem = itemInfo
-        userData = ""
     else:
-        return 0, 0, 0, ""
-    return itemID, itemCount, isAuctionItem, userData
+        for itemID, itemCnt, isAuctionItem in itemList:
+            GivePlayerItem(curPlayer, itemID, itemCnt, isAuctionItem, [IPY_GameWorld.rptItem], event=event)
+    return
 

--
Gitblit v1.8.0