From f9b6920c5b21c4ceb0b25b23fe5874b2e2d61ffe Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期五, 01 十一月 2019 17:57:02 +0800 Subject: [PATCH] 8321 【主干】【后端】GM工具优化(查询仙盟信息展示优化) --- ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_GetFamilyInfo.py | 51 +++++++++++++++++++++++++++++---------------------- 1 files changed, 29 insertions(+), 22 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_GetFamilyInfo.py b/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_GetFamilyInfo.py index 04c84da..50f748c 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_GetFamilyInfo.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/GMT_GetFamilyInfo.py @@ -19,6 +19,7 @@ #导入 import GMCommon import GameWorld +import PlayerFamily #--------------------------------------------------------------------- #全局变量 #--------------------------------------------------------------------- @@ -44,28 +45,34 @@ if queryType == 'normal': curFamily = GameWorld.GetFamilyManager().FindFamilyByName(familyName) familyInfo.append(GetQueryFamilyInfo(curFamily, True)) + # 模糊查询 elif queryType == 'faintness': - for index in range(GameWorld.GetFamilyManager().GetCount()): - - curFamily = GameWorld.GetFamilyManager().GetAt(index) - + familyMgr = GameWorld.GetFamilyManager() + sortFamilyIDList = PlayerFamily.GetSortFamilyIDList() + for familyID in sortFamilyIDList: + curFamily = familyMgr.FindFamily(familyID) + if not curFamily: + continue if familyName not in curFamily.GetName(): continue - familyInfo.append(GetQueryFamilyInfo(curFamily, False)) + # 全部 elif queryType == 'all': - for index in range(GameWorld.GetFamilyManager().GetCount()): - - curFamily = GameWorld.GetFamilyManager().GetAt(index) + familyMgr = GameWorld.GetFamilyManager() + sortFamilyIDList = PlayerFamily.GetSortFamilyIDList() + for familyID in sortFamilyIDList: + curFamily = familyMgr.FindFamily(familyID) + if not curFamily: + continue familyInfo.append(GetQueryFamilyInfo(curFamily, False)) - + if len(familyInfo) > pow(2, 14): #数据过大 GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_MaxLimit) return - + #执行成功 GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_Success, familyInfo) return @@ -89,38 +96,38 @@ player = GameWorld.GetPlayerManager().FindPlayerByID(curMember.GetPlayerID()) # 是否在线 - isOnline = 0 if player != None: - isOnline = 1 onlineCnt += 1 if not memberDetail: continue + offLineTime = curMember.GetExattr2() + offLineSeconds = GameWorld.GetPastSeconds(GameWorld.ChangeTimeNumToStr(offLineTime)) if offLineTime else 0 + # 成员信息 member = { - 'FamilyLV':curMember.GetFamilyLV(), - 'PlayerID':curMember.GetPlayerID(), 'Name':curMember.GetName(), + 'LV':curMember.GetLV(), + 'FamilyLV':curMember.GetFamilyLV(), 'ActiveValue':curMember.GetFamilyActiveValue(), - 'IsOnLine':isOnline, + 'OffLineSeconds':offLineSeconds, } memberInfo.append(member) - + familyInfo = { + 'Rank':PlayerFamily.GetFamilyIDRank(curFamily.GetID()), # 排名 + 'WarRank':PlayerFamily.GetFamilyWarRank(curFamily), # 联赛排名 + 'FightPower':PlayerFamily.GetFamilyTotalFightPower(curFamily), # 总战力 'FamilyName':curFamily.GetName(), 'LeaderName':curFamily.GetLeaderName(), 'LV':curFamily.GetLV(), 'Broadcast':curFamily.GetBroadcast(), 'MemberCnt':memberCnt, - - 'FamilyID':curFamily.GetID(), - 'Hornor':curFamily.GetHornor(), - 'Money':curFamily.GetMoney(), - 'CreateTime':curFamily.GetCreateTime(), - 'MemberInfo':memberInfo, 'OnLineCnt':onlineCnt, } + if memberInfo: + familyInfo['MemberInfo'] = memberInfo return familyInfo -- Gitblit v1.8.0