From 2502456291ed4a568b17b9bf781db6997475b39e Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 25 十一月 2021 15:23:44 +0800
Subject: [PATCH] 5287 【BT5】【主干】后台查询玩家背包道具报错(物品过多时长度超65535,简化返回物品数据信息)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_PlayerItemInfo.py |   41 +++++++++++++++++++++++++++--------------
 1 files changed, 27 insertions(+), 14 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_PlayerItemInfo.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_PlayerItemInfo.py
index 7ffadba..67b57ce 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_PlayerItemInfo.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_PlayerItemInfo.py
@@ -56,15 +56,16 @@
         packItemList = _GetPackItem(curPlayer, packIndex)
         itemList.extend(packItemList)
         
+    totalItemCount = len(itemList)
     gmResult = GMCommon.Def_Success
-    resultMsg = {"PackIndex":packIndex, "ItemList":itemList}
-    if len(resultMsg) > pow(2, 14):
-        resultMsg = {}
+    
+    resultMsg = {"PackIndex":packIndex, "TotalItemCount":totalItemCount, "ItemList":itemList}
+    retData = str([packCMDList[0], resultMsg, 'GMT_PlayerItemInfo', gmResult]).replace(" ", "")
+    if len(retData) >= 65535:
         gmResult = GMCommon.Def_MaxLimit # 数据过大
-        
-    resultMsg = str([packCMDList[0], resultMsg, 'GMT_PlayerItemInfo', gmResult])
-    GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(0, 0, 0, 'GMToolResult', 
-                                                              resultMsg, len(resultMsg))
+        resultMsg["ItemList"] = itemList[:totalItemCount / 2] # 暂只返回一半
+        retData = str([packCMDList[0], resultMsg, 'GMT_PlayerItemInfo', gmResult]).replace(" ", "")
+    GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(0, 0, 0, 'GMToolResult', retData, len(retData))
     return ''
     
     
@@ -116,16 +117,28 @@
     
     curItemInfo = {"ItemGUID":curItem.GetGUID(),
                    "ItemTypeID":curItem.GetItemTypeID(),
-                   "ItemName":curItem.GetName().decode(ShareDefine.Def_Game_Character_Encoding).encode(GameWorld.GetCharacterEncoding()),
-                   "Count":curItem.GetCount(),
-                   "UserData":curItem.GetUserData(),
-                   "IsBind":curItem.GetIsBind(),
-                   "IsSuite":1 if curItem.GetSuiteID() else 0,
-                   "RemainHour":curItem.GetRemainHour(),
-                   "GearScore":curItem.GetGearScore(),
+                   #"ItemName":curItem.GetName().decode(ShareDefine.Def_Game_Character_Encoding).encode(GameWorld.GetCharacterEncoding()),
+                   #"Count":curItem.GetCount(),
+                   #"UserData":curItem.GetUserData(),
+                   #"IsBind":curItem.GetIsBind(),
+                   #"IsSuite":1 if curItem.GetSuiteID() else 0,
+                   #"RemainHour":curItem.GetRemainHour(),
+                   #"GearScore":curItem.GetGearScore(),
                    "CreateTime":curItem.GetCreateTime(),
                    "ItemPlaceIndex":curItem.GetItemPlaceIndex()
                    }
     
+    if curItem.GetSuiteID():        
+        curItemInfo["IsSuite"] = 1
+    if curItem.GetCount() > 1:
+        curItemInfo["Count"] = curItem.GetCount()
+    if curItem.GetUserData() not in ["", "{}"]:
+        curItemInfo["UserData"] = curItem.GetUserData()
+    if curItem.GetIsBind():
+        curItemInfo["IsBind"] = curItem.GetIsBind()
+    if curItem.GetRemainHour():
+        curItemInfo["RemainHour"] = curItem.GetRemainHour()
+    if curItem.GetGearScore():
+        curItemInfo["GearScore"] = curItem.GetGearScore()
     return curItemInfo
 

--
Gitblit v1.8.0