#!/usr/bin/python  
 | 
# -*- coding: GBK -*-  
 | 
#-------------------------------------------------------------------------------  
 | 
#  
 | 
#-------------------------------------------------------------------------------  
 | 
#  
 | 
##@package SkillModule_10  
 | 
#  
 | 
# @todo: Ë²ÒÆ  
 | 
# @author Alee  
 | 
# @date 2010-12-16 20:50  
 | 
# @version 1.2  
 | 
#  
 | 
# @change: "2013-04-17 20:35" Alee ÏÈÊͷż¼ÄܺóÔÙÉÁ˸£¬Ö§³Ö¿Í»§¶Ë¶¯×÷  
 | 
# @change: "2013-11-05 21:00" Alee ·¹öÕϰµãÏÞÖÆ  
 | 
#------------------------------------------------------------------------------   
 | 
"""Version = 2013-11-05 21:00"""  
 | 
#------------------------------------------------------------------------------  
 | 
#µ¼Èë  
 | 
import GameWorld  
 | 
import BaseAttack  
 | 
import IPY_GameWorld  
 | 
import GameMap  
 | 
#---------------------------------------------------------------------  
 | 
#È«¾Ö±äÁ¿  
 | 
#---------------------------------------------------------------------  
 | 
  
 | 
#---------------------------------------------------------------------  
 | 
##Ë²ÒÆ  
 | 
# @param attacker ¹¥»÷ÕßʵÀý  
 | 
# @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):  
 | 
    startPosX, startPosY = attacker.GetPosX(), attacker.GetPosY()  
 | 
      
 | 
    #===========================================================================  
 | 
    # #¹ÊÖ·¹öÌØÊâ´¦Àí²»ÄÜÔ½¹ýÕÏ°Ìø  
 | 
    # if curSkill.GetSkillTypeID() == 7460:  
 | 
    #    #¹ÊÖ·¹öÓÃË²ÒÆÄ£°å£¬ÌøÅü¶¯×÷  
 | 
    #    if not (GameWorld.GetMap().CanLineTo(tagRoundPosX, tagRoundPosY, startPosX, startPosY) \  
 | 
    #        and GameWorld.GetMap().CanLineTo(startPosX, startPosY, tagRoundPosX, tagRoundPosY)):  
 | 
    #        return False  
 | 
    #===========================================================================  
 | 
      
 | 
    #´¦Àí¼¼ÄÜ´¥·¢ºÍ¹¥»÷³É¹¦Âß¼  
 | 
    reslut = BaseAttack.DoSkillEx_AttackSucess(attacker, defender, curSkill, tick, isEnhanceSkill)  
 | 
      
 | 
    #NPC  
 | 
    if attacker.GetGameObjType() == IPY_GameWorld.gotNPC:  
 | 
        posX, posY = GameMap.GetNearbyPosByDis(defender.GetPosX(), defender.GetPosY(), 1)  
 | 
        if posX == 0 and posY == 0:  
 | 
            return  
 | 
          
 | 
        attacker.ResetPos(defender.GetPosX(), defender.GetPosY(), curSkill.GetSkillID())  
 | 
      
 | 
    #Íæ¼Ò  
 | 
    elif attacker.GetGameObjType() == IPY_GameWorld.gotPlayer:  
 | 
        GameWorld.ResetPlayerPos(attacker, tagRoundPosX, tagRoundPosY, curSkill.GetSkillID())  
 | 
          
 | 
    else:  
 | 
        return  
 | 
      
 | 
    return reslut  
 | 
  
 |