1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#!/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)