From ac98391b1102b1c07aa71dbab56f232db74273ec Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期四, 18 九月 2025 11:51:20 +0800 Subject: [PATCH] 121 【武将】武将系统-服务端(计算主公官职属性;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py | 533 ++-------------------------------------------------------- 1 files changed, 23 insertions(+), 510 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py index 75cb095..9a3f902 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py @@ -275,20 +275,21 @@ #------------------------------------------------------ -#A0 01 查看玩家信息通用记录 #tagViewUniversalGameRec +# A0 08 查看通用记录 #tagCSViewGameRec -class tagViewUniversalGameRec(Structure): +class tagCSViewGameRec(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), - ("ViewType", c_ubyte), #查看记录的类型 + ("RecType", c_ushort), #记录类型 + ("RecID", c_int), #自定义记录ID ] def __init__(self): self.Clear() self.Cmd = 0xA0 - self.SubCmd = 0x01 + self.SubCmd = 0x08 return def ReadData(self, stringData, _pos=0, _len=0): @@ -298,32 +299,35 @@ def Clear(self): self.Cmd = 0xA0 - self.SubCmd = 0x01 - self.ViewType = 0 + self.SubCmd = 0x08 + self.RecType = 0 + self.RecID = 0 return def GetLength(self): - return sizeof(tagViewUniversalGameRec) + return sizeof(tagCSViewGameRec) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): - DumpString = '''//A0 01 查看玩家信息通用记录 //tagViewUniversalGameRec: + DumpString = '''// A0 08 查看通用记录 //tagCSViewGameRec: Cmd:%s, SubCmd:%s, - ViewType:%d + RecType:%d, + RecID:%d '''\ %( self.Cmd, self.SubCmd, - self.ViewType + self.RecType, + self.RecID ) return DumpString -m_NAtagViewUniversalGameRec=tagViewUniversalGameRec() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagViewUniversalGameRec.Cmd,m_NAtagViewUniversalGameRec.SubCmd))] = m_NAtagViewUniversalGameRec +m_NAtagCSViewGameRec=tagCSViewGameRec() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSViewGameRec.Cmd,m_NAtagCSViewGameRec.SubCmd))] = m_NAtagCSViewGameRec #------------------------------------------------------ @@ -11555,118 +11559,6 @@ #------------------------------------------------------ -# AA 24 Boss历练领奖 #tagCMActBossTrialGetAward - -class tagCMActBossTrialGetAward(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("ActNum", c_ubyte), #活动编号 - ("SubmitCount", c_ushort), #领取凭证个数对应奖励 - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xAA - 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 = 0xAA - self.SubCmd = 0x24 - self.ActNum = 0 - self.SubmitCount = 0 - return - - def GetLength(self): - return sizeof(tagCMActBossTrialGetAward) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// AA 24 Boss历练领奖 //tagCMActBossTrialGetAward: - Cmd:%s, - SubCmd:%s, - ActNum:%d, - SubmitCount:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.ActNum, - self.SubmitCount - ) - return DumpString - - -m_NAtagCMActBossTrialGetAward=tagCMActBossTrialGetAward() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActBossTrialGetAward.Cmd,m_NAtagCMActBossTrialGetAward.SubCmd))] = m_NAtagCMActBossTrialGetAward - - -#------------------------------------------------------ -# AA 23 Boss历练提交凭证 #tagCMActBossTrialSubmit - -class tagCMActBossTrialSubmit(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("ActNum", c_ubyte), #活动编号 - ("SubmitCount", c_ushort), #提交凭证个数 - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xAA - self.SubCmd = 0x23 - 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 = 0xAA - self.SubCmd = 0x23 - self.ActNum = 0 - self.SubmitCount = 0 - return - - def GetLength(self): - return sizeof(tagCMActBossTrialSubmit) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// AA 23 Boss历练提交凭证 //tagCMActBossTrialSubmit: - Cmd:%s, - SubCmd:%s, - ActNum:%d, - SubmitCount:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.ActNum, - self.SubmitCount - ) - return DumpString - - -m_NAtagCMActBossTrialSubmit=tagCMActBossTrialSubmit() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActBossTrialSubmit.Cmd,m_NAtagCMActBossTrialSubmit.SubCmd))] = m_NAtagCMActBossTrialSubmit - - -#------------------------------------------------------ # AA 09 集字活动兑换 #tagCMActCollectWordsExchange class tagCMActCollectWordsExchange(Structure): @@ -11720,143 +11612,6 @@ m_NAtagCMActCollectWordsExchange=tagCMActCollectWordsExchange() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActCollectWordsExchange.Cmd,m_NAtagCMActCollectWordsExchange.SubCmd))] = m_NAtagCMActCollectWordsExchange - - -#------------------------------------------------------ -# AA 15 垃圾分类活动收集已完成的任务垃圾 #tagCMActGarbageGetTaskAward - -class tagCMActGarbageGetTaskAward(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("ActNum", c_ubyte), #活动编号 - ("GarbageTaskID", c_ubyte), #垃圾任务ID - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xAA - self.SubCmd = 0x15 - 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 = 0xAA - self.SubCmd = 0x15 - self.ActNum = 0 - self.GarbageTaskID = 0 - return - - def GetLength(self): - return sizeof(tagCMActGarbageGetTaskAward) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// AA 15 垃圾分类活动收集已完成的任务垃圾 //tagCMActGarbageGetTaskAward: - Cmd:%s, - SubCmd:%s, - ActNum:%d, - GarbageTaskID:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.ActNum, - self.GarbageTaskID - ) - return DumpString - - -m_NAtagCMActGarbageGetTaskAward=tagCMActGarbageGetTaskAward() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActGarbageGetTaskAward.Cmd,m_NAtagCMActGarbageGetTaskAward.SubCmd))] = m_NAtagCMActGarbageGetTaskAward - - -#------------------------------------------------------ -# AA 14 垃圾分类活动分类垃圾 #tagCMActGarbageSorting - -class tagCMActGarbageSorting(Structure): - Head = tagHead() - ActNum = 0 #(BYTE ActNum)//活动编号 - GarbageSortingType = 0 #(BYTE GarbageSortingType)//垃圾分类类型,即属于哪种垃圾 - ItemIndexCount = 0 #(BYTE ItemIndexCount)//垃圾背包中的物品索引数 - ItemIndexList = list() #(vector<BYTE> ItemIndexList)//垃圾背包中的物品索引列表 - data = None - - def __init__(self): - self.Clear() - self.Head.Cmd = 0xAA - self.Head.SubCmd = 0x14 - return - - def ReadData(self, _lpData, _pos=0, _Len=0): - self.Clear() - _pos = self.Head.ReadData(_lpData, _pos) - self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos) - self.GarbageSortingType,_pos = CommFunc.ReadBYTE(_lpData, _pos) - self.ItemIndexCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) - for i in range(self.ItemIndexCount): - value,_pos=CommFunc.ReadBYTE(_lpData,_pos) - self.ItemIndexList.append(value) - return _pos - - def Clear(self): - self.Head = tagHead() - self.Head.Clear() - self.Head.Cmd = 0xAA - self.Head.SubCmd = 0x14 - self.ActNum = 0 - self.GarbageSortingType = 0 - self.ItemIndexCount = 0 - self.ItemIndexList = list() - return - - def GetLength(self): - length = 0 - length += self.Head.GetLength() - length += 1 - length += 1 - length += 1 - length += 1 * self.ItemIndexCount - - return length - - def GetBuffer(self): - data = '' - data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) - data = CommFunc.WriteBYTE(data, self.ActNum) - data = CommFunc.WriteBYTE(data, self.GarbageSortingType) - data = CommFunc.WriteBYTE(data, self.ItemIndexCount) - for i in range(self.ItemIndexCount): - data = CommFunc.WriteBYTE(data, self.ItemIndexList[i]) - return data - - def OutputString(self): - DumpString = ''' - Head:%s, - ActNum:%d, - GarbageSortingType:%d, - ItemIndexCount:%d, - ItemIndexList:%s - '''\ - %( - self.Head.OutputString(), - self.ActNum, - self.GarbageSortingType, - self.ItemIndexCount, - "..." - ) - return DumpString - - -m_NAtagCMActGarbageSorting=tagCMActGarbageSorting() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActGarbageSorting.Head.Cmd,m_NAtagCMActGarbageSorting.Head.SubCmd))] = m_NAtagCMActGarbageSorting #------------------------------------------------------ @@ -12351,188 +12106,6 @@ m_NAtagCMActWishingRefresh=tagCMActWishingRefresh() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActWishingRefresh.Cmd,m_NAtagCMActWishingRefresh.SubCmd))] = m_NAtagCMActWishingRefresh - - -#------------------------------------------------------ -# AA 18 仙匣秘境活动奖池刷新 #tagCMActXianXiaMJAwardPoolRefresh - -class tagCMActXianXiaMJAwardPoolRefresh(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("ActNum", c_ubyte), #活动编号 - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xAA - self.SubCmd = 0x18 - 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 = 0xAA - self.SubCmd = 0x18 - self.ActNum = 0 - return - - def GetLength(self): - return sizeof(tagCMActXianXiaMJAwardPoolRefresh) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// AA 18 仙匣秘境活动奖池刷新 //tagCMActXianXiaMJAwardPoolRefresh: - Cmd:%s, - SubCmd:%s, - ActNum:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.ActNum - ) - return DumpString - - -m_NAtagCMActXianXiaMJAwardPoolRefresh=tagCMActXianXiaMJAwardPoolRefresh() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActXianXiaMJAwardPoolRefresh.Cmd,m_NAtagCMActXianXiaMJAwardPoolRefresh.SubCmd))] = m_NAtagCMActXianXiaMJAwardPoolRefresh - - -#------------------------------------------------------ -# AA 17 仙匣秘境活动抽奖 #tagCMActXianXiaMJLottery - -class tagCMActXianXiaMJLottery(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("ActNum", c_ubyte), #活动编号 - ("PosNum", c_ubyte), #玩家点击的奖励位置编号,从1开始 - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xAA - self.SubCmd = 0x17 - 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 = 0xAA - self.SubCmd = 0x17 - self.ActNum = 0 - self.PosNum = 0 - return - - def GetLength(self): - return sizeof(tagCMActXianXiaMJLottery) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// AA 17 仙匣秘境活动抽奖 //tagCMActXianXiaMJLottery: - Cmd:%s, - SubCmd:%s, - ActNum:%d, - PosNum:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.ActNum, - self.PosNum - ) - return DumpString - - -m_NAtagCMActXianXiaMJLottery=tagCMActXianXiaMJLottery() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActXianXiaMJLottery.Cmd,m_NAtagCMActXianXiaMJLottery.SubCmd))] = m_NAtagCMActXianXiaMJLottery - - -#------------------------------------------------------ -# AA 16 仙匣秘境活动选择大奖 #tagCMActXianXiaMJSuperItem - -class tagCMActXianXiaMJSuperItem(Structure): - Head = tagHead() - ActNum = 0 #(BYTE ActNum)//活动编号 - SuperItemCount = 0 #(BYTE SuperItemCount)//选择物品数量 - SuperItemIDList = list() #(vector<DWORD> SuperItemIDList)//选择的大奖库物品ID列表,每次重新选择需要发送全部已选择的大奖物品ID,不能只发单个物品ID; - data = None - - def __init__(self): - self.Clear() - self.Head.Cmd = 0xAA - self.Head.SubCmd = 0x16 - return - - def ReadData(self, _lpData, _pos=0, _Len=0): - self.Clear() - _pos = self.Head.ReadData(_lpData, _pos) - self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos) - self.SuperItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) - for i in range(self.SuperItemCount): - value,_pos=CommFunc.ReadDWORD(_lpData,_pos) - self.SuperItemIDList.append(value) - return _pos - - def Clear(self): - self.Head = tagHead() - self.Head.Clear() - self.Head.Cmd = 0xAA - self.Head.SubCmd = 0x16 - self.ActNum = 0 - self.SuperItemCount = 0 - self.SuperItemIDList = list() - return - - def GetLength(self): - length = 0 - length += self.Head.GetLength() - length += 1 - length += 1 - length += 4 * self.SuperItemCount - - return length - - def GetBuffer(self): - data = '' - data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) - data = CommFunc.WriteBYTE(data, self.ActNum) - data = CommFunc.WriteBYTE(data, self.SuperItemCount) - for i in range(self.SuperItemCount): - data = CommFunc.WriteDWORD(data, self.SuperItemIDList[i]) - return data - - def OutputString(self): - DumpString = ''' - Head:%s, - ActNum:%d, - SuperItemCount:%d, - SuperItemIDList:%s - '''\ - %( - self.Head.OutputString(), - self.ActNum, - self.SuperItemCount, - "..." - ) - return DumpString - - -m_NAtagCMActXianXiaMJSuperItem=tagCMActXianXiaMJSuperItem() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActXianXiaMJSuperItem.Head.Cmd,m_NAtagCMActXianXiaMJSuperItem.Head.SubCmd))] = m_NAtagCMActXianXiaMJSuperItem #------------------------------------------------------ @@ -14446,70 +14019,14 @@ #------------------------------------------------------ -# B2 10 竞技场挑战玩家 #tagCMArenaBattle +# B2 09 演武场匹配玩家 #tagCSArenaMatch -class tagCMArenaBattle(Structure): +class tagCSArenaMatch(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), - ("TagPlayerID", c_int), # 目标玩家ID或机器人ID - ("Result", c_ubyte), # 0-进入自定义场景发送通知后端;1-胜利(后端处理,暂时不需要发送此状态);2-失败(前端被对手击杀需要发送此状态) - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xB2 - self.SubCmd = 0x10 - 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 = 0xB2 - self.SubCmd = 0x10 - self.TagPlayerID = 0 - self.Result = 0 - return - - def GetLength(self): - return sizeof(tagCMArenaBattle) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// B2 10 竞技场挑战玩家 //tagCMArenaBattle: - Cmd:%s, - SubCmd:%s, - TagPlayerID:%d, - Result:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.TagPlayerID, - self.Result - ) - return DumpString - - -m_NAtagCMArenaBattle=tagCMArenaBattle() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMArenaBattle.Cmd,m_NAtagCMArenaBattle.SubCmd))] = m_NAtagCMArenaBattle - - -#------------------------------------------------------ -# B2 09 竞技场匹配玩家 #tagCMArenaMatch - -class tagCMArenaMatch(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("IsRefresh", c_ubyte), # 0-打开界面无匹配数据时时查询,1-强制刷新匹配列表 + ("IsRefresh", c_ubyte), # 0-打开界面无匹配数据时查询,1-强制刷新匹配列表 ] def __init__(self): @@ -14530,13 +14047,13 @@ return def GetLength(self): - return sizeof(tagCMArenaMatch) + return sizeof(tagCSArenaMatch) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): - DumpString = '''// B2 09 竞技场匹配玩家 //tagCMArenaMatch: + DumpString = '''// B2 09 演武场匹配玩家 //tagCSArenaMatch: Cmd:%s, SubCmd:%s, IsRefresh:%d @@ -14549,8 +14066,8 @@ return DumpString -m_NAtagCMArenaMatch=tagCMArenaMatch() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMArenaMatch.Cmd,m_NAtagCMArenaMatch.SubCmd))] = m_NAtagCMArenaMatch +m_NAtagCSArenaMatch=tagCSArenaMatch() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCSArenaMatch.Cmd,m_NAtagCSArenaMatch.SubCmd))] = m_NAtagCSArenaMatch #------------------------------------------------------ @@ -15153,7 +14670,6 @@ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("HeroID", c_int), #武将ID - ("ItemIndex", c_ushort), #关联武将物品所在武将背包索引,激活时可不用发 ("BookType", c_ubyte), #图鉴激活类型: 0-初始激活;1-星级升级;2-突破等级升级 ] @@ -15172,7 +14688,6 @@ self.Cmd = 0xB2 self.SubCmd = 0x37 self.HeroID = 0 - self.ItemIndex = 0 self.BookType = 0 return @@ -15187,14 +14702,12 @@ Cmd:%s, SubCmd:%s, HeroID:%d, - ItemIndex:%d, BookType:%d '''\ %( self.Cmd, self.SubCmd, self.HeroID, - self.ItemIndex, self.BookType ) return DumpString -- Gitblit v1.8.0