| | |
| | | import BuffSkill
|
| | | import PlayerState
|
| | | import ChPyNetSendPack
|
| | | import NPCHurtManager
|
| | | import NetPackCommon
|
| | | import FamilyRobBoss
|
| | | import FBCommon
|
| | |
| | | # @param hurtHP 攻击伤血值
|
| | | # @return None or True
|
| | | # @remarks 函数详细说明.
|
| | | def NPCAddObjInHurtList(curObj, curTagObj, curTaglNPCHPBefore, hurtHP) :
|
| | | def NPCAddObjInHurtList(curObj, curTagObj, curTaglNPCHPBefore, hurtHP, isBounce=False):
|
| | | if curObj == None:
|
| | | GameWorld.ErrLog("NPCAddObjInHurtList NoFindObj")
|
| | | return
|
| | |
|
| | | if curTaglNPCHPBefore < hurtHP:
|
| | | hurtHP = curTaglNPCHPBefore
|
| | |
|
| | | defNPCHurtList = curTagObj.GetPlayerHurtList()
|
| | | |
| | | curObjType = curObj.GetGameObjType()
|
| | | if curObjType == IPY_GameWorld.gotPlayer:
|
| | | #BossHurtMng.BossAddPlayerInHurtList(curObj, curTagObj, hurtHP)
|
| | |
| | | FBLogic.DoFB_Player_HurtNPC(curObj, curTagObj, hurtHP)
|
| | | if GameObj.GetHP(curTagObj) == 0:
|
| | | curTagObj.SetDict(ChConfig.Def_PlayerKey_LastHurt, curObj.GetPlayerID())
|
| | | |
| | | if NPCHurtManager.AddHurtValue(curObj, curTagObj, hurtHP, isBounce):
|
| | | return
|
| | |
|
| | | curTeam = curObj.GetTeam()
|
| | |
|
| | |
| | | # return False
|
| | |
|
| | | #击杀次数判断
|
| | | if not CheckKillNPCByCnt(attacker, defender):
|
| | | if not NPCHurtManager.IsAssistPlayer(attacker.GetPlayerID(), defender) and not CheckKillNPCByCnt(attacker, defender):
|
| | | return False
|
| | |
|
| | | #仙盟归属NPC判断
|
| | |
| | | # return False
|
| | |
|
| | | #击杀次数判断
|
| | | if not CheckKillNPCByCnt(defender, attacker, False):
|
| | | if not CheckKillNPCByCnt(defender, attacker, False) and not NPCHurtManager.IsAssistPlayer(defender.GetPlayerID(), attacker):
|
| | | return False
|
| | |
|
| | | #仙盟归属NPC判断
|
| | |
| | | if PetControl.IsPet(attacker) or attacker.GetGameNPCObjType()== IPY_GameWorld.gnotSummon:
|
| | | #击杀次数判断
|
| | | if not CheckKillNPCByCnt(attacker, defender, False):
|
| | | return False
|
| | | |
| | | ownerPlayer = GetAttackPlayer(attacker)[0]
|
| | | if ownerPlayer and not NPCHurtManager.IsAssistPlayer(ownerPlayer.GetPlayerID(), defender):
|
| | | return False
|
| | | |
| | | #仙盟归属NPC判断
|
| | | if not CheckCanAttackFamilyOwnerNPC(attacker, defender, False):
|
| | | return False
|
| | |
| | | # GameWorld.DebugLog("不能攻击,不反弹")
|
| | | # return
|
| | | #杀怪次数判断
|
| | | if not CheckKillNPCByCnt(defObj, atkObj, False):
|
| | | if not CheckKillNPCByCnt(defObj, atkObj, False) and not NPCHurtManager.IsAssistPlayer(defObj.GetPlayerID(), atkObj):
|
| | | #GameWorld.DebugLog("不能攻击,不反弹")
|
| | | return
|
| | |
|