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