ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -18637,7 +18637,7 @@
    GuessTemplateID = 0    #(WORD GuessTemplateID)// 竞猜奖励模版,对应H.活动竞猜表,前端自行读表展示
    PersonalTemplateID = 0    #(WORD PersonalTemplateID)// 个人伤害排行奖励模版,对应H.活动榜单奖励模版表,前端自行读表展示
    FamilyTemplateID = 0    #(WORD FamilyTemplateID)// 仙盟积分排行奖励模版,对应H.活动榜单奖励模版表,前端自行读表展示
    StateError = 0    #(BYTE StateError)// 活动流程状态是否异常,如果不为0代表活动已异常,前端自行决定是不显示活动还是活动页面做提示
    StateError = 0    #(DWORD StateError)// 活动流程状态是否异常,如果不为0代表活动已异常,前端自行决定是不显示活动还是活动页面做提示
    FamilyCount = 0    #(BYTE FamilyCount)
    ActFamilyList = list()    #(vector<tagGCFamilyGCZActFamily> ActFamilyList)//本分区参与的仙盟名单
    data = None
@@ -18662,7 +18662,7 @@
        self.GuessTemplateID,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.PersonalTemplateID,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.FamilyTemplateID,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.StateError,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.StateError,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.FamilyCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.FamilyCount):
            temActFamilyList = tagGCFamilyGCZActFamily()
@@ -18705,7 +18705,7 @@
        length += 2
        length += 2
        length += 2
        length += 1
        length += 4
        length += 1
        for i in range(self.FamilyCount):
            length += self.ActFamilyList[i].GetLength()
@@ -18726,7 +18726,7 @@
        data = CommFunc.WriteWORD(data, self.GuessTemplateID)
        data = CommFunc.WriteWORD(data, self.PersonalTemplateID)
        data = CommFunc.WriteWORD(data, self.FamilyTemplateID)
        data = CommFunc.WriteBYTE(data, self.StateError)
        data = CommFunc.WriteDWORD(data, self.StateError)
        data = CommFunc.WriteBYTE(data, self.FamilyCount)
        for i in range(self.FamilyCount):
            data = CommFunc.WriteString(data, self.ActFamilyList[i].GetLength(), self.ActFamilyList[i].GetBuffer())
@@ -19664,10 +19664,64 @@
        return DumpString
class  tagGCFamilyGCZCampRound(Structure):
    _pack_ = 1
    _fields_ = [
                  ("RoundNum", c_ubyte),    #轮次编号,从1开始
                  ("BatType", c_ubyte),    #所在战场类型
                  ("GroupNum", c_ubyte),    #所在分组编号
                  ("Rank", c_ubyte),    #本轮排名
                  ("Score", c_ushort),    #本轮积分,总积分为所有轮次累加
                  ("UpdownState", c_ubyte),    #本轮结算晋级降级状态:0-未处理,1-降级;2-保级;3-晋级,即本轮的晋降级状态决定下一轮的战场类型
                  ]
    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.RoundNum = 0
        self.BatType = 0
        self.GroupNum = 0
        self.Rank = 0
        self.Score = 0
        self.UpdownState = 0
        return
    def GetLength(self):
        return sizeof(tagGCFamilyGCZCampRound)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// C0 26 仙盟攻城战大本营信息 //tagGCFamilyGCZCampInfo:
                                RoundNum:%d,
                                BatType:%d,
                                GroupNum:%d,
                                Rank:%d,
                                Score:%d,
                                UpdownState:%d
                                '''\
                                %(
                                self.RoundNum,
                                self.BatType,
                                self.GroupNum,
                                self.Rank,
                                self.Score,
                                self.UpdownState
                                )
        return DumpString
class  tagGCFamilyGCZCampInfo(Structure):
    Head = tagHead()
    FamilyID = 0    #(DWORD FamilyID)//所在活动仙盟ID,可能不是玩家当前的仙盟ID,活动以该ID为准
    Score = 0    #(WORD Score)//活动总积分,如果不在榜上则读该值
    CampLV = 0    #(WORD CampLV)//大本营当前等级
    CampExp = 0    #(DWORD CampExp)//大本营当前经验
    CityLV = 0    #(WORD CityLV)//城池属性等级,开战后可能与当前大本营等级不一样
@@ -19677,6 +19731,8 @@
    HPMaxEx = 0    #(DWORD HPMaxEx)//总大生命,整除亿部分
    HP = 0    #(DWORD HP)//剩余生命,求余亿部分
    HPEx = 0    #(DWORD HPEx)//剩余生命,整除亿部分
    RoundCnt = 0    #(BYTE RoundCnt)
    RoundInfoList = list()    #(vector<tagGCFamilyGCZCampRound> RoundInfoList)//仙盟轮次汇总信息
    DefMemCnt = 0    #(BYTE DefMemCnt)
    DefMemList = list()    #(vector<tagGCFamilyGCZCampMem> DefMemList)//防守成员列表,有同步则差异更新,没有在防守成员里的视为没有参与资格
    data = None
@@ -19691,7 +19747,6 @@
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.FamilyID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.Score,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.CampLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.CampExp,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.CityLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
@@ -19701,6 +19756,11 @@
        self.HPMaxEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.HP,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.HPEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.RoundCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.RoundCnt):
            temRoundInfoList = tagGCFamilyGCZCampRound()
            _pos = temRoundInfoList.ReadData(_lpData, _pos)
            self.RoundInfoList.append(temRoundInfoList)
        self.DefMemCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.DefMemCnt):
            temDefMemList = tagGCFamilyGCZCampMem()
@@ -19714,7 +19774,6 @@
        self.Head.Cmd = 0xC0
        self.Head.SubCmd = 0x26
        self.FamilyID = 0
        self.Score = 0
        self.CampLV = 0
        self.CampExp = 0
        self.CityLV = 0
@@ -19724,6 +19783,8 @@
        self.HPMaxEx = 0
        self.HP = 0
        self.HPEx = 0
        self.RoundCnt = 0
        self.RoundInfoList = list()
        self.DefMemCnt = 0
        self.DefMemList = list()
        return
@@ -19732,7 +19793,6 @@
        length = 0
        length += self.Head.GetLength()
        length += 4
        length += 2
        length += 2
        length += 4
        length += 2
@@ -19743,6 +19803,9 @@
        length += 4
        length += 4
        length += 1
        for i in range(self.RoundCnt):
            length += self.RoundInfoList[i].GetLength()
        length += 1
        for i in range(self.DefMemCnt):
            length += self.DefMemList[i].GetLength()
@@ -19752,7 +19815,6 @@
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteDWORD(data, self.FamilyID)
        data = CommFunc.WriteWORD(data, self.Score)
        data = CommFunc.WriteWORD(data, self.CampLV)
        data = CommFunc.WriteDWORD(data, self.CampExp)
        data = CommFunc.WriteWORD(data, self.CityLV)
@@ -19762,6 +19824,9 @@
        data = CommFunc.WriteDWORD(data, self.HPMaxEx)
        data = CommFunc.WriteDWORD(data, self.HP)
        data = CommFunc.WriteDWORD(data, self.HPEx)
        data = CommFunc.WriteBYTE(data, self.RoundCnt)
        for i in range(self.RoundCnt):
            data = CommFunc.WriteString(data, self.RoundInfoList[i].GetLength(), self.RoundInfoList[i].GetBuffer())
        data = CommFunc.WriteBYTE(data, self.DefMemCnt)
        for i in range(self.DefMemCnt):
            data = CommFunc.WriteString(data, self.DefMemList[i].GetLength(), self.DefMemList[i].GetBuffer())
@@ -19771,7 +19836,6 @@
        DumpString = '''
                                Head:%s,
                                FamilyID:%d,
                                Score:%d,
                                CampLV:%d,
                                CampExp:%d,
                                CityLV:%d,
@@ -19781,13 +19845,14 @@
                                HPMaxEx:%d,
                                HP:%d,
                                HPEx:%d,
                                RoundCnt:%d,
                                RoundInfoList:%s,
                                DefMemCnt:%d,
                                DefMemList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.FamilyID,
                                self.Score,
                                self.CampLV,
                                self.CampExp,
                                self.CityLV,
@@ -19797,6 +19862,8 @@
                                self.HPMaxEx,
                                self.HP,
                                self.HPEx,
                                self.RoundCnt,
                                "...",
                                self.DefMemCnt,
                                "..."
                                )
@@ -59163,6 +59230,125 @@
#------------------------------------------------------
# C1 11 仙盟攻城战圣泉信息 #tagMCFamilyGCZSQInfo
class  tagMCFamilyGCZSQGrid(Structure):
    _pack_ = 1
    _fields_ = [
                  ("GridNum", c_ubyte),    # 格子编号,1~n
                  ("ItemID", c_int),    # 抽中的物品ID,20亿时为过关标记
                  ("ItemCount", 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.GridNum = 0
        self.ItemID = 0
        self.ItemCount = 0
        return
    def GetLength(self):
        return sizeof(tagMCFamilyGCZSQGrid)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// C1 11 仙盟攻城战圣泉信息 //tagMCFamilyGCZSQInfo:
                                GridNum:%d,
                                ItemID:%d,
                                ItemCount:%d
                                '''\
                                %(
                                self.GridNum,
                                self.ItemID,
                                self.ItemCount
                                )
        return DumpString
class  tagMCFamilyGCZSQInfo(Structure):
    Head = tagHead()
    SQLayer = 0    #(BYTE SQLayer)// 当前所在圣泉层,从1开始
    SQGirdCnt = 0    #(BYTE SQGirdCnt)
    SQGridList = list()    #(vector<tagMCFamilyGCZSQGrid> SQGridList)//圣泉当前层已抽格子信息,仅同步全部或变更的格子,前端进行差异更新,层数变更时重置本地记录
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xC1
        self.Head.SubCmd = 0x11
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.SQLayer,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.SQGirdCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.SQGirdCnt):
            temSQGridList = tagMCFamilyGCZSQGrid()
            _pos = temSQGridList.ReadData(_lpData, _pos)
            self.SQGridList.append(temSQGridList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xC1
        self.Head.SubCmd = 0x11
        self.SQLayer = 0
        self.SQGirdCnt = 0
        self.SQGridList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 1
        for i in range(self.SQGirdCnt):
            length += self.SQGridList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.SQLayer)
        data = CommFunc.WriteBYTE(data, self.SQGirdCnt)
        for i in range(self.SQGirdCnt):
            data = CommFunc.WriteString(data, self.SQGridList[i].GetLength(), self.SQGridList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                SQLayer:%d,
                                SQGirdCnt:%d,
                                SQGridList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.SQLayer,
                                self.SQGirdCnt,
                                "..."
                                )
        return DumpString
m_NAtagMCFamilyGCZSQInfo=tagMCFamilyGCZSQInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyGCZSQInfo.Head.Cmd,m_NAtagMCFamilyGCZSQInfo.Head.SubCmd))] = m_NAtagMCFamilyGCZSQInfo
#------------------------------------------------------
# C1 08 幸运云购玩家信息 #tagMCLuckyCloudBuyPlayerInfo
class  tagMCLuckyCloudBuyPlayerInfo(Structure):