From efb45afae0f9f1f8471ef89505fd6a68d03d1ed9 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期日, 28 四月 2019 13:47:16 +0800
Subject: [PATCH] 6607 【2.0】【后端】技能升级功能改版(点数变更刷新修改)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerAttrFruit.py | 9 ---------
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py | 9 +++++----
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py | 2 --
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py | 14 +++++++++++++-
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/Item_ResetAttrPoint.py | 3 ---
5 files changed, 18 insertions(+), 19 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/Item_ResetAttrPoint.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/Item_ResetAttrPoint.py
index a43f922..9e16f5d 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/Item_ResetAttrPoint.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/Item_ResetAttrPoint.py
@@ -85,9 +85,6 @@
#刷新人物所有状态
playerControl = PlayerControl.PlayerControl(curPlayer)
playerControl.RefreshPlayerAttrState()
-
- #更新技能专精
- SkillShell.RefreshElementSkillByAttr(curPlayer, resetIDList)
return True
## 逻辑实现 //返回值为是否使用成功(外层通知特效)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
index 138d117..021acb4 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -1773,8 +1773,6 @@
NotifyPlayerBasePoint(curPlayer, pointAttrIDList)
playerControl = PlayerControl.PlayerControl(curPlayer)
playerControl.RefreshPlayerAttrState()
- #更新技能专精
- SkillShell.RefreshElementSkillByAttr(curPlayer, pointAttrIDList)
return
def NotifyPlayerBasePoint(curPlayer, syncAttrIDList=[]):
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerAttrFruit.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerAttrFruit.py
index c70482f..f2d2012 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerAttrFruit.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerAttrFruit.py
@@ -200,15 +200,6 @@
# 刷新属性
__RefreshAttr(curPlayer, funcIndex)
-
- # 若是加灵根属性则更新技能专精
- pointAttrIDList = []
- for attrID in attrIDList:
- if attrID in [ShareDefine.Def_Effect_Metal, ShareDefine.Def_Effect_Wood, ShareDefine.Def_Effect_Water,
- ShareDefine.Def_Effect_Fire, ShareDefine.Def_Effect_Earth]:
- pointAttrIDList.append(attrID)
- if pointAttrIDList:
- SkillShell.RefreshElementSkillByAttr(curPlayer, pointAttrIDList)
return True, hasUseCnt
## 玩家使用属性果实
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
index b92939b..5d406a6 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -4345,6 +4345,8 @@
beforeMaxHP = curPlayer.GetMaxHP()
beforeMoveSpeedValue = GetSpeedValue(curPlayer)
beforeMaxProDef = GetMaxProDef(curPlayer)
+ #[金木水火土]
+ beforePointList = [GetMetal(curPlayer), GetWood(curPlayer), GetWater(curPlayer), GetFire(curPlayer), GetEarth(curPlayer)]
#构建玩家刷新通知客户端字典, 缓存[索引, 数值]
playerStateDict = {}
for index in xrange(1, ChConfig.Def_Calc_AllAttrType_MAX):
@@ -4551,7 +4553,17 @@
#通知基础属性
self.__SyncBaseAttr(curPlayer, baseAttrList)
-
+ #五行灵根变更需要处理的逻辑
+ afterPointList = [GetMetal(curPlayer), GetWood(curPlayer), GetWater(curPlayer), GetFire(curPlayer), GetEarth(curPlayer)]
+ if beforePointList !=afterPointList:
+ diffPointAttrList = []
+ for i, attrID in enumerate([ShareDefine.Def_Effect_Metal, ShareDefine.Def_Effect_Wood, ShareDefine.Def_Effect_Water,
+ ShareDefine.Def_Effect_Fire, ShareDefine.Def_Effect_Earth]):
+ if beforePointList[i] != afterPointList[i]:
+ diffPointAttrList.append(attrID)
+ SkillShell.RefreshElementSkillByAttr(curPlayer, diffPointAttrList)
+
+
# 同步前端战力,因为有 SetFightPower 所以累加战力放在这里所有刷新及计算处理完后才处理,才能正常触发set同步前端
self.SendModuleFightPowerPack(curPlayer, mfpDict)
billFuncCnt = len(PyGameData.g_refreshAttrBillboardFunc) # 只处理固定次数,防止死循环
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 68e1a6a..318083e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
@@ -2104,7 +2104,7 @@
skillManager = curPlayer.GetSkillManager()
curSkill = skillManager.FindSkillBySkillTypeID(skillTypeID)
curSkillLV = curSkill.GetSkillLV() if curSkill else 0
-
+
if updSkillLV == curSkillLV:
return
elif updSkillLV < curSkillLV:
@@ -2119,11 +2119,12 @@
def RefreshElementSkillByAttr(curPlayer, attrIDList):
#加点、丹药、境界、洗点 会影响灵根点
__InitElementSkillInfo()
+
isRefresh = False
skillManager = curPlayer.GetSkillManager()
for i in xrange(skillManager.GetSkillCount()):
hasSkill = skillManager.GetSkillByIndex(i)
- hasSkillID = hasSkill.GetSkillID()
+ hasSkillID = hasSkill.GetSkillTypeID()
ipyData = IpyGameDataPY.GetIpyGameDataByCondition('SkillElement', {'MainSkillID':hasSkillID}, False, False)
if not ipyData:
continue
@@ -2150,7 +2151,7 @@
skillManager = curPlayer.GetSkillManager()
for i in xrange(skillManager.GetSkillCount()):
hasSkill = skillManager.GetSkillByIndex(i)
- hasSkillID = hasSkill.GetSkillID()
+ hasSkillID = hasSkill.GetSkillTypeID()
ipyData = IpyGameDataPY.GetIpyGameDataByCondition('SkillElement', {'MainSkillID':hasSkillID}, False, False)
if not ipyData:
continue
@@ -2187,7 +2188,7 @@
skillManager = curPlayer.GetSkillManager()
for i in xrange(skillManager.GetSkillCount()):
hasSkill = skillManager.GetSkillByIndex(i)
- hasSkillID = hasSkill.GetSkillID()
+ hasSkillID = hasSkill.GetSkillTypeID()
ipyData = IpyGameDataPY.GetIpyGameDataByCondition('SkillElement', {'MainSkillID':hasSkillID}, False, False)
if not ipyData:
continue
--
Gitblit v1.8.0