| | |
| | | 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
|
| | |
| | | def __CheckPlayerUseSkill_ClientPack(curPlayer, posX, posY, curSkill):
|
| | | if GameObj.GetHP(curPlayer) <= 0:
|
| | | return
|
| | | |
| | | if curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_ClientCustomScene):
|
| | | #GameWorld.DebugLog("自定义场景中,不检查!")
|
| | | return True
|
| | |
|
| | | #===========================================================================
|
| | | # if curPlayer.IsMoving():
|