From 8155ce1b16a37578c76b3d520a12f4b5419666a1 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 01 四月 2020 15:53:16 +0800
Subject: [PATCH] 8405 【后端】成就系统开发(成就通行证领奖)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/PrintNPCHurt.py |   43 +++++++++++++++++++++++++++++++++++++++----
 1 files changed, 39 insertions(+), 4 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/PrintNPCHurt.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/PrintNPCHurt.py
index fb307e5..9d8bb48 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/PrintNPCHurt.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/PrintNPCHurt.py
@@ -19,6 +19,10 @@
 import FamilyRobBoss
 import NPCCommon
 import ChConfig
+import NPCHurtManager
+import NPCHurtMgr
+import PlayerTeam
+import GameObj
 
 ##查看点选的NPC仇恨列表
 # @param curPlayer 玩家实例
@@ -38,19 +42,34 @@
         GameWorld.DebugAnswer(curPlayer, "objID(%s) 错误 找不到对应NPC" % objID)
         return
     
-    GameWorld.DebugAnswer(curPlayer, "---%s,ID=%s,team=%s,family=%s" 
-                          % (GameWorld.GetGameWorld().GetTick()%1000, curPlayer.GetPlayerID(), curPlayer.GetTeamID(), curPlayer.GetFamilyID()))
+    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()))
     
     # 归属仙盟的,取仙盟伤血统计
     if NPCCommon.GetDropOwnerType(curNPC) == ChConfig.DropOwnerType_Family:
         FamilyRobBoss.OnGMPrintFamilyOwnerBossHurt(curPlayer, curNPC)
         return
     
-    npcHurtList = curNPC.GetPlayerHurtList()
+    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)
@@ -71,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)
@@ -79,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))
             

--
Gitblit v1.8.0