From 6c51996f6fe11f5aedebee1f7e0ada672547890d Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 08 一月 2019 14:12:09 +0800
Subject: [PATCH] 5722 【后端】【1.5】跨服BOSS开发(增加主服角色刷新相关包)

---
 ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py | 1213 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 1,213 insertions(+), 0 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index c16f2b3..f374b04 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -9066,6 +9066,714 @@
 
 
 #------------------------------------------------------
+# A1 12 玩家初始化 #tagMCDBPlayer
+
+class  tagMCDBPlayer(Structure):
+    Head = tagHead()
+    AccID = ""    #(char AccID[65])//帐号名, 该角色所在的帐号的用户名
+    PlayerID = 0    #(DWORD PlayerID)
+    PlayerName = ""    #(char PlayerName[33])//size = 14
+    AccState = 0    #(BYTE AccState)//0: 未创建, 1: 创建OK,正常登录 2:封号 3:已删除
+    GMLevel = 0    #(BYTE GMLevel)//GM等级, 0:不是GM  >=1 : GM的等级
+    Sex = 0    #(BYTE Sex)//性别
+    Job = 0    #(BYTE Job)//职业, 0.新手 1.游侠 2.战士 3.弓箭手 4.术士 5.道士
+    ReincarnationLv = 0    #(WORD ReincarnationLv)// 转生等级
+    LV = 0    #(WORD LV)//等级
+    LVEx = 0    #(WORD LVEx)//玩家等级副本,用于转生
+    LV2 = 0    #(WORD LV2)//大师等级
+    ExpPoint = 0    #(DWORD ExpPoint)//扩充经验点数
+    TotalExp = 0    #(DWORD TotalExp)//总经验
+    Family = 0    #(DWORD Family)//家族
+    FamilyName = ""    #(char FamilyName[33])//家族名称
+    TeamHornor = 0    #(int TeamHornor)//组队荣誉
+    FamilyHornor = 0    #(int FamilyHornor)//家族荣耀
+    FamilyActiveValue = 0    #(int FamilyActiveValue)//家族活跃度
+    LastWeekFamilyActiveValue = 0    #(int LastWeekFamilyActiveValue)//上周家族活跃度
+    CountryHornor = 0    #(int CountryHornor)//本周国家功勋值
+    CountryLastWeekHornor = 0    #(int CountryLastWeekHornor)//上周国家功勋值
+    Mate = 0    #(DWORD Mate)
+    Gold = 0    #(DWORD Gold)//金子
+    GoldPaper = 0    #(DWORD GoldPaper)//金票
+    Silver = 0    #(DWORD Silver)//银子
+    SilverPaper = 0    #(DWORD SilverPaper)//银票
+    FightPoint = 0    #(DWORD FightPoint)//战斗值
+    HappyPoint = 0    #(DWORD HappyPoint)//脱机挂时长(秒)
+    LineID = 0    #(BYTE LineID)//角色所在线路
+    MapID = 0    #(WORD MapID)//角色所在地图
+    PosX = 0    #(WORD PosX)//角色坐标
+    PosY = 0    #(WORD PosY)
+    RebornMapID = 0    #(WORD RebornMapID)//重生点地图ID
+    RebornPosX = 0    #(WORD RebornPosX)
+    RebornPosY = 0    #(WORD RebornPosY)
+    State = 0    #(BYTE State)//角色状态   0.正常在线1.脱机挂在线 2脱机挂死亡
+    HP = 0    #(DWORD HP)//当前HP
+    XP = 0    #(DWORD XP)//当前XP
+    HPRestoreSetting = 0    #(WORD HPRestoreSetting)//少于这个值%自动喝血
+    MPRestoreSetting = 0    #(WORD MPRestoreSetting)//少于这个值%自动喝魔
+    FreePoint = 0    #(DWORD FreePoint)//未分配点数
+    FreeSkillPoint = 0    #(DWORD FreeSkillPoint)//未分配的技能点
+    BaseSTR = 0    #(int BaseSTR)//裸体力量
+    BasePNE = 0    #(int BasePNE)//裸体真元
+    BasePHY = 0    #(int BasePHY)//裸体筋骨
+    BaseCON = 0    #(int BaseCON)//裸体体魄
+    STR = 0    #(int STR)//力量
+    PNE = 0    #(int PNE)//真元
+    PHY = 0    #(int PHY)//筋骨
+    CON = 0    #(int CON)//体魄
+    PKValue = 0    #(WORD PKValue)//衡量PK能力的一项属性,由攻防计算而得
+    BackpackLV = 0    #(BYTE BackpackLV)//背包等级
+    WarehouseLV = 0    #(BYTE WarehouseLV)//仓库等级
+    TeamID = 0    #(DWORD TeamID)//队伍ID
+    UseGoldType = 0    #(BYTE UseGoldType)//默认用金子/金票        类型为MoneyType
+    UseSilverType = 0    #(BYTE UseSilverType)//默认用的银子/银票
+    AttackMode = 0    #(BYTE AttackMode)//攻击模式
+    LastWeekOnlineTime = 0    #(DWORD LastWeekOnlineTime)//上周在线时间
+    FBID = 0    #(BYTE FBID)//fb id
+    FamilyLV = 0    #(BYTE FamilyLV)//家族等级
+    FriendFavor = 0    #(DWORD FriendFavor)//好友人气值
+    Energy = 0    #(DWORD Energy)//精力值
+    EquipShowSwitch = 0    #(DWORD EquipShowSwitch)//装备显示开关
+    LuckValue = 0    #(DWORD LuckValue)//幸运值
+    ExAttr1 = 0    #(DWORD ExAttr1)//扩展属性1,各项目专用
+    ExAttr2 = 0    #(DWORD ExAttr2)//扩展属性2,各项目专用
+    ExAttr3 = 0    #(DWORD ExAttr3)//扩展属性3,各项目专用
+    ExAttr4 = 0    #(DWORD ExAttr4)//扩展属性4,各项目专用
+    ExAttr5 = 0    #(DWORD ExAttr5)//扩展属性5,各项目专用
+    Faction = 0    #(BYTE Faction)//阵营
+    InfamyValue = 0    #(DWORD InfamyValue)//恶名值
+    OfficialRank = 0    #(BYTE OfficialRank)//官阶,官职等级
+    ChangeCoinPointTotal = 0    #(DWORD ChangeCoinPointTotal)//兑换的点数总计
+    VIPLv = 0    #(BYTE VIPLv)//VIP等级
+    VIPLvForPhone = 0    #(BYTE VIPLvForPhone)//移动VIP等级
+    ExAttr6 = 0    #(DWORD ExAttr6)//扩展属性6,各项目专用
+    ExAttr7 = 0    #(DWORD ExAttr7)//扩展属性7,各项目专用
+    ExAttr8 = 0    #(DWORD ExAttr8)//扩展属性8,各项目专用
+    ExAttr9 = 0    #(DWORD ExAttr9)//扩展属性9,各项目专用
+    ExAttr10 = 0    #(DWORD ExAttr10)//扩展属性10,各项目专用
+    ModelMark = 0    #(DWORD ModelMark)// 变形模型mark
+    ExAttr11 = 0    #(DWORD ExAttr11)//预留的扩展属性字段,用来存放项目特定的属性
+    ExAttr12 = 0    #(DWORD ExAttr12)//预留的扩展属性字段,用来存放项目特定的属性
+    ExAttr13 = 0    #(DWORD ExAttr13)//预留的扩展属性字段,用来存放项目特定的属性
+    ExAttr14 = 0    #(DWORD ExAttr14)//预留的扩展属性字段,用来存放项目特定的属性
+    OperateInfo = 0    #(DWORD OperateInfo)//玩家附加运营商信息
+    Operate = ""    #(char Operate[15])//所属运营商平台名
+    ServerID = 0    #(DWORD ServerID)//所属区服ID
+    ExAttr15 = 0    #(DWORD ExAttr15)//预留的扩展属性字段,用来存放项目特定的属性
+    ExAttr16 = 0    #(DWORD ExAttr16)//预留的扩展属性字段,用来存放项目特定的属性
+    ExAttr17 = 0    #(DWORD ExAttr17)//预留的扩展属性字段,用来存放项目特定的属性
+    ExAttr18 = 0    #(DWORD ExAttr18)//预留的扩展属性字段,用来存放项目特定的属性
+    ExAttr19 = 0    #(DWORD ExAttr19)//预留的扩展属性字段,用来存放项目特定的属性
+    ExAttr20 = 0    #(DWORD ExAttr20)//预留的扩展属性字段,用来存放项目特定的属性
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xA1
+        self.Head.SubCmd = 0x12
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        _pos = self.Head.ReadData(_lpData, _pos)
+        self.AccID,_pos = CommFunc.ReadString(_lpData, _pos,65)
+        self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
+        self.AccState,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.GMLevel,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.Sex,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.ReincarnationLv,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.LVEx,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.LV2,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.ExpPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.TotalExp,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.Family,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.FamilyName,_pos = CommFunc.ReadString(_lpData, _pos,33)
+        self.TeamHornor,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.FamilyHornor,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.FamilyActiveValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.LastWeekFamilyActiveValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.CountryHornor,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.CountryLastWeekHornor,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.Mate,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.Gold,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.GoldPaper,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.Silver,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.SilverPaper,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.FightPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.HappyPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.LineID,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.MapID,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.PosX,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.PosY,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.RebornMapID,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.RebornPosX,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.RebornPosY,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.State,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.HP,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.XP,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.HPRestoreSetting,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.MPRestoreSetting,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.FreePoint,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.FreeSkillPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.BaseSTR,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.BasePNE,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.BasePHY,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.BaseCON,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.STR,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.PNE,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.PHY,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.CON,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.PKValue,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.BackpackLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.WarehouseLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.TeamID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.UseGoldType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.UseSilverType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.AttackMode,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.LastWeekOnlineTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.FBID,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.FamilyLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.FriendFavor,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.Energy,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.EquipShowSwitch,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.LuckValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.ExAttr1,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.ExAttr2,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.ExAttr3,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.ExAttr4,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.ExAttr5,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.Faction,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.InfamyValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.OfficialRank,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.ChangeCoinPointTotal,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.VIPLv,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.VIPLvForPhone,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.ExAttr6,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.ExAttr7,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.ExAttr8,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.ExAttr9,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.ExAttr10,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.ModelMark,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.ExAttr11,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.ExAttr12,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.ExAttr13,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.ExAttr14,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.OperateInfo,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.Operate,_pos = CommFunc.ReadString(_lpData, _pos,15)
+        self.ServerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.ExAttr15,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.ExAttr16,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.ExAttr17,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.ExAttr18,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.ExAttr19,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.ExAttr20,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xA1
+        self.Head.SubCmd = 0x12
+        self.AccID = ""
+        self.PlayerID = 0
+        self.PlayerName = ""
+        self.AccState = 0
+        self.GMLevel = 0
+        self.Sex = 0
+        self.Job = 0
+        self.ReincarnationLv = 0
+        self.LV = 0
+        self.LVEx = 0
+        self.LV2 = 0
+        self.ExpPoint = 0
+        self.TotalExp = 0
+        self.Family = 0
+        self.FamilyName = ""
+        self.TeamHornor = 0
+        self.FamilyHornor = 0
+        self.FamilyActiveValue = 0
+        self.LastWeekFamilyActiveValue = 0
+        self.CountryHornor = 0
+        self.CountryLastWeekHornor = 0
+        self.Mate = 0
+        self.Gold = 0
+        self.GoldPaper = 0
+        self.Silver = 0
+        self.SilverPaper = 0
+        self.FightPoint = 0
+        self.HappyPoint = 0
+        self.LineID = 0
+        self.MapID = 0
+        self.PosX = 0
+        self.PosY = 0
+        self.RebornMapID = 0
+        self.RebornPosX = 0
+        self.RebornPosY = 0
+        self.State = 0
+        self.HP = 0
+        self.XP = 0
+        self.HPRestoreSetting = 0
+        self.MPRestoreSetting = 0
+        self.FreePoint = 0
+        self.FreeSkillPoint = 0
+        self.BaseSTR = 0
+        self.BasePNE = 0
+        self.BasePHY = 0
+        self.BaseCON = 0
+        self.STR = 0
+        self.PNE = 0
+        self.PHY = 0
+        self.CON = 0
+        self.PKValue = 0
+        self.BackpackLV = 0
+        self.WarehouseLV = 0
+        self.TeamID = 0
+        self.UseGoldType = 0
+        self.UseSilverType = 0
+        self.AttackMode = 0
+        self.LastWeekOnlineTime = 0
+        self.FBID = 0
+        self.FamilyLV = 0
+        self.FriendFavor = 0
+        self.Energy = 0
+        self.EquipShowSwitch = 0
+        self.LuckValue = 0
+        self.ExAttr1 = 0
+        self.ExAttr2 = 0
+        self.ExAttr3 = 0
+        self.ExAttr4 = 0
+        self.ExAttr5 = 0
+        self.Faction = 0
+        self.InfamyValue = 0
+        self.OfficialRank = 0
+        self.ChangeCoinPointTotal = 0
+        self.VIPLv = 0
+        self.VIPLvForPhone = 0
+        self.ExAttr6 = 0
+        self.ExAttr7 = 0
+        self.ExAttr8 = 0
+        self.ExAttr9 = 0
+        self.ExAttr10 = 0
+        self.ModelMark = 0
+        self.ExAttr11 = 0
+        self.ExAttr12 = 0
+        self.ExAttr13 = 0
+        self.ExAttr14 = 0
+        self.OperateInfo = 0
+        self.Operate = ""
+        self.ServerID = 0
+        self.ExAttr15 = 0
+        self.ExAttr16 = 0
+        self.ExAttr17 = 0
+        self.ExAttr18 = 0
+        self.ExAttr19 = 0
+        self.ExAttr20 = 0
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 65
+        length += 4
+        length += 33
+        length += 1
+        length += 1
+        length += 1
+        length += 1
+        length += 2
+        length += 2
+        length += 2
+        length += 2
+        length += 4
+        length += 4
+        length += 4
+        length += 33
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 1
+        length += 2
+        length += 2
+        length += 2
+        length += 2
+        length += 2
+        length += 2
+        length += 1
+        length += 4
+        length += 4
+        length += 2
+        length += 2
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 2
+        length += 1
+        length += 1
+        length += 4
+        length += 1
+        length += 1
+        length += 1
+        length += 4
+        length += 1
+        length += 1
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 1
+        length += 4
+        length += 1
+        length += 4
+        length += 1
+        length += 1
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 15
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+        data = CommFunc.WriteString(data, 65, self.AccID)
+        data = CommFunc.WriteDWORD(data, self.PlayerID)
+        data = CommFunc.WriteString(data, 33, self.PlayerName)
+        data = CommFunc.WriteBYTE(data, self.AccState)
+        data = CommFunc.WriteBYTE(data, self.GMLevel)
+        data = CommFunc.WriteBYTE(data, self.Sex)
+        data = CommFunc.WriteBYTE(data, self.Job)
+        data = CommFunc.WriteWORD(data, self.ReincarnationLv)
+        data = CommFunc.WriteWORD(data, self.LV)
+        data = CommFunc.WriteWORD(data, self.LVEx)
+        data = CommFunc.WriteWORD(data, self.LV2)
+        data = CommFunc.WriteDWORD(data, self.ExpPoint)
+        data = CommFunc.WriteDWORD(data, self.TotalExp)
+        data = CommFunc.WriteDWORD(data, self.Family)
+        data = CommFunc.WriteString(data, 33, self.FamilyName)
+        data = CommFunc.WriteDWORD(data, self.TeamHornor)
+        data = CommFunc.WriteDWORD(data, self.FamilyHornor)
+        data = CommFunc.WriteDWORD(data, self.FamilyActiveValue)
+        data = CommFunc.WriteDWORD(data, self.LastWeekFamilyActiveValue)
+        data = CommFunc.WriteDWORD(data, self.CountryHornor)
+        data = CommFunc.WriteDWORD(data, self.CountryLastWeekHornor)
+        data = CommFunc.WriteDWORD(data, self.Mate)
+        data = CommFunc.WriteDWORD(data, self.Gold)
+        data = CommFunc.WriteDWORD(data, self.GoldPaper)
+        data = CommFunc.WriteDWORD(data, self.Silver)
+        data = CommFunc.WriteDWORD(data, self.SilverPaper)
+        data = CommFunc.WriteDWORD(data, self.FightPoint)
+        data = CommFunc.WriteDWORD(data, self.HappyPoint)
+        data = CommFunc.WriteBYTE(data, self.LineID)
+        data = CommFunc.WriteWORD(data, self.MapID)
+        data = CommFunc.WriteWORD(data, self.PosX)
+        data = CommFunc.WriteWORD(data, self.PosY)
+        data = CommFunc.WriteWORD(data, self.RebornMapID)
+        data = CommFunc.WriteWORD(data, self.RebornPosX)
+        data = CommFunc.WriteWORD(data, self.RebornPosY)
+        data = CommFunc.WriteBYTE(data, self.State)
+        data = CommFunc.WriteDWORD(data, self.HP)
+        data = CommFunc.WriteDWORD(data, self.XP)
+        data = CommFunc.WriteWORD(data, self.HPRestoreSetting)
+        data = CommFunc.WriteWORD(data, self.MPRestoreSetting)
+        data = CommFunc.WriteDWORD(data, self.FreePoint)
+        data = CommFunc.WriteDWORD(data, self.FreeSkillPoint)
+        data = CommFunc.WriteDWORD(data, self.BaseSTR)
+        data = CommFunc.WriteDWORD(data, self.BasePNE)
+        data = CommFunc.WriteDWORD(data, self.BasePHY)
+        data = CommFunc.WriteDWORD(data, self.BaseCON)
+        data = CommFunc.WriteDWORD(data, self.STR)
+        data = CommFunc.WriteDWORD(data, self.PNE)
+        data = CommFunc.WriteDWORD(data, self.PHY)
+        data = CommFunc.WriteDWORD(data, self.CON)
+        data = CommFunc.WriteWORD(data, self.PKValue)
+        data = CommFunc.WriteBYTE(data, self.BackpackLV)
+        data = CommFunc.WriteBYTE(data, self.WarehouseLV)
+        data = CommFunc.WriteDWORD(data, self.TeamID)
+        data = CommFunc.WriteBYTE(data, self.UseGoldType)
+        data = CommFunc.WriteBYTE(data, self.UseSilverType)
+        data = CommFunc.WriteBYTE(data, self.AttackMode)
+        data = CommFunc.WriteDWORD(data, self.LastWeekOnlineTime)
+        data = CommFunc.WriteBYTE(data, self.FBID)
+        data = CommFunc.WriteBYTE(data, self.FamilyLV)
+        data = CommFunc.WriteDWORD(data, self.FriendFavor)
+        data = CommFunc.WriteDWORD(data, self.Energy)
+        data = CommFunc.WriteDWORD(data, self.EquipShowSwitch)
+        data = CommFunc.WriteDWORD(data, self.LuckValue)
+        data = CommFunc.WriteDWORD(data, self.ExAttr1)
+        data = CommFunc.WriteDWORD(data, self.ExAttr2)
+        data = CommFunc.WriteDWORD(data, self.ExAttr3)
+        data = CommFunc.WriteDWORD(data, self.ExAttr4)
+        data = CommFunc.WriteDWORD(data, self.ExAttr5)
+        data = CommFunc.WriteBYTE(data, self.Faction)
+        data = CommFunc.WriteDWORD(data, self.InfamyValue)
+        data = CommFunc.WriteBYTE(data, self.OfficialRank)
+        data = CommFunc.WriteDWORD(data, self.ChangeCoinPointTotal)
+        data = CommFunc.WriteBYTE(data, self.VIPLv)
+        data = CommFunc.WriteBYTE(data, self.VIPLvForPhone)
+        data = CommFunc.WriteDWORD(data, self.ExAttr6)
+        data = CommFunc.WriteDWORD(data, self.ExAttr7)
+        data = CommFunc.WriteDWORD(data, self.ExAttr8)
+        data = CommFunc.WriteDWORD(data, self.ExAttr9)
+        data = CommFunc.WriteDWORD(data, self.ExAttr10)
+        data = CommFunc.WriteDWORD(data, self.ModelMark)
+        data = CommFunc.WriteDWORD(data, self.ExAttr11)
+        data = CommFunc.WriteDWORD(data, self.ExAttr12)
+        data = CommFunc.WriteDWORD(data, self.ExAttr13)
+        data = CommFunc.WriteDWORD(data, self.ExAttr14)
+        data = CommFunc.WriteDWORD(data, self.OperateInfo)
+        data = CommFunc.WriteString(data, 15, self.Operate)
+        data = CommFunc.WriteDWORD(data, self.ServerID)
+        data = CommFunc.WriteDWORD(data, self.ExAttr15)
+        data = CommFunc.WriteDWORD(data, self.ExAttr16)
+        data = CommFunc.WriteDWORD(data, self.ExAttr17)
+        data = CommFunc.WriteDWORD(data, self.ExAttr18)
+        data = CommFunc.WriteDWORD(data, self.ExAttr19)
+        data = CommFunc.WriteDWORD(data, self.ExAttr20)
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                AccID:%s,
+                                PlayerID:%d,
+                                PlayerName:%s,
+                                AccState:%d,
+                                GMLevel:%d,
+                                Sex:%d,
+                                Job:%d,
+                                ReincarnationLv:%d,
+                                LV:%d,
+                                LVEx:%d,
+                                LV2:%d,
+                                ExpPoint:%d,
+                                TotalExp:%d,
+                                Family:%d,
+                                FamilyName:%s,
+                                TeamHornor:%d,
+                                FamilyHornor:%d,
+                                FamilyActiveValue:%d,
+                                LastWeekFamilyActiveValue:%d,
+                                CountryHornor:%d,
+                                CountryLastWeekHornor:%d,
+                                Mate:%d,
+                                Gold:%d,
+                                GoldPaper:%d,
+                                Silver:%d,
+                                SilverPaper:%d,
+                                FightPoint:%d,
+                                HappyPoint:%d,
+                                LineID:%d,
+                                MapID:%d,
+                                PosX:%d,
+                                PosY:%d,
+                                RebornMapID:%d,
+                                RebornPosX:%d,
+                                RebornPosY:%d,
+                                State:%d,
+                                HP:%d,
+                                XP:%d,
+                                HPRestoreSetting:%d,
+                                MPRestoreSetting:%d,
+                                FreePoint:%d,
+                                FreeSkillPoint:%d,
+                                BaseSTR:%d,
+                                BasePNE:%d,
+                                BasePHY:%d,
+                                BaseCON:%d,
+                                STR:%d,
+                                PNE:%d,
+                                PHY:%d,
+                                CON:%d,
+                                PKValue:%d,
+                                BackpackLV:%d,
+                                WarehouseLV:%d,
+                                TeamID:%d,
+                                UseGoldType:%d,
+                                UseSilverType:%d,
+                                AttackMode:%d,
+                                LastWeekOnlineTime:%d,
+                                FBID:%d,
+                                FamilyLV:%d,
+                                FriendFavor:%d,
+                                Energy:%d,
+                                EquipShowSwitch:%d,
+                                LuckValue:%d,
+                                ExAttr1:%d,
+                                ExAttr2:%d,
+                                ExAttr3:%d,
+                                ExAttr4:%d,
+                                ExAttr5:%d,
+                                Faction:%d,
+                                InfamyValue:%d,
+                                OfficialRank:%d,
+                                ChangeCoinPointTotal:%d,
+                                VIPLv:%d,
+                                VIPLvForPhone:%d,
+                                ExAttr6:%d,
+                                ExAttr7:%d,
+                                ExAttr8:%d,
+                                ExAttr9:%d,
+                                ExAttr10:%d,
+                                ModelMark:%d,
+                                ExAttr11:%d,
+                                ExAttr12:%d,
+                                ExAttr13:%d,
+                                ExAttr14:%d,
+                                OperateInfo:%d,
+                                Operate:%s,
+                                ServerID:%d,
+                                ExAttr15:%d,
+                                ExAttr16:%d,
+                                ExAttr17:%d,
+                                ExAttr18:%d,
+                                ExAttr19:%d,
+                                ExAttr20:%d
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.AccID,
+                                self.PlayerID,
+                                self.PlayerName,
+                                self.AccState,
+                                self.GMLevel,
+                                self.Sex,
+                                self.Job,
+                                self.ReincarnationLv,
+                                self.LV,
+                                self.LVEx,
+                                self.LV2,
+                                self.ExpPoint,
+                                self.TotalExp,
+                                self.Family,
+                                self.FamilyName,
+                                self.TeamHornor,
+                                self.FamilyHornor,
+                                self.FamilyActiveValue,
+                                self.LastWeekFamilyActiveValue,
+                                self.CountryHornor,
+                                self.CountryLastWeekHornor,
+                                self.Mate,
+                                self.Gold,
+                                self.GoldPaper,
+                                self.Silver,
+                                self.SilverPaper,
+                                self.FightPoint,
+                                self.HappyPoint,
+                                self.LineID,
+                                self.MapID,
+                                self.PosX,
+                                self.PosY,
+                                self.RebornMapID,
+                                self.RebornPosX,
+                                self.RebornPosY,
+                                self.State,
+                                self.HP,
+                                self.XP,
+                                self.HPRestoreSetting,
+                                self.MPRestoreSetting,
+                                self.FreePoint,
+                                self.FreeSkillPoint,
+                                self.BaseSTR,
+                                self.BasePNE,
+                                self.BasePHY,
+                                self.BaseCON,
+                                self.STR,
+                                self.PNE,
+                                self.PHY,
+                                self.CON,
+                                self.PKValue,
+                                self.BackpackLV,
+                                self.WarehouseLV,
+                                self.TeamID,
+                                self.UseGoldType,
+                                self.UseSilverType,
+                                self.AttackMode,
+                                self.LastWeekOnlineTime,
+                                self.FBID,
+                                self.FamilyLV,
+                                self.FriendFavor,
+                                self.Energy,
+                                self.EquipShowSwitch,
+                                self.LuckValue,
+                                self.ExAttr1,
+                                self.ExAttr2,
+                                self.ExAttr3,
+                                self.ExAttr4,
+                                self.ExAttr5,
+                                self.Faction,
+                                self.InfamyValue,
+                                self.OfficialRank,
+                                self.ChangeCoinPointTotal,
+                                self.VIPLv,
+                                self.VIPLvForPhone,
+                                self.ExAttr6,
+                                self.ExAttr7,
+                                self.ExAttr8,
+                                self.ExAttr9,
+                                self.ExAttr10,
+                                self.ModelMark,
+                                self.ExAttr11,
+                                self.ExAttr12,
+                                self.ExAttr13,
+                                self.ExAttr14,
+                                self.OperateInfo,
+                                self.Operate,
+                                self.ServerID,
+                                self.ExAttr15,
+                                self.ExAttr16,
+                                self.ExAttr17,
+                                self.ExAttr18,
+                                self.ExAttr19,
+                                self.ExAttr20
+                                )
+        return DumpString
+
+
+m_NAtagMCDBPlayer=tagMCDBPlayer()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCDBPlayer.Head.Cmd,m_NAtagMCDBPlayer.Head.SubCmd))] = m_NAtagMCDBPlayer
+
+
+#------------------------------------------------------
 #A1 05 元宝消费记录 #tagMCGoldCostReport
 
 class  tagMCGoldCostReport(Structure):
@@ -22439,6 +23147,511 @@
 
 
 #------------------------------------------------------
+# AA 0A 周狂欢活动信息 #tagMCWeekPartyInfo
+
+class  tagMCWeekPartyItem(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("NeedPoint", c_ushort),    # 领奖需要积分
+                  ("ItemID", c_int),    # 物品ID
+                  ("ItemCnt", c_ushort),    # 物品数量
+                  ("IsBind", c_ubyte),    # 是否绑定
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        return
+
+    def ReadData(self, stringData, _pos=0, _len=0):
+        self.Clear()
+        memmove(addressof(self), stringData[_pos:], self.GetLength())
+        return _pos + self.GetLength()
+
+    def Clear(self):
+        self.NeedPoint = 0
+        self.ItemID = 0
+        self.ItemCnt = 0
+        self.IsBind = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagMCWeekPartyItem)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// AA 0A 周狂欢活动信息 //tagMCWeekPartyInfo:
+                                NeedPoint:%d,
+                                ItemID:%d,
+                                ItemCnt:%d,
+                                IsBind:%d
+                                '''\
+                                %(
+                                self.NeedPoint,
+                                self.ItemID,
+                                self.ItemCnt,
+                                self.IsBind
+                                )
+        return DumpString
+
+
+class  tagMCWeekPartyAction(Structure):
+    TemplateID = 0    #(DWORD TemplateID)// 模板ID
+    ActionType = 0    #(WORD ActionType)// 活动类别
+    TotalTimes = 0    #(BYTE TotalTimes)// 可完成的总次数,0表示不限次数
+    SingleTimes = 0    #(DWORD SingleTimes)// 单次领奖需要的次数
+    Point = 0    #(DWORD Point)// 单次领奖积分
+    Count = 0    #(BYTE Count)// 物品数
+    ItemInfo = list()    #(vector<tagMCWeekPartyItem> ItemInfo)// 物品信息
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        self.TemplateID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.ActionType,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.TotalTimes,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.SingleTimes,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.Point,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.Count):
+            temItemInfo = tagMCWeekPartyItem()
+            _pos = temItemInfo.ReadData(_lpData, _pos)
+            self.ItemInfo.append(temItemInfo)
+        return _pos
+
+    def Clear(self):
+        self.TemplateID = 0
+        self.ActionType = 0
+        self.TotalTimes = 0
+        self.SingleTimes = 0
+        self.Point = 0
+        self.Count = 0
+        self.ItemInfo = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += 4
+        length += 2
+        length += 1
+        length += 4
+        length += 4
+        length += 1
+        for i in range(self.Count):
+            length += self.ItemInfo[i].GetLength()
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteDWORD(data, self.TemplateID)
+        data = CommFunc.WriteWORD(data, self.ActionType)
+        data = CommFunc.WriteBYTE(data, self.TotalTimes)
+        data = CommFunc.WriteDWORD(data, self.SingleTimes)
+        data = CommFunc.WriteDWORD(data, self.Point)
+        data = CommFunc.WriteBYTE(data, self.Count)
+        for i in range(self.Count):
+            data = CommFunc.WriteString(data, self.ItemInfo[i].GetLength(), self.ItemInfo[i].GetBuffer())
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                TemplateID:%d,
+                                ActionType:%d,
+                                TotalTimes:%d,
+                                SingleTimes:%d,
+                                Point:%d,
+                                Count:%d,
+                                ItemInfo:%s
+                                '''\
+                                %(
+                                self.TemplateID,
+                                self.ActionType,
+                                self.TotalTimes,
+                                self.SingleTimes,
+                                self.Point,
+                                self.Count,
+                                "..."
+                                )
+        return DumpString
+
+
+class  tagMCWeekPartyDayInfo(Structure):
+    ActCnt = 0    #(BYTE ActCnt)// 数量
+    TemplateList = list()    #(vector<WORD> TemplateList)// 模板列表
+    PCount = 0    #(BYTE PCount)// 物品数
+    PItemInfo = list()    #(vector<tagMCWeekPartyItem> PItemInfo)// 物品信息
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        self.ActCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.ActCnt):
+            value,_pos=CommFunc.ReadWORD(_lpData,_pos)
+            self.TemplateList.append(value)
+        self.PCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.PCount):
+            temPItemInfo = tagMCWeekPartyItem()
+            _pos = temPItemInfo.ReadData(_lpData, _pos)
+            self.PItemInfo.append(temPItemInfo)
+        return _pos
+
+    def Clear(self):
+        self.ActCnt = 0
+        self.TemplateList = list()
+        self.PCount = 0
+        self.PItemInfo = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += 1
+        length += 2 * self.ActCnt
+        length += 1
+        for i in range(self.PCount):
+            length += self.PItemInfo[i].GetLength()
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteBYTE(data, self.ActCnt)
+        for i in range(self.ActCnt):
+            data = CommFunc.WriteWORD(data, self.TemplateList[i])
+        data = CommFunc.WriteBYTE(data, self.PCount)
+        for i in range(self.PCount):
+            data = CommFunc.WriteString(data, self.PItemInfo[i].GetLength(), self.PItemInfo[i].GetBuffer())
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                ActCnt:%d,
+                                TemplateList:%s,
+                                PCount:%d,
+                                PItemInfo:%s
+                                '''\
+                                %(
+                                self.ActCnt,
+                                "...",
+                                self.PCount,
+                                "..."
+                                )
+        return DumpString
+
+
+class  tagMCWeekPartyInfo(Structure):
+    Head = tagHead()
+    StartDate = ""    #(char StartDate[10])// 开始日期 y-m-d
+    EndtDate = ""    #(char EndtDate[10])// 结束日期 y-m-d
+    IsDayReset = 0    #(BYTE IsDayReset)//是否每天重置
+    ResetType = 0    #(BYTE ResetType)// 重置类型,0-0点重置;1-5点重置
+    LimitLV = 0    #(WORD LimitLV)// 限制等级
+    DayCnt = 0    #(BYTE DayCnt)// 天数
+    DayInfoList = list()    #(vector<tagMCWeekPartyDayInfo> DayInfoList)// 每天模板
+    TCount = 0    #(BYTE TCount)// 模板数
+    ActionInfo = list()    #(vector<tagMCWeekPartyAction> ActionInfo)// 活动模板信息
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xAA
+        self.Head.SubCmd = 0x0A
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        _pos = self.Head.ReadData(_lpData, _pos)
+        self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
+        self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
+        self.IsDayReset,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.DayCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.DayCnt):
+            temDayInfoList = tagMCWeekPartyDayInfo()
+            _pos = temDayInfoList.ReadData(_lpData, _pos)
+            self.DayInfoList.append(temDayInfoList)
+        self.TCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        for i in range(self.TCount):
+            temActionInfo = tagMCWeekPartyAction()
+            _pos = temActionInfo.ReadData(_lpData, _pos)
+            self.ActionInfo.append(temActionInfo)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xAA
+        self.Head.SubCmd = 0x0A
+        self.StartDate = ""
+        self.EndtDate = ""
+        self.IsDayReset = 0
+        self.ResetType = 0
+        self.LimitLV = 0
+        self.DayCnt = 0
+        self.DayInfoList = list()
+        self.TCount = 0
+        self.ActionInfo = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 10
+        length += 10
+        length += 1
+        length += 1
+        length += 2
+        length += 1
+        for i in range(self.DayCnt):
+            length += self.DayInfoList[i].GetLength()
+        length += 1
+        for i in range(self.TCount):
+            length += self.ActionInfo[i].GetLength()
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+        data = CommFunc.WriteString(data, 10, self.StartDate)
+        data = CommFunc.WriteString(data, 10, self.EndtDate)
+        data = CommFunc.WriteBYTE(data, self.IsDayReset)
+        data = CommFunc.WriteBYTE(data, self.ResetType)
+        data = CommFunc.WriteWORD(data, self.LimitLV)
+        data = CommFunc.WriteBYTE(data, self.DayCnt)
+        for i in range(self.DayCnt):
+            data = CommFunc.WriteString(data, self.DayInfoList[i].GetLength(), self.DayInfoList[i].GetBuffer())
+        data = CommFunc.WriteBYTE(data, self.TCount)
+        for i in range(self.TCount):
+            data = CommFunc.WriteString(data, self.ActionInfo[i].GetLength(), self.ActionInfo[i].GetBuffer())
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                StartDate:%s,
+                                EndtDate:%s,
+                                IsDayReset:%d,
+                                ResetType:%d,
+                                LimitLV:%d,
+                                DayCnt:%d,
+                                DayInfoList:%s,
+                                TCount:%d,
+                                ActionInfo:%s
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.StartDate,
+                                self.EndtDate,
+                                self.IsDayReset,
+                                self.ResetType,
+                                self.LimitLV,
+                                self.DayCnt,
+                                "...",
+                                self.TCount,
+                                "..."
+                                )
+        return DumpString
+
+
+m_NAtagMCWeekPartyInfo=tagMCWeekPartyInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCWeekPartyInfo.Head.Cmd,m_NAtagMCWeekPartyInfo.Head.SubCmd))] = m_NAtagMCWeekPartyInfo
+
+
+#------------------------------------------------------
+# AA 0B 周狂欢玩家活动信息 #tagMCWeekPartyPlayerInfo
+
+class  tagMCWeekPartyTaskInfo(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("ActionType", c_ushort),    # 活动类别
+                  ("CurTimes", c_ushort),    #已完成次数
+                  ("GotTimes", c_ushort),    #已领取次数
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        return
+
+    def ReadData(self, stringData, _pos=0, _len=0):
+        self.Clear()
+        memmove(addressof(self), stringData[_pos:], self.GetLength())
+        return _pos + self.GetLength()
+
+    def Clear(self):
+        self.ActionType = 0
+        self.CurTimes = 0
+        self.GotTimes = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagMCWeekPartyTaskInfo)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// AA 0B 周狂欢玩家活动信息 //tagMCWeekPartyPlayerInfo:
+                                ActionType:%d,
+                                CurTimes:%d,
+                                GotTimes:%d
+                                '''\
+                                %(
+                                self.ActionType,
+                                self.CurTimes,
+                                self.GotTimes
+                                )
+        return DumpString
+
+
+class  tagMCWeekPartyDayPlayerInfo(Structure):
+    DayIndex = 0    #(DWORD DayIndex)//第X天
+    Point = 0    #(DWORD Point)//积分
+    AwardRecord = 0    #(DWORD AwardRecord)//积分领奖记录
+    ACount = 0    #(DWORD ACount)//任务条目数
+    TaskList = list()    #(vector<tagMCWeekPartyTaskInfo> TaskList)//活动完成次数信息
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        self.DayIndex,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.Point,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.AwardRecord,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        self.ACount,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+        for i in range(self.ACount):
+            temTaskList = tagMCWeekPartyTaskInfo()
+            _pos = temTaskList.ReadData(_lpData, _pos)
+            self.TaskList.append(temTaskList)
+        return _pos
+
+    def Clear(self):
+        self.DayIndex = 0
+        self.Point = 0
+        self.AwardRecord = 0
+        self.ACount = 0
+        self.TaskList = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += 4
+        length += 4
+        length += 4
+        length += 4
+        for i in range(self.ACount):
+            length += self.TaskList[i].GetLength()
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteDWORD(data, self.DayIndex)
+        data = CommFunc.WriteDWORD(data, self.Point)
+        data = CommFunc.WriteDWORD(data, self.AwardRecord)
+        data = CommFunc.WriteDWORD(data, self.ACount)
+        for i in range(self.ACount):
+            data = CommFunc.WriteString(data, self.TaskList[i].GetLength(), self.TaskList[i].GetBuffer())
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                DayIndex:%d,
+                                Point:%d,
+                                AwardRecord:%d,
+                                ACount:%d,
+                                TaskList:%s
+                                '''\
+                                %(
+                                self.DayIndex,
+                                self.Point,
+                                self.AwardRecord,
+                                self.ACount,
+                                "..."
+                                )
+        return DumpString
+
+
+class  tagMCWeekPartyPlayerInfo(Structure):
+    Head = tagHead()
+    Count = 0    #(BYTE Count)
+    DayInfoList = list()    #(vector<tagMCWeekPartyDayInfo> DayInfoList)//活动完成次数信息
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xAA
+        self.Head.SubCmd = 0x0B
+        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):
+            temDayInfoList = tagMCWeekPartyDayInfo()
+            _pos = temDayInfoList.ReadData(_lpData, _pos)
+            self.DayInfoList.append(temDayInfoList)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xAA
+        self.Head.SubCmd = 0x0B
+        self.Count = 0
+        self.DayInfoList = list()
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 1
+        for i in range(self.Count):
+            length += self.DayInfoList[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.DayInfoList[i].GetLength(), self.DayInfoList[i].GetBuffer())
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                Count:%d,
+                                DayInfoList:%s
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.Count,
+                                "..."
+                                )
+        return DumpString
+
+
+m_NAtagMCWeekPartyPlayerInfo=tagMCWeekPartyPlayerInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCWeekPartyPlayerInfo.Head.Cmd,m_NAtagMCWeekPartyPlayerInfo.Head.SubCmd))] = m_NAtagMCWeekPartyPlayerInfo
+
+
+#------------------------------------------------------
 # AA 14 仙界盛典充值大礼 #tagMCXJSDRecharge
 
 class  tagMCXJSDRecharge(Structure):

--
Gitblit v1.8.0