ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -4708,7 +4708,7 @@
    ID = 0    #(DWORD ID)
    ID2 = 0    #(DWORD ID2)
    Name1 = ""    #(char Name1[33])//名字1,用来显示排序对象名字 
    Name2 = ""    #(char Name2[33])//名字2
    Name2 = ""    #(char Name2[65])//名字2
    Type2 = 0    #(BYTE Type2)//附加类型,用来表示排序对象的类型,比如,玩家所属职业门派,宠物类型等
    Value1 = 0    #(DWORD Value1)//排序依赖的值,比如,等级
    Value2 = 0    #(DWORD Value2)//排序依赖的值,比如,战斗力
@@ -4735,7 +4735,7 @@
        self.ID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.ID2,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.Name1,_pos = CommFunc.ReadString(_lpData, _pos,33)
        self.Name2,_pos = CommFunc.ReadString(_lpData, _pos,33)
        self.Name2,_pos = CommFunc.ReadString(_lpData, _pos,65)
        self.Type2,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Value1,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.Value2,_pos = CommFunc.ReadDWORD(_lpData, _pos)
@@ -4780,7 +4780,7 @@
        length += 4
        length += 4
        length += 33
        length += 33
        length += 65
        length += 1
        length += 4
        length += 4
@@ -4804,7 +4804,7 @@
        data = CommFunc.WriteDWORD(data, self.ID)
        data = CommFunc.WriteDWORD(data, self.ID2)
        data = CommFunc.WriteString(data, 33, self.Name1)
        data = CommFunc.WriteString(data, 33, self.Name2)
        data = CommFunc.WriteString(data, 65, self.Name2)
        data = CommFunc.WriteBYTE(data, self.Type2)
        data = CommFunc.WriteDWORD(data, self.Value1)
        data = CommFunc.WriteDWORD(data, self.Value2)
@@ -16851,7 +16851,7 @@
    ID = 0    #(DWORD ID)
    ID2 = 0    #(DWORD ID2)
    Name1 = ""    #(char Name1[33])//名字1,用来显示排序对象名字 
    Name2 = ""    #(char Name2[33])//名字2
    Name2 = ""    #(char Name2[65])//名字2
    Type2 = 0    #(BYTE Type2)//附加类型,用来表示排序对象的类型,比如,玩家所属职业门派,宠物类型等
    Value1 = 0    #(DWORD Value1)//自定义值1
    Value2 = 0    #(DWORD Value2)//自定义值2
@@ -16878,7 +16878,7 @@
        self.ID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.ID2,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.Name1,_pos = CommFunc.ReadString(_lpData, _pos,33)
        self.Name2,_pos = CommFunc.ReadString(_lpData, _pos,33)
        self.Name2,_pos = CommFunc.ReadString(_lpData, _pos,65)
        self.Type2,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Value1,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.Value2,_pos = CommFunc.ReadDWORD(_lpData, _pos)
@@ -16923,7 +16923,7 @@
        length += 4
        length += 4
        length += 33
        length += 33
        length += 65
        length += 1
        length += 4
        length += 4
@@ -16947,7 +16947,7 @@
        data = CommFunc.WriteDWORD(data, self.ID)
        data = CommFunc.WriteDWORD(data, self.ID2)
        data = CommFunc.WriteString(data, 33, self.Name1)
        data = CommFunc.WriteString(data, 33, self.Name2)
        data = CommFunc.WriteString(data, 65, self.Name2)
        data = CommFunc.WriteBYTE(data, self.Type2)
        data = CommFunc.WriteDWORD(data, self.Value1)
        data = CommFunc.WriteDWORD(data, self.Value2)
@@ -19182,6 +19182,9 @@
class  tagMCCoinToGoldCountInfo(Structure):
    Head = tagHead()
    RealFirstTime = 0    #(DWORD RealFirstTime)// 首次真实充值时间戳
    RealToday = 0    #(DWORD RealToday)// 今日真实充值coin
    RealTotal = 0    #(DWORD RealTotal)// 累计真实充值coin
    RecordCount = 0    #(WORD RecordCount)
    CTGCountInfoList = list()    #(vector<tagMCCoinToGoldCount> CTGCountInfoList)
    data = None
@@ -19195,6 +19198,9 @@
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.RealFirstTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.RealToday,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.RealTotal,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.RecordCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
        for i in range(self.RecordCount):
            temCTGCountInfoList = tagMCCoinToGoldCount()
@@ -19207,6 +19213,9 @@
        self.Head.Clear()
        self.Head.Cmd = 0xA1
        self.Head.SubCmd = 0x10
        self.RealFirstTime = 0
        self.RealToday = 0
        self.RealTotal = 0
        self.RecordCount = 0
        self.CTGCountInfoList = list()
        return
@@ -19214,6 +19223,9 @@
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 4
        length += 4
        length += 4
        length += 2
        for i in range(self.RecordCount):
            length += self.CTGCountInfoList[i].GetLength()
@@ -19223,6 +19235,9 @@
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteDWORD(data, self.RealFirstTime)
        data = CommFunc.WriteDWORD(data, self.RealToday)
        data = CommFunc.WriteDWORD(data, self.RealTotal)
        data = CommFunc.WriteWORD(data, self.RecordCount)
        for i in range(self.RecordCount):
            data = CommFunc.WriteString(data, self.CTGCountInfoList[i].GetLength(), self.CTGCountInfoList[i].GetBuffer())
@@ -19231,11 +19246,17 @@
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                RealFirstTime:%d,
                                RealToday:%d,
                                RealTotal:%d,
                                RecordCount:%d,
                                CTGCountInfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.RealFirstTime,
                                self.RealToday,
                                self.RealTotal,
                                self.RecordCount,
                                "..."
                                )
@@ -33062,6 +33083,218 @@
#------------------------------------------------------
# A8 01 获得奖励信息 #tagMCGiveAwardInfo
class  tagMCGiveAwardMoney(Structure):
    _pack_ = 1
    _fields_ = [
                  ("MoneyType", c_ubyte),
                  ("MoneyValue", 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.MoneyType = 0
        self.MoneyValue = 0
        return
    def GetLength(self):
        return sizeof(tagMCGiveAwardMoney)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A8 01 获得奖励信息 //tagMCGiveAwardInfo:
                                MoneyType:%d,
                                MoneyValue:%d
                                '''\
                                %(
                                self.MoneyType,
                                self.MoneyValue
                                )
        return DumpString
class  tagMCGiveAwardItem(Structure):
    _pack_ = 1
    _fields_ = [
                  ("ItemID", c_int),
                  ("Count", c_int),
                  ("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.Count = 0
        self.IsBind = 0
        return
    def GetLength(self):
        return sizeof(tagMCGiveAwardItem)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A8 01 获得奖励信息 //tagMCGiveAwardInfo:
                                ItemID:%d,
                                Count:%d,
                                IsBind:%d
                                '''\
                                %(
                                self.ItemID,
                                self.Count,
                                self.IsBind
                                )
        return DumpString
class  tagMCGiveAwardInfo(Structure):
    Head = tagHead()
    EventLen = 0    #(BYTE EventLen)
    EventName = ""    #(String EventName)
    Exp = 0    #(DWORD Exp)// 奖励经验,求余亿部分
    ExpPoint = 0    #(DWORD ExpPoint)// 奖励经验,整除亿部分
    MoneyLen = 0    #(BYTE MoneyLen)
    MoneyList = list()    #(vector<tagMCGiveAwardMoney> MoneyList)// 奖励货币
    ItemLen = 0    #(BYTE ItemLen)
    ItemList = list()    #(vector<tagMCGiveAwardItem> ItemList)// 奖励物品
    DataLen = 0    #(WORD DataLen)
    DataEx = ""    #(String DataEx)// 扩展信息,可由不同的Event自定义信息内容
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA8
        self.Head.SubCmd = 0x01
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.EventLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.EventName,_pos = CommFunc.ReadString(_lpData, _pos,self.EventLen)
        self.Exp,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.ExpPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.MoneyLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.MoneyLen):
            temMoneyList = tagMCGiveAwardMoney()
            _pos = temMoneyList.ReadData(_lpData, _pos)
            self.MoneyList.append(temMoneyList)
        self.ItemLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.ItemLen):
            temItemList = tagMCGiveAwardItem()
            _pos = temItemList.ReadData(_lpData, _pos)
            self.ItemList.append(temItemList)
        self.DataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.DataEx,_pos = CommFunc.ReadString(_lpData, _pos,self.DataLen)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA8
        self.Head.SubCmd = 0x01
        self.EventLen = 0
        self.EventName = ""
        self.Exp = 0
        self.ExpPoint = 0
        self.MoneyLen = 0
        self.MoneyList = list()
        self.ItemLen = 0
        self.ItemList = list()
        self.DataLen = 0
        self.DataEx = ""
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += len(self.EventName)
        length += 4
        length += 4
        length += 1
        for i in range(self.MoneyLen):
            length += self.MoneyList[i].GetLength()
        length += 1
        for i in range(self.ItemLen):
            length += self.ItemList[i].GetLength()
        length += 2
        length += len(self.DataEx)
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.EventLen)
        data = CommFunc.WriteString(data, self.EventLen, self.EventName)
        data = CommFunc.WriteDWORD(data, self.Exp)
        data = CommFunc.WriteDWORD(data, self.ExpPoint)
        data = CommFunc.WriteBYTE(data, self.MoneyLen)
        for i in range(self.MoneyLen):
            data = CommFunc.WriteString(data, self.MoneyList[i].GetLength(), self.MoneyList[i].GetBuffer())
        data = CommFunc.WriteBYTE(data, self.ItemLen)
        for i in range(self.ItemLen):
            data = CommFunc.WriteString(data, self.ItemList[i].GetLength(), self.ItemList[i].GetBuffer())
        data = CommFunc.WriteWORD(data, self.DataLen)
        data = CommFunc.WriteString(data, self.DataLen, self.DataEx)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                EventLen:%d,
                                EventName:%s,
                                Exp:%d,
                                ExpPoint:%d,
                                MoneyLen:%d,
                                MoneyList:%s,
                                ItemLen:%d,
                                ItemList:%s,
                                DataLen:%d,
                                DataEx:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.EventLen,
                                self.EventName,
                                self.Exp,
                                self.ExpPoint,
                                self.MoneyLen,
                                "...",
                                self.ItemLen,
                                "...",
                                self.DataLen,
                                self.DataEx
                                )
        return DumpString
m_NAtagMCGiveAwardInfo=tagMCGiveAwardInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCGiveAwardInfo.Head.Cmd,m_NAtagMCGiveAwardInfo.Head.SubCmd))] = m_NAtagMCGiveAwardInfo
#------------------------------------------------------
# A8 12 守护成功拾取物品 #tagMCGuradPickupItemSucc
class  tagMCGuradPickupItemSucc(Structure):
@@ -38104,6 +38337,8 @@
    DayNum = 0    #(BYTE DayNum)//天编号,从1开始,过期未签到领取的天可消耗货币补签领取
    Count = 0    #(BYTE Count)// 奖励物品数
    AwardItemList = list()    #(vector<tagMCActLoginNewItem> AwardItemList)// 奖励物品列表
    CountEx = 0    #(BYTE CountEx)// 额外奖励物品数
    AwardItemListEx = list()    #(vector<tagMCActLoginNewItem> AwardItemListEx)//  额外奖励物品列表
    data = None
    def __init__(self):
@@ -38118,12 +38353,19 @@
            temAwardItemList = tagMCActLoginNewItem()
            _pos = temAwardItemList.ReadData(_lpData, _pos)
            self.AwardItemList.append(temAwardItemList)
        self.CountEx,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.CountEx):
            temAwardItemListEx = tagMCActLoginNewItem()
            _pos = temAwardItemListEx.ReadData(_lpData, _pos)
            self.AwardItemListEx.append(temAwardItemListEx)
        return _pos
    def Clear(self):
        self.DayNum = 0
        self.Count = 0
        self.AwardItemList = list()
        self.CountEx = 0
        self.AwardItemListEx = list()
        return
    def GetLength(self):
@@ -38132,6 +38374,9 @@
        length += 1
        for i in range(self.Count):
            length += self.AwardItemList[i].GetLength()
        length += 1
        for i in range(self.CountEx):
            length += self.AwardItemListEx[i].GetLength()
        return length
@@ -38141,17 +38386,24 @@
        data = CommFunc.WriteBYTE(data, self.Count)
        for i in range(self.Count):
            data = CommFunc.WriteString(data, self.AwardItemList[i].GetLength(), self.AwardItemList[i].GetBuffer())
        data = CommFunc.WriteBYTE(data, self.CountEx)
        for i in range(self.CountEx):
            data = CommFunc.WriteString(data, self.AwardItemListEx[i].GetLength(), self.AwardItemListEx[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                DayNum:%d,
                                Count:%d,
                                AwardItemList:%s
                                AwardItemList:%s,
                                CountEx:%d,
                                AwardItemListEx:%s
                                '''\
                                %(
                                self.DayNum,
                                self.Count,
                                "...",
                                self.CountEx,
                                "..."
                                )
        return DumpString
@@ -38165,6 +38417,7 @@
    LimitLV = 0    #(WORD LimitLV)// 限制等级
    RepSignMoneyType = 0    #(BYTE RepSignMoneyType)// 补签消耗货币类型
    RepSignMoneyValue = 0    #(DWORD RepSignMoneyValue)// 补签消耗货币值
    AwardExCTGID = 0    #(WORD AwardExCTGID)// 扩展奖励礼包充值ID,大于0时代表可以购买礼包每日登录可领取额外奖励
    DayCount = 0    #(BYTE DayCount)
    AwardDayList = list()    #(vector<tagMCActLoginNewDay> AwardDayList)// 奖励天列表
    data = None
@@ -38184,6 +38437,7 @@
        self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.RepSignMoneyType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.RepSignMoneyValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.AwardExCTGID,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.DayCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.DayCount):
            temAwardDayList = tagMCActLoginNewDay()
@@ -38202,6 +38456,7 @@
        self.LimitLV = 0
        self.RepSignMoneyType = 0
        self.RepSignMoneyValue = 0
        self.AwardExCTGID = 0
        self.DayCount = 0
        self.AwardDayList = list()
        return
@@ -38215,6 +38470,7 @@
        length += 2
        length += 1
        length += 4
        length += 2
        length += 1
        for i in range(self.DayCount):
            length += self.AwardDayList[i].GetLength()
@@ -38230,6 +38486,7 @@
        data = CommFunc.WriteWORD(data, self.LimitLV)
        data = CommFunc.WriteBYTE(data, self.RepSignMoneyType)
        data = CommFunc.WriteDWORD(data, self.RepSignMoneyValue)
        data = CommFunc.WriteWORD(data, self.AwardExCTGID)
        data = CommFunc.WriteBYTE(data, self.DayCount)
        for i in range(self.DayCount):
            data = CommFunc.WriteString(data, self.AwardDayList[i].GetLength(), self.AwardDayList[i].GetBuffer())
@@ -38244,6 +38501,7 @@
                                LimitLV:%d,
                                RepSignMoneyType:%d,
                                RepSignMoneyValue:%d,
                                AwardExCTGID:%d,
                                DayCount:%d,
                                AwardDayList:%s
                                '''\
@@ -38255,6 +38513,7 @@
                                self.LimitLV,
                                self.RepSignMoneyType,
                                self.RepSignMoneyValue,
                                self.AwardExCTGID,
                                self.DayCount,
                                "..."
                                )
@@ -38274,7 +38533,8 @@
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ActNum", c_ubyte),    # 活动编号
                  ("LoginAward", c_int),    # 是否已领取,按天索引0代表第1天记录当天是否已领取
                  ("LoginAward", c_int),    # 普通奖励领取记录,按天对应二进制位记录是否已领取
                  ("LoginAwardEx", c_int),    # 额外奖励领取记录,按天对应二进制位记录是否已领取
                  ]
    def __init__(self):
@@ -38293,6 +38553,7 @@
        self.SubCmd = 0x70
        self.ActNum = 0
        self.LoginAward = 0
        self.LoginAwardEx = 0
        return
    def GetLength(self):
@@ -38306,13 +38567,15 @@
                                Cmd:%s,
                                SubCmd:%s,
                                ActNum:%d,
                                LoginAward:%d
                                LoginAward:%d,
                                LoginAwardEx:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ActNum,
                                self.LoginAward
                                self.LoginAward,
                                self.LoginAwardEx
                                )
        return DumpString
@@ -38438,6 +38701,9 @@
    RoundMax = 0    #(BYTE RoundMax)// 最大可循环轮次
    AwardCount = 0    #(BYTE AwardCount)
    AwardList = list()    #(vector<tagMCActLunhuidianAward> AwardList)// 每轮奖励列表
    CTGIDCount = 0    #(BYTE CTGIDCount)
    CTGIDList = list()    #(vector<WORD> CTGIDList)// CTGID列表
    ShopType = 0    #(WORD ShopType)// 开放商店类型,可能为0不开放
    data = None
    def __init__(self):
@@ -38455,6 +38721,11 @@
            temAwardList = tagMCActLunhuidianAward()
            _pos = temAwardList.ReadData(_lpData, _pos)
            self.AwardList.append(temAwardList)
        self.CTGIDCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.CTGIDCount):
            value,_pos=CommFunc.ReadWORD(_lpData,_pos)
            self.CTGIDList.append(value)
        self.ShopType,_pos = CommFunc.ReadWORD(_lpData, _pos)
        return _pos
    def Clear(self):
@@ -38464,6 +38735,9 @@
        self.RoundMax = 0
        self.AwardCount = 0
        self.AwardList = list()
        self.CTGIDCount = 0
        self.CTGIDList = list()
        self.ShopType = 0
        return
    def GetLength(self):
@@ -38475,6 +38749,9 @@
        length += 1
        for i in range(self.AwardCount):
            length += self.AwardList[i].GetLength()
        length += 1
        length += 2 * self.CTGIDCount
        length += 2
        return length
@@ -38487,6 +38764,10 @@
        data = CommFunc.WriteBYTE(data, self.AwardCount)
        for i in range(self.AwardCount):
            data = CommFunc.WriteString(data, self.AwardList[i].GetLength(), self.AwardList[i].GetBuffer())
        data = CommFunc.WriteBYTE(data, self.CTGIDCount)
        for i in range(self.CTGIDCount):
            data = CommFunc.WriteWORD(data, self.CTGIDList[i])
        data = CommFunc.WriteWORD(data, self.ShopType)
        return data
    def OutputString(self):
@@ -38496,7 +38777,10 @@
                                AwardTypeValue:%d,
                                RoundMax:%d,
                                AwardCount:%d,
                                AwardList:%s
                                AwardList:%s,
                                CTGIDCount:%d,
                                CTGIDList:%s,
                                ShopType:%d
                                '''\
                                %(
                                self.RoundType,
@@ -38504,7 +38788,10 @@
                                self.AwardTypeValue,
                                self.RoundMax,
                                self.AwardCount,
                                "..."
                                "...",
                                self.CTGIDCount,
                                "...",
                                self.ShopType
                                )
        return DumpString