hxp
2019-04-29 fba7745533989fc514ce7a8e9edc8017abd2d69e
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
@@ -1772,11 +1772,13 @@
            remainHP = min(dHP, max(GameObj.GetMaxHP(defObj)/2, remainHP)) # 助战机器人剩余血量不能少于一半
            GameObj.SetHP(defObj, remainHP)
        
        elif defObj.GetType() == ChConfig.ntMonsterTime:
            UpdateTimeMonsterHP(defObj, tick)
        else:
            #防守方是怪物NPC,只扣其血
            npcID = defObj.GetNPCID()
            timeLostHPIpyData = IpyGameDataPY.GetIpyGameDataNotLog("NPCTimeLostHP", npcID)
            if timeLostHPIpyData:
                UpdateTimeMonsterHP(defObj, timeLostHPIpyData, tick)
            else:
            GameObj.SetHP(defObj, remainHP)
    else:
        GameWorld.ErrLog('计算伤血值时,防守方类型错误:defObjType = %s' % (defObjType))
@@ -1799,16 +1801,11 @@
    
    return resultHurtType
def UpdateTimeMonsterHP(curNPC, tick):
def UpdateTimeMonsterHP(curNPC, ipyData, tick):
    '''
    NPC总血量 = 单人每秒掉血量*理论击杀所需时间
         掉血值 = 单人每秒掉血量+min(当前人数, 最大人数)*附加掉血量
    '''
    npcID = curNPC.GetNPCID()
    ipyData = IpyGameDataPY.GetIpyGameData("NPCTimeLostHP", npcID)
    if not ipyData:
        return
        
    lastLostHPTick = curNPC.GetDictByKey(ChConfig.Def_NPC_Dict_TimeLostHPTick)
    curNPC.SetDict(ChConfig.Def_NPC_Dict_TimeLostHPTick, tick)
@@ -2372,6 +2369,8 @@
            return "Robot"
        if obj.GetType() == ChConfig.ntHelpBattleRobot:
            return "HelpRobot"
        if obj.GetType() == ChConfig.ntPriWoodPilePVP:
            return "P"
        
    objType = obj.GetGameNPCObjType()
    if objType == IPY_GameWorld.gnotPet: