From bc915a9b717eccef3c8d825f9af79a7596394ac7 Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期四, 09 五月 2019 11:34:27 +0800 Subject: [PATCH] 6603 【后端】【2.0】增加新版的sp和被动技能 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py | 22 ++++++++++++++++------ 1 files changed, 16 insertions(+), 6 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py index 88f9e7d..6a8df92 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py @@ -25,6 +25,7 @@ import OperControlManager import GameObj import CrossPlayerData +import AttackCommon #--------------------------------------------------------------------- #--------------------------------------------------------------------- @@ -51,6 +52,8 @@ and SkillCommon.GetSkillBattleType(curSkill) == ChConfig.Def_BattleRelationType_CommNoBoss: # 释放后 对指定BOSS无效的技能 return True + + buffOwner = AttackCommon.ElfChangeAttacker(buffOwner) # Elf灵为替身攻击,要取玩家的属性 result = AddBuffNoRefreshState(curObj, buffType, curSkill, tick, addBuffValueList, buffOwner, addForce) @@ -378,7 +381,7 @@ if triggerType == -1: continue passiveEff = PassiveBuffEffMng.GetPassiveEffManager().InitObjPassiveEff(curObj) - passiveEff.AddBuffInfoByEffect(curEffect, skillID) + passiveEff.AddBuffInfoByEffect(curEffect, skillID, onwerID, onwerType) #添加BUFF后的特殊处理 @@ -568,6 +571,8 @@ return curBuff, i return None, 0 + + #--------------------------------------------------------------------- ## 刷新BUFF的时间 # @param curBuff 当前BUFF @@ -685,8 +690,10 @@ SkillShell.ClearBuffEffectBySkillID(curObj, curSkill.GetSkillID(), ownerID, ownerType) addSkillID = curObj.GetDictByKey(ChConfig.Def_PlayerKey_SkillInDelBuff) - if addSkillID and addSkillID not in skillIDListInDelBuff: - skillIDListInDelBuff.append(addSkillID) + if addSkillID: + skillInfo = [addSkillID, ownerID, ownerType] + if skillInfo not in skillIDListInDelBuff: + skillIDListInDelBuff.append(skillInfo) OnSkillAfterBuffDisappear(curObj, skillIDListInDelBuff, tick) @@ -699,12 +706,15 @@ # DoBuffDisApper不能做Buff添加和删除逻辑!!!!!不然指针会错乱, 故在外层处理 def OnSkillAfterBuffDisappear(curObj, skillIDListInDelBuff, tick): posX, posY = curObj.GetPosX(), curObj.GetPosY() - for skillID in skillIDListInDelBuff: - skillData = GameWorld.GetGameData().GetSkillBySkillID(skillID) + for skillInfo in skillIDListInDelBuff: + attacker = GameWorld.GetObj(skillInfo[1], skillInfo[2]) + if not attacker: + attacker = curObj + skillData = GameWorld.GetGameData().GetSkillBySkillID(skillInfo[0]) if not skillData: continue - SkillShell.Trigger_UseSkill(curObj, curObj, skillData, tick, posX, posY) + SkillShell.Trigger_UseSkill(attacker, curObj, skillData, tick, posX, posY) return #--------------------------------------------------------------------- -- Gitblit v1.8.0