| | |
| | | # 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
|
| | |
| | | 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, {})
|
| | |
| | | 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
|
| | |
|
| | |
| | | # @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
|
| | | |