hxp
2025-11-21 caba629e01f8f603b8e05f588688c40e82eb6c88
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -7441,185 +7441,6 @@
#------------------------------------------------------
# A3 C8 神通等级信息 #tagMCShentongLVInfo
class  tagMCShentongLV(Structure):
    _pack_ = 1
    _fields_ = [
                  ("ShentongID", c_ubyte),
                  ("ClassLV", c_ubyte),
                  ("LV", 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.ShentongID = 0
        self.ClassLV = 0
        self.LV = 0
        return
    def GetLength(self):
        return sizeof(tagMCShentongLV)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A3 C8 神通等级信息 //tagMCShentongLVInfo:
                                ShentongID:%d,
                                ClassLV:%d,
                                LV:%d
                                '''\
                                %(
                                self.ShentongID,
                                self.ClassLV,
                                self.LV
                                )
        return DumpString
class  tagMCShentongLVInfo(Structure):
    Head = tagHead()
    Count = 0    #(BYTE Count)
    ShentongLVList = list()    #(vector<tagMCShentongLV> ShentongLVList)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0xC8
        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):
            temShentongLVList = tagMCShentongLV()
            _pos = temShentongLVList.ReadData(_lpData, _pos)
            self.ShentongLVList.append(temShentongLVList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0xC8
        self.Count = 0
        self.ShentongLVList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.Count):
            length += self.ShentongLVList[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.ShentongLVList[i].GetLength(), self.ShentongLVList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                ShentongLVList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagMCShentongLVInfo=tagMCShentongLVInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCShentongLVInfo.Head.Cmd,m_NAtagMCShentongLVInfo.Head.SubCmd))] = m_NAtagMCShentongLVInfo
#------------------------------------------------------
# A3 C9 神通技能设置信息 #tagMCShentongSkillInfo
class  tagMCShentongSkillInfo(Structure):
    Head = tagHead()
    Count = 0    #(BYTE Count)
    SkillIDList = list()    #(vector<DWORD> SkillIDList)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0xC9
        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):
            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
            self.SkillIDList.append(value)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0xC9
        self.Count = 0
        self.SkillIDList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 4 * self.Count
        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.WriteDWORD(data, self.SkillIDList[i])
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                SkillIDList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagMCShentongSkillInfo=tagMCShentongSkillInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCShentongSkillInfo.Head.Cmd,m_NAtagMCShentongSkillInfo.Head.SubCmd))] = m_NAtagMCShentongSkillInfo
#------------------------------------------------------
# A3 44 当日累计充值多选一礼包信息 #tagMCSingleGoldGift
class  tagMCSingleGoldGift(Structure):
@@ -9140,114 +8961,6 @@
m_NAtagPyMCWorldAverageLv=tagPyMCWorldAverageLv()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPyMCWorldAverageLv.Cmd,m_NAtagPyMCWorldAverageLv.SubCmd))] = m_NAtagPyMCWorldAverageLv
#------------------------------------------------------
# A3 48 仙宝寻主领奖记录 #tagMCXBXZAwardRecordList
class  tagMCXBXZAwardRecord(Structure):
    _pack_ = 1
    _fields_ = [
                  ("RecordIndex", c_ushort),    #第几个记录值 每个key存31个id   0-30为0, 31-61为1..
                  ("Record", c_int),    #对应是否领取值
                  ]
    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.RecordIndex = 0
        self.Record = 0
        return
    def GetLength(self):
        return sizeof(tagMCXBXZAwardRecord)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A3 48 仙宝寻主领奖记录 //tagMCXBXZAwardRecordList:
                                RecordIndex:%d,
                                Record:%d
                                '''\
                                %(
                                self.RecordIndex,
                                self.Record
                                )
        return DumpString
class  tagMCXBXZAwardRecordList(Structure):
    Head = tagHead()
    RecordCnt = 0    #(WORD RecordCnt)//记录个数
    RecordList = list()    #(vector<tagMCXBXZAwardRecord> RecordList)//记录列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x48
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.RecordCnt,_pos = CommFunc.ReadWORD(_lpData, _pos)
        for i in range(self.RecordCnt):
            temRecordList = tagMCXBXZAwardRecord()
            _pos = temRecordList.ReadData(_lpData, _pos)
            self.RecordList.append(temRecordList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x48
        self.RecordCnt = 0
        self.RecordList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 2
        for i in range(self.RecordCnt):
            length += self.RecordList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteWORD(data, self.RecordCnt)
        for i in range(self.RecordCnt):
            data = CommFunc.WriteString(data, self.RecordList[i].GetLength(), self.RecordList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                RecordCnt:%d,
                                RecordList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.RecordCnt,
                                "..."
                                )
        return DumpString
m_NAtagMCXBXZAwardRecordList=tagMCXBXZAwardRecordList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCXBXZAwardRecordList.Head.Cmd,m_NAtagMCXBXZAwardRecordList.Head.SubCmd))] = m_NAtagMCXBXZAwardRecordList
#------------------------------------------------------
@@ -15182,6 +14895,7 @@
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("Score", c_int),    #当前积分
                  ("WinCnt", c_int),    #累计胜利次数
                  ]
    def __init__(self):
@@ -15199,6 +14913,7 @@
        self.Cmd = 0xA9
        self.SubCmd = 0x23
        self.Score = 0
        self.WinCnt = 0
        return
    def GetLength(self):
@@ -15211,12 +14926,14 @@
        DumpString = '''// A9 23 演武场玩家信息 //tagSCArenaPlayerInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                Score:%d
                                Score:%d,
                                WinCnt:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.Score
                                self.Score,
                                self.WinCnt
                                )
        return DumpString
@@ -32496,6 +32213,207 @@
#------------------------------------------------------
# B1 30 红颜信息 #tagSCBeautyInfo
class  tagSCBeautySkin(Structure):
    _pack_ = 1
    _fields_ = [
                  ("SkinID", c_ushort),    #ʱװID
                  ("State", c_ubyte),    #是否已激活
                  ("Used", c_ubyte),    #是否已穿戴该时装,某个红颜的所有时装穿戴可能都为0,则前端取默认时装进行展示,如果有同步已穿戴的则以后端为准
                  ("Star", c_ubyte),    #时装星级,激活时为0星
                  ]
    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.SkinID = 0
        self.State = 0
        self.Used = 0
        self.Star = 0
        return
    def GetLength(self):
        return sizeof(tagSCBeautySkin)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// B1 30 红颜信息 //tagSCBeautyInfo:
                                SkinID:%d,
                                State:%d,
                                Used:%d,
                                Star:%d
                                '''\
                                %(
                                self.SkinID,
                                self.State,
                                self.Used,
                                self.Star
                                )
        return DumpString
class  tagSCBeauty(Structure):
    BeautyID = 0    #(WORD BeautyID)//红颜ID
    State = 0    #(BYTE State)//是否已激活
    LV = 0    #(WORD LV)//红颜好感等级,激活时为0级
    Exp = 0    #(WORD Exp)//当前等级经验
    AwardLV = 0    #(WORD AwardLV)//已经领取到的奖励等级记录
    SkinCnt = 0    #(BYTE SkinCnt)
    SkinList = list()    #(vector<tagSCBeautySkin> SkinList)//时装皮肤列表,默认解锁的不通知,有变化的才会同步
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.BeautyID,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.State,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.Exp,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.AwardLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.SkinCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.SkinCnt):
            temSkinList = tagSCBeautySkin()
            _pos = temSkinList.ReadData(_lpData, _pos)
            self.SkinList.append(temSkinList)
        return _pos
    def Clear(self):
        self.BeautyID = 0
        self.State = 0
        self.LV = 0
        self.Exp = 0
        self.AwardLV = 0
        self.SkinCnt = 0
        self.SkinList = list()
        return
    def GetLength(self):
        length = 0
        length += 2
        length += 1
        length += 2
        length += 2
        length += 2
        length += 1
        for i in range(self.SkinCnt):
            length += self.SkinList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteWORD(data, self.BeautyID)
        data = CommFunc.WriteBYTE(data, self.State)
        data = CommFunc.WriteWORD(data, self.LV)
        data = CommFunc.WriteWORD(data, self.Exp)
        data = CommFunc.WriteWORD(data, self.AwardLV)
        data = CommFunc.WriteBYTE(data, self.SkinCnt)
        for i in range(self.SkinCnt):
            data = CommFunc.WriteString(data, self.SkinList[i].GetLength(), self.SkinList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                BeautyID:%d,
                                State:%d,
                                LV:%d,
                                Exp:%d,
                                AwardLV:%d,
                                SkinCnt:%d,
                                SkinList:%s
                                '''\
                                %(
                                self.BeautyID,
                                self.State,
                                self.LV,
                                self.Exp,
                                self.AwardLV,
                                self.SkinCnt,
                                "..."
                                )
        return DumpString
class  tagSCBeautyInfo(Structure):
    Head = tagHead()
    Count = 0    #(BYTE Count)
    BeautyList = list()    #(vector<tagSCBeauty> BeautyList)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB1
        self.Head.SubCmd = 0x30
        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):
            temBeautyList = tagSCBeauty()
            _pos = temBeautyList.ReadData(_lpData, _pos)
            self.BeautyList.append(temBeautyList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB1
        self.Head.SubCmd = 0x30
        self.Count = 0
        self.BeautyList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.Count):
            length += self.BeautyList[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.BeautyList[i].GetLength(), self.BeautyList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                BeautyList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagSCBeautyInfo=tagSCBeautyInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCBeautyInfo.Head.Cmd,m_NAtagSCBeautyInfo.Head.SubCmd))] = m_NAtagSCBeautyInfo
#------------------------------------------------------
# B1 27 聊天气泡框信息 #tagSCChatBoxInfo
class  tagSCChatBox(Structure):
@@ -34818,8 +34736,8 @@
                  ("TreeLV", c_ubyte),    # 当前仙树等级
                  ("LVUPState", c_ubyte),    # 0-非升级中;1-升级中
                  ("LVUPRemainTime", c_int),    # 升级剩余时间,秒;当升级中且倒计时为0时可发送B223执行升级包进行升级
                  ("FreeTimeCnt", c_ubyte),    # 今日已免费减时次数
                  ("FreeTimeLast", c_int),    # 上次免费减时时间戳
                  ("Energy", c_ubyte),    # 当前累计充能次数
                  ("EnergyTimeLast", c_int),    # 上次获得充能次数时间戳
                  ]
    def __init__(self):
@@ -34839,8 +34757,8 @@
        self.TreeLV = 0
        self.LVUPState = 0
        self.LVUPRemainTime = 0
        self.FreeTimeCnt = 0
        self.FreeTimeLast = 0
        self.Energy = 0
        self.EnergyTimeLast = 0
        return
    def GetLength(self):
@@ -34856,8 +34774,8 @@
                                TreeLV:%d,
                                LVUPState:%d,
                                LVUPRemainTime:%d,
                                FreeTimeCnt:%d,
                                FreeTimeLast:%d
                                Energy:%d,
                                EnergyTimeLast:%d
                                '''\
                                %(
                                self.Cmd,
@@ -34865,8 +34783,8 @@
                                self.TreeLV,
                                self.LVUPState,
                                self.LVUPRemainTime,
                                self.FreeTimeCnt,
                                self.FreeTimeLast
                                self.Energy,
                                self.EnergyTimeLast
                                )
        return DumpString