ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -4395,71 +4395,70 @@
#------------------------------------------------------
#A3 0D 玩家签到信息记录 # tagMCDaySignInfo
#A3 0D 玩家签到信息记录 # tagSCDaySignInfo
class  tagMCDaySignInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("DaySignCount", c_ubyte),    #已经签到天数
                  ("ReplenishSignCount", c_ubyte),    # 可以补签天数
                  ("IsSign", c_ubyte),    #当天是否已经签到,发送0和1
                  ("IsFrist", c_ubyte),    #是否是第一个月
                  ("TotalSignCount", c_ushort),    #累计总签到天数
                  ]
class  tagSCDaySignInfo(Structure):
    Head = tagHead()
    Count = 0    #(BYTE Count)
    SignStateList = list()    #(vector<BYTE> SignStateList)//每日签到状态记录列表 [第1天状态, ...]  状态:0-不可签到;1-已签到;2-可补签;3-已领取
    data = None
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA3
        self.SubCmd = 0x0D
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x0D
        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.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.Count):
            value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
            self.SignStateList.append(value)
        return _pos
    def Clear(self):
        self.Cmd = 0xA3
        self.SubCmd = 0x0D
        self.DaySignCount = 0
        self.ReplenishSignCount = 0
        self.IsSign = 0
        self.IsFrist = 0
        self.TotalSignCount = 0
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x0D
        self.Count = 0
        self.SignStateList = list()
        return
    def GetLength(self):
        return sizeof(tagMCDaySignInfo)
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 1 * self.Count
        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.WriteBYTE(data, self.Count)
        for i in range(self.Count):
            data = CommFunc.WriteBYTE(data, self.SignStateList[i])
        return data
    def OutputString(self):
        DumpString = '''//A3 0D 玩家签到信息记录 // tagMCDaySignInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                DaySignCount:%d,
                                ReplenishSignCount:%d,
                                IsSign:%d,
                                IsFrist:%d,
                                TotalSignCount:%d
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                SignStateList:%s
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.DaySignCount,
                                self.ReplenishSignCount,
                                self.IsSign,
                                self.IsFrist,
                                self.TotalSignCount
                                self.Head.OutputString(),
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagMCDaySignInfo=tagMCDaySignInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCDaySignInfo.Cmd,m_NAtagMCDaySignInfo.SubCmd))] = m_NAtagMCDaySignInfo
m_NAtagSCDaySignInfo=tagSCDaySignInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCDaySignInfo.Head.Cmd,m_NAtagSCDaySignInfo.Head.SubCmd))] = m_NAtagSCDaySignInfo
#------------------------------------------------------
@@ -5088,121 +5087,6 @@
m_NAtagMCEquipPartXLAttrInfo=tagMCEquipPartXLAttrInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCEquipPartXLAttrInfo.Head.Cmd,m_NAtagMCEquipPartXLAttrInfo.Head.SubCmd))] = m_NAtagMCEquipPartXLAttrInfo
#------------------------------------------------------
# A3 16 仙盟活跃信息通知 #tagMCFamilyActivityInfo
class  tagMCFamilyActionCnt(Structure):
    _pack_ = 1
    _fields_ = [
                  ("ActionID", c_ubyte),    # ID
                  ("FinishCnt", 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.ActionID = 0
        self.FinishCnt = 0
        return
    def GetLength(self):
        return sizeof(tagMCFamilyActionCnt)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A3 16 仙盟活跃信息通知 //tagMCFamilyActivityInfo:
                                ActionID:%d,
                                FinishCnt:%d
                                '''\
                                %(
                                self.ActionID,
                                self.FinishCnt
                                )
        return DumpString
class  tagMCFamilyActivityInfo(Structure):
    Head = tagHead()
    AwardRecord = 0    #(DWORD AwardRecord)// 领奖情况记录
    Count = 0    #(BYTE Count)// 个数
    InfoList = list()    #(vector<tagMCFamilyActionCnt> InfoList)// 活动信息
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x16
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.AwardRecord,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.Count):
            temInfoList = tagMCFamilyActionCnt()
            _pos = temInfoList.ReadData(_lpData, _pos)
            self.InfoList.append(temInfoList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x16
        self.AwardRecord = 0
        self.Count = 0
        self.InfoList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 4
        length += 1
        for i in range(self.Count):
            length += self.InfoList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteDWORD(data, self.AwardRecord)
        data = CommFunc.WriteBYTE(data, self.Count)
        for i in range(self.Count):
            data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                AwardRecord:%d,
                                Count:%d,
                                InfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.AwardRecord,
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagMCFamilyActivityInfo=tagMCFamilyActivityInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyActivityInfo.Head.Cmd,m_NAtagMCFamilyActivityInfo.Head.SubCmd))] = m_NAtagMCFamilyActivityInfo
#------------------------------------------------------
@@ -8114,80 +7998,6 @@
#------------------------------------------------------
#A3 08 在线奖励信息 #tagMCOnlinePrize
class  tagMCOnlinePrize(Structure):
    Head = tagHead()
    OnlineTime = 0    #(DWORD OnlineTime)//在线时间毫秒
    Len = 0    #(BYTE Len)
    PrizeInfo = list()    #(vector<DWORD> PrizeInfo)//领奖记录
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x08
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.OnlineTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.Len,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.Len):
            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
            self.PrizeInfo.append(value)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x08
        self.OnlineTime = 0
        self.Len = 0
        self.PrizeInfo = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 4
        length += 1
        length += 4 * self.Len
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteDWORD(data, self.OnlineTime)
        data = CommFunc.WriteBYTE(data, self.Len)
        for i in range(self.Len):
            data = CommFunc.WriteDWORD(data, self.PrizeInfo[i])
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                OnlineTime:%d,
                                Len:%d,
                                PrizeInfo:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.OnlineTime,
                                self.Len,
                                "..."
                                )
        return DumpString
m_NAtagMCOnlinePrize=tagMCOnlinePrize()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCOnlinePrize.Head.Cmd,m_NAtagMCOnlinePrize.Head.SubCmd))] = m_NAtagMCOnlinePrize
#------------------------------------------------------
# A3 19 分包下载奖励记录 #tagMCPackDownloadRecord
class  tagMCPackDownloadRecord(Structure):
@@ -8293,145 +8103,6 @@
m_NAtagMCPlayerLVAwardGetRecord=tagMCPlayerLVAwardGetRecord()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerLVAwardGetRecord.Cmd,m_NAtagMCPlayerLVAwardGetRecord.SubCmd))] = m_NAtagMCPlayerLVAwardGetRecord
#------------------------------------------------------
#A3 03 玩家在线奖励信息(暂停使用) #tagMCPlayerOnlinePrizeInfo
class  tagMCOnlinePrizeItem(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("PrizeItem", c_int),
                  ("ItemCount", c_ubyte),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA3
        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 = 0xA3
        self.SubCmd = 0x03
        self.PrizeItem = 0
        self.ItemCount = 0
        return
    def GetLength(self):
        return sizeof(tagMCOnlinePrizeItem)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''//A3 03 玩家在线奖励信息(暂停使用) //tagMCPlayerOnlinePrizeInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                PrizeItem:%d,
                                ItemCount:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.PrizeItem,
                                self.ItemCount
                                )
        return DumpString
class  tagMCPlayerOnlinePrizeInfo(Structure):
    Head = tagHead()
    RemaindTime = 0    #(DWORD RemaindTime)//产生奖励剩余时间
    HasPrize = 0    #(BYTE HasPrize)//是否可以领取
    PrizeType = 0    #(BYTE PrizeType)//在线奖励类型
    PrizeCnt = 0    #(BYTE PrizeCnt)//在线奖励类型
    PrizeInfo = list()    #(vector<tagMCOnlinePrizeItem> PrizeInfo)//在线奖励类型
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x03
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.RemaindTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.HasPrize,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.PrizeType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.PrizeCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.PrizeCnt):
            temPrizeInfo = tagMCOnlinePrizeItem()
            _pos = temPrizeInfo.ReadData(_lpData, _pos)
            self.PrizeInfo.append(temPrizeInfo)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x03
        self.RemaindTime = 0
        self.HasPrize = 0
        self.PrizeType = 0
        self.PrizeCnt = 0
        self.PrizeInfo = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 4
        length += 1
        length += 1
        length += 1
        for i in range(self.PrizeCnt):
            length += self.PrizeInfo[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteDWORD(data, self.RemaindTime)
        data = CommFunc.WriteBYTE(data, self.HasPrize)
        data = CommFunc.WriteBYTE(data, self.PrizeType)
        data = CommFunc.WriteBYTE(data, self.PrizeCnt)
        for i in range(self.PrizeCnt):
            data = CommFunc.WriteString(data, self.PrizeInfo[i].GetLength(), self.PrizeInfo[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                RemaindTime:%d,
                                HasPrize:%d,
                                PrizeType:%d,
                                PrizeCnt:%d,
                                PrizeInfo:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.RemaindTime,
                                self.HasPrize,
                                self.PrizeType,
                                self.PrizeCnt,
                                "..."
                                )
        return DumpString
m_NAtagMCPlayerOnlinePrizeInfo=tagMCPlayerOnlinePrizeInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerOnlinePrizeInfo.Head.Cmd,m_NAtagMCPlayerOnlinePrizeInfo.Head.SubCmd))] = m_NAtagMCPlayerOnlinePrizeInfo
#------------------------------------------------------
@@ -13120,6 +12791,73 @@
#------------------------------------------------------
# A5 02 捐献次数信息 #tagSCDonateCntInfo
class  tagSCDonateCntInfo(Structure):
    Head = tagHead()
    Count = 0    #(BYTE Count)
    DonateCntList = list()    #(vector<BYTE> DonateCntList)// 今日已捐献次数列表 [捐献类型1次数, ...]
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA5
        self.Head.SubCmd = 0x02
        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.ReadBYTE(_lpData,_pos)
            self.DonateCntList.append(value)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA5
        self.Head.SubCmd = 0x02
        self.Count = 0
        self.DonateCntList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 1 * 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.WriteBYTE(data, self.DonateCntList[i])
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                DonateCntList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagSCDonateCntInfo=tagSCDonateCntInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCDonateCntInfo.Head.Cmd,m_NAtagSCDonateCntInfo.Head.SubCmd))] = m_NAtagSCDonateCntInfo
#------------------------------------------------------
# A5 13 家族行为信息 #tagMCFamilyActionInfo
class  tagMCFamilyAction(Structure):
@@ -13308,181 +13046,6 @@
m_NAtagMCFamilyActionInfo=tagMCFamilyActionInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyActionInfo.Head.Cmd,m_NAtagMCFamilyActionInfo.Head.SubCmd))] = m_NAtagMCFamilyActionInfo
#------------------------------------------------------
# A5 02 家族活跃令兑换结果 #tagMCFamilyActivityExchangeResult
class  tagMCFamilyActivityExchangeResult(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("Point", c_int),    # 活跃令
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        self.SubCmd = 0x02
        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 = 0xA5
        self.SubCmd = 0x02
        self.Point = 0
        return
    def GetLength(self):
        return sizeof(tagMCFamilyActivityExchangeResult)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 02 家族活跃令兑换结果 //tagMCFamilyActivityExchangeResult:
                                Cmd:%s,
                                SubCmd:%s,
                                Point:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.Point
                                )
        return DumpString
m_NAtagMCFamilyActivityExchangeResult=tagMCFamilyActivityExchangeResult()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyActivityExchangeResult.Cmd,m_NAtagMCFamilyActivityExchangeResult.SubCmd))] = m_NAtagMCFamilyActivityExchangeResult
#------------------------------------------------------
# A5 08 家族事务信息 #tagMCFamilyAffairInfo
class  tagMCFamilyAffair(Structure):
    _pack_ = 1
    _fields_ = [
                  ("AffairID", c_ushort),    # 事务ID
                  ("Star", c_ubyte),    # 星级
                  ("State", c_ubyte),    # 状态:0-无;1-进行中;2-已完成
                  ("RemainDuration", 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.AffairID = 0
        self.Star = 0
        self.State = 0
        self.RemainDuration = 0
        return
    def GetLength(self):
        return sizeof(tagMCFamilyAffair)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 08 家族事务信息 //tagMCFamilyAffairInfo:
                                AffairID:%d,
                                Star:%d,
                                State:%d,
                                RemainDuration:%d
                                '''\
                                %(
                                self.AffairID,
                                self.Star,
                                self.State,
                                self.RemainDuration
                                )
        return DumpString
class  tagMCFamilyAffairInfo(Structure):
    Head = tagHead()
    RefreshFreeCount = 0    #(BYTE RefreshFreeCount)// 今日已免费刷新次数
    Count = 0    #(BYTE Count)
    AffairInfoList = list()    #(vector<tagMCFamilyAffair> AffairInfoList)// 事务列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA5
        self.Head.SubCmd = 0x08
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.RefreshFreeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.Count):
            temAffairInfoList = tagMCFamilyAffair()
            _pos = temAffairInfoList.ReadData(_lpData, _pos)
            self.AffairInfoList.append(temAffairInfoList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA5
        self.Head.SubCmd = 0x08
        self.RefreshFreeCount = 0
        self.Count = 0
        self.AffairInfoList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 1
        for i in range(self.Count):
            length += self.AffairInfoList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.RefreshFreeCount)
        data = CommFunc.WriteBYTE(data, self.Count)
        for i in range(self.Count):
            data = CommFunc.WriteString(data, self.AffairInfoList[i].GetLength(), self.AffairInfoList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                RefreshFreeCount:%d,
                                Count:%d,
                                AffairInfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.RefreshFreeCount,
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagMCFamilyAffairInfo=tagMCFamilyAffairInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyAffairInfo.Head.Cmd,m_NAtagMCFamilyAffairInfo.Head.SubCmd))] = m_NAtagMCFamilyAffairInfo
#------------------------------------------------------
@@ -14035,6 +13598,7 @@
    JoinLVMin = 0    #(WORD JoinLVMin)//限制最低可加入的玩家等级
    ServerID = 0    #(DWORD ServerID)//区服ID
    EmblemID = 0    #(DWORD EmblemID)//徽章ID
    EmblemWord = ""    #(char EmblemWord[3])//徽章文字
    FightPower = 0    #(DWORD FightPower)//总战力,求余亿部分
    FightPowerEx = 0    #(DWORD FightPowerEx)//总战力,整除亿部分
    MemberCount = 0    #(BYTE MemberCount)//成员人数
@@ -14057,6 +13621,7 @@
        self.JoinLVMin,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.ServerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.EmblemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.EmblemWord,_pos = CommFunc.ReadString(_lpData, _pos,3)
        self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.MemberCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
@@ -14074,6 +13639,7 @@
        self.JoinLVMin = 0
        self.ServerID = 0
        self.EmblemID = 0
        self.EmblemWord = ""
        self.FightPower = 0
        self.FightPowerEx = 0
        self.MemberCount = 0
@@ -14092,6 +13658,7 @@
        length += 2
        length += 4
        length += 4
        length += 3
        length += 4
        length += 4
        length += 1
@@ -14111,6 +13678,7 @@
        data = CommFunc.WriteWORD(data, self.JoinLVMin)
        data = CommFunc.WriteDWORD(data, self.ServerID)
        data = CommFunc.WriteDWORD(data, self.EmblemID)
        data = CommFunc.WriteString(data, 3, self.EmblemWord)
        data = CommFunc.WriteDWORD(data, self.FightPower)
        data = CommFunc.WriteDWORD(data, self.FightPowerEx)
        data = CommFunc.WriteBYTE(data, self.MemberCount)
@@ -14129,6 +13697,7 @@
                                JoinLVMin:%d,
                                ServerID:%d,
                                EmblemID:%d,
                                EmblemWord:%s,
                                FightPower:%d,
                                FightPowerEx:%d,
                                MemberCount:%d
@@ -14145,6 +13714,7 @@
                                self.JoinLVMin,
                                self.ServerID,
                                self.EmblemID,
                                self.EmblemWord,
                                self.FightPower,
                                self.FightPowerEx,
                                self.MemberCount
@@ -14496,114 +14066,6 @@
#------------------------------------------------------
# A5 04 玩家战盟科技等级 #tagMCPlayerTechInfo
class  tagMCPlayerTech(Structure):
    _pack_ = 1
    _fields_ = [
                  ("TechID", c_ushort),    # 科技ID
                  ("TechLV", 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.TechID = 0
        self.TechLV = 0
        return
    def GetLength(self):
        return sizeof(tagMCPlayerTech)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 04 玩家战盟科技等级 //tagMCPlayerTechInfo:
                                TechID:%d,
                                TechLV:%d
                                '''\
                                %(
                                self.TechID,
                                self.TechLV
                                )
        return DumpString
class  tagMCPlayerTechInfo(Structure):
    Head = tagHead()
    TechCnt = 0    #(BYTE TechCnt)// 科技个数
    TechInfoList = list()    #(vector<tagMCPlayerTech> TechInfoList)// 科技信息列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA5
        self.Head.SubCmd = 0x04
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.TechCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.TechCnt):
            temTechInfoList = tagMCPlayerTech()
            _pos = temTechInfoList.ReadData(_lpData, _pos)
            self.TechInfoList.append(temTechInfoList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA5
        self.Head.SubCmd = 0x04
        self.TechCnt = 0
        self.TechInfoList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.TechCnt):
            length += self.TechInfoList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.TechCnt)
        for i in range(self.TechCnt):
            data = CommFunc.WriteString(data, self.TechInfoList[i].GetLength(), self.TechInfoList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                TechCnt:%d,
                                TechInfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.TechCnt,
                                "..."
                                )
        return DumpString
m_NAtagMCPlayerTechInfo=tagMCPlayerTechInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerTechInfo.Head.Cmd,m_NAtagMCPlayerTechInfo.Head.SubCmd))] = m_NAtagMCPlayerTechInfo
#------------------------------------------------------
# A5 20 玩家家族信息 #tagMCRoleFamilyInfo
class  tagMCRoleFamilyMember(Structure):
@@ -14621,7 +14083,9 @@
    FightPowerEx = 0    #(DWORD FightPowerEx)//战力,整除亿部分
    ServerID = 0    #(DWORD ServerID)//所属区服ID
    ContribTotal = 0    #(DWORD ContribTotal)//总贡献度
    ContribWeek = 0    #(DWORD ContribWeek)//周贡献度
    ContribDay = 0    #(DWORD ContribDay)//日贡献度
    DonateCntTotal = 0    #(DWORD DonateCntTotal)//总捐献次数
    DonateCntDay = 0    #(BYTE DonateCntDay)//日捐献次数
    OffTime = 0    #(DWORD OffTime)// 0-在线; >0-/离线时间戳
    data = None
@@ -14645,7 +14109,9 @@
        self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.ServerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.ContribTotal,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.ContribWeek,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.ContribDay,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.DonateCntTotal,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.DonateCntDay,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.OffTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        return _pos
@@ -14664,7 +14130,9 @@
        self.FightPowerEx = 0
        self.ServerID = 0
        self.ContribTotal = 0
        self.ContribWeek = 0
        self.ContribDay = 0
        self.DonateCntTotal = 0
        self.DonateCntDay = 0
        self.OffTime = 0
        return
@@ -14686,6 +14154,8 @@
        length += 4
        length += 4
        length += 4
        length += 1
        length += 4
        return length
@@ -14705,7 +14175,9 @@
        data = CommFunc.WriteDWORD(data, self.FightPowerEx)
        data = CommFunc.WriteDWORD(data, self.ServerID)
        data = CommFunc.WriteDWORD(data, self.ContribTotal)
        data = CommFunc.WriteDWORD(data, self.ContribWeek)
        data = CommFunc.WriteDWORD(data, self.ContribDay)
        data = CommFunc.WriteDWORD(data, self.DonateCntTotal)
        data = CommFunc.WriteBYTE(data, self.DonateCntDay)
        data = CommFunc.WriteDWORD(data, self.OffTime)
        return data
@@ -14725,7 +14197,9 @@
                                FightPowerEx:%d,
                                ServerID:%d,
                                ContribTotal:%d,
                                ContribWeek:%d,
                                ContribDay:%d,
                                DonateCntTotal:%d,
                                DonateCntDay:%d,
                                OffTime:%d
                                '''\
                                %(
@@ -14743,7 +14217,9 @@
                                self.FightPowerEx,
                                self.ServerID,
                                self.ContribTotal,
                                self.ContribWeek,
                                self.ContribDay,
                                self.DonateCntTotal,
                                self.DonateCntDay,
                                self.OffTime
                                )
        return DumpString
@@ -14759,6 +14235,7 @@
    JoinLVMin = 0    #(WORD JoinLVMin)//限制最低可加入的玩家等级
    ServerID = 0    #(DWORD ServerID)//区服ID,创建时以族长的区服ID赋值
    EmblemID = 0    #(DWORD EmblemID)//徽章ID
    EmblemWord = ""    #(char EmblemWord[3])//徽章文字
    FightPower = 0    #(DWORD FightPower)//总战力,求余亿部分
    FightPowerEx = 0    #(DWORD FightPowerEx)//总战力,整除亿部分
    BroadcastLen = 0    #(WORD BroadcastLen)//公告
@@ -14785,6 +14262,7 @@
        self.JoinLVMin,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.ServerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.EmblemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.EmblemWord,_pos = CommFunc.ReadString(_lpData, _pos,3)
        self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.BroadcastLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
@@ -14810,6 +14288,7 @@
        self.JoinLVMin = 0
        self.ServerID = 0
        self.EmblemID = 0
        self.EmblemWord = ""
        self.FightPower = 0
        self.FightPowerEx = 0
        self.BroadcastLen = 0
@@ -14830,6 +14309,7 @@
        length += 2
        length += 4
        length += 4
        length += 3
        length += 4
        length += 4
        length += 2
@@ -14852,6 +14332,7 @@
        data = CommFunc.WriteWORD(data, self.JoinLVMin)
        data = CommFunc.WriteDWORD(data, self.ServerID)
        data = CommFunc.WriteDWORD(data, self.EmblemID)
        data = CommFunc.WriteString(data, 3, self.EmblemWord)
        data = CommFunc.WriteDWORD(data, self.FightPower)
        data = CommFunc.WriteDWORD(data, self.FightPowerEx)
        data = CommFunc.WriteWORD(data, self.BroadcastLen)
@@ -14873,6 +14354,7 @@
                                JoinLVMin:%d,
                                ServerID:%d,
                                EmblemID:%d,
                                EmblemWord:%s,
                                FightPower:%d,
                                FightPowerEx:%d,
                                BroadcastLen:%d,
@@ -14891,6 +14373,7 @@
                                self.JoinLVMin,
                                self.ServerID,
                                self.EmblemID,
                                self.EmblemWord,
                                self.FightPower,
                                self.FightPowerEx,
                                self.BroadcastLen,
@@ -16851,6 +16334,7 @@
    FamilyID = 0    #(DWORD FamilyID)
    FamilyName = ""    #(char FamilyName[33])
    FamilyEmblemID = 0    #(DWORD FamilyEmblemID)//仙盟徽章ID
    FamilyEmblemWord = ""    #(char FamilyEmblemWord[3])//徽章文字
    PlusDataSize = 0    #(DWORD PlusDataSize)
    PlusData = ""    #(String PlusData)//扩展记录   
    data = None
@@ -16879,6 +16363,7 @@
        self.FamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.FamilyName,_pos = CommFunc.ReadString(_lpData, _pos,33)
        self.FamilyEmblemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.FamilyEmblemWord,_pos = CommFunc.ReadString(_lpData, _pos,3)
        self.PlusDataSize,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.PlusData,_pos = CommFunc.ReadString(_lpData, _pos,self.PlusDataSize)
        return _pos
@@ -16903,6 +16388,7 @@
        self.FamilyID = 0
        self.FamilyName = ""
        self.FamilyEmblemID = 0
        self.FamilyEmblemWord = ""
        self.PlusDataSize = 0
        self.PlusData = ""
        return
@@ -16925,6 +16411,7 @@
        length += 4
        length += 33
        length += 4
        length += 3
        length += 4
        length += len(self.PlusData)
@@ -16948,6 +16435,7 @@
        data = CommFunc.WriteDWORD(data, self.FamilyID)
        data = CommFunc.WriteString(data, 33, self.FamilyName)
        data = CommFunc.WriteDWORD(data, self.FamilyEmblemID)
        data = CommFunc.WriteString(data, 3, self.FamilyEmblemWord)
        data = CommFunc.WriteDWORD(data, self.PlusDataSize)
        data = CommFunc.WriteString(data, self.PlusDataSize, self.PlusData)
        return data
@@ -16970,6 +16458,7 @@
                                FamilyID:%d,
                                FamilyName:%s,
                                FamilyEmblemID:%d,
                                FamilyEmblemWord:%s,
                                PlusDataSize:%d,
                                PlusData:%s
                                '''\
@@ -16990,6 +16479,7 @@
                                self.FamilyID,
                                self.FamilyName,
                                self.FamilyEmblemID,
                                self.FamilyEmblemWord,
                                self.PlusDataSize,
                                self.PlusData
                                )
@@ -37384,80 +36874,6 @@
#------------------------------------------------------
# B1 13 在线奖励信息新 #tagMCOnlinePrizeNew
class  tagMCOnlinePrizeNew(Structure):
    Head = tagHead()
    OnlineTime = 0    #(DWORD OnlineTime)//在线时间毫秒
    Len = 0    #(BYTE Len)
    PrizeInfo = list()    #(vector<DWORD> PrizeInfo)//领奖记录
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xB1
        self.Head.SubCmd = 0x13
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.OnlineTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.Len,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.Len):
            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
            self.PrizeInfo.append(value)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xB1
        self.Head.SubCmd = 0x13
        self.OnlineTime = 0
        self.Len = 0
        self.PrizeInfo = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 4
        length += 1
        length += 4 * self.Len
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteDWORD(data, self.OnlineTime)
        data = CommFunc.WriteBYTE(data, self.Len)
        for i in range(self.Len):
            data = CommFunc.WriteDWORD(data, self.PrizeInfo[i])
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                OnlineTime:%d,
                                Len:%d,
                                PrizeInfo:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.OnlineTime,
                                self.Len,
                                "..."
                                )
        return DumpString
m_NAtagMCOnlinePrizeNew=tagMCOnlinePrizeNew()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCOnlinePrizeNew.Head.Cmd,m_NAtagMCOnlinePrizeNew.Head.SubCmd))] = m_NAtagMCOnlinePrizeNew
#------------------------------------------------------
# B1 03 通知玩家死亡时间 #tagMCPlayerDeadTime
class  tagMCPlayerDeadTime(Structure):
@@ -43430,10 +42846,11 @@
    Head = tagHead()
    ObjID = 0    #(DWORD ObjID)
    PMType = 0    #(BYTE PMType)// 物法类型 0或1-物理;2-法术
    BattleType = 0    #(BYTE BattleType)// 战斗类型 0-常规;1-连击;2-反击;3-追击
    BattleType = 0    #(BYTE BattleType)// 战斗类型 0-常规;1-连击;2-反击;3-追击;4-子技能;5-被动触发的
    CurHP = 0    #(DWORD CurHP)// 释放技能后剩余血量,吸血、反弹可能引起变化,求余亿部分
    CurHPEx = 0    #(DWORD CurHPEx)// 释放技能后剩余血量,吸血、反弹可能引起变化,整除亿部分
    SkillID = 0    #(DWORD SkillID)
    RelatedSkillID = 0    #(DWORD RelatedSkillID)// 关联的技能ID,一般是主技能ID或由于某个技能释放引起的
    HurtCount = 0    #(BYTE HurtCount)//伤害数目
    HurtList = list()    #(vector<tagSCUseSkillHurt> HurtList)//size = HurtCount
    data = None
@@ -43453,6 +42870,7 @@
        self.CurHP,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.CurHPEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.SkillID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.RelatedSkillID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.HurtCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.HurtCount):
            temHurtList = tagSCUseSkillHurt()
@@ -43471,6 +42889,7 @@
        self.CurHP = 0
        self.CurHPEx = 0
        self.SkillID = 0
        self.RelatedSkillID = 0
        self.HurtCount = 0
        self.HurtList = list()
        return
@@ -43481,6 +42900,7 @@
        length += 4
        length += 1
        length += 1
        length += 4
        length += 4
        length += 4
        length += 4
@@ -43499,6 +42919,7 @@
        data = CommFunc.WriteDWORD(data, self.CurHP)
        data = CommFunc.WriteDWORD(data, self.CurHPEx)
        data = CommFunc.WriteDWORD(data, self.SkillID)
        data = CommFunc.WriteDWORD(data, self.RelatedSkillID)
        data = CommFunc.WriteBYTE(data, self.HurtCount)
        for i in range(self.HurtCount):
            data = CommFunc.WriteString(data, self.HurtList[i].GetLength(), self.HurtList[i].GetBuffer())
@@ -43513,6 +42934,7 @@
                                CurHP:%d,
                                CurHPEx:%d,
                                SkillID:%d,
                                RelatedSkillID:%d,
                                HurtCount:%d,
                                HurtList:%s
                                '''\
@@ -43524,6 +42946,7 @@
                                self.CurHP,
                                self.CurHPEx,
                                self.SkillID,
                                self.RelatedSkillID,
                                self.HurtCount,
                                "..."
                                )