| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A2 30 设置聊天气泡框 #tagCMSetChatBubbleBox
|
| | |
|
| | | class tagCMSetChatBubbleBox(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("BubbleBoxType", c_ubyte), #气泡框类型
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xA2
|
| | | self.SubCmd = 0x30
|
| | | 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 = 0x30
|
| | | self.BubbleBoxType = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMSetChatBubbleBox)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// A2 30 设置聊天气泡框 //tagCMSetChatBubbleBox:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | BubbleBoxType:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.BubbleBoxType
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMSetChatBubbleBox=tagCMSetChatBubbleBox()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMSetChatBubbleBox.Cmd,m_NAtagCMSetChatBubbleBox.SubCmd))] = m_NAtagCMSetChatBubbleBox
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A2 22 设置引导成功 #tagCMSetGuideOK
|
| | |
|
| | | class tagCMSetGuideOK(Structure):
|
| | |
| | | ("Value3", c_int), # 自定义值3
|
| | | ("Value4", c_int), # 自定义值4
|
| | | ("Value5", c_int), # 自定义值5
|
| | | ("Value6", c_int), # 自定义值6
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | |
| | | self.Value3 = 0
|
| | | self.Value4 = 0
|
| | | self.Value5 = 0
|
| | | self.Value6 = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | |
| | | Value2:%d,
|
| | | Value3:%d,
|
| | | Value4:%d,
|
| | | Value5:%d
|
| | | Value5:%d,
|
| | | Value6:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | |
| | | self.Value2,
|
| | | self.Value3,
|
| | | self.Value4,
|
| | | self.Value5
|
| | | self.Value5,
|
| | | self.Value6
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
| | | 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
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A5 56 神兵激活 #tagCMGodWeaponActivate
|
| | |
|
| | | class tagCMGodWeaponActivate(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("WeaponType", c_int), # 神兵类型
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xA5
|
| | | self.SubCmd = 0x56
|
| | | 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 = 0x56
|
| | | self.WeaponType = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMGodWeaponActivate)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// A5 56 神兵激活 //tagCMGodWeaponActivate:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | WeaponType:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.WeaponType
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMGodWeaponActivate=tagCMGodWeaponActivate()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGodWeaponActivate.Cmd,m_NAtagCMGodWeaponActivate.SubCmd))] = m_NAtagCMGodWeaponActivate
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A5 55 神兵升级 #tagCMGodWeaponPlus
|
| | |
|
| | | class tagCMGodWeaponPlus(Structure):
|
| | |
| | | ("SubCmd", c_ubyte),
|
| | | ("WeaponType", c_int), # 神兵类型
|
| | | ("ItemID", c_int), #消耗的物品ID
|
| | | ("ItemCount", c_ubyte), #消耗个数,默认1
|
| | | ("IsAutoBuy", c_ubyte), #是否自动购买,默认0
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | |
| | | self.SubCmd = 0x55
|
| | | self.WeaponType = 0
|
| | | self.ItemID = 0
|
| | | self.ItemCount = 0
|
| | | self.IsAutoBuy = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | |
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | WeaponType:%d,
|
| | | ItemID:%d
|
| | | ItemID:%d,
|
| | | ItemCount:%d,
|
| | | IsAutoBuy:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.WeaponType,
|
| | | self.ItemID
|
| | | self.ItemID,
|
| | | self.ItemCount,
|
| | | self.IsAutoBuy
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B1 06 助战召唤 #tagCMHelpBattleCall
|
| | |
|
| | | class tagCMHelpBattleCall(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("IsOneKeyCall", c_ubyte), # 是否一键召唤
|
| | | ("PlayerID", c_int), # 召唤的玩家ID,大于1小于100代表机器人
|
| | | ("IsGoldCall", c_ubyte), # 是否仙玉召唤
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xB1
|
| | | self.SubCmd = 0x06
|
| | | 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 = 0xB1
|
| | | self.SubCmd = 0x06
|
| | | self.IsOneKeyCall = 0
|
| | | self.PlayerID = 0
|
| | | self.IsGoldCall = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMHelpBattleCall)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// B1 06 助战召唤 //tagCMHelpBattleCall:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | IsOneKeyCall:%d,
|
| | | PlayerID:%d,
|
| | | IsGoldCall:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.IsOneKeyCall,
|
| | | self.PlayerID,
|
| | | self.IsGoldCall
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMHelpBattleCall=tagCMHelpBattleCall()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMHelpBattleCall.Cmd,m_NAtagCMHelpBattleCall.SubCmd))] = m_NAtagCMHelpBattleCall
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B1 05 助战登记 #tagCMHelpBattleCheckIn
|
| | |
|
| | | class tagCMHelpBattleCheckIn(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xB1
|
| | | self.SubCmd = 0x05
|
| | | 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 = 0xB1
|
| | | self.SubCmd = 0x05
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMHelpBattleCheckIn)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// B1 05 助战登记 //tagCMHelpBattleCheckIn:
|
| | | Cmd:%s,
|
| | | SubCmd:%s
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMHelpBattleCheckIn=tagCMHelpBattleCheckIn()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMHelpBattleCheckIn.Cmd,m_NAtagCMHelpBattleCheckIn.SubCmd))] = m_NAtagCMHelpBattleCheckIn
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B1 07 助战刷新 #tagCMHelpBattleRefresh
|
| | |
|
| | | class tagCMHelpBattleRefresh(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xB1
|
| | | self.SubCmd = 0x07
|
| | | 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 = 0xB1
|
| | | self.SubCmd = 0x07
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMHelpBattleRefresh)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// B1 07 助战刷新 //tagCMHelpBattleRefresh:
|
| | | Cmd:%s,
|
| | | SubCmd:%s
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMHelpBattleRefresh=tagCMHelpBattleRefresh()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMHelpBattleRefresh.Cmd,m_NAtagCMHelpBattleRefresh.SubCmd))] = m_NAtagCMHelpBattleRefresh
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B1 02 领取多倍副本奖励 #tagCMGetMultiFBPrize
|
| | |
|
| | | class tagCMGetMultiFBPrize(Structure):
|