|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #------------------------------------------------------ | 
|---|
|  |  |  | # A2 29 设置小助手 #tagCMSetLittleHelper | 
|---|
|  |  |  |  | 
|---|
|  |  |  | class  tagCMSetLittleHelper(Structure): | 
|---|
|  |  |  | _pack_ = 1 | 
|---|
|  |  |  | _fields_ = [ | 
|---|
|  |  |  | ("Cmd", c_ubyte), | 
|---|
|  |  |  | ("SubCmd", c_ubyte), | 
|---|
|  |  |  | ("SetNum", c_ubyte),    # 托管功能设置编号1~20,每个编号对应的托管功能前端自定义 | 
|---|
|  |  |  | ("Value1", c_int),    # 自定义值1 | 
|---|
|  |  |  | ("Value2", c_int),    # 自定义值2 | 
|---|
|  |  |  | ("Value3", c_int),    # 自定义值3 | 
|---|
|  |  |  | ("Value4", c_int),    # 自定义值4 | 
|---|
|  |  |  | ("Value5", c_int),    # 自定义值5 | 
|---|
|  |  |  | ("Value6", c_int),    # 自定义值6 | 
|---|
|  |  |  | ] | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def __init__(self): | 
|---|
|  |  |  | self.Clear() | 
|---|
|  |  |  | self.Cmd = 0xA2 | 
|---|
|  |  |  | self.SubCmd = 0x29 | 
|---|
|  |  |  | 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 = 0xA2 | 
|---|
|  |  |  | self.SubCmd = 0x29 | 
|---|
|  |  |  | self.SetNum = 0 | 
|---|
|  |  |  | self.Value1 = 0 | 
|---|
|  |  |  | self.Value2 = 0 | 
|---|
|  |  |  | self.Value3 = 0 | 
|---|
|  |  |  | self.Value4 = 0 | 
|---|
|  |  |  | self.Value5 = 0 | 
|---|
|  |  |  | self.Value6 = 0 | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def GetLength(self): | 
|---|
|  |  |  | return sizeof(tagCMSetLittleHelper) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def GetBuffer(self): | 
|---|
|  |  |  | return string_at(addressof(self), self.GetLength()) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def OutputString(self): | 
|---|
|  |  |  | DumpString = '''// A2 29 设置小助手 //tagCMSetLittleHelper: | 
|---|
|  |  |  | Cmd:%s, | 
|---|
|  |  |  | SubCmd:%s, | 
|---|
|  |  |  | SetNum:%d, | 
|---|
|  |  |  | Value1:%d, | 
|---|
|  |  |  | Value2:%d, | 
|---|
|  |  |  | Value3:%d, | 
|---|
|  |  |  | Value4:%d, | 
|---|
|  |  |  | Value5:%d, | 
|---|
|  |  |  | Value6:%d | 
|---|
|  |  |  | '''\ | 
|---|
|  |  |  | %( | 
|---|
|  |  |  | self.Cmd, | 
|---|
|  |  |  | self.SubCmd, | 
|---|
|  |  |  | self.SetNum, | 
|---|
|  |  |  | self.Value1, | 
|---|
|  |  |  | self.Value2, | 
|---|
|  |  |  | self.Value3, | 
|---|
|  |  |  | self.Value4, | 
|---|
|  |  |  | self.Value5, | 
|---|
|  |  |  | self.Value6 | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | return DumpString | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | m_NAtagCMSetLittleHelper=tagCMSetLittleHelper() | 
|---|
|  |  |  | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMSetLittleHelper.Cmd,m_NAtagCMSetLittleHelper.SubCmd))] = m_NAtagCMSetLittleHelper | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #------------------------------------------------------ | 
|---|
|  |  |  | # A2 09 设置环任务星级#tagCMSetRunMissionStar | 
|---|
|  |  |  |  | 
|---|
|  |  |  | class  tagCMSetRunMissionStar(Structure): | 
|---|
|  |  |  | 
|---|
|  |  |  | AddonsItemIndexCnt = 0    #(BYTE AddonsItemIndexCnt)// 附加物品在背包中索引个数 | 
|---|
|  |  |  | AddonsItemIndex = list()    #(vector<BYTE> AddonsItemIndex)// 附加物品在背包的索引列表 | 
|---|
|  |  |  | AddonsItemCount = list()    #(vector<BYTE> AddonsItemCount)// 附加物品在背包的索引对应扣除数量列表 | 
|---|
|  |  |  | RateIncreaseItemIndexCnt = 0    #(BYTE RateIncreaseItemIndexCnt)// 提升概率物品在背包中索引个数 | 
|---|
|  |  |  | RateIncreaseItemIndex = list()    #(vector<BYTE> RateIncreaseItemIndex)// 提升概率物品在背包的索引列表 | 
|---|
|  |  |  | data = None | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def __init__(self): | 
|---|
|  |  |  | 
|---|
|  |  |  | for i in range(self.AddonsItemIndexCnt): | 
|---|
|  |  |  | value,_pos=CommFunc.ReadBYTE(_lpData,_pos) | 
|---|
|  |  |  | self.AddonsItemCount.append(value) | 
|---|
|  |  |  | self.RateIncreaseItemIndexCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) | 
|---|
|  |  |  | for i in range(self.RateIncreaseItemIndexCnt): | 
|---|
|  |  |  | value,_pos=CommFunc.ReadBYTE(_lpData,_pos) | 
|---|
|  |  |  | self.RateIncreaseItemIndex.append(value) | 
|---|
|  |  |  | return _pos | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def Clear(self): | 
|---|
|  |  |  | 
|---|
|  |  |  | self.AddonsItemIndexCnt = 0 | 
|---|
|  |  |  | self.AddonsItemIndex = list() | 
|---|
|  |  |  | self.AddonsItemCount = list() | 
|---|
|  |  |  | self.RateIncreaseItemIndexCnt = 0 | 
|---|
|  |  |  | self.RateIncreaseItemIndex = list() | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def GetLength(self): | 
|---|
|  |  |  | 
|---|
|  |  |  | length += 1 | 
|---|
|  |  |  | length += 1 * self.AddonsItemIndexCnt | 
|---|
|  |  |  | length += 1 * self.AddonsItemIndexCnt | 
|---|
|  |  |  | length += 1 | 
|---|
|  |  |  | length += 1 * self.RateIncreaseItemIndexCnt | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return length | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | data = CommFunc.WriteBYTE(data, self.AddonsItemIndex[i]) | 
|---|
|  |  |  | for i in range(self.AddonsItemIndexCnt): | 
|---|
|  |  |  | data = CommFunc.WriteBYTE(data, self.AddonsItemCount[i]) | 
|---|
|  |  |  | data = CommFunc.WriteBYTE(data, self.RateIncreaseItemIndexCnt) | 
|---|
|  |  |  | for i in range(self.RateIncreaseItemIndexCnt): | 
|---|
|  |  |  | data = CommFunc.WriteBYTE(data, self.RateIncreaseItemIndex[i]) | 
|---|
|  |  |  | return data | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def OutputString(self): | 
|---|
|  |  |  | 
|---|
|  |  |  | FixedItemIndex:%s, | 
|---|
|  |  |  | AddonsItemIndexCnt:%d, | 
|---|
|  |  |  | AddonsItemIndex:%s, | 
|---|
|  |  |  | AddonsItemCount:%s | 
|---|
|  |  |  | AddonsItemCount:%s, | 
|---|
|  |  |  | RateIncreaseItemIndexCnt:%d, | 
|---|
|  |  |  | RateIncreaseItemIndex:%s | 
|---|
|  |  |  | '''\ | 
|---|
|  |  |  | %( | 
|---|
|  |  |  | self.Head.OutputString(), | 
|---|
|  |  |  | 
|---|
|  |  |  | "...", | 
|---|
|  |  |  | self.AddonsItemIndexCnt, | 
|---|
|  |  |  | "...", | 
|---|
|  |  |  | "...", | 
|---|
|  |  |  | self.RateIncreaseItemIndexCnt, | 
|---|
|  |  |  | "..." | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | return DumpString | 
|---|
|  |  |  | 
|---|
|  |  |  | ("MapID", c_int), | 
|---|
|  |  |  | ("LineID", c_ushort), | 
|---|
|  |  |  | ("Cnt", c_ubyte),    # 扫荡次数 | 
|---|
|  |  |  | ("IsFinish", c_ubyte),    # 是否立即完成 | 
|---|
|  |  |  | ("IsFinish", c_ubyte),    # 是否立即完成; 0-否;1-花钱立即完成;2-客户端自行倒计时间到后发送2代表领取扫荡完成奖励 | 
|---|
|  |  |  | ("DataEx", c_int),    #附带信息 | 
|---|
|  |  |  | ("IsLittleHelper", c_ubyte),    # 是否小助手扫荡 | 
|---|
|  |  |  | ] | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def __init__(self): | 
|---|
|  |  |  | 
|---|
|  |  |  | self.Cnt = 0 | 
|---|
|  |  |  | self.IsFinish = 0 | 
|---|
|  |  |  | self.DataEx = 0 | 
|---|
|  |  |  | self.IsLittleHelper = 0 | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def GetLength(self): | 
|---|
|  |  |  | 
|---|
|  |  |  | LineID:%d, | 
|---|
|  |  |  | Cnt:%d, | 
|---|
|  |  |  | IsFinish:%d, | 
|---|
|  |  |  | DataEx:%d | 
|---|
|  |  |  | DataEx:%d, | 
|---|
|  |  |  | IsLittleHelper:%d | 
|---|
|  |  |  | '''\ | 
|---|
|  |  |  | %( | 
|---|
|  |  |  | self.Cmd, | 
|---|
|  |  |  | 
|---|
|  |  |  | self.LineID, | 
|---|
|  |  |  | self.Cnt, | 
|---|
|  |  |  | self.IsFinish, | 
|---|
|  |  |  | self.DataEx | 
|---|
|  |  |  | self.DataEx, | 
|---|
|  |  |  | self.IsLittleHelper | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | return DumpString | 
|---|
|  |  |  |  | 
|---|