From 72c303f9f8819c6ab63eb5f00144d2872480ddc4 Mon Sep 17 00:00:00 2001 From: xdh <xiefantasy@qq.com> Date: 星期三, 05 十二月 2018 17:53:51 +0800 Subject: [PATCH] 5257 子 【1.3】【1.3.100】数值优化 / 【后端】【1.3】【1.3.100】符印属性公式优化 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py | 23 +++++++++++++++++------ 1 files changed, 17 insertions(+), 6 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py index 2444a95..52a495c 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py @@ -99,6 +99,13 @@ coolDownTime = curSkill.GetCoolDownTime() remainTime = coolDownTime if isPassiveSkill(curSkill): + if curSkill.GetFuncType() == ChConfig.Def_SkillFuncType_GiftSkill: + # 天赋有减CD效果 + reduceSkillCDPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, None, curSkill, ChConfig.TriggerType_GiftReduceCD) + # 减CD比率 + if reduceSkillCDPer > 0: + remainTime = int(remainTime * max(0, ShareDefine.Def_MaxRateValue - reduceSkillCDPer) / ShareDefine.Def_MaxRateValue) + # 被动技能的处理和主动技能区分 curSkill.SetRemainTime(remainTime) return @@ -108,7 +115,6 @@ # remainTime = skillData.GetCoolDownTime() reduceSkillCDPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, None, curSkill, ChConfig.TriggerType_ReduceCD) - # 减CD比率 if reduceSkillCDPer > 0: remainTime = int(remainTime * max(0, ShareDefine.Def_MaxRateValue - reduceSkillCDPer) / ShareDefine.Def_MaxRateValue) @@ -625,10 +631,10 @@ # @param curNPC NPC实例 # @param summonID 召唤兽的NPCID # @return 召唤兽数量 -def GetSummonCountByNPCID(curNPC, summonID): +def GetSummonCountByNPCID(gameObj, summonID): count = 0 - for i in range(0, curNPC.GetSummonCount()): - summonNPC = curNPC.GetSummonNPCAt(i) + for i in range(0, gameObj.GetSummonCount()): + summonNPC = gameObj.GetSummonNPCAt(i) if not summonNPC: continue @@ -1200,6 +1206,11 @@ GameWorld.Log('###技能伤害血量异常,数值错误 = %s,技能类型ID = %s' % (lostValue, skillTypeID)) return + if not curObj.GetCanAttack(): + # 无敌不掉血 + ## 后续有其他情况也应考虑进来,如镖车是否某状态不掉血 + return + #lostValue = GetGoblinLostHP(curObj, lostValue) curObjType = curObj.GetGameObjType() curSkill = GameWorld.GetGameData().FindSkillByType(skillTypeID, 1) @@ -1213,8 +1224,8 @@ curObjHP_BeforeAttack = GameObj.GetHP(curObj) if reduceHP : + lostValue = AttackCommon.CalcAtkProDef(buffOwner, curObj, lostValue, curSkill, tick) # 血盾 - lostValue = AttackCommon.CalcBloodShield(buffOwner, curObj, lostValue) #剩余血量 @@ -1246,7 +1257,7 @@ #无法找到Buff拥有者 if not buffOwner: - AttackCommon.DoLogic_ObjDead(curObj) + AttackCommon.DoLogic_ObjDead(None, curObj, curSkill, tick) return #NPC需要手动添加伤血和仇恨, 因为无调用DoAttack -- Gitblit v1.8.0