| #!/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  | 
|   | 
|   |