#!/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 FamilyRobBoss  
 | 
import NPCCommon  
 | 
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, "---%s,ID=%s,team=%s,family=%s"   
 | 
                          % (GameWorld.GetGameWorld().GetTick()%1000, curPlayer.GetPlayerID(), curPlayer.GetTeamID(), curPlayer.GetFamilyID()))  
 | 
      
 | 
    # ¹éÊôÏÉÃ˵ģ¬È¡ÏÉÃËÉËѪͳ¼Æ  
 | 
    if NPCCommon.GetDropOwnerType(curNPC) == ChConfig.DropOwnerType_Family:  
 | 
        FamilyRobBoss.OnGMPrintFamilyOwnerBossHurt(curPlayer, curNPC)  
 | 
        return  
 | 
      
 | 
    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  
 | 
  
 |