#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # ##@package Skill.GameSkills.SkillModule_34 # # @todo:Ë²ÒÆ+É˺¦ # @author hxp # @date 2016-3-31 # @version 1.0 # # ÏêϸÃèÊö: Ë²ÒÆ+É˺¦(Ч¹û°ë¾¶ 0-µ¥¹¥; >0Ⱥ¹¥Ð§¹û°ë¾¶); ¿ÉÔÙ´¥·¢¼¼ÄÜ # #------------------------------------------------------------------------------- #"""Version = 2016-3-31 11:30""" #------------------------------------------------------------------------------- import GameMap import ChConfig import GameWorld import BaseAttack 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): if tagRoundPosX == -1 or tagRoundPosY == -1: if not defender: return tagRoundPosX = defender.GetPosX() tagRoundPosY = defender.GetPosY() skillEffect = curSkill.GetEffect(0) skillPer = skillEffect.GetEffectValue(0) skillEnhance = skillEffect.GetEffectValue(1) curRadius = curSkill.GetAtkRadius() # 0-µ¥¹¥; >0Ⱥ¹¥Ð§¹û°ë¾¶ if curRadius == 0: result = BaseAttack.Attack(attacker, defender, curSkill, tick, skillPer, skillEnhance, 1, isEnhanceSkill) else: result = BaseAttack.AttackerSkillAttackArea(attacker, defender, tagRoundPosX, tagRoundPosY, curSkill, skillPer, skillEnhance, tick, isExSkill=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(tagRoundPosX, tagRoundPosY, curSkill.GetSkillID()) #Íæ¼Ò elif attacker.GetGameObjType() == IPY_GameWorld.gotPlayer: GameWorld.ResetPlayerPos(attacker, tagRoundPosX, tagRoundPosY, curSkill.GetSkillID()) return result