hxp
2021-04-07 32f92cf196d36588653093f9a27d3ce41df2b9ca
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCAI/AICommon.py
@@ -176,7 +176,7 @@
        # 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
#        
@@ -232,7 +232,7 @@
        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():
@@ -333,18 +333,21 @@
        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)
@@ -412,7 +415,7 @@
            continue
        
        #仇恨值
        curAngryValue = curAngry.GetAngryValue()
        curAngryValue = GameObj.GetAngryValue(curAngry)
        if curAngryValue == 0:
            continue
        
@@ -503,7 +506,7 @@
        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):