| | |
| | | # SetIsNeedProcess(False) 应该及时清理仇恨,回血可以不用即时
|
| | | curNPC.GetNPCAngry().Clear()
|
| | |
|
| | | # if curNPC.GetHP() != curNPC.GetMaxHP():
|
| | | # if GameObj.GetHP(curNPC) != GameObj.GetMaxHP(curNPC):
|
| | | # if curNPC.GetIsBoss() != ChConfig.Def_NPCType_Ogre_Normal:
|
| | | # return
|
| | | #
|
| | |
| | | curPlayer = GameWorld.GetObj(hurtObjID, IPY_GameWorld.gotPlayer)
|
| | |
|
| | | #无法查找玩家,或者已经死亡
|
| | | if curPlayer == None or curPlayer.GetHP() <= 0:
|
| | | if curPlayer == None or GameObj.GetHP(curPlayer) <= 0:
|
| | | continue
|
| | |
|
| | | if srcPlayer and curPlayer.GetID() == srcPlayer.GetID():
|
| | |
| | | useSkill = changeSkill
|
| | | #GameWorld.DebugLog("----随机技能 %s"%useSkill.GetSkillID())
|
| | |
|
| | | if PetControl.IsPet(curNPC):
|
| | | petOwner = PetControl.GetPetOwner(curNPC)
|
| | | |
| | | if petOwner == None:
|
| | | GameWorld.ErrLog("宠物(%s)找不到主人"%curNPC.GetRolePet().PetID)
|
| | | return False
|
| | | |
| | | #血量条件判定
|
| | | effect = SkillCommon.GetSkillEffectByEffectID(useSkill, ChConfig.Def_Skill_Effect_HPPerLimit)
|
| | | if effect:
|
| | | if GameObj.GetHP(petOwner)*ChConfig.Def_MaxRateValue/GameObj.GetMaxHP(petOwner) >= effect.GetEffectValue(0):
|
| | | return False
|
| | | #===========================================================================
|
| | | # 改成被动触发
|
| | | # if PetControl.IsPet(curNPC):
|
| | | # petOwner = PetControl.GetPetOwner(curNPC)
|
| | | # |
| | | # if petOwner == None:
|
| | | # GameWorld.ErrLog("宠物(%s)找不到主人"%curNPC.GetRolePet().PetID)
|
| | | # return False
|
| | | # |
| | | # #血量条件判定
|
| | | # effect = SkillCommon.GetSkillEffectByEffectID(useSkill, ChConfig.Def_Skill_Effect_HPPerLimit)
|
| | | # if effect:
|
| | | # if GameObj.GetHP(petOwner)*ChConfig.Def_MaxRateValue/GameObj.GetMaxHP(petOwner) >= effect.GetEffectValue(0):
|
| | | # return False
|
| | | #===========================================================================
|
| | |
|
| | | skillTag = SkillShell.GetSkillAffectTag(useSkill)
|
| | | skillAim = SkillShell.GetSkillFireAim(useSkill)
|
| | |
| | | continue
|
| | |
|
| | | #仇恨值
|
| | | curAngryValue = curAngry.GetAngryValue()
|
| | | curAngryValue = GameObj.GetAngryValue(curAngry)
|
| | | if curAngryValue == 0:
|
| | | continue
|
| | |
|
| | |
| | | return False
|
| | |
|
| | | useSkillList.sort() # 按使用次数优先升序排,使用次数低的优先判断使用
|
| | | GameWorld.DebugLog('技能使用顺序 = useSkillList%s' % str(useSkillList), curNPC.GetID())
|
| | | #GameWorld.DebugLog('技能使用顺序 = useSkillList%s' % str(useSkillList), curNPC.GetID())
|
| | |
|
| | | for useCnt, index, useSkill in useSkillList:
|
| | | if DoNPCUseSkill(curNPC, curTag, useSkill, tagDist, tick):
|