From 2c117dc6bd78581cf871a83bf522d4bce97b6fba Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期三, 08 五月 2019 17:12:25 +0800
Subject: [PATCH] 6457 宝藏副本视野设置
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py | 22 +++++++++++++++++++++-
1 files changed, 21 insertions(+), 1 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 76cd193..88f9e7d 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py
@@ -184,7 +184,7 @@
if buffCoexistType == ChConfig.Def_Buff_Coexist and buffOwner:
#可同时存在的buff,判断释放者是否不一样
- if buffSkill.GetOwnerID() != buffOwner.GetID() or buffSkill.GetOwnerType() != buffOwner.GetGameObjType():
+ if curBuff.GetOwnerID() != buffOwner.GetID() or curBuff.GetOwnerType() != buffOwner.GetGameObjType():
continue
#--------------技能类型ID相同
@@ -633,6 +633,9 @@
index = 0
isPlayerTJG = (curObj.GetGameObjType() == IPY_GameWorld.gotPlayer and PlayerTJG.GetIsTJG(curObj))
+
+ skillIDListInDelBuff = [] # buff消失中需要处理添加buff,外层处理避免错乱
+
while index < buffState.GetBuffCount():
curBuff = buffState.GetBuff( index )
if not curBuff:
@@ -681,12 +684,29 @@
buffState.DeleteBuffByIndex( index )
SkillShell.ClearBuffEffectBySkillID(curObj, curSkill.GetSkillID(), ownerID, ownerType)
+ addSkillID = curObj.GetDictByKey(ChConfig.Def_PlayerKey_SkillInDelBuff)
+ if addSkillID and addSkillID not in skillIDListInDelBuff:
+ skillIDListInDelBuff.append(addSkillID)
+
+ OnSkillAfterBuffDisappear(curObj, skillIDListInDelBuff, tick)
+
#执行DoBuffDisApper中,标记的玩家处理要求
__DoBuffDisApperByKey( curObj , tick )
return isRefresh, delResult
+# DoBuffDisApper不能做Buff添加和删除逻辑!!!!!不然指针会错乱, 故在外层处理
+def OnSkillAfterBuffDisappear(curObj, skillIDListInDelBuff, tick):
+ posX, posY = curObj.GetPosX(), curObj.GetPosY()
+ for skillID in skillIDListInDelBuff:
+ skillData = GameWorld.GetGameData().GetSkillBySkillID(skillID)
+ if not skillData:
+ continue
+
+ SkillShell.Trigger_UseSkill(curObj, curObj, skillData, tick, posX, posY)
+ return
+
#---------------------------------------------------------------------
## 执行buff消失触发逻辑
# @param curObj 当前OBj
--
Gitblit v1.8.0