From 9c1dd934cdc3c9be8db41597ff62be632f042baa Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 18 十月 2022 18:14:18 +0800
Subject: [PATCH] 9437 【越南】【后端】天帝礼包(IsAwardPoolOK直接同步原值)
---
ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_PlayerItemInfo.py | 96 +++++++++++++++++++++---------------------------
1 files changed, 42 insertions(+), 54 deletions(-)
diff --git a/ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_PlayerItemInfo.py b/ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_PlayerItemInfo.py
index e29c429..5b5a96d 100644
--- a/ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_PlayerItemInfo.py
+++ b/ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_PlayerItemInfo.py
@@ -89,6 +89,10 @@
# queryType为accID,发送的信息就是玩家的AccID
playerAccID = playerFind
+ # 返回playerid,判断是否在线
+ if data == '%s'%GMCommon.Def_GMKey_PlayerName:
+ return GMCommon.Def_DoQueryLogDB, playerAccID
+
collection = userdb[UCN_DBPlayer]
dbPlayer = DataServerPlayerData.tagDBPlayer()
dbPlayer.IsDeleted = 0
@@ -96,29 +100,23 @@
loadOK = dbPlayer.adoLoadCEx(collection, {'AccID':fix_incomingText(playerAccID),
'IsDeleted':dbPlayer.IsDeleted})
# 加入人物信息
- resultMsg = {}
- if loadOK:
- resultMsg = {
- 'LogoffTime':dbPlayer.LogoffTime, #离线时间
- 'LoginTime':dbPlayer.LoginTime, # 上线时间
- 'OnlineTime':dbPlayer.OnlineTime, # 累计上线时间
- 'LoginIP':dbPlayer.LoginIP, #登入IP
- }
- else:
- return GMCommon.Def_NoTag, ''
+ if not loadOK:
+ return GMCommon.Def_NoTag, ""
# 获得玩家物品
itemCollection = userdb[UCN_RoleItem]
itemFind = itemCollection.find({'PlayerID':dbPlayer.PlayerID})
+ itemList = []
# 无物品
if itemFind.count() <= 0:
- return GMCommon.Def_Success, resultMsg
+ return GMCommon.Def_Success, itemList
- itemList = []
itemInfo = itemFind[0]
packIndex = GMCommon.ToIntDef(gmCmdDict.get(GMCommon.Def_GMKey_PackIndex, ''))
-
+ if packIndex == ShowAllPack:
+ # 暂不提供查询所有的物品
+ return GMCommon.Def_ParamErr, "Not allowed to query all package items."
# 遍历所有物品
for itemIndex in range(1, itemInfo['Count'] + 1):
itemDict = itemInfo.get('%s'%itemIndex, {})
@@ -127,13 +125,13 @@
continue
itemList.append(_GetItemInfo(itemDict))
-
- resultMsg['ItemList'] = itemList
-
- # 不大与word
- if len(resultMsg) > pow(2, 14):
- return GMCommon.Def_MaxLimit, ''
+ totalItemCount = len(itemList)
+ resultMsg = {"PackIndex":packIndex, "TotalItemCount":totalItemCount, "ItemList":itemList}
+ # 不大与word
+ if len(str(resultMsg)) > 65000:
+ return GMCommon.Def_MaxLimit, ''
+
# 回复查询信息
return GMCommon.Def_Success, resultMsg
@@ -142,41 +140,31 @@
# @param itemDict: 物品信息字典
# @return curItemInfo:当前物品显示信息
def _GetItemInfo(itemDict):
-
- stoneList = []
- hourCnt = itemDict['CanPlaceStoneCount']
- for hourIndex in range(1, hourCnt + 1):
- stoneList.append(itemDict['Stone%d'%hourIndex])
+# "ItemGUID" : "096389AD-904F-4DAA-B7ED155B8663CE45",
+# "ItemTypeID" : NumberLong(3901),
+# "Count" : 100,
+# "IsBind" : 0,
+# "UserData" : "{}",
+# "IsSuite" : 0,
+# "RemainHour" : 0,
+# "GearScore" : NumberLong(0),
+# "CreateTime" : "2019-10-16 20:12:17"
- itemData = eval(itemDict['UserData'])
- curItemInfo = {
- 'PackType':itemDict['ItemPlaceType'], # 背包类型
- 'ItemIndex':itemDict['ItemPlaceIndex'], # 索引
- 'GUID':itemDict['ItemGUID'], # guid
- 'IsBand':itemDict['IsBind'], # 是否绑定
- 'ItemCnt':itemDict['Count'], # 数量
- 'ItemID':itemDict['ItemTypeID'],
-
- 'StarLV':itemDict['ItemStarLV'], # 星级
- 'Endure':itemDict['CurDurg'], # 当前耐久
- 'MaxEndure':itemDict['MaxDurg'], # 最大耐久
- 'IsSuite':itemDict['IsSuite'], # 是否套装
- 'HoleCnt':hourCnt, # 孔数
- 'StoneList':stoneList, # 宝石id列表
-
- 'SkillCnt':itemData.get(IudetEquipAddSkillCnt, 0), #灵纹数
- 'MaxSkillCnt':itemDict['MaxAddSkillCnt'], # 最大灵纹数
- 'SkillList':itemData.get(IudetEquipAddSkillList, []), # 技能id列表
-
- 'FitLV':itemDict['FitLV'], # 契合等级
- 'Proficiency':itemDict['Proficiency'], # 熟练度
-
- 'MinAtk':itemDict['EquipMinAtkValue'], # 最小伤害值
- 'MaxAtk':itemDict['EquipMaxAtkValue'], # 最大伤害值
- 'Defense':itemDict['BaseMagicDef'], # 防御值
- 'BaseHP':itemDict['BaseHP'], # 气血值
- 'MagicDef':itemDict['EquipMagicDefValue'], # 内防值
- 'isWakeUp':itemData.get(IudetWakeUpCnt, 0), # 是否唤醒
- }
+# "ItemPlaceIndex" : 1,
+# "PlayerID" : NumberLong(268902),
+# "ItemPlaceType" : 2,
+# "UserDataLen" : NumberLong(2),
+# "IsLocked" : 0,
+# "SID" : -1135840175,
+# "VerNO" : NumberLong(1),
+
+ curItemInfo = {}
+ for k, v in itemDict.items():
+ if k in ["UserDataLen", "ItemPlaceType", "PlayerID", "IsLocked", "SID", "VerNO"]:
+ continue
+ if not v or v == "{}":
+ continue
+ curItemInfo[k] = v
+
return curItemInfo
\ No newline at end of file
--
Gitblit v1.8.0