From a1e99408a57de594046d8d12baa613619f1d316f Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 11 十二月 2025 17:22:04 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(战斗去除对象池使用,释放效率有点低,且对象池对简单的类创建性能提升不高,故暂废弃;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py | 34 +++++++++++-----------------------
1 files changed, 11 insertions(+), 23 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
index 0ba5348..e4f017d 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
@@ -27,7 +27,6 @@
import TurnPassive
import TurnAttack
import TurnBuff
-import ObjPool
import FBLogic
import random
@@ -140,12 +139,9 @@
objID, skillID, len(tagObjList), batType, bySkillID, curBatObj.GetHP(), curBatObj.GetMaxHP(), angerOverflow, curXP, oneActionUseCnt)
# 以下为技能可以使用的处理,之后的逻辑默认技能使用成功
- poolMgr = ObjPool.GetPoolMgr()
- usePoolSkill = False
if isinstance(useSkill, IpyGameDataPY.IPY_Skill):
- usePoolSkill = True
# 统一使用 BattleObj.PySkill
- useSkill = poolMgr.acquire(BattleObj.PySkill, useSkill, objID)
+ useSkill = BattleObj.PySkill(useSkill, objID)
useSkill.ResetUseRec()
useSkill.SetTagObjList(tagObjList)
@@ -192,8 +188,6 @@
# 最后重置、回收对象
useSkill.ResetUseRec()
- if usePoolSkill:
- poolMgr.release(useSkill)
return True
def CheckSkillUseCntLimit(batObj, useSkill):
@@ -1018,8 +1012,7 @@
# hurtValue *= (10000 + FinalDamPer) / 10000.0
# GameWorld.DebugLogEx(" 增伤: hurtValue=%s,FinalDamPer=%s", hurtValue, FinalDamPer)
- poolMgr = ObjPool.GetPoolMgr()
- useSkill = poolMgr.acquire(BattleObj.PySkill, skillIpyData, atkID)
+ useSkill = BattleObj.PySkill(skillIpyData, atkID)
useSkill.SetTagObjList([defObj])
useSkill.SetBatType(ChConfig.TurnBattleType_Cot)
@@ -1055,7 +1048,6 @@
Sync_TurnFightTag(turnFight, useTag, 1)
useSkill.ResetUseRec()
- poolMgr.release(useSkill)
return
def SkillModule_6(turnFight, curBatObj, useSkill, opType):
@@ -2710,8 +2702,7 @@
hurtValue *= (10000 + FinalDamPer) / 10000.0
GameWorld.DebugLogEx(" 增伤: hurtValue=%s,FinalDamPer=%s", hurtValue, FinalDamPer)
- poolMgr = ObjPool.GetPoolMgr()
- useSkill = poolMgr.acquire(BattleObj.PySkill, skillIpyData, atkID)
+ useSkill = BattleObj.PySkill(skillIpyData, atkID)
useSkill.SetTagObjList([defObj])
useSkill.SetBatType(ChConfig.TurnBattleType_Dot)
@@ -2727,12 +2718,11 @@
Sync_TurnFightTag(turnFight, useTag, 1)
useSkill.ResetUseRec()
- poolMgr.release(useSkill)
return
def Sync_TurnFightTag(turnFight, useTag, sign):
## 通知技能标签
- clientPack = ObjPool.GetPoolMgr().acquire(ChPyNetSendPack.tagSCTurnFightTag)
+ clientPack = ChPyNetSendPack.tagSCTurnFightTag()
clientPack.Tag = useTag
clientPack.Len = len(clientPack.Tag)
clientPack.Sign = sign
@@ -2743,8 +2733,7 @@
## 通知释放技能
bySkill = useSkill.GetBySkill()
relatedSkillID = bySkill.GetSkillID() if bySkill else 0
- poolMgr = ObjPool.GetPoolMgr()
- clientPack = poolMgr.acquire(ChPyNetSendPack.tagSCUseSkill)
+ clientPack = ChPyNetSendPack.tagSCUseSkill()
clientPack.ObjID = curBatObj.GetID()
clientPack.PMType = GetPMType(curBatObj, useSkill)
clientPack.BattleType = useSkill.GetBatType()
@@ -2755,7 +2744,7 @@
# 技能的主要伤害
clientPack.HurtList = []
for hurtObj in useSkill.GetHurtObjList():
- hurt = poolMgr.acquire(ChPyNetSendPack.tagSCUseSkillHurt)
+ hurt = ChPyNetSendPack.tagSCUseSkillHurt()
hurt.ObjID = hurtObj.GetObjID()
hurt.AttackTypes = hurtObj.GetHurtTypes()
hurt.HurtHP = hurtObj.GetHurtHP() % ChConfig.Def_PerPointValue
@@ -2767,7 +2756,7 @@
hurt.HurtListEx = []
# 单个伤害的额外伤害,如弹射+平摊伤害
for hurtObjEx in hurtObj.GetHurtObjListEx():
- hurtEx = poolMgr.acquire(ChPyNetSendPack.tagSCUseSkillHurtEx)
+ hurtEx = ChPyNetSendPack.tagSCUseSkillHurtEx()
hurtEx.ObjID = hurtObjEx.GetObjID()
hurtEx.AttackTypes = hurtObjEx.GetHurtTypes()
hurtEx.HurtHP = hurtObjEx.GetHurtHP() % ChConfig.Def_PerPointValue
@@ -2782,7 +2771,7 @@
# 技能的额外伤害,如常规技能的平摊伤害
clientPack.HurtListEx = []
for hurtObjEx in useSkill.GetHurtObjListEx():
- hurtEx = poolMgr.acquire(ChPyNetSendPack.tagSCUseSkillHurtEx)
+ hurtEx = ChPyNetSendPack.tagSCUseSkillHurtEx()
hurtEx.ObjID = hurtObjEx.GetObjID()
hurtEx.AttackTypes = hurtObjEx.GetHurtTypes()
hurtEx.HurtHP = hurtObjEx.GetHurtHP() % ChConfig.Def_PerPointValue
@@ -2797,7 +2786,7 @@
if not clientPack.HurtList:
for tagObj in useSkill.GetTagObjList():
tagID = tagObj.GetID()
- hurt = poolMgr.acquire(ChPyNetSendPack.tagSCUseSkillHurt)
+ hurt = ChPyNetSendPack.tagSCUseSkillHurt()
hurt.ObjID = tagID
hurt.CurHP = tagObj.GetHP() % ChConfig.Def_PerPointValue
hurt.CurHPEx = tagObj.GetHP() / ChConfig.Def_PerPointValue
@@ -2819,8 +2808,7 @@
if attrID not in ChConfig.CDBRefresh_AttrIDDict:
return
refreshType, isBig = ChConfig.CDBRefresh_AttrIDDict[attrID]
- poolMgr = ObjPool.GetPoolMgr()
- clientPack = poolMgr.acquire(ChPyNetSendPack.tagSCObjPropertyRefreshView)
+ clientPack = ChPyNetSendPack.tagSCObjPropertyRefreshView()
clientPack.ObjID = curBatObj.GetID()
clientPack.RefreshType = refreshType
clientPack.AttackTypes = hurtTypes
@@ -2842,7 +2830,7 @@
def Sync_HPRefresh(turnFight, curBatObj):
hp, maxHP = curBatObj.GetHP(), curBatObj.GetMaxHP()
- clientPack = ObjPool.GetPoolMgr().acquire(ChPyNetSendPack.tagSCObjHPRefresh)
+ clientPack = ChPyNetSendPack.tagSCObjHPRefresh()
clientPack.ObjID = curBatObj.GetID()
clientPack.HP = hp % ShareDefine.Def_PerPointValue
clientPack.HPEx = hp / ShareDefine.Def_PerPointValue
--
Gitblit v1.8.0