| #!/usr/bin/python  | 
| # -*- coding: GBK -*-  | 
| #-------------------------------------------------------------------------------  | 
| #  | 
| #-------------------------------------------------------------------------------  | 
| #  | 
| ##@package SkillModule_4  | 
| #  | 
| # @todo: ½µµÍ³ðºÞ  | 
| # @author Alee  | 
| # @date 2010-12-16 20:50  | 
| # @version 1.0  | 
| #  | 
| # ÏêϸÃèÊö:½µµÍ³ðºÞ  | 
| #  | 
| #------------------------------------------------------------------------------   | 
| """Version = 2010-12-16 20:50"""  | 
| #------------------------------------------------------------------------------  | 
| #µ¼Èë  | 
| import BaseAttack  | 
| import ChConfig  | 
| import IPY_GameWorld  | 
|   | 
| ##½µµÍ³ðºÞ  | 
| # @param attacker ¹¥»÷ÕßʵÀý  | 
| # @param defender ·ÀÊØÕßʵÀý  | 
| # @param curSkill ¼¼ÄÜʵÀý  | 
| # @param tagRoundPosX ÇøÓò×ø±êX  | 
| # @param tagRoundPosY ÇøÓò×ø±êY  | 
| # @param isEnhanceSkill ÊÇ·ñΪ¸½¼Ó¼¼ÄÜ  | 
| # @param tick Ê±¼ä´Á  | 
| # @return ·µ»ØÖµÎªÕæ, Êͷųɹ¦  | 
| # @remarks ½µµÍ³ðºÞ  | 
| def UseSkill(attacker, defender, curSkill, tagRoundPosX, tagRoundPosY, isEnhanceSkill, tick):  | 
|     #  | 
|     #²»ÊÇNPC²»´¦Àí  | 
|     if defender.GetGameObjType() != IPY_GameWorld.gotNPC:  | 
|         return  | 
|       | 
|     skillPer = curSkill.GetEffect(0).GetEffectValue(0)  | 
|     skillPer /= float(ChConfig.Def_MaxRateValue)  | 
|   | 
|     attackerID = attacker.GetID()  | 
|     attackerType = attacker.GetGameObjType()  | 
|     npcAngry = defender.GetNPCAngry()  | 
|       | 
|     #³ðºÞÁбíΪ¹Ì¶¨³¤¶ÈÁбí, ¿ÉÒÔÔÚforÖÐɾ³ý  | 
|     for i in range(0, npcAngry.GetAngryCount()):  | 
|           | 
|         angryTag = npcAngry.GetAngryValueTag(i)  | 
|           | 
|         angryID = angryTag.GetObjID()  | 
|         angryType = angryTag.GetObjType()  | 
|           | 
|         #²»¼ì²é¿ÕID  | 
|         if angryID == 0:  | 
|             continue  | 
|           | 
|         #Ê©·¨Õߣ¬Çå¿Õ³ðºÞÖµ  | 
|         if attackerID == angryID and attackerType == angryType:  | 
|             angryTag.SetAngryValue(int(angryTag.GetAngryValue()*skillPer))  | 
|             break  | 
|       | 
|     #´¦Àí¼¼ÄÜ´¥·¢ºÍ¹¥»÷³É¹¦Âß¼  | 
|     return BaseAttack.DoSkillEx_AttackSucess(attacker, defender, curSkill, tick, isEnhanceSkill)  | 
|   |