From fbc7b73be513ac507ad43f1586c8f6f865049d0d Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 03 十二月 2025 11:18:00 +0800
Subject: [PATCH] 358 【内政】红颜系统-服务端(游历裂纹改为指定物品奖励必定出现;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py | 1962 +++-------------------------------------------------------
 1 files changed, 125 insertions(+), 1,837 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index ad5e796..b8f7b67 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -25067,58 +25067,6 @@
 
 
 #------------------------------------------------------
-# AA 24 每日免费直购礼包信息 #tagMCDayFreeGoldGiftState
-
-class  tagMCDayFreeGoldGiftState(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("DayFreeGoldGiftState", c_ubyte),    #每日免费直购礼包是否已领奖 0-未领 1-已领
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xAA
-        self.SubCmd = 0x24
-        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 = 0x24
-        self.DayFreeGoldGiftState = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagMCDayFreeGoldGiftState)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// AA 24 每日免费直购礼包信息 //tagMCDayFreeGoldGiftState:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                DayFreeGoldGiftState:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.DayFreeGoldGiftState
-                                )
-        return DumpString
-
-
-m_NAtagMCDayFreeGoldGiftState=tagMCDayFreeGoldGiftState()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCDayFreeGoldGiftState.Cmd,m_NAtagMCDayFreeGoldGiftState.SubCmd))] = m_NAtagMCDayFreeGoldGiftState
-
-
-#------------------------------------------------------
 # AA 42 节日登录奖励活动信息 #tagMCFeastLoginInfo
 
 class  tagMCFeastLoginDayAwardItem(Structure):
@@ -25362,460 +25310,6 @@
 
 m_NAtagMCFeastLoginPlayerInfo=tagMCFeastLoginPlayerInfo()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastLoginPlayerInfo.Cmd,m_NAtagMCFeastLoginPlayerInfo.SubCmd))] = m_NAtagMCFeastLoginPlayerInfo
-
-
-#------------------------------------------------------
-# AA 46 节日游历活动信息 #tagMCFeastTravelInfo
-
-class  tagMCFeastTravelAwardItem(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(tagMCFeastTravelAwardItem)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// AA 46 节日游历活动信息 //tagMCFeastTravelInfo:
-                                ItemID:%d,
-                                ItemCount:%d,
-                                IsBind:%d
-                                '''\
-                                %(
-                                self.ItemID,
-                                self.ItemCount,
-                                self.IsBind
-                                )
-        return DumpString
-
-
-class  tagMCFeastTravelAward(Structure):
-    AwardIndex = 0    #(BYTE AwardIndex)//游历奖励索引
-    NeedTravelPoint = 0    #(WORD NeedTravelPoint)//单次领奖所需游历值
-    AwardCountMax = 0    #(WORD AwardCountMax)//最大可领取次数,0代表不限
-    AwardItemCount = 0    #(BYTE AwardItemCount)//奖励物品数
-    AwardItemList = list()    #(vector<tagMCFeastTravelAwardItem> AwardItemList)//奖励物品列表
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        self.AwardIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        self.NeedTravelPoint,_pos = CommFunc.ReadWORD(_lpData, _pos)
-        self.AwardCountMax,_pos = CommFunc.ReadWORD(_lpData, _pos)
-        self.AwardItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        for i in range(self.AwardItemCount):
-            temAwardItemList = tagMCFeastTravelAwardItem()
-            _pos = temAwardItemList.ReadData(_lpData, _pos)
-            self.AwardItemList.append(temAwardItemList)
-        return _pos
-
-    def Clear(self):
-        self.AwardIndex = 0
-        self.NeedTravelPoint = 0
-        self.AwardCountMax = 0
-        self.AwardItemCount = 0
-        self.AwardItemList = list()
-        return
-
-    def GetLength(self):
-        length = 0
-        length += 1
-        length += 2
-        length += 2
-        length += 1
-        for i in range(self.AwardItemCount):
-            length += self.AwardItemList[i].GetLength()
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteBYTE(data, self.AwardIndex)
-        data = CommFunc.WriteWORD(data, self.NeedTravelPoint)
-        data = CommFunc.WriteWORD(data, self.AwardCountMax)
-        data = CommFunc.WriteBYTE(data, self.AwardItemCount)
-        for i in range(self.AwardItemCount):
-            data = CommFunc.WriteString(data, self.AwardItemList[i].GetLength(), self.AwardItemList[i].GetBuffer())
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                AwardIndex:%d,
-                                NeedTravelPoint:%d,
-                                AwardCountMax:%d,
-                                AwardItemCount:%d,
-                                AwardItemList:%s
-                                '''\
-                                %(
-                                self.AwardIndex,
-                                self.NeedTravelPoint,
-                                self.AwardCountMax,
-                                self.AwardItemCount,
-                                "..."
-                                )
-        return DumpString
-
-
-class  tagMCFeastTravelTask(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("TravelTaskID", c_ubyte),    #游历任务ID
-                  ("FinishNeedValue", c_ushort),    #单次完成所需进度
-                  ("FinishTimeMax", c_ushort),    #最大可完成次数,0代表不限
-                  ("AddTravelPoint", 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.TravelTaskID = 0
-        self.FinishNeedValue = 0
-        self.FinishTimeMax = 0
-        self.AddTravelPoint = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagMCFeastTravelTask)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// AA 46 节日游历活动信息 //tagMCFeastTravelInfo:
-                                TravelTaskID:%d,
-                                FinishNeedValue:%d,
-                                FinishTimeMax:%d,
-                                AddTravelPoint:%d
-                                '''\
-                                %(
-                                self.TravelTaskID,
-                                self.FinishNeedValue,
-                                self.FinishTimeMax,
-                                self.AddTravelPoint
-                                )
-        return DumpString
-
-
-class  tagMCFeastTravelInfo(Structure):
-    Head = tagHead()
-    StartDate = ""    #(char StartDate[10])// 开始日期 y-m-d
-    EndtDate = ""    #(char EndtDate[10])// 结束日期 y-m-d
-    LimitLV = 0    #(WORD LimitLV)// 限制等级
-    ResetType = 0    #(BYTE ResetType)// 重置类型,0-0点重置;1-5点开,5点重置;2-5点开,0点重置
-    TravelTaskCount = 0    #(BYTE TravelTaskCount)// 游历任务数
-    TravelTaskList = list()    #(vector<tagMCFeastTravelTask> TravelTaskList)//游历任务信息列表
-    TravelAwardCount = 0    #(BYTE TravelAwardCount)// 游历奖励数
-    TravelAwardList = list()    #(vector<tagMCFeastTravelAward> TravelAwardList)//游历奖励信息列表
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xAA
-        self.Head.SubCmd = 0x46
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_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.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        self.TravelTaskCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        for i in range(self.TravelTaskCount):
-            temTravelTaskList = tagMCFeastTravelTask()
-            _pos = temTravelTaskList.ReadData(_lpData, _pos)
-            self.TravelTaskList.append(temTravelTaskList)
-        self.TravelAwardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        for i in range(self.TravelAwardCount):
-            temTravelAwardList = tagMCFeastTravelAward()
-            _pos = temTravelAwardList.ReadData(_lpData, _pos)
-            self.TravelAwardList.append(temTravelAwardList)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xAA
-        self.Head.SubCmd = 0x46
-        self.StartDate = ""
-        self.EndtDate = ""
-        self.LimitLV = 0
-        self.ResetType = 0
-        self.TravelTaskCount = 0
-        self.TravelTaskList = list()
-        self.TravelAwardCount = 0
-        self.TravelAwardList = list()
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 10
-        length += 10
-        length += 2
-        length += 1
-        length += 1
-        for i in range(self.TravelTaskCount):
-            length += self.TravelTaskList[i].GetLength()
-        length += 1
-        for i in range(self.TravelAwardCount):
-            length += self.TravelAwardList[i].GetLength()
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        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.ResetType)
-        data = CommFunc.WriteBYTE(data, self.TravelTaskCount)
-        for i in range(self.TravelTaskCount):
-            data = CommFunc.WriteString(data, self.TravelTaskList[i].GetLength(), self.TravelTaskList[i].GetBuffer())
-        data = CommFunc.WriteBYTE(data, self.TravelAwardCount)
-        for i in range(self.TravelAwardCount):
-            data = CommFunc.WriteString(data, self.TravelAwardList[i].GetLength(), self.TravelAwardList[i].GetBuffer())
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                StartDate:%s,
-                                EndtDate:%s,
-                                LimitLV:%d,
-                                ResetType:%d,
-                                TravelTaskCount:%d,
-                                TravelTaskList:%s,
-                                TravelAwardCount:%d,
-                                TravelAwardList:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.StartDate,
-                                self.EndtDate,
-                                self.LimitLV,
-                                self.ResetType,
-                                self.TravelTaskCount,
-                                "...",
-                                self.TravelAwardCount,
-                                "..."
-                                )
-        return DumpString
-
-
-m_NAtagMCFeastTravelInfo=tagMCFeastTravelInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastTravelInfo.Head.Cmd,m_NAtagMCFeastTravelInfo.Head.SubCmd))] = m_NAtagMCFeastTravelInfo
-
-
-#------------------------------------------------------
-# AA 47 节日游历活动玩家信息 #tagMCFeastTravelPlayerInfo
-
-class  tagMCFeastTravelPlayerAward(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("AwardIndex", c_ubyte),    #游历奖励索引
-                  ("GetAwardCount", c_int),    #已领取次数;前端判断是否可领取: 总游历值 >=  (已领取次数 + 1)  * 单次所需游历值
-                  ]
-
-    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.AwardIndex = 0
-        self.GetAwardCount = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagMCFeastTravelPlayerAward)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// AA 47 节日游历活动玩家信息 //tagMCFeastTravelPlayerInfo:
-                                AwardIndex:%d,
-                                GetAwardCount:%d
-                                '''\
-                                %(
-                                self.AwardIndex,
-                                self.GetAwardCount
-                                )
-        return DumpString
-
-
-class  tagMCFeastTravelPlayerTask(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("TravelTaskID", c_ubyte),    #游历任务ID
-                  ("TravelValue", c_int),    #当前进度值,一直累加
-                  ("FinishCount", c_ubyte),    #当前已完成次数; 前端计算未完成次数的进度值=max(0, 当前进度值 - (完成次数 * 单次所需进度))
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        return
-
-    def ReadData(self, stringData, _pos=0, _len=0):
-        self.Clear()
-        memmove(addressof(self), stringData[_pos:], self.GetLength())
-        return _pos + self.GetLength()
-
-    def Clear(self):
-        self.TravelTaskID = 0
-        self.TravelValue = 0
-        self.FinishCount = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagMCFeastTravelPlayerTask)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// AA 47 节日游历活动玩家信息 //tagMCFeastTravelPlayerInfo:
-                                TravelTaskID:%d,
-                                TravelValue:%d,
-                                FinishCount:%d
-                                '''\
-                                %(
-                                self.TravelTaskID,
-                                self.TravelValue,
-                                self.FinishCount
-                                )
-        return DumpString
-
-
-class  tagMCFeastTravelPlayerInfo(Structure):
-    Head = tagHead()
-    TravelPoint = 0    #(DWORD TravelPoint)//当前总游历值,一直累加,不会扣的
-    TravelPlayerTaskCount = 0    #(BYTE TravelPlayerTaskCount)// 游历任务数,不一定有同步,有同步数据则替换即可
-    TravelPlayerTaskList = list()    #(vector<tagMCFeastTravelPlayerTask> TravelPlayerTaskList)//游历任务信息列表
-    TravelPlayerAwardCount = 0    #(BYTE TravelPlayerAwardCount)// 游历奖励数,不一定有同步,有同步数据则替换即可
-    TravelPlayerAwardList = list()    #(vector<tagMCFeastTravelPlayerAward> TravelPlayerAwardList)//游历奖励信息列表
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xAA
-        self.Head.SubCmd = 0x47
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.TravelPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.TravelPlayerTaskCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        for i in range(self.TravelPlayerTaskCount):
-            temTravelPlayerTaskList = tagMCFeastTravelPlayerTask()
-            _pos = temTravelPlayerTaskList.ReadData(_lpData, _pos)
-            self.TravelPlayerTaskList.append(temTravelPlayerTaskList)
-        self.TravelPlayerAwardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        for i in range(self.TravelPlayerAwardCount):
-            temTravelPlayerAwardList = tagMCFeastTravelPlayerAward()
-            _pos = temTravelPlayerAwardList.ReadData(_lpData, _pos)
-            self.TravelPlayerAwardList.append(temTravelPlayerAwardList)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xAA
-        self.Head.SubCmd = 0x47
-        self.TravelPoint = 0
-        self.TravelPlayerTaskCount = 0
-        self.TravelPlayerTaskList = list()
-        self.TravelPlayerAwardCount = 0
-        self.TravelPlayerAwardList = list()
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 4
-        length += 1
-        for i in range(self.TravelPlayerTaskCount):
-            length += self.TravelPlayerTaskList[i].GetLength()
-        length += 1
-        for i in range(self.TravelPlayerAwardCount):
-            length += self.TravelPlayerAwardList[i].GetLength()
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteDWORD(data, self.TravelPoint)
-        data = CommFunc.WriteBYTE(data, self.TravelPlayerTaskCount)
-        for i in range(self.TravelPlayerTaskCount):
-            data = CommFunc.WriteString(data, self.TravelPlayerTaskList[i].GetLength(), self.TravelPlayerTaskList[i].GetBuffer())
-        data = CommFunc.WriteBYTE(data, self.TravelPlayerAwardCount)
-        for i in range(self.TravelPlayerAwardCount):
-            data = CommFunc.WriteString(data, self.TravelPlayerAwardList[i].GetLength(), self.TravelPlayerAwardList[i].GetBuffer())
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                TravelPoint:%d,
-                                TravelPlayerTaskCount:%d,
-                                TravelPlayerTaskList:%s,
-                                TravelPlayerAwardCount:%d,
-                                TravelPlayerAwardList:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.TravelPoint,
-                                self.TravelPlayerTaskCount,
-                                "...",
-                                self.TravelPlayerAwardCount,
-                                "..."
-                                )
-        return DumpString
-
-
-m_NAtagMCFeastTravelPlayerInfo=tagMCFeastTravelPlayerInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastTravelPlayerInfo.Head.Cmd,m_NAtagMCFeastTravelPlayerInfo.Head.SubCmd))] = m_NAtagMCFeastTravelPlayerInfo
 
 
 #------------------------------------------------------
@@ -28151,58 +27645,6 @@
 
 m_NAtagMCNewXJSDRecharge=tagMCNewXJSDRecharge()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNewXJSDRecharge.Cmd,m_NAtagMCNewXJSDRecharge.SubCmd))] = m_NAtagMCNewXJSDRecharge
-
-
-#------------------------------------------------------
-# AA 04 创角在线充值特惠信息 #tagMCOnlineRechargeTH
-
-class  tagMCOnlineRechargeTH(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("AwardState", c_ubyte),    #是否已领取奖励
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xAA
-        self.SubCmd = 0x04
-        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 = 0x04
-        self.AwardState = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagMCOnlineRechargeTH)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// AA 04 创角在线充值特惠信息 //tagMCOnlineRechargeTH:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                AwardState:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.AwardState
-                                )
-        return DumpString
-
-
-m_NAtagMCOnlineRechargeTH=tagMCOnlineRechargeTH()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCOnlineRechargeTH.Cmd,m_NAtagMCOnlineRechargeTH.SubCmd))] = m_NAtagMCOnlineRechargeTH
 
 
 #------------------------------------------------------
@@ -30647,896 +30089,6 @@
 
 
 #------------------------------------------------------
-# B0 27 活跃放置信息 #tagMCActivityPlaceInfo
-
-class  tagMCActivityPlaceInfo(Structure):
-    Head = tagHead()
-    StartTime = 0    #(DWORD StartTime)// 开始探索time时间戳,完成一次探索会自动下一次探索并更新该时间
-    PlaceCount = 0    #(BYTE PlaceCount)// 剩余未完成探索次数
-    RewardCount = 0    #(BYTE RewardCount)// 累计未领取探索奖励次数
-    RewardLen = 0    #(BYTE RewardLen)
-    RewardInfo = ""    #(String RewardInfo)//累计未领取探索奖励 [[itemID, count], ...]
-    TodayExp = 0    #(DWORD TodayExp)
-    TodayExpPoint = 0    #(DWORD TodayExpPoint)
-    YestordayExp = 0    #(DWORD YestordayExp)
-    YestordayExpPoint = 0    #(DWORD YestordayExpPoint)
-    TotalCount = 0    #(DWORD TotalCount)// 累计活跃放置次数
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xB0
-        self.Head.SubCmd = 0x27
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.StartTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.PlaceCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        self.RewardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        self.RewardLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        self.RewardInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.RewardLen)
-        self.TodayExp,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.TodayExpPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.YestordayExp,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.YestordayExpPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.TotalCount,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xB0
-        self.Head.SubCmd = 0x27
-        self.StartTime = 0
-        self.PlaceCount = 0
-        self.RewardCount = 0
-        self.RewardLen = 0
-        self.RewardInfo = ""
-        self.TodayExp = 0
-        self.TodayExpPoint = 0
-        self.YestordayExp = 0
-        self.YestordayExpPoint = 0
-        self.TotalCount = 0
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 4
-        length += 1
-        length += 1
-        length += 1
-        length += len(self.RewardInfo)
-        length += 4
-        length += 4
-        length += 4
-        length += 4
-        length += 4
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteDWORD(data, self.StartTime)
-        data = CommFunc.WriteBYTE(data, self.PlaceCount)
-        data = CommFunc.WriteBYTE(data, self.RewardCount)
-        data = CommFunc.WriteBYTE(data, self.RewardLen)
-        data = CommFunc.WriteString(data, self.RewardLen, self.RewardInfo)
-        data = CommFunc.WriteDWORD(data, self.TodayExp)
-        data = CommFunc.WriteDWORD(data, self.TodayExpPoint)
-        data = CommFunc.WriteDWORD(data, self.YestordayExp)
-        data = CommFunc.WriteDWORD(data, self.YestordayExpPoint)
-        data = CommFunc.WriteDWORD(data, self.TotalCount)
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                StartTime:%d,
-                                PlaceCount:%d,
-                                RewardCount:%d,
-                                RewardLen:%d,
-                                RewardInfo:%s,
-                                TodayExp:%d,
-                                TodayExpPoint:%d,
-                                YestordayExp:%d,
-                                YestordayExpPoint:%d,
-                                TotalCount:%d
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.StartTime,
-                                self.PlaceCount,
-                                self.RewardCount,
-                                self.RewardLen,
-                                self.RewardInfo,
-                                self.TodayExp,
-                                self.TodayExpPoint,
-                                self.YestordayExp,
-                                self.YestordayExpPoint,
-                                self.TotalCount
-                                )
-        return DumpString
-
-
-m_NAtagMCActivityPlaceInfo=tagMCActivityPlaceInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActivityPlaceInfo.Head.Cmd,m_NAtagMCActivityPlaceInfo.Head.SubCmd))] = m_NAtagMCActivityPlaceInfo
-
-
-#------------------------------------------------------
-# B0 01 新增协助 #tagGCAssistInfoList
-
-class  tagGCAssistInfo(Structure):
-    AssistGUID = ""    #(char AssistGUID[40])//协助GUID
-    PlayerID = 0    #(DWORD PlayerID)
-    PlayerName = ""    #(char PlayerName[33])
-    Job = 0    #(BYTE Job)
-    LV = 0    #(WORD LV)//等级
-    RealmLV = 0    #(BYTE RealmLV)//境界
-    Face = 0    #(DWORD Face)//基本脸型
-    FacePic = 0    #(DWORD FacePic)//头像框
-    MapID = 0    #(DWORD MapID)
-    LineID = 0    #(DWORD LineID)
-    NPCID = 0    #(DWORD NPCID)
-    ExDataLen = 0    #(WORD ExDataLen)
-    ExData = ""    #(String ExData)//其他自定义数据
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        self.AssistGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
-        self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
-        self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
-        self.RealmLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.LineID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.NPCID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.ExDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
-        self.ExData,_pos = CommFunc.ReadString(_lpData, _pos,self.ExDataLen)
-        return _pos
-
-    def Clear(self):
-        self.AssistGUID = ""
-        self.PlayerID = 0
-        self.PlayerName = ""
-        self.Job = 0
-        self.LV = 0
-        self.RealmLV = 0
-        self.Face = 0
-        self.FacePic = 0
-        self.MapID = 0
-        self.LineID = 0
-        self.NPCID = 0
-        self.ExDataLen = 0
-        self.ExData = ""
-        return
-
-    def GetLength(self):
-        length = 0
-        length += 40
-        length += 4
-        length += 33
-        length += 1
-        length += 2
-        length += 1
-        length += 4
-        length += 4
-        length += 4
-        length += 4
-        length += 4
-        length += 2
-        length += len(self.ExData)
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, 40, self.AssistGUID)
-        data = CommFunc.WriteDWORD(data, self.PlayerID)
-        data = CommFunc.WriteString(data, 33, self.PlayerName)
-        data = CommFunc.WriteBYTE(data, self.Job)
-        data = CommFunc.WriteWORD(data, self.LV)
-        data = CommFunc.WriteBYTE(data, self.RealmLV)
-        data = CommFunc.WriteDWORD(data, self.Face)
-        data = CommFunc.WriteDWORD(data, self.FacePic)
-        data = CommFunc.WriteDWORD(data, self.MapID)
-        data = CommFunc.WriteDWORD(data, self.LineID)
-        data = CommFunc.WriteDWORD(data, self.NPCID)
-        data = CommFunc.WriteWORD(data, self.ExDataLen)
-        data = CommFunc.WriteString(data, self.ExDataLen, self.ExData)
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                AssistGUID:%s,
-                                PlayerID:%d,
-                                PlayerName:%s,
-                                Job:%d,
-                                LV:%d,
-                                RealmLV:%d,
-                                Face:%d,
-                                FacePic:%d,
-                                MapID:%d,
-                                LineID:%d,
-                                NPCID:%d,
-                                ExDataLen:%d,
-                                ExData:%s
-                                '''\
-                                %(
-                                self.AssistGUID,
-                                self.PlayerID,
-                                self.PlayerName,
-                                self.Job,
-                                self.LV,
-                                self.RealmLV,
-                                self.Face,
-                                self.FacePic,
-                                self.MapID,
-                                self.LineID,
-                                self.NPCID,
-                                self.ExDataLen,
-                                self.ExData
-                                )
-        return DumpString
-
-
-class  tagGCAssistInfoList(Structure):
-    Head = tagHead()
-    Count = 0    #(BYTE Count)
-    AssistInfoList = list()    #(vector<tagGCAssistInfo> AssistInfoList)
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xB0
-        self.Head.SubCmd = 0x01
-        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):
-            temAssistInfoList = tagGCAssistInfo()
-            _pos = temAssistInfoList.ReadData(_lpData, _pos)
-            self.AssistInfoList.append(temAssistInfoList)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xB0
-        self.Head.SubCmd = 0x01
-        self.Count = 0
-        self.AssistInfoList = list()
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 1
-        for i in range(self.Count):
-            length += self.AssistInfoList[i].GetLength()
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteBYTE(data, self.Count)
-        for i in range(self.Count):
-            data = CommFunc.WriteString(data, self.AssistInfoList[i].GetLength(), self.AssistInfoList[i].GetBuffer())
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                Count:%d,
-                                AssistInfoList:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.Count,
-                                "..."
-                                )
-        return DumpString
-
-
-m_NAtagGCAssistInfoList=tagGCAssistInfoList()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAssistInfoList.Head.Cmd,m_NAtagGCAssistInfoList.Head.SubCmd))] = m_NAtagGCAssistInfoList
-
-
-#------------------------------------------------------
-# B0 03 正在进行中的协助 #tagGCAssistingInfo
-
-class  tagGCAssistingInfo(Structure):
-    Head = tagHead()
-    AssistGUID = ""    #(char AssistGUID[40])//协助GUID
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xB0
-        self.Head.SubCmd = 0x03
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.AssistGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xB0
-        self.Head.SubCmd = 0x03
-        self.AssistGUID = ""
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 40
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteString(data, 40, self.AssistGUID)
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                AssistGUID:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.AssistGUID
-                                )
-        return DumpString
-
-
-m_NAtagGCAssistingInfo=tagGCAssistingInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAssistingInfo.Head.Cmd,m_NAtagGCAssistingInfo.Head.SubCmd))] = m_NAtagGCAssistingInfo
-
-
-#------------------------------------------------------
-# B0 08 协助结束 #tagGCAssistOver
-
-class  tagGCAssistOver(Structure):
-    Head = tagHead()
-    IsTagPlayerReason = 0    #(BYTE IsTagPlayerReason)//是否发布方原因
-    ReasonLen = 0    #(BYTE ReasonLen)
-    Reason = ""    #(String Reason)//原因
-    AssistGUID = ""    #(char AssistGUID[40])//协助GUID
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xB0
-        self.Head.SubCmd = 0x08
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.IsTagPlayerReason,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        self.ReasonLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        self.Reason,_pos = CommFunc.ReadString(_lpData, _pos,self.ReasonLen)
-        self.AssistGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xB0
-        self.Head.SubCmd = 0x08
-        self.IsTagPlayerReason = 0
-        self.ReasonLen = 0
-        self.Reason = ""
-        self.AssistGUID = ""
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 1
-        length += 1
-        length += len(self.Reason)
-        length += 40
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteBYTE(data, self.IsTagPlayerReason)
-        data = CommFunc.WriteBYTE(data, self.ReasonLen)
-        data = CommFunc.WriteString(data, self.ReasonLen, self.Reason)
-        data = CommFunc.WriteString(data, 40, self.AssistGUID)
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                IsTagPlayerReason:%d,
-                                ReasonLen:%d,
-                                Reason:%s,
-                                AssistGUID:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.IsTagPlayerReason,
-                                self.ReasonLen,
-                                self.Reason,
-                                self.AssistGUID
-                                )
-        return DumpString
-
-
-m_NAtagGCAssistOver=tagGCAssistOver()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCAssistOver.Head.Cmd,m_NAtagGCAssistOver.Head.SubCmd))] = m_NAtagGCAssistOver
-
-
-#------------------------------------------------------
-# B0 06 可接收协助感谢礼物个数 #tagGCCanGetAssistThanksGiftCount
-
-class  tagGCCanGetAssistThanksGiftCount(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("CanGetCount", c_ubyte),    
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xB0
-        self.SubCmd = 0x06
-        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 = 0xB0
-        self.SubCmd = 0x06
-        self.CanGetCount = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagGCCanGetAssistThanksGiftCount)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''// B0 06 可接收协助感谢礼物个数 //tagGCCanGetAssistThanksGiftCount:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                CanGetCount:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.CanGetCount
-                                )
-        return DumpString
-
-
-m_NAtagGCCanGetAssistThanksGiftCount=tagGCCanGetAssistThanksGiftCount()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCCanGetAssistThanksGiftCount.Cmd,m_NAtagGCCanGetAssistThanksGiftCount.SubCmd))] = m_NAtagGCCanGetAssistThanksGiftCount
-
-
-#------------------------------------------------------
-# B0 02 删除协助 #tagGCClearAssist
-
-class  tagGCClearAssist(Structure):
-    Head = tagHead()
-    AssistGUID = ""    #(char AssistGUID[40])//协助GUID
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xB0
-        self.Head.SubCmd = 0x02
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.AssistGUID,_pos = CommFunc.ReadString(_lpData, _pos,40)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xB0
-        self.Head.SubCmd = 0x02
-        self.AssistGUID = ""
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 40
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteString(data, 40, self.AssistGUID)
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                AssistGUID:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.AssistGUID
-                                )
-        return DumpString
-
-
-m_NAtagGCClearAssist=tagGCClearAssist()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCClearAssist.Head.Cmd,m_NAtagGCClearAssist.Head.SubCmd))] = m_NAtagGCClearAssist
-
-
-#------------------------------------------------------
-#B0 25 家族悬赏任务奖励领取情况 #tagFamilyArrestAwardReceiveState
-
-class  tagFamilyArrestAwardReceiveState(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("ReceiveState", c_int),    #悬赏任务奖励领取情况
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xB0
-        self.SubCmd = 0x25
-        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 = 0xB0
-        self.SubCmd = 0x25
-        self.ReceiveState = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagFamilyArrestAwardReceiveState)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''//B0 25 家族悬赏任务奖励领取情况 //tagFamilyArrestAwardReceiveState:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                ReceiveState:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.ReceiveState
-                                )
-        return DumpString
-
-
-m_NAtagFamilyArrestAwardReceiveState=tagFamilyArrestAwardReceiveState()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFamilyArrestAwardReceiveState.Cmd,m_NAtagFamilyArrestAwardReceiveState.SubCmd))] = m_NAtagFamilyArrestAwardReceiveState
-
-
-#------------------------------------------------------
-#B0 26 家族悬赏任务完成情况 #tagFamilyArrestOverStateInfo
-
-class  tagFamilyArrestOverState(Structure):
-    ID = 0    #(DWORD ID)//悬赏任务ID
-    NameLen = 0    #(WORD NameLen)//名字长度
-    Name = ""    #(String Name)//size = NameLen
-    OverState = 0    #(DWORD OverState)//任务完成情况
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        self.ID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.NameLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
-        self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen)
-        self.OverState,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        return _pos
-
-    def Clear(self):
-        self.ID = 0
-        self.NameLen = 0
-        self.Name = ""
-        self.OverState = 0
-        return
-
-    def GetLength(self):
-        length = 0
-        length += 4
-        length += 2
-        length += len(self.Name)
-        length += 4
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteDWORD(data, self.ID)
-        data = CommFunc.WriteWORD(data, self.NameLen)
-        data = CommFunc.WriteString(data, self.NameLen, self.Name)
-        data = CommFunc.WriteDWORD(data, self.OverState)
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                ID:%d,
-                                NameLen:%d,
-                                Name:%s,
-                                OverState:%d
-                                '''\
-                                %(
-                                self.ID,
-                                self.NameLen,
-                                self.Name,
-                                self.OverState
-                                )
-        return DumpString
-
-
-class  tagFamilyArrestOverStateInfo(Structure):
-    Head = tagHead()
-    Count = 0    #(WORD Count)
-    ArrestOverStateInfo = list()    #(vector<tagFamilyArrestOverState> ArrestOverStateInfo)///size = Count	
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xB0
-        self.Head.SubCmd = 0x26
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos)
-        for i in range(self.Count):
-            temArrestOverStateInfo = tagFamilyArrestOverState()
-            _pos = temArrestOverStateInfo.ReadData(_lpData, _pos)
-            self.ArrestOverStateInfo.append(temArrestOverStateInfo)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xB0
-        self.Head.SubCmd = 0x26
-        self.Count = 0
-        self.ArrestOverStateInfo = list()
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 2
-        for i in range(self.Count):
-            length += self.ArrestOverStateInfo[i].GetLength()
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteWORD(data, self.Count)
-        for i in range(self.Count):
-            data = CommFunc.WriteString(data, self.ArrestOverStateInfo[i].GetLength(), self.ArrestOverStateInfo[i].GetBuffer())
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                Count:%d,
-                                ArrestOverStateInfo:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.Count,
-                                "..."
-                                )
-        return DumpString
-
-
-m_NAtagFamilyArrestOverStateInfo=tagFamilyArrestOverStateInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagFamilyArrestOverStateInfo.Head.Cmd,m_NAtagFamilyArrestOverStateInfo.Head.SubCmd))] = m_NAtagFamilyArrestOverStateInfo
-
-
-#------------------------------------------------------
-# B0 05 接收协助感谢礼物预览 #tagGCGetAssistThanksGiftPreview
-
-class  tagGCGetAssistThanksGiftPreview(Structure):
-    Head = tagHead()
-    ItemID = 0    #(DWORD ItemID)//礼盒ID
-    PlayerID = 0    #(DWORD PlayerID)//发起玩家ID
-    PlayerName = ""    #(char PlayerName[33])
-    Job = 0    #(BYTE Job)
-    LV = 0    #(WORD LV)
-    RealmLV = 0    #(BYTE RealmLV)//境界
-    Face = 0    #(DWORD Face)//基本脸型
-    FacePic = 0    #(DWORD FacePic)//头像框
-    MapID = 0    #(DWORD MapID)
-    LineID = 0    #(DWORD LineID)
-    NPCID = 0    #(DWORD NPCID)
-    ExDataLen = 0    #(WORD ExDataLen)
-    ExData = ""    #(String ExData)//其他自定义数据
-    TimeStr = ""    #(char TimeStr[19])//协助时间yyyy-MM-dd hh:mm:ss
-    ExtraAward = 0    #(BYTE ExtraAward)//是否有额外奖励
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xB0
-        self.Head.SubCmd = 0x05
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
-        self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
-        self.RealmLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.LineID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.NPCID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.ExDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
-        self.ExData,_pos = CommFunc.ReadString(_lpData, _pos,self.ExDataLen)
-        self.TimeStr,_pos = CommFunc.ReadString(_lpData, _pos,19)
-        self.ExtraAward,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xB0
-        self.Head.SubCmd = 0x05
-        self.ItemID = 0
-        self.PlayerID = 0
-        self.PlayerName = ""
-        self.Job = 0
-        self.LV = 0
-        self.RealmLV = 0
-        self.Face = 0
-        self.FacePic = 0
-        self.MapID = 0
-        self.LineID = 0
-        self.NPCID = 0
-        self.ExDataLen = 0
-        self.ExData = ""
-        self.TimeStr = ""
-        self.ExtraAward = 0
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 4
-        length += 4
-        length += 33
-        length += 1
-        length += 2
-        length += 1
-        length += 4
-        length += 4
-        length += 4
-        length += 4
-        length += 4
-        length += 2
-        length += len(self.ExData)
-        length += 19
-        length += 1
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteDWORD(data, self.ItemID)
-        data = CommFunc.WriteDWORD(data, self.PlayerID)
-        data = CommFunc.WriteString(data, 33, self.PlayerName)
-        data = CommFunc.WriteBYTE(data, self.Job)
-        data = CommFunc.WriteWORD(data, self.LV)
-        data = CommFunc.WriteBYTE(data, self.RealmLV)
-        data = CommFunc.WriteDWORD(data, self.Face)
-        data = CommFunc.WriteDWORD(data, self.FacePic)
-        data = CommFunc.WriteDWORD(data, self.MapID)
-        data = CommFunc.WriteDWORD(data, self.LineID)
-        data = CommFunc.WriteDWORD(data, self.NPCID)
-        data = CommFunc.WriteWORD(data, self.ExDataLen)
-        data = CommFunc.WriteString(data, self.ExDataLen, self.ExData)
-        data = CommFunc.WriteString(data, 19, self.TimeStr)
-        data = CommFunc.WriteBYTE(data, self.ExtraAward)
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                ItemID:%d,
-                                PlayerID:%d,
-                                PlayerName:%s,
-                                Job:%d,
-                                LV:%d,
-                                RealmLV:%d,
-                                Face:%d,
-                                FacePic:%d,
-                                MapID:%d,
-                                LineID:%d,
-                                NPCID:%d,
-                                ExDataLen:%d,
-                                ExData:%s,
-                                TimeStr:%s,
-                                ExtraAward:%d
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.ItemID,
-                                self.PlayerID,
-                                self.PlayerName,
-                                self.Job,
-                                self.LV,
-                                self.RealmLV,
-                                self.Face,
-                                self.FacePic,
-                                self.MapID,
-                                self.LineID,
-                                self.NPCID,
-                                self.ExDataLen,
-                                self.ExData,
-                                self.TimeStr,
-                                self.ExtraAward
-                                )
-        return DumpString
-
-
-m_NAtagGCGetAssistThanksGiftPreview=tagGCGetAssistThanksGiftPreview()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCGetAssistThanksGiftPreview.Head.Cmd,m_NAtagGCGetAssistThanksGiftPreview.Head.SubCmd))] = m_NAtagGCGetAssistThanksGiftPreview
-
-
-#------------------------------------------------------
 # B0 37 淘金营地信息 #tagSCGoldRushCampInfo
 
 class  tagSCGoldRushCamp(Structure):
@@ -31759,21 +30311,20 @@
 
 
 #------------------------------------------------------
-# B0 07 今日协助活跃令信息 #tagMCTodayAssistMoneyInfo
+# B0 40 游历信息 #tagSCTravelInfo
 
-class  tagMCTodayAssistMoneyInfo(Structure):
+class  tagSCTravelGrid(Structure):
     _pack_ = 1
     _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("TodayAssistMoney", c_ushort),    #今日已获得活跃令,不含社交加成
-                  ("SocialMoney", c_ushort),    #社交额外加成
+                  ("Row", c_ubyte),    #行,从1开始
+                  ("Col", c_ubyte),    #列,从1开始
+                  ("State", c_ubyte),    #状态:0-未点击;1-已开启;2-裂纹
+                  ("Multi", c_ubyte),    #奖励倍值: 默认1倍;2-双倍;...
+                  ("EventID", c_ushort),    #事件ID
                   ]
 
     def __init__(self):
         self.Clear()
-        self.Cmd = 0xB0
-        self.SubCmd = 0x07
         return
 
     def ReadData(self, stringData, _pos=0, _len=0):
@@ -31782,434 +30333,157 @@
         return _pos + self.GetLength()
 
     def Clear(self):
-        self.Cmd = 0xB0
-        self.SubCmd = 0x07
-        self.TodayAssistMoney = 0
-        self.SocialMoney = 0
+        self.Row = 0
+        self.Col = 0
+        self.State = 0
+        self.Multi = 0
+        self.EventID = 0
         return
 
     def GetLength(self):
-        return sizeof(tagMCTodayAssistMoneyInfo)
+        return sizeof(tagSCTravelGrid)
 
     def GetBuffer(self):
         return string_at(addressof(self), self.GetLength())
 
     def OutputString(self):
-        DumpString = '''// B0 07 今日协助活跃令信息 //tagMCTodayAssistMoneyInfo:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                TodayAssistMoney:%d,
-                                SocialMoney:%d
+        DumpString = '''// B0 40 游历信息 //tagSCTravelInfo:
+                                Row:%d,
+                                Col:%d,
+                                State:%d,
+                                Multi:%d,
+                                EventID:%d
                                 '''\
                                 %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.TodayAssistMoney,
-                                self.SocialMoney
+                                self.Row,
+                                self.Col,
+                                self.State,
+                                self.Multi,
+                                self.EventID
                                 )
         return DumpString
 
 
-m_NAtagMCTodayAssistMoneyInfo=tagMCTodayAssistMoneyInfo()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCTodayAssistMoneyInfo.Cmd,m_NAtagMCTodayAssistMoneyInfo.SubCmd))] = m_NAtagMCTodayAssistMoneyInfo
-
-
-#------------------------------------------------------
-# B0 04 使用协助感谢礼盒预览 #tagGCUseAssistThanksGiftPreview
-
-class  tagGCAssistPlayerInfo(Structure):
-    PlayerID = 0    #(DWORD PlayerID)
-    PlayerName = ""    #(char PlayerName[33])
-    Job = 0    #(BYTE Job)
-    LV = 0    #(WORD LV)
-    RealmLV = 0    #(BYTE RealmLV)//境界
-    Face = 0    #(DWORD Face)//基本脸型
-    FacePic = 0    #(DWORD FacePic)//头像框
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
-        self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
-        self.RealmLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        return _pos
-
-    def Clear(self):
-        self.PlayerID = 0
-        self.PlayerName = ""
-        self.Job = 0
-        self.LV = 0
-        self.RealmLV = 0
-        self.Face = 0
-        self.FacePic = 0
-        return
-
-    def GetLength(self):
-        length = 0
-        length += 4
-        length += 33
-        length += 1
-        length += 2
-        length += 1
-        length += 4
-        length += 4
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteDWORD(data, self.PlayerID)
-        data = CommFunc.WriteString(data, 33, self.PlayerName)
-        data = CommFunc.WriteBYTE(data, self.Job)
-        data = CommFunc.WriteWORD(data, self.LV)
-        data = CommFunc.WriteBYTE(data, self.RealmLV)
-        data = CommFunc.WriteDWORD(data, self.Face)
-        data = CommFunc.WriteDWORD(data, self.FacePic)
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                PlayerID:%d,
-                                PlayerName:%s,
-                                Job:%d,
-                                LV:%d,
-                                RealmLV:%d,
-                                Face:%d,
-                                FacePic:%d
-                                '''\
-                                %(
-                                self.PlayerID,
-                                self.PlayerName,
-                                self.Job,
-                                self.LV,
-                                self.RealmLV,
-                                self.Face,
-                                self.FacePic
-                                )
-        return DumpString
-
-
-class  tagGCUseAssistThanksGiftPreview(Structure):
+class  tagSCTravelInfo(Structure):
     Head = tagHead()
-    ItemID = 0    #(DWORD ItemID)//礼盒ID
-    MapID = 0    #(DWORD MapID)
-    LineID = 0    #(DWORD LineID)
-    NPCID = 0    #(DWORD NPCID)
-    ExDataLen = 0    #(WORD ExDataLen)
-    ExData = ""    #(String ExData)//其他自定义数据
-    AssistPlayerCount = 0    #(BYTE AssistPlayerCount)
-    AssistPlayerList = list()    #(vector<tagGCAssistPlayerInfo> AssistPlayerList)//协助玩家列表
+    Energy = 0    #(BYTE Energy)//剩余体力
+    EnergyTime = 0    #(DWORD EnergyTime)//上次恢复体力时间戳
+    TravelCnt = 0    #(DWORD TravelCnt)//累计游历次数
+    SceneryType = 0    #(BYTE SceneryType)//景观类型
+    SceneryRow = 0    #(BYTE SceneryRow)//景观左上角所在行,从1开始
+    SceneryCol = 0    #(BYTE SceneryCol)//景观左上角所在列,从1开始
+    SceneryLVInfo = 0    #(DWORD SceneryLVInfo)//景观升级信息:0-还未处理景观升级;个位数-第1次升级成功与否,1-成功,2-失败;十位-第2次 ...
+    Result = 0    #(BYTE Result)//后端处理:0-无;1-常规;2-马车炸弹;3-传送门;4-景观;5-重置开始
+    GridCnt = 0    #(BYTE GridCnt)
+    GridList = list()    #(vector<tagSCTravelGrid> GridList)//格子信息列表,只同步变化的
     data = None
 
     def __init__(self):
         self.Clear()
         self.Head.Cmd = 0xB0
-        self.Head.SubCmd = 0x04
+        self.Head.SubCmd = 0x40
         return
 
     def ReadData(self, _lpData, _pos=0, _Len=0):
         self.Clear()
         _pos = self.Head.ReadData(_lpData, _pos)
-        self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.LineID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.NPCID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.ExDataLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
-        self.ExData,_pos = CommFunc.ReadString(_lpData, _pos,self.ExDataLen)
-        self.AssistPlayerCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        for i in range(self.AssistPlayerCount):
-            temAssistPlayerList = tagGCAssistPlayerInfo()
-            _pos = temAssistPlayerList.ReadData(_lpData, _pos)
-            self.AssistPlayerList.append(temAssistPlayerList)
+        self.Energy,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.EnergyTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.TravelCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.SceneryType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.SceneryRow,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.SceneryCol,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.SceneryLVInfo,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.Result,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.GridCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.GridCnt):
+            temGridList = tagSCTravelGrid()
+            _pos = temGridList.ReadData(_lpData, _pos)
+            self.GridList.append(temGridList)
         return _pos
 
     def Clear(self):
         self.Head = tagHead()
         self.Head.Clear()
         self.Head.Cmd = 0xB0
-        self.Head.SubCmd = 0x04
-        self.ItemID = 0
-        self.MapID = 0
-        self.LineID = 0
-        self.NPCID = 0
-        self.ExDataLen = 0
-        self.ExData = ""
-        self.AssistPlayerCount = 0
-        self.AssistPlayerList = list()
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 4
-        length += 4
-        length += 4
-        length += 4
-        length += 2
-        length += len(self.ExData)
-        length += 1
-        for i in range(self.AssistPlayerCount):
-            length += self.AssistPlayerList[i].GetLength()
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteDWORD(data, self.ItemID)
-        data = CommFunc.WriteDWORD(data, self.MapID)
-        data = CommFunc.WriteDWORD(data, self.LineID)
-        data = CommFunc.WriteDWORD(data, self.NPCID)
-        data = CommFunc.WriteWORD(data, self.ExDataLen)
-        data = CommFunc.WriteString(data, self.ExDataLen, self.ExData)
-        data = CommFunc.WriteBYTE(data, self.AssistPlayerCount)
-        for i in range(self.AssistPlayerCount):
-            data = CommFunc.WriteString(data, self.AssistPlayerList[i].GetLength(), self.AssistPlayerList[i].GetBuffer())
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                ItemID:%d,
-                                MapID:%d,
-                                LineID:%d,
-                                NPCID:%d,
-                                ExDataLen:%d,
-                                ExData:%s,
-                                AssistPlayerCount:%d,
-                                AssistPlayerList:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.ItemID,
-                                self.MapID,
-                                self.LineID,
-                                self.NPCID,
-                                self.ExDataLen,
-                                self.ExData,
-                                self.AssistPlayerCount,
-                                "..."
-                                )
-        return DumpString
-
-
-m_NAtagGCUseAssistThanksGiftPreview=tagGCUseAssistThanksGiftPreview()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCUseAssistThanksGiftPreview.Head.Cmd,m_NAtagGCUseAssistThanksGiftPreview.Head.SubCmd))] = m_NAtagGCUseAssistThanksGiftPreview
-
-
-#------------------------------------------------------
-# B0 20 膜拜信息列表 #tagGCWorshipInfoList
-
-class  tagGCWorshipInfo(Structure):
-    PlayerID = 0    #(DWORD PlayerID)// 目标玩家ID
-    WorshipType = 0    #(BYTE WorshipType)// 膜拜类型
-    WorshipValue = 0    #(DWORD WorshipValue)// 膜拜类型对应的功能值,如名次或其他,由具体膜拜类型定义对应值含义
-    InfoLen = 0    #(WORD InfoLen)
-    PlayerInfo = ""    #(String PlayerInfo)// 玩家信息{k:v, ...}
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.WorshipType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        self.WorshipValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
-        self.InfoLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
-        self.PlayerInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.InfoLen)
-        return _pos
-
-    def Clear(self):
-        self.PlayerID = 0
-        self.WorshipType = 0
-        self.WorshipValue = 0
-        self.InfoLen = 0
-        self.PlayerInfo = ""
-        return
-
-    def GetLength(self):
-        length = 0
-        length += 4
-        length += 1
-        length += 4
-        length += 2
-        length += len(self.PlayerInfo)
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteDWORD(data, self.PlayerID)
-        data = CommFunc.WriteBYTE(data, self.WorshipType)
-        data = CommFunc.WriteDWORD(data, self.WorshipValue)
-        data = CommFunc.WriteWORD(data, self.InfoLen)
-        data = CommFunc.WriteString(data, self.InfoLen, self.PlayerInfo)
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                PlayerID:%d,
-                                WorshipType:%d,
-                                WorshipValue:%d,
-                                InfoLen:%d,
-                                PlayerInfo:%s
-                                '''\
-                                %(
-                                self.PlayerID,
-                                self.WorshipType,
-                                self.WorshipValue,
-                                self.InfoLen,
-                                self.PlayerInfo
-                                )
-        return DumpString
-
-
-class  tagGCWorshipInfoList(Structure):
-    Head = tagHead()
-    WorshipCount = 0    #(BYTE WorshipCount)
-    WorshipInfoList = list()    #(vector<tagGCWorshipInfo> WorshipInfoList)
-    data = None
-
-    def __init__(self):
-        self.Clear()
-        self.Head.Cmd = 0xB0
-        self.Head.SubCmd = 0x20
-        return
-
-    def ReadData(self, _lpData, _pos=0, _Len=0):
-        self.Clear()
-        _pos = self.Head.ReadData(_lpData, _pos)
-        self.WorshipCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
-        for i in range(self.WorshipCount):
-            temWorshipInfoList = tagGCWorshipInfo()
-            _pos = temWorshipInfoList.ReadData(_lpData, _pos)
-            self.WorshipInfoList.append(temWorshipInfoList)
-        return _pos
-
-    def Clear(self):
-        self.Head = tagHead()
-        self.Head.Clear()
-        self.Head.Cmd = 0xB0
-        self.Head.SubCmd = 0x20
-        self.WorshipCount = 0
-        self.WorshipInfoList = list()
-        return
-
-    def GetLength(self):
-        length = 0
-        length += self.Head.GetLength()
-        length += 1
-        for i in range(self.WorshipCount):
-            length += self.WorshipInfoList[i].GetLength()
-
-        return length
-
-    def GetBuffer(self):
-        data = ''
-        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
-        data = CommFunc.WriteBYTE(data, self.WorshipCount)
-        for i in range(self.WorshipCount):
-            data = CommFunc.WriteString(data, self.WorshipInfoList[i].GetLength(), self.WorshipInfoList[i].GetBuffer())
-        return data
-
-    def OutputString(self):
-        DumpString = '''
-                                Head:%s,
-                                WorshipCount:%d,
-                                WorshipInfoList:%s
-                                '''\
-                                %(
-                                self.Head.OutputString(),
-                                self.WorshipCount,
-                                "..."
-                                )
-        return DumpString
-
-
-m_NAtagGCWorshipInfoList=tagGCWorshipInfoList()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCWorshipInfoList.Head.Cmd,m_NAtagGCWorshipInfoList.Head.SubCmd))] = m_NAtagGCWorshipInfoList
-
-
-#------------------------------------------------------
-# B0 21 膜拜结果 #tagGCWorshipResult
-
-class  tagGCWorshipResult(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("PlayerID", c_int),    # 目标玩家ID
-                  ("WorshipType", c_ubyte),    # 膜拜类型
-                  ("WorshipValue", c_int),    # 膜拜类型对应的功能值,如名次或其他,由具体膜拜类型定义对应值含义
-                  ("Result", c_ubyte),    # 膜拜结果:0-成功;1-不存在该膜拜类型;2-不存在该目标膜拜;3-不能膜拜该目标;
-                  ("MoneyType", c_ubyte),    # 货币类型
-                  ("MoneyValue", c_int),    # 货币奖励
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xB0
-        self.SubCmd = 0x21
-        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 = 0xB0
-        self.SubCmd = 0x21
-        self.PlayerID = 0
-        self.WorshipType = 0
-        self.WorshipValue = 0
+        self.Head.SubCmd = 0x40
+        self.Energy = 0
+        self.EnergyTime = 0
+        self.TravelCnt = 0
+        self.SceneryType = 0
+        self.SceneryRow = 0
+        self.SceneryCol = 0
+        self.SceneryLVInfo = 0
         self.Result = 0
-        self.MoneyType = 0
-        self.MoneyValue = 0
+        self.GridCnt = 0
+        self.GridList = list()
         return
 
     def GetLength(self):
-        return sizeof(tagGCWorshipResult)
+        length = 0
+        length += self.Head.GetLength()
+        length += 1
+        length += 4
+        length += 4
+        length += 1
+        length += 1
+        length += 1
+        length += 4
+        length += 1
+        length += 1
+        for i in range(self.GridCnt):
+            length += self.GridList[i].GetLength()
+
+        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.Energy)
+        data = CommFunc.WriteDWORD(data, self.EnergyTime)
+        data = CommFunc.WriteDWORD(data, self.TravelCnt)
+        data = CommFunc.WriteBYTE(data, self.SceneryType)
+        data = CommFunc.WriteBYTE(data, self.SceneryRow)
+        data = CommFunc.WriteBYTE(data, self.SceneryCol)
+        data = CommFunc.WriteDWORD(data, self.SceneryLVInfo)
+        data = CommFunc.WriteBYTE(data, self.Result)
+        data = CommFunc.WriteBYTE(data, self.GridCnt)
+        for i in range(self.GridCnt):
+            data = CommFunc.WriteString(data, self.GridList[i].GetLength(), self.GridList[i].GetBuffer())
+        return data
 
     def OutputString(self):
-        DumpString = '''// B0 21 膜拜结果 //tagGCWorshipResult:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                PlayerID:%d,
-                                WorshipType:%d,
-                                WorshipValue:%d,
+        DumpString = '''
+                                Head:%s,
+                                Energy:%d,
+                                EnergyTime:%d,
+                                TravelCnt:%d,
+                                SceneryType:%d,
+                                SceneryRow:%d,
+                                SceneryCol:%d,
+                                SceneryLVInfo:%d,
                                 Result:%d,
-                                MoneyType:%d,
-                                MoneyValue:%d
+                                GridCnt:%d,
+                                GridList:%s
                                 '''\
                                 %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.PlayerID,
-                                self.WorshipType,
-                                self.WorshipValue,
+                                self.Head.OutputString(),
+                                self.Energy,
+                                self.EnergyTime,
+                                self.TravelCnt,
+                                self.SceneryType,
+                                self.SceneryRow,
+                                self.SceneryCol,
+                                self.SceneryLVInfo,
                                 self.Result,
-                                self.MoneyType,
-                                self.MoneyValue
+                                self.GridCnt,
+                                "..."
                                 )
         return DumpString
 
 
-m_NAtagGCWorshipResult=tagGCWorshipResult()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCWorshipResult.Cmd,m_NAtagGCWorshipResult.SubCmd))] = m_NAtagGCWorshipResult
+m_NAtagSCTravelInfo=tagSCTravelInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCTravelInfo.Head.Cmd,m_NAtagSCTravelInfo.Head.SubCmd))] = m_NAtagSCTravelInfo
 
 
 #------------------------------------------------------
@@ -37239,6 +35513,7 @@
     RealmLV = 0    #(BYTE RealmLV)//境界
     Face = 0    #(DWORD Face)//基本脸型
     FacePic = 0    #(DWORD FacePic)//头像框
+    TitleID = 0    #(DWORD TitleID)//佩戴的称号
     ServerID = 0    #(DWORD ServerID)//所属区服ID
     data = None
 
@@ -37263,6 +35538,7 @@
         self.RealmLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.TitleID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.ServerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         return _pos
 
@@ -37283,6 +35559,7 @@
         self.RealmLV = 0
         self.Face = 0
         self.FacePic = 0
+        self.TitleID = 0
         self.ServerID = 0
         return
 
@@ -37299,6 +35576,7 @@
         length += 2
         length += 1
         length += 1
+        length += 4
         length += 4
         length += 4
         length += 4
@@ -37320,6 +35598,7 @@
         data = CommFunc.WriteBYTE(data, self.RealmLV)
         data = CommFunc.WriteDWORD(data, self.Face)
         data = CommFunc.WriteDWORD(data, self.FacePic)
+        data = CommFunc.WriteDWORD(data, self.TitleID)
         data = CommFunc.WriteDWORD(data, self.ServerID)
         return data
 
@@ -37338,6 +35617,7 @@
                                 RealmLV:%d,
                                 Face:%d,
                                 FacePic:%d,
+                                TitleID:%d,
                                 ServerID:%d
                                 '''\
                                 %(
@@ -37354,6 +35634,7 @@
                                 self.RealmLV,
                                 self.Face,
                                 self.FacePic,
+                                self.TitleID,
                                 self.ServerID
                                 )
         return DumpString
@@ -37378,6 +35659,7 @@
     RealmLV = 0    #(BYTE RealmLV)//境界
     Face = 0    #(DWORD Face)//基本脸型
     FacePic = 0    #(DWORD FacePic)//头像框
+    TitleID = 0    #(DWORD TitleID)//佩戴的称号
     ServerID = 0    #(DWORD ServerID)//所属区服ID
     TalkTime = 0    #(DWORD TalkTime)//该聊天发送时间戳
     data = None
@@ -37399,6 +35681,7 @@
         self.RealmLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.TitleID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.ServerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         self.TalkTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
         return _pos
@@ -37415,6 +35698,7 @@
         self.RealmLV = 0
         self.Face = 0
         self.FacePic = 0
+        self.TitleID = 0
         self.ServerID = 0
         self.TalkTime = 0
         return
@@ -37430,6 +35714,7 @@
         length += 2
         length += 1
         length += 1
+        length += 4
         length += 4
         length += 4
         length += 4
@@ -37450,6 +35735,7 @@
         data = CommFunc.WriteBYTE(data, self.RealmLV)
         data = CommFunc.WriteDWORD(data, self.Face)
         data = CommFunc.WriteDWORD(data, self.FacePic)
+        data = CommFunc.WriteDWORD(data, self.TitleID)
         data = CommFunc.WriteDWORD(data, self.ServerID)
         data = CommFunc.WriteDWORD(data, self.TalkTime)
         return data
@@ -37467,6 +35753,7 @@
                                 RealmLV:%d,
                                 Face:%d,
                                 FacePic:%d,
+                                TitleID:%d,
                                 ServerID:%d,
                                 TalkTime:%d
                                 '''\
@@ -37482,6 +35769,7 @@
                                 self.RealmLV,
                                 self.Face,
                                 self.FacePic,
+                                self.TitleID,
                                 self.ServerID,
                                 self.TalkTime
                                 )

--
Gitblit v1.8.0