| | |
| | | import ItemCommon
|
| | | import OperControlManager
|
| | | import PetControl
|
| | | import ReadChConfig
|
| | | import DataRecordPack
|
| | | #import ChItem
|
| | | import ShareDefine
|
| | | import PlayerHorse
|
| | | import GameObj
|
| | | import random
|
| | | import NetPackCommon
|
| | |
| | | import GameMap
|
| | | import collections
|
| | | import PassiveBuffEffMng
|
| | | import ChEquip
|
| | | import SkillShell
|
| | | import FBCommon
|
| | | import IpyGameDataPY
|
| | | import PyGameData
|
| | | import TurnAttack
|
| | | #---------------------------------------------------------------------
|
| | | GameWorld.ImportAll("Script\\Skill\\" , "GameSkills")
|
| | | GameWorld.ImportAll("Script\\Skill\\" , "GameBuffs")
|
| | |
| | | continue
|
| | | npcObj.StopMove()
|
| | | npcObj.ChangePos(npcPos.PosX, npcPos.PosY)
|
| | | BeatBackMove(curPlayer, npcObj)
|
| | | #BeatBackMove(curPlayer, npcObj)
|
| | | return
|
| | |
|
| | | # 针对NPC被推出远距离一直卡墙角问题,法宝挑战副本特殊处理为超过4米 NPC自动回退一些
|
| | | def BeatBackMove(curPlayer, npcObj):
|
| | | if GameWorld.GetMap().GetMapID() != ChConfig.Def_FBMapID_MagicWeapon:
|
| | | return
|
| | | if npcObj.GetCurAction() == IPY_GameWorld.laNPCSkillWarning:
|
| | | return
|
| | | |
| | | posMap = npcObj.GetRefreshPosAt(npcObj.GetCurRefreshPointIndex())
|
| | | if not posMap:
|
| | | return
|
| | | #范围校验
|
| | | posMapX = posMap.GetPosX()
|
| | | posMapY = posMap.GetPosY()
|
| | | if GameWorld.GetDist(npcObj.GetPosX(), npcObj.GetPosY(), posMapX, posMapY) < 8:
|
| | | # 单次位移不超过5米
|
| | | return
|
| | | npcControl = NPCCommon.NPCControl(npcObj)
|
| | | moveDestX, moveDestY = npcControl.GetMoveNearPosEx(posMapX, posMapY, 5)
|
| | | npcObj.Move(moveDestX, moveDestY)
|
| | | return
|
| | | ## 针对NPC被推出远距离一直卡墙角问题,法宝挑战副本特殊处理为超过4米 NPC自动回退一些
|
| | | #def BeatBackMove(curPlayer, npcObj):
|
| | | # if GameWorld.GetMap().GetMapID() != ChConfig.Def_FBMapID_MagicWeapon:
|
| | | # return
|
| | | # if npcObj.GetCurAction() == IPY_GameWorld.laNPCSkillWarning:
|
| | | # return
|
| | | # |
| | | # posMap = npcObj.GetRefreshPosAt(npcObj.GetCurRefreshPointIndex())
|
| | | # if not posMap:
|
| | | # return
|
| | | # #范围校验
|
| | | # posMapX = posMap.GetPosX()
|
| | | # posMapY = posMap.GetPosY()
|
| | | # if GameWorld.GetDist(npcObj.GetPosX(), npcObj.GetPosY(), posMapX, posMapY) < 8:
|
| | | # # 单次位移不超过5米
|
| | | # return
|
| | | # npcControl = NPCCommon.NPCControl(npcObj)
|
| | | # moveDestX, moveDestY = npcControl.GetMoveNearPosEx(posMapX, posMapY, 5)
|
| | | # npcObj.Move(moveDestX, moveDestY)
|
| | | # return
|
| | |
|
| | | #===============================================================================
|
| | | # //B4 03 吸引NPC仇恨 #tagNPCAttention
|
| | |
| | | if GameObj.GetHP(curPlayer) <= 0:
|
| | | return
|
| | |
|
| | | if curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_ClientCustomScene):
|
| | | #GameWorld.DebugLog("自定义场景中,不检查!")
|
| | | return True
|
| | | |
| | | #===========================================================================
|
| | | # if curPlayer.IsMoving():
|
| | | # GameWorld.DebugLog("移动中不可使用技能")
|
| | | # return False
|
| | | #===========================================================================
|
| | | if curPlayer.GetPlayerVehicle() == IPY_GameWorld.pvHorse:
|
| | | #GameWorld.DebugLog("骑马中不允许释放技能", curPlayerID)
|
| | | PlayerHorse.PlayerRideHorseDown(curPlayer)
|
| | | #if curPlayer.GetPlayerVehicle() == IPY_GameWorld.pvHorse:
|
| | | # #GameWorld.DebugLog("骑马中不允许释放技能", curPlayerID)
|
| | | # PlayerHorse.PlayerRideHorseDown(curPlayer)
|
| | |
|
| | | if not PlayerControl.PlayerCanStateTransfer(curPlayer):
|
| | | #GameWorld.DebugLog('CheckUseSkill, PlayerStateErr = %s '%( curPlayer.GetPlayerAction() ), curPlayerID )
|
| | |
| | | #===========================================================================
|
| | |
|
| | | if curSkill.GetFuncType() == ChConfig.Def_SkillFuncType_HorseSkill and SkillCommon.isPassiveAttr(curSkill):
|
| | | PlayerHorse.RefreshHorseAttr(curPlayer)
|
| | | pass#PlayerHorse.RefreshHorseAttr(curPlayer)
|
| | | else:
|
| | | if SkillCommon.isPassiveAttr(curSkill):
|
| | | curControl = PlayerControl.PlayerControl(curPlayer)
|