| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 02 首充信息 #tagMCFirstGoldInfo
|
| | | # AA 02 首充信息 #tagSCFirstChargeInfo
|
| | |
|
| | | class tagMCFirstGoldInfo(Structure):
|
| | | class tagSCFirstCharge(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("FirstGoldRewardState", c_ubyte), #首充奖励领奖记录,按位记录首充第X天是否已领取,第1天为第0索引位
|
| | | ("FirstGoldTry", c_ubyte), #首充试用状态0-不可试用 1-可试用 2-已试用
|
| | | ("FirstGoldServerDay", c_ushort), #首充时是开服第几天,从1开始,0代表未记录充值
|
| | | ("ChargeTime", c_int), #充值该首充的时间戳
|
| | | ("AwardRecord", c_ushort), #首充奖励领奖记录,按二进制位记录首充第X天是否已领取
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xAA
|
| | | self.SubCmd = 0x02
|
| | | return
|
| | |
|
| | | def ReadData(self, stringData, _pos=0, _len=0):
|
| | |
| | | return _pos + self.GetLength()
|
| | |
|
| | | def Clear(self):
|
| | | self.Cmd = 0xAA
|
| | | self.SubCmd = 0x02
|
| | | self.FirstGoldRewardState = 0
|
| | | self.FirstGoldTry = 0
|
| | | self.FirstGoldServerDay = 0
|
| | | self.ChargeTime = 0
|
| | | self.AwardRecord = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCFirstGoldInfo)
|
| | | return sizeof(tagSCFirstCharge)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 02 首充信息 //tagMCFirstGoldInfo:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | FirstGoldRewardState:%d,
|
| | | FirstGoldTry:%d,
|
| | | FirstGoldServerDay:%d
|
| | | DumpString = '''// AA 02 首充信息 //tagSCFirstChargeInfo:
|
| | | ChargeTime:%d,
|
| | | AwardRecord:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.FirstGoldRewardState,
|
| | | self.FirstGoldTry,
|
| | | self.FirstGoldServerDay
|
| | | self.ChargeTime,
|
| | | self.AwardRecord
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCFirstGoldInfo=tagMCFirstGoldInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFirstGoldInfo.Cmd,m_NAtagMCFirstGoldInfo.SubCmd))] = m_NAtagMCFirstGoldInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 08 首充提示剩余时间 #tagMCFirstGoldTime
|
| | |
|
| | | class tagMCFirstGoldTime(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("FirstGoldRemainTime", c_int), #首充提示剩余时间
|
| | | ]
|
| | | class tagSCFirstChargeInfo(Structure):
|
| | | Head = tagHead()
|
| | | Count = 0 #(BYTE Count)
|
| | | FirstChargeList = list() #(vector<tagSCFirstCharge> FirstChargeList)
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xAA
|
| | | self.SubCmd = 0x08
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x02
|
| | | return
|
| | |
|
| | | def ReadData(self, stringData, _pos=0, _len=0):
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | memmove(addressof(self), stringData[_pos:], self.GetLength())
|
| | | return _pos + self.GetLength()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.Count):
|
| | | temFirstChargeList = tagSCFirstCharge()
|
| | | _pos = temFirstChargeList.ReadData(_lpData, _pos)
|
| | | self.FirstChargeList.append(temFirstChargeList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Cmd = 0xAA
|
| | | self.SubCmd = 0x08
|
| | | self.FirstGoldRemainTime = 0
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x02
|
| | | self.Count = 0
|
| | | self.FirstChargeList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCFirstGoldTime)
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 1
|
| | | for i in range(self.Count):
|
| | | length += self.FirstChargeList[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | | 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.FirstChargeList[i].GetLength(), self.FirstChargeList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 08 首充提示剩余时间 //tagMCFirstGoldTime:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | FirstGoldRemainTime:%d
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | Count:%d,
|
| | | FirstChargeList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.FirstGoldRemainTime
|
| | | self.Head.OutputString(),
|
| | | self.Count,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCFirstGoldTime=tagMCFirstGoldTime()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFirstGoldTime.Cmd,m_NAtagMCFirstGoldTime.SubCmd))] = m_NAtagMCFirstGoldTime
|
| | | m_NAtagSCFirstChargeInfo=tagSCFirstChargeInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCFirstChargeInfo.Head.Cmd,m_NAtagSCFirstChargeInfo.Head.SubCmd))] = m_NAtagSCFirstChargeInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|