From 9d5ec7599f3abe0cebb76ce1df3c3b8c4e0aa51e Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 10 二月 2026 11:40:15 +0800
Subject: [PATCH] 66 【公会】基础主体-服务端(跨服聊天;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChServerToServerPyPack.py | 75 +++++++++++++++++++++++++------------
1 files changed, 50 insertions(+), 25 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChServerToServerPyPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChServerToServerPyPack.py
index b008248..5a3b7dc 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChServerToServerPyPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChServerToServerPyPack.py
@@ -104,60 +104,85 @@
# C2 03 跨服中心事件同步 #tagSSCrossCenterEvent
class tagSSCrossCenterEvent(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("ServerID", c_int),
- ("ServerType", c_ubyte), #服务器类型
- ("EventValue", c_int), #事件值,yyyyMMddhh用于判断过天等
- ]
+ Head = tagHead()
+ ServerID = 0 #(DWORD ServerID)
+ ServerType = 0 #(BYTE ServerType)//服务器类型
+ EventValue = 0 #(DWORD EventValue)//事件值,yyyyMMddhh用于判断过天等
+ GMLen = 0 #(BYTE GMLen)
+ GMEvent = "" #(String GMEvent)
+ data = None
def __init__(self):
self.Clear()
- self.Cmd = 0xC2
- self.SubCmd = 0x03
+ self.Head.Cmd = 0xC2
+ self.Head.SubCmd = 0x03
return
- def ReadData(self, stringData, _pos=0, _len=0):
+ def ReadData(self, _lpData, _pos=0, _Len=0):
self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
+ _pos = self.Head.ReadData(_lpData, _pos)
+ self.ServerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.ServerType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.EventValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.GMLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.GMEvent,_pos = CommFunc.ReadString(_lpData, _pos,self.GMLen)
+ return _pos
def Clear(self):
- self.Cmd = 0xC2
- self.SubCmd = 0x03
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0xC2
+ self.Head.SubCmd = 0x03
self.ServerID = 0
self.ServerType = 0
self.EventValue = 0
+ self.GMLen = 0
+ self.GMEvent = ""
return
def GetLength(self):
- return sizeof(tagSSCrossCenterEvent)
+ length = 0
+ length += self.Head.GetLength()
+ length += 4
+ length += 1
+ length += 4
+ length += 1
+ length += len(self.GMEvent)
+
+ return length
def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
+ data = ''
+ data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteDWORD(data, self.ServerID)
+ data = CommFunc.WriteBYTE(data, self.ServerType)
+ data = CommFunc.WriteDWORD(data, self.EventValue)
+ data = CommFunc.WriteBYTE(data, self.GMLen)
+ data = CommFunc.WriteString(data, self.GMLen, self.GMEvent)
+ return data
def OutputString(self):
- DumpString = '''// C2 03 跨服中心事件同步 //tagSSCrossCenterEvent:
- Cmd:%s,
- SubCmd:%s,
+ DumpString = '''
+ Head:%s,
ServerID:%d,
ServerType:%d,
- EventValue:%d
+ EventValue:%d,
+ GMLen:%d,
+ GMEvent:%s
'''\
%(
- self.Cmd,
- self.SubCmd,
+ self.Head.OutputString(),
self.ServerID,
self.ServerType,
- self.EventValue
+ self.EventValue,
+ self.GMLen,
+ self.GMEvent
)
return DumpString
m_NAtagSSCrossCenterEvent=tagSSCrossCenterEvent()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSSCrossCenterEvent.Cmd,m_NAtagSSCrossCenterEvent.SubCmd))] = m_NAtagSSCrossCenterEvent
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSSCrossCenterEvent.Head.Cmd,m_NAtagSSCrossCenterEvent.Head.SubCmd))] = m_NAtagSSCrossCenterEvent
#------------------------------------------------------
--
Gitblit v1.8.0