From 1c39d19d2b49465cf8bd8bdea831f9adb012411c Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期一, 25 十一月 2024 14:55:01 +0800 Subject: [PATCH] 1111 【越南】【砍树】【英文】【tqxbqy】【btgotq】背包相关初始格子数改为读配置 --- ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py | 1560 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 1,472 insertions(+), 88 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py index 54a6785..c0fdcb6 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py @@ -1180,6 +1180,7 @@ Job = 0 #(BYTE Job)// 玩家职业 RealmLV = 0 #(WORD RealmLV)// 玩家境界等级 Face = 0 #(DWORD Face)//基本脸型 + FacePic = 0 #(DWORD FacePic)//头像框 data = None def __init__(self): @@ -1198,6 +1199,7 @@ self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): @@ -1212,6 +1214,7 @@ self.Job = 0 self.RealmLV = 0 self.Face = 0 + self.FacePic = 0 return def GetLength(self): @@ -1223,6 +1226,7 @@ length += 2 length += 1 length += 2 + length += 4 length += 4 return length @@ -1237,6 +1241,7 @@ data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteWORD(data, self.RealmLV) data = CommFunc.WriteDWORD(data, self.Face) + data = CommFunc.WriteDWORD(data, self.FacePic) return data def OutputString(self): @@ -1248,7 +1253,8 @@ LV:%d, Job:%d, RealmLV:%d, - Face:%d + Face:%d, + FacePic:%d '''\ %( self.Head.OutputString(), @@ -1258,7 +1264,8 @@ self.LV, self.Job, self.RealmLV, - self.Face + self.Face, + self.FacePic ) return DumpString @@ -1740,6 +1747,8 @@ NameLen = 0 #(BYTE NameLen) Name = "" #(String Name)//名字 PlayeJob = 0 #(BYTE PlayeJob)//玩家职业 + Face = 0 #(DWORD Face)//基本脸型 + FacePic = 0 #(DWORD FacePic)//头像框 MoneyNum = 0 #(DWORD MoneyNum)//金钱数量 data = None @@ -1752,6 +1761,8 @@ self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) self.PlayeJob,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MoneyNum,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos @@ -1759,6 +1770,8 @@ self.NameLen = 0 self.Name = "" self.PlayeJob = 0 + self.Face = 0 + self.FacePic = 0 self.MoneyNum = 0 return @@ -1768,6 +1781,8 @@ length += len(self.Name) length += 1 length += 4 + length += 4 + length += 4 return length @@ -1776,6 +1791,8 @@ data = CommFunc.WriteBYTE(data, self.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.Name) data = CommFunc.WriteBYTE(data, self.PlayeJob) + data = CommFunc.WriteDWORD(data, self.Face) + data = CommFunc.WriteDWORD(data, self.FacePic) data = CommFunc.WriteDWORD(data, self.MoneyNum) return data @@ -1784,12 +1801,16 @@ NameLen:%d, Name:%s, PlayeJob:%d, + Face:%d, + FacePic:%d, MoneyNum:%d '''\ %( self.NameLen, self.Name, self.PlayeJob, + self.Face, + self.FacePic, self.MoneyNum ) return DumpString @@ -1878,6 +1899,8 @@ Name = "" #(String Name)//玩家名字 Time = 0 #(DWORD Time)//时间 PlayeJob = 0 #(BYTE PlayeJob)//玩家职业 + Face = 0 #(DWORD Face)//基本脸型 + FacePic = 0 #(DWORD FacePic)//头像框 MoneyType = 0 #(BYTE MoneyType)//金钱类型 MoneyNum = 0 #(DWORD MoneyNum)//金钱数量 GetWay = 0 #(BYTE GetWay)//获得途径 @@ -1900,6 +1923,8 @@ self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) self.Time,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PlayeJob,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MoneyType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.MoneyNum,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.GetWay,_pos = CommFunc.ReadBYTE(_lpData, _pos) @@ -1917,6 +1942,8 @@ self.Name = "" self.Time = 0 self.PlayeJob = 0 + self.Face = 0 + self.FacePic = 0 self.MoneyType = 0 self.MoneyNum = 0 self.GetWay = 0 @@ -1935,6 +1962,8 @@ length += len(self.Name) length += 4 length += 1 + length += 4 + length += 4 length += 1 length += 4 length += 1 @@ -1954,6 +1983,8 @@ data = CommFunc.WriteString(data, self.NameLen, self.Name) data = CommFunc.WriteDWORD(data, self.Time) data = CommFunc.WriteBYTE(data, self.PlayeJob) + data = CommFunc.WriteDWORD(data, self.Face) + data = CommFunc.WriteDWORD(data, self.FacePic) data = CommFunc.WriteBYTE(data, self.MoneyType) data = CommFunc.WriteDWORD(data, self.MoneyNum) data = CommFunc.WriteBYTE(data, self.GetWay) @@ -1972,6 +2003,8 @@ Name:%s, Time:%d, PlayeJob:%d, + Face:%d, + FacePic:%d, MoneyType:%d, MoneyNum:%d, GetWay:%d, @@ -1988,6 +2021,8 @@ self.Name, self.Time, self.PlayeJob, + self.Face, + self.FacePic, self.MoneyType, self.MoneyNum, self.GetWay, @@ -2416,6 +2451,7 @@ WarRank = 0 #(BYTE WarRank)//联赛排名 TotalFightPower = 0 #(DWORD TotalFightPower)//总战力,不足1个亿的部分 TotalFightPowerEx = 0 #(DWORD TotalFightPowerEx)//总战力点,1点=1亿 + EmblemID = 0 #(BYTE EmblemID)//徽章ID data = None def __init__(self): @@ -2438,6 +2474,7 @@ self.WarRank,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.TotalFightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.TotalFightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.EmblemID,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): @@ -2455,6 +2492,7 @@ self.WarRank = 0 self.TotalFightPower = 0 self.TotalFightPowerEx = 0 + self.EmblemID = 0 return def GetLength(self): @@ -2473,6 +2511,7 @@ length += 1 length += 4 length += 4 + length += 1 return length @@ -2492,6 +2531,7 @@ data = CommFunc.WriteBYTE(data, self.WarRank) data = CommFunc.WriteDWORD(data, self.TotalFightPower) data = CommFunc.WriteDWORD(data, self.TotalFightPowerEx) + data = CommFunc.WriteBYTE(data, self.EmblemID) return data def OutputString(self): @@ -2509,7 +2549,8 @@ JoinAccept:%d, WarRank:%d, TotalFightPower:%d, - TotalFightPowerEx:%d + TotalFightPowerEx:%d, + EmblemID:%d '''\ %( self.FamilyIndex, @@ -2525,7 +2566,8 @@ self.JoinAccept, self.WarRank, self.TotalFightPower, - self.TotalFightPowerEx + self.TotalFightPowerEx, + self.EmblemID ) return DumpString @@ -2954,7 +2996,6 @@ Job = 0 #(BYTE Job) LV = 0 #(WORD LV)//等级 RealmLV = 0 #(WORD RealmLV)//境界,机器人读境界表取等级对应境界 - Face = 0 #(DWORD Face)//基本脸型 FightPower = 0 #(DWORD FightPower)//战力求余亿部分,机器人读等级表取等级对应战力 FightPowerEx = 0 #(DWORD FightPowerEx)//战力整除亿部分,机器人读等级表取等级对应战力 Score = 0 #(DWORD Score)//积分 @@ -2962,6 +3003,8 @@ AddScore = "" #(String AddScore)//本次对战增加的积分,有正负 IsWin = 0 #(BYTE IsWin)//是否获胜 Time = 0 #(DWORD Time)//时间戳 + Face = 0 #(DWORD Face)//基本脸型 + FacePic = 0 #(DWORD FacePic)//头像框 data = None def __init__(self): @@ -2975,7 +3018,6 @@ self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos) - self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Score,_pos = CommFunc.ReadDWORD(_lpData, _pos) @@ -2983,6 +3025,8 @@ self.AddScore,_pos = CommFunc.ReadString(_lpData, _pos,self.AddScoreLen) self.IsWin,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Time,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): @@ -2991,7 +3035,6 @@ self.Job = 0 self.LV = 0 self.RealmLV = 0 - self.Face = 0 self.FightPower = 0 self.FightPowerEx = 0 self.Score = 0 @@ -2999,6 +3042,8 @@ self.AddScore = "" self.IsWin = 0 self.Time = 0 + self.Face = 0 + self.FacePic = 0 return def GetLength(self): @@ -3011,10 +3056,11 @@ length += 4 length += 4 length += 4 - length += 4 length += 1 length += len(self.AddScore) length += 1 + length += 4 + length += 4 length += 4 return length @@ -3026,7 +3072,6 @@ data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteWORD(data, self.RealmLV) - data = CommFunc.WriteDWORD(data, self.Face) data = CommFunc.WriteDWORD(data, self.FightPower) data = CommFunc.WriteDWORD(data, self.FightPowerEx) data = CommFunc.WriteDWORD(data, self.Score) @@ -3034,6 +3079,8 @@ data = CommFunc.WriteString(data, self.AddScoreLen, self.AddScore) data = CommFunc.WriteBYTE(data, self.IsWin) data = CommFunc.WriteDWORD(data, self.Time) + data = CommFunc.WriteDWORD(data, self.Face) + data = CommFunc.WriteDWORD(data, self.FacePic) return data def OutputString(self): @@ -3043,14 +3090,15 @@ Job:%d, LV:%d, RealmLV:%d, - Face:%d, FightPower:%d, FightPowerEx:%d, Score:%d, AddScoreLen:%d, AddScore:%s, IsWin:%d, - Time:%d + Time:%d, + Face:%d, + FacePic:%d '''\ %( self.PlayerID, @@ -3058,14 +3106,15 @@ self.Job, self.LV, self.RealmLV, - self.Face, self.FightPower, self.FightPowerEx, self.Score, self.AddScoreLen, self.AddScore, self.IsWin, - self.Time + self.Time, + self.Face, + self.FacePic ) return DumpString @@ -3145,10 +3194,11 @@ Job = 0 #(BYTE Job) LV = 0 #(WORD LV)//等级 RealmLV = 0 #(WORD RealmLV)//境界,机器人读境界表取等级对应境界 - Face = 0 #(DWORD Face)//基本脸型 FightPower = 0 #(DWORD FightPower)//战力求余亿部分,机器人读等级表取等级对应战力 FightPowerEx = 0 #(DWORD FightPowerEx)//战力整除亿部分,机器人读等级表取等级对应战力 Score = 0 #(DWORD Score)//积分 + Face = 0 #(DWORD Face)//基本脸型 + FacePic = 0 #(DWORD FacePic)//头像框 data = None def __init__(self): @@ -3162,10 +3212,11 @@ self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos) - self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Score,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): @@ -3174,10 +3225,11 @@ self.Job = 0 self.LV = 0 self.RealmLV = 0 - self.Face = 0 self.FightPower = 0 self.FightPowerEx = 0 self.Score = 0 + self.Face = 0 + self.FacePic = 0 return def GetLength(self): @@ -3187,6 +3239,7 @@ length += 1 length += 2 length += 2 + length += 4 length += 4 length += 4 length += 4 @@ -3201,10 +3254,11 @@ data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteWORD(data, self.RealmLV) - data = CommFunc.WriteDWORD(data, self.Face) data = CommFunc.WriteDWORD(data, self.FightPower) data = CommFunc.WriteDWORD(data, self.FightPowerEx) data = CommFunc.WriteDWORD(data, self.Score) + data = CommFunc.WriteDWORD(data, self.Face) + data = CommFunc.WriteDWORD(data, self.FacePic) return data def OutputString(self): @@ -3214,10 +3268,11 @@ Job:%d, LV:%d, RealmLV:%d, - Face:%d, FightPower:%d, FightPowerEx:%d, - Score:%d + Score:%d, + Face:%d, + FacePic:%d '''\ %( self.PlayerID, @@ -3225,10 +3280,11 @@ self.Job, self.LV, self.RealmLV, - self.Face, self.FightPower, self.FightPowerEx, - self.Score + self.Score, + self.Face, + self.FacePic ) return DumpString @@ -4659,7 +4715,7 @@ ID = 0 #(DWORD ID) ID2 = 0 #(DWORD ID2) Name1 = "" #(char Name1[33])//名字1,用来显示排序对象名字 - Name2 = "" #(char Name2[33])//名字2 + Name2 = "" #(char Name2[65])//名字2 Type2 = 0 #(BYTE Type2)//附加类型,用来表示排序对象的类型,比如,玩家所属职业门派,宠物类型等 Value1 = 0 #(DWORD Value1)//排序依赖的值,比如,等级 Value2 = 0 #(DWORD Value2)//排序依赖的值,比如,战斗力 @@ -4686,7 +4742,7 @@ self.ID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ID2,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Name1,_pos = CommFunc.ReadString(_lpData, _pos,33) - self.Name2,_pos = CommFunc.ReadString(_lpData, _pos,33) + self.Name2,_pos = CommFunc.ReadString(_lpData, _pos,65) self.Type2,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Value1,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Value2,_pos = CommFunc.ReadDWORD(_lpData, _pos) @@ -4731,7 +4787,7 @@ length += 4 length += 4 length += 33 - length += 33 + length += 65 length += 1 length += 4 length += 4 @@ -4755,7 +4811,7 @@ data = CommFunc.WriteDWORD(data, self.ID) data = CommFunc.WriteDWORD(data, self.ID2) data = CommFunc.WriteString(data, 33, self.Name1) - data = CommFunc.WriteString(data, 33, self.Name2) + data = CommFunc.WriteString(data, 65, self.Name2) data = CommFunc.WriteBYTE(data, self.Type2) data = CommFunc.WriteDWORD(data, self.Value1) data = CommFunc.WriteDWORD(data, self.Value2) @@ -5269,6 +5325,7 @@ Job = 0 #(BYTE Job) RealmLV = 0 #(WORD RealmLV)//境界 Face = 0 #(DWORD Face)//基本脸型 + FacePic = 0 #(DWORD FacePic)//头像框 data = None def __init__(self): @@ -5283,6 +5340,7 @@ self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): @@ -5292,6 +5350,7 @@ self.Job = 0 self.RealmLV = 0 self.Face = 0 + self.FacePic = 0 return def GetLength(self): @@ -5301,6 +5360,7 @@ length += 4 length += 1 length += 2 + length += 4 length += 4 return length @@ -5313,6 +5373,7 @@ data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteWORD(data, self.RealmLV) data = CommFunc.WriteDWORD(data, self.Face) + data = CommFunc.WriteDWORD(data, self.FacePic) return data def OutputString(self): @@ -5322,7 +5383,8 @@ LV:%d, Job:%d, RealmLV:%d, - Face:%d + Face:%d, + FacePic:%d '''\ %( self.ID, @@ -5330,7 +5392,8 @@ self.LV, self.Job, self.RealmLV, - self.Face + self.Face, + self.FacePic ) return DumpString @@ -5411,6 +5474,7 @@ LV = 0 #(WORD LV)//等级 RealmLV = 0 #(WORD RealmLV)//境界 Face = 0 #(DWORD Face)//基本脸型 + FacePic = 0 #(DWORD FacePic)//头像框 data = None def __init__(self): @@ -5425,6 +5489,7 @@ self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): @@ -5434,6 +5499,7 @@ self.LV = 0 self.RealmLV = 0 self.Face = 0 + self.FacePic = 0 return def GetLength(self): @@ -5443,6 +5509,7 @@ length += 1 length += 2 length += 2 + length += 4 length += 4 return length @@ -5455,6 +5522,7 @@ data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteWORD(data, self.RealmLV) data = CommFunc.WriteDWORD(data, self.Face) + data = CommFunc.WriteDWORD(data, self.FacePic) return data def OutputString(self): @@ -5464,7 +5532,8 @@ Job:%d, LV:%d, RealmLV:%d, - Face:%d + Face:%d, + FacePic:%d '''\ %( self.PlayerID, @@ -5472,7 +5541,8 @@ self.Job, self.LV, self.RealmLV, - self.Face + self.Face, + self.FacePic ) return DumpString @@ -5789,6 +5859,8 @@ LV = 0 #(WORD LV)// 玩家等级 Job = 0 #(BYTE Job)// 玩家职业 RealmLV = 0 #(WORD RealmLV)// 玩家境界 + Face = 0 #(DWORD Face)//基本脸型 + FacePic = 0 #(DWORD FacePic)//头像框 EquipShowSwitch = 0 #(DWORD EquipShowSwitch) EquipShowIDCount = 0 #(BYTE EquipShowIDCount) EquipShowID = list() #(vector<DWORD> EquipShowID) @@ -5808,6 +5880,8 @@ self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.EquipShowSwitch,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.EquipShowIDCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.EquipShowIDCount): @@ -5824,6 +5898,8 @@ self.LV = 0 self.Job = 0 self.RealmLV = 0 + self.Face = 0 + self.FacePic = 0 self.EquipShowSwitch = 0 self.EquipShowIDCount = 0 self.EquipShowID = list() @@ -5840,6 +5916,8 @@ length += 1 length += 2 length += 4 + length += 4 + length += 4 length += 1 length += 4 * self.EquipShowIDCount @@ -5855,6 +5933,8 @@ data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteWORD(data, self.RealmLV) + data = CommFunc.WriteDWORD(data, self.Face) + data = CommFunc.WriteDWORD(data, self.FacePic) data = CommFunc.WriteDWORD(data, self.EquipShowSwitch) data = CommFunc.WriteBYTE(data, self.EquipShowIDCount) for i in range(self.EquipShowIDCount): @@ -5871,6 +5951,8 @@ LV:%d, Job:%d, RealmLV:%d, + Face:%d, + FacePic:%d, EquipShowSwitch:%d, EquipShowIDCount:%d, EquipShowID:%s @@ -5884,6 +5966,8 @@ self.LV, self.Job, self.RealmLV, + self.Face, + self.FacePic, self.EquipShowSwitch, self.EquipShowIDCount, "..." @@ -5976,6 +6060,8 @@ LV = 0 #(WORD LV)// 玩家等级 Job = 0 #(BYTE Job)// 玩家职业 RealmLV = 0 #(WORD RealmLV)// 玩家境界 + Face = 0 #(DWORD Face)//基本脸型 + FacePic = 0 #(DWORD FacePic)//头像框 data = None def __init__(self): @@ -5992,6 +6078,8 @@ self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): @@ -6003,6 +6091,8 @@ self.LV = 0 self.Job = 0 self.RealmLV = 0 + self.Face = 0 + self.FacePic = 0 return def GetLength(self): @@ -6015,6 +6105,8 @@ length += 2 length += 1 length += 2 + length += 4 + length += 4 return length @@ -6028,6 +6120,8 @@ data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteWORD(data, self.RealmLV) + data = CommFunc.WriteDWORD(data, self.Face) + data = CommFunc.WriteDWORD(data, self.FacePic) return data def OutputString(self): @@ -6039,7 +6133,9 @@ Name:%s, LV:%d, Job:%d, - RealmLV:%d + RealmLV:%d, + Face:%d, + FacePic:%d '''\ %( self.AddTime, @@ -6049,7 +6145,9 @@ self.Name, self.LV, self.Job, - self.RealmLV + self.RealmLV, + self.Face, + self.FacePic ) return DumpString @@ -7673,6 +7771,8 @@ Job = 0 #(BYTE Job) LV = 0 #(WORD LV)//等级 RealmLV = 0 #(BYTE RealmLV)//境界 + Face = 0 #(DWORD Face)//基本脸型 + FacePic = 0 #(DWORD FacePic)//头像框 MapID = 0 #(DWORD MapID) LineID = 0 #(DWORD LineID) NPCID = 0 #(DWORD NPCID) @@ -7692,6 +7792,8 @@ self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.RealmLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.LineID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.NPCID,_pos = CommFunc.ReadDWORD(_lpData, _pos) @@ -7706,6 +7808,8 @@ self.Job = 0 self.LV = 0 self.RealmLV = 0 + self.Face = 0 + self.FacePic = 0 self.MapID = 0 self.LineID = 0 self.NPCID = 0 @@ -7724,6 +7828,8 @@ length += 4 length += 4 length += 4 + length += 4 + length += 4 length += 2 length += len(self.ExData) @@ -7737,6 +7843,8 @@ data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteBYTE(data, self.RealmLV) + data = CommFunc.WriteDWORD(data, self.Face) + data = CommFunc.WriteDWORD(data, self.FacePic) data = CommFunc.WriteDWORD(data, self.MapID) data = CommFunc.WriteDWORD(data, self.LineID) data = CommFunc.WriteDWORD(data, self.NPCID) @@ -7752,6 +7860,8 @@ Job:%d, LV:%d, RealmLV:%d, + Face:%d, + FacePic:%d, MapID:%d, LineID:%d, NPCID:%d, @@ -7765,6 +7875,8 @@ self.Job, self.LV, self.RealmLV, + self.Face, + self.FacePic, self.MapID, self.LineID, self.NPCID, @@ -8223,6 +8335,8 @@ Job = 0 #(BYTE Job) LV = 0 #(WORD LV) RealmLV = 0 #(BYTE RealmLV)//境界 + Face = 0 #(DWORD Face)//基本脸型 + FacePic = 0 #(DWORD FacePic)//头像框 MapID = 0 #(DWORD MapID) LineID = 0 #(DWORD LineID) NPCID = 0 #(DWORD NPCID) @@ -8247,6 +8361,8 @@ self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.RealmLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.LineID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.NPCID,_pos = CommFunc.ReadDWORD(_lpData, _pos) @@ -8267,6 +8383,8 @@ self.Job = 0 self.LV = 0 self.RealmLV = 0 + self.Face = 0 + self.FacePic = 0 self.MapID = 0 self.LineID = 0 self.NPCID = 0 @@ -8288,6 +8406,8 @@ length += 4 length += 4 length += 4 + length += 4 + length += 4 length += 2 length += len(self.ExData) length += 19 @@ -8304,6 +8424,8 @@ data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteBYTE(data, self.RealmLV) + data = CommFunc.WriteDWORD(data, self.Face) + data = CommFunc.WriteDWORD(data, self.FacePic) data = CommFunc.WriteDWORD(data, self.MapID) data = CommFunc.WriteDWORD(data, self.LineID) data = CommFunc.WriteDWORD(data, self.NPCID) @@ -8322,6 +8444,8 @@ Job:%d, LV:%d, RealmLV:%d, + Face:%d, + FacePic:%d, MapID:%d, LineID:%d, NPCID:%d, @@ -8338,6 +8462,8 @@ self.Job, self.LV, self.RealmLV, + self.Face, + self.FacePic, self.MapID, self.LineID, self.NPCID, @@ -8441,7 +8567,9 @@ RobPlayerID = 0 #(DWORD RobPlayerID)// 抢夺玩家ID,为0时代表没人抢夺 RobWorkerCount = 0 #(BYTE RobWorkerCount)// 抢夺工人个数 RobPlayerName = "" #(char RobPlayerName[33]) + RobJob = 0 #(BYTE RobJob) RobFace = 0 #(DWORD RobFace) + RobFacePic = 0 #(DWORD RobFacePic) data = None def __init__(self): @@ -8463,7 +8591,9 @@ self.RobPlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.RobWorkerCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.RobPlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33) + self.RobJob,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.RobFace,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.RobFacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): @@ -8480,7 +8610,9 @@ self.RobPlayerID = 0 self.RobWorkerCount = 0 self.RobPlayerName = "" + self.RobJob = 0 self.RobFace = 0 + self.RobFacePic = 0 return def GetLength(self): @@ -8498,6 +8630,8 @@ length += 4 length += 1 length += 33 + length += 1 + length += 4 length += 4 return length @@ -8517,7 +8651,9 @@ data = CommFunc.WriteDWORD(data, self.RobPlayerID) data = CommFunc.WriteBYTE(data, self.RobWorkerCount) data = CommFunc.WriteString(data, 33, self.RobPlayerName) + data = CommFunc.WriteBYTE(data, self.RobJob) data = CommFunc.WriteDWORD(data, self.RobFace) + data = CommFunc.WriteDWORD(data, self.RobFacePic) return data def OutputString(self): @@ -8535,7 +8671,9 @@ RobPlayerID:%d, RobWorkerCount:%d, RobPlayerName:%s, - RobFace:%d + RobJob:%d, + RobFace:%d, + RobFacePic:%d '''\ %( self.Index, @@ -8551,7 +8689,9 @@ self.RobPlayerID, self.RobWorkerCount, self.RobPlayerName, - self.RobFace + self.RobJob, + self.RobFace, + self.RobFacePic ) return DumpString @@ -8559,7 +8699,9 @@ class tagGCMineArea(Structure): PlayerID = 0 #(DWORD PlayerID)// 福地所属玩家ID,可能是自己或其他玩家ID,当ID小于10000时为假人 PlayerName = "" #(char PlayerName[33])// 可能为空,如自己或假人 + Job = 0 #(BYTE Job) Face = 0 #(DWORD Face) + FacePic = 0 #(DWORD FacePic) MineCount = 0 #(BYTE MineCount) MineItemList = list() #(vector<tagGCMineItem> MineItemList)// 矿物列表 data = None @@ -8572,7 +8714,9 @@ self.Clear() self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33) + self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MineCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.MineCount): temMineItemList = tagGCMineItem() @@ -8583,7 +8727,9 @@ def Clear(self): self.PlayerID = 0 self.PlayerName = "" + self.Job = 0 self.Face = 0 + self.FacePic = 0 self.MineCount = 0 self.MineItemList = list() return @@ -8592,6 +8738,8 @@ length = 0 length += 4 length += 33 + length += 1 + length += 4 length += 4 length += 1 for i in range(self.MineCount): @@ -8603,7 +8751,9 @@ data = '' data = CommFunc.WriteDWORD(data, self.PlayerID) data = CommFunc.WriteString(data, 33, self.PlayerName) + data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteDWORD(data, self.Face) + data = CommFunc.WriteDWORD(data, self.FacePic) data = CommFunc.WriteBYTE(data, self.MineCount) for i in range(self.MineCount): data = CommFunc.WriteString(data, self.MineItemList[i].GetLength(), self.MineItemList[i].GetBuffer()) @@ -8613,14 +8763,18 @@ DumpString = ''' PlayerID:%d, PlayerName:%s, + Job:%d, Face:%d, + FacePic:%d, MineCount:%d, MineItemList:%s '''\ %( self.PlayerID, self.PlayerName, + self.Job, self.Face, + self.FacePic, self.MineCount, "..." ) @@ -8716,7 +8870,9 @@ RecordTime = 0 #(DWORD RecordTime)// 记录时间戳 MineID = 0 #(WORD MineID)// 矿物ID,对应福地采集表中ID TagPlayerName = "" #(char TagPlayerName[33]) + TagJob = 0 #(BYTE TagJob) TagFace = 0 #(DWORD TagFace) + TagFacePic = 0 #(DWORD TagFacePic) data = None def __init__(self): @@ -8730,7 +8886,9 @@ self.RecordTime,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MineID,_pos = CommFunc.ReadWORD(_lpData, _pos) self.TagPlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33) + self.TagJob,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.TagFace,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.TagFacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): @@ -8739,7 +8897,9 @@ self.RecordTime = 0 self.MineID = 0 self.TagPlayerName = "" + self.TagJob = 0 self.TagFace = 0 + self.TagFacePic = 0 return def GetLength(self): @@ -8749,6 +8909,8 @@ length += 4 length += 2 length += 33 + length += 1 + length += 4 length += 4 return length @@ -8760,7 +8922,9 @@ data = CommFunc.WriteDWORD(data, self.RecordTime) data = CommFunc.WriteWORD(data, self.MineID) data = CommFunc.WriteString(data, 33, self.TagPlayerName) + data = CommFunc.WriteBYTE(data, self.TagJob) data = CommFunc.WriteDWORD(data, self.TagFace) + data = CommFunc.WriteDWORD(data, self.TagFacePic) return data def OutputString(self): @@ -8770,7 +8934,9 @@ RecordTime:%d, MineID:%d, TagPlayerName:%s, - TagFace:%d + TagJob:%d, + TagFace:%d, + TagFacePic:%d '''\ %( self.RecordType, @@ -8778,7 +8944,9 @@ self.RecordTime, self.MineID, self.TagPlayerName, - self.TagFace + self.TagJob, + self.TagFace, + self.TagFacePic ) return DumpString @@ -8922,6 +9090,8 @@ Job = 0 #(BYTE Job) LV = 0 #(WORD LV) RealmLV = 0 #(BYTE RealmLV)//境界 + Face = 0 #(DWORD Face)//基本脸型 + FacePic = 0 #(DWORD FacePic)//头像框 data = None def __init__(self): @@ -8935,6 +9105,8 @@ self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.RealmLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): @@ -8943,6 +9115,8 @@ self.Job = 0 self.LV = 0 self.RealmLV = 0 + self.Face = 0 + self.FacePic = 0 return def GetLength(self): @@ -8952,6 +9126,8 @@ length += 1 length += 2 length += 1 + length += 4 + length += 4 return length @@ -8962,6 +9138,8 @@ data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteBYTE(data, self.RealmLV) + data = CommFunc.WriteDWORD(data, self.Face) + data = CommFunc.WriteDWORD(data, self.FacePic) return data def OutputString(self): @@ -8970,14 +9148,18 @@ PlayerName:%s, Job:%d, LV:%d, - RealmLV:%d + RealmLV:%d, + Face:%d, + FacePic:%d '''\ %( self.PlayerID, self.PlayerName, self.Job, self.LV, - self.RealmLV + self.RealmLV, + self.Face, + self.FacePic ) return DumpString @@ -9307,6 +9489,7 @@ LV = 0 #(WORD LV) RealmLV = 0 #(WORD RealmLV)//境界等级 Face = 0 #(DWORD Face)//基本脸型 + FacePic = 0 #(DWORD FacePic)//头像框 data = None def __init__(self): @@ -9323,6 +9506,7 @@ self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): @@ -9335,6 +9519,7 @@ self.LV = 0 self.RealmLV = 0 self.Face = 0 + self.FacePic = 0 return def GetLength(self): @@ -9344,6 +9529,7 @@ length += 33 length += 2 length += 2 + length += 4 length += 4 return length @@ -9356,6 +9542,7 @@ data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteWORD(data, self.RealmLV) data = CommFunc.WriteDWORD(data, self.Face) + data = CommFunc.WriteDWORD(data, self.FacePic) return data def OutputString(self): @@ -9365,7 +9552,8 @@ Name:%s, LV:%d, RealmLV:%d, - Face:%d + Face:%d, + FacePic:%d '''\ %( self.Head.OutputString(), @@ -9373,7 +9561,8 @@ self.Name, self.LV, self.RealmLV, - self.Face + self.Face, + self.FacePic ) return DumpString @@ -10504,6 +10693,7 @@ IsInTeam = 0 #(BYTE IsInTeam)//是否有队伍 ServerGroupID = 0 #(DWORD ServerGroupID)//服务器组ID Face = 0 #(DWORD Face)//基本脸型 + FacePic = 0 #(DWORD FacePic)//头像框 data = None def __init__(self): @@ -10524,6 +10714,7 @@ self.IsInTeam,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.ServerGroupID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): @@ -10540,6 +10731,7 @@ self.IsInTeam = 0 self.ServerGroupID = 0 self.Face = 0 + self.FacePic = 0 return def GetLength(self): @@ -10552,6 +10744,7 @@ length += 2 length += 1 length += 1 + length += 4 length += 4 length += 4 @@ -10569,6 +10762,7 @@ data = CommFunc.WriteBYTE(data, self.IsInTeam) data = CommFunc.WriteDWORD(data, self.ServerGroupID) data = CommFunc.WriteDWORD(data, self.Face) + data = CommFunc.WriteDWORD(data, self.FacePic) return data def OutputString(self): @@ -10582,7 +10776,8 @@ OnlineType:%d, IsInTeam:%d, ServerGroupID:%d, - Face:%d + Face:%d, + FacePic:%d '''\ %( self.Head.OutputString(), @@ -10594,7 +10789,8 @@ self.OnlineType, self.IsInTeam, self.ServerGroupID, - self.Face + self.Face, + self.FacePic ) return DumpString @@ -10670,6 +10866,7 @@ RealmLV = 0 #(WORD RealmLV)//境界 OnlineType = 0 #(BYTE OnlineType)//0不在线 1在线 2脱机在线 Face = 0 #(DWORD Face)//基本脸型 + FacePic = 0 #(DWORD FacePic)//头像框 data = None def __init__(self): @@ -10685,6 +10882,7 @@ self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.OnlineType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): @@ -10695,6 +10893,7 @@ self.RealmLV = 0 self.OnlineType = 0 self.Face = 0 + self.FacePic = 0 return def GetLength(self): @@ -10705,6 +10904,7 @@ length += 2 length += 2 length += 1 + length += 4 length += 4 return length @@ -10718,6 +10918,7 @@ data = CommFunc.WriteWORD(data, self.RealmLV) data = CommFunc.WriteBYTE(data, self.OnlineType) data = CommFunc.WriteDWORD(data, self.Face) + data = CommFunc.WriteDWORD(data, self.FacePic) return data def OutputString(self): @@ -10728,7 +10929,8 @@ LV:%d, RealmLV:%d, OnlineType:%d, - Face:%d + Face:%d, + FacePic:%d '''\ %( self.PlayerID, @@ -10737,7 +10939,8 @@ self.LV, self.RealmLV, self.OnlineType, - self.Face + self.Face, + self.FacePic ) return DumpString @@ -13106,6 +13309,8 @@ LV = 0 #(WORD LV)// 玩家等级 Job = 0 #(BYTE Job)// 玩家职业 RealmLV = 0 #(WORD RealmLV)// 玩家境界 + Face = 0 #(DWORD Face)//基本脸型 + FacePic = 0 #(DWORD FacePic)//头像框 FightPower = 0 #(DWORD FightPower)// 战力,求余亿 FightPowerEx = 0 #(DWORD FightPowerEx)// 战力,整除亿 Value1 = 0 #(DWORD Value1)//值1 @@ -13125,6 +13330,8 @@ self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Value1,_pos = CommFunc.ReadDWORD(_lpData, _pos) @@ -13139,6 +13346,8 @@ self.LV = 0 self.Job = 0 self.RealmLV = 0 + self.Face = 0 + self.FacePic = 0 self.FightPower = 0 self.FightPowerEx = 0 self.Value1 = 0 @@ -13158,6 +13367,8 @@ length += 4 length += 4 length += 4 + length += 4 + length += 4 return length @@ -13170,6 +13381,8 @@ data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteWORD(data, self.RealmLV) + data = CommFunc.WriteDWORD(data, self.Face) + data = CommFunc.WriteDWORD(data, self.FacePic) data = CommFunc.WriteDWORD(data, self.FightPower) data = CommFunc.WriteDWORD(data, self.FightPowerEx) data = CommFunc.WriteDWORD(data, self.Value1) @@ -13185,6 +13398,8 @@ LV:%d, Job:%d, RealmLV:%d, + Face:%d, + FacePic:%d, FightPower:%d, FightPowerEx:%d, Value1:%d, @@ -13198,6 +13413,8 @@ self.LV, self.Job, self.RealmLV, + self.Face, + self.FacePic, self.FightPower, self.FightPowerEx, self.Value1, @@ -13504,6 +13721,8 @@ LV = 0 #(WORD LV)// 玩家等级 Job = 0 #(BYTE Job)// 玩家职业 RealmLV = 0 #(WORD RealmLV)// 玩家境界 + Face = 0 #(DWORD Face)//基本脸型 + FacePic = 0 #(DWORD FacePic)//头像框 FightPower = 0 #(DWORD FightPower)// 战力,求余亿 FightPowerEx = 0 #(DWORD FightPowerEx)// 战力,整除亿 data = None @@ -13521,6 +13740,8 @@ self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos @@ -13533,6 +13754,8 @@ self.LV = 0 self.Job = 0 self.RealmLV = 0 + self.Face = 0 + self.FacePic = 0 self.FightPower = 0 self.FightPowerEx = 0 return @@ -13548,6 +13771,8 @@ length += 2 length += 4 length += 4 + length += 4 + length += 4 return length @@ -13560,6 +13785,8 @@ data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteWORD(data, self.RealmLV) + data = CommFunc.WriteDWORD(data, self.Face) + data = CommFunc.WriteDWORD(data, self.FacePic) data = CommFunc.WriteDWORD(data, self.FightPower) data = CommFunc.WriteDWORD(data, self.FightPowerEx) return data @@ -13573,6 +13800,8 @@ LV:%d, Job:%d, RealmLV:%d, + Face:%d, + FacePic:%d, FightPower:%d, FightPowerEx:%d '''\ @@ -13584,6 +13813,8 @@ self.LV, self.Job, self.RealmLV, + self.Face, + self.FacePic, self.FightPower, self.FightPowerEx ) @@ -13598,6 +13829,8 @@ LV = 0 #(WORD LV)// 玩家等级 Job = 0 #(BYTE Job)// 玩家职业 RealmLV = 0 #(WORD RealmLV)// 玩家境界 + Face = 0 #(DWORD Face)//基本脸型 + FacePic = 0 #(DWORD FacePic)//头像框 FightPower = 0 #(DWORD FightPower)// 战力,求余亿 FightPowerEx = 0 #(DWORD FightPowerEx)// 战力,整除亿 OfflineValue = 0 #(DWORD OfflineValue)// 离线值:0-在线;1-离线;>1-上次离线时间戳,可用于计算离线多久了;当取不到玩家信息时用1代表已离线; @@ -13618,6 +13851,8 @@ self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.OfflineValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) @@ -13633,6 +13868,8 @@ self.LV = 0 self.Job = 0 self.RealmLV = 0 + self.Face = 0 + self.FacePic = 0 self.FightPower = 0 self.FightPowerEx = 0 self.OfflineValue = 0 @@ -13654,6 +13891,8 @@ length += 4 length += 4 length += 4 + length += 4 + length += 4 return length @@ -13666,6 +13905,8 @@ data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteWORD(data, self.RealmLV) + data = CommFunc.WriteDWORD(data, self.Face) + data = CommFunc.WriteDWORD(data, self.FacePic) data = CommFunc.WriteDWORD(data, self.FightPower) data = CommFunc.WriteDWORD(data, self.FightPowerEx) data = CommFunc.WriteDWORD(data, self.OfflineValue) @@ -13682,6 +13923,8 @@ LV:%d, Job:%d, RealmLV:%d, + Face:%d, + FacePic:%d, FightPower:%d, FightPowerEx:%d, OfflineValue:%d, @@ -13696,6 +13939,8 @@ self.LV, self.Job, self.RealmLV, + self.Face, + self.FacePic, self.FightPower, self.FightPowerEx, self.OfflineValue, @@ -14276,6 +14521,8 @@ Job = 0 #(BYTE Job)// 玩家职业 JobLevel = 0 #(BYTE JobLevel)// 玩家职业阶级 RealmLV = 0 #(WORD RealmLV)// 玩家境界等级 + Face = 0 #(DWORD Face)//基本脸型 + FacePic = 0 #(DWORD FacePic)//头像框 data = None def __init__(self): @@ -14291,6 +14538,8 @@ self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.JobLevel,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): @@ -14301,6 +14550,8 @@ self.Job = 0 self.JobLevel = 0 self.RealmLV = 0 + self.Face = 0 + self.FacePic = 0 return def GetLength(self): @@ -14312,6 +14563,8 @@ length += 1 length += 1 length += 2 + length += 4 + length += 4 return length @@ -14324,6 +14577,8 @@ data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteBYTE(data, self.JobLevel) data = CommFunc.WriteWORD(data, self.RealmLV) + data = CommFunc.WriteDWORD(data, self.Face) + data = CommFunc.WriteDWORD(data, self.FacePic) return data def OutputString(self): @@ -14334,7 +14589,9 @@ LV:%d, Job:%d, JobLevel:%d, - RealmLV:%d + RealmLV:%d, + Face:%d, + FacePic:%d '''\ %( self.PlayerID, @@ -14343,7 +14600,9 @@ self.LV, self.Job, self.JobLevel, - self.RealmLV + self.RealmLV, + self.Face, + self.FacePic ) return DumpString @@ -14426,6 +14685,8 @@ Job = 0 #(BYTE Job)// 玩家职业 JobLevel = 0 #(BYTE JobLevel)// 玩家职业阶级 RealmLV = 0 #(WORD RealmLV)// 玩家境界等级 + Face = 0 #(DWORD Face)//基本脸型 + FacePic = 0 #(DWORD FacePic)//头像框 data = None def __init__(self): @@ -14444,6 +14705,8 @@ self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.JobLevel,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): @@ -14458,6 +14721,8 @@ self.Job = 0 self.JobLevel = 0 self.RealmLV = 0 + self.Face = 0 + self.FacePic = 0 return def GetLength(self): @@ -14470,6 +14735,8 @@ length += 1 length += 1 length += 2 + length += 4 + length += 4 return length @@ -14483,6 +14750,8 @@ data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteBYTE(data, self.JobLevel) data = CommFunc.WriteWORD(data, self.RealmLV) + data = CommFunc.WriteDWORD(data, self.Face) + data = CommFunc.WriteDWORD(data, self.FacePic) return data def OutputString(self): @@ -14494,7 +14763,9 @@ LV:%d, Job:%d, JobLevel:%d, - RealmLV:%d + RealmLV:%d, + Face:%d, + FacePic:%d '''\ %( self.Head.OutputString(), @@ -14504,7 +14775,9 @@ self.LV, self.Job, self.JobLevel, - self.RealmLV + self.RealmLV, + self.Face, + self.FacePic ) return DumpString @@ -14955,6 +15228,8 @@ Job = 0 #(BYTE Job)// 玩家职业 JobLevel = 0 #(BYTE JobLevel)// 玩家职业阶级 RealmLV = 0 #(WORD RealmLV)// 玩家境界等级 + Face = 0 #(DWORD Face)//基本脸型 + FacePic = 0 #(DWORD FacePic)//头像框 PlayerState = 0 #(BYTE PlayerState)// 0: 离线 1:在线 MapID = 0 #(DWORD MapID)// 地图ID LineID = 0 #(BYTE LineID)// 线路ID @@ -14975,6 +15250,8 @@ self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.JobLevel,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.PlayerState,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.LineID,_pos = CommFunc.ReadBYTE(_lpData, _pos) @@ -14990,6 +15267,8 @@ self.Job = 0 self.JobLevel = 0 self.RealmLV = 0 + self.Face = 0 + self.FacePic = 0 self.PlayerState = 0 self.MapID = 0 self.LineID = 0 @@ -15006,6 +15285,8 @@ length += 1 length += 1 length += 2 + length += 4 + length += 4 length += 1 length += 4 length += 1 @@ -15023,6 +15304,8 @@ data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteBYTE(data, self.JobLevel) data = CommFunc.WriteWORD(data, self.RealmLV) + data = CommFunc.WriteDWORD(data, self.Face) + data = CommFunc.WriteDWORD(data, self.FacePic) data = CommFunc.WriteBYTE(data, self.PlayerState) data = CommFunc.WriteDWORD(data, self.MapID) data = CommFunc.WriteBYTE(data, self.LineID) @@ -15039,6 +15322,8 @@ Job:%d, JobLevel:%d, RealmLV:%d, + Face:%d, + FacePic:%d, PlayerState:%d, MapID:%d, LineID:%d @@ -15053,6 +15338,8 @@ self.Job, self.JobLevel, self.RealmLV, + self.Face, + self.FacePic, self.PlayerState, self.MapID, self.LineID @@ -16028,6 +16315,8 @@ FightPower = 0 #(DWORD FightPower)// 战力求余亿部分 FightPowerEx = 0 #(DWORD FightPowerEx)// 战力整除亿部分 RealmLV = 0 #(WORD RealmLV) + Face = 0 #(DWORD Face)//基本脸型 + FacePic = 0 #(DWORD FacePic)//头像框 data = None def __init__(self): @@ -16044,6 +16333,8 @@ self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): @@ -16055,6 +16346,8 @@ self.FightPower = 0 self.FightPowerEx = 0 self.RealmLV = 0 + self.Face = 0 + self.FacePic = 0 return def GetLength(self): @@ -16067,6 +16360,8 @@ length += 4 length += 4 length += 2 + length += 4 + length += 4 return length @@ -16080,6 +16375,8 @@ data = CommFunc.WriteDWORD(data, self.FightPower) data = CommFunc.WriteDWORD(data, self.FightPowerEx) data = CommFunc.WriteWORD(data, self.RealmLV) + data = CommFunc.WriteDWORD(data, self.Face) + data = CommFunc.WriteDWORD(data, self.FacePic) return data def OutputString(self): @@ -16091,7 +16388,9 @@ LV:%d, FightPower:%d, FightPowerEx:%d, - RealmLV:%d + RealmLV:%d, + Face:%d, + FacePic:%d '''\ %( self.PlayerID, @@ -16101,7 +16400,9 @@ self.LV, self.FightPower, self.FightPowerEx, - self.RealmLV + self.RealmLV, + self.Face, + self.FacePic ) return DumpString @@ -16557,7 +16858,7 @@ ID = 0 #(DWORD ID) ID2 = 0 #(DWORD ID2) Name1 = "" #(char Name1[33])//名字1,用来显示排序对象名字 - Name2 = "" #(char Name2[33])//名字2 + Name2 = "" #(char Name2[65])//名字2 Type2 = 0 #(BYTE Type2)//附加类型,用来表示排序对象的类型,比如,玩家所属职业门派,宠物类型等 Value1 = 0 #(DWORD Value1)//自定义值1 Value2 = 0 #(DWORD Value2)//自定义值2 @@ -16584,7 +16885,7 @@ self.ID,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ID2,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Name1,_pos = CommFunc.ReadString(_lpData, _pos,33) - self.Name2,_pos = CommFunc.ReadString(_lpData, _pos,33) + self.Name2,_pos = CommFunc.ReadString(_lpData, _pos,65) self.Type2,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.Value1,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Value2,_pos = CommFunc.ReadDWORD(_lpData, _pos) @@ -16629,7 +16930,7 @@ length += 4 length += 4 length += 33 - length += 33 + length += 65 length += 1 length += 4 length += 4 @@ -16653,7 +16954,7 @@ data = CommFunc.WriteDWORD(data, self.ID) data = CommFunc.WriteDWORD(data, self.ID2) data = CommFunc.WriteString(data, 33, self.Name1) - data = CommFunc.WriteString(data, 33, self.Name2) + data = CommFunc.WriteString(data, 65, self.Name2) data = CommFunc.WriteBYTE(data, self.Type2) data = CommFunc.WriteDWORD(data, self.Value1) data = CommFunc.WriteDWORD(data, self.Value2) @@ -17049,6 +17350,8 @@ FightPower = 0 #(DWORD FightPower)// 战力求余亿部分 FightPowerEx = 0 #(DWORD FightPowerEx)// 战力整除亿部分 RealmLV = 0 #(WORD RealmLV) + Face = 0 #(DWORD Face)//基本脸型 + FacePic = 0 #(DWORD FacePic)//头像框 data = None def __init__(self): @@ -17065,6 +17368,8 @@ self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): @@ -17076,6 +17381,8 @@ self.FightPower = 0 self.FightPowerEx = 0 self.RealmLV = 0 + self.Face = 0 + self.FacePic = 0 return def GetLength(self): @@ -17088,6 +17395,8 @@ length += 4 length += 4 length += 2 + length += 4 + length += 4 return length @@ -17101,6 +17410,8 @@ data = CommFunc.WriteDWORD(data, self.FightPower) data = CommFunc.WriteDWORD(data, self.FightPowerEx) data = CommFunc.WriteWORD(data, self.RealmLV) + data = CommFunc.WriteDWORD(data, self.Face) + data = CommFunc.WriteDWORD(data, self.FacePic) return data def OutputString(self): @@ -17112,7 +17423,9 @@ LV:%d, FightPower:%d, FightPowerEx:%d, - RealmLV:%d + RealmLV:%d, + Face:%d, + FacePic:%d '''\ %( self.PlayerID, @@ -17122,7 +17435,9 @@ self.LV, self.FightPower, self.FightPowerEx, - self.RealmLV + self.RealmLV, + self.Face, + self.FacePic ) return DumpString @@ -17241,6 +17556,8 @@ NameLen = 0 #(BYTE NameLen) PlayerName = "" #(String PlayerName) Job = 0 #(BYTE Job) + Face = 0 #(DWORD Face)//基本脸型 + FacePic = 0 #(DWORD FacePic)//头像框 FightPower = 0 #(DWORD FightPower) RealmLV = 0 #(WORD RealmLV) PKScore = 0 #(DWORD PKScore) @@ -17257,6 +17574,8 @@ self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.PKScore,_pos = CommFunc.ReadDWORD(_lpData, _pos) @@ -17268,6 +17587,8 @@ self.NameLen = 0 self.PlayerName = "" self.Job = 0 + self.Face = 0 + self.FacePic = 0 self.FightPower = 0 self.RealmLV = 0 self.PKScore = 0 @@ -17281,6 +17602,8 @@ length += len(self.PlayerName) length += 1 length += 4 + length += 4 + length += 4 length += 2 length += 4 length += 1 @@ -17293,6 +17616,8 @@ data = CommFunc.WriteBYTE(data, self.NameLen) data = CommFunc.WriteString(data, self.NameLen, self.PlayerName) data = CommFunc.WriteBYTE(data, self.Job) + data = CommFunc.WriteDWORD(data, self.Face) + data = CommFunc.WriteDWORD(data, self.FacePic) data = CommFunc.WriteDWORD(data, self.FightPower) data = CommFunc.WriteWORD(data, self.RealmLV) data = CommFunc.WriteDWORD(data, self.PKScore) @@ -17305,6 +17630,8 @@ NameLen:%d, PlayerName:%s, Job:%d, + Face:%d, + FacePic:%d, FightPower:%d, RealmLV:%d, PKScore:%d, @@ -17315,6 +17642,8 @@ self.NameLen, self.PlayerName, self.Job, + self.Face, + self.FacePic, self.FightPower, self.RealmLV, self.PKScore, @@ -17412,6 +17741,8 @@ PlayerName = "" #(String PlayerName)// 跨服名字 Job = 0 #(BYTE Job) LV = 0 #(WORD LV) + Face = 0 #(DWORD Face)//基本脸型 + FacePic = 0 #(DWORD FacePic)//头像框 MaxHP = 0 #(DWORD MaxHP)// 默认满血,求余亿部分 MaxHPEx = 0 #(DWORD MaxHPEx)// 默认满血,整除亿部分 MaxProDef = 0 #(DWORD MaxProDef)// 最大护盾 @@ -17428,6 +17759,8 @@ self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MaxHP,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MaxHPEx,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.MaxProDef,_pos = CommFunc.ReadDWORD(_lpData, _pos) @@ -17439,6 +17772,8 @@ self.PlayerName = "" self.Job = 0 self.LV = 0 + self.Face = 0 + self.FacePic = 0 self.MaxHP = 0 self.MaxHPEx = 0 self.MaxProDef = 0 @@ -17454,6 +17789,8 @@ length += 4 length += 4 length += 4 + length += 4 + length += 4 return length @@ -17464,6 +17801,8 @@ data = CommFunc.WriteString(data, self.NameLen, self.PlayerName) data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteWORD(data, self.LV) + data = CommFunc.WriteDWORD(data, self.Face) + data = CommFunc.WriteDWORD(data, self.FacePic) data = CommFunc.WriteDWORD(data, self.MaxHP) data = CommFunc.WriteDWORD(data, self.MaxHPEx) data = CommFunc.WriteDWORD(data, self.MaxProDef) @@ -17476,6 +17815,8 @@ PlayerName:%s, Job:%d, LV:%d, + Face:%d, + FacePic:%d, MaxHP:%d, MaxHPEx:%d, MaxProDef:%d @@ -17486,6 +17827,8 @@ self.PlayerName, self.Job, self.LV, + self.Face, + self.FacePic, self.MaxHP, self.MaxHPEx, self.MaxProDef @@ -19103,6 +19446,7 @@ ExAttr20 = 0 #(DWORD ExAttr20)//预留的扩展属性字段,用来存放项目特定的属性 HPEx = 0 #(DWORD HPEx)//当前血量 超过E的记录 Face = 0 #(DWORD Face)//基本脸型 + FacePic = 0 #(DWORD FacePic)//头像框 RoleType = 0 #(DWORD RoleType)//角色类型(各项目可自定义含义,如种族,与职业区分) data = None @@ -19211,6 +19555,7 @@ self.ExAttr20,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.HPEx,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.RoleType,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos @@ -19315,6 +19660,7 @@ self.ExAttr20 = 0 self.HPEx = 0 self.Face = 0 + self.FacePic = 0 self.RoleType = 0 return @@ -19408,6 +19754,7 @@ length += 4 length += 4 length += 15 + length += 4 length += 4 length += 4 length += 4 @@ -19520,6 +19867,7 @@ data = CommFunc.WriteDWORD(data, self.ExAttr20) data = CommFunc.WriteDWORD(data, self.HPEx) data = CommFunc.WriteDWORD(data, self.Face) + data = CommFunc.WriteDWORD(data, self.FacePic) data = CommFunc.WriteDWORD(data, self.RoleType) return data @@ -19622,6 +19970,7 @@ ExAttr20:%d, HPEx:%d, Face:%d, + FacePic:%d, RoleType:%d '''\ %( @@ -19722,6 +20071,7 @@ self.ExAttr20, self.HPEx, self.Face, + self.FacePic, self.RoleType ) return DumpString @@ -28554,13 +28904,11 @@ #------------------------------------------------------ # A3 51 寻宝功能信息 #tagMCTreasureInfo -class tagMCTreasureTypeInfo(Structure): +class tagMCTreasureGridLimit(Structure): _pack_ = 1 _fields_ = [ - ("TreasureType", c_ubyte), #寻宝类型 - ("LuckValue", c_ushort), #当前幸运值 - ("TreasureCount", c_int), #已寻宝总次数 - ("FreeCountToday", c_ushort), #今日已免费寻宝次数 + ("GridNum", c_ubyte), # 有限制抽取次数的格子编号 + ("GridCnt", c_ushort), # 已抽到次数 ] def __init__(self): @@ -28573,30 +28921,109 @@ return _pos + self.GetLength() def Clear(self): - self.TreasureType = 0 - self.LuckValue = 0 - self.TreasureCount = 0 - self.FreeCountToday = 0 + self.GridNum = 0 + self.GridCnt = 0 return def GetLength(self): - return sizeof(tagMCTreasureTypeInfo) + return sizeof(tagMCTreasureGridLimit) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 51 寻宝功能信息 //tagMCTreasureInfo: + GridNum:%d, + GridCnt:%d + '''\ + %( + self.GridNum, + self.GridCnt + ) + return DumpString + + +class tagMCTreasureTypeInfo(Structure): + TreasureType = 0 #(BYTE TreasureType)//寻宝类型 + LuckValue = 0 #(WORD LuckValue)//当前幸运值 + TreasureCount = 0 #(DWORD TreasureCount)//已寻宝总次数 + FreeCountToday = 0 #(WORD FreeCountToday)//今日已免费寻宝次数 + TreasureCntAward = 0 #(DWORD TreasureCntAward)//累计寻宝次数对应奖励领奖状态,按奖励记录索引二进制记录是否已领取 + GridLimitCnt = 0 #(BYTE GridLimitCnt) + GridLimitCntList = list() #(vector<tagMCTreasureGridLimit> GridLimitCntList)//有限制抽取次数的格子次数信息 + data = None + + def __init__(self): + self.Clear() + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + self.TreasureType,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.LuckValue,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.TreasureCount,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.FreeCountToday,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.TreasureCntAward,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.GridLimitCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.GridLimitCnt): + temGridLimitCntList = tagMCTreasureGridLimit() + _pos = temGridLimitCntList.ReadData(_lpData, _pos) + self.GridLimitCntList.append(temGridLimitCntList) + return _pos + + def Clear(self): + self.TreasureType = 0 + self.LuckValue = 0 + self.TreasureCount = 0 + self.FreeCountToday = 0 + self.TreasureCntAward = 0 + self.GridLimitCnt = 0 + self.GridLimitCntList = list() + return + + def GetLength(self): + length = 0 + length += 1 + length += 2 + length += 4 + length += 2 + length += 4 + length += 1 + for i in range(self.GridLimitCnt): + length += self.GridLimitCntList[i].GetLength() + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteBYTE(data, self.TreasureType) + data = CommFunc.WriteWORD(data, self.LuckValue) + data = CommFunc.WriteDWORD(data, self.TreasureCount) + data = CommFunc.WriteWORD(data, self.FreeCountToday) + data = CommFunc.WriteDWORD(data, self.TreasureCntAward) + data = CommFunc.WriteBYTE(data, self.GridLimitCnt) + for i in range(self.GridLimitCnt): + data = CommFunc.WriteString(data, self.GridLimitCntList[i].GetLength(), self.GridLimitCntList[i].GetBuffer()) + return data + + def OutputString(self): + DumpString = ''' TreasureType:%d, LuckValue:%d, TreasureCount:%d, - FreeCountToday:%d + FreeCountToday:%d, + TreasureCntAward:%d, + GridLimitCnt:%d, + GridLimitCntList:%s '''\ %( self.TreasureType, self.LuckValue, self.TreasureCount, - self.FreeCountToday + self.FreeCountToday, + self.TreasureCntAward, + self.GridLimitCnt, + "..." ) return DumpString @@ -29774,6 +30201,62 @@ #------------------------------------------------------ +# A5 12 珍宝阁信息 #tagMCFamilyZhenbaogeInfo + +class tagMCFamilyZhenbaogeInfo(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("CutState", c_ubyte), # 今日是否已砍价,此状态为全局状态,与盟Action砍价状态不同 + ("BuyState", c_ubyte), # 今日是否已购买,此状态为全局状态,与盟Action购买状态不同 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA5 + self.SubCmd = 0x12 + 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 = 0xA5 + self.SubCmd = 0x12 + self.CutState = 0 + self.BuyState = 0 + return + + def GetLength(self): + return sizeof(tagMCFamilyZhenbaogeInfo) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A5 12 珍宝阁信息 //tagMCFamilyZhenbaogeInfo: + Cmd:%s, + SubCmd:%s, + CutState:%d, + BuyState:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.CutState, + self.BuyState + ) + return DumpString + + +m_NAtagMCFamilyZhenbaogeInfo=tagMCFamilyZhenbaogeInfo() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyZhenbaogeInfo.Cmd,m_NAtagMCFamilyZhenbaogeInfo.SubCmd))] = m_NAtagMCFamilyZhenbaogeInfo + + +#------------------------------------------------------ # A5 09 仙盟阵法信息 #tagMCFamilyZhenfaInfo class tagMCFamilyZhenfa(Structure): @@ -30580,18 +31063,17 @@ #------------------------------------------------------ # A7 17 聊天气泡框状态 #tagMCChatBubbleBoxState -class tagMCChatBubbleBoxState(Structure): +class tagMCChatBubbleBox(Structure): _pack_ = 1 _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("BoxState", c_int), # 按二进制位存储代表是否已开启,暂支持31位,以后有需要再加 + ("BoxID", c_ubyte), #气泡ID + ("State", c_ubyte), #是否已激活 + ("EndTime", c_int), #到期时间戳,0为永久 + ("Star", c_ubyte), #星级 ] def __init__(self): self.Clear() - self.Cmd = 0xA7 - self.SubCmd = 0x17 return def ReadData(self, stringData, _pos=0, _len=0): @@ -30600,33 +31082,98 @@ return _pos + self.GetLength() def Clear(self): - self.Cmd = 0xA7 - self.SubCmd = 0x17 - self.BoxState = 0 + self.BoxID = 0 + self.State = 0 + self.EndTime = 0 + self.Star = 0 return def GetLength(self): - return sizeof(tagMCChatBubbleBoxState) + return sizeof(tagMCChatBubbleBox) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A7 17 聊天气泡框状态 //tagMCChatBubbleBoxState: - Cmd:%s, - SubCmd:%s, - BoxState:%d + BoxID:%d, + State:%d, + EndTime:%d, + Star:%d '''\ %( - self.Cmd, - self.SubCmd, - self.BoxState + self.BoxID, + self.State, + self.EndTime, + self.Star + ) + return DumpString + + +class tagMCChatBubbleBoxState(Structure): + Head = tagHead() + Count = 0 #(BYTE Count) + BoxList = list() #(vector<tagMCChatBubbleBox> BoxList) + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xA7 + self.Head.SubCmd = 0x17 + 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): + temBoxList = tagMCChatBubbleBox() + _pos = temBoxList.ReadData(_lpData, _pos) + self.BoxList.append(temBoxList) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xA7 + self.Head.SubCmd = 0x17 + self.Count = 0 + self.BoxList = list() + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 1 + for i in range(self.Count): + length += self.BoxList[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.BoxList[i].GetLength(), self.BoxList[i].GetBuffer()) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + Count:%d, + BoxList:%s + '''\ + %( + self.Head.OutputString(), + self.Count, + "..." ) return DumpString m_NAtagMCChatBubbleBoxState=tagMCChatBubbleBoxState() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCChatBubbleBoxState.Cmd,m_NAtagMCChatBubbleBoxState.SubCmd))] = m_NAtagMCChatBubbleBoxState +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCChatBubbleBoxState.Head.Cmd,m_NAtagMCChatBubbleBoxState.Head.SubCmd))] = m_NAtagMCChatBubbleBoxState #------------------------------------------------------ @@ -30925,6 +31472,118 @@ m_NAtagMCDynamicBarrierState=tagMCDynamicBarrierState() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCDynamicBarrierState.Head.Cmd,m_NAtagMCDynamicBarrierState.Head.SubCmd))] = m_NAtagMCDynamicBarrierState + + +#------------------------------------------------------ +# A7 21 表情包信息 #tagMCEmojiPackInfo + +class tagMCEmojiPack(Structure): + _pack_ = 1 + _fields_ = [ + ("PackID", c_ubyte), #表情包ID + ("State", c_ubyte), #是否已激活 + ("EndTime", c_int), #到期时间戳,0为永久 + ] + + def __init__(self): + self.Clear() + return + + def ReadData(self, stringData, _pos=0, _len=0): + self.Clear() + memmove(addressof(self), stringData[_pos:], self.GetLength()) + return _pos + self.GetLength() + + def Clear(self): + self.PackID = 0 + self.State = 0 + self.EndTime = 0 + return + + def GetLength(self): + return sizeof(tagMCEmojiPack) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A7 21 表情包信息 //tagMCEmojiPackInfo: + PackID:%d, + State:%d, + EndTime:%d + '''\ + %( + self.PackID, + self.State, + self.EndTime + ) + return DumpString + + +class tagMCEmojiPackInfo(Structure): + Head = tagHead() + Count = 0 #(BYTE Count) + EmojiPackList = list() #(vector<tagMCEmojiPack> EmojiPackList) + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xA7 + self.Head.SubCmd = 0x21 + 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): + temEmojiPackList = tagMCEmojiPack() + _pos = temEmojiPackList.ReadData(_lpData, _pos) + self.EmojiPackList.append(temEmojiPackList) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xA7 + self.Head.SubCmd = 0x21 + self.Count = 0 + self.EmojiPackList = list() + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 1 + for i in range(self.Count): + length += self.EmojiPackList[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.EmojiPackList[i].GetLength(), self.EmojiPackList[i].GetBuffer()) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + Count:%d, + EmojiPackList:%s + '''\ + %( + self.Head.OutputString(), + self.Count, + "..." + ) + return DumpString + + +m_NAtagMCEmojiPackInfo=tagMCEmojiPackInfo() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCEmojiPackInfo.Head.Cmd,m_NAtagMCEmojiPackInfo.Head.SubCmd))] = m_NAtagMCEmojiPackInfo #------------------------------------------------------ @@ -37456,6 +38115,8 @@ DayNum = 0 #(BYTE DayNum)//天编号,从1开始,过期未签到领取的天可消耗货币补签领取 Count = 0 #(BYTE Count)// 奖励物品数 AwardItemList = list() #(vector<tagMCActLoginNewItem> AwardItemList)// 奖励物品列表 + CountEx = 0 #(BYTE CountEx)// 额外奖励物品数 + AwardItemListEx = list() #(vector<tagMCActLoginNewItem> AwardItemListEx)// 额外奖励物品列表 data = None def __init__(self): @@ -37470,12 +38131,19 @@ temAwardItemList = tagMCActLoginNewItem() _pos = temAwardItemList.ReadData(_lpData, _pos) self.AwardItemList.append(temAwardItemList) + self.CountEx,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.CountEx): + temAwardItemListEx = tagMCActLoginNewItem() + _pos = temAwardItemListEx.ReadData(_lpData, _pos) + self.AwardItemListEx.append(temAwardItemListEx) return _pos def Clear(self): self.DayNum = 0 self.Count = 0 self.AwardItemList = list() + self.CountEx = 0 + self.AwardItemListEx = list() return def GetLength(self): @@ -37484,6 +38152,9 @@ length += 1 for i in range(self.Count): length += self.AwardItemList[i].GetLength() + length += 1 + for i in range(self.CountEx): + length += self.AwardItemListEx[i].GetLength() return length @@ -37493,17 +38164,24 @@ data = CommFunc.WriteBYTE(data, self.Count) for i in range(self.Count): data = CommFunc.WriteString(data, self.AwardItemList[i].GetLength(), self.AwardItemList[i].GetBuffer()) + data = CommFunc.WriteBYTE(data, self.CountEx) + for i in range(self.CountEx): + data = CommFunc.WriteString(data, self.AwardItemListEx[i].GetLength(), self.AwardItemListEx[i].GetBuffer()) return data def OutputString(self): DumpString = ''' DayNum:%d, Count:%d, - AwardItemList:%s + AwardItemList:%s, + CountEx:%d, + AwardItemListEx:%s '''\ %( self.DayNum, self.Count, + "...", + self.CountEx, "..." ) return DumpString @@ -37517,6 +38195,7 @@ LimitLV = 0 #(WORD LimitLV)// 限制等级 RepSignMoneyType = 0 #(BYTE RepSignMoneyType)// 补签消耗货币类型 RepSignMoneyValue = 0 #(DWORD RepSignMoneyValue)// 补签消耗货币值 + AwardExCTGID = 0 #(WORD AwardExCTGID)// 扩展奖励礼包充值ID,大于0时代表可以购买礼包每日登录可领取额外奖励 DayCount = 0 #(BYTE DayCount) AwardDayList = list() #(vector<tagMCActLoginNewDay> AwardDayList)// 奖励天列表 data = None @@ -37536,6 +38215,7 @@ self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.RepSignMoneyType,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.RepSignMoneyValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.AwardExCTGID,_pos = CommFunc.ReadWORD(_lpData, _pos) self.DayCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) for i in range(self.DayCount): temAwardDayList = tagMCActLoginNewDay() @@ -37554,6 +38234,7 @@ self.LimitLV = 0 self.RepSignMoneyType = 0 self.RepSignMoneyValue = 0 + self.AwardExCTGID = 0 self.DayCount = 0 self.AwardDayList = list() return @@ -37567,6 +38248,7 @@ length += 2 length += 1 length += 4 + length += 2 length += 1 for i in range(self.DayCount): length += self.AwardDayList[i].GetLength() @@ -37582,6 +38264,7 @@ data = CommFunc.WriteWORD(data, self.LimitLV) data = CommFunc.WriteBYTE(data, self.RepSignMoneyType) data = CommFunc.WriteDWORD(data, self.RepSignMoneyValue) + data = CommFunc.WriteWORD(data, self.AwardExCTGID) data = CommFunc.WriteBYTE(data, self.DayCount) for i in range(self.DayCount): data = CommFunc.WriteString(data, self.AwardDayList[i].GetLength(), self.AwardDayList[i].GetBuffer()) @@ -37596,6 +38279,7 @@ LimitLV:%d, RepSignMoneyType:%d, RepSignMoneyValue:%d, + AwardExCTGID:%d, DayCount:%d, AwardDayList:%s '''\ @@ -37607,6 +38291,7 @@ self.LimitLV, self.RepSignMoneyType, self.RepSignMoneyValue, + self.AwardExCTGID, self.DayCount, "..." ) @@ -37626,7 +38311,8 @@ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ActNum", c_ubyte), # 活动编号 - ("LoginAward", c_int), # 是否已领取,按天索引0代表第1天记录当天是否已领取 + ("LoginAward", c_int), # 普通奖励领取记录,按天对应二进制位记录是否已领取 + ("LoginAwardEx", c_int), # 额外奖励领取记录,按天对应二进制位记录是否已领取 ] def __init__(self): @@ -37645,6 +38331,7 @@ self.SubCmd = 0x70 self.ActNum = 0 self.LoginAward = 0 + self.LoginAwardEx = 0 return def GetLength(self): @@ -37658,19 +38345,378 @@ Cmd:%s, SubCmd:%s, ActNum:%d, - LoginAward:%d + LoginAward:%d, + LoginAwardEx:%d '''\ %( self.Cmd, self.SubCmd, self.ActNum, - self.LoginAward + self.LoginAward, + self.LoginAwardEx ) return DumpString m_NAtagMCActLoginPlayerInfoNew=tagMCActLoginPlayerInfoNew() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActLoginPlayerInfoNew.Cmd,m_NAtagMCActLoginPlayerInfoNew.SubCmd))] = m_NAtagMCActLoginPlayerInfoNew + + +#------------------------------------------------------ +# AA 88 轮回殿活动信息 #tagMCActLunhuidianInfo + +class tagMCActLunhuidianItem(Structure): + _pack_ = 1 + _fields_ = [ + ("ItemID", c_int), + ("ItemCount", c_ushort), + ("IsBind", c_ubyte), + ] + + def __init__(self): + self.Clear() + return + + def ReadData(self, stringData, _pos=0, _len=0): + self.Clear() + memmove(addressof(self), stringData[_pos:], self.GetLength()) + return _pos + self.GetLength() + + def Clear(self): + self.ItemID = 0 + self.ItemCount = 0 + self.IsBind = 0 + return + + def GetLength(self): + return sizeof(tagMCActLunhuidianItem) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// AA 88 轮回殿活动信息 //tagMCActLunhuidianInfo: + ItemID:%d, + ItemCount:%d, + IsBind:%d + '''\ + %( + self.ItemID, + self.ItemCount, + self.IsBind + ) + return DumpString + + +class tagMCActLunhuidianAward(Structure): + AwardIndex = 0 #(BYTE AwardIndex)// 奖励记录索引 0~30 + NeedValue = 0 #(DWORD NeedValue)// 奖励所需值 + Count = 0 #(BYTE Count)// 奖励物品数 + AwardItemList = list() #(vector<tagMCActLunhuidianItem> AwardItemList)// 奖励物品列表 + data = None + + def __init__(self): + self.Clear() + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + self.AwardIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.NeedValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.Count): + temAwardItemList = tagMCActLunhuidianItem() + _pos = temAwardItemList.ReadData(_lpData, _pos) + self.AwardItemList.append(temAwardItemList) + return _pos + + def Clear(self): + self.AwardIndex = 0 + self.NeedValue = 0 + self.Count = 0 + self.AwardItemList = list() + return + + def GetLength(self): + length = 0 + length += 1 + length += 4 + length += 1 + for i in range(self.Count): + length += self.AwardItemList[i].GetLength() + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteBYTE(data, self.AwardIndex) + data = CommFunc.WriteDWORD(data, self.NeedValue) + data = CommFunc.WriteBYTE(data, self.Count) + for i in range(self.Count): + data = CommFunc.WriteString(data, self.AwardItemList[i].GetLength(), self.AwardItemList[i].GetBuffer()) + return data + + def OutputString(self): + DumpString = ''' + AwardIndex:%d, + NeedValue:%d, + Count:%d, + AwardItemList:%s + '''\ + %( + self.AwardIndex, + self.NeedValue, + self.Count, + "..." + ) + return DumpString + + +class tagMCActLunhuidianRound(Structure): + RoundType = 0 #(BYTE RoundType)// 轮回类型 + AwardType = 0 #(BYTE AwardType)// 奖励类型 1-消耗货币;2-寻宝次数 + AwardTypeValue = 0 #(DWORD AwardTypeValue)// 奖励类型对应值,消耗货币时为对应的货币类型,寻宝时为对应的寻宝类型 + RoundMax = 0 #(BYTE RoundMax)// 最大可循环轮次 + AwardCount = 0 #(BYTE AwardCount) + AwardList = list() #(vector<tagMCActLunhuidianAward> AwardList)// 每轮奖励列表 + data = None + + def __init__(self): + self.Clear() + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + self.RoundType,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.AwardType,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.AwardTypeValue,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.RoundMax,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.AwardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.AwardCount): + temAwardList = tagMCActLunhuidianAward() + _pos = temAwardList.ReadData(_lpData, _pos) + self.AwardList.append(temAwardList) + return _pos + + def Clear(self): + self.RoundType = 0 + self.AwardType = 0 + self.AwardTypeValue = 0 + self.RoundMax = 0 + self.AwardCount = 0 + self.AwardList = list() + return + + def GetLength(self): + length = 0 + length += 1 + length += 1 + length += 4 + length += 1 + length += 1 + for i in range(self.AwardCount): + length += self.AwardList[i].GetLength() + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteBYTE(data, self.RoundType) + data = CommFunc.WriteBYTE(data, self.AwardType) + data = CommFunc.WriteDWORD(data, self.AwardTypeValue) + data = CommFunc.WriteBYTE(data, self.RoundMax) + data = CommFunc.WriteBYTE(data, self.AwardCount) + for i in range(self.AwardCount): + data = CommFunc.WriteString(data, self.AwardList[i].GetLength(), self.AwardList[i].GetBuffer()) + return data + + def OutputString(self): + DumpString = ''' + RoundType:%d, + AwardType:%d, + AwardTypeValue:%d, + RoundMax:%d, + AwardCount:%d, + AwardList:%s + '''\ + %( + self.RoundType, + self.AwardType, + self.AwardTypeValue, + self.RoundMax, + self.AwardCount, + "..." + ) + return DumpString + + +class tagMCActLunhuidianInfo(Structure): + Head = tagHead() + ActNum = 0 #(BYTE ActNum)// 活动编号 + StartDate = "" #(char StartDate[10])// 开始日期 y-m-d + EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d + ResetType = 0 #(BYTE ResetType)// 重置类型,0-0点重置;1-5点重置 + LimitLV = 0 #(WORD LimitLV)// 限制等级 + RoundCount = 0 #(BYTE RoundCount) + RoundList = list() #(vector<tagMCActLunhuidianRound> RoundList)// 轮回列表,支持多个不同类型轮回同时开启 + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xAA + self.Head.SubCmd = 0x88 + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10) + self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10) + self.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.RoundCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.RoundCount): + temRoundList = tagMCActLunhuidianRound() + _pos = temRoundList.ReadData(_lpData, _pos) + self.RoundList.append(temRoundList) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xAA + self.Head.SubCmd = 0x88 + self.ActNum = 0 + self.StartDate = "" + self.EndtDate = "" + self.ResetType = 0 + self.LimitLV = 0 + self.RoundCount = 0 + self.RoundList = list() + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 1 + length += 10 + length += 10 + length += 1 + length += 2 + length += 1 + for i in range(self.RoundCount): + length += self.RoundList[i].GetLength() + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteBYTE(data, self.ActNum) + data = CommFunc.WriteString(data, 10, self.StartDate) + data = CommFunc.WriteString(data, 10, self.EndtDate) + data = CommFunc.WriteBYTE(data, self.ResetType) + data = CommFunc.WriteWORD(data, self.LimitLV) + data = CommFunc.WriteBYTE(data, self.RoundCount) + for i in range(self.RoundCount): + data = CommFunc.WriteString(data, self.RoundList[i].GetLength(), self.RoundList[i].GetBuffer()) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + ActNum:%d, + StartDate:%s, + EndtDate:%s, + ResetType:%d, + LimitLV:%d, + RoundCount:%d, + RoundList:%s + '''\ + %( + self.Head.OutputString(), + self.ActNum, + self.StartDate, + self.EndtDate, + self.ResetType, + self.LimitLV, + self.RoundCount, + "..." + ) + return DumpString + + +m_NAtagMCActLunhuidianInfo=tagMCActLunhuidianInfo() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActLunhuidianInfo.Head.Cmd,m_NAtagMCActLunhuidianInfo.Head.SubCmd))] = m_NAtagMCActLunhuidianInfo + + +#------------------------------------------------------ +# AA 89 轮回殿活动玩家信息 #tagMCActLunhuidianPlayerInfo + +class tagMCActLunhuidianPlayerInfo(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("ActNum", c_ubyte), # 活动编号 + ("RoundType", c_ubyte), # 轮回类型 + ("CurRound", c_ubyte), # 当前轮次 + ("CurValue", c_int), # 累计值 + ("AwardRecord", c_int), # 当前轮次奖励领奖记录,按奖励索引二进制位存储是否已领取,所有奖励已领取后自动进入下一轮,且重置该奖励状态 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xAA + self.SubCmd = 0x89 + return + + def ReadData(self, stringData, _pos=0, _len=0): + self.Clear() + memmove(addressof(self), stringData[_pos:], self.GetLength()) + return _pos + self.GetLength() + + def Clear(self): + self.Cmd = 0xAA + self.SubCmd = 0x89 + self.ActNum = 0 + self.RoundType = 0 + self.CurRound = 0 + self.CurValue = 0 + self.AwardRecord = 0 + return + + def GetLength(self): + return sizeof(tagMCActLunhuidianPlayerInfo) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// AA 89 轮回殿活动玩家信息 //tagMCActLunhuidianPlayerInfo: + Cmd:%s, + SubCmd:%s, + ActNum:%d, + RoundType:%d, + CurRound:%d, + CurValue:%d, + AwardRecord:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.ActNum, + self.RoundType, + self.CurRound, + self.CurValue, + self.AwardRecord + ) + return DumpString + + +m_NAtagMCActLunhuidianPlayerInfo=tagMCActLunhuidianPlayerInfo() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActLunhuidianPlayerInfo.Cmd,m_NAtagMCActLunhuidianPlayerInfo.SubCmd))] = m_NAtagMCActLunhuidianPlayerInfo #------------------------------------------------------ @@ -41035,6 +42081,98 @@ m_NAtagMCActXianXiaMJLayerInfo=tagMCActXianXiaMJLayerInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActXianXiaMJLayerInfo.Head.Cmd,m_NAtagMCActXianXiaMJLayerInfo.Head.SubCmd))] = m_NAtagMCActXianXiaMJLayerInfo + + +#------------------------------------------------------ +# AA 87 运势活动信息 #tagMCActYunshiInfo + +class tagMCActYunshiInfo(Structure): + Head = tagHead() + ActNum = 0 #(BYTE ActNum)// 活动编号 + StartDate = "" #(char StartDate[10])// 开始日期 y-m-d + EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d + ResetType = 0 #(BYTE ResetType)// 重置类型,0-0点重置;1-5点重置 + LimitLV = 0 #(WORD LimitLV)// 限制等级 + TreasureType = 0 #(BYTE TreasureType)// 活动寻宝类型 + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xAA + self.Head.SubCmd = 0x87 + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10) + self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10) + self.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.TreasureType,_pos = CommFunc.ReadBYTE(_lpData, _pos) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xAA + self.Head.SubCmd = 0x87 + self.ActNum = 0 + self.StartDate = "" + self.EndtDate = "" + self.ResetType = 0 + self.LimitLV = 0 + self.TreasureType = 0 + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 1 + length += 10 + length += 10 + length += 1 + length += 2 + length += 1 + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteBYTE(data, self.ActNum) + data = CommFunc.WriteString(data, 10, self.StartDate) + data = CommFunc.WriteString(data, 10, self.EndtDate) + data = CommFunc.WriteBYTE(data, self.ResetType) + data = CommFunc.WriteWORD(data, self.LimitLV) + data = CommFunc.WriteBYTE(data, self.TreasureType) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + ActNum:%d, + StartDate:%s, + EndtDate:%s, + ResetType:%d, + LimitLV:%d, + TreasureType:%d + '''\ + %( + self.Head.OutputString(), + self.ActNum, + self.StartDate, + self.EndtDate, + self.ResetType, + self.LimitLV, + self.TreasureType + ) + return DumpString + + +m_NAtagMCActYunshiInfo=tagMCActYunshiInfo() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActYunshiInfo.Head.Cmd,m_NAtagMCActYunshiInfo.Head.SubCmd))] = m_NAtagMCActYunshiInfo #------------------------------------------------------ @@ -49886,6 +51024,238 @@ #------------------------------------------------------ +# B1 17 头像信息 #tagMCFaceInfo + +class tagMCFace(Structure): + _pack_ = 1 + _fields_ = [ + ("FaceID", c_int), #头像ID + ("State", c_ubyte), #是否已激活 + ("EndTime", c_int), #到期时间戳,0为永久 + ("Star", 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.FaceID = 0 + self.State = 0 + self.EndTime = 0 + self.Star = 0 + return + + def GetLength(self): + return sizeof(tagMCFace) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B1 17 头像信息 //tagMCFaceInfo: + FaceID:%d, + State:%d, + EndTime:%d, + Star:%d + '''\ + %( + self.FaceID, + self.State, + self.EndTime, + self.Star + ) + return DumpString + + +class tagMCFaceInfo(Structure): + Head = tagHead() + Count = 0 #(BYTE Count) + FaceList = list() #(vector<tagMCFace> FaceList) + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xB1 + self.Head.SubCmd = 0x17 + 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): + temFaceList = tagMCFace() + _pos = temFaceList.ReadData(_lpData, _pos) + self.FaceList.append(temFaceList) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xB1 + self.Head.SubCmd = 0x17 + self.Count = 0 + self.FaceList = list() + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 1 + for i in range(self.Count): + length += self.FaceList[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.FaceList[i].GetLength(), self.FaceList[i].GetBuffer()) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + Count:%d, + FaceList:%s + '''\ + %( + self.Head.OutputString(), + self.Count, + "..." + ) + return DumpString + + +m_NAtagMCFaceInfo=tagMCFaceInfo() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFaceInfo.Head.Cmd,m_NAtagMCFaceInfo.Head.SubCmd))] = m_NAtagMCFaceInfo + + +#------------------------------------------------------ +# B1 18 头像框信息 #tagMCFacePicInfo + +class tagMCFacePic(Structure): + _pack_ = 1 + _fields_ = [ + ("FacePicID", c_int), #头像框ID + ("State", c_ubyte), #是否已激活 + ("EndTime", c_int), #到期时间戳,0为永久 + ("Star", 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.FacePicID = 0 + self.State = 0 + self.EndTime = 0 + self.Star = 0 + return + + def GetLength(self): + return sizeof(tagMCFacePic) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B1 18 头像框信息 //tagMCFacePicInfo: + FacePicID:%d, + State:%d, + EndTime:%d, + Star:%d + '''\ + %( + self.FacePicID, + self.State, + self.EndTime, + self.Star + ) + return DumpString + + +class tagMCFacePicInfo(Structure): + Head = tagHead() + Count = 0 #(BYTE Count) + FacePicList = list() #(vector<tagMCFacePic> FacePicList) + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xB1 + self.Head.SubCmd = 0x18 + 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): + temFacePicList = tagMCFacePic() + _pos = temFacePicList.ReadData(_lpData, _pos) + self.FacePicList.append(temFacePicList) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xB1 + self.Head.SubCmd = 0x18 + self.Count = 0 + self.FacePicList = list() + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 1 + for i in range(self.Count): + length += self.FacePicList[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.FacePicList[i].GetLength(), self.FacePicList[i].GetBuffer()) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + Count:%d, + FacePicList:%s + '''\ + %( + self.Head.OutputString(), + self.Count, + "..." + ) + return DumpString + + +m_NAtagMCFacePicInfo=tagMCFacePicInfo() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFacePicInfo.Head.Cmd,m_NAtagMCFacePicInfo.Head.SubCmd))] = m_NAtagMCFacePicInfo + + +#------------------------------------------------------ # B1 11 功能系统特权信息 #tagMCFuncSysPrivilegeInfoList class tagMCFuncSysPrivilegeInfo(Structure): @@ -52165,6 +53535,8 @@ LV = 0 #(WORD LV)// 玩家等级 Job = 0 #(BYTE Job)// 玩家职业, 如果是机器人,则职业有值,服务端控制 RealmLV = 0 #(WORD RealmLV)// 玩家境界等级 + Face = 0 #(DWORD Face)//基本脸型 + FacePic = 0 #(DWORD FacePic)//头像框 FightPower = 0 #(DWORD FightPower)// 玩家战力 Relation = 0 #(BYTE Relation)// 关系:0-无,1-好友,2-盟友 IsNeedGold = 0 #(BYTE IsNeedGold)// 是否需要仙玉召唤 @@ -52183,6 +53555,8 @@ self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos) self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Relation,_pos = CommFunc.ReadBYTE(_lpData, _pos) self.IsNeedGold,_pos = CommFunc.ReadBYTE(_lpData, _pos) @@ -52196,6 +53570,8 @@ self.LV = 0 self.Job = 0 self.RealmLV = 0 + self.Face = 0 + self.FacePic = 0 self.FightPower = 0 self.Relation = 0 self.IsNeedGold = 0 @@ -52211,6 +53587,8 @@ length += 1 length += 2 length += 4 + length += 4 + length += 4 length += 1 length += 1 @@ -52225,6 +53603,8 @@ data = CommFunc.WriteWORD(data, self.LV) data = CommFunc.WriteBYTE(data, self.Job) data = CommFunc.WriteWORD(data, self.RealmLV) + data = CommFunc.WriteDWORD(data, self.Face) + data = CommFunc.WriteDWORD(data, self.FacePic) data = CommFunc.WriteDWORD(data, self.FightPower) data = CommFunc.WriteBYTE(data, self.Relation) data = CommFunc.WriteBYTE(data, self.IsNeedGold) @@ -52239,6 +53619,8 @@ LV:%d, Job:%d, RealmLV:%d, + Face:%d, + FacePic:%d, FightPower:%d, Relation:%d, IsNeedGold:%d @@ -52251,6 +53633,8 @@ self.LV, self.Job, self.RealmLV, + self.Face, + self.FacePic, self.FightPower, self.Relation, self.IsNeedGold -- Gitblit v1.8.0