From 7d3e1b11373f664833362b3887dfe96e44dbf0da Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期五, 25 一月 2019 16:07:51 +0800 Subject: [PATCH] 2954 【1.5.100】【1.5.0】跨服竞技场地图报错 -- 男号技能极光琉璃的减攻速buff 被敌方反弹导致报错问题 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py | 24 +++++++++++++++++++++--- 1 files changed, 21 insertions(+), 3 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 46478a0..22c8681 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 @@ -220,11 +220,12 @@ def PlayerLoginMergeServerSkillLogic(curPlayer, tick): playerID = curPlayer.GetPlayerID() - if not GameWorld.IsMergeServer(): + if not GameWorld.IsCrossServer(): GameWorld.DebugLog("非跨服服务器上线不清除buff...", playerID) return - ClearBuffSkillTypeIDList = ReadChConfig.GetEvalChConfig("ClearBuffSkillTypeID") + #ClearBuffSkillTypeIDList = ReadChConfig.GetEvalChConfig("ClearBuffSkillTypeID") + ClearBuffSkillTypeIDList = [] # 跨服服务器上线清除增益/减益buff GameWorld.Log("跨服服务器上线清除buff...", playerID) clearBuffList = [] # 先汇总再清除,不然索引会变更 @@ -279,6 +280,15 @@ curSkill.SetRemainTime(0) GameWorld.DebugLog(" SetRemainTime 0 skillName=%s,skillTypeID=%s" % (curSkill.GetSkillName(), curSkill.GetSkillTypeID()), playerID) + return + +def ResetAllSkillCD(curPlayer): + skillManager = curPlayer.GetSkillManager() + for i in xrange(skillManager.GetSkillCount()): + skill = skillManager.GetSkillByIndex(i) + if skill.GetRemainTime() != 0: + skill.SetRemainTime(0) + skill.Sync_Skill() return ## 刷新玩家所有技能的剩余时间(上线) @@ -1206,6 +1216,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) @@ -1217,10 +1232,13 @@ notifyLostValue = lostValue curObjHP_BeforeAttack = GameObj.GetHP(curObj) + if curObjHP_BeforeAttack == 0: + # 没有血量不能再触发 + return if reduceHP : + lostValue = AttackCommon.CalcAtkProDef(buffOwner, curObj, lostValue, curSkill, tick) # 血盾 - lostValue = AttackCommon.CalcBloodShield(buffOwner, curObj, lostValue) #剩余血量 -- Gitblit v1.8.0