From 2302b1d177f432df31524077a71033e4c4bad4a1 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 06 十一月 2019 17:08:31 +0800
Subject: [PATCH] 8321 【主干】【后端】GM工具优化(查看玩家信息、物品信息优化)
---
ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_GetPlayerInfo.py | 18 ---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_GetPlayerInfo.py | 31 -----
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_PlayerItemInfo.py | 143 +++++++++-------------------
ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_PlayerItemInfo.py | 61 ++++++-----
4 files changed, 85 insertions(+), 168 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_GetPlayerInfo.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_GetPlayerInfo.py
index 9ff7048..c6056ec 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_GetPlayerInfo.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_GetPlayerInfo.py
@@ -16,7 +16,6 @@
#---------------------------------------------------------------------
"""Version = 2015-05-22 14:30"""
#---------------------------------------------------------------------
-import IPY_GameWorld
import GameWorld
import PlayerControl
#---------------------------------------------------------------------
@@ -42,47 +41,23 @@
'GMLV':curPlayer.GetGMLevel(), #gm等级
'Job':curPlayer.GetJob(), # 职业
- 'Sex':curPlayer.GetSex(), # 性别
'LV':curPlayer.GetLV(), #玩家等级
- 'LVEx':curPlayer.GetLVEx(), #转生等级
- 'LV2':curPlayer.GetLV2(), #大师等级
- 'ReincarnationLv':curPlayer.GetReincarnationLv(), #转生次数
+ 'OfficialRank':curPlayer.GetOfficialRank(), #境界
'FightPower':curPlayer.GetFightPower(), #战斗力
'VIPLV':curPlayer.GetVIPLv(), # vip等级
- 'TotalExp':curPlayer.GetTotalExp(), # 总经验值
'MapID':curPlayer.GetMapID(), #当前地图id
- 'PosX':curPlayer.GetPosX(), # 当前坐标
- 'PosY':curPlayer.GetPosY(),
'Gold':curPlayer.GetGold(), # 元宝
'GoldPaper':curPlayer.GetGoldPaper(), # 绑钻
'Silver':PlayerControl.GetSilver(curPlayer), # 银两
- 'ZhenQi':PlayerControl.GetZhenQi(curPlayer), # 真气
'FamilyName':curPlayer.GetFamilyName(), # 家族名称
-
- 'STR':curPlayer.GetSTR(), #力量
- 'PNE':curPlayer.GetPNE(), #真元
- 'PHY':curPlayer.GetPHY(), #筋骨
- 'CON':curPlayer.GetCON(), #体魄
- 'FreePoint':curPlayer.GetFreePoint(), # 剩余点数
-
- 'PoisionAtk':curPlayer.GetPoisionAtk(), #毒攻
- 'PoisionDef':curPlayer.GetPoisionDef(), #毒抗
- 'FireAtk':curPlayer.GetFireAtk(), #火攻
- 'FireDef':curPlayer.GetFireDef(), #火抗
- 'IceAtk':curPlayer.GetIceAtk(), #冰攻
-
- 'IceDef':curPlayer.GetIceDef(), #冰抗
- 'ThunderAtk':curPlayer.GetThunderAtk(), #雷攻
- 'ThunderDef':curPlayer.GetThunderDef(), #雷抗
- 'WindAtk':curPlayer.GetWindAtk(), #风防
- 'WindDef':curPlayer.GetWindDef(), #风防
'LogoffTime':curPlayer.GetLogoffTime(), #离线时间
'LoginTime':curPlayer.GetLoginTime(), # 上线时间
- 'OnlineTime':curPlayer.GetOnlineTime(), # 累计上线时间
'LoginIP':curPlayer.GetIP(), #登入IP
+
+ 'Online':1,
}
resultMsg = str([packCMDList[0], playerInfo, 'GMT_GetPlayerInfo'])
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 ac632e1..cff8655 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
@@ -16,12 +16,12 @@
# @change: "2012-06-29 21:30" wdb 返回信息是否过长
# @change: "2015-12-29 11:00" hxp 开放其他背包查询
#---------------------------------------------------------------------
-"""Version = 2015-12-29 11:00"""
+#"""Version = 2015-12-29 11:00"""
#---------------------------------------------------------------------
import IPY_GameWorld
import GameWorld
-import ItemCommon
import ShareDefine
+import GMCommon
#---------------------------------------------------------------------
# 显示说有背包类型
@@ -43,49 +43,26 @@
packIndex = packCMDList[1]
itemList = []
-# # 查看的背包类型
-# packTypes = (
-# IPY_GameWorld.rptEquip, #1 装备
-# IPY_GameWorld.rptItem, #2 物品
-# IPY_GameWorld.rptRecycle, #3 垃圾桶(回收站)
-# IPY_GameWorld.rptWarehouse, #5 仓库
-# IPY_GameWorld.rptTitle, #6 称号背包
-# IPY_GameWorld.rptHorse, #12 坐骑背包
-# IPY_GameWorld.rptAnyWhere, #13 万能背包
-# IPY_GameWorld.rptCabinetDressCoat, #16 衣服外套背包
-# IPY_GameWorld.rptCabinetWeaponCoat, #17 武器外套背包
-# IPY_GameWorld.rptCabinetHorse, #18 时装坐骑背包
-# IPY_GameWorld.rptFineSoulSlot, #21 精魄槽
-# )
-
# 是否指定显示的背包类型
if IPY_GameWorld.rptDeleted <= packIndex <= ShareDefine.rptMax:
packTypes = [packIndex]
- elif packIndex != ShowAllPack:
- packTypes = []
+ elif packIndex == ShowAllPack:
+ return 'Not allowed to query all package items.'
# 要查看的背包
for packIndex in packTypes:
# 遍历pack格子,获得物品信息
packItemList = _GetPackItem(curPlayer, packIndex)
itemList.extend(packItemList)
-
- resultDict = {
- 'LogoffTime':curPlayer.GetLogoffTime(), #离线时间
- 'LoginTime':curPlayer.GetLoginTime(), # 上线时间
- 'OnlineTime':curPlayer.GetOnlineTime(), # 累计上线时间
- 'LoginIP':curPlayer.GetIP(), #登入IP
- 'ItemList':itemList, # 物品装备列表
- }
-
-
- gmResult = 0
- if len(resultDict) > pow(2, 14):
- resultDict = ''
- gmResult = 8 # 数据过大
-
- resultMsg = str([packCMDList[0], resultDict, 'GMT_PlayerItemInfo', gmResult])
+
+ gmResult = GMCommon.Def_Success
+ resultMsg = {"PackIndex":packIndex, "ItemList":itemList}
+ if len(resultMsg) > pow(2, 14):
+ resultMsg = {}
+ gmResult = GMCommon.Def_MaxLimit # 数据过大
+
+ resultMsg = str([packCMDList[0], resultMsg, 'GMT_PlayerItemInfo', gmResult])
GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(0, 0, 0, 'GMToolResult',
resultMsg, len(resultMsg))
return ''
@@ -114,68 +91,40 @@
if curItem.IsEmpty():
continue
- #分为装备和非装备
- if not ItemCommon.CheckItemIsEquip(curItem):
- # 获得具体信息
- itemList.append(_GetItemInfo(curItem, packIndex, index))
- else:
- itemList.append(_GetEquipInfo(curItem, packIndex, index))
-
+ itemList.append(_GetItemInfo(curItem))
+
return itemList
+def _GetItemInfo(curItem):
+# "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"
+
+# "ItemPlaceIndex" : 1,
+# "PlayerID" : NumberLong(268902),
+# "ItemPlaceType" : 2,
+# "UserDataLen" : NumberLong(2),
+# "IsLocked" : 0,
+# "SID" : -1135840175,
+# "VerNO" : NumberLong(1),
+
+ 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(),
+ "CreateTime":curItem.GetCreateTime(),
+ }
+
+ return curItemInfo
-## 获取背包字典
-# @param curFindPlayer 当前玩家
-# @param packIndex 背包索引
-# @param index 物品位置
-# @return None
-def _GetItemInfo(curItem, packType, index):
-
- itemInfo = {
- 'PackType':packType, # 背包类型
- 'ItemIndex':index, # 索引
- 'GUID':curItem.GetGUID(), # guid
- 'Name':curItem.GetName(), # 物品名
- 'ItemID':curItem.GetItemTypeID(),
-
- 'IsBand':curItem.GetIsBind(), # 是否绑定
- 'ItemCnt':curItem.GetCount(), # 数量
- }
-
- return itemInfo
-
-
-## 获取背包字典
-# @param curFindPlayer 当前玩家
-# @param packIndex 背包索引
-# @param index 物品位置
-# @return None
-def _GetEquipInfo(curItem, packType, index):
- itemInfo = {
- 'PackType':packType, # 背包类型
- 'ItemIndex':index, # 索引
- 'GUID':curItem.GetGUID(), # guid
- 'Name':curItem.GetName(), # 物品名
- 'IsBand':curItem.GetIsBind(), # 是否绑定
- 'ItemID':curItem.GetItemTypeID(),
- 'IsSuite':curItem.GetIsSuite(), # 是否套装
-
- }
-
- return itemInfo
-
-
-## 获取装备技能
-# @param curEquip 装备
-# @return addSkillList 技能列表
-def GetEquipSkill(curEquip):
-
- #该装备当前的灵纹属性列表
- addSkillList = []
-
- for i in range(0, curEquip.GetUserAttrCount(IPY_GameWorld.iudetEquipAddSkillList)):
-
- addSkillID = curEquip.GetUserAttrByIndex(IPY_GameWorld.iudetEquipAddSkillList, i)
- addSkillList.append(addSkillID)
-
- return addSkillList
diff --git a/ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_GetPlayerInfo.py b/ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_GetPlayerInfo.py
index 9fb2db9..4c7628f 100644
--- a/ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_GetPlayerInfo.py
+++ b/ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_GetPlayerInfo.py
@@ -109,37 +109,23 @@
'GMLV':dbPlayer.GMLevel, #gm等级
'Job':dbPlayer.Job, # 职业
- 'Sex':dbPlayer.Sex, # 性别
'LV':dbPlayer.LV, #玩家等级
- 'LVEx':dbPlayer.LVEx, #转生等级
- 'LV2':dbPlayer.LV2, #大师等级
- 'ReincarnationLv':dbPlayer.ReincarnationLv, #转生次数
+ 'OfficialRank':dbPlayer.OfficialRank, #境界
'FightPower':dbPlayer.FightPower, #战斗力
'VIPLV':dbPlayer.VIPLv, # vip等级
- 'TotalExp':dbPlayer.TotalExp, # 总经验值
'MapID':dbPlayer.MapID, #当前地图id
- 'PosX':dbPlayer.PosX, # 当前坐标
- 'PosY':dbPlayer.PosY,
'Gold':dbPlayer.Gold, # 元宝
'GoldPaper':dbPlayer.GoldPaper, # 绑钻
'Silver':dbPlayer.Silver, # 银两
- 'ZhenQi':dbPlayer.ExAttr5, # 真气
'FamilyName':dbPlayer.FamilyName, # 家族名称
- 'STR':dbPlayer.STR, #力量
- 'PNE':dbPlayer.PNE, #真元
- 'PHY':dbPlayer.PHY, #筋骨
- 'CON':dbPlayer.CON, #体魄
- 'FreePoint':dbPlayer.FreePoint, # 剩余点数
-
'LogoffTime':dbPlayer.LogoffTime, #离线时间
'LoginTime':dbPlayer.LoginTime, # 上线时间
- 'OnlineTime':dbPlayer.OnlineTime, # 累计上线时间
'LoginIP':dbPlayer.LoginIP, #登入IP
- 'WarehousePsw':dbPlayer.WarehousePsw, #仓库密码
+ 'Online':0,
}
return GMCommon.Def_Success, playerInfo
diff --git a/ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_PlayerItemInfo.py b/ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_PlayerItemInfo.py
index 4e688d3..a70bbbd 100644
--- a/ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_PlayerItemInfo.py
+++ b/ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_PlayerItemInfo.py
@@ -100,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, {})
@@ -131,9 +125,8 @@
continue
itemList.append(_GetItemInfo(itemDict))
-
- resultMsg['ItemList'] = itemList
-
+
+ resultMsg = {"PackIndex":packIndex, "ItemList":itemList}
# 不大与word
if len(resultMsg) > pow(2, 14):
return GMCommon.Def_MaxLimit, ''
@@ -146,17 +139,31 @@
# @param itemDict: 物品信息字典
# @return curItemInfo:当前物品显示信息
def _GetItemInfo(itemDict):
+# "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'],
-
- 'IsSuite':itemDict['IsSuite'], # 是否套装
- }
+# "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", "ItemPlaceIndex"]:
+ continue
+ if not v:
+ continue
+ curItemInfo[k] = v
+
return curItemInfo
\ No newline at end of file
--
Gitblit v1.8.0