From 4c55d01385dec553dceeb3f5481ea70be727cb39 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期二, 09 九月 2025 11:47:38 +0800 Subject: [PATCH] 129 【战斗】战斗系统-服务端(修复切换小队未清除buff可能引起的报错; 优化切换小队重置:暂时仅保留当前血量、怒气、死亡状态,其他重置;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NetPackCommon.py | 23 +++++++++++++++++++++++ 1 files changed, 23 insertions(+), 0 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NetPackCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NetPackCommon.py index a51cfd4..a9b3f02 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NetPackCommon.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NetPackCommon.py @@ -31,6 +31,7 @@ import traceback import ChGameToMapPyPack from PyMongoDB.DBCommon import CommonDefine +import ObjPool #------------------------------------------------------------------------------- #---全局变量--- @@ -227,7 +228,22 @@ Log("SendFakePack: clientPack Len = %s > %s"%(clientPack.GetLength(), len(innerPackData))) #curPlayer.SendFakePack(innerPackData, len(innerPackData)) curPlayer.SendFakePack(clientPack.GetBuffer(), clientPack.GetLength()) + ObjPool.GetPoolMgr().release(clientPack) + return +def SendFackPackOnline(clientPack, parseFunc=None, *args): + ## 发送给全服在线玩家 + # @param parseFunc: 中间处理逻辑,可以做一些修改包数据的逻辑或者过滤某些玩家不发送,返回值为True时发送 + # @param args: parseFunc方法参数(curPlayer, ...) + playerManager = GameWorld.GetPlayerManager() + for i in xrange(playerManager.OnlineCount()): + curPlayer = playerManager.OnlineAt(i) + if not GameWorld.IsNormalPlayer(curPlayer): + continue + if parseFunc and not parseFunc(curPlayer, *args): + continue + SendFakePack(curPlayer, clientPack) + return #------------------------------------------------------------------------------- #---Py封包注册信息 @@ -312,3 +328,10 @@ def SendPyPackToMapServerSelf(data, datalen): GameWorld.GetGameWorld().SendPyPackToMapServerSelf(datalen, data) return + + + +# 向ServersRoute发送数据 +def SendPyPackToServersRoute(data, datalen): + GameWorld.GetGameWorld().SendPyPackToServersRoute(datalen, data) + return \ No newline at end of file -- Gitblit v1.8.0