| #!/usr/bin/python  | 
| # -*- coding: GBK -*-  | 
| #-------------------------------------------------------------------------------  | 
| #  | 
| #-------------------------------------------------------------------------------  | 
| #  | 
| ##@package SkillModule_3  | 
| #  | 
| # @todo: Á´Ê½¹¥»÷  | 
| # @author Alee  | 
| # @date 2010-12-16 20:50  | 
| # @version 1.0  | 
| #  | 
| # ÏêϸÃèÊö: Á´Ê½¹¥»÷  | 
| #  | 
| #------------------------------------------------------------------------------   | 
| """Version = 2010-12-16 20:50"""  | 
| #------------------------------------------------------------------------------  | 
| #µ¼Èë  | 
|   | 
| import ChConfig  | 
| import BaseAttack  | 
| import SkillShell  | 
| 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):  | 
|     #¼¼ÄÜÔöǿֵ  | 
|     skillPer = curSkill.GetEffect(0).GetEffectValue(0)  | 
|     #¼¼Äܸ½¼ÓÖµ  | 
|     addValue = curSkill.GetEffect(0).GetEffectValue(1)  | 
|     #¼¼ÄܵÝÔöÖµ  | 
|     addPer = curSkill.GetEffect(1).GetEffectValue(0)  | 
|     # 0µÝ¼õ 1µÝÔö  | 
|     changeType = curSkill.GetEffect(1).GetEffectValue(1)  | 
|       | 
|     #¼¼ÄÜÌø×ª´ÎÊý  | 
|     jumpCount = curSkill.GetEffect(2).GetEffectValue(0)  | 
|       | 
|     if SkillShell.IsPlayerUseSkill(attacker, curSkill):  | 
|         jumpCount = len(SkillShell.GetClientHurtDict())  | 
|       | 
|     #¹¹½¨ÁÐ±í  | 
|     skillPerList = []  | 
|     for i in range(jumpCount):  | 
|         if changeType:  | 
|             skillPerList.append((skillPer + i * addPer))  | 
|         else:  | 
|             skillPerList.append((skillPer - i * addPer))  | 
|   | 
|     #GameWorld.Log("ÉÁµçÁ´¹¥»÷¼¼ÄÜÔöÇ¿Áбí = %s,¸½¼ÓÖµ = %s, Ìø×ª´ÎÊý = %s"%(skillPerList, addValue, jumpCount))    | 
|       | 
|     if SkillShell.IsPlayerUseSkill(attacker, curSkill):  | 
|         return BaseAttack.ChainAttackAreaEx(attacker, defender, curSkill, defender.GetPosX(),   | 
|                                           defender.GetPosY(), addValue, skillPerList, tick,  | 
|                                           isExSkill = isEnhanceSkill)  | 
|     else:  | 
|         #µ÷Óù¥»÷Êý×é  | 
|         return BaseAttack.ChainAttackArea(attacker, defender, curSkill, defender.GetPosX(),   | 
|                                           defender.GetPosY(), addValue, skillPerList, tick,  | 
|                                           isExSkill = isEnhanceSkill)  | 
|       |