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