hxp
2026-02-26 5d79b486b2974522c2d1978dc90c3081827224e0
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -7467,6 +7467,7 @@
    LuckValue = 0    #(WORD LuckValue)//当前幸运值
    TreasureCount = 0    #(DWORD TreasureCount)//已寻宝总次数
    TreasureCountToday = 0    #(DWORD TreasureCountToday)//今日已寻宝总次数
    TreasureCountTodayGold = 0    #(DWORD TreasureCountTodayGold)//今日消耗货币已寻宝总次数
    FreeCountToday = 0    #(WORD FreeCountToday)//今日已免费寻宝次数
    TreasureCntAward = 0    #(DWORD TreasureCntAward)//累计寻宝次数对应奖励领奖状态,按奖励记录索引二进制记录是否已领取
    GridLimitCnt = 0    #(BYTE GridLimitCnt)
@@ -7485,6 +7486,7 @@
        self.LuckValue,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.TreasureCount,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.TreasureCountToday,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.TreasureCountTodayGold,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.FreeCountToday,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.TreasureCntAward,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.GridLimitCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
@@ -7504,6 +7506,7 @@
        self.LuckValue = 0
        self.TreasureCount = 0
        self.TreasureCountToday = 0
        self.TreasureCountTodayGold = 0
        self.FreeCountToday = 0
        self.TreasureCntAward = 0
        self.GridLimitCnt = 0
@@ -7516,6 +7519,7 @@
        length = 0
        length += 1
        length += 2
        length += 4
        length += 4
        length += 4
        length += 2
@@ -7535,6 +7539,7 @@
        data = CommFunc.WriteWORD(data, self.LuckValue)
        data = CommFunc.WriteDWORD(data, self.TreasureCount)
        data = CommFunc.WriteDWORD(data, self.TreasureCountToday)
        data = CommFunc.WriteDWORD(data, self.TreasureCountTodayGold)
        data = CommFunc.WriteWORD(data, self.FreeCountToday)
        data = CommFunc.WriteDWORD(data, self.TreasureCntAward)
        data = CommFunc.WriteBYTE(data, self.GridLimitCnt)
@@ -7551,6 +7556,7 @@
                                LuckValue:%d,
                                TreasureCount:%d,
                                TreasureCountToday:%d,
                                TreasureCountTodayGold:%d,
                                FreeCountToday:%d,
                                TreasureCntAward:%d,
                                GridLimitCnt:%d,
@@ -7563,6 +7569,7 @@
                                self.LuckValue,
                                self.TreasureCount,
                                self.TreasureCountToday,
                                self.TreasureCountTodayGold,
                                self.FreeCountToday,
                                self.TreasureCntAward,
                                self.GridLimitCnt,
@@ -7647,8 +7654,10 @@
    TreasureType = 0    #(BYTE TreasureType)//寻宝类型
    TreasureIndex = 0    #(BYTE TreasureIndex)//寻宝索引
    CostType = 0    #(BYTE CostType)//消耗类型:0-默认仙玉;1-免费次数;2-寻宝道具
    AddMoneyType = 0    #(BYTE AddMoneyType)// 本次寻宝增加的积分货币类型,可能为0
    AddMoneyValue = 0    #(WORD AddMoneyValue)// 本次寻宝增加的积分货币值,可能为0
    AddMoneyType = 0    #(BYTE AddMoneyType)// 本次寻宝额外增加的积分货币类型,可能为0
    AddMoneyValue = 0    #(WORD AddMoneyValue)// 本次寻宝额外增加的积分货币值,可能为0
    AddItemID = 0    #(DWORD AddItemID)// 本次寻宝额外赠送的物品ID,可能为0
    AddItemCount = 0    #(DWORD AddItemCount)// 本次寻宝额外赠送的物品ID个数,可能为0
    AddTreasureLuck = 0    #(WORD AddTreasureLuck)// 本次寻宝增加的幸运值
    TreasureResultLen = 0    #(WORD TreasureResultLen)
    TreasureResult = ""    #(String TreasureResult)//  获得物品结果[[格子编号, 物品ID,个数,是否绑定], ...]
@@ -7668,6 +7677,8 @@
        self.CostType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.AddMoneyType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.AddMoneyValue,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.AddItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.AddItemCount,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.AddTreasureLuck,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.TreasureResultLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.TreasureResult,_pos = CommFunc.ReadString(_lpData, _pos,self.TreasureResultLen)
@@ -7683,6 +7694,8 @@
        self.CostType = 0
        self.AddMoneyType = 0
        self.AddMoneyValue = 0
        self.AddItemID = 0
        self.AddItemCount = 0
        self.AddTreasureLuck = 0
        self.TreasureResultLen = 0
        self.TreasureResult = ""
@@ -7696,6 +7709,8 @@
        length += 1
        length += 1
        length += 2
        length += 4
        length += 4
        length += 2
        length += 2
        length += len(self.TreasureResult)
@@ -7710,6 +7725,8 @@
        data = CommFunc.WriteBYTE(data, self.CostType)
        data = CommFunc.WriteBYTE(data, self.AddMoneyType)
        data = CommFunc.WriteWORD(data, self.AddMoneyValue)
        data = CommFunc.WriteDWORD(data, self.AddItemID)
        data = CommFunc.WriteDWORD(data, self.AddItemCount)
        data = CommFunc.WriteWORD(data, self.AddTreasureLuck)
        data = CommFunc.WriteWORD(data, self.TreasureResultLen)
        data = CommFunc.WriteString(data, self.TreasureResultLen, self.TreasureResult)
@@ -7723,6 +7740,8 @@
                                CostType:%d,
                                AddMoneyType:%d,
                                AddMoneyValue:%d,
                                AddItemID:%d,
                                AddItemCount:%d,
                                AddTreasureLuck:%d,
                                TreasureResultLen:%d,
                                TreasureResult:%s
@@ -7734,6 +7753,8 @@
                                self.CostType,
                                self.AddMoneyType,
                                self.AddMoneyValue,
                                self.AddItemID,
                                self.AddItemCount,
                                self.AddTreasureLuck,
                                self.TreasureResultLen,
                                self.TreasureResult
@@ -17330,259 +17351,108 @@
#------------------------------------------------------
# AA 69 登录活动信息新 #tagMCActLoginNew
# AA 21 武将登场活动信息 #tagSCActHeroAppearInfo
class  tagMCActLoginNewItem(Structure):
    _pack_ = 1
    _fields_ = [
                  ("ItemID", c_int),
                  ("ItemCount", c_ushort),
                  ("IsBind", c_ubyte),
                  ]
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.ItemID = 0
        self.ItemCount = 0
        self.IsBind = 0
        return
    def GetLength(self):
        return sizeof(tagMCActLoginNewItem)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 69 登录活动信息新 //tagMCActLoginNew:
                                ItemID:%d,
                                ItemCount:%d,
                                IsBind:%d
                                '''\
                                %(
                                self.ItemID,
                                self.ItemCount,
                                self.IsBind
                                )
        return DumpString
class  tagMCActLoginNewDay(Structure):
    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):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.DayNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.Count):
            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):
        length = 0
        length += 1
        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
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteBYTE(data, self.DayNum)
        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,
                                CountEx:%d,
                                AwardItemListEx:%s
                                '''\
                                %(
                                self.DayNum,
                                self.Count,
                                "...",
                                self.CountEx,
                                "..."
                                )
        return DumpString
class  tagMCActLoginNew(Structure):
class  tagSCActHeroAppearInfo(Structure):
    Head = tagHead()
    ActType = 0    #(BYTE ActType)// 活动类型,用于关联活动相关模块用,如签到、任务等
    ActNum = 0    #(BYTE ActNum)// 活动编号
    StartDate = ""    #(char StartDate[10])// 开始日期 y-m-d
    EndtDate = ""    #(char EndtDate[10])// 结束日期 y-m-d
    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)// 奖励天列表
    CfgID = 0    #(WORD CfgID)// 活动时间表配置ID
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x69
        self.Head.SubCmd = 0x21
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.ActType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
        self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
        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()
            _pos = temAwardDayList.ReadData(_lpData, _pos)
            self.AwardDayList.append(temAwardDayList)
        self.CfgID,_pos = CommFunc.ReadWORD(_lpData, _pos)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x69
        self.Head.SubCmd = 0x21
        self.ActType = 0
        self.ActNum = 0
        self.StartDate = ""
        self.EndtDate = ""
        self.LimitLV = 0
        self.RepSignMoneyType = 0
        self.RepSignMoneyValue = 0
        self.AwardExCTGID = 0
        self.DayCount = 0
        self.AwardDayList = list()
        self.CfgID = 0
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 1
        length += 10
        length += 10
        length += 2
        length += 1
        length += 4
        length += 2
        length += 1
        for i in range(self.DayCount):
            length += self.AwardDayList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.ActType)
        data = CommFunc.WriteBYTE(data, self.ActNum)
        data = CommFunc.WriteString(data, 10, self.StartDate)
        data = CommFunc.WriteString(data, 10, self.EndtDate)
        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())
        data = CommFunc.WriteWORD(data, self.CfgID)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                ActType:%d,
                                ActNum:%d,
                                StartDate:%s,
                                EndtDate:%s,
                                LimitLV:%d,
                                RepSignMoneyType:%d,
                                RepSignMoneyValue:%d,
                                AwardExCTGID:%d,
                                DayCount:%d,
                                AwardDayList:%s
                                CfgID:%d
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.ActType,
                                self.ActNum,
                                self.StartDate,
                                self.EndtDate,
                                self.LimitLV,
                                self.RepSignMoneyType,
                                self.RepSignMoneyValue,
                                self.AwardExCTGID,
                                self.DayCount,
                                "..."
                                self.CfgID
                                )
        return DumpString
m_NAtagMCActLoginNew=tagMCActLoginNew()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActLoginNew.Head.Cmd,m_NAtagMCActLoginNew.Head.SubCmd))] = m_NAtagMCActLoginNew
m_NAtagSCActHeroAppearInfo=tagSCActHeroAppearInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCActHeroAppearInfo.Head.Cmd,m_NAtagSCActHeroAppearInfo.Head.SubCmd))] = m_NAtagSCActHeroAppearInfo
#------------------------------------------------------
# AA 70 登录活动玩家信息新 #tagMCActLoginPlayerInfoNew
# AA 22 武将登场活动玩家信息 #tagSCActHeroAppearPlayerInfo
class  tagMCActLoginPlayerInfoNew(Structure):
class  tagSCActHeroAppearPlayerInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ActNum", c_ubyte),    # 活动编号
                  ("LoginAward", c_int),    # 普通奖励领取记录,按天对应二进制位记录是否已领取
                  ("LoginAwardEx", c_int),    # 额外奖励领取记录,按天对应二进制位记录是否已领取
                  ("StarHeroIndex", c_ubyte),    # 升星计划选择的武将ID索引
                  ("StarFreeAward", c_int),    # 升星计划免费奖励记录,按奖励记录索引二进制位运算记录是否已领取
                  ("CallHeroIndex", c_ubyte),    # 招募选择的武将ID索引
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAA
        self.SubCmd = 0x70
        self.SubCmd = 0x22
        return
    def ReadData(self, stringData, _pos=0, _len=0):
@@ -17592,38 +17462,41 @@
    def Clear(self):
        self.Cmd = 0xAA
        self.SubCmd = 0x70
        self.SubCmd = 0x22
        self.ActNum = 0
        self.LoginAward = 0
        self.LoginAwardEx = 0
        self.StarHeroIndex = 0
        self.StarFreeAward = 0
        self.CallHeroIndex = 0
        return
    def GetLength(self):
        return sizeof(tagMCActLoginPlayerInfoNew)
        return sizeof(tagSCActHeroAppearPlayerInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 70 登录活动玩家信息新 //tagMCActLoginPlayerInfoNew:
        DumpString = '''// AA 22 武将登场活动玩家信息 //tagSCActHeroAppearPlayerInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                ActNum:%d,
                                LoginAward:%d,
                                LoginAwardEx:%d
                                StarHeroIndex:%d,
                                StarFreeAward:%d,
                                CallHeroIndex:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ActNum,
                                self.LoginAward,
                                self.LoginAwardEx
                                self.StarHeroIndex,
                                self.StarFreeAward,
                                self.CallHeroIndex
                                )
        return DumpString
m_NAtagMCActLoginPlayerInfoNew=tagMCActLoginPlayerInfoNew()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActLoginPlayerInfoNew.Cmd,m_NAtagMCActLoginPlayerInfoNew.SubCmd))] = m_NAtagMCActLoginPlayerInfoNew
m_NAtagSCActHeroAppearPlayerInfo=tagSCActHeroAppearPlayerInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCActHeroAppearPlayerInfo.Cmd,m_NAtagSCActHeroAppearPlayerInfo.SubCmd))] = m_NAtagSCActHeroAppearPlayerInfo
#------------------------------------------------------
@@ -18609,6 +18482,66 @@
#------------------------------------------------------
# AA 20 活动签到奖励信息 #tagSCActSignPlayerInfo
class  tagSCActSignPlayerInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ActType", c_ubyte),    # 活动类型
                  ("ActNum", c_ubyte),    # 活动编号
                  ("SignAward", c_int),    # 奖励领取记录,按天对应二进制位记录是否已领取
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAA
        self.SubCmd = 0x20
        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 = 0xAA
        self.SubCmd = 0x20
        self.ActType = 0
        self.ActNum = 0
        self.SignAward = 0
        return
    def GetLength(self):
        return sizeof(tagSCActSignPlayerInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 20 活动签到奖励信息 //tagSCActSignPlayerInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                ActType:%d,
                                ActNum:%d,
                                SignAward:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ActType,
                                self.ActNum,
                                self.SignAward
                                )
        return DumpString
m_NAtagSCActSignPlayerInfo=tagSCActSignPlayerInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCActSignPlayerInfo.Cmd,m_NAtagSCActSignPlayerInfo.SubCmd))] = m_NAtagSCActSignPlayerInfo
#------------------------------------------------------
# AA 50 单笔累充活动信息 #tagMCActSingleRechargeInfo
class  tagMCActSingleRechargeAwardItem(Structure):