From bc915a9b717eccef3c8d825f9af79a7596394ac7 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期四, 09 五月 2019 11:34:27 +0800
Subject: [PATCH] 6603 【后端】【2.0】增加新版的sp和被动技能

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py |   30 +++++++++++++++++++++++++-----
 1 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
index 2d2ee46..5478a20 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
@@ -717,9 +717,27 @@
             continue
         npcObj.StopMove()
         npcObj.ChangePos(npcPos.PosX, npcPos.PosY)
-
+        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())
+    #范围校验
+    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
@@ -2719,10 +2737,12 @@
         if callFunc:
             callFunc(objDetel, curEffect, allAttrList[index], curBuff)
     
-    # 持续性属性变化的buff,目前只有持续减益
-    callFunc = GameWorld.GetExecFunc(GameBuffs, "BuffProcess_%s.%s"%(moduleSuffix, "OnCalcBuffEx"))
-    if callFunc:
-        callFunc(objDetel, curEffect, allAttrList[index], curBuff)
+    #是否持续性技能
+    if curBuff and curBuff.GetSkill().GetSkillType() in ChConfig.Def_LstBuff_List:
+        # 持续性属性变化的buff,目前只有持续减益
+        callFunc = GameWorld.GetExecFunc(GameBuffs, "BuffProcess_%s.%s"%(moduleSuffix, "OnCalcBuffEx"))
+        if callFunc:
+            callFunc(objDetel, curEffect, allAttrList[index], curBuff)
     return
 
 ## 获得buff效果的计算模块文件后缀

--
Gitblit v1.8.0