hxp
2020-04-01 8155ce1b16a37578c76b3d520a12f4b5419666a1
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/PrintNPCHurt.py
@@ -16,7 +16,13 @@
#-------------------------------------------------------------------------------
import GameWorld
import IPY_GameWorld
import FamilyRobBoss
import NPCCommon
import ChConfig
import NPCHurtManager
import NPCHurtMgr
import PlayerTeam
import GameObj
##查看点选的NPC仇恨列表
# @param curPlayer 玩家实例
@@ -36,13 +42,34 @@
        GameWorld.DebugAnswer(curPlayer, "objID(%s) 错误 找不到对应NPC" % objID)
        return
    
    GameWorld.DebugAnswer(curPlayer, "-------------------------------")
    GameWorld.DebugAnswer(curPlayer, "--- %s --- HP: %s / %s" % (GameWorld.GetGameWorld().GetTick() % 1000, GameObj.GetHP(curNPC), GameObj.GetMaxHP(curNPC)))
    GameWorld.DebugAnswer(curPlayer, "ID=%s,team=%s,family=%s" % (curPlayer.GetPlayerID(), curPlayer.GetTeamID(), curPlayer.GetFamilyID()))
    
    npcHurtList = curNPC.GetPlayerHurtList()
    # 归属仙盟的,取仙盟伤血统计
    if NPCCommon.GetDropOwnerType(curNPC) == ChConfig.DropOwnerType_Family:
        FamilyRobBoss.OnGMPrintFamilyOwnerBossHurt(curPlayer, curNPC)
        return
    isAssistHurt = 0
    npcHurtList = NPCHurtManager.GetPlayerHurtList(curNPC)
    if npcHurtList:
        isAssistHurt = 1
    if not npcHurtList:
        npcHurtList = NPCHurtMgr.GetPlayerHurtList(curNPC)
    if not npcHurtList:
        npcHurtList = curNPC.GetPlayerHurtList()
    if isSort:
        npcHurtList.Sort()  #sort以后伤血列表从大到小排序
        
    GameWorld.DebugAnswer(curPlayer, "ID=%s, NPCID=%s, 伤血数=%s, isSort=%s" % (curNPC.GetID(), curNPC.GetNPCID(), npcHurtList.GetHurtCount(), isSort))
    GameWorld.DebugAnswer(curPlayer, "ID=%s,NPCID=%s, 伤血数=%s,排序=%s,协=%s"
                          % (curNPC.GetID(), curNPC.GetNPCID(), npcHurtList.GetHurtCount(), isSort, isAssistHurt))
    if isAssistHurt:
        for playerID, assistPlayerIDList in npcHurtList.GetNoAssitPlayerIDDict().items():
            GameWorld.DebugAnswer(curPlayer, "玩家:%s, 协助玩家:%s" % (playerID, assistPlayerIDList))
        for assistPlayerID, tagPlayerID in npcHurtList.GetAssistPlayerIDDict().items():
            GameWorld.DebugAnswer(curPlayer, "协助玩家:%s, 目标:%s" % (assistPlayerID, tagPlayerID))
    for index in xrange(npcHurtList.GetHurtCount()):
        #获得伤血对象
        hurtObj = npcHurtList.GetHurtAt(index)
@@ -63,6 +90,12 @@
                d = GameWorld.GetDist(curNPC.GetPosX(), curNPC.GetPosY(), hurtPlayer.GetPosX(), hurtPlayer.GetPosY())
                GameWorld.DebugAnswer(curPlayer, "%s 玩家ID=%s,距离=%s, V=%s" % (index, hurtID, d, hurtValue))
                
            if isAssistHurt:
                playerHurtValue, assistPlayerHurtDict = npcHurtList.GetPlayerHurtDetail(hurtID)
                GameWorld.DebugAnswer(curPlayer, "    非协id=%s,v=%s" % (hurtID, playerHurtValue))
                for assistPlayerID, assistHurtValue in assistPlayerHurtDict.items():
                    GameWorld.DebugAnswer(curPlayer, "        协助id=%s,v=%s" % (assistPlayerID, assistHurtValue))
        elif hurtType == ChConfig.Def_NPCHurtTypeTeam:
            #获得当前队伍
            curTeam = GameWorld.GetTeamManager().FindTeam(hurtID)
@@ -71,6 +104,16 @@
            else:
                GameWorld.DebugAnswer(curPlayer, "%s 队伍ID=%s,人数=%s, V=%s" % (index, hurtID, curTeam.GetMemberCount(), hurtValue))
                
            if isAssistHurt:
                mapTeamPlayerIDList = PlayerTeam.GetMapTeamPlayerIDList(hurtID)
                for teamPlayerID in mapTeamPlayerIDList:
                    if not npcHurtList.IsNoAssistPlayer(teamPlayerID):
                        continue
                    playerHurtValue, assistPlayerHurtDict = npcHurtList.GetPlayerHurtDetail(teamPlayerID)
                    GameWorld.DebugAnswer(curPlayer, "    非协id=%s,v=%s" % (teamPlayerID, playerHurtValue))
                    for assistPlayerID, assistHurtValue in assistPlayerHurtDict.items():
                        GameWorld.DebugAnswer(curPlayer, "        协助id=%s,v=%s" % (assistPlayerID, assistHurtValue))
        elif hurtType == ChConfig.Def_NPCHurtTypeNPC:
            GameWorld.DebugAnswer(curPlayer, "%s NPC=%s, V=%s" % (index, hurtID, hurtValue))