5722 【后端】【1.5】跨服BOSS开发(增加主服角色刷新相关包)
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A1 08 刷新主服角色信息 #tagCMRefreshMainServerRole
|
| | |
|
| | | class tagCMRefreshMainServerRole(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xA1
|
| | | self.SubCmd = 0x08
|
| | | return
|
| | |
|
| | | def ReadData(self, stringData, _pos=0, _len=0):
|
| | | self.Clear()
|
| | | memmove(addressof(self), stringData[_pos:], self.GetLength())
|
| | | return _pos + self.GetLength()
|
| | |
|
| | | def Clear(self):
|
| | | self.Cmd = 0xA1
|
| | | self.SubCmd = 0x08
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMRefreshMainServerRole)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// A1 08 刷新主服角色信息 //tagCMRefreshMainServerRole:
|
| | | Cmd:%s,
|
| | | SubCmd:%s
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMRefreshMainServerRole=tagCMRefreshMainServerRole()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRefreshMainServerRole.Cmd,m_NAtagCMRefreshMainServerRole.SubCmd))] = m_NAtagCMRefreshMainServerRole
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | #A1 03 设置是否成年 #tagCMAdult
|
| | |
|
| | | class tagCMAdult(Structure):
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # 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):
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A1 08 刷新主服角色信息 #tagCMRefreshMainServerRole
|
| | |
|
| | | class tagCMRefreshMainServerRole(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xA1
|
| | | self.SubCmd = 0x08
|
| | | return
|
| | |
|
| | | def ReadData(self, stringData, _pos=0, _len=0):
|
| | | self.Clear()
|
| | | memmove(addressof(self), stringData[_pos:], self.GetLength())
|
| | | return _pos + self.GetLength()
|
| | |
|
| | | def Clear(self):
|
| | | self.Cmd = 0xA1
|
| | | self.SubCmd = 0x08
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMRefreshMainServerRole)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// A1 08 刷新主服角色信息 //tagCMRefreshMainServerRole:
|
| | | Cmd:%s,
|
| | | SubCmd:%s
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMRefreshMainServerRole=tagCMRefreshMainServerRole()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRefreshMainServerRole.Cmd,m_NAtagCMRefreshMainServerRole.SubCmd))] = m_NAtagCMRefreshMainServerRole
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | #A1 03 设置是否成年 #tagCMAdult
|
| | |
|
| | | class tagCMAdult(Structure):
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # 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):
|