| #!/usr/bin/python  | 
| # -*- coding: GBK -*-  | 
| #  | 
| # @todo: ¹¥»÷ºó´¥·¢±»¶¯¼¼ÄÜ, ¿É¸½¼ÓÄ¿±êbuff״̬Åж¨, ¸½¼ÓÄ¿±êѪÁ¿µÍÓڰٷֱȴ¥·¢  | 
| #  | 
| # @author: Alee  | 
| # @date 2018-1-9 ÏÂÎç09:39:37  | 
| # @version 1.0  | 
| #  | 
| # @note:   | 
| #  | 
| #---------------------------------------------------------------------  | 
|   | 
| import ChConfig  | 
| import GameWorld  | 
| import GameObj  | 
| import PlayerControl  | 
|   | 
|   | 
| def CheckCanHappen(attacker, defender, effect, curSkill):  | 
|     pyPlayerState = effect.GetEffectValue(1)  | 
|     if pyPlayerState and defender:  | 
|         if not GameObj.GetPyPlayerState(defender, pyPlayerState):  | 
|             return False  | 
|   | 
|     # Î´ÅäÖò»Ñé֤ѪÁ¿°Ù·Ö±È  | 
|     hpPer = effect.GetEffectValue(2)  | 
|     if hpPer and defender:  | 
|         if GameObj.GetHP(defender)*ChConfig.Def_MaxRateValue/GameObj.GetMaxHP(defender) >= hpPer:  | 
|             return False  | 
|           | 
|         # ¼Ç¼´ËÄ¿±ê£¬²»Ê¹ÓÃÆäËû½Ó¿ÚÊÇÒòΪÓпÉÄܱ»¸Ä±ä£¬ÈçÒ»¶Îʱ¼äÖ»¶Ô´¥·¢µÄÄ¿±êÍæ¼ÒÌá¸ß±©»÷ÂÊ  | 
|         attacker.SetDict(ChConfig.Def_PlayerKey_DefenderObjID, defender.GetID())  | 
|           | 
|     return GameWorld.CanHappen(effect.GetEffectValue(0)) |