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
#!/usr/bin/python
# -*- coding: GBK -*-
#
#
##@package SkillModule_14.py
#
# @todo:·¨Á¦È¼ÉÕ(ȼÉÕÄ¿±ê·¨Á¦°Ù·Ö±È)
#
# @author jiang
# @date 2012-07-13
# @version 1.0
# @note:
#
#------------------------------------------------------------------------------ 
"""Version = 2012-07-13 15:30"""
#------------------------------------------------------------------------------ 
# µ¼Èë
import ChConfig
import SkillCommon
import BaseAttack
import IPY_GameWorld
import GameWorld
#------------------------------------------------------------------------------ 
 
## ·¨Á¦È¼ÉÕ(ȼÉÕÄ¿±ê·¨Á¦°Ù·Ö±È)
#  @param attacker ¹¥»÷ÕßʵÀý
#  @param defender ·ÀÊØÕßʵÀý
#  @param curSkill ¼¼ÄÜʵÀý
#  @param tagRoundPosX ÇøÓò×ø±êX
#  @param tagRoundPosY ÇøÓò×ø±êY
#  @param isEnhanceSkill ÊÇ·ñΪ¸½¼Ó¼¼ÄÜ
#  @param tick Ê±¼ä´Á
#  @return ·µ»ØÖµÎªÕæ, Êͷųɹ¦
def UseSkill(attacker, defender, curSkill, tagRoundPosX, tagRoundPosY, isEnhanceSkill, tick):
    skillEffect = curSkill.GetEffect(0)
    skillPer = skillEffect.GetEffectValue(0) / float(ChConfig.Def_MaxRateValue)
    skillEnhance = skillEffect.GetEffectValue(1)
    skillTypeID = curSkill.GetSkillTypeID()
    
    if defender.GetGameObjType() != IPY_GameWorld.gotPlayer:
        GameWorld.ErrLog("·¨Á¦È¼ÉÕ skillId = %s Ä¿±ê²»ÊÇÍæ¼Ò"%(skillTypeID))
        return
    
    lostMPValue = max(defender.GetMP(), int(defender.GetMP() * skillPer + skillEnhance))
    
    SkillCommon.SkillLostMP(defender, skillTypeID, attacker, lostMPValue, tick)
    
    #´¦Àí¼¼ÄÜ´¥·¢ºÍ¹¥»÷³É¹¦Âß¼­
    return BaseAttack.DoSkillEx_AttackSucess(attacker, defender, curSkill, tick, isEnhanceSkill)