| | |
| | | #------------------------------------------------------
|
| | | # AA 05 推金币信息 #tagMCTuijinbiInfo
|
| | |
|
| | | class tagMCTuijinbiMoney(Structure):
|
| | | class tagMCTuijinbiPool(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("MoneyType", c_ubyte), |
| | | ("MoneyValue", c_int), |
| | | ("PrizeType", c_ubyte), # 台面奖励类型: 1-金币;2-仙玉币
|
| | | ("PrizeCount", c_int), # 数量,每次都同步台面的总数量
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | |
| | | return _pos + self.GetLength()
|
| | |
|
| | | def Clear(self):
|
| | | self.MoneyType = 0
|
| | | self.MoneyValue = 0
|
| | | self.PrizeType = 0
|
| | | self.PrizeCount = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCTuijinbiMoney)
|
| | | return sizeof(tagMCTuijinbiPool)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 05 推金币信息 //tagMCTuijinbiInfo:
|
| | | MoneyType:%d,
|
| | | MoneyValue:%d
|
| | | PrizeType:%d,
|
| | | PrizeCount:%d
|
| | | '''\
|
| | | %(
|
| | | self.MoneyType,
|
| | | self.MoneyValue
|
| | | self.PrizeType,
|
| | | self.PrizeCount
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCTuijinbiInfo(Structure):
|
| | | Head = tagHead()
|
| | | AwardMoneyCount = 0 #(BYTE AwardMoneyCount)
|
| | | AwardMoneyList = list() #(vector<tagMCTuijinbiMoney> AwardMoneyList)// 累计获得货币信息列表
|
| | | DrawType = 0 #(BYTE DrawType)// 本次抽奖奖励类型,为0时表示非抽奖同步;1-金币;2-仙玉币;3-红包;4-超级奖励
|
| | | DrawCount = 0 #(DWORD DrawCount)// 本次抽奖奖励数量
|
| | | PoolPrizeCnt = 0 #(BYTE PoolPrizeCnt)
|
| | | PoolPrizeList = list() #(vector<tagMCTuijinbiPool> PoolPrizeList)// 台面奖池信息列表,每次都完整通知
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | |
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.AwardMoneyCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.AwardMoneyCount):
|
| | | temAwardMoneyList = tagMCTuijinbiMoney()
|
| | | _pos = temAwardMoneyList.ReadData(_lpData, _pos)
|
| | | self.AwardMoneyList.append(temAwardMoneyList)
|
| | | self.DrawType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.DrawCount,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.PoolPrizeCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.PoolPrizeCnt):
|
| | | temPoolPrizeList = tagMCTuijinbiPool()
|
| | | _pos = temPoolPrizeList.ReadData(_lpData, _pos)
|
| | | self.PoolPrizeList.append(temPoolPrizeList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | |
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x05
|
| | | self.AwardMoneyCount = 0
|
| | | self.AwardMoneyList = list()
|
| | | self.DrawType = 0
|
| | | self.DrawCount = 0
|
| | | self.PoolPrizeCnt = 0
|
| | | self.PoolPrizeList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 1
|
| | | for i in range(self.AwardMoneyCount):
|
| | | length += self.AwardMoneyList[i].GetLength()
|
| | | length += 4
|
| | | length += 1
|
| | | for i in range(self.PoolPrizeCnt):
|
| | | length += self.PoolPrizeList[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.AwardMoneyCount)
|
| | | for i in range(self.AwardMoneyCount):
|
| | | data = CommFunc.WriteString(data, self.AwardMoneyList[i].GetLength(), self.AwardMoneyList[i].GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.DrawType)
|
| | | data = CommFunc.WriteDWORD(data, self.DrawCount)
|
| | | data = CommFunc.WriteBYTE(data, self.PoolPrizeCnt)
|
| | | for i in range(self.PoolPrizeCnt):
|
| | | data = CommFunc.WriteString(data, self.PoolPrizeList[i].GetLength(), self.PoolPrizeList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | AwardMoneyCount:%d,
|
| | | AwardMoneyList:%s
|
| | | DrawType:%d,
|
| | | DrawCount:%d,
|
| | | PoolPrizeCnt:%d,
|
| | | PoolPrizeList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.AwardMoneyCount,
|
| | | self.DrawType,
|
| | | self.DrawCount,
|
| | | self.PoolPrizeCnt,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|