| | |
| | | import OperControlManager
|
| | | import SkillCommon
|
| | | import SkillShell
|
| | | import PetControl
|
| | | import ReadChConfig
|
| | | import GameObj
|
| | | import FBLogic
|
| | |
| | | SkillCommon.SetSkillRemainTime(curNPCSkill, 0, tick, curNPC)
|
| | | 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
|
| | | #===========================================================================
|
| | |
|
| | | skillTag = SkillShell.GetSkillAffectTag(useSkill)
|
| | | skillAim = SkillShell.GetSkillFireAim(useSkill)
|
| | |
| | | #释放自身类技能
|
| | | return SkillShell.NPCUseSkill(curNPC, useSkill, tick)
|
| | |
|
| | | #---对宠物主人释放---
|
| | | if skillTag == ChConfig.Def_UseSkillTag_PetMaster:
|
| | | if not PetControl.IsPet(curNPC):
|
| | | GameWorld.ErrLog("该NPC非宠物,无法获得主人释放技能")
|
| | | return False
|
| | | |
| | | petOwner = PetControl.GetPetOwner(curNPC)
|
| | | |
| | | if petOwner == None:
|
| | | GameWorld.ErrLog("宠物(%s)对主人释放技能,找不到主人"%curNPC.GetRolePet().PetID)
|
| | | return False
|
| | | |
| | | curTag = petOwner
|
| | | |
| | | # 召唤兽对主人释放技能
|
| | | elif skillTag == ChConfig.Def_UseSkillTag_SummonMaster:
|
| | | if skillTag == ChConfig.Def_UseSkillTag_SummonMaster:
|
| | | if not NPCCommon.IsSummonNPC(curNPC):
|
| | | GameWorld.ErrLog("该NPC非召唤兽,无法获得主人释放技能")
|
| | | return False
|
| | |
| | | def DoAutoUseSkill(curNPC, curTag, tagDist, tick):
|
| | | #攻击僵持中
|
| | | if tick - curNPC.GetAttackTick() < curNPC.GetAtkInterval():
|
| | | if not PetControl.IsPet(curNPC):
|
| | | #GameWorld.Log('攻击僵持中')
|
| | | return False
|
| | | #GameWorld.Log('攻击僵持中')
|
| | | return False
|
| | |
|
| | | npcID = curNPC.GetNPCID()
|
| | | npcAITrigger = ReadChConfig.GetEvalChConfig("NPCLogic_AI186_Trigger")
|