hxp
2018-08-29 9f13daf65e0f6acc43ffab6462b737a70879f5cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#!/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