#!/usr/bin/python # -*- coding: GBK -*- # # @todo: ¹¥»÷ʱĿ±ê´¦ÓÚÖ¸¶¨BUFFidÏ´¥·¢¼¼ÄÜ£¬²¢ÇÒΪ¹¥»÷ÕßµÄbuff # # @author: Alee # @date 2018-1-9 ÏÂÎç09:39:37 # @version 1.0 # # @note: # #--------------------------------------------------------------------- import ChConfig import GameWorld import GameObj import PlayerControl import SkillCommon def CheckCanHappen(attacker, defender, effect, curSkill): buffID = effect.GetEffectValue(0) if not buffID: return False if not defender: return # Ä¿±êÉíÉϲéÕÒ findSkill = GameWorld.GetGameData().GetSkillBySkillID(buffID) if not findSkill: return False buffType = SkillCommon.GetBuffType(findSkill) buffTuple = SkillCommon.GetBuffManagerByBuffType(defender, buffType) if buffTuple == (): return False result = False # forÑ­»·ÕÒµ½ÊôÓÚ×Ô¼ºµÄBUFF buffManager = buffTuple[0] for i in range(buffManager.GetBuffCount()): findBuff = buffManager.GetBuff(i) if findBuff.GetBuffID() != buffID: continue if findBuff.GetOwnerID() == attacker.GetID(): # ºóÐø´¥·¢ÑªÁ¿»Ö¸´ÐèÒªÓõ½²ãÊý attacker.SetDict("pointlayer", findBuff.GetLayer()) result = True break return result