#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # ##@package Skill.GameSkills.SkillModule_46 # # @todo:ÃüÁîµÚһλÖÃÁéÊÞÁ¢¼´Ê¹ÓÃÒ»´Î¼¼ÄÜ # @author hxp # @date 2024-02-01 # @version 1.0 # # ÏêϸÃèÊö: ÃüÁîµÚһλÖÃÁéÊÞÁ¢¼´Ê¹ÓÃÒ»´Î¼¼ÄÜ£¨¾ßÌåЧ¹ûÓÉÁéÊÞ¼¼Äܾö¶¨£©£¬Ð§¹û1£º AÖµ-ÁéÊÞ¼¼ÄÜÊÇ·ñÖØÐ½øÈë¼¼ÄÜCD£¬»ØºÏÖÆÊÊÓà # #------------------------------------------------------------------------------- #"""Version = 2024-02-01 15:30""" #------------------------------------------------------------------------------- import ChConfig import PetControl import SkillCommon import TurnAttack import BaseAttack import AICommon def UseSkill(attacker, defender, curSkill, tagRoundPosX, tagRoundPosY, isEnhanceSkill, tick): if not attacker.GetDictByKey(ChConfig.Def_Obj_Dict_TurnFightTimeline): return # ĬÈϵÚһλÖÃÁéÊÞÇ¿ÖÆÊ¹Óü¼ÄÜ1 curPet = PetControl.GetFightPet(attacker, 1) if not curPet: return tagObj = TurnAttack.GetEnemyObj(attacker) if not tagObj: return skillEffect = curSkill.GetEffect(0) isCD = skillEffect.GetEffectValue(0) # ÊÇ·ñÖØÐ½øÈëÀäȴʱ¼ä remainTime = None useSkill = None skillManager = curPet.GetSkillManager() for index in range(0, skillManager.GetSkillCount()): skill = skillManager.GetSkillByIndex(index) #ÒѾ­µ½Î²²¿ÁË if not skill or skill.GetSkillTypeID() == 0: break if skill.GetSkillType() == ChConfig.Def_SkillType_Revive: #¸´»î¼¼Äܵ¥¶À´¦Àí continue #±»¶¯¼¼Äܲ»ÊÍ·Å if SkillCommon.isPassiveSkill(skill): continue remainTime = skill.GetRemainTime() skill.SetRemainTime(0) useSkill = skill break if not useSkill: return BaseAttack.DoSkillEx_AttackSucess(attacker, defender, curSkill, tick, isEnhanceSkill) tagDist = 0 isOK = AICommon.DoNPCUseSkill(curPet, tagObj, useSkill, tagDist, tick) if isOK: # ²»ÖØÐ½øÈëCDµÄ»°£¬»¹Ô­Ô­Ê£Óàʱ¼ä if not isCD and remainTime != None: skill.SetRemainTime(remainTime) else: # ÊÍ·Åʧ°Ü£¬»¹Ô­Ô­Ê£Óàʱ¼ä if remainTime != None: skill.SetRemainTime(remainTime) return isOK