#!/usr/bin/python  
 | 
# -*- coding: GBK -*-  
 | 
#-------------------------------------------------------------------------------  
 | 
#  
 | 
#-------------------------------------------------------------------------------  
 | 
#  
 | 
##@package SkillModule_9  
 | 
#  
 | 
# @todo: ³åײ  
 | 
# @author Alee  
 | 
# @date 2010-12-16 20:50  
 | 
# @version 1.4  
 | 
#  
 | 
# ÏêϸÃèÊö:³åײ£¬Ö±ÏßÖÐÓÐÕϰµã¿Í»§¶Ë»á¹ÕÍ䣬·þÎñ¶Ë²»ÏÞÖÆ  
 | 
#  
 | 
#------------------------------------------------------------------------------   
 | 
"""Version = 2013-11-05 19:00"""  
 | 
#------------------------------------------------------------------------------  
 | 
#µ¼Èë  
 | 
  
 | 
import ChConfig  
 | 
import GameWorld  
 | 
import BaseAttack  
 | 
import PlayerControl  
 | 
import IPY_GameWorld  
 | 
import GameObj  
 | 
#---------------------------------------------------------------------  
 | 
#È«¾Ö±äÁ¿  
 | 
#---------------------------------------------------------------------  
 | 
  
 | 
#---------------------------------------------------------------------  
 | 
##³åײ # Óë¿Í»§¶ËÔ¼¶¨³å·æÇ°·¢°ü£¬Ä¿±êΪµØµã£¬Óëսǰ³å·æ²»Í¬  
 | 
def UseSkill(attacker, defender, curSkill, tagRoundPosX, tagRoundPosY, isEnhanceSkill, tick):  
 | 
    if attacker.GetGameObjType() == IPY_GameWorld.gotPlayer:  
 | 
        destX = attacker.GetUseSkillPosX()  
 | 
        destY = attacker.GetUseSkillPosY()  
 | 
    else:  
 | 
        destX = defender.GetPosX()  
 | 
        destY = defender.GetPosY()  
 | 
      
 | 
    #ÊÇÕϰµã,²»ÄÜÊÍ·Å£¬Ìø³ö  
 | 
    if not GameWorld.GetMap().CanMove(destX, destY):  
 | 
        #PlayerControl.NotifyCode(attacker, "04BBF813-7A30-47A8-927DE1ACCC4F378E")  
 | 
        return False  
 | 
      
 | 
    result = True  
 | 
      
 | 
    if defender:    # ÓÐÄ¿±ê²ÅËãÉ˺¦  
 | 
          
 | 
        skillEffect = curSkill.GetEffect(0)  
 | 
        skillPer = skillEffect.GetEffectValue(0)  
 | 
        skillEnhance = skillEffect.GetEffectValue(1)  
 | 
    
 | 
        #ʹÓü¼ÄÜ£¬ÎÞÐèÌáÉý±©»÷ÂÊ  
 | 
        result = BaseAttack.Attack(attacker, defender, curSkill, tick, skillPer,   
 | 
                                   skillEnhance, 1, isEnhanceSkill)  
 | 
  
 | 
    else:  
 | 
        # Í¨Öª¼¼ÄÜÊÍ·Å  
 | 
        BaseAttack.DoSkillEx_AttackSucess(attacker, None, curSkill, tick, isEnhanceSkill)  
 | 
  
 | 
    #·þÎñ¶ËÖÃλ  
 | 
    #GameWorld.ResetPlayerPos(attacker, destX, destY)  
 | 
    attacker.StopMove()  
 | 
    #GameWorld.DebugLog("-----¼¼Äܳ巿ģ°å9 %s %s"%([attacker.GetPosX(), attacker.GetPosY()], [destX, destY]))  
 | 
    attacker.ChangePos(destX, destY)  
 | 
  
 | 
    if curSkill.GetSkillID() == ChConfig.Def_SkillID_Somersault:  
 | 
        attacker.SetDict(ChConfig.Def_PlayerKey_SomersaultTime, tick)  
 | 
  
 | 
    return result  
 | 
     
 |