| #!/usr/bin/python  | 
| # -*- coding: GBK -*-  | 
| #-------------------------------------------------------------------------------  | 
| #  | 
| ##@package GM.Commands.PrintNPCHurt  | 
| #  | 
| # @todo:ÏÔʾNPCÉËѪÁÐ±í  | 
| # @author hxp  | 
| # @date 2017-12-07  | 
| # @version 1.0  | 
| #  | 
| # ÏêϸÃèÊö: ÏÔʾNPCÉËѪÁÐ±í  | 
| #  | 
| #-------------------------------------------------------------------------------  | 
| #"""Version = 2017-12-07 15:00"""  | 
| #-------------------------------------------------------------------------------  | 
| import GameWorld  | 
| import IPY_GameWorld  | 
| import ChConfig  | 
|   | 
| ##²é¿´µãÑ¡µÄNPC³ðºÞÁÐ±í  | 
| # @param curPlayer Íæ¼ÒʵÀý  | 
| # @param cmdList GMÃüÁî²ÎÊýÁÐ±í  | 
| # @return ·µ»ØÖµÎÞÒâÒå  | 
| # @remarks GMÃüÁî  | 
| def OnExec(curPlayer, cmdList):  | 
|       | 
|     if not cmdList:  | 
|         GameWorld.DebugAnswer(curPlayer, "PrintNPCHurt objID ÊÇ·ñÅÅÐò(¿ÉÑ¡)")  | 
|         return  | 
|       | 
|     objID = cmdList[0]  | 
|     isSort = cmdList[1] if len(cmdList) > 1 else 0  | 
|     curNPC = GameWorld.GetObj(objID, IPY_GameWorld.gotNPC)  | 
|     if not curNPC:  | 
|         GameWorld.DebugAnswer(curPlayer, "objID(%s) ´íÎó ÕÒ²»µ½¶ÔÓ¦NPC" % objID)  | 
|         return  | 
|       | 
|     GameWorld.DebugAnswer(curPlayer, "-------------------------------")  | 
|       | 
|     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))  | 
|     for index in xrange(npcHurtList.GetHurtCount()):  | 
|         #»ñµÃÉËѪ¶ÔÏó  | 
|         hurtObj = npcHurtList.GetHurtAt(index)  | 
|         hurtType = hurtObj.GetValueType()  | 
|         hurtID = hurtObj.GetValueID()  | 
|         hurtValue = hurtObj.GetHurtValue()  | 
|         if not hurtID:  | 
|             GameWorld.DebugAnswer(curPlayer, "%s ²»´æÔÚ£¡HurtType=%s,ID=%s, V=%s" % (index, hurtType, hurtID, hurtValue))  | 
|             continue  | 
|           | 
|         if hurtType == ChConfig.Def_NPCHurtTypePlayer:  | 
|             hurtPlayer = GameWorld.GetObj(hurtID, IPY_GameWorld.gotPlayer)  | 
|             if hurtPlayer == None:  | 
|                 GameWorld.DebugAnswer(curPlayer, "%s Íæ¼ÒID=%s,²»´æÔÚ, V=%s" % (index, hurtID, hurtValue))  | 
|             elif hurtPlayer.GetHP() <= 0 :  | 
|                 GameWorld.DebugAnswer(curPlayer, "%s Íæ¼ÒID=%s,ѪÁ¿Îª0, V=%s" % (index, hurtID, hurtValue))  | 
|             else:  | 
|                 d = GameWorld.GetDist(curNPC.GetPosX(), curNPC.GetPosY(), hurtPlayer.GetPosX(), hurtPlayer.GetPosY())  | 
|                 GameWorld.DebugAnswer(curPlayer, "%s Íæ¼ÒID=%s,¾àÀë=%s, V=%s" % (index, hurtID, d, hurtValue))  | 
|                   | 
|         elif hurtType == ChConfig.Def_NPCHurtTypeTeam:  | 
|             #»ñµÃµ±Ç°¶ÓÎé  | 
|             curTeam = GameWorld.GetTeamManager().FindTeam(hurtID)  | 
|             if curTeam == None:  | 
|                 GameWorld.DebugAnswer(curPlayer, "%s ¶ÓÎéID=%s,²»´æÔÚ, V=%s" % (index, hurtID, hurtValue))  | 
|             else:  | 
|                 GameWorld.DebugAnswer(curPlayer, "%s ¶ÓÎéID=%s,ÈËÊý=%s, V=%s" % (index, hurtID, curTeam.GetMemberCount(), hurtValue))  | 
|                   | 
|         elif hurtType == ChConfig.Def_NPCHurtTypeNPC:  | 
|             GameWorld.DebugAnswer(curPlayer, "%s NPC=%s, V=%s" % (index, hurtID, hurtValue))  | 
|               | 
|         #Òì³£ÐÅÏ¢,Ìí¼ÓÉËѪÀàÐÍ´íÎó  | 
|         else:  | 
|             GameWorld.DebugAnswer(curPlayer, "%s Òì³£!Type=%s,ID=%s, V=%s" % (index, hurtType, hurtID, hurtValue))  | 
|     return  | 
|   |