6373 【后端】【2.0】删除无用功能代码、封包、配置(页游特惠活动相关)
25个文件已修改
6个文件已删除
6096 ■■■■■ 已修改文件
ServerPython/CoreServerGroup/GameServer/PyNetPack.ini 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/ChConfig.py 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py 384 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py 1023 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/DataRecordPack.py 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/ClearOpenServerDay.py 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionTeHui.py 373 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldShopItem.py 333 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerBillboard.py 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerDBGSEvent.py 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py 384 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py 1143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DataRecordPack.py 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/ShopItemManage.py 852 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/ClearTeHui.py 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerBillboard.py 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTeHui.py 943 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_ShopItem.py 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/PyNetPack.ini
@@ -99,19 +99,6 @@
PacketSubCMD_1=0x09
PacketCallFunc_1=OnFamilyStoreDel
;特惠活动
[GameWorldActionTeHui]
ScriptName = GameWorldLogic\GameWorldActionTeHui.py
Writer = hxp
Releaser = hxp
RegType = 0
RegisterPackCount = 1
PacketCMD_1=0xAD
PacketSubCMD_1=0x01
PacketCallFunc_1=ClientRequestTeHuiActivity
;邮件(补偿)
[Compensation]
ScriptName = Player\PlayerCompensation
ServerPython/CoreServerGroup/GameServer/Script/ChConfig.py
@@ -588,11 +588,6 @@
            ShareDefine.Def_BT_ZhuXianTower             : 100,           #诛仙塔榜
            ShareDefine.Def_BT_HighLadder               : 1000,          #玩家天梯竞技场排行
            ShareDefine.Def_BT_HighLadder_Yester        : 1000,          #玩家天梯竞技场昨日排行
            ShareDefine.Def_BT_RechargeTeHuiLast        : 20,            #充值特惠活动排行榜-上一期记录
            ShareDefine.Def_BT_RechargeTeHui            : 20,            #充值特惠活动排行榜-当前期记录
            ShareDefine.Def_BT_CostTeHui                : 10,            #消费特惠排行榜
            ShareDefine.Def_BT_CostTeHuiLast            : 10,            #消费特惠排行榜上一期
            }
#排行榜保存类型(和BillboardType匹配), 默认保存, 如果不保存,可配置进去
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
@@ -1785,58 +1785,6 @@
#------------------------------------------------------
# AD 01 查询特惠活动信息 #tagCGQueryTeHuiActivetyInfo
class  tagCGQueryTeHuiActivetyInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ActivityType", c_ubyte),    # 活动类型
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAD
        self.SubCmd = 0x01
        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 = 0xAD
        self.SubCmd = 0x01
        self.ActivityType = 0
        return
    def GetLength(self):
        return sizeof(tagCGQueryTeHuiActivetyInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AD 01 查询特惠活动信息 //tagCGQueryTeHuiActivetyInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                ActivityType:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ActivityType
                                )
        return DumpString
m_NAtagCGQueryTeHuiActivetyInfo=tagCGQueryTeHuiActivetyInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryTeHuiActivetyInfo.Cmd,m_NAtagCGQueryTeHuiActivetyInfo.SubCmd))] = m_NAtagCGQueryTeHuiActivetyInfo
#------------------------------------------------------
# AE 07 运镖时间倒计时结束 #tagCGTruckTimeEnd
class  tagCGTruckTimeEnd(Structure):
@@ -3999,66 +3947,6 @@
#------------------------------------------------------
# A2 08 购买自定义商店物品 #tagCMBuyShopItem
class  tagCMBuyShopItem(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ShopID", c_int),
                  ("ItemShopIndex", c_ushort),
                  ("BuyCount", c_ushort),    #购买数量
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA2
        self.SubCmd = 0x08
        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 = 0xA2
        self.SubCmd = 0x08
        self.ShopID = 0
        self.ItemShopIndex = 0
        self.BuyCount = 0
        return
    def GetLength(self):
        return sizeof(tagCMBuyShopItem)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A2 08 购买自定义商店物品 //tagCMBuyShopItem:
                                Cmd:%s,
                                SubCmd:%s,
                                ShopID:%d,
                                ItemShopIndex:%d,
                                BuyCount:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ShopID,
                                self.ItemShopIndex,
                                self.BuyCount
                                )
        return DumpString
m_NAtagCMBuyShopItem=tagCMBuyShopItem()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMBuyShopItem.Cmd,m_NAtagCMBuyShopItem.SubCmd))] = m_NAtagCMBuyShopItem
#------------------------------------------------------
# A2 10 清除副本CD#tagCMClearFBCD
class  tagCMClearFBCD(Structure):
@@ -5041,58 +4929,6 @@
#------------------------------------------------------
# A2 07 请求自定义商店物品信息 #tagCMQueryShopItem
class  tagCMQueryShopItem(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ShopID", c_int),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA2
        self.SubCmd = 0x07
        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 = 0xA2
        self.SubCmd = 0x07
        self.ShopID = 0
        return
    def GetLength(self):
        return sizeof(tagCMQueryShopItem)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A2 07 请求自定义商店物品信息 //tagCMQueryShopItem:
                                Cmd:%s,
                                SubCmd:%s,
                                ShopID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ShopID
                                )
        return DumpString
m_NAtagCMQueryShopItem=tagCMQueryShopItem()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMQueryShopItem.Cmd,m_NAtagCMQueryShopItem.SubCmd))] = m_NAtagCMQueryShopItem
#------------------------------------------------------
# A2 06 快速完成任务#tagCMQuickFinishMission
class  tagCMQuickFinishMission(Structure):
@@ -5194,58 +5030,6 @@
m_NAtagCMRefreshMysticalShop=tagCMRefreshMysticalShop()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRefreshMysticalShop.Cmd,m_NAtagCMRefreshMysticalShop.SubCmd))] = m_NAtagCMRefreshMysticalShop
#------------------------------------------------------
# A2 14 刷新定时神秘商店物品#tagCMRefreshShopItem
class  tagCMRefreshShopItem(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ShopID", c_int),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA2
        self.SubCmd = 0x14
        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 = 0xA2
        self.SubCmd = 0x14
        self.ShopID = 0
        return
    def GetLength(self):
        return sizeof(tagCMRefreshShopItem)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A2 14 刷新定时神秘商店物品//tagCMRefreshShopItem:
                                Cmd:%s,
                                SubCmd:%s,
                                ShopID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ShopID
                                )
        return DumpString
m_NAtagCMRefreshShopItem=tagCMRefreshShopItem()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRefreshShopItem.Cmd,m_NAtagCMRefreshShopItem.SubCmd))] = m_NAtagCMRefreshShopItem
#------------------------------------------------------
@@ -12828,174 +12612,6 @@
m_NAtagCMFlashSaleAppointment=tagCMFlashSaleAppointment()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMFlashSaleAppointment.Cmd,m_NAtagCMFlashSaleAppointment.SubCmd))] = m_NAtagCMFlashSaleAppointment
#------------------------------------------------------
# AA 02 领取升阶功能特惠奖励 #tagCMGetClassUPDayAward
class  tagCMGetClassUPDayAward(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("DayType", c_ubyte),    # 升阶日类型
                  ("ClassLV", c_ubyte),    # 阶级
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAA
        self.SubCmd = 0x02
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xAA
        self.SubCmd = 0x02
        self.DayType = 0
        self.ClassLV = 0
        return
    def GetLength(self):
        return sizeof(tagCMGetClassUPDayAward)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 02 领取升阶功能特惠奖励 //tagCMGetClassUPDayAward:
                                Cmd:%s,
                                SubCmd:%s,
                                DayType:%d,
                                ClassLV:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.DayType,
                                self.ClassLV
                                )
        return DumpString
m_NAtagCMGetClassUPDayAward=tagCMGetClassUPDayAward()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGetClassUPDayAward.Cmd,m_NAtagCMGetClassUPDayAward.SubCmd))] = m_NAtagCMGetClassUPDayAward
#------------------------------------------------------
# AA 04 领取消费奖励 #tagCMGetCostAward
class  tagCMGetCostAward(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ActionID", c_int),    # 活动ID
                  ("Index", 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.ActionID = 0
        self.Index = 0
        return
    def GetLength(self):
        return sizeof(tagCMGetCostAward)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 04 领取消费奖励 //tagCMGetCostAward:
                                Cmd:%s,
                                SubCmd:%s,
                                ActionID:%d,
                                Index:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ActionID,
                                self.Index
                                )
        return DumpString
m_NAtagCMGetCostAward=tagCMGetCostAward()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGetCostAward.Cmd,m_NAtagCMGetCostAward.SubCmd))] = m_NAtagCMGetCostAward
#------------------------------------------------------
# AA 03 领取充值特惠奖励 #tagCMGetRechargeTeHuiAward
class  tagCMGetRechargeTeHuiAward(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ActionID", c_int),    # 活动ID
                  ("Index", c_ubyte),    # 规则索引
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAA
        self.SubCmd = 0x03
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xAA
        self.SubCmd = 0x03
        self.ActionID = 0
        self.Index = 0
        return
    def GetLength(self):
        return sizeof(tagCMGetRechargeTeHuiAward)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 03 领取充值特惠奖励 //tagCMGetRechargeTeHuiAward:
                                Cmd:%s,
                                SubCmd:%s,
                                ActionID:%d,
                                Index:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ActionID,
                                self.Index
                                )
        return DumpString
m_NAtagCMGetRechargeTeHuiAward=tagCMGetRechargeTeHuiAward()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGetRechargeTeHuiAward.Cmd,m_NAtagCMGetRechargeTeHuiAward.SubCmd))] = m_NAtagCMGetRechargeTeHuiAward
#------------------------------------------------------
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -4188,124 +4188,6 @@
#------------------------------------------------------
# A9 07 定时商店刷新倒计时 #tagGCShopRefreshTimeList
class  tagGCShopRefreshTime(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ShopID", c_int),    # 商店ID
                  ("RemainSecond", c_int),    # 多少秒后刷新
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA9
        self.SubCmd = 0x07
        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 = 0xA9
        self.SubCmd = 0x07
        self.ShopID = 0
        self.RemainSecond = 0
        return
    def GetLength(self):
        return sizeof(tagGCShopRefreshTime)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A9 07 定时商店刷新倒计时 //tagGCShopRefreshTimeList:
                                Cmd:%s,
                                SubCmd:%s,
                                ShopID:%d,
                                RemainSecond:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ShopID,
                                self.RemainSecond
                                )
        return DumpString
class  tagGCShopRefreshTimeList(Structure):
    Head = tagHead()
    ShopCnt = 0    #(BYTE ShopCnt)//商店信息个数
    ShopTimeInfoList = list()    #(vector<tagGCShopRefreshTime> ShopTimeInfoList)//商店信息列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA9
        self.Head.SubCmd = 0x07
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.ShopCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.ShopCnt):
            temShopTimeInfoList = tagGCShopRefreshTime()
            _pos = temShopTimeInfoList.ReadData(_lpData, _pos)
            self.ShopTimeInfoList.append(temShopTimeInfoList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA9
        self.Head.SubCmd = 0x07
        self.ShopCnt = 0
        self.ShopTimeInfoList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.ShopCnt):
            length += self.ShopTimeInfoList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.ShopCnt)
        for i in range(self.ShopCnt):
            data = CommFunc.WriteString(data, self.ShopTimeInfoList[i].GetLength(), self.ShopTimeInfoList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                ShopCnt:%d,
                                ShopTimeInfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.ShopCnt,
                                "..."
                                )
        return DumpString
m_NAtagGCShopRefreshTimeList=tagGCShopRefreshTimeList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCShopRefreshTimeList.Head.Cmd,m_NAtagGCShopRefreshTimeList.Head.SubCmd))] = m_NAtagGCShopRefreshTimeList
#------------------------------------------------------
# A9 06 商城全服购买次数通知 #tagGCStoreServerBuyCntInfo
class  tagGCStoreServerBuyCnt(Structure):
@@ -5725,132 +5607,6 @@
m_NAtagGCXMZZFightInfo=tagGCXMZZFightInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCXMZZFightInfo.Head.Cmd,m_NAtagGCXMZZFightInfo.Head.SubCmd))] = m_NAtagGCXMZZFightInfo
#------------------------------------------------------
# AD 01 特惠活动信息 #tagGCTeHuiActivityInfoList
class  tagGCTeHuiActivityInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ActivityType", c_ubyte),    # 活动类型
                  ("ActivityValue", c_int),    # 活动值
                  ("StartDate", c_int),    # 开始时间time
                  ("EndDate", c_int),    # 结束时间time
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAD
        self.SubCmd = 0x01
        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 = 0xAD
        self.SubCmd = 0x01
        self.ActivityType = 0
        self.ActivityValue = 0
        self.StartDate = 0
        self.EndDate = 0
        return
    def GetLength(self):
        return sizeof(tagGCTeHuiActivityInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AD 01 特惠活动信息 //tagGCTeHuiActivityInfoList:
                                Cmd:%s,
                                SubCmd:%s,
                                ActivityType:%d,
                                ActivityValue:%d,
                                StartDate:%d,
                                EndDate:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ActivityType,
                                self.ActivityValue,
                                self.StartDate,
                                self.EndDate
                                )
        return DumpString
class  tagGCTeHuiActivityInfoList(Structure):
    Head = tagHead()
    ActivityCount = 0    #(BYTE ActivityCount)//活动信息个数
    ActivityInfoList = list()    #(vector<tagGCTeHuiActivityInfo> ActivityInfoList)//活动信息列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAD
        self.Head.SubCmd = 0x01
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.ActivityCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.ActivityCount):
            temActivityInfoList = tagGCTeHuiActivityInfo()
            _pos = temActivityInfoList.ReadData(_lpData, _pos)
            self.ActivityInfoList.append(temActivityInfoList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAD
        self.Head.SubCmd = 0x01
        self.ActivityCount = 0
        self.ActivityInfoList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.ActivityCount):
            length += self.ActivityInfoList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.ActivityCount)
        for i in range(self.ActivityCount):
            data = CommFunc.WriteString(data, self.ActivityInfoList[i].GetLength(), self.ActivityInfoList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                ActivityCount:%d,
                                ActivityInfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.ActivityCount,
                                "..."
                                )
        return DumpString
m_NAtagGCTeHuiActivityInfoList=tagGCTeHuiActivityInfoList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCTeHuiActivityInfoList.Head.Cmd,m_NAtagGCTeHuiActivityInfoList.Head.SubCmd))] = m_NAtagGCTeHuiActivityInfoList
#------------------------------------------------------
@@ -21269,126 +21025,6 @@
#------------------------------------------------------
# A8 04 通知商店限购物品已购买次数信息 # tagMCShopItemBuyCntInfoList
class  tagMCShopItemBuyCntInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("ShopID", c_int),
                  ("ItemShopIndex", c_ushort),
                  ("ItemID", c_int),
                  ("BuyCnt", c_int),    # 个人已购买数
                  ("ServerBuyCnt", c_int),    # 全服已购买数
                  ]
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.ShopID = 0
        self.ItemShopIndex = 0
        self.ItemID = 0
        self.BuyCnt = 0
        self.ServerBuyCnt = 0
        return
    def GetLength(self):
        return sizeof(tagMCShopItemBuyCntInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A8 04 通知商店限购物品已购买次数信息 // tagMCShopItemBuyCntInfoList:
                                ShopID:%d,
                                ItemShopIndex:%d,
                                ItemID:%d,
                                BuyCnt:%d,
                                ServerBuyCnt:%d
                                '''\
                                %(
                                self.ShopID,
                                self.ItemShopIndex,
                                self.ItemID,
                                self.BuyCnt,
                                self.ServerBuyCnt
                                )
        return DumpString
class  tagMCShopItemBuyCntInfoList(Structure):
    Head = tagHead()
    Count = 0    #(BYTE Count)//通知个数
    BuyCntList = list()    #(vector<tagMCShopItemBuyCntInfo> BuyCntList)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA8
        self.Head.SubCmd = 0x04
        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):
            temBuyCntList = tagMCShopItemBuyCntInfo()
            _pos = temBuyCntList.ReadData(_lpData, _pos)
            self.BuyCntList.append(temBuyCntList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA8
        self.Head.SubCmd = 0x04
        self.Count = 0
        self.BuyCntList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.Count):
            length += self.BuyCntList[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.BuyCntList[i].GetLength(), self.BuyCntList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                BuyCntList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagMCShopItemBuyCntInfoList=tagMCShopItemBuyCntInfoList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCShopItemBuyCntInfoList.Head.Cmd,m_NAtagMCShopItemBuyCntInfoList.Head.SubCmd))] = m_NAtagMCShopItemBuyCntInfoList
#------------------------------------------------------
# A8 02 通知NPC商店物品今日已购买次数 #tagMCShopItemDayBuyCntInfo
class  tagMCShopItemDayBuyCnt(Structure):
@@ -21498,239 +21134,6 @@
m_NAtagMCShopItemDayBuyCntInfo=tagMCShopItemDayBuyCntInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCShopItemDayBuyCntInfo.Head.Cmd,m_NAtagMCShopItemDayBuyCntInfo.Head.SubCmd))] = m_NAtagMCShopItemDayBuyCntInfo
#------------------------------------------------------
# A8 03 通知自定义商店物品信息 #tagMCShopItemInfoList
class  tagMCShopItemInfo(Structure):
    ShopID = 0    #(DWORD ShopID)
    ItemShopIndex = 0    #(WORD ItemShopIndex)
    DataSize = 0    #(DWORD DataSize)
    ItemList = ""    #(String ItemList)//物品列表[[物品ID,数量,是否绑定,是否定制]]
    PriceType = 0    #(BYTE PriceType)
    Price = 0    #(DWORD Price)
    OriginalPrice = 0    #(DWORD OriginalPrice)// 原价
    PlayerLVLimit = 0    #(WORD PlayerLVLimit)// 购买等级限制
    FamilyLVLimit = 0    #(BYTE FamilyLVLimit)// 购买战盟等级限制
    MaxBuyCnt = 0    #(DWORD MaxBuyCnt)// 个人限购数
    ServerMaxBuyCnt = 0    #(DWORD ServerMaxBuyCnt)// 全服限购数
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.ShopID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.ItemShopIndex,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.DataSize,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.ItemList,_pos = CommFunc.ReadString(_lpData, _pos,self.DataSize)
        self.PriceType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Price,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.OriginalPrice,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.PlayerLVLimit,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.FamilyLVLimit,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.MaxBuyCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.ServerMaxBuyCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        return _pos
    def Clear(self):
        self.ShopID = 0
        self.ItemShopIndex = 0
        self.DataSize = 0
        self.ItemList = ""
        self.PriceType = 0
        self.Price = 0
        self.OriginalPrice = 0
        self.PlayerLVLimit = 0
        self.FamilyLVLimit = 0
        self.MaxBuyCnt = 0
        self.ServerMaxBuyCnt = 0
        return
    def GetLength(self):
        length = 0
        length += 4
        length += 2
        length += 4
        length += len(self.ItemList)
        length += 1
        length += 4
        length += 4
        length += 2
        length += 1
        length += 4
        length += 4
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteDWORD(data, self.ShopID)
        data = CommFunc.WriteWORD(data, self.ItemShopIndex)
        data = CommFunc.WriteDWORD(data, self.DataSize)
        data = CommFunc.WriteString(data, self.DataSize, self.ItemList)
        data = CommFunc.WriteBYTE(data, self.PriceType)
        data = CommFunc.WriteDWORD(data, self.Price)
        data = CommFunc.WriteDWORD(data, self.OriginalPrice)
        data = CommFunc.WriteWORD(data, self.PlayerLVLimit)
        data = CommFunc.WriteBYTE(data, self.FamilyLVLimit)
        data = CommFunc.WriteDWORD(data, self.MaxBuyCnt)
        data = CommFunc.WriteDWORD(data, self.ServerMaxBuyCnt)
        return data
    def OutputString(self):
        DumpString = '''
                                ShopID:%d,
                                ItemShopIndex:%d,
                                DataSize:%d,
                                ItemList:%s,
                                PriceType:%d,
                                Price:%d,
                                OriginalPrice:%d,
                                PlayerLVLimit:%d,
                                FamilyLVLimit:%d,
                                MaxBuyCnt:%d,
                                ServerMaxBuyCnt:%d
                                '''\
                                %(
                                self.ShopID,
                                self.ItemShopIndex,
                                self.DataSize,
                                self.ItemList,
                                self.PriceType,
                                self.Price,
                                self.OriginalPrice,
                                self.PlayerLVLimit,
                                self.FamilyLVLimit,
                                self.MaxBuyCnt,
                                self.ServerMaxBuyCnt
                                )
        return DumpString
class  tagMCShopItemInfoList(Structure):
    Head = tagHead()
    Count = 0    #(BYTE Count)//通知个数
    ShopItemList = list()    #(vector<tagMCShopItemInfo> ShopItemList)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA8
        self.Head.SubCmd = 0x03
        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):
            temShopItemList = tagMCShopItemInfo()
            _pos = temShopItemList.ReadData(_lpData, _pos)
            self.ShopItemList.append(temShopItemList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA8
        self.Head.SubCmd = 0x03
        self.Count = 0
        self.ShopItemList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.Count):
            length += self.ShopItemList[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.ShopItemList[i].GetLength(), self.ShopItemList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                ShopItemList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagMCShopItemInfoList=tagMCShopItemInfoList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCShopItemInfoList.Head.Cmd,m_NAtagMCShopItemInfoList.Head.SubCmd))] = m_NAtagMCShopItemInfoList
#------------------------------------------------------
# A8 05 通知神秘商店刷新次数 #tagMCShopRefreshCnt
class  tagMCShopRefreshCnt(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ShopID", c_int),    #商店ID
                  ("RefreshCnt", c_ushort),    #已手动刷新次数
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA8
        self.SubCmd = 0x05
        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 = 0xA8
        self.SubCmd = 0x05
        self.ShopID = 0
        self.RefreshCnt = 0
        return
    def GetLength(self):
        return sizeof(tagMCShopRefreshCnt)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A8 05 通知神秘商店刷新次数 //tagMCShopRefreshCnt:
                                Cmd:%s,
                                SubCmd:%s,
                                ShopID:%d,
                                RefreshCnt:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ShopID,
                                self.RefreshCnt
                                )
        return DumpString
m_NAtagMCShopRefreshCnt=tagMCShopRefreshCnt()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCShopRefreshCnt.Cmd,m_NAtagMCShopRefreshCnt.SubCmd))] = m_NAtagMCShopRefreshCnt
#------------------------------------------------------
@@ -23178,240 +22581,6 @@
m_NAtagMCAllPeoplePartyInfo=tagMCAllPeoplePartyInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCAllPeoplePartyInfo.Head.Cmd,m_NAtagMCAllPeoplePartyInfo.Head.SubCmd))] = m_NAtagMCAllPeoplePartyInfo
#------------------------------------------------------
# AA 03 升阶功能特惠奖励记录 #tagMCClassUPDayAwardRecordList
class  tagMCClassUPDayAwardRecord(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("DayType", c_ubyte),    # 奖励日类型
                  ("Record", c_int),    # 奖励记录
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAA
        self.SubCmd = 0x03
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xAA
        self.SubCmd = 0x03
        self.DayType = 0
        self.Record = 0
        return
    def GetLength(self):
        return sizeof(tagMCClassUPDayAwardRecord)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 03 升阶功能特惠奖励记录 //tagMCClassUPDayAwardRecordList:
                                Cmd:%s,
                                SubCmd:%s,
                                DayType:%d,
                                Record:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.DayType,
                                self.Record
                                )
        return DumpString
class  tagMCClassUPDayAwardRecordList(Structure):
    Head = tagHead()
    RecordCount = 0    #(BYTE RecordCount)//记录个数
    RecordInfoList = list()    #(vector<tagMCClassUPDayAwardRecord> RecordInfoList)//记录列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x03
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.RecordCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.RecordCount):
            temRecordInfoList = tagMCClassUPDayAwardRecord()
            _pos = temRecordInfoList.ReadData(_lpData, _pos)
            self.RecordInfoList.append(temRecordInfoList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x03
        self.RecordCount = 0
        self.RecordInfoList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.RecordCount):
            length += self.RecordInfoList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.RecordCount)
        for i in range(self.RecordCount):
            data = CommFunc.WriteString(data, self.RecordInfoList[i].GetLength(), self.RecordInfoList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                RecordCount:%d,
                                RecordInfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.RecordCount,
                                "..."
                                )
        return DumpString
m_NAtagMCClassUPDayAwardRecordList=tagMCClassUPDayAwardRecordList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCClassUPDayAwardRecordList.Head.Cmd,m_NAtagMCClassUPDayAwardRecordList.Head.SubCmd))] = m_NAtagMCClassUPDayAwardRecordList
#------------------------------------------------------
# AA 06 消费奖励信息 #tagMCCostProfitInfo
class  tagMCCostProfitInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ActionID", c_int),    # 活动ID
                  ("TotalCost", c_int),    # 总消费
                  ("AwardState", c_int),    # 奖励领取状态
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAA
        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 = 0xAA
        self.SubCmd = 0x06
        self.ActionID = 0
        self.TotalCost = 0
        self.AwardState = 0
        return
    def GetLength(self):
        return sizeof(tagMCCostProfitInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 06 消费奖励信息 //tagMCCostProfitInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                ActionID:%d,
                                TotalCost:%d,
                                AwardState:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ActionID,
                                self.TotalCost,
                                self.AwardState
                                )
        return DumpString
m_NAtagMCCostProfitInfo=tagMCCostProfitInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCostProfitInfo.Cmd,m_NAtagMCCostProfitInfo.SubCmd))] = m_NAtagMCCostProfitInfo
#------------------------------------------------------
# AA 07 消费排行特惠信息 #tagMCCostRankTeHuiInfo
class  tagMCCostRankTeHuiInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ActionID", c_int),    # 活动ID
                  ("TotalCost", c_int),    # 总累计消费钻石
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAA
        self.SubCmd = 0x07
        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 = 0x07
        self.ActionID = 0
        self.TotalCost = 0
        return
    def GetLength(self):
        return sizeof(tagMCCostRankTeHuiInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 07 消费排行特惠信息 //tagMCCostRankTeHuiInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                ActionID:%d,
                                TotalCost:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ActionID,
                                self.TotalCost
                                )
        return DumpString
m_NAtagMCCostRankTeHuiInfo=tagMCCostRankTeHuiInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCostRankTeHuiInfo.Cmd,m_NAtagMCCostRankTeHuiInfo.SubCmd))] = m_NAtagMCCostRankTeHuiInfo
#------------------------------------------------------
@@ -25610,198 +24779,6 @@
m_NAtagMCNewXJSDRecharge=tagMCNewXJSDRecharge()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNewXJSDRecharge.Cmd,m_NAtagMCNewXJSDRecharge.SubCmd))] = m_NAtagMCNewXJSDRecharge
#------------------------------------------------------
# AA 05 充值排行特惠信息 #tagMCRechargeRankTeHuiInfo
class  tagMCRechargeRankTeHuiInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ActionID", c_int),    # 活动ID
                  ("TotalGold", c_int),    # 总累计充值元宝
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAA
        self.SubCmd = 0x05
        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 = 0x05
        self.ActionID = 0
        self.TotalGold = 0
        return
    def GetLength(self):
        return sizeof(tagMCRechargeRankTeHuiInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 05 充值排行特惠信息 //tagMCRechargeRankTeHuiInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                ActionID:%d,
                                TotalGold:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ActionID,
                                self.TotalGold
                                )
        return DumpString
m_NAtagMCRechargeRankTeHuiInfo=tagMCRechargeRankTeHuiInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCRechargeRankTeHuiInfo.Cmd,m_NAtagMCRechargeRankTeHuiInfo.SubCmd))] = m_NAtagMCRechargeRankTeHuiInfo
#------------------------------------------------------
# AA 04 充值特惠信息 #tagMCRechargeTeHuiInfoList
class  tagMCRechargeTeHuiInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("GotCnt", c_ubyte),    # 已领取次数
                  ("CanGetCnt", c_ubyte),    # 当前可领取次数
                  ("CurTotalGold", c_int),    # 当前规则累计充值元宝-仅针对累充规则
                  ]
    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.GotCnt = 0
        self.CanGetCnt = 0
        self.CurTotalGold = 0
        return
    def GetLength(self):
        return sizeof(tagMCRechargeTeHuiInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 04 充值特惠信息 //tagMCRechargeTeHuiInfoList:
                                Cmd:%s,
                                SubCmd:%s,
                                GotCnt:%d,
                                CanGetCnt:%d,
                                CurTotalGold:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.GotCnt,
                                self.CanGetCnt,
                                self.CurTotalGold
                                )
        return DumpString
class  tagMCRechargeTeHuiInfoList(Structure):
    Head = tagHead()
    ActionID = 0    #(DWORD ActionID)// 活动ID
    TotalGold = 0    #(DWORD TotalGold)// 总累计充值元宝
    InfoCnt = 0    #(BYTE InfoCnt)// 信息个数
    InfoList = list()    #(vector<tagMCRechargeTeHuiInfo> InfoList)// 信息列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x04
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.ActionID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.TotalGold,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.InfoCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.InfoCnt):
            temInfoList = tagMCRechargeTeHuiInfo()
            _pos = temInfoList.ReadData(_lpData, _pos)
            self.InfoList.append(temInfoList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x04
        self.ActionID = 0
        self.TotalGold = 0
        self.InfoCnt = 0
        self.InfoList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 4
        length += 4
        length += 1
        for i in range(self.InfoCnt):
            length += self.InfoList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteDWORD(data, self.ActionID)
        data = CommFunc.WriteDWORD(data, self.TotalGold)
        data = CommFunc.WriteBYTE(data, self.InfoCnt)
        for i in range(self.InfoCnt):
            data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                ActionID:%d,
                                TotalGold:%d,
                                InfoCnt:%d,
                                InfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.ActionID,
                                self.TotalGold,
                                self.InfoCnt,
                                "..."
                                )
        return DumpString
m_NAtagMCRechargeTeHuiInfoList=tagMCRechargeTeHuiInfoList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCRechargeTeHuiInfoList.Head.Cmd,m_NAtagMCRechargeTeHuiInfoList.Head.SubCmd))] = m_NAtagMCRechargeTeHuiInfoList
#------------------------------------------------------
ServerPython/CoreServerGroup/GameServer/Script/DataRecordPack.py
@@ -561,37 +561,3 @@
    SendEventPack("CompensationEntire", dataDict)
    return
## 发送充值排行榜特惠活动奖励邮件记录流向
#  @param curPlayerID: 玩家ID
#  @param GUID:
#  @param actionID: 活动ID
#  @param actionValue: 活动编号
#  @param order: 奖励排名
#  @param rewardItemList: 奖励物品列表
#  @return None
def DR_SendRechareRankTeHuiRewardMail(curPlayerID, GUID, actionID, actionValue, order, rewardItemList):
    dataDict = {'PlayerID':curPlayerID, 'GUID':GUID, 'ActionID':actionID, 'ActionValue':actionValue,
                'Order':order, 'ItemList':rewardItemList}
    #发送封包
    SendEventPack("SendRechareRankTeHuiRewardMail", dataDict)
    return
## 发送消费排行榜特惠活动奖励邮件记录流向
#  @param curPlayerID: 玩家ID
#  @param GUID:
#  @param actionID: 活动ID
#  @param actionValue: 活动编号
#  @param order: 奖励排名
#  @param rewardItemList: 奖励物品列表
#  @return None
def DR_SendCostRankTeHuiRewardMail(curPlayerID, GUID, actionID, actionValue, order, rewardItemList):
    dataDict = {'PlayerID':curPlayerID, 'GUID':GUID, 'ActionID':actionID, 'ActionValue':actionValue,
                'Order':order, 'ItemList':rewardItemList}
    #发送封包
    SendEventPack("SendCostRankTeHuiRewardMail", dataDict)
    return
ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/ClearOpenServerDay.py
@@ -28,7 +28,6 @@
import ShareDefine
import PlayerBillboard
import PlayerUniversalGameRec
import GameWorldActionTeHui
import GameWorldProcess
import GameWorldBoss
import GMCommon
@@ -74,9 +73,6 @@
#    GameWorld.GetHightLadderMgr().ClearAllPlayer()
#    HighLadder.Sync_HightLadderCanFightPlayer(curPlayer, curPlayer.GetPlayerID())
#    curPlayer.Sync_HightLadderTopPlayer(3)
    # 清除特惠活动数据
    GameWorldActionTeHui.OnGMClearTeHui()
    
    # 清除Rec
    delRecTypeList = []
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionTeHui.py
File was deleted
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
@@ -85,10 +85,8 @@
import PlayerGeTui
#import PlayerManorWar
import GameWorldBoss
#import GameWorldActionTeHui
#import HighLadder
import PlayerCompensation
#import GameWorldShopItem
import ReadChConfig
import EventReport
#import ReloadModule
@@ -405,8 +403,6 @@
    Dispose_DataBase_GMShell(tick)
    ##处理重开服务器后, 活动继续开启逻辑根据天数
    #GameWorldActionControl.Dispose_Action_GoOn_ByDay(tick)
    #定时神秘商店刷新
    #GameWorldShopItem.Dispose_ShopItemRefresh(tick)
    
    #定时向RouteServer发送消息
    Dispose_SendMsg_RouteServer(tick)
@@ -1245,7 +1241,6 @@
    CrossRealmPK.OnGameServerInitOK()
    #世界boss被杀次数重置
    #GameWorldBoss.CheckResetBossKilledCntOnServerInit()
    #GameWorldActionTeHui.OnGameServerInitOK() # 特惠活动初始化
    
    __Func_HighPrecisionProcess(tick) # 主动触发一次高精度的调用,确保服务器启动后一些功能活动等的数据会被加载
    
@@ -1412,12 +1407,6 @@
    GameWorldFamilyWar.OnMapServerInitOK()
    # 领地争夺战
    #PlayerManorWar.OnMapServerInitOK()
    # 特惠活动
    #GameWorldActionTeHui.OnMapServerInitOK()
    # 商店信息
    #GameWorldShopItem.OnMapServerInitOK()
    
    # 跨服服务器状态
    isCrossServerOpen = GameWorld.GetGameWorld().GetDictByKey(ShareDefine.Def_Notify_WorldKey_CrossServerOpen)
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldShopItem.py
File was deleted
ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
@@ -41,7 +41,6 @@
import PlayerBourse
import PlayerZhuXianBoss
import PlayerXMZZ
import GameWorldShopItem
import PlayerTruck
import HighLadder
import EventReport
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerBillboard.py
@@ -652,78 +652,6 @@
def ViewBillboardRangeByObjID(index, clientData, tick):
    return
## 更新充值特惠排行榜
#  @param cmdList
#  @return None
def MapServer_UpdateRechargeRankBillboard(cmdList):
    playerID, playerName, playerOpInfo, playerJob, playerLV, familyName, actionID, actionNum, updateGold = cmdList
    # 排行榜上榜限制
    RechargeRankInfoDict = ReadChConfig.GetEvalChConfig("TeHuiAction_RechargeRank")
    gameWorld = GameWorld.GetGameWorld()
    actionNumKey = ShareDefine.Def_Notify_WorldKey_DayAction_RechargeRank
    curActionNum = gameWorld.GetDictByKey(actionNumKey)
    curActionID = gameWorld.GetDictByKey(ShareDefine.Def_Notify_WorldKey_DayAction_ID % actionNumKey)
    GameWorld.DebugLog("MapServer_UpdateRechargeRankBillboard...")
    GameWorld.DebugLog("    actionID=%s,actionNum=%s,updateGold=%s,curActionID=%s,curActionNum=%s,"
                       % (actionID, actionNum, updateGold, curActionID, curActionNum), playerID)
    # 非当前活动,不更新
    if actionNum not in RechargeRankInfoDict or actionNum != curActionNum or actionID != curActionID:
        GameWorld.DebugLog("    非当前充值特惠排行榜活动,不更新...", playerID)
        return
    rechargeRankInfoList = RechargeRankInfoDict[actionNum]
    if len(rechargeRankInfoList) <= 0:
        return
    limitGold = rechargeRankInfoList[0] # 限制上榜充值数
    if updateGold < limitGold:
        GameWorld.DebugLog("    未达到最低上榜充值数=%s,不更新..." % limitGold, playerID)
        return
    #排行榜
    cmpValue = updateGold
    isOk = UpdatePlayerBillboard(playerID, playerName, familyName, ShareDefine.Def_BT_RechargeTeHui,
                                 playerJob, playerLV, updateGold, cmpValue)
    GameWorld.DebugLog("    更新充值特惠排行榜 isOk=%s" % isOk, playerID)
    return
## 更新消费特惠排行榜
#  @param cmdList
#  @return None
def MapServer_UpdateCostRankBillboard(cmdList):
    playerID, playerName, playerOpInfo, playerJob, playerLV, familyName, actionID, actionNum, updateGold = cmdList
    # 排行榜上榜限制
    costRankInfoDict = ReadChConfig.GetEvalChConfig("TeHuiAction_CostRank")
    gameWorld = GameWorld.GetGameWorld()
    actionNumKey = ShareDefine.Def_Notify_WorldKey_DayAction_CostRank
    curActionNum = gameWorld.GetDictByKey(actionNumKey)
    curActionID = gameWorld.GetDictByKey(ShareDefine.Def_Notify_WorldKey_DayAction_ID % actionNumKey)
    GameWorld.DebugLog("MapServer_UpdateCostRankBillboard...")
    GameWorld.DebugLog("    actionID=%s,actionNum=%s,updateGold=%s,curActionID=%s,curActionNum=%s,"
                       % (actionID, actionNum, updateGold, curActionID, curActionNum), playerID)
    # 非当前活动,不更新
    if actionNum not in costRankInfoDict or actionNum != curActionNum or actionID != curActionID:
        GameWorld.DebugLog("    非当前消费特惠排行榜活动,不更新...", playerID)
        return
    costRankInfoList = costRankInfoDict[actionNum]
    if len(costRankInfoList) <= 0:
        return
    limitGold = costRankInfoList[0] # 限制上榜消费数
    if updateGold < limitGold:
        GameWorld.DebugLog("    未达到最低上榜消费数=%s,不更新..." % limitGold, playerID)
        return
    #排行榜
    cmpValue = updateGold
    isOk = UpdatePlayerBillboard(playerID, playerName, familyName, ShareDefine.Def_BT_CostTeHui,
                                 playerJob, playerLV, 0, cmpValue)
    GameWorld.DebugLog("    更新消费特惠排行榜 isOk=%s" % isOk, playerID)
    return
## 排行榜更新是否受等级限制
def IsBillboardLVLimit(playerLV, billboardType):
    # 等级判断已由地图处理掉,这里不再做判断
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerDBGSEvent.py
@@ -123,9 +123,6 @@
# 本服红包产出数
Def_RedPacketOutput = "RedPacketOutput"
Def_TeHuiRepeatOrderKey = "DA_DayRepeatOrder" # 特惠循环顺序key
Def_TeHuiRepeatNumKey = "DA_DayRepeatNum" # 今日特惠循环编号
Def_BossRefreshTime = 'BossRefreshTime_%s'  # boss刷新时间, 参数为NPCID
#世界等级计算额外时间参数
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py
@@ -387,7 +387,6 @@
    GameWorld.DebugLog('    玩家战盟名变更处理, newFamilyName=%s' % familyName, playerID)
    #不处理排行榜
    needChangeFamilyBillboardList = [
                                     #ShareDefine.Def_BT_RechargeTeHui,  # 充值特惠活动排行榜-当前期记录
                                     ]
    billboardMgr = GameWorld.GetBillboard()
    for billboardIndex in needChangeFamilyBillboardList:
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerQuery.py
@@ -44,7 +44,6 @@
import GameWorldOpenServerCampaign
import ShareDefine
import GameDataRecord
import GameWorldShopItem
import PlayerCompensation
import PlayerFB
import UpdatePlayerName
@@ -531,14 +530,6 @@
        PlayerFamily.MapServer_PyAddFamilyInfoValue(curPlayer, eval(resultName))
        return
    
    if callName == 'UpdRechargeRankBillboard':     #地图服务器更新玩家通知特惠累计充值排行榜
        PlayerBillboard.MapServer_UpdateRechargeRankBillboard(eval(resultName))
        return
    if callName == 'UpdCostRankBillboard':     #地图服务器更新玩家通知特惠累计消费排行榜
        PlayerBillboard.MapServer_UpdateCostRankBillboard(eval(resultName))
        return
    if callName == 'UpdateTotalRechargeBillboard':    #地图服务器更新玩家充值总数排行榜
        PlayerBillboard.MapServer_UpdateTotalRechargeBillboard(eval(resultName))
        return
@@ -718,12 +709,6 @@
    # 全局击杀数统计
    if callName =="GlobalKillCount":
        GameWorldProcess.UpdGlobalKillCount(eval(resultName))
        return
    # 自定义商店全服限购次数清空
    if callName =="ShopItemClearBuyCnt":
        shopID = eval(resultName)[0]
        GameWorldShopItem.DoShopItemClearBuyCnt(shopID)
        return
    
    # 新手指导员天数
@@ -935,11 +920,6 @@
#        if not curPlayer:
#            return
#        resultName = '%s' % PlayerFamilyStore.DoMapServerFamilyStore(curPlayer, eval(resultName), tick)
    # 自定义商店物品
    if callName == "ShopItem":
        curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(srcPlayerID)
        resultName = '%s' % GameWorldShopItem.DoShopItemQueryResult(curPlayer, eval(resultName))
     
    # 玩家天梯奖励
    if callName == "HighLadderReward":
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
@@ -195,19 +195,6 @@
Def_Notify_WorldKey_ManorWarLastFamilyID = 'ManorWarLastFamilyID_%s'  # 领地争夺上次占领的战盟id,%s地图id
Def_Notify_WorldKey_ManorWarServerDay = 'ManorWarServerDay' # 领地战活动时的开服天数
Def_Notify_WorldKey_DayAction_ID = "%s_ID" # 按天开启的活动唯一id,参数为活动标识key
Def_Notify_WorldKey_DayAction_BeginTime = "%s_BT" # 按天开启的活动开始时间,参数为活动标识key
Def_Notify_WorldKey_DayAction_EndTime = "%s_ET" # 按天开启的活动结束时间,参数为活动标识key
Def_Notify_WorldKey_DayAction_ClassUPNum = "DA_ClassUPNum" # 按天开启的活动标识key - 升阶特惠活动编号
Def_Notify_WorldKey_DayAction_Recharge = "DA_Recharge" # 按天开启的活动标识key - 充值特惠
Def_Notify_WorldKey_DayAction_DiscountShop = "DA_DiscountShop" # 按天开启的活动标识key - 折扣店
Def_Notify_WorldKey_DayAction_RechargeRank = "DA_RechargeRank" # 按天开启的活动标识key - 充值排行榜特惠
Def_Notify_WorldKey_DayAction_MixDiscountShop = "DA_MixDiscountShop" # 按天开启的活动标识key - 合服折扣店
Def_Notify_WorldKey_DayAction_CostProfit = "DA_CostProfit" # 按天开启的活动标识key - 消费返利
Def_Notify_WorldKey_DayAction_CostRank = "DA_CostRank" # 按天开启的活动标识key - 消费特惠排行榜
Def_Notify_WorldKey_ShopState = 'ShopState_%s'               # 自定义商店开启状态, 参数为ShopID
Def_Notify_WorldKey_TimeShopRefreshTime = 'TimeShopRefreshTime_%s'  # 定时商店上次全服刷新时间
Def_Notify_WorldKey_ActionBuffState = 'ActionBuffState_%s'   # 活动玩家buff状态, 1-可加,0-不可添加; 参数为buffID
Def_Notify_WorldKey_LoginAwardStartDate = 'LoginAwardStartDate_%s'   # 登录领取奖励开始时间,参数为活动类型
@@ -647,14 +634,9 @@
    
    Def_BT_HighLadder,                        #天梯竞技场排行
    Def_BT_HighLadder_Yester,                 #天梯竞技场昨日排行
    Def_BT_RechargeTeHuiLast,                 #充值特惠活动排行榜-上一期记录
    Def_BT_RechargeTeHui,                     #充值特惠活动排行榜-当前期记录
    Def_BT_CostTeHui,                         #消费特惠排行榜
    Def_BT_CostTeHuiLast,                     #消费特惠排行榜上一期
    
    Def_BT_Max,                               #排行榜最大类型
) = range(0, 30 + 2)
) = range(0, 26 + 2)
    
#职业对应战力排行榜类型
JobFightPowerBillboardDict = {
@@ -1061,7 +1043,7 @@
                                Def_UniversalGameRecType_32,              
                                Def_UniversalGameRecType_ManorWarInfo,  # 领地争夺战占领结果33
                                Def_UniversalGameRecType_34,
                                Def_UniversalGameRecType_ShopItem,  # 自定义商店全服限购数据35
                                Def_UniversalGameRecType_35,
                                Def_UniversalGameRecType_36,
                                Def_UniversalGameRecType_37,
                                Def_UniversalGameRecType_38,
@@ -1500,59 +1482,6 @@
Difficulty_Elite, # 精英 
Difficulty_Hero, # 英雄 
) = range(3)
# 称号类型定义,需与\PySysDB\tagDienstgrad.txt表中的类型Type一致,从1开始
(
Def_DienstgradType_Flower, # 鲜花称号
) = range(1, 2)
# 特惠活动类型
TeHuiActivityList = (
TeHuiActivity_Recharge, # 0充值特惠
TeHuiActivity_ClassUP, # 功能升阶特惠
TeHuiActivity_DiscountShop, # 折扣店特惠
TeHuiActivity_RechargeRank, # 充值排行特惠/合服每日充值排行榜
TeHuiActivity_MixDiscountShop, # 合服折扣店特惠
TeHuiActivity_CostProfit, # 5消费返利
TeHuiActivity_CostRank, # 消费排行榜
) = range(1, 7 + 1)
# 特惠活动类型对应的Key
TeHuiTypeKeyDict = {
TeHuiActivity_Recharge:Def_Notify_WorldKey_DayAction_Recharge,
TeHuiActivity_ClassUP:Def_Notify_WorldKey_DayAction_ClassUPNum,
TeHuiActivity_DiscountShop:Def_Notify_WorldKey_DayAction_DiscountShop,
TeHuiActivity_RechargeRank:Def_Notify_WorldKey_DayAction_RechargeRank,
TeHuiActivity_MixDiscountShop:Def_Notify_WorldKey_DayAction_MixDiscountShop,
TeHuiActivity_CostProfit:Def_Notify_WorldKey_DayAction_CostProfit,
TeHuiActivity_CostRank:Def_Notify_WorldKey_DayAction_CostRank,
}
# 功能升阶日类型
ClassUPDayList = (
ClassUPDay_Horse, # 坐骑
ClassUPDay_Wing, # 翅膀
ClassUPDay_Office # 官爵
) = range(1, 3 + 1)
# 总动员类型
Def_ZDY_List = (
Def_ZDY_Horse, # 坐骑
Def_ZDY_Wing, # 翅膀
Def_ZDY_Office, # 官爵
Def_ZDY_Pet, # 宠物
Def_ZDY_FightPower, # 战力
) = range(1, 5 + 1)
# 自定义商店查询定义
(
Def_ShopItem_QueryServerBuyCnt, # 查询全部全服限购数据
Def_ShopItem_BuyItem, # 购买物品
Def_ShopItem_ClearBuyCnt, # 重置全服限购数据
Def_ShopItem_SyncServerBuyCnt, # 同步单品全服限购数据
) = range(4)
# 每日活动编号定义
DailyActionIDList = (
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini
@@ -612,46 +612,6 @@
PacketSubCMD_1=0x22
PacketCallFunc_1=UpdatePlayerName
;特惠活动
[PlayerTeHui]
ScriptName = Player\PlayerTeHui.py
Writer = hxp
Releaser = hxp
RegType = 0
RegisterPackCount = 3
PacketCMD_1=0xAA
PacketSubCMD_1=0x02
PacketCallFunc_1=ClientGetClassUPDayAward
PacketCMD_2=0xAA
PacketSubCMD_2=0x03
PacketCallFunc_2=ClientGetRechargeTeHuiAward
PacketCMD_3=0xAA
PacketSubCMD_3=0x04
PacketCallFunc_3=OnGetCostProfitAward
;自定义商店物品
[ShopItemManage]
ScriptName = Event\EventSrc\ShopItemManage.py
Writer = hxp
Releaser = hxp
RegType = 0
RegisterPackCount = 3
PacketCMD_1=0xA2
PacketSubCMD_1=0x07
PacketCallFunc_1=QueryShopItem
PacketCMD_2=0xA2
PacketSubCMD_2=0x08
PacketCallFunc_2=BuyShopItem
PacketCMD_3=0xA2
PacketSubCMD_3=0x14
PacketCallFunc_3=RefreshShopItem
;天梯竞技场
[HighLadder]
ScriptName = Player\HighLadderTube
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -3268,7 +3268,7 @@
Def_PDictType_Wing,    # 翅膀
Def_PDictType_FB,    # 副本相关
Def_PDictType_FightPower,    # 战斗力15
Def_PDictType_TeHuiAction,    # 特惠活动
Def_PDictType_16,
Def_PDictType_Activity,    # 活跃度
Def_PDictType_GoldInvest,    # 投资理财
Def_PDictType_19,
@@ -3484,10 +3484,6 @@
Def_PDict_MysticalShopGoods = "MysticalShopGoods_%s"   # 神秘商店商品ID,索引
Def_PDict_MysticalShopRefreshCnt = "MysticalShopRefreshCnt"   # 神秘商店已手动刷新次数
Def_PDict_MysticalShopLVRefreshCnt = "MysticalShopLVRefreshCnt"   # 神秘商店等级段刷新次数
Def_PDict_ShopItemBuyCnt = "ShopItemBuyCnt_%s_%s"   # 自定义商品已购买次数,(shopID, itemIndex)
Def_PDict_ShopItemOpenState = "ShopItemOpenState_%s_%s"   # 自定义神秘商店物品开启状态,(shopID, keyNum)
Def_PDict_TimeShopRefreshCnt = "TimeShopRefreshCnt_%s"   # 自定义神秘商店已手动刷新次数,(shopID)
Def_PDict_TimeShopLastGlobalRefreshTime = "TimeShopLastGlobalRTime_%s" # 玩家上次刷新神秘商店是的全服标记,(shopID)
Def_PDict_HighLadderFightCnt = "HighLadderFightCnt"   #天梯每日挑战次数记录
Def_PDict_HighLadderAddCnt = "HighLadderAddCnt"       #天梯已购买次数
Def_PDict_HighLadder_Currency = "HighLadderCurrency"   #天梯积分
@@ -3797,24 +3793,6 @@
Def_PDict_FightPower_Horse = "FightPower_Horse"  # 坐骑战斗力
Def_PDict_FightPower_List = [Def_PDict_FightPower_Total, Def_PDict_FightPower_Horse]
# 特惠活动 Def_PDictType_TeHuiAction
Def_PDict_TeHui_ActionID = "%s_ID"  # 玩家身上的特惠活动id,参数为GameServer同步的活动标识
Def_PDict_TeHui_ClassUPAwardRecord = "TH_ClassUPAwardRecord_%s"  # 升阶特惠奖励记录,参数(升阶特惠类型)
Def_PDict_TeHui_RechargeGotCnt = "TH_RechargeGotCnt_%s"  # 充值特惠奖励已领取次数,参数(规则索引,从0开始)
Def_PDict_TeHui_RechargeCanGetCnt = "TH_RechargeCanGetCnt_%s"  # 充值特惠奖励可领取次数,参数同上
Def_PDict_TeHui_RechargeCurTotalGold = "TH_RechargeCurTotalGold_%s"  # 充值特惠奖励累计充值钻石,参数同上
Def_PDict_TeHui_RechargeTotalGold = "TH_RechargeTotalGold_%s"  # 充值特惠奖励总累计充值钻石,有参数,但是没给参数值,有一定几率更新不了key值,改为没参数的
Def_PDict_TeHui_RechargeTotalGoldEx = "TH_RechargeTotalGold"  # 充值特惠奖励总累计充值钻石
Def_PDict_TeHui_LastRechargeNum = "TH_LastRechargeNum"  # 上次充值特惠活动标识, 用于补发上次未领取的奖励
Def_PDict_TeHui_RechargeRankTotalGold = "TH_RechargeRankTGold_%s"  # 充值排行特惠奖励总累计充值钻石,有参数,但是没给参数值,有一定几率更新不了key值,改为没参数的
Def_PDict_TeHui_RechargeRankTotalGoldEx = "TH_RechargeRankTGold"  # 充值排行特惠奖励总累计充值钻石
Def_PDict_TeHui_CostTotalGold = "TH_CostTotalGold"  # 消费返利总累计消费钻石
Def_PDict_TeHui_CostAwardState = "TH_CostAwardState"  # 消费奖励领取状态
Def_PDict_TeHui_LastCostIndex = "TH_LastCostIndex"  # 上次消费返利活动标识, 用于补发上次未领取的奖励
Def_PDict_TeHui_CostRankTotalGold = "TH_CostRankTGold_%s"  # 消费排行特惠奖励总累计充值钻石,有参数,但是没给参数值,有一定几率更新不了key值,改为没参数的
Def_PDict_TeHui_CostRankTotalGoldEx = "TH_CostRankTGold"  # 消费排行特惠奖励总累计充值钻石
# 每日活跃度 Def_PDictType_Activity
Def_PDict_Activity_FinishCnt = "Activity_FinishCnt_%s"  # 活跃度类型对应完成次数
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
@@ -1785,58 +1785,6 @@
#------------------------------------------------------
# AD 01 查询特惠活动信息 #tagCGQueryTeHuiActivetyInfo
class  tagCGQueryTeHuiActivetyInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ActivityType", c_ubyte),    # 活动类型
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAD
        self.SubCmd = 0x01
        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 = 0xAD
        self.SubCmd = 0x01
        self.ActivityType = 0
        return
    def GetLength(self):
        return sizeof(tagCGQueryTeHuiActivetyInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AD 01 查询特惠活动信息 //tagCGQueryTeHuiActivetyInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                ActivityType:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ActivityType
                                )
        return DumpString
m_NAtagCGQueryTeHuiActivetyInfo=tagCGQueryTeHuiActivetyInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryTeHuiActivetyInfo.Cmd,m_NAtagCGQueryTeHuiActivetyInfo.SubCmd))] = m_NAtagCGQueryTeHuiActivetyInfo
#------------------------------------------------------
# AE 07 运镖时间倒计时结束 #tagCGTruckTimeEnd
class  tagCGTruckTimeEnd(Structure):
@@ -3999,66 +3947,6 @@
#------------------------------------------------------
# A2 08 购买自定义商店物品 #tagCMBuyShopItem
class  tagCMBuyShopItem(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ShopID", c_int),
                  ("ItemShopIndex", c_ushort),
                  ("BuyCount", c_ushort),    #购买数量
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA2
        self.SubCmd = 0x08
        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 = 0xA2
        self.SubCmd = 0x08
        self.ShopID = 0
        self.ItemShopIndex = 0
        self.BuyCount = 0
        return
    def GetLength(self):
        return sizeof(tagCMBuyShopItem)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A2 08 购买自定义商店物品 //tagCMBuyShopItem:
                                Cmd:%s,
                                SubCmd:%s,
                                ShopID:%d,
                                ItemShopIndex:%d,
                                BuyCount:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ShopID,
                                self.ItemShopIndex,
                                self.BuyCount
                                )
        return DumpString
m_NAtagCMBuyShopItem=tagCMBuyShopItem()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMBuyShopItem.Cmd,m_NAtagCMBuyShopItem.SubCmd))] = m_NAtagCMBuyShopItem
#------------------------------------------------------
# A2 10 清除副本CD#tagCMClearFBCD
class  tagCMClearFBCD(Structure):
@@ -5041,58 +4929,6 @@
#------------------------------------------------------
# A2 07 请求自定义商店物品信息 #tagCMQueryShopItem
class  tagCMQueryShopItem(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ShopID", c_int),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA2
        self.SubCmd = 0x07
        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 = 0xA2
        self.SubCmd = 0x07
        self.ShopID = 0
        return
    def GetLength(self):
        return sizeof(tagCMQueryShopItem)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A2 07 请求自定义商店物品信息 //tagCMQueryShopItem:
                                Cmd:%s,
                                SubCmd:%s,
                                ShopID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ShopID
                                )
        return DumpString
m_NAtagCMQueryShopItem=tagCMQueryShopItem()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMQueryShopItem.Cmd,m_NAtagCMQueryShopItem.SubCmd))] = m_NAtagCMQueryShopItem
#------------------------------------------------------
# A2 06 快速完成任务#tagCMQuickFinishMission
class  tagCMQuickFinishMission(Structure):
@@ -5194,58 +5030,6 @@
m_NAtagCMRefreshMysticalShop=tagCMRefreshMysticalShop()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRefreshMysticalShop.Cmd,m_NAtagCMRefreshMysticalShop.SubCmd))] = m_NAtagCMRefreshMysticalShop
#------------------------------------------------------
# A2 14 刷新定时神秘商店物品#tagCMRefreshShopItem
class  tagCMRefreshShopItem(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ShopID", c_int),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA2
        self.SubCmd = 0x14
        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 = 0xA2
        self.SubCmd = 0x14
        self.ShopID = 0
        return
    def GetLength(self):
        return sizeof(tagCMRefreshShopItem)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A2 14 刷新定时神秘商店物品//tagCMRefreshShopItem:
                                Cmd:%s,
                                SubCmd:%s,
                                ShopID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ShopID
                                )
        return DumpString
m_NAtagCMRefreshShopItem=tagCMRefreshShopItem()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRefreshShopItem.Cmd,m_NAtagCMRefreshShopItem.SubCmd))] = m_NAtagCMRefreshShopItem
#------------------------------------------------------
@@ -12828,174 +12612,6 @@
m_NAtagCMFlashSaleAppointment=tagCMFlashSaleAppointment()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMFlashSaleAppointment.Cmd,m_NAtagCMFlashSaleAppointment.SubCmd))] = m_NAtagCMFlashSaleAppointment
#------------------------------------------------------
# AA 02 领取升阶功能特惠奖励 #tagCMGetClassUPDayAward
class  tagCMGetClassUPDayAward(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("DayType", c_ubyte),    # 升阶日类型
                  ("ClassLV", c_ubyte),    # 阶级
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAA
        self.SubCmd = 0x02
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xAA
        self.SubCmd = 0x02
        self.DayType = 0
        self.ClassLV = 0
        return
    def GetLength(self):
        return sizeof(tagCMGetClassUPDayAward)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 02 领取升阶功能特惠奖励 //tagCMGetClassUPDayAward:
                                Cmd:%s,
                                SubCmd:%s,
                                DayType:%d,
                                ClassLV:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.DayType,
                                self.ClassLV
                                )
        return DumpString
m_NAtagCMGetClassUPDayAward=tagCMGetClassUPDayAward()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGetClassUPDayAward.Cmd,m_NAtagCMGetClassUPDayAward.SubCmd))] = m_NAtagCMGetClassUPDayAward
#------------------------------------------------------
# AA 04 领取消费奖励 #tagCMGetCostAward
class  tagCMGetCostAward(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ActionID", c_int),    # 活动ID
                  ("Index", 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.ActionID = 0
        self.Index = 0
        return
    def GetLength(self):
        return sizeof(tagCMGetCostAward)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 04 领取消费奖励 //tagCMGetCostAward:
                                Cmd:%s,
                                SubCmd:%s,
                                ActionID:%d,
                                Index:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ActionID,
                                self.Index
                                )
        return DumpString
m_NAtagCMGetCostAward=tagCMGetCostAward()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGetCostAward.Cmd,m_NAtagCMGetCostAward.SubCmd))] = m_NAtagCMGetCostAward
#------------------------------------------------------
# AA 03 领取充值特惠奖励 #tagCMGetRechargeTeHuiAward
class  tagCMGetRechargeTeHuiAward(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ActionID", c_int),    # 活动ID
                  ("Index", c_ubyte),    # 规则索引
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAA
        self.SubCmd = 0x03
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xAA
        self.SubCmd = 0x03
        self.ActionID = 0
        self.Index = 0
        return
    def GetLength(self):
        return sizeof(tagCMGetRechargeTeHuiAward)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 03 领取充值特惠奖励 //tagCMGetRechargeTeHuiAward:
                                Cmd:%s,
                                SubCmd:%s,
                                ActionID:%d,
                                Index:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ActionID,
                                self.Index
                                )
        return DumpString
m_NAtagCMGetRechargeTeHuiAward=tagCMGetRechargeTeHuiAward()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGetRechargeTeHuiAward.Cmd,m_NAtagCMGetRechargeTeHuiAward.SubCmd))] = m_NAtagCMGetRechargeTeHuiAward
#------------------------------------------------------
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -4188,124 +4188,6 @@
#------------------------------------------------------
# A9 07 定时商店刷新倒计时 #tagGCShopRefreshTimeList
class  tagGCShopRefreshTime(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ShopID", c_int),    # 商店ID
                  ("RemainSecond", c_int),    # 多少秒后刷新
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA9
        self.SubCmd = 0x07
        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 = 0xA9
        self.SubCmd = 0x07
        self.ShopID = 0
        self.RemainSecond = 0
        return
    def GetLength(self):
        return sizeof(tagGCShopRefreshTime)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A9 07 定时商店刷新倒计时 //tagGCShopRefreshTimeList:
                                Cmd:%s,
                                SubCmd:%s,
                                ShopID:%d,
                                RemainSecond:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ShopID,
                                self.RemainSecond
                                )
        return DumpString
class  tagGCShopRefreshTimeList(Structure):
    Head = tagHead()
    ShopCnt = 0    #(BYTE ShopCnt)//商店信息个数
    ShopTimeInfoList = list()    #(vector<tagGCShopRefreshTime> ShopTimeInfoList)//商店信息列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA9
        self.Head.SubCmd = 0x07
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.ShopCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.ShopCnt):
            temShopTimeInfoList = tagGCShopRefreshTime()
            _pos = temShopTimeInfoList.ReadData(_lpData, _pos)
            self.ShopTimeInfoList.append(temShopTimeInfoList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA9
        self.Head.SubCmd = 0x07
        self.ShopCnt = 0
        self.ShopTimeInfoList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.ShopCnt):
            length += self.ShopTimeInfoList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.ShopCnt)
        for i in range(self.ShopCnt):
            data = CommFunc.WriteString(data, self.ShopTimeInfoList[i].GetLength(), self.ShopTimeInfoList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                ShopCnt:%d,
                                ShopTimeInfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.ShopCnt,
                                "..."
                                )
        return DumpString
m_NAtagGCShopRefreshTimeList=tagGCShopRefreshTimeList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCShopRefreshTimeList.Head.Cmd,m_NAtagGCShopRefreshTimeList.Head.SubCmd))] = m_NAtagGCShopRefreshTimeList
#------------------------------------------------------
# A9 06 商城全服购买次数通知 #tagGCStoreServerBuyCntInfo
class  tagGCStoreServerBuyCnt(Structure):
@@ -5725,132 +5607,6 @@
m_NAtagGCXMZZFightInfo=tagGCXMZZFightInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCXMZZFightInfo.Head.Cmd,m_NAtagGCXMZZFightInfo.Head.SubCmd))] = m_NAtagGCXMZZFightInfo
#------------------------------------------------------
# AD 01 特惠活动信息 #tagGCTeHuiActivityInfoList
class  tagGCTeHuiActivityInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ActivityType", c_ubyte),    # 活动类型
                  ("ActivityValue", c_int),    # 活动值
                  ("StartDate", c_int),    # 开始时间time
                  ("EndDate", c_int),    # 结束时间time
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAD
        self.SubCmd = 0x01
        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 = 0xAD
        self.SubCmd = 0x01
        self.ActivityType = 0
        self.ActivityValue = 0
        self.StartDate = 0
        self.EndDate = 0
        return
    def GetLength(self):
        return sizeof(tagGCTeHuiActivityInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AD 01 特惠活动信息 //tagGCTeHuiActivityInfoList:
                                Cmd:%s,
                                SubCmd:%s,
                                ActivityType:%d,
                                ActivityValue:%d,
                                StartDate:%d,
                                EndDate:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ActivityType,
                                self.ActivityValue,
                                self.StartDate,
                                self.EndDate
                                )
        return DumpString
class  tagGCTeHuiActivityInfoList(Structure):
    Head = tagHead()
    ActivityCount = 0    #(BYTE ActivityCount)//活动信息个数
    ActivityInfoList = list()    #(vector<tagGCTeHuiActivityInfo> ActivityInfoList)//活动信息列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAD
        self.Head.SubCmd = 0x01
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.ActivityCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.ActivityCount):
            temActivityInfoList = tagGCTeHuiActivityInfo()
            _pos = temActivityInfoList.ReadData(_lpData, _pos)
            self.ActivityInfoList.append(temActivityInfoList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAD
        self.Head.SubCmd = 0x01
        self.ActivityCount = 0
        self.ActivityInfoList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.ActivityCount):
            length += self.ActivityInfoList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.ActivityCount)
        for i in range(self.ActivityCount):
            data = CommFunc.WriteString(data, self.ActivityInfoList[i].GetLength(), self.ActivityInfoList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                ActivityCount:%d,
                                ActivityInfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.ActivityCount,
                                "..."
                                )
        return DumpString
m_NAtagGCTeHuiActivityInfoList=tagGCTeHuiActivityInfoList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCTeHuiActivityInfoList.Head.Cmd,m_NAtagGCTeHuiActivityInfoList.Head.SubCmd))] = m_NAtagGCTeHuiActivityInfoList
#------------------------------------------------------
@@ -15717,126 +15473,6 @@
#------------------------------------------------------
# A3 53 法宝特权数据 #tagMCMWPrivilegeDataInfo
class  tagMCMWPrivilegeData(Structure):
    _pack_ = 1
    _fields_ = [
                  ("PriID", c_int),    # 特权ID
                  ("State", c_ubyte),    #激活状态
                  ("CurValue", c_int),    #当前总进度
                  ("GotValue", c_int),    #已领取进度
                  ("ItemAwardState", 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.PriID = 0
        self.State = 0
        self.CurValue = 0
        self.GotValue = 0
        self.ItemAwardState = 0
        return
    def GetLength(self):
        return sizeof(tagMCMWPrivilegeData)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A3 53 法宝特权数据 //tagMCMWPrivilegeDataInfo:
                                PriID:%d,
                                State:%d,
                                CurValue:%d,
                                GotValue:%d,
                                ItemAwardState:%d
                                '''\
                                %(
                                self.PriID,
                                self.State,
                                self.CurValue,
                                self.GotValue,
                                self.ItemAwardState
                                )
        return DumpString
class  tagMCMWPrivilegeDataInfo(Structure):
    Head = tagHead()
    Count = 0    #(BYTE Count)// 信息个数
    InfoList = list()    #(vector<tagMCMWPrivilegeData> InfoList)// 信息列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x53
        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):
            temInfoList = tagMCMWPrivilegeData()
            _pos = temInfoList.ReadData(_lpData, _pos)
            self.InfoList.append(temInfoList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA3
        self.Head.SubCmd = 0x53
        self.Count = 0
        self.InfoList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.Count):
            length += self.InfoList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.Count)
        for i in range(self.Count):
            data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                InfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagMCMWPrivilegeDataInfo=tagMCMWPrivilegeDataInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCMWPrivilegeDataInfo.Head.Cmd,m_NAtagMCMWPrivilegeDataInfo.Head.SubCmd))] = m_NAtagMCMWPrivilegeDataInfo
#------------------------------------------------------
# A3 26 NPCID已采集次数信息 #tagMCNPCIDCollectionCntInfo
class  tagMCNPCIDCollectionCnt(Structure):
@@ -21389,126 +21025,6 @@
#------------------------------------------------------
# A8 04 通知商店限购物品已购买次数信息 # tagMCShopItemBuyCntInfoList
class  tagMCShopItemBuyCntInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("ShopID", c_int),
                  ("ItemShopIndex", c_ushort),
                  ("ItemID", c_int),
                  ("BuyCnt", c_int),    # 个人已购买数
                  ("ServerBuyCnt", c_int),    # 全服已购买数
                  ]
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.ShopID = 0
        self.ItemShopIndex = 0
        self.ItemID = 0
        self.BuyCnt = 0
        self.ServerBuyCnt = 0
        return
    def GetLength(self):
        return sizeof(tagMCShopItemBuyCntInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A8 04 通知商店限购物品已购买次数信息 // tagMCShopItemBuyCntInfoList:
                                ShopID:%d,
                                ItemShopIndex:%d,
                                ItemID:%d,
                                BuyCnt:%d,
                                ServerBuyCnt:%d
                                '''\
                                %(
                                self.ShopID,
                                self.ItemShopIndex,
                                self.ItemID,
                                self.BuyCnt,
                                self.ServerBuyCnt
                                )
        return DumpString
class  tagMCShopItemBuyCntInfoList(Structure):
    Head = tagHead()
    Count = 0    #(BYTE Count)//通知个数
    BuyCntList = list()    #(vector<tagMCShopItemBuyCntInfo> BuyCntList)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA8
        self.Head.SubCmd = 0x04
        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):
            temBuyCntList = tagMCShopItemBuyCntInfo()
            _pos = temBuyCntList.ReadData(_lpData, _pos)
            self.BuyCntList.append(temBuyCntList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA8
        self.Head.SubCmd = 0x04
        self.Count = 0
        self.BuyCntList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.Count):
            length += self.BuyCntList[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.BuyCntList[i].GetLength(), self.BuyCntList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                BuyCntList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagMCShopItemBuyCntInfoList=tagMCShopItemBuyCntInfoList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCShopItemBuyCntInfoList.Head.Cmd,m_NAtagMCShopItemBuyCntInfoList.Head.SubCmd))] = m_NAtagMCShopItemBuyCntInfoList
#------------------------------------------------------
# A8 02 通知NPC商店物品今日已购买次数 #tagMCShopItemDayBuyCntInfo
class  tagMCShopItemDayBuyCnt(Structure):
@@ -21618,239 +21134,6 @@
m_NAtagMCShopItemDayBuyCntInfo=tagMCShopItemDayBuyCntInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCShopItemDayBuyCntInfo.Head.Cmd,m_NAtagMCShopItemDayBuyCntInfo.Head.SubCmd))] = m_NAtagMCShopItemDayBuyCntInfo
#------------------------------------------------------
# A8 03 通知自定义商店物品信息 #tagMCShopItemInfoList
class  tagMCShopItemInfo(Structure):
    ShopID = 0    #(DWORD ShopID)
    ItemShopIndex = 0    #(WORD ItemShopIndex)
    DataSize = 0    #(DWORD DataSize)
    ItemList = ""    #(String ItemList)//物品列表[[物品ID,数量,是否绑定,是否定制]]
    PriceType = 0    #(BYTE PriceType)
    Price = 0    #(DWORD Price)
    OriginalPrice = 0    #(DWORD OriginalPrice)// 原价
    PlayerLVLimit = 0    #(WORD PlayerLVLimit)// 购买等级限制
    FamilyLVLimit = 0    #(BYTE FamilyLVLimit)// 购买战盟等级限制
    MaxBuyCnt = 0    #(DWORD MaxBuyCnt)// 个人限购数
    ServerMaxBuyCnt = 0    #(DWORD ServerMaxBuyCnt)// 全服限购数
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.ShopID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.ItemShopIndex,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.DataSize,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.ItemList,_pos = CommFunc.ReadString(_lpData, _pos,self.DataSize)
        self.PriceType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Price,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.OriginalPrice,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.PlayerLVLimit,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.FamilyLVLimit,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.MaxBuyCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.ServerMaxBuyCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        return _pos
    def Clear(self):
        self.ShopID = 0
        self.ItemShopIndex = 0
        self.DataSize = 0
        self.ItemList = ""
        self.PriceType = 0
        self.Price = 0
        self.OriginalPrice = 0
        self.PlayerLVLimit = 0
        self.FamilyLVLimit = 0
        self.MaxBuyCnt = 0
        self.ServerMaxBuyCnt = 0
        return
    def GetLength(self):
        length = 0
        length += 4
        length += 2
        length += 4
        length += len(self.ItemList)
        length += 1
        length += 4
        length += 4
        length += 2
        length += 1
        length += 4
        length += 4
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteDWORD(data, self.ShopID)
        data = CommFunc.WriteWORD(data, self.ItemShopIndex)
        data = CommFunc.WriteDWORD(data, self.DataSize)
        data = CommFunc.WriteString(data, self.DataSize, self.ItemList)
        data = CommFunc.WriteBYTE(data, self.PriceType)
        data = CommFunc.WriteDWORD(data, self.Price)
        data = CommFunc.WriteDWORD(data, self.OriginalPrice)
        data = CommFunc.WriteWORD(data, self.PlayerLVLimit)
        data = CommFunc.WriteBYTE(data, self.FamilyLVLimit)
        data = CommFunc.WriteDWORD(data, self.MaxBuyCnt)
        data = CommFunc.WriteDWORD(data, self.ServerMaxBuyCnt)
        return data
    def OutputString(self):
        DumpString = '''
                                ShopID:%d,
                                ItemShopIndex:%d,
                                DataSize:%d,
                                ItemList:%s,
                                PriceType:%d,
                                Price:%d,
                                OriginalPrice:%d,
                                PlayerLVLimit:%d,
                                FamilyLVLimit:%d,
                                MaxBuyCnt:%d,
                                ServerMaxBuyCnt:%d
                                '''\
                                %(
                                self.ShopID,
                                self.ItemShopIndex,
                                self.DataSize,
                                self.ItemList,
                                self.PriceType,
                                self.Price,
                                self.OriginalPrice,
                                self.PlayerLVLimit,
                                self.FamilyLVLimit,
                                self.MaxBuyCnt,
                                self.ServerMaxBuyCnt
                                )
        return DumpString
class  tagMCShopItemInfoList(Structure):
    Head = tagHead()
    Count = 0    #(BYTE Count)//通知个数
    ShopItemList = list()    #(vector<tagMCShopItemInfo> ShopItemList)
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA8
        self.Head.SubCmd = 0x03
        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):
            temShopItemList = tagMCShopItemInfo()
            _pos = temShopItemList.ReadData(_lpData, _pos)
            self.ShopItemList.append(temShopItemList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA8
        self.Head.SubCmd = 0x03
        self.Count = 0
        self.ShopItemList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.Count):
            length += self.ShopItemList[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.ShopItemList[i].GetLength(), self.ShopItemList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Count:%d,
                                ShopItemList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagMCShopItemInfoList=tagMCShopItemInfoList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCShopItemInfoList.Head.Cmd,m_NAtagMCShopItemInfoList.Head.SubCmd))] = m_NAtagMCShopItemInfoList
#------------------------------------------------------
# A8 05 通知神秘商店刷新次数 #tagMCShopRefreshCnt
class  tagMCShopRefreshCnt(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ShopID", c_int),    #商店ID
                  ("RefreshCnt", c_ushort),    #已手动刷新次数
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA8
        self.SubCmd = 0x05
        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 = 0xA8
        self.SubCmd = 0x05
        self.ShopID = 0
        self.RefreshCnt = 0
        return
    def GetLength(self):
        return sizeof(tagMCShopRefreshCnt)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A8 05 通知神秘商店刷新次数 //tagMCShopRefreshCnt:
                                Cmd:%s,
                                SubCmd:%s,
                                ShopID:%d,
                                RefreshCnt:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ShopID,
                                self.RefreshCnt
                                )
        return DumpString
m_NAtagMCShopRefreshCnt=tagMCShopRefreshCnt()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCShopRefreshCnt.Cmd,m_NAtagMCShopRefreshCnt.SubCmd))] = m_NAtagMCShopRefreshCnt
#------------------------------------------------------
@@ -23298,240 +22581,6 @@
m_NAtagMCAllPeoplePartyInfo=tagMCAllPeoplePartyInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCAllPeoplePartyInfo.Head.Cmd,m_NAtagMCAllPeoplePartyInfo.Head.SubCmd))] = m_NAtagMCAllPeoplePartyInfo
#------------------------------------------------------
# AA 03 升阶功能特惠奖励记录 #tagMCClassUPDayAwardRecordList
class  tagMCClassUPDayAwardRecord(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("DayType", c_ubyte),    # 奖励日类型
                  ("Record", c_int),    # 奖励记录
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAA
        self.SubCmd = 0x03
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xAA
        self.SubCmd = 0x03
        self.DayType = 0
        self.Record = 0
        return
    def GetLength(self):
        return sizeof(tagMCClassUPDayAwardRecord)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 03 升阶功能特惠奖励记录 //tagMCClassUPDayAwardRecordList:
                                Cmd:%s,
                                SubCmd:%s,
                                DayType:%d,
                                Record:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.DayType,
                                self.Record
                                )
        return DumpString
class  tagMCClassUPDayAwardRecordList(Structure):
    Head = tagHead()
    RecordCount = 0    #(BYTE RecordCount)//记录个数
    RecordInfoList = list()    #(vector<tagMCClassUPDayAwardRecord> RecordInfoList)//记录列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x03
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.RecordCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.RecordCount):
            temRecordInfoList = tagMCClassUPDayAwardRecord()
            _pos = temRecordInfoList.ReadData(_lpData, _pos)
            self.RecordInfoList.append(temRecordInfoList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x03
        self.RecordCount = 0
        self.RecordInfoList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.RecordCount):
            length += self.RecordInfoList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.RecordCount)
        for i in range(self.RecordCount):
            data = CommFunc.WriteString(data, self.RecordInfoList[i].GetLength(), self.RecordInfoList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                RecordCount:%d,
                                RecordInfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.RecordCount,
                                "..."
                                )
        return DumpString
m_NAtagMCClassUPDayAwardRecordList=tagMCClassUPDayAwardRecordList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCClassUPDayAwardRecordList.Head.Cmd,m_NAtagMCClassUPDayAwardRecordList.Head.SubCmd))] = m_NAtagMCClassUPDayAwardRecordList
#------------------------------------------------------
# AA 06 消费奖励信息 #tagMCCostProfitInfo
class  tagMCCostProfitInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ActionID", c_int),    # 活动ID
                  ("TotalCost", c_int),    # 总消费
                  ("AwardState", c_int),    # 奖励领取状态
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAA
        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 = 0xAA
        self.SubCmd = 0x06
        self.ActionID = 0
        self.TotalCost = 0
        self.AwardState = 0
        return
    def GetLength(self):
        return sizeof(tagMCCostProfitInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 06 消费奖励信息 //tagMCCostProfitInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                ActionID:%d,
                                TotalCost:%d,
                                AwardState:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ActionID,
                                self.TotalCost,
                                self.AwardState
                                )
        return DumpString
m_NAtagMCCostProfitInfo=tagMCCostProfitInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCostProfitInfo.Cmd,m_NAtagMCCostProfitInfo.SubCmd))] = m_NAtagMCCostProfitInfo
#------------------------------------------------------
# AA 07 消费排行特惠信息 #tagMCCostRankTeHuiInfo
class  tagMCCostRankTeHuiInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ActionID", c_int),    # 活动ID
                  ("TotalCost", c_int),    # 总累计消费钻石
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAA
        self.SubCmd = 0x07
        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 = 0x07
        self.ActionID = 0
        self.TotalCost = 0
        return
    def GetLength(self):
        return sizeof(tagMCCostRankTeHuiInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 07 消费排行特惠信息 //tagMCCostRankTeHuiInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                ActionID:%d,
                                TotalCost:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ActionID,
                                self.TotalCost
                                )
        return DumpString
m_NAtagMCCostRankTeHuiInfo=tagMCCostRankTeHuiInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCostRankTeHuiInfo.Cmd,m_NAtagMCCostRankTeHuiInfo.SubCmd))] = m_NAtagMCCostRankTeHuiInfo
#------------------------------------------------------
@@ -25730,198 +24779,6 @@
m_NAtagMCNewXJSDRecharge=tagMCNewXJSDRecharge()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNewXJSDRecharge.Cmd,m_NAtagMCNewXJSDRecharge.SubCmd))] = m_NAtagMCNewXJSDRecharge
#------------------------------------------------------
# AA 05 充值排行特惠信息 #tagMCRechargeRankTeHuiInfo
class  tagMCRechargeRankTeHuiInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ActionID", c_int),    # 活动ID
                  ("TotalGold", c_int),    # 总累计充值元宝
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAA
        self.SubCmd = 0x05
        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 = 0x05
        self.ActionID = 0
        self.TotalGold = 0
        return
    def GetLength(self):
        return sizeof(tagMCRechargeRankTeHuiInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 05 充值排行特惠信息 //tagMCRechargeRankTeHuiInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                ActionID:%d,
                                TotalGold:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ActionID,
                                self.TotalGold
                                )
        return DumpString
m_NAtagMCRechargeRankTeHuiInfo=tagMCRechargeRankTeHuiInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCRechargeRankTeHuiInfo.Cmd,m_NAtagMCRechargeRankTeHuiInfo.SubCmd))] = m_NAtagMCRechargeRankTeHuiInfo
#------------------------------------------------------
# AA 04 充值特惠信息 #tagMCRechargeTeHuiInfoList
class  tagMCRechargeTeHuiInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("GotCnt", c_ubyte),    # 已领取次数
                  ("CanGetCnt", c_ubyte),    # 当前可领取次数
                  ("CurTotalGold", c_int),    # 当前规则累计充值元宝-仅针对累充规则
                  ]
    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.GotCnt = 0
        self.CanGetCnt = 0
        self.CurTotalGold = 0
        return
    def GetLength(self):
        return sizeof(tagMCRechargeTeHuiInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 04 充值特惠信息 //tagMCRechargeTeHuiInfoList:
                                Cmd:%s,
                                SubCmd:%s,
                                GotCnt:%d,
                                CanGetCnt:%d,
                                CurTotalGold:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.GotCnt,
                                self.CanGetCnt,
                                self.CurTotalGold
                                )
        return DumpString
class  tagMCRechargeTeHuiInfoList(Structure):
    Head = tagHead()
    ActionID = 0    #(DWORD ActionID)// 活动ID
    TotalGold = 0    #(DWORD TotalGold)// 总累计充值元宝
    InfoCnt = 0    #(BYTE InfoCnt)// 信息个数
    InfoList = list()    #(vector<tagMCRechargeTeHuiInfo> InfoList)// 信息列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x04
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.ActionID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.TotalGold,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.InfoCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.InfoCnt):
            temInfoList = tagMCRechargeTeHuiInfo()
            _pos = temInfoList.ReadData(_lpData, _pos)
            self.InfoList.append(temInfoList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x04
        self.ActionID = 0
        self.TotalGold = 0
        self.InfoCnt = 0
        self.InfoList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 4
        length += 4
        length += 1
        for i in range(self.InfoCnt):
            length += self.InfoList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteDWORD(data, self.ActionID)
        data = CommFunc.WriteDWORD(data, self.TotalGold)
        data = CommFunc.WriteBYTE(data, self.InfoCnt)
        for i in range(self.InfoCnt):
            data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                ActionID:%d,
                                TotalGold:%d,
                                InfoCnt:%d,
                                InfoList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.ActionID,
                                self.TotalGold,
                                self.InfoCnt,
                                "..."
                                )
        return DumpString
m_NAtagMCRechargeTeHuiInfoList=tagMCRechargeTeHuiInfoList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCRechargeTeHuiInfoList.Head.Cmd,m_NAtagMCRechargeTeHuiInfoList.Head.SubCmd))] = m_NAtagMCRechargeTeHuiInfoList
#------------------------------------------------------
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/DataRecordPack.py
@@ -1414,26 +1414,6 @@
    SendEventPack("CollectNPCOK", dataDict, curPlayer)
    return
## 玩家领取充值特惠活动奖励
#  @param curPlayer: 玩家实例
#  @param actionID: 活动id
#  @param actionNum: 活动编号
#  @param itemID: 物品id
#  @param itemCnt: 物品数量
#  @param isPutIn: 是否放入
#  @param prizeIndex: 奖励中的第x种奖励
#  @return
def DR_PlayerTeHuiRechargePrize(curPlayer, actionID, actionNum, itemID, itemCnt, isPutIn, prizeIndex):
    #MySql不识别 True False,改成1和0
    isPutIn = 1 if isPutIn else 0
    dataDict = {'PlayerID':curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(),
                'AccID':curPlayer.GetAccID(), 'ActionID':actionID, 'ActionNum':actionNum,
                'IsPutIn':isPutIn, "ItemID":itemID, "ItemCount":itemCnt, 'PrizeIndex':prizeIndex}
    SendEventPack("TeHuiRechargePrize", dataDict, curPlayer)
    return
## 领取投资回报
#  @param curPlayer: 玩家实例
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py
@@ -1720,13 +1720,6 @@
    RunQuestEvent(curPlayer, "on_goldinvest", "on_goldinvest", Def_RunQuestType_Normal)
    RunQuestEvent(curPlayer, "on_goldinvest", investType, Def_RunQuestType_Normal)
    return
def EventRespons_OnBuyTeHuiItem(curPlayer, shopID, itemShopIndex):
    # 购买特惠商店物品
    RunQuestEvent(curPlayer, "on_buy_tehuiitem", "on_buy_tehuiitem", Def_RunQuestType_Normal)
    RunQuestEvent(curPlayer, "on_buy_tehuiitem", shopID, Def_RunQuestType_Normal)
    RunQuestEvent(curPlayer, "on_buy_tehuiitem", "%s_%s" % (shopID, itemShopIndex), Def_RunQuestType_Normal)
    return
def EventRespons_OnActivatePet(curPlayer, petID):
    # 激活宠物
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py
@@ -53,7 +53,6 @@
#import PlayerCostVIP
import GameFuncComm
import IpyGameDataPY
import ShopItemManage
import PlayerPet
import PlayerArrestTask
import PlayerMagicWeapon
@@ -2592,28 +2591,6 @@
            return False
        return petPack.GetCount() > 0
    return PlayerPet.GetPetDataItemByNPCID(curPlayer, checkPetID) != None
def ConditionType_Is_Buy_Tehuiitem(curPlayer, curMission, curConditionNode):
    # 判断是否购买过特惠商店物品
    # <Is_Buy_Tehuiitem shopID="1007" itemShopIndex="0,1,2"/> shopID暂定需指定商店ID, itemShopIndex可指定多个索引, 中间英文逗号隔开
    shopID = GameWorld.ToIntDef(curConditionNode.GetAttribute("shopID"), 0)
    if not shopID:
        return False
    indexList = []
    indexInfo = curConditionNode.GetAttribute("itemShopIndex")
    if indexInfo != '':
        indexList = eval('[' + indexInfo + ']')
    if not indexList:
        shopItemList = ShopItemManage.GetShopItemList(shopID)
        indexList = range(len(shopItemList))
    if not indexList:
        GameWorld.DebugLog("需指定判断的特惠商店物品索引编号!indexInfo=%s" % indexInfo)
        return False
    for i in indexList:
        buyCnt = ShopItemManage.__GetPlayerShopItemBuyCnt(curPlayer, shopID, i)
        if buyCnt > 0:
            return True
    return False
##竞技场是否达到多少名
# @param curPlayer 玩家实例
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/ShopItemManage.py
File was deleted
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/ClearTeHui.py
File was deleted
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -637,12 +637,6 @@
#    # 采集NPC次数通知
    NPCCommon.SyncCollNPCTime(curPlayer)
#        
#    # 特惠活动
#    PlayerTeHui.PlayerLogin_TeHui(curPlayer)
#
#    # 自定义商店
#    ShopItemManage.DoOnLogin(curPlayer)
#
#    # 每日活跃度
    PlayerActivity.OnLogin(curPlayer)
#    
@@ -1589,9 +1583,6 @@
    
    #防止玩家读取地图时未触发OnDay,读取地图后再次验证(2009.9.11)
    PlayerEventCounter.UpdatePlayerLoginTime(curPlayer)
    #特惠活动事件
    #PlayerTeHui.PlayerLoadMapOK(curPlayer)
    
    #设置阵营
    if curPlayer.GetFaction() != ChConfig.CampType_Neutral \
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerBillboard.py
@@ -231,50 +231,6 @@
    GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(0, 0, 0, "UpdateBillboardPlayerTruck",
                                                              '%s' % (cmdList), len(str(cmdList)))
    return
## 更新充值排行特惠排行榜
#  @param playerID: 玩家ID
#  @return:
def UpdateRechargeRankBillboard(curPlayer, actionID, actionNum, updateGold):
#    if GameWorld.IsGM(curPlayer):
#        #GM不上榜
#        return
    #排行榜需要数据[玩家ID, 玩家名字, 玩家职业, 击杀数]
    playerID = curPlayer.GetID()
    playerName = curPlayer.GetName()
    playerOpInfo = curPlayer.GetOperateInfo()
    playerJob = curPlayer.GetJob()
    playerLV = curPlayer.GetLV()
    familyName = curPlayer.GetFamilyName()
    GameWorld.DebugLog("更新特惠充值排行榜: actionID=%s,actionNum=%s,updateGold=%s"
                       % (actionID, actionNum, updateGold), curPlayer.GetPlayerID())
    sendMsg = '%s' % ([playerID, playerName, playerOpInfo, playerJob, playerLV, familyName, actionID, actionNum, updateGold])
    GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(0, 0, 0, 'UpdRechargeRankBillboard', \
            sendMsg, len(sendMsg))
    return
## 更新消费排行特惠排行榜
#  @param playerID: 玩家ID
#  @return:
def UpdateCostRankBillboard(curPlayer, actionID, actionNum, updateGold):
#    if GameWorld.IsGM(curPlayer):
#        #GM不上榜
#        return
    #排行榜需要数据[玩家ID, 玩家名字, 玩家职业, 击杀数]
    playerID = curPlayer.GetID()
    playerName = curPlayer.GetName()
    playerOpInfo = curPlayer.GetOperateInfo()
    playerJob = curPlayer.GetJob()
    playerLV = curPlayer.GetLV()
    familyName = curPlayer.GetFamilyName()
    GameWorld.DebugLog("更新特惠消费排行榜: actionID=%s,actionNum=%s,updateGold=%s"
                       % (actionID, actionNum, updateGold), curPlayer.GetPlayerID())
    sendMsg = '%s' % ([playerID, playerName, playerOpInfo, playerJob, playerLV, familyName, actionID, actionNum, updateGold])
    GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(0, 0, 0, 'UpdCostRankBillboard', \
            sendMsg, len(sendMsg))
    return
    
##更新玩家充值排行榜
# @param curPlayer 玩家实例
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -63,7 +63,6 @@
import PassiveBuffEffMng
import PlayerGameEvent
import EventReport
import PlayerTeHui
import PlayerGatherSoul
import PlayerSuccess
import PlayerPet
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py
@@ -53,14 +53,12 @@
import FunctionNPCCommon
import PlayerGoldGift
import PlayerActivity
import PlayerTeHui
import PlayerBindJadeWheel
import PlayerAction
import FBCommon
import PlayerSuccess
import PlayerFreeGoods
import PlayerMagicWeapon
import ShopItemManage
import ChItem
import PlayerGoldInvest
import PlayerNewGuyCard
@@ -1362,10 +1360,6 @@
    #elif key == ShareDefine.Def_Notify_WorldKey_ManorWar:
    #    GameLogic_ManorWar.OnManorWarStateChange(value, tick)
    #定时商店刷新
    elif key.startswith(ShareDefine.Def_Notify_WorldKey_TimeShopRefreshTime[:-2]):
        ShopItemManage.OnTimeShopRefresh(key, value, tick)
    # 跨服PK
    elif key == ShareDefine.Def_Notify_WorldKey_CrossPKSeasonID:
        PlayerCrossRealmPK.OnCrossRealmPKSeasonChange(value)
@@ -1430,10 +1424,6 @@
    # 王者仙盟
    elif key == ShareDefine.Def_Notify_WorldKey_ChampionFamilyID:
        GameLogic_FamilyWar.OnChampionFamilyIDChange()
    # 特惠活动
    elif key in ShareDefine.TeHuiTypeKeyDict.values():
        PlayerTeHui.ChangeTeHuiActionState(key)
    # 活动buff状态变更
    elif key.startswith(ShareDefine.Def_Notify_WorldKey_ActionBuffState[:-2]):            
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTeHui.py
File was deleted
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_ShopItem.py
File was deleted
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -195,19 +195,6 @@
Def_Notify_WorldKey_ManorWarLastFamilyID = 'ManorWarLastFamilyID_%s'  # 领地争夺上次占领的战盟id,%s地图id
Def_Notify_WorldKey_ManorWarServerDay = 'ManorWarServerDay' # 领地战活动时的开服天数
Def_Notify_WorldKey_DayAction_ID = "%s_ID" # 按天开启的活动唯一id,参数为活动标识key
Def_Notify_WorldKey_DayAction_BeginTime = "%s_BT" # 按天开启的活动开始时间,参数为活动标识key
Def_Notify_WorldKey_DayAction_EndTime = "%s_ET" # 按天开启的活动结束时间,参数为活动标识key
Def_Notify_WorldKey_DayAction_ClassUPNum = "DA_ClassUPNum" # 按天开启的活动标识key - 升阶特惠活动编号
Def_Notify_WorldKey_DayAction_Recharge = "DA_Recharge" # 按天开启的活动标识key - 充值特惠
Def_Notify_WorldKey_DayAction_DiscountShop = "DA_DiscountShop" # 按天开启的活动标识key - 折扣店
Def_Notify_WorldKey_DayAction_RechargeRank = "DA_RechargeRank" # 按天开启的活动标识key - 充值排行榜特惠
Def_Notify_WorldKey_DayAction_MixDiscountShop = "DA_MixDiscountShop" # 按天开启的活动标识key - 合服折扣店
Def_Notify_WorldKey_DayAction_CostProfit = "DA_CostProfit" # 按天开启的活动标识key - 消费返利
Def_Notify_WorldKey_DayAction_CostRank = "DA_CostRank" # 按天开启的活动标识key - 消费特惠排行榜
Def_Notify_WorldKey_ShopState = 'ShopState_%s'               # 自定义商店开启状态, 参数为ShopID
Def_Notify_WorldKey_TimeShopRefreshTime = 'TimeShopRefreshTime_%s'  # 定时商店上次全服刷新时间
Def_Notify_WorldKey_ActionBuffState = 'ActionBuffState_%s'   # 活动玩家buff状态, 1-可加,0-不可添加; 参数为buffID
Def_Notify_WorldKey_LoginAwardStartDate = 'LoginAwardStartDate_%s'   # 登录领取奖励开始时间,参数为活动类型
@@ -647,14 +634,9 @@
    
    Def_BT_HighLadder,                        #天梯竞技场排行
    Def_BT_HighLadder_Yester,                 #天梯竞技场昨日排行
    Def_BT_RechargeTeHuiLast,                 #充值特惠活动排行榜-上一期记录
    Def_BT_RechargeTeHui,                     #充值特惠活动排行榜-当前期记录
    Def_BT_CostTeHui,                         #消费特惠排行榜
    Def_BT_CostTeHuiLast,                     #消费特惠排行榜上一期
    
    Def_BT_Max,                               #排行榜最大类型
) = range(0, 30 + 2)
) = range(0, 26 + 2)
    
#职业对应战力排行榜类型
JobFightPowerBillboardDict = {
@@ -1061,7 +1043,7 @@
                                Def_UniversalGameRecType_32,              
                                Def_UniversalGameRecType_ManorWarInfo,  # 领地争夺战占领结果33
                                Def_UniversalGameRecType_34,
                                Def_UniversalGameRecType_ShopItem,  # 自定义商店全服限购数据35
                                Def_UniversalGameRecType_35,
                                Def_UniversalGameRecType_36,
                                Def_UniversalGameRecType_37,
                                Def_UniversalGameRecType_38,
@@ -1500,59 +1482,6 @@
Difficulty_Elite, # 精英 
Difficulty_Hero, # 英雄 
) = range(3)
# 称号类型定义,需与\PySysDB\tagDienstgrad.txt表中的类型Type一致,从1开始
(
Def_DienstgradType_Flower, # 鲜花称号
) = range(1, 2)
# 特惠活动类型
TeHuiActivityList = (
TeHuiActivity_Recharge, # 0充值特惠
TeHuiActivity_ClassUP, # 功能升阶特惠
TeHuiActivity_DiscountShop, # 折扣店特惠
TeHuiActivity_RechargeRank, # 充值排行特惠/合服每日充值排行榜
TeHuiActivity_MixDiscountShop, # 合服折扣店特惠
TeHuiActivity_CostProfit, # 5消费返利
TeHuiActivity_CostRank, # 消费排行榜
) = range(1, 7 + 1)
# 特惠活动类型对应的Key
TeHuiTypeKeyDict = {
TeHuiActivity_Recharge:Def_Notify_WorldKey_DayAction_Recharge,
TeHuiActivity_ClassUP:Def_Notify_WorldKey_DayAction_ClassUPNum,
TeHuiActivity_DiscountShop:Def_Notify_WorldKey_DayAction_DiscountShop,
TeHuiActivity_RechargeRank:Def_Notify_WorldKey_DayAction_RechargeRank,
TeHuiActivity_MixDiscountShop:Def_Notify_WorldKey_DayAction_MixDiscountShop,
TeHuiActivity_CostProfit:Def_Notify_WorldKey_DayAction_CostProfit,
TeHuiActivity_CostRank:Def_Notify_WorldKey_DayAction_CostRank,
}
# 功能升阶日类型
ClassUPDayList = (
ClassUPDay_Horse, # 坐骑
ClassUPDay_Wing, # 翅膀
ClassUPDay_Office # 官爵
) = range(1, 3 + 1)
# 总动员类型
Def_ZDY_List = (
Def_ZDY_Horse, # 坐骑
Def_ZDY_Wing, # 翅膀
Def_ZDY_Office, # 官爵
Def_ZDY_Pet, # 宠物
Def_ZDY_FightPower, # 战力
) = range(1, 5 + 1)
# 自定义商店查询定义
(
Def_ShopItem_QueryServerBuyCnt, # 查询全部全服限购数据
Def_ShopItem_BuyItem, # 购买物品
Def_ShopItem_ClearBuyCnt, # 重置全服限购数据
Def_ShopItem_SyncServerBuyCnt, # 同步单品全服限购数据
) = range(4)
# 每日活动编号定义
DailyActionIDList = (