From 5442da19166041144cf69ac36d9f8728ae597692 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期六, 13 十二月 2025 19:36:46 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(修复曹仁、甄宓破盾无法触发bug;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnBuff.py | 15 ++++++---------
1 files changed, 6 insertions(+), 9 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnBuff.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnBuff.py
index 1d43d18..e9bb3bc 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnBuff.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnBuff.py
@@ -21,7 +21,6 @@
import IpyGameDataPY
import TurnBuffs
import BattleObj
-import ObjPool
import TurnPassive
GameWorld.ImportAll("Script\\Skill\\", "TurnBuffs")
@@ -69,13 +68,11 @@
return
ownerID = buffOwner.GetID() if buffOwner else 0
tagObjList = [batObj]
- poolMgr = ObjPool.GetPoolMgr()
- useSkill = poolMgr.acquire(BattleObj.PySkill, skillIpyData, ownerID)
+ useSkill = BattleObj.PySkill(skillIpyData, ownerID)
useSkill.SetTagObjList(tagObjList)
addBuff = OnAddBuff(turnFight, batObj, useSkill, buffOwner, bySkill, afterLogic, isSync=isSync, setLayerCnt=setLayerCnt)
- poolMgr.release(useSkill)
return addBuff
def OnAddBuff(turnFight, batObj, buffSkill, buffOwner=None, bySkill=None, afterLogic=False, isSync=True, **kwargs):
@@ -364,13 +361,14 @@
DoBuffDel(turnFight, batObj, curBuff, relatedSkill)
return
-def DoBuffDel(turnFight, batObj, curBuff, relatedSkill=None, afterLogic=False, tagObj=None, noRefreshAttr=False, isSync=True):
+def DoBuffDel(turnFight, batObj, curBuff, relatedSkill=None, afterLogic=False, tagObj=None, noRefreshAttr=False, isSync=True, afterTriggerData=None):
'''删除buff
@param relatedSkill: 关联的技能
@param afterLogic: 是否需要在关联技能处理完毕后才处理删除后续逻辑,如通知,触发被动等
@param tagObj: 由谁引起的buff删除
@param noRefreshAttr: 不刷新属性
@return: isRefreshAttr 是否需要刷属性,如果设置了 noRefreshAttr,则要在外层刷属性
+ @return: afterTriggerData afterLogic为True时,附带的被动触发数据,因为buff被删除后该buff自带的被动效果也会被删除,所以先缓存供后续处理
'''
release = True # 释放buff实例
@@ -401,7 +399,7 @@
SyncBuffDel(turnFight, buffObjID, buffID, relatedSkillID)
if afterLogic and relatedSkill:
tagObjID = tagObj.GetID() if tagObj else buffObjID
- relatedSkill.AddAfterLogic(ChConfig.AfterLogic_DelBuff, [buffObjID, curBuff, tagObjID])
+ relatedSkill.AddAfterLogic(ChConfig.AfterLogic_DelBuff, [buffObjID, curBuff, tagObjID, afterTriggerData])
#buff消失的触发
for effectIndex in range(0, skillData.GetEffectCount()):
@@ -448,7 +446,6 @@
## buff删除后续处理逻辑处理完毕
relatedSkillID = relatedSkill.GetSkillID() if relatedSkill else 0
SyncBuffDel(turnFight, buffObjID, curBuff.GetBuffID(), relatedSkillID)
- ObjPool.GetPoolMgr().release(curBuff)
return
def DoBuffProcess(turnFight, batObj, curBuff, **kwargs):
@@ -640,7 +637,7 @@
def SyncBuffRefresh(turnFight, curBatObj, curBuff, relatedSkillID=0, isNewAdd=False):
## @param curBatObj: 该buff的持有者,即在谁身上
- clientPack = ObjPool.GetPoolMgr().acquire(ChPyNetSendPack.tagSCBuffRefresh)
+ clientPack = ChPyNetSendPack.tagSCBuffRefresh()
clientPack.ObjID = curBatObj.GetID()
clientPack.BuffID = curBuff.GetBuffID()
clientPack.SkillID = curBuff.GetSkillID()
@@ -656,7 +653,7 @@
return
def SyncBuffDel(turnFight, objID, buffID, relatedSkillID=0):
- clientPack = ObjPool.GetPoolMgr().acquire(ChPyNetSendPack.tagSCBuffDel)
+ clientPack = ChPyNetSendPack.tagSCBuffDel()
clientPack.ObjID = objID
clientPack.BuffID = buffID
clientPack.RelatedSkillID = relatedSkillID
--
Gitblit v1.8.0