| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A9 26 竞技场对战玩家最新信息 #tagGCArenaBattlePlayerInfo
|
| | |
|
| | | class tagGCArenaBattlePlayerInfo(Structure):
|
| | | Head = tagHead()
|
| | | PlayerID = 0 #(DWORD PlayerID)//目标玩家ID
|
| | | PlayerName = "" #(char PlayerName[33])
|
| | | Job = 0 #(BYTE Job)
|
| | | LV = 0 #(WORD LV)//等级
|
| | | RealmLV = 0 #(WORD RealmLV)//境界,机器人读境界表取等级对应境界
|
| | | FightPower = 0 #(DWORD FightPower)//战力求余亿部分,机器人读等级表取等级对应战力
|
| | | FightPowerEx = 0 #(DWORD FightPowerEx)//战力整除亿部分,机器人读等级表取等级对应战力
|
| | | Score = 0 #(DWORD Score)//积分
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xA9
|
| | | self.Head.SubCmd = 0x26
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
|
| | | self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.Score,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xA9
|
| | | self.Head.SubCmd = 0x26
|
| | | self.PlayerID = 0
|
| | | self.PlayerName = ""
|
| | | self.Job = 0
|
| | | self.LV = 0
|
| | | self.RealmLV = 0
|
| | | self.FightPower = 0
|
| | | self.FightPowerEx = 0
|
| | | self.Score = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 4
|
| | | length += 33
|
| | | length += 1
|
| | | length += 2
|
| | | length += 2
|
| | | length += 4
|
| | | length += 4
|
| | | length += 4
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteDWORD(data, self.PlayerID)
|
| | | data = CommFunc.WriteString(data, 33, self.PlayerName)
|
| | | data = CommFunc.WriteBYTE(data, self.Job)
|
| | | data = CommFunc.WriteWORD(data, self.LV)
|
| | | data = CommFunc.WriteWORD(data, self.RealmLV)
|
| | | data = CommFunc.WriteDWORD(data, self.FightPower)
|
| | | data = CommFunc.WriteDWORD(data, self.FightPowerEx)
|
| | | data = CommFunc.WriteDWORD(data, self.Score)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | PlayerID:%d,
|
| | | PlayerName:%s,
|
| | | Job:%d,
|
| | | LV:%d,
|
| | | RealmLV:%d,
|
| | | FightPower:%d,
|
| | | FightPowerEx:%d,
|
| | | Score:%d
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.PlayerID,
|
| | | self.PlayerName,
|
| | | self.Job,
|
| | | self.LV,
|
| | | self.RealmLV,
|
| | | self.FightPower,
|
| | | self.FightPowerEx,
|
| | | self.Score
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagGCArenaBattlePlayerInfo=tagGCArenaBattlePlayerInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCArenaBattlePlayerInfo.Head.Cmd,m_NAtagGCArenaBattlePlayerInfo.Head.SubCmd))] = m_NAtagGCArenaBattlePlayerInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A9 23 竞技场对战记录列表 #tagGCArenaBattleRecordList
|
| | |
|
| | | class tagGCArenaBattleRecord(Structure):
|
| | |
| | | Job = 0 #(BYTE Job)
|
| | | LV = 0 #(WORD LV)//等级
|
| | | RealmLV = 0 #(WORD RealmLV)//境界,机器人读境界表取等级对应境界
|
| | | FightPower = 0 #(DWORD FightPower)//战力,机器人读等级表取等级对应战力
|
| | | FightPower = 0 #(DWORD FightPower)//战力求余亿部分,机器人读等级表取等级对应战力
|
| | | FightPowerEx = 0 #(DWORD FightPowerEx)//战力整除亿部分,机器人读等级表取等级对应战力
|
| | | Score = 0 #(DWORD Score)//积分
|
| | | AddScoreLen = 0 #(BYTE AddScoreLen)
|
| | | AddScore = "" #(String AddScore)//本次对战增加的积分,有正负
|
| | | IsWin = 0 #(BYTE IsWin)//是否获胜
|
| | |
| | | self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.Score,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.AddScoreLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.AddScore,_pos = CommFunc.ReadString(_lpData, _pos,self.AddScoreLen)
|
| | | self.IsWin,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | |
| | | self.LV = 0
|
| | | self.RealmLV = 0
|
| | | self.FightPower = 0
|
| | | self.FightPowerEx = 0
|
| | | self.Score = 0
|
| | | self.AddScoreLen = 0
|
| | | self.AddScore = ""
|
| | | self.IsWin = 0
|
| | |
| | | length += 1
|
| | | length += 2
|
| | | length += 2
|
| | | length += 4
|
| | | length += 4
|
| | | length += 4
|
| | | length += 1
|
| | | length += len(self.AddScore)
|
| | |
| | | data = CommFunc.WriteWORD(data, self.LV)
|
| | | data = CommFunc.WriteWORD(data, self.RealmLV)
|
| | | data = CommFunc.WriteDWORD(data, self.FightPower)
|
| | | data = CommFunc.WriteDWORD(data, self.FightPowerEx)
|
| | | data = CommFunc.WriteDWORD(data, self.Score)
|
| | | data = CommFunc.WriteBYTE(data, self.AddScoreLen)
|
| | | data = CommFunc.WriteString(data, self.AddScoreLen, self.AddScore)
|
| | | data = CommFunc.WriteBYTE(data, self.IsWin)
|
| | |
| | | LV:%d,
|
| | | RealmLV:%d,
|
| | | FightPower:%d,
|
| | | FightPowerEx:%d,
|
| | | Score:%d,
|
| | | AddScoreLen:%d,
|
| | | AddScore:%s,
|
| | | IsWin:%d,
|
| | |
| | | self.LV,
|
| | | self.RealmLV,
|
| | | self.FightPower,
|
| | | self.FightPowerEx,
|
| | | self.Score,
|
| | | self.AddScoreLen,
|
| | | self.AddScore,
|
| | | self.IsWin,
|
| | |
| | | Job = 0 #(BYTE Job)
|
| | | LV = 0 #(WORD LV)//等级
|
| | | RealmLV = 0 #(WORD RealmLV)//境界,机器人读境界表取等级对应境界
|
| | | FightPower = 0 #(DWORD FightPower)//战力,机器人读等级表取等级对应战力
|
| | | FightPower = 0 #(DWORD FightPower)//战力求余亿部分,机器人读等级表取等级对应战力
|
| | | FightPowerEx = 0 #(DWORD FightPowerEx)//战力整除亿部分,机器人读等级表取等级对应战力
|
| | | Score = 0 #(DWORD Score)//积分
|
| | | data = None
|
| | |
|
| | |
| | | self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.RealmLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.FightPowerEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.Score,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | return _pos
|
| | |
|
| | |
| | | self.LV = 0
|
| | | self.RealmLV = 0
|
| | | self.FightPower = 0
|
| | | self.FightPowerEx = 0
|
| | | self.Score = 0
|
| | | return
|
| | |
|
| | |
| | | length += 1
|
| | | length += 2
|
| | | length += 2
|
| | | length += 4
|
| | | length += 4
|
| | | length += 4
|
| | |
|
| | |
| | | data = CommFunc.WriteWORD(data, self.LV)
|
| | | data = CommFunc.WriteWORD(data, self.RealmLV)
|
| | | data = CommFunc.WriteDWORD(data, self.FightPower)
|
| | | data = CommFunc.WriteDWORD(data, self.FightPowerEx)
|
| | | data = CommFunc.WriteDWORD(data, self.Score)
|
| | | return data
|
| | |
|
| | |
| | | LV:%d,
|
| | | RealmLV:%d,
|
| | | FightPower:%d,
|
| | | FightPowerEx:%d,
|
| | | Score:%d
|
| | | '''\
|
| | | %(
|
| | |
| | | self.LV,
|
| | | self.RealmLV,
|
| | | self.FightPower,
|
| | | self.FightPowerEx,
|
| | | self.Score
|
| | | )
|
| | | return DumpString
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A3 54 法器信息 #tagMCFaQiInfo
|
| | |
|
| | | class tagMCFaQiInfo(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("LV", c_ubyte), #等阶
|
| | | ("EatItemCount", c_int), #当前阶已吃丹个数
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xA3
|
| | | self.SubCmd = 0x54
|
| | | 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 = 0xA3
|
| | | self.SubCmd = 0x54
|
| | | self.LV = 0
|
| | | self.EatItemCount = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCFaQiInfo)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// A3 54 法器信息 //tagMCFaQiInfo:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | LV:%d,
|
| | | EatItemCount:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.LV,
|
| | | self.EatItemCount
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCFaQiInfo=tagMCFaQiInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFaQiInfo.Cmd,m_NAtagMCFaQiInfo.SubCmd))] = m_NAtagMCFaQiInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | #A3 0A 副本鼓舞信息通知 #tagMCFBEncourageInfo
|
| | |
|
| | | class tagMCFBEncourageCnt(Structure):
|
| | |
| | | ("ActNum", c_ubyte), #活动编号
|
| | | ("GarbageSortingType", c_ubyte), #垃圾分类类型
|
| | | ("IsRight", c_ubyte), #是否正确
|
| | | ("AddEnvValue", c_ushort), #增加环保值
|
| | | ("AddEnvValue", c_int), #增加环保值
|
| | | ("HisEnvValueTotal", c_int), # 当前活动累计获得环保值
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | |
| | | self.GarbageSortingType = 0
|
| | | self.IsRight = 0
|
| | | self.AddEnvValue = 0
|
| | | self.HisEnvValueTotal = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | |
| | | ActNum:%d,
|
| | | GarbageSortingType:%d,
|
| | | IsRight:%d,
|
| | | AddEnvValue:%d
|
| | | AddEnvValue:%d,
|
| | | HisEnvValueTotal:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | |
| | | self.ActNum,
|
| | | self.GarbageSortingType,
|
| | | self.IsRight,
|
| | | self.AddEnvValue
|
| | | self.AddEnvValue,
|
| | | self.HisEnvValueTotal
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
| | | _fields_ = [
|
| | | ("GarbageTaskID", c_ubyte), #垃圾任务ID
|
| | | ("GarbageTaskValue", c_int), #当前进度值,一直累加
|
| | | ("GarbageTaskFinishCount", c_ubyte), #当前已完成次数; 前端计算未完成次数的进度值=max(0, 当前进度值 - (完成次数 * 单次所需进度))
|
| | | ("GarbageTaskFinishCount", c_int), #当前已完成次数; 前端计算未完成次数的进度值=max(0, 当前进度值 - (完成次数 * 单次所需进度))
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | |
| | | class tagMCActGarbageTaskInfo(Structure):
|
| | | Head = tagHead()
|
| | | ActNum = 0 #(BYTE ActNum)// 活动编号
|
| | | HisEnvValueTotal = 0 #(DWORD HisEnvValueTotal)// 当前活动累计获得环保值
|
| | | GarbageTaskCount = 0 #(BYTE GarbageTaskCount)//任务数
|
| | | GarbageTaskList = list() #(vector<tagMCActGarbageTask> GarbageTaskList)//任务信息列表
|
| | | data = None
|
| | |
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.HisEnvValueTotal,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.GarbageTaskCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.GarbageTaskCount):
|
| | | temGarbageTaskList = tagMCActGarbageTask()
|
| | |
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x56
|
| | | self.ActNum = 0
|
| | | self.HisEnvValueTotal = 0
|
| | | self.GarbageTaskCount = 0
|
| | | self.GarbageTaskList = list()
|
| | | return
|
| | |
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 1
|
| | | length += 4
|
| | | length += 1
|
| | | for i in range(self.GarbageTaskCount):
|
| | | length += self.GarbageTaskList[i].GetLength()
|
| | |
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.ActNum)
|
| | | data = CommFunc.WriteDWORD(data, self.HisEnvValueTotal)
|
| | | data = CommFunc.WriteBYTE(data, self.GarbageTaskCount)
|
| | | for i in range(self.GarbageTaskCount):
|
| | | data = CommFunc.WriteString(data, self.GarbageTaskList[i].GetLength(), self.GarbageTaskList[i].GetBuffer())
|
| | |
| | | DumpString = '''
|
| | | Head:%s,
|
| | | ActNum:%d,
|
| | | HisEnvValueTotal:%d,
|
| | | GarbageTaskCount:%d,
|
| | | GarbageTaskList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.ActNum,
|
| | | self.HisEnvValueTotal,
|
| | | self.GarbageTaskCount,
|
| | | "..."
|
| | | )
|
| | |
| | | LimitLV = 0 #(WORD LimitLV)// 限制等级
|
| | | CTGPrizeCount = 0 #(BYTE CTGPrizeCount)
|
| | | CTGPrizeList = list() #(vector<DWORD> CTGPrizeList)// 累计充值额度奖励次数列表 [奖励第1次所需累计充值额度, 第2次, ...]
|
| | | UseGoldPrizeCount = 0 #(BYTE UseGoldPrizeCount)
|
| | | UseGoldPrizeList = list() #(vector<DWORD> UseGoldPrizeList)// 累计消费仙玉奖励次数列表 [奖励第1次所需累计消费仙玉, 第2次, ...]
|
| | | UseMoneyType = 0 #(BYTE UseMoneyType)// 累计消费货币类型
|
| | | UseMoneyPrizeCount = 0 #(BYTE UseMoneyPrizeCount)
|
| | | UseMoneyPrizeList = list() #(vector<DWORD> UseMoneyPrizeList)// 累计消费货币奖励次数列表 [奖励第1次所需累计消费货币, 第2次, ...]
|
| | | TurnItemCount = 0 #(BYTE TurnItemCount)
|
| | | TurnItemList = list() #(vector<tagMCActTurntableItem> TurnItemList)// 转盘已确定的物品列表,包含常规物品+极品物品+终极物品,活动开始时,后端直接随机生成常规物品,已确定的物品不包含极品、终极物品时需要先选择才能使用转盘;
|
| | | GoodItemCount = 0 #(BYTE GoodItemCount)
|
| | |
| | | for i in range(self.CTGPrizeCount):
|
| | | value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
|
| | | self.CTGPrizeList.append(value)
|
| | | self.UseGoldPrizeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.UseGoldPrizeCount):
|
| | | self.UseMoneyType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.UseMoneyPrizeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.UseMoneyPrizeCount):
|
| | | value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
|
| | | self.UseGoldPrizeList.append(value)
|
| | | self.UseMoneyPrizeList.append(value)
|
| | | self.TurnItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.TurnItemCount):
|
| | | temTurnItemList = tagMCActTurntableItem()
|
| | |
| | | self.LimitLV = 0
|
| | | self.CTGPrizeCount = 0
|
| | | self.CTGPrizeList = list()
|
| | | self.UseGoldPrizeCount = 0
|
| | | self.UseGoldPrizeList = list()
|
| | | self.UseMoneyType = 0
|
| | | self.UseMoneyPrizeCount = 0
|
| | | self.UseMoneyPrizeList = list()
|
| | | self.TurnItemCount = 0
|
| | | self.TurnItemList = list()
|
| | | self.GoodItemCount = 0
|
| | |
| | | length += 1
|
| | | length += 4 * self.CTGPrizeCount
|
| | | length += 1
|
| | | length += 4 * self.UseGoldPrizeCount
|
| | | length += 1
|
| | | length += 4 * self.UseMoneyPrizeCount
|
| | | length += 1
|
| | | for i in range(self.TurnItemCount):
|
| | | length += self.TurnItemList[i].GetLength()
|
| | |
| | | data = CommFunc.WriteBYTE(data, self.CTGPrizeCount)
|
| | | for i in range(self.CTGPrizeCount):
|
| | | data = CommFunc.WriteDWORD(data, self.CTGPrizeList[i])
|
| | | data = CommFunc.WriteBYTE(data, self.UseGoldPrizeCount)
|
| | | for i in range(self.UseGoldPrizeCount):
|
| | | data = CommFunc.WriteDWORD(data, self.UseGoldPrizeList[i])
|
| | | data = CommFunc.WriteBYTE(data, self.UseMoneyType)
|
| | | data = CommFunc.WriteBYTE(data, self.UseMoneyPrizeCount)
|
| | | for i in range(self.UseMoneyPrizeCount):
|
| | | data = CommFunc.WriteDWORD(data, self.UseMoneyPrizeList[i])
|
| | | data = CommFunc.WriteBYTE(data, self.TurnItemCount)
|
| | | for i in range(self.TurnItemCount):
|
| | | data = CommFunc.WriteString(data, self.TurnItemList[i].GetLength(), self.TurnItemList[i].GetBuffer())
|
| | |
| | | LimitLV:%d,
|
| | | CTGPrizeCount:%d,
|
| | | CTGPrizeList:%s,
|
| | | UseGoldPrizeCount:%d,
|
| | | UseGoldPrizeList:%s,
|
| | | UseMoneyType:%d,
|
| | | UseMoneyPrizeCount:%d,
|
| | | UseMoneyPrizeList:%s,
|
| | | TurnItemCount:%d,
|
| | | TurnItemList:%s,
|
| | | GoodItemCount:%d,
|
| | |
| | | self.LimitLV,
|
| | | self.CTGPrizeCount,
|
| | | "...",
|
| | | self.UseGoldPrizeCount,
|
| | | self.UseMoneyType,
|
| | | self.UseMoneyPrizeCount,
|
| | | "...",
|
| | | self.TurnItemCount,
|
| | | "...",
|
| | |
| | | ("ActNum", c_ubyte), #活动编号
|
| | | ("CanUseCount", c_ubyte), #可转盘次数
|
| | | ("CTGTotal", c_int), #累计充值额度
|
| | | ("UseGoldTotal", c_int), #累计消费仙玉额度
|
| | | ("UseMoneyTotal", c_int), #累计消费货币额度
|
| | | ("TurnItemState", c_int), #转盘物品已抽中记录,按转盘物品编号二进制位代表是否已抽中
|
| | | ("GetItemNum", c_ubyte), #本次抽中的物品编号,非转盘结果时为0,大于0时为通知本次转到的物品编号
|
| | | ]
|
| | |
| | | self.ActNum = 0
|
| | | self.CanUseCount = 0
|
| | | self.CTGTotal = 0
|
| | | self.UseGoldTotal = 0
|
| | | self.UseMoneyTotal = 0
|
| | | self.TurnItemState = 0
|
| | | self.GetItemNum = 0
|
| | | return
|
| | |
| | | ActNum:%d,
|
| | | CanUseCount:%d,
|
| | | CTGTotal:%d,
|
| | | UseGoldTotal:%d,
|
| | | UseMoneyTotal:%d,
|
| | | TurnItemState:%d,
|
| | | GetItemNum:%d
|
| | | '''\
|
| | |
| | | self.ActNum,
|
| | | self.CanUseCount,
|
| | | self.CTGTotal,
|
| | | self.UseGoldTotal,
|
| | | self.UseMoneyTotal,
|
| | | self.TurnItemState,
|
| | | self.GetItemNum
|
| | | )
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B1 13 在线奖励信息新 #tagMCOnlinePrizeNew
|
| | |
|
| | | class tagMCOnlinePrizeNew(Structure):
|
| | | Head = tagHead()
|
| | | OnlineTime = 0 #(DWORD OnlineTime)//在线时间毫秒
|
| | | Len = 0 #(BYTE Len)
|
| | | PrizeInfo = list() #(vector<DWORD> PrizeInfo)//领奖记录
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xB1
|
| | | self.Head.SubCmd = 0x13
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.OnlineTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.Len,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.Len):
|
| | | value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
|
| | | self.PrizeInfo.append(value)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xB1
|
| | | self.Head.SubCmd = 0x13
|
| | | self.OnlineTime = 0
|
| | | self.Len = 0
|
| | | self.PrizeInfo = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 4
|
| | | length += 1
|
| | | length += 4 * self.Len
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteDWORD(data, self.OnlineTime)
|
| | | data = CommFunc.WriteBYTE(data, self.Len)
|
| | | for i in range(self.Len):
|
| | | data = CommFunc.WriteDWORD(data, self.PrizeInfo[i])
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | OnlineTime:%d,
|
| | | Len:%d,
|
| | | PrizeInfo:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.OnlineTime,
|
| | | self.Len,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCOnlinePrizeNew=tagMCOnlinePrizeNew()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCOnlinePrizeNew.Head.Cmd,m_NAtagMCOnlinePrizeNew.Head.SubCmd))] = m_NAtagMCOnlinePrizeNew
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B1 03 通知玩家死亡时间 #tagMCPlayerDeadTime
|
| | |
|
| | | class tagMCPlayerDeadTime(Structure):
|