hxp
2025-12-05 c80c8718c507a7e52f065eee9e35bb4f27573f48
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -6991,6 +6991,58 @@
#------------------------------------------------------
# A3 19 分包下载奖励记录 #tagMCPackDownloadRecord
class  tagMCPackDownloadRecord(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("Record", c_ubyte),    # 0-未领取 1-已领取
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA3
        self.SubCmd = 0x19
        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 = 0xA3
        self.SubCmd = 0x19
        self.Record = 0
        return
    def GetLength(self):
        return sizeof(tagMCPackDownloadRecord)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A3 19 分包下载奖励记录 //tagMCPackDownloadRecord:
                                Cmd:%s,
                                SubCmd:%s,
                                Record:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.Record
                                )
        return DumpString
m_NAtagMCPackDownloadRecord=tagMCPackDownloadRecord()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPackDownloadRecord.Cmd,m_NAtagMCPackDownloadRecord.SubCmd))] = m_NAtagMCPackDownloadRecord
#------------------------------------------------------
#A3 0B 玩家等级奖励领取记录信息 #tagMCPlayerLVAwardGetRecord
class  tagMCPlayerLVAwardGetRecord(Structure):
@@ -28909,454 +28961,21 @@
#------------------------------------------------------
# AB 01 Boss首杀玩家奖励信息 #tagMCBossFirstKillStateInfo
# AB 05 开服庆典信息 #tagSCOSACelebrationInfo
class  tagMCBossFirstKillState(Structure):
    _pack_ = 1
    _fields_ = [
                  ("NPCID", c_int),
                  ("FKState", c_int),    # 玩家该boss首杀相关状态,按位存:个位-玩家是否击杀过,十位-是否已领取首杀全服奖励,百位-是否已领取个人首杀奖励
                  ]
    def __init__(self):
        self.Clear()
        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.NPCID = 0
        self.FKState = 0
        return
    def GetLength(self):
        return sizeof(tagMCBossFirstKillState)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AB 01 Boss首杀玩家奖励信息 //tagMCBossFirstKillStateInfo:
                                NPCID:%d,
                                FKState:%d
                                '''\
                                %(
                                self.NPCID,
                                self.FKState
                                )
        return DumpString
class  tagMCBossFirstKillStateInfo(Structure):
    Head = tagHead()
    BossCount = 0    #(BYTE BossCount)
    FirstKillStateList = list()    #(vector<tagMCBossFirstKillState> FirstKillStateList)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAB
        self.Head.SubCmd = 0x01
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.BossCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.BossCount):
            temFirstKillStateList = tagMCBossFirstKillState()
            _pos = temFirstKillStateList.ReadData(_lpData, _pos)
            self.FirstKillStateList.append(temFirstKillStateList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAB
        self.Head.SubCmd = 0x01
        self.BossCount = 0
        self.FirstKillStateList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.BossCount):
            length += self.FirstKillStateList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.BossCount)
        for i in range(self.BossCount):
            data = CommFunc.WriteString(data, self.FirstKillStateList[i].GetLength(), self.FirstKillStateList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                BossCount:%d,
                                FirstKillStateList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.BossCount,
                                "..."
                                )
        return DumpString
m_NAtagMCBossFirstKillStateInfo=tagMCBossFirstKillStateInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCBossFirstKillStateInfo.Head.Cmd,m_NAtagMCBossFirstKillStateInfo.Head.SubCmd))] = m_NAtagMCBossFirstKillStateInfo
#------------------------------------------------------
# AB 03 Boss复活玩家活动信息 #tagMCBossRebornPlayerInfo
class  tagMCBossRebornData(Structure):
    _pack_ = 1
    _fields_ = [
                  ("ActID", c_ubyte),    #活动ID
                  ("CurTimes", c_ushort),    #已完成次数
                  ("GotTimes", c_ushort),    #已领取次数
                  ]
    def __init__(self):
        self.Clear()
        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.ActID = 0
        self.CurTimes = 0
        self.GotTimes = 0
        return
    def GetLength(self):
        return sizeof(tagMCBossRebornData)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AB 03 Boss复活玩家活动信息 //tagMCBossRebornPlayerInfo:
                                ActID:%d,
                                CurTimes:%d,
                                GotTimes:%d
                                '''\
                                %(
                                self.ActID,
                                self.CurTimes,
                                self.GotTimes
                                )
        return DumpString
class  tagMCBossRebornPlayerInfo(Structure):
    Head = tagHead()
    Count = 0    #(BYTE Count)//活动个数
    DataList = list()    #(vector<tagMCBossRebornData> DataList)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAB
        self.Head.SubCmd = 0x03
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.Count):
            temDataList = tagMCBossRebornData()
            _pos = temDataList.ReadData(_lpData, _pos)
            self.DataList.append(temDataList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAB
        self.Head.SubCmd = 0x03
        self.Count = 0
        self.DataList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.Count):
            length += self.DataList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.Count)
        for i in range(self.Count):
            data = CommFunc.WriteString(data, self.DataList[i].GetLength(), self.DataList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                DataList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagMCBossRebornPlayerInfo=tagMCBossRebornPlayerInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCBossRebornPlayerInfo.Head.Cmd,m_NAtagMCBossRebornPlayerInfo.Head.SubCmd))] = m_NAtagMCBossRebornPlayerInfo
#------------------------------------------------------
# AB 04 Boss复活活动信息 #tagMCBossRebornInfo
class  tagMCBossRebornAwardItem(Structure):
    _pack_ = 1
    _fields_ = [
                  ("ItemID", c_int),
                  ("ItemCount", c_ushort),
                  ("IsBind", c_ubyte),
                  ]
    def __init__(self):
        self.Clear()
        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.ItemID = 0
        self.ItemCount = 0
        self.IsBind = 0
        return
    def GetLength(self):
        return sizeof(tagMCBossRebornAwardItem)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AB 04 Boss复活活动信息 //tagMCBossRebornInfo:
                                ItemID:%d,
                                ItemCount:%d,
                                IsBind:%d
                                '''\
                                %(
                                self.ItemID,
                                self.ItemCount,
                                self.IsBind
                                )
        return DumpString
class  tagMCBossRebornTaskInfo(Structure):
    TaskID = 0    #(BYTE TaskID)// id
    TotalTimes = 0    #(BYTE TotalTimes)// 可完成总次数,0表示不限次数
    SingleTimes = 0    #(BYTE SingleTimes)// 单次领奖需要次数
    AwardItemCount = 0    #(BYTE AwardItemCount)// 奖励物品数
    AwardItem = list()    #(vector<tagMCBossRebornAwardItem> AwardItem)// 奖励物品信息
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.TaskID,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.TotalTimes,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.SingleTimes,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.AwardItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.AwardItemCount):
            temAwardItem = tagMCBossRebornAwardItem()
            _pos = temAwardItem.ReadData(_lpData, _pos)
            self.AwardItem.append(temAwardItem)
        return _pos
    def Clear(self):
        self.TaskID = 0
        self.TotalTimes = 0
        self.SingleTimes = 0
        self.AwardItemCount = 0
        self.AwardItem = list()
        return
    def GetLength(self):
        length = 0
        length += 1
        length += 1
        length += 1
        length += 1
        for i in range(self.AwardItemCount):
            length += self.AwardItem[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteBYTE(data, self.TaskID)
        data = CommFunc.WriteBYTE(data, self.TotalTimes)
        data = CommFunc.WriteBYTE(data, self.SingleTimes)
        data = CommFunc.WriteBYTE(data, self.AwardItemCount)
        for i in range(self.AwardItemCount):
            data = CommFunc.WriteString(data, self.AwardItem[i].GetLength(), self.AwardItem[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                TaskID:%d,
                                TotalTimes:%d,
                                SingleTimes:%d,
                                AwardItemCount:%d,
                                AwardItem:%s
                                '''\
                                %(
                                self.TaskID,
                                self.TotalTimes,
                                self.SingleTimes,
                                self.AwardItemCount,
                                "..."
                                )
        return DumpString
class  tagMCBossRebornInfo(Structure):
    Head = tagHead()
    StartDate = ""    #(char StartDate[10])// 开始日期 y-m-d
    EndtDate = ""    #(char EndtDate[10])// 结束日期 y-m-d
    ResetType = 0    #(BYTE ResetType)// 重置类型,0-0点重置;1-5点重置
    LimitLV = 0    #(WORD LimitLV)// 限制等级
    TaskCnt = 0    #(BYTE TaskCnt)
    TaskInfo = list()    #(vector<tagMCBossRebornTaskInfo> TaskInfo)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAB
        self.Head.SubCmd = 0x04
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
        self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
        self.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.TaskCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.TaskCnt):
            temTaskInfo = tagMCBossRebornTaskInfo()
            _pos = temTaskInfo.ReadData(_lpData, _pos)
            self.TaskInfo.append(temTaskInfo)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAB
        self.Head.SubCmd = 0x04
        self.StartDate = ""
        self.EndtDate = ""
        self.ResetType = 0
        self.LimitLV = 0
        self.TaskCnt = 0
        self.TaskInfo = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 10
        length += 10
        length += 1
        length += 2
        length += 1
        for i in range(self.TaskCnt):
            length += self.TaskInfo[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteString(data, 10, self.StartDate)
        data = CommFunc.WriteString(data, 10, self.EndtDate)
        data = CommFunc.WriteBYTE(data, self.ResetType)
        data = CommFunc.WriteWORD(data, self.LimitLV)
        data = CommFunc.WriteBYTE(data, self.TaskCnt)
        for i in range(self.TaskCnt):
            data = CommFunc.WriteString(data, self.TaskInfo[i].GetLength(), self.TaskInfo[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                StartDate:%s,
                                EndtDate:%s,
                                ResetType:%d,
                                LimitLV:%d,
                                TaskCnt:%d,
                                TaskInfo:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.StartDate,
                                self.EndtDate,
                                self.ResetType,
                                self.LimitLV,
                                self.TaskCnt,
                                "..."
                                )
        return DumpString
m_NAtagMCBossRebornInfo=tagMCBossRebornInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCBossRebornInfo.Head.Cmd,m_NAtagMCBossRebornInfo.Head.SubCmd))] = m_NAtagMCBossRebornInfo
#------------------------------------------------------
# AB 19 炼制奖励信息 #tagMCRefineGiftInfo
class  tagMCRefineGiftInfo(Structure):
class  tagSCOSACelebrationInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ExpRefineStartTime", c_int),    # 经验炼制活动开始时间
                  ("MoneyRefineStartTime", c_int),    # 金币炼制活动开始时间
                  ("ExpRefineCnt", c_ubyte),    # 经验已炼制次数
                  ("MoneyRefineCnt", c_ubyte),    # 金币已炼制次数
                  ("PointTotal", c_int),    # 累计庆典积分
                  ("PointAward", c_int),    # 积分阶段奖励记录,按阶段积分排序后索引二进制存储是否已领取
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAB
        self.SubCmd = 0x19
        self.SubCmd = 0x05
        return
    def ReadData(self, stringData, _pos=0, _len=0):
@@ -29366,105 +28985,35 @@
    def Clear(self):
        self.Cmd = 0xAB
        self.SubCmd = 0x19
        self.ExpRefineStartTime = 0
        self.MoneyRefineStartTime = 0
        self.ExpRefineCnt = 0
        self.MoneyRefineCnt = 0
        self.SubCmd = 0x05
        self.PointTotal = 0
        self.PointAward = 0
        return
    def GetLength(self):
        return sizeof(tagMCRefineGiftInfo)
        return sizeof(tagSCOSACelebrationInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AB 19 炼制奖励信息 //tagMCRefineGiftInfo:
        DumpString = '''// AB 05 开服庆典信息 //tagSCOSACelebrationInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                ExpRefineStartTime:%d,
                                MoneyRefineStartTime:%d,
                                ExpRefineCnt:%d,
                                MoneyRefineCnt:%d
                                PointTotal:%d,
                                PointAward:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ExpRefineStartTime,
                                self.MoneyRefineStartTime,
                                self.ExpRefineCnt,
                                self.MoneyRefineCnt
                                self.PointTotal,
                                self.PointAward
                                )
        return DumpString
m_NAtagMCRefineGiftInfo=tagMCRefineGiftInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCRefineGiftInfo.Cmd,m_NAtagMCRefineGiftInfo.SubCmd))] = m_NAtagMCRefineGiftInfo
#------------------------------------------------------
# AC 08 boss复活点数通知 #tagGCBossRebornPoint
class  tagGCBossRebornPoint(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("Point", c_int),    # 复活点数
                  ("TotalPoint", c_int),    # 复活总点数
                  ("RebornCnt", c_ushort),    # 今日已复活次数
                  ("TotalRebornCnt", c_ushort),    # 每日可复活总次数,0为不限制
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAC
        self.SubCmd = 0x08
        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 = 0xAC
        self.SubCmd = 0x08
        self.Point = 0
        self.TotalPoint = 0
        self.RebornCnt = 0
        self.TotalRebornCnt = 0
        return
    def GetLength(self):
        return sizeof(tagGCBossRebornPoint)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AC 08 boss复活点数通知 //tagGCBossRebornPoint:
                                Cmd:%s,
                                SubCmd:%s,
                                Point:%d,
                                TotalPoint:%d,
                                RebornCnt:%d,
                                TotalRebornCnt:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.Point,
                                self.TotalPoint,
                                self.RebornCnt,
                                self.TotalRebornCnt
                                )
        return DumpString
m_NAtagGCBossRebornPoint=tagGCBossRebornPoint()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCBossRebornPoint.Cmd,m_NAtagGCBossRebornPoint.SubCmd))] = m_NAtagGCBossRebornPoint
m_NAtagSCOSACelebrationInfo=tagSCOSACelebrationInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCOSACelebrationInfo.Cmd,m_NAtagSCOSACelebrationInfo.SubCmd))] = m_NAtagSCOSACelebrationInfo
#------------------------------------------------------
@@ -38072,6 +37621,150 @@
m_NAtagSCTurnFightReportSign=tagSCTurnFightReportSign()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCTurnFightReportSign.Cmd,m_NAtagSCTurnFightReportSign.SubCmd))] = m_NAtagSCTurnFightReportSign
#------------------------------------------------------
# B4 31 战斗战报结果 #tagSCTurnFightRet
class  tagSCTurnFightRet(Structure):
    Head = tagHead()
    MapID = 0    #(DWORD MapID)// 自定义地图ID,可用于绑定战斗地图场景功能(如主线boss、爬塔、竞技场等)
    FuncLineID = 0    #(DWORD FuncLineID)// MapID对应的扩展值,如具体某个关卡等
    TagType = 0    #(BYTE TagType)// 目标类型,0-NPC阵容,1-玩家
    TagID = 0    #(DWORD TagID)// 目标类型对应的ID,如玩家ID
    ValueCount = 0    #(BYTE ValueCount)
    ValueList = list()    #(vector<DWORD> ValueList)// 附加值列表,可选,具体含义由MapID决定
    IsWin = 0    #(BYTE IsWin)//是否获胜
    AwardLen = 0    #(WORD AwardLen)
    AwardMsg = ""    #(String AwardMsg)//功能结算奖励信息,不含战斗相关统计信息
    BatLen = 0    #(WORD BatLen)
    BatStatMsg = ""    #(String BatStatMsg)//战斗相关统计信息
    PathDate = ""    #(char PathDate[8])//战报路径日期, yyyyMMdd, 为空时代表公共类的战报,不为空时为玩家个人类战报
    GUID = ""    #(char GUID[40])//战报guid,前端根据功能MapID判断是否跨服功能,是的话从跨服服务器下载战报,否的话从本服下载
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB4
        self.Head.SubCmd = 0x31
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.FuncLineID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.TagType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.TagID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.ValueCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.ValueCount):
            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
            self.ValueList.append(value)
        self.IsWin,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.AwardLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.AwardMsg,_pos = CommFunc.ReadString(_lpData, _pos,self.AwardLen)
        self.BatLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.BatStatMsg,_pos = CommFunc.ReadString(_lpData, _pos,self.BatLen)
        self.PathDate,_pos = CommFunc.ReadString(_lpData, _pos,8)
        self.GUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB4
        self.Head.SubCmd = 0x31
        self.MapID = 0
        self.FuncLineID = 0
        self.TagType = 0
        self.TagID = 0
        self.ValueCount = 0
        self.ValueList = list()
        self.IsWin = 0
        self.AwardLen = 0
        self.AwardMsg = ""
        self.BatLen = 0
        self.BatStatMsg = ""
        self.PathDate = ""
        self.GUID = ""
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 4
        length += 4
        length += 1
        length += 4
        length += 1
        length += 4 * self.ValueCount
        length += 1
        length += 2
        length += len(self.AwardMsg)
        length += 2
        length += len(self.BatStatMsg)
        length += 8
        length += 40
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteDWORD(data, self.MapID)
        data = CommFunc.WriteDWORD(data, self.FuncLineID)
        data = CommFunc.WriteBYTE(data, self.TagType)
        data = CommFunc.WriteDWORD(data, self.TagID)
        data = CommFunc.WriteBYTE(data, self.ValueCount)
        for i in range(self.ValueCount):
            data = CommFunc.WriteDWORD(data, self.ValueList[i])
        data = CommFunc.WriteBYTE(data, self.IsWin)
        data = CommFunc.WriteWORD(data, self.AwardLen)
        data = CommFunc.WriteString(data, self.AwardLen, self.AwardMsg)
        data = CommFunc.WriteWORD(data, self.BatLen)
        data = CommFunc.WriteString(data, self.BatLen, self.BatStatMsg)
        data = CommFunc.WriteString(data, 8, self.PathDate)
        data = CommFunc.WriteString(data, 40, self.GUID)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                MapID:%d,
                                FuncLineID:%d,
                                TagType:%d,
                                TagID:%d,
                                ValueCount:%d,
                                ValueList:%s,
                                IsWin:%d,
                                AwardLen:%d,
                                AwardMsg:%s,
                                BatLen:%d,
                                BatStatMsg:%s,
                                PathDate:%s,
                                GUID:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.MapID,
                                self.FuncLineID,
                                self.TagType,
                                self.TagID,
                                self.ValueCount,
                                "...",
                                self.IsWin,
                                self.AwardLen,
                                self.AwardMsg,
                                self.BatLen,
                                self.BatStatMsg,
                                self.PathDate,
                                self.GUID
                                )
        return DumpString
m_NAtagSCTurnFightRet=tagSCTurnFightRet()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCTurnFightRet.Head.Cmd,m_NAtagSCTurnFightRet.Head.SubCmd))] = m_NAtagSCTurnFightRet
#------------------------------------------------------
@@ -48032,6 +47725,98 @@
#------------------------------------------------------
# C2 02 跨服通用信息包 #tagSSCommMsg
class  tagSSCommMsg(Structure):
    Head = tagHead()
    FromServerID = 0    #(DWORD FromServerID)//哪个服发的
    ServerTime = 0    #(DWORD ServerTime)//来源服务器时间戳
    TypeLen = 0    #(BYTE TypeLen)
    MsgType = ""    #(String MsgType)
    Len = 0    #(DWORD Len)
    Data = ""    #(String Data)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xC2
        self.Head.SubCmd = 0x02
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.FromServerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.ServerTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.TypeLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.MsgType,_pos = CommFunc.ReadString(_lpData, _pos,self.TypeLen)
        self.Len,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.Data,_pos = CommFunc.ReadString(_lpData, _pos,self.Len)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xC2
        self.Head.SubCmd = 0x02
        self.FromServerID = 0
        self.ServerTime = 0
        self.TypeLen = 0
        self.MsgType = ""
        self.Len = 0
        self.Data = ""
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 4
        length += 4
        length += 1
        length += len(self.MsgType)
        length += 4
        length += len(self.Data)
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteDWORD(data, self.FromServerID)
        data = CommFunc.WriteDWORD(data, self.ServerTime)
        data = CommFunc.WriteBYTE(data, self.TypeLen)
        data = CommFunc.WriteString(data, self.TypeLen, self.MsgType)
        data = CommFunc.WriteDWORD(data, self.Len)
        data = CommFunc.WriteString(data, self.Len, self.Data)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                FromServerID:%d,
                                ServerTime:%d,
                                TypeLen:%d,
                                MsgType:%s,
                                Len:%d,
                                Data:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.FromServerID,
                                self.ServerTime,
                                self.TypeLen,
                                self.MsgType,
                                self.Len,
                                self.Data
                                )
        return DumpString
m_NAtagSSCommMsg=tagSSCommMsg()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSSCommMsg.Head.Cmd,m_NAtagSSCommMsg.Head.SubCmd))] = m_NAtagSSCommMsg
#------------------------------------------------------
# C2 01 跨服服务器间的测试包 #tagSSTest
class  tagSSTest(Structure):