#!/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
|
|