|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #------------------------------------------------------ | 
|---|
|  |  |  | # 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): | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #------------------------------------------------------ | 
|---|
|  |  |  | # 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): | 
|---|