#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # ##@package Skill.GameSkills.SkillModule_50 # # @todo:½áËãׯÉÕ # @author hxp # @date 2024-04-02 # @version 1.0 # # ÏêϸÃèÊö: ½áËãׯÉÕ Ð§¹û1£º AÖµ-É˺¦Ôö¼Ó°Ù·Ö±È # #------------------------------------------------------------------------------- #"""Version = 2024-04-02 19:00""" #------------------------------------------------------------------------------- import ChConfig import GameWorld import BuffSkill import SkillShell def UseSkill(attacker, defender, curSkill, tagRoundPosX, tagRoundPosY, isEnhanceSkill, tick): if not defender: return # ¶Ô´æÔÚׯÉÕЧ¹ûIDµÄ³ÖÐø¼õÒæbuff½øÐнáËã buffState = defender.GetProcessDeBuffState() buffStateCount = buffState.GetBuffCount() if not buffStateCount: return skillEffect = curSkill.GetEffect(0) addBurnHurtPer = skillEffect.GetEffectValue(0) defender.SetDict("addBurnHurtPer", addBurnHurtPer) isBurn = False #buff³ÖÐøÐ§¹û£¬»ØºÏÏ¿ÉÄÜɾ³ýbuff£¬µ¹Ðò±éÀú for i in range(0, buffStateCount)[::-1]: curBuff = buffState.GetBuff(i) if not curBuff: continue isDel = False curBuffSkill = curBuff.GetSkill() for effIndex in range(0, curBuffSkill.GetEffectCount()): #µÃµ½µ±Ç°Ð§¹û curEffect = curBuffSkill.GetEffect(effIndex) curEffectID = curEffect.GetEffectID() if curEffectID == ChConfig.Def_Skill_Effect_Burn: isDel = True break if not isDel: continue # Ö±½Óɾ³ýbuff£¬ÓÉbuff×ÔÉíÏûʧÂß¼­½øÐнáËã GameWorld.DebugLog(" Á¢¼´½áËãׯÉÕbuff: atkID=%s,defID=%s,skillID=%s,addBurnHurtPer=%s" % (attacker.GetID(), defender.GetID(), curBuffSkill.GetSkillID(), addBurnHurtPer)) isBurn = True skillID = curBuffSkill.GetSkillID() skillTypeID = curBuffSkill.GetSkillTypeID() ownerID, ownerType = curBuff.GetOwnerID(), curBuff.GetOwnerType() BuffSkill.DoBuffDisApper(defender, curBuff, tick) buffState.DeleteBuffByTypeID(skillTypeID) SkillShell.ClearBuffEffectBySkillID(defender, skillID, ownerID, ownerType) defender.SetDict("addBurnHurtPer", 0) return isBurn