From 6a9883b425e53e714b9a930ec70b7544999611a6 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期四, 08 五月 2025 12:01:45 +0800 Subject: [PATCH] 16 卡牌服务端(db数据备档、加载;仙盟基础转到MapServer;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py | 617 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 592 insertions(+), 25 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py index 939ec1a..763fff9 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py @@ -15082,6 +15082,227 @@ #------------------------------------------------------ +# A6 23 修改家族公告 #tagCMChangeFamilyBroadcast + +class tagCMChangeFamilyBroadcast(Structure): + Head = tagHead() + Msg = "" #(char Msg[200]) + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xA6 + self.Head.SubCmd = 0x23 + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.Msg,_pos = CommFunc.ReadString(_lpData, _pos,200) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xA6 + self.Head.SubCmd = 0x23 + self.Msg = "" + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 200 + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteString(data, 200, self.Msg) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + Msg:%s + '''\ + %( + self.Head.OutputString(), + self.Msg + ) + return DumpString + + +m_NAtagCMChangeFamilyBroadcast=tagCMChangeFamilyBroadcast() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMChangeFamilyBroadcast.Head.Cmd,m_NAtagCMChangeFamilyBroadcast.Head.SubCmd))] = m_NAtagCMChangeFamilyBroadcast + + +#------------------------------------------------------ +# A6 24 修改家族徽章 #tagCMChangeFamilyEmblem + +class tagCMChangeFamilyEmblem(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("EmblemID", c_ubyte), # 更换的徽章ID + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA6 + self.SubCmd = 0x24 + return + + def ReadData(self, stringData, _pos=0, _len=0): + self.Clear() + memmove(addressof(self), stringData[_pos:], self.GetLength()) + return _pos + self.GetLength() + + def Clear(self): + self.Cmd = 0xA6 + self.SubCmd = 0x24 + self.EmblemID = 0 + return + + def GetLength(self): + return sizeof(tagCMChangeFamilyEmblem) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A6 24 修改家族徽章 //tagCMChangeFamilyEmblem: + Cmd:%s, + SubCmd:%s, + EmblemID:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.EmblemID + ) + return DumpString + + +m_NAtagCMChangeFamilyEmblem=tagCMChangeFamilyEmblem() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMChangeFamilyEmblem.Cmd,m_NAtagCMChangeFamilyEmblem.SubCmd))] = m_NAtagCMChangeFamilyEmblem + + +#------------------------------------------------------ +# A6 22 修改收人方式 #tagCMChangeFamilyJoin + +class tagCMChangeFamilyJoin(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("JoinReview", c_ubyte), #成员加入是否需要审核,默认0自动加入 + ("JoinLVMin", c_ushort), #限制最低可加入的玩家等级 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA6 + self.SubCmd = 0x22 + return + + def ReadData(self, stringData, _pos=0, _len=0): + self.Clear() + memmove(addressof(self), stringData[_pos:], self.GetLength()) + return _pos + self.GetLength() + + def Clear(self): + self.Cmd = 0xA6 + self.SubCmd = 0x22 + self.JoinReview = 0 + self.JoinLVMin = 0 + return + + def GetLength(self): + return sizeof(tagCMChangeFamilyJoin) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A6 22 修改收人方式 //tagCMChangeFamilyJoin: + Cmd:%s, + SubCmd:%s, + JoinReview:%d, + JoinLVMin:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.JoinReview, + self.JoinLVMin + ) + return DumpString + + +m_NAtagCMChangeFamilyJoin=tagCMChangeFamilyJoin() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMChangeFamilyJoin.Cmd,m_NAtagCMChangeFamilyJoin.SubCmd))] = m_NAtagCMChangeFamilyJoin + + +#------------------------------------------------------ +# A6 25 修改家族成员职位 #tagCMChangeFamilyMemLV + +class tagCMChangeFamilyMemLV(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("PlayerID", c_int), # 目标成员ID + ("FmLV", c_ubyte), # 变更为xx职位 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA6 + self.SubCmd = 0x25 + return + + def ReadData(self, stringData, _pos=0, _len=0): + self.Clear() + memmove(addressof(self), stringData[_pos:], self.GetLength()) + return _pos + self.GetLength() + + def Clear(self): + self.Cmd = 0xA6 + self.SubCmd = 0x25 + self.PlayerID = 0 + self.FmLV = 0 + return + + def GetLength(self): + return sizeof(tagCMChangeFamilyMemLV) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A6 25 修改家族成员职位 //tagCMChangeFamilyMemLV: + Cmd:%s, + SubCmd:%s, + PlayerID:%d, + FmLV:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.PlayerID, + self.FmLV + ) + return DumpString + + +m_NAtagCMChangeFamilyMemLV=tagCMChangeFamilyMemLV() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMChangeFamilyMemLV.Cmd,m_NAtagCMChangeFamilyMemLV.SubCmd))] = m_NAtagCMChangeFamilyMemLV + + +#------------------------------------------------------ # A6 15 传功操作 #tagCMChuangongOP class tagCMChuangongOP(Structure): @@ -15210,6 +15431,122 @@ m_NAtagCMRenameFamily=tagCMRenameFamily() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRenameFamily.Head.Cmd,m_NAtagCMRenameFamily.Head.SubCmd))] = m_NAtagCMRenameFamily + + +#------------------------------------------------------ +# A6 04 创建家族 #tagCMCreateFamily + +class tagCMCreateFamily(Structure): + Head = tagHead() + Name = "" #(char Name[33]) + EmblemID = 0 #(WORD EmblemID)//选择徽章ID,解锁仙盟等级为1级的均为可选ID + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xA6 + self.Head.SubCmd = 0x04 + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.Name,_pos = CommFunc.ReadString(_lpData, _pos,33) + self.EmblemID,_pos = CommFunc.ReadWORD(_lpData, _pos) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xA6 + self.Head.SubCmd = 0x04 + self.Name = "" + self.EmblemID = 0 + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 33 + length += 2 + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteString(data, 33, self.Name) + data = CommFunc.WriteWORD(data, self.EmblemID) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + Name:%s, + EmblemID:%d + '''\ + %( + self.Head.OutputString(), + self.Name, + self.EmblemID + ) + return DumpString + + +m_NAtagCMCreateFamily=tagCMCreateFamily() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMCreateFamily.Head.Cmd,m_NAtagCMCreateFamily.Head.SubCmd))] = m_NAtagCMCreateFamily + + +#------------------------------------------------------ +# A6 05 删除家族成员 #tagCMDeleteFamilyMember + +class tagCMDeleteFamilyMember(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("MemberID", c_int), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA6 + self.SubCmd = 0x05 + return + + def ReadData(self, stringData, _pos=0, _len=0): + self.Clear() + memmove(addressof(self), stringData[_pos:], self.GetLength()) + return _pos + self.GetLength() + + def Clear(self): + self.Cmd = 0xA6 + self.SubCmd = 0x05 + self.MemberID = 0 + return + + def GetLength(self): + return sizeof(tagCMDeleteFamilyMember) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A6 05 删除家族成员 //tagCMDeleteFamilyMember: + Cmd:%s, + SubCmd:%s, + MemberID:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.MemberID + ) + return DumpString + + +m_NAtagCMDeleteFamilyMember=tagCMDeleteFamilyMember() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMDeleteFamilyMember.Cmd,m_NAtagCMDeleteFamilyMember.SubCmd))] = m_NAtagCMDeleteFamilyMember #------------------------------------------------------ @@ -15353,7 +15690,7 @@ _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), - ("MoneyType", c_ubyte), # 捐献货币类型 + ("DonateType", c_ubyte), # 捐献类型 ] def __init__(self): @@ -15370,7 +15707,7 @@ def Clear(self): self.Cmd = 0xA6 self.SubCmd = 0x12 - self.MoneyType = 0 + self.DonateType = 0 return def GetLength(self): @@ -15383,12 +15720,12 @@ DumpString = '''// A6 12 家族捐献货币 //tagCMFamilyMoneyDonate: Cmd:%s, SubCmd:%s, - MoneyType:%d + DonateType:%d '''\ %( self.Cmd, self.SubCmd, - self.MoneyType + self.DonateType ) return DumpString @@ -15570,15 +15907,167 @@ #------------------------------------------------------ -#A6 02 申请加入家族#tagCGRequesJoinFamily +# A6 26 请求家族成员列表 #tagCMGetFamilyInfo -class tagCGRequesJoinFamily(Structure): +class tagCMGetFamilyInfo(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), - ("Type", c_ubyte), #申请类型 - ("AddFamilyID", c_int), #申请加入的家族 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA6 + self.SubCmd = 0x26 + return + + def ReadData(self, stringData, _pos=0, _len=0): + self.Clear() + memmove(addressof(self), stringData[_pos:], self.GetLength()) + return _pos + self.GetLength() + + def Clear(self): + self.Cmd = 0xA6 + self.SubCmd = 0x26 + return + + def GetLength(self): + return sizeof(tagCMGetFamilyInfo) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A6 26 请求家族成员列表 //tagCMGetFamilyInfo: + Cmd:%s, + SubCmd:%s + '''\ + %( + self.Cmd, + self.SubCmd + ) + return DumpString + + +m_NAtagCMGetFamilyInfo=tagCMGetFamilyInfo() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGetFamilyInfo.Cmd,m_NAtagCMGetFamilyInfo.SubCmd))] = m_NAtagCMGetFamilyInfo + + +#------------------------------------------------------ +# A6 21 审核请求加入家族 #tagCMJoinFamilyReply + +class tagCMJoinFamilyReply(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("TagPlayerID", c_int), #被审核玩家ID 0则代表全部 + ("IsOK", c_ubyte), #是否同意其加入 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA6 + self.SubCmd = 0x21 + return + + def ReadData(self, stringData, _pos=0, _len=0): + self.Clear() + memmove(addressof(self), stringData[_pos:], self.GetLength()) + return _pos + self.GetLength() + + def Clear(self): + self.Cmd = 0xA6 + self.SubCmd = 0x21 + self.TagPlayerID = 0 + self.IsOK = 0 + return + + def GetLength(self): + return sizeof(tagCMJoinFamilyReply) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A6 21 审核请求加入家族 //tagCMJoinFamilyReply: + Cmd:%s, + SubCmd:%s, + TagPlayerID:%d, + IsOK:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.TagPlayerID, + self.IsOK + ) + return DumpString + + +m_NAtagCMJoinFamilyReply=tagCMJoinFamilyReply() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMJoinFamilyReply.Cmd,m_NAtagCMJoinFamilyReply.SubCmd))] = m_NAtagCMJoinFamilyReply + + +#------------------------------------------------------ +# A6 03 离开家族 #tagCMLeaveFamily + +class tagCMLeaveFamily(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA6 + self.SubCmd = 0x03 + return + + def ReadData(self, stringData, _pos=0, _len=0): + self.Clear() + memmove(addressof(self), stringData[_pos:], self.GetLength()) + return _pos + self.GetLength() + + def Clear(self): + self.Cmd = 0xA6 + self.SubCmd = 0x03 + return + + def GetLength(self): + return sizeof(tagCMLeaveFamily) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A6 03 离开家族 //tagCMLeaveFamily: + Cmd:%s, + SubCmd:%s + '''\ + %( + self.Cmd, + self.SubCmd + ) + return DumpString + + +m_NAtagCMLeaveFamily=tagCMLeaveFamily() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMLeaveFamily.Cmd,m_NAtagCMLeaveFamily.SubCmd))] = m_NAtagCMLeaveFamily + + +#------------------------------------------------------ +# A6 02 申请加入家族#tagCMRequesJoinFamily + +class tagCMRequesJoinFamily(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("Type", c_ubyte), #申请类型,0-申请;1-撤销 + ("TagFamilyID", c_int), #目标家族ID,申请时为0代表一键申请家族任意家族 ] def __init__(self): @@ -15596,44 +16085,44 @@ self.Cmd = 0xA6 self.SubCmd = 0x02 self.Type = 0 - self.AddFamilyID = 0 + self.TagFamilyID = 0 return def GetLength(self): - return sizeof(tagCGRequesJoinFamily) + return sizeof(tagCMRequesJoinFamily) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): - DumpString = '''//A6 02 申请加入家族//tagCGRequesJoinFamily: + DumpString = '''// A6 02 申请加入家族//tagCMRequesJoinFamily: Cmd:%s, SubCmd:%s, Type:%d, - AddFamilyID:%d + TagFamilyID:%d '''\ %( self.Cmd, self.SubCmd, self.Type, - self.AddFamilyID + self.TagFamilyID ) return DumpString -m_NAtagCGRequesJoinFamily=tagCGRequesJoinFamily() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGRequesJoinFamily.Cmd,m_NAtagCGRequesJoinFamily.SubCmd))] = m_NAtagCGRequesJoinFamily +m_NAtagCMRequesJoinFamily=tagCMRequesJoinFamily() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRequesJoinFamily.Cmd,m_NAtagCMRequesJoinFamily.SubCmd))] = m_NAtagCMRequesJoinFamily #------------------------------------------------------ -#A6 01 向玩家申请加入家族 #tagCGRequestJoinFamilyByPlayer +# A6 01 向玩家申请加入家族 #tagCMRequestJoinFamilyByPlayer -class tagCGRequestJoinFamilyByPlayer(Structure): +class tagCMRequestJoinFamilyByPlayer(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), - ("AddPlayerID", c_int), #申请加入的玩家ID + ("TagPlayerID", c_int), #目标家族玩家ID ] def __init__(self): @@ -15650,31 +16139,31 @@ def Clear(self): self.Cmd = 0xA6 self.SubCmd = 0x01 - self.AddPlayerID = 0 + self.TagPlayerID = 0 return def GetLength(self): - return sizeof(tagCGRequestJoinFamilyByPlayer) + return sizeof(tagCMRequestJoinFamilyByPlayer) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): - DumpString = '''//A6 01 向玩家申请加入家族 //tagCGRequestJoinFamilyByPlayer: + DumpString = '''// A6 01 向玩家申请加入家族 //tagCMRequestJoinFamilyByPlayer: Cmd:%s, SubCmd:%s, - AddPlayerID:%d + TagPlayerID:%d '''\ %( self.Cmd, self.SubCmd, - self.AddPlayerID + self.TagPlayerID ) return DumpString -m_NAtagCGRequestJoinFamilyByPlayer=tagCGRequestJoinFamilyByPlayer() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGRequestJoinFamilyByPlayer.Cmd,m_NAtagCGRequestJoinFamilyByPlayer.SubCmd))] = m_NAtagCGRequestJoinFamilyByPlayer +m_NAtagCMRequestJoinFamilyByPlayer=tagCMRequestJoinFamilyByPlayer() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRequestJoinFamilyByPlayer.Cmd,m_NAtagCMRequestJoinFamilyByPlayer.SubCmd))] = m_NAtagCMRequestJoinFamilyByPlayer #------------------------------------------------------ @@ -15815,6 +16304,84 @@ #------------------------------------------------------ +# A6 20 搜索家族列表 #tagCMViewFamilyPage + +class tagCMViewFamilyPage(Structure): + Head = tagHead() + MsgLen = 0 #(BYTE MsgLen)//模糊搜索家族,如果输入为空,则为不限制该条件 + Msg = "" #(String Msg)//size = MsgLen + PageIndex = 0 #(BYTE PageIndex)//查询第X页索引,0~n + ShowCount = 0 #(BYTE ShowCount)//每页数量,前端可自行指定,最大50 + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xA6 + self.Head.SubCmd = 0x20 + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.MsgLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.Msg,_pos = CommFunc.ReadString(_lpData, _pos,self.MsgLen) + self.PageIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.ShowCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xA6 + self.Head.SubCmd = 0x20 + self.MsgLen = 0 + self.Msg = "" + self.PageIndex = 0 + self.ShowCount = 0 + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 1 + length += len(self.Msg) + length += 1 + length += 1 + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteBYTE(data, self.MsgLen) + data = CommFunc.WriteString(data, self.MsgLen, self.Msg) + data = CommFunc.WriteBYTE(data, self.PageIndex) + data = CommFunc.WriteBYTE(data, self.ShowCount) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + MsgLen:%d, + Msg:%s, + PageIndex:%d, + ShowCount:%d + '''\ + %( + self.Head.OutputString(), + self.MsgLen, + self.Msg, + self.PageIndex, + self.ShowCount + ) + return DumpString + + +m_NAtagCMViewFamilyPage=tagCMViewFamilyPage() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMViewFamilyPage.Head.Cmd,m_NAtagCMViewFamilyPage.Head.SubCmd))] = m_NAtagCMViewFamilyPage + + +#------------------------------------------------------ # A6 16 珍宝阁操作 #tagCMZhenbaogeOP class tagCMZhenbaogeOP(Structure): -- Gitblit v1.8.0