| | |
| | | import FBLogic
|
| | | import ItemCommon
|
| | | import OperControlManager
|
| | | import PetControl
|
| | | import DataRecordPack
|
| | | #import ChItem
|
| | | import ShareDefine
|
| | |
| | | # @return 返回值真, 检查通过
|
| | | def IsToPetOwnerSkill(curNPC, skillTag):
|
| | | if skillTag != ChConfig.Def_UseSkillTag_PetMaster:
|
| | | return False
|
| | |
|
| | | if not PetControl.IsPet(curNPC):
|
| | | GameWorld.ErrLog("NPCID %s AI %s 非宠物,无法获得主人释放技能"%(curNPC.GetNPCID(), curNPC.GetAIType()))
|
| | | return False
|
| | | |
| | | petOwner = PetControl.GetPetOwner(curNPC)
|
| | | |
| | | if petOwner == None:
|
| | | GameWorld.ErrLog("宠物(%s)对主人释放技能,找不到主人"%curNPC.GetRolePet().PetID)
|
| | | return False
|
| | |
|
| | | return True
|
| | |
| | | if skillAffectTag in ChConfig.Def_ST_CanNPCUseSkill or skillAim == ChConfig.Def_UseSkillAim_None:
|
| | | #释放自身类技能
|
| | | return NPCUseSkill(attacker, curSkill, tick)
|
| | | |
| | | # 宠物对主人释放技能
|
| | | elif skillAffectTag == ChConfig.Def_UseSkillTag_PetMaster:
|
| | | if not PetControl.IsPet(attacker):
|
| | | GameWorld.ErrLog("该NPC非宠物,无法获得主人释放技能")
|
| | | return False
|
| | | |
| | | petOwner = PetControl.GetPetOwner(attacker)
|
| | | |
| | | if petOwner == None:
|
| | | GameWorld.ErrLog("宠物(%s)对主人释放技能,找不到主人"%attacker.GetRolePet().PetID)
|
| | | return False
|
| | | |
| | | curTag = petOwner |
| | |
|
| | | # 召唤兽对主人释放技能
|
| | | elif skillAffectTag == ChConfig.Def_UseSkillTag_SummonMaster:
|
| | |
| | | result = DoLogic_UseSkill(attacker, target, curSkill, tick, posX, posY, isEnhanceSkill=isEnhanceSkill)
|
| | |
|
| | | else:
|
| | | if affectTag == ChConfig.Def_UseSkillTag_PetMaster:
|
| | | if not PetControl.IsPet(attacker):
|
| | | return False
|
| | | |
| | | petOwner = PetControl.GetPetOwner(attacker)
|
| | | if petOwner == None:
|
| | | return False
|
| | | |
| | | target = petOwner
|
| | | if GameObj.GetHP(target) <= 0:
|
| | | return False
|
| | | |
| | | if affectTag not in [ChConfig.Def_UseSkillTag_None, ChConfig.Def_UseSkillTag_Self]:
|
| | | if not target:
|
| | | # 配置了可攻击目标,但没目标就不让触发
|