From 5be8f0f08671591fcc9adff29a307cdbb0d3d22a Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期六, 29 九月 2018 00:35:18 +0800 Subject: [PATCH] 3428 子 【开发】神兽技能 / 【后端】神兽技能 -- 优化可叠加的同技能配置,高级技能叠加问题 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDogz.py | 21 +++++++++++++++++++++ 1 files changed, 21 insertions(+), 0 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDogz.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDogz.py index 102814b..cd9df55 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDogz.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDogz.py @@ -564,6 +564,7 @@ PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_DogzBattleSkill, skillAttrList) return + # 助战神兽技能属性,必须在 SetDogzIsHelpFight后调用 def CalcDogzBattleSkillAttr(curPlayer): skillAttrList = [{} for _ in range(4)] @@ -585,6 +586,26 @@ curEffect = curSkill.GetEffect(effectIndex) SkillShell.CalcBuffEffAttr(curPlayer, curEffect, skillAttrList) + # Def_SkillType_AttrSkillNoLearn 非学习属性技能 叠加属性计算 + ipyDataMgr = IpyGameDataPY.IPY_Data() + for i in xrange(ipyDataMgr.GetDogzCount()): + ipyData = ipyDataMgr.GetDogzByIndex(i) + if not GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_PDict_DogzFightState, i): + #未助战 + continue + + for skillID in ipyData.GetHelpBattleSkills(): + + skillData = GameWorld.GetGameData().GetSkillBySkillID(skillID) + if not skillData: + continue + # 同技能类型ID可多个叠加的属性时直接取表 + if skillData.GetSkillType() != ChConfig.Def_SkillType_AttrSkillNoLearn: + continue + + for effectIndex in xrange(skillData.GetEffectCount()): + curEffect = skillData.GetEffect(effectIndex) + SkillShell.CalcBuffEffAttr(curPlayer, curEffect, skillAttrList) #GameWorld.DebugLog("神兽技能属性: skillFPEx=%s, %s" % ( skillFPEx, skillAttrList)) return skillAttrList -- Gitblit v1.8.0