From ddc480baf399e9e0c87406c2c6738e04dbe6da86 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期四, 20 六月 2019 12:01:03 +0800 Subject: [PATCH] 7394 【2.0】【后端】雷罚BOSS(副本中只有一个玩家时离线副本关闭逻辑优化) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py | 46 ++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 44 insertions(+), 2 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 bc90b1e..c2f464a 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 @@ -33,6 +33,7 @@ import ShareDefine import GameObj import PassiveBuffEffMng +import IpyGameDataPY #--------------------------------------------------------------------- #--------------------------------------------------------------------- @@ -98,6 +99,11 @@ curSkill.SetLastUseTick(tick) coolDownTime = curSkill.GetCoolDownTime() remainTime = coolDownTime + + skillTypeID = curSkill.GetSkillTypeID() + if atkObj and skillTypeID in IpyGameDataPY.GetFuncEvalCfg("SkillCD", 1): + reduceSkillCDPer += PlayerControl.GetTheFBSkillsCD(atkObj) + if isPassiveSkill(curSkill): if curSkill.GetFuncType() == ChConfig.Def_SkillFuncType_GiftSkill: # 天赋有减CD效果 @@ -1266,7 +1272,12 @@ if curObj.GetGameNPCObjType() == IPY_GameWorld.gnotPet: PetControl.SetPetHP(curObj, remainHP) else: - GameObj.SetHP(curObj, remainHP) + timeLostHPIpyData = IpyGameDataPY.GetIpyGameDataNotLog("NPCTimeLostHP", curObj.GetNPCID()) + if timeLostHPIpyData: + AttackCommon.UpdateTimeMonsterHP(curObj, timeLostHPIpyData, tick) + else: + GameObj.SetHP(curObj, remainHP) + if not view : # 已广播的不重复 curObj.Notify_HPEx() @@ -1276,10 +1287,11 @@ GameObj.SetHP(curObj, remainHP, not view) AttackCommon.WriteHurtLog(buffOwner, curObj, curSkill, lostValue, hurtType, "持续掉血") - if view: #广播伤血类型 AttackCommon.ChangeHPView(curObj, buffOwner, skillTypeID, notifyLostValue, hurtType) + if buffOwner: + PassiveBuffEffMng.OnPassiveSkillTrigger(buffOwner, curObj, curSkill, ChConfig.TriggerType_AttackOverPassive, tick) # 濒死状态触发技能 if GameObj.GetHP(curObj) == 0: @@ -1747,6 +1759,35 @@ return returnInfo + +def FindBuffByOwner(gameObj, skillTypeID, ownerID, ownerType): + findSkill = GameWorld.GetGameData().GetSkillBySkillID(skillTypeID) + buffType = GetBuffType(findSkill) + buffTuple = GetBuffManagerByBuffType(gameObj, buffType) + if buffTuple == (): + return None + + buffManager = buffTuple[0] + for i in range(0, buffManager.GetBuffCount()): + curBuff = buffManager.GetBuff(i) + if not curBuff: + continue + + #判断是否拥有同一类型的技能 + if curBuff.GetSkill().GetSkillTypeID() != skillTypeID: + continue + + #判断是否拥有同一类型的技能 + if curBuff.GetOwnerID() != ownerID: + continue + + if curBuff.GetOwnerType() != ownerType: + continue + + return curBuff + + return None + #--------------------------------------------------------------------- ## 执行清空命令 参数:玩家, 保留技能类型列表 # @param curPlayer 玩家 @@ -2091,6 +2132,7 @@ #技能附加 skillValue = curSkill.GetEffect(0).GetEffectValue(1) + skillPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(userObj, None, curSkill, ChConfig.TriggerType_AddHP)/float(ChConfig.Def_MaxRateValue) #公式计算治疗值 cureHP = int((cureBaseValue * skillPer + skillValue + addExValue) * curePercent) -- Gitblit v1.8.0