From 6d9404d85f8c48a2b07fed99e2c042f55c3cb573 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 27 十一月 2023 14:20:25 +0800
Subject: [PATCH] 8716 【主干】【后端】【BT2】H.活动-节日祈愿(节日游历封包AA47修改);
---
ServerPython/CoreServerGroup/GameServer/Script/NetPackCommon.py | 39 +++++++++++++++++++++++++++++----------
1 files changed, 29 insertions(+), 10 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/NetPackCommon.py b/ServerPython/CoreServerGroup/GameServer/Script/NetPackCommon.py
index ef9b24e..6ca8e2a 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/NetPackCommon.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/NetPackCommon.py
@@ -17,7 +17,7 @@
# @change: "2014-12-23 15:30" xmnathan GameServer增加根据LineNO发送Py自定义包接口
# @change: "2015-10-22 23:00" hxp 增加Recv_MergerChildToCenter
#-------------------------------------------------------------------------------
-"""Version = 2015-10-22 23:00"""
+#"""Version = 2015-10-22 23:00"""
#-------------------------------------------------------------------------------
#---导入---
import IPY_GameServer
@@ -29,7 +29,8 @@
import ChPyNetSendPack
import traceback
import ChMapToGamePyPack
-import MergeChildMsg
+import CrossRealmMsg
+import PlayerControl
#-------------------------------------------------------------------------------
#---全局变量---
@@ -95,9 +96,13 @@
# Log("ReadPyPackTable: moudle: %s"%dir(moudle))
for index in range(regCnt):
+ if not config.get(section, "PacketCMD_%s"%(index + 1)):
+ continue
cmd = config.get(section, "PacketCMD_%s"%(index + 1))
subCmd = config.get(section, "PacketSubCMD_%s"%(index + 1))
callFunc = config.get(section, "PacketCallFunc_%s"%(index + 1))
+ if not cmd or not subCmd or not callFunc:
+ continue
cmd = int(cmd, 16)
subCmd = int(subCmd, 16)
@@ -204,9 +209,7 @@
curPackHeadRegDict["CallFunc"](index, curPackData, tick)
except Exception:
- Log("python自定义封包解析失败~~~~~\r\n%s" % traceback.format_exc())
- if GameWorld.GetGameWorld().GetDebugLevel():
- raise Exception("python自定义封包解析失败~~~~~\r\n%s" % traceback.format_exc())
+ GameWorld.RaiseException("python自定义封包解析失败\r\n%s" % traceback.format_exc())
return
@@ -220,6 +223,23 @@
innerPackData = clientPack.GetBuffer()
curPlayer.Sync_GeneralPack(len(innerPackData), innerPackData)
+def SendPackByPlayer(clientPack, curPlayer=None):
+ ## 发送封包,当curPlayer为None时则发送全服玩家
+ if not curPlayer:
+ # 全服广播在线玩家
+ playerManager = GameWorld.GetPlayerManager()
+ for i in xrange(playerManager.GetActivePlayerCount()):
+ curPlayer = playerManager.GetActivePlayerAt(i)
+ if curPlayer == None:
+ continue
+ if PlayerControl.GetIsTJG(curPlayer):
+ continue
+ SendFakePack(curPlayer, clientPack)
+ else:
+ if PlayerControl.GetIsTJG(curPlayer):
+ return
+ SendFakePack(curPlayer, clientPack)
+ return
#-------------------------------------------------------------------------------
#---Py封包注册信息
@@ -277,9 +297,7 @@
curPackHeadRegDict["CallFunc"](routeIndex, mapID, curPackData, tick)
#Log("RecvMapPyPack: CallFunc curPackHead = %s"%curPackHead)
except Exception:
- Log("RecvMapPyPack python自定义封包解析失败~~~~~\r\n%s" % traceback.format_exc())
- if GameWorld.GetGameWorld().GetDebugLevel():
- raise Exception("RecGamePyPack python自定义封包解析失败~~~~~\r\n%s" % traceback.format_exc())
+ GameWorld.RaiseException("RecvMapPyPack python自定义封包解析失败\r\n%s" % traceback.format_exc())
return
#-------------------------------------------------------------------------------
@@ -298,11 +316,12 @@
def Recv_MergerChildToCenter(index, tick):
try:
packData = IPY_GameServer.IPY_MGMergerChildToCenter().GetData()
- Log("收到跨服子服自定义封包消息:\r\n%s" % packData)
+ # 不要输出具体封包内容,可能会因为内容导致日志输出报错
+ Log("收到跨服子服自定义封包消息:长度=%s" % len(packData))
#以下添加后续处理函数
#...
#...
- MergeChildMsg.Recv_MergerChildToCenterProcess(packData, tick)
+ CrossRealmMsg.OnCrossServerReceiveMsg(packData, tick)
except Exception:
Log("跨服子服自定义封包消息处理失败")
return
--
Gitblit v1.8.0