| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A9 A5 查看竞技场对战玩家最新信息 #tagCGQueryArenaBattlePlayer
|
| | |
|
| | | class tagCGQueryArenaBattlePlayer(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("PlayerID", c_int), #目标玩家ID,仅支持查真实玩家
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xA9
|
| | | self.SubCmd = 0xA5
|
| | | 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 = 0xA9
|
| | | self.SubCmd = 0xA5
|
| | | self.PlayerID = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCGQueryArenaBattlePlayer)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// A9 A5 查看竞技场对战玩家最新信息 //tagCGQueryArenaBattlePlayer:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | PlayerID:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.PlayerID
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCGQueryArenaBattlePlayer=tagCGQueryArenaBattlePlayer()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryArenaBattlePlayer.Cmd,m_NAtagCGQueryArenaBattlePlayer.SubCmd))] = m_NAtagCGQueryArenaBattlePlayer
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A9 A8 查看竞技场对战记录 #tagCGQueryArenaBattleRecord
|
| | |
|
| | | class tagCGQueryArenaBattleRecord(Structure):
|
| | |
| | |
|
| | | m_NAtagCGUseAssistThanksGift=tagCGUseAssistThanksGift()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGUseAssistThanksGift.Cmd,m_NAtagCGUseAssistThanksGift.SubCmd))] = m_NAtagCGUseAssistThanksGift
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B3 19 提升魅力等级 #tagCGCharmLVUp
|
| | |
|
| | | class tagCGCharmLVUp(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xB3
|
| | | self.SubCmd = 0x19
|
| | | 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 = 0xB3
|
| | | self.SubCmd = 0x19
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCGCharmLVUp)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// B3 19 提升魅力等级 //tagCGCharmLVUp:
|
| | | Cmd:%s,
|
| | | SubCmd:%s
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCGCharmLVUp=tagCGCharmLVUp()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGCharmLVUp.Cmd,m_NAtagCGCharmLVUp.SubCmd))] = m_NAtagCGCharmLVUp
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B3 09 魅力贡献榜查看 #tagCGCharmOfferBillboardQuery
|
| | |
|
| | | class tagCGCharmOfferBillboardQuery(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("PlayerID", c_int), # 魅力玩家ID
|
| | | ("QueryType", c_ubyte), # 查看类型: 1-总榜,2-周榜,3-日榜
|
| | | ("QueryCount", c_ubyte), # 查看名次数量,最大255
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xB3
|
| | | self.SubCmd = 0x09
|
| | | 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 = 0xB3
|
| | | self.SubCmd = 0x09
|
| | | self.PlayerID = 0
|
| | | self.QueryType = 0
|
| | | self.QueryCount = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCGCharmOfferBillboardQuery)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// B3 09 魅力贡献榜查看 //tagCGCharmOfferBillboardQuery:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | PlayerID:%d,
|
| | | QueryType:%d,
|
| | | QueryCount:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.PlayerID,
|
| | | self.QueryType,
|
| | | self.QueryCount
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCGCharmOfferBillboardQuery=tagCGCharmOfferBillboardQuery()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGCharmOfferBillboardQuery.Cmd,m_NAtagCGCharmOfferBillboardQuery.SubCmd))] = m_NAtagCGCharmOfferBillboardQuery
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B3 16 和平离婚回应 #tagGCMarryBreakResponse
|
| | |
|
| | | class tagGCMarryBreakResponse(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("IsOK", c_ubyte), # 是否同意,0-否,1-是
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xB3
|
| | | self.SubCmd = 0x16
|
| | | 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 = 0xB3
|
| | | self.SubCmd = 0x16
|
| | | self.IsOK = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagGCMarryBreakResponse)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// B3 16 和平离婚回应 //tagGCMarryBreakResponse:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | IsOK:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.IsOK
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagGCMarryBreakResponse=tagGCMarryBreakResponse()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCMarryBreakResponse.Cmd,m_NAtagGCMarryBreakResponse.SubCmd))] = m_NAtagGCMarryBreakResponse
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B3 12 提亲回应 #tagCGMarryResponse
|
| | |
|
| | | class tagCGMarryResponse(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("ReqPlayerID", c_int), # 提亲的玩家ID
|
| | | ("IsOK", c_ubyte), # 是否同意,0-否,1-是
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xB3
|
| | | self.SubCmd = 0x12
|
| | | 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 = 0xB3
|
| | | self.SubCmd = 0x12
|
| | | self.ReqPlayerID = 0
|
| | | self.IsOK = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCGMarryResponse)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// B3 12 提亲回应 //tagCGMarryResponse:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | ReqPlayerID:%d,
|
| | | IsOK:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.ReqPlayerID,
|
| | | self.IsOK
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCGMarryResponse=tagCGMarryResponse()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGMarryResponse.Cmd,m_NAtagCGMarryResponse.SubCmd))] = m_NAtagCGMarryResponse
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # C0 09 跨服战场召集场次修改 #tagCGCrossBattlefieldCallChange
|
| | |
|
| | | class tagCGCrossBattlefieldCallChange(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("Hour", c_ubyte), #战场开启时
|
| | | ("Minute", c_ubyte), #战场开启分
|
| | | ("ServerOnly", c_ubyte), #是否仅本服玩家可加入,0-否,1-是
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xC0
|
| | | self.SubCmd = 0x09
|
| | | 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 = 0xC0
|
| | | self.SubCmd = 0x09
|
| | | self.Hour = 0
|
| | | self.Minute = 0
|
| | | self.ServerOnly = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCGCrossBattlefieldCallChange)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// C0 09 跨服战场召集场次修改 //tagCGCrossBattlefieldCallChange:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | Hour:%d,
|
| | | Minute:%d,
|
| | | ServerOnly:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.Hour,
|
| | | self.Minute,
|
| | | self.ServerOnly
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCGCrossBattlefieldCallChange=tagCGCrossBattlefieldCallChange()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGCrossBattlefieldCallChange.Cmd,m_NAtagCGCrossBattlefieldCallChange.SubCmd))] = m_NAtagCGCrossBattlefieldCallChange
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # C0 08 跨服战场召集场次踢人 #tagCGCrossBattlefieldCallKick
|
| | |
|
| | | class tagCGCrossBattlefieldCallKick(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("Hour", c_ubyte), #战场开启时
|
| | | ("Minute", c_ubyte), #战场开启分
|
| | | ("TagPlayerID", c_int), #目标玩家ID,即要被踢出去的玩家ID
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xC0
|
| | | self.SubCmd = 0x08
|
| | | 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 = 0xC0
|
| | | self.SubCmd = 0x08
|
| | | self.Hour = 0
|
| | | self.Minute = 0
|
| | | self.TagPlayerID = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCGCrossBattlefieldCallKick)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// C0 08 跨服战场召集场次踢人 //tagCGCrossBattlefieldCallKick:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | Hour:%d,
|
| | | Minute:%d,
|
| | | TagPlayerID:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.Hour,
|
| | | self.Minute,
|
| | | self.TagPlayerID
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCGCrossBattlefieldCallKick=tagCGCrossBattlefieldCallKick()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGCrossBattlefieldCallKick.Cmd,m_NAtagCGCrossBattlefieldCallKick.SubCmd))] = m_NAtagCGCrossBattlefieldCallKick
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # C0 07 跨服战场加入召集场次 #tagCGCrossBattlefieldJoinByCall
|
| | |
|
| | | class tagCGCrossBattlefieldJoinByCall(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("Hour", c_ubyte), #战场开启时
|
| | | ("Minute", c_ubyte), #战场开启分
|
| | | ("BuyPlayerID", c_int), #加入目标玩家的召集队伍,即购买召集场的玩家ID
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xC0
|
| | | 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 = 0xC0
|
| | | self.SubCmd = 0x07
|
| | | self.Hour = 0
|
| | | self.Minute = 0
|
| | | self.BuyPlayerID = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCGCrossBattlefieldJoinByCall)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// C0 07 跨服战场加入召集场次 //tagCGCrossBattlefieldJoinByCall:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | Hour:%d,
|
| | | Minute:%d,
|
| | | BuyPlayerID:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.Hour,
|
| | | self.Minute,
|
| | | self.BuyPlayerID
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCGCrossBattlefieldJoinByCall=tagCGCrossBattlefieldJoinByCall()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGCrossBattlefieldJoinByCall.Cmd,m_NAtagCGCrossBattlefieldJoinByCall.SubCmd))] = m_NAtagCGCrossBattlefieldJoinByCall
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # C0 03 强制退出跨服状态 #tagCGForceQuitCrossState
|
| | |
|
| | | class tagCGForceQuitCrossState(Structure):
|
| | |
| | |
|
| | | m_NAtagCGForceQuitCrossState=tagCGForceQuitCrossState()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGForceQuitCrossState.Cmd,m_NAtagCGForceQuitCrossState.SubCmd))] = m_NAtagCGForceQuitCrossState
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # C0 06 查询幸运云购开奖记录 #tagCGQueryLuckyCloudBuyLotteryRec
|
| | |
|
| | | class tagCGQueryLuckyCloudBuyLotteryRec(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("ZoneID", c_ubyte), #查询分区ID
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xC0
|
| | | 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 = 0xC0
|
| | | self.SubCmd = 0x06
|
| | | self.ZoneID = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCGQueryLuckyCloudBuyLotteryRec)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// C0 06 查询幸运云购开奖记录 //tagCGQueryLuckyCloudBuyLotteryRec:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | ZoneID:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.ZoneID
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCGQueryLuckyCloudBuyLotteryRec=tagCGQueryLuckyCloudBuyLotteryRec()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryLuckyCloudBuyLotteryRec.Cmd,m_NAtagCGQueryLuckyCloudBuyLotteryRec.SubCmd))] = m_NAtagCGQueryLuckyCloudBuyLotteryRec
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # C0 05 查询幸运云购购买号码记录 #tagCGQueryLuckyCloudBuyNumRec
|
| | |
|
| | | class tagCGQueryLuckyCloudBuyNumRec(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xC0
|
| | | 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 = 0xC0
|
| | | self.SubCmd = 0x05
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCGQueryLuckyCloudBuyNumRec)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// C0 05 查询幸运云购购买号码记录 //tagCGQueryLuckyCloudBuyNumRec:
|
| | | Cmd:%s,
|
| | | SubCmd:%s
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCGQueryLuckyCloudBuyNumRec=tagCGQueryLuckyCloudBuyNumRec()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryLuckyCloudBuyNumRec.Cmd,m_NAtagCGQueryLuckyCloudBuyNumRec.SubCmd))] = m_NAtagCGQueryLuckyCloudBuyNumRec
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A3 27 灵器培养 #tagCMLingQiTrain
|
| | |
|
| | | class tagCMLingQiTrain(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("EquipPlace", c_ubyte), #灵器装备位
|
| | | ("TrainType", c_ubyte), #培养类型: 1-基础培养,2-特殊培养,3-百分比培养
|
| | | ("UseItemCnt", c_ushort), #消耗材料个数
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xA3
|
| | | self.SubCmd = 0x27
|
| | | 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 = 0x27
|
| | | self.EquipPlace = 0
|
| | | self.TrainType = 0
|
| | | self.UseItemCnt = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMLingQiTrain)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// A3 27 灵器培养 //tagCMLingQiTrain:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | EquipPlace:%d,
|
| | | TrainType:%d,
|
| | | UseItemCnt:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.EquipPlace,
|
| | | self.TrainType,
|
| | | self.UseItemCnt
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMLingQiTrain=tagCMLingQiTrain()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMLingQiTrain.Cmd,m_NAtagCMLingQiTrain.SubCmd))] = m_NAtagCMLingQiTrain
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | #A3 02 丢弃背包物品 #tagPlayerDropItem
|
| | |
|
| | | class tagPlayerDropItem(Structure):
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A5 32 法器升级 #tagCMFaQiLVUp
|
| | |
|
| | | class tagCMFaQiLVUp(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("UseItemCnt", c_ushort), #消耗材料个数
|
| | | ("IsAutoBuy", c_ubyte), #是否自动购买
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xA5
|
| | | self.SubCmd = 0x32
|
| | | 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 = 0x32
|
| | | self.UseItemCnt = 0
|
| | | self.IsAutoBuy = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMFaQiLVUp)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// A5 32 法器升级 //tagCMFaQiLVUp:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | UseItemCnt:%d,
|
| | | IsAutoBuy:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.UseItemCnt,
|
| | | self.IsAutoBuy
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMFaQiLVUp=tagCMFaQiLVUp()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMFaQiLVUp.Cmd,m_NAtagCMFaQiLVUp.SubCmd))] = m_NAtagCMFaQiLVUp
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A5 1C 聚魂合成 #tagCMGatherSoulCompound
|
| | |
|
| | | class tagCMGatherSoulCompound(Structure):
|
| | |
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("Index", c_ubyte), # 奖励索引,其他按顺序
|
| | | ("IsDaily", c_ubyte), # 是否领取每日日常的奖励,是发1,如果领取定制创角天奖励的则默认发0即可
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | |
| | | self.Cmd = 0xA5
|
| | | self.SubCmd = 0x06
|
| | | self.Index = 0
|
| | | self.IsDaily = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | |
| | | DumpString = '''//A5 06 玩家领取在线奖励 //tagCMGetOnlinePrize:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | Index:%d
|
| | | Index:%d,
|
| | | IsDaily:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.Index
|
| | | self.Index,
|
| | | self.IsDaily
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A5 31 坐骑培养 #tagCMHorseTrain
|
| | |
|
| | | class tagCMHorseTrain(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("TrainType", c_ubyte), #培养类型: 1-基础培养,2-特殊培养,3-百分比培养
|
| | | ("UseItemCnt", c_ushort), #消耗材料个数
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xA5
|
| | | self.SubCmd = 0x31
|
| | | 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 = 0x31
|
| | | self.TrainType = 0
|
| | | self.UseItemCnt = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMHorseTrain)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// A5 31 坐骑培养 //tagCMHorseTrain:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | TrainType:%d,
|
| | | UseItemCnt:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.TrainType,
|
| | | self.UseItemCnt
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMHorseTrain=tagCMHorseTrain()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMHorseTrain.Cmd,m_NAtagCMHorseTrain.SubCmd))] = m_NAtagCMHorseTrain
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A5 27 坐骑提升 #tagCMHorseUp
|
| | |
|
| | | class tagCMHorseUp(Structure):
|
| | |
| | |
|
| | | m_NAtagCMHorseUp=tagCMHorseUp()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMHorseUp.Cmd,m_NAtagCMHorseUp.SubCmd))] = m_NAtagCMHorseUp
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A5 34 炼体突破 #tagCMLianTiLVUp
|
| | |
|
| | | class tagCMLianTiLVUp(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xA5
|
| | | self.SubCmd = 0x34
|
| | | 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 = 0x34
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMLianTiLVUp)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// A5 34 炼体突破 //tagCMLianTiLVUp:
|
| | | Cmd:%s,
|
| | | SubCmd:%s
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMLianTiLVUp=tagCMLianTiLVUp()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMLianTiLVUp.Cmd,m_NAtagCMLianTiLVUp.SubCmd))] = m_NAtagCMLianTiLVUp
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A5 33 炼体提升 #tagCMLianTiUp
|
| | |
|
| | | class tagCMLianTiUp(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("UseItemCnt", c_int), #消耗材料个数
|
| | | ("IsAutoBuy", c_ubyte), #是否自动购买
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xA5
|
| | | self.SubCmd = 0x33
|
| | | 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 = 0x33
|
| | | self.UseItemCnt = 0
|
| | | self.IsAutoBuy = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMLianTiUp)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// A5 33 炼体提升 //tagCMLianTiUp:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | UseItemCnt:%d,
|
| | | IsAutoBuy:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.UseItemCnt,
|
| | | self.IsAutoBuy
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMLianTiUp=tagCMLianTiUp()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMLianTiUp.Cmd,m_NAtagCMLianTiUp.SubCmd))] = m_NAtagCMLianTiUp
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | |
| | |
|
| | | m_NAtagCMPetClassUP=tagCMPetClassUP()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMPetClassUP.Cmd,m_NAtagCMPetClassUP.SubCmd))] = m_NAtagCMPetClassUP
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # A7 05 宠物培养 #tagCMPetTrain
|
| | |
|
| | | class tagCMPetTrain(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("TrainType", c_ubyte), #培养类型: 1-基础培养,2-特殊培养,3-百分比培养
|
| | | ("UseItemCnt", c_ushort), #消耗材料个数
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xA7
|
| | | 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 = 0xA7
|
| | | self.SubCmd = 0x05
|
| | | self.TrainType = 0
|
| | | self.UseItemCnt = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMPetTrain)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// A7 05 宠物培养 //tagCMPetTrain:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | TrainType:%d,
|
| | | UseItemCnt:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.TrainType,
|
| | | self.UseItemCnt
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMPetTrain=tagCMPetTrain()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMPetTrain.Cmd,m_NAtagCMPetTrain.SubCmd))] = m_NAtagCMPetTrain
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B3 17 情戒解锁 #tagCMLoveRingUnlock
|
| | |
|
| | | class tagCMLoveRingUnlock(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xB3
|
| | | self.SubCmd = 0x17
|
| | | 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 = 0xB3
|
| | | self.SubCmd = 0x17
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMLoveRingUnlock)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// B3 17 情戒解锁 //tagCMLoveRingUnlock:
|
| | | Cmd:%s,
|
| | | SubCmd:%s
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMLoveRingUnlock=tagCMLoveRingUnlock()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMLoveRingUnlock.Cmd,m_NAtagCMLoveRingUnlock.SubCmd))] = m_NAtagCMLoveRingUnlock
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B3 18 情戒升级 #tagCMLoveRingUp
|
| | |
|
| | | class tagCMLoveRingUp(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("UseItemCnt", c_int), #消耗材料个数
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xB3
|
| | | self.SubCmd = 0x18
|
| | | 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 = 0xB3
|
| | | self.SubCmd = 0x18
|
| | | self.UseItemCnt = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMLoveRingUp)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// B3 18 情戒升级 //tagCMLoveRingUp:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | UseItemCnt:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.UseItemCnt
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMLoveRingUp=tagCMLoveRingUp()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMLoveRingUp.Cmd,m_NAtagCMLoveRingUp.SubCmd))] = m_NAtagCMLoveRingUp
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B3 15 离婚 #tagCMMarryBreak
|
| | |
|
| | | class tagCMMarryBreak(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("BreakType", c_ubyte), # 0-和平离婚;1-强制离婚
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xB3
|
| | | self.SubCmd = 0x15
|
| | | 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 = 0xB3
|
| | | self.SubCmd = 0x15
|
| | | self.BreakType = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMMarryBreak)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// B3 15 离婚 //tagCMMarryBreak:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | BreakType:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.BreakType
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMMarryBreak=tagCMMarryBreak()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMMarryBreak.Cmd,m_NAtagCMMarryBreak.SubCmd))] = m_NAtagCMMarryBreak
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B3 14 购买婚礼烟花 #tagCMMarryBuyFireworks
|
| | |
|
| | | class tagCMMarryBuyFireworks(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("PlayerIDA", c_int), # 喜糖所属玩家IDA
|
| | | ("PlayerIDB", c_int), # 喜糖所属玩家IDB
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xB3
|
| | | self.SubCmd = 0x14
|
| | | 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 = 0xB3
|
| | | self.SubCmd = 0x14
|
| | | self.PlayerIDA = 0
|
| | | self.PlayerIDB = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMMarryBuyFireworks)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// B3 14 购买婚礼烟花 //tagCMMarryBuyFireworks:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | PlayerIDA:%d,
|
| | | PlayerIDB:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.PlayerIDA,
|
| | | self.PlayerIDB
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMMarryBuyFireworks=tagCMMarryBuyFireworks()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMMarryBuyFireworks.Cmd,m_NAtagCMMarryBuyFireworks.SubCmd))] = m_NAtagCMMarryBuyFireworks
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B3 13 吃喜糖 #tagCMMarryEatCandy
|
| | |
|
| | | class tagCMMarryEatCandy(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("PlayerIDA", c_int), # 喜糖所属玩家IDA
|
| | | ("PlayerIDB", c_int), # 喜糖所属玩家IDB
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xB3
|
| | | self.SubCmd = 0x13
|
| | | 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 = 0xB3
|
| | | self.SubCmd = 0x13
|
| | | self.PlayerIDA = 0
|
| | | self.PlayerIDB = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMMarryEatCandy)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// B3 13 吃喜糖 //tagCMMarryEatCandy:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | PlayerIDA:%d,
|
| | | PlayerIDB:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.PlayerIDA,
|
| | | self.PlayerIDB
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMMarryEatCandy=tagCMMarryEatCandy()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMMarryEatCandy.Cmd,m_NAtagCMMarryEatCandy.SubCmd))] = m_NAtagCMMarryEatCandy
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B3 11 提亲 #tagCMMarryReq
|
| | |
|
| | | class tagCMMarryReq(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("TagPlayerID", c_int), # 目标玩家ID
|
| | | ("BridePriceID", c_ubyte), # 聘礼ID
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xB3
|
| | | self.SubCmd = 0x11
|
| | | 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 = 0xB3
|
| | | self.SubCmd = 0x11
|
| | | self.TagPlayerID = 0
|
| | | self.BridePriceID = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMMarryReq)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// B3 11 提亲 //tagCMMarryReq:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | TagPlayerID:%d,
|
| | | BridePriceID:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.TagPlayerID,
|
| | | self.BridePriceID
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMMarryReq=tagCMMarryReq()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMMarryReq.Cmd,m_NAtagCMMarryReq.SubCmd))] = m_NAtagCMMarryReq
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B3 10 送礼物 #tagCMSendGifts
|
| | |
|
| | | class tagCMSendGifts(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("TagPlayerID", c_int), # 目标玩家ID
|
| | | ("GiftNum", c_ushort), # 赠送礼物编号
|
| | | ("GiftCount", c_int), # 赠送礼物数量
|
| | | ("IsAutoBuy", c_ubyte), # 是否自动购买
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xB3
|
| | | self.SubCmd = 0x10
|
| | | 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 = 0xB3
|
| | | self.SubCmd = 0x10
|
| | | self.TagPlayerID = 0
|
| | | self.GiftNum = 0
|
| | | self.GiftCount = 0
|
| | | self.IsAutoBuy = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMSendGifts)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// B3 10 送礼物 //tagCMSendGifts:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | TagPlayerID:%d,
|
| | | GiftNum:%d,
|
| | | GiftCount:%d,
|
| | | IsAutoBuy:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.TagPlayerID,
|
| | | self.GiftNum,
|
| | | self.GiftCount,
|
| | | self.IsAutoBuy
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMSendGifts=tagCMSendGifts()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMSendGifts.Cmd,m_NAtagCMSendGifts.SubCmd))] = m_NAtagCMSendGifts
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # B4 0F 回收私有专属木桩怪 #tagCMRecyclePriWoodPile
|
| | |
|
| | | class tagCMRecyclePriWoodPile(Structure):
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # C1 09 跨服战场购买开启场次 #tagCMCrossBattlefieldBuyOpen
|
| | |
|
| | | class tagCMCrossBattlefieldBuyOpen(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("Hour", c_ubyte), #战场开启时
|
| | | ("Minute", c_ubyte), #战场开启分
|
| | | ("Faction", c_ubyte), #阵营 1-红;2-蓝
|
| | | ("ServerOnly", c_ubyte), #是否仅本服玩家可加入,0-否,1-是
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xC1
|
| | | self.SubCmd = 0x09
|
| | | 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 = 0xC1
|
| | | self.SubCmd = 0x09
|
| | | self.Hour = 0
|
| | | self.Minute = 0
|
| | | self.Faction = 0
|
| | | self.ServerOnly = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMCrossBattlefieldBuyOpen)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// C1 09 跨服战场购买开启场次 //tagCMCrossBattlefieldBuyOpen:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | Hour:%d,
|
| | | Minute:%d,
|
| | | Faction:%d,
|
| | | ServerOnly:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.Hour,
|
| | | self.Minute,
|
| | | self.Faction,
|
| | | self.ServerOnly
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMCrossBattlefieldBuyOpen=tagCMCrossBattlefieldBuyOpen()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMCrossBattlefieldBuyOpen.Cmd,m_NAtagCMCrossBattlefieldBuyOpen.SubCmd))] = m_NAtagCMCrossBattlefieldBuyOpen
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # C1 06 跨服NPC对话 #tagCMCrossNPCTalk
|
| | |
|
| | | class tagCMCrossNPCTalk(Structure):
|
| | |
| | |
|
| | |
|
| | | m_NAtagCMExitCrossRealm=tagCMExitCrossRealm()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMExitCrossRealm.Cmd,m_NAtagCMExitCrossRealm.SubCmd))] = m_NAtagCMExitCrossRealm |
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMExitCrossRealm.Cmd,m_NAtagCMExitCrossRealm.SubCmd))] = m_NAtagCMExitCrossRealm
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # C1 10 幸运云购购买 #tagCMLuckyCloudBuy
|
| | |
|
| | | class tagCMLuckyCloudBuy(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("BuyCount", c_ushort), # 购买份数
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xC1
|
| | | self.SubCmd = 0x10
|
| | | 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 = 0xC1
|
| | | self.SubCmd = 0x10
|
| | | self.BuyCount = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMLuckyCloudBuy)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// C1 10 幸运云购购买 //tagCMLuckyCloudBuy:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | BuyCount:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.BuyCount
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMLuckyCloudBuy=tagCMLuckyCloudBuy()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMLuckyCloudBuy.Cmd,m_NAtagCMLuckyCloudBuy.SubCmd))] = m_NAtagCMLuckyCloudBuy |