ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/PrintFightPower.py
@@ -16,7 +16,9 @@
#-------------------------------------------------------------------------------
import GameWorld
import PlayerPreset
import PlayerControl
import IpyGameDataPY
import PlayerOnline
import ShareDefine
import ChConfig
@@ -30,24 +32,49 @@
def OnExec(curPlayer, msgList):
    
    olPlayer = PlayerOnline.GetOnlinePlayer(curPlayer)
    if not msgList:
        GameWorld.DebugAnswer(curPlayer, "PrintFightPower [阵容ID]")
        GameWorld.DebugAnswer(curPlayer, "PrintFightPower [预设方案 专享属性地图ID]")
        GameWorld.DebugAnswer(curPlayer, "主公战力: %s" % PlayerControl.GetFightPower(curPlayer))
        for lineupID in ShareDefine.LineupList:
            lineup = olPlayer.GetLineup(lineupID)
            GameWorld.DebugAnswer(curPlayer, "阵容(%s)总战力: %s" % (lineupID, lineup.fightPower))
        batPresetIDList = []
        for batPresetType in ShareDefine.BatPresetList:
            batPresetName = ShareDefine.BatPresetName.get(batPresetType, "")
            batPresetName = "%s(%s)" % (batPresetName, batPresetType)
            batPresetID = PlayerPreset.GetBatPresetID(curPlayer, batPresetType)
            lineup = olPlayer.GetPresetLineup(batPresetID)
            GameWorld.DebugAnswer(curPlayer, "%s-方案(%s)战力: %s" % (batPresetName, batPresetID, lineup.fightPower))
            if batPresetType == ShareDefine.BatPreset_Main:
                for exclusiveMapID in ChConfig.ExclusiveBatAttrMapIDList:
                    exclusiveLineup = olPlayer.GetPresetLineup(batPresetID, exclusiveMapID=exclusiveMapID)
                    GameWorld.DebugAnswer(curPlayer, "    地图(%s)战力: %s" % (exclusiveLineup.exclusiveMapID, exclusiveLineup.fightPower))
            if batPresetID not in batPresetIDList:
                batPresetIDList.append(batPresetID)
        # 其他
        for batPresetID in olPlayer.GetBatPresetIDList():
            if batPresetID in batPresetIDList:
                continue
            if not PlayerPreset.GetFuncPresetIDState(curPlayer, batPresetID):
                continue
            lineup = olPlayer.GetPresetLineup(batPresetID)
            GameWorld.DebugAnswer(curPlayer, "其他方案(%s)战力: %s" % (batPresetID, lineup.fightPower))
        return
    
    lineupID = msgList[0]
    if lineupID not in ShareDefine.LineupList:
        GameWorld.DebugAnswer(curPlayer, "阵容(%s)不存在.")
    batPresetID = msgList[0]
    exclusiveMapID = msgList[1] if len(msgList) > 1 else 0
    batPresetIDList = olPlayer.GetBatPresetIDList()
    if batPresetID not in batPresetIDList:
        GameWorld.DebugAnswer(curPlayer, "没有该战斗预设方案属性!%s" % batPresetID)
        return
    if exclusiveMapID not in ChConfig.ExclusiveBatAttrMapIDList:
        exclusiveMapID = 0
    GameWorld.DebugAnswer(curPlayer, "-------------------")
    lineup = olPlayer.GetLineup(lineupID)
    GameWorld.DebugAnswer(curPlayer, "【阵容 - %s】明细总战力: %s" % (lineupID, lineup.fightPower))
    lineup = olPlayer.GetPresetLineup(batPresetID, exclusiveMapID=exclusiveMapID)
    GameWorld.DebugAnswer(curPlayer, "【方案 - %s】战力: %s" % (batPresetID, lineup.fightPower))
    if exclusiveMapID:
        GameWorld.DebugAnswer(curPlayer, "地图专属方案地图ID:%s" % exclusiveMapID)
    for calcIndex in ChConfig.Def_CalcAttrList:
        calcName = ChConfig.CalcAttrName.get(calcIndex, "%s" % calcIndex)
        attrDict = olPlayer.GetCalcAttr(calcIndex)
@@ -61,7 +88,7 @@
            attrInfo += "%s-%s" % (attrID, attrValue)
        GameWorld.DebugAnswer(curPlayer, "%s:%s" % (calcName, attrInfo))
        
    posNumList = lineup.lineupHeroDict.keys()
    posNumList = lineup.GetPosNumList()
    posNumList.sort()
    for posNum in posNumList:
        lineupHero = lineup.GetLineupHero(posNum)