From 0e2a25b6e5c9935cd80e937c4c8eb393c527bd20 Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期二, 07 五月 2019 19:59:00 +0800 Subject: [PATCH] 860312 数据库操作函数更改 --- ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py | 711 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 686 insertions(+), 25 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py index 19eb427..ef4b9e7 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py @@ -12389,6 +12389,7 @@ _fields_ = [ ("ItemID", c_int), #果实物品ID ("EatCnt", c_ushort), #已使用个数 + ("AddItemCnt", c_int), #增幅丹使用个数 ] def __init__(self): @@ -12403,6 +12404,7 @@ def Clear(self): self.ItemID = 0 self.EatCnt = 0 + self.AddItemCnt = 0 return def GetLength(self): @@ -12414,11 +12416,13 @@ def OutputString(self): DumpString = '''// A3 39 玩家属性果实已使用个数信息//tagMCAttrFruitEatCntList: ItemID:%d, - EatCnt:%d + EatCnt:%d, + AddItemCnt:%d '''\ %( self.ItemID, - self.EatCnt + self.EatCnt, + self.AddItemCnt ) return DumpString @@ -15528,6 +15532,114 @@ #------------------------------------------------------ +# A3 25 NPC已攻击次数信息 #tagMCNPCAttackCountInfo + +class tagMCNPCAttackCount(Structure): + _pack_ = 1 + _fields_ = [ + ("NPCID", c_int), + ("AttackCount", c_ubyte), #已攻击次数 + ] + + def __init__(self): + self.Clear() + 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.NPCID = 0 + self.AttackCount = 0 + return + + def GetLength(self): + return sizeof(tagMCNPCAttackCount) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A3 25 NPC已攻击次数信息 //tagMCNPCAttackCountInfo: + NPCID:%d, + AttackCount:%d + '''\ + %( + self.NPCID, + self.AttackCount + ) + return DumpString + + +class tagMCNPCAttackCountInfo(Structure): + Head = tagHead() + Count = 0 #(BYTE Count) + NPCAttackCountList = list() #(vector<tagMCNPCAttackCount> NPCAttackCountList) + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xA3 + self.Head.SubCmd = 0x25 + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.Count): + temNPCAttackCountList = tagMCNPCAttackCount() + _pos = temNPCAttackCountList.ReadData(_lpData, _pos) + self.NPCAttackCountList.append(temNPCAttackCountList) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xA3 + self.Head.SubCmd = 0x25 + self.Count = 0 + self.NPCAttackCountList = list() + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 1 + for i in range(self.Count): + length += self.NPCAttackCountList[i].GetLength() + + return length + + def GetBuffer(self): + 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.NPCAttackCountList[i].GetLength(), self.NPCAttackCountList[i].GetBuffer()) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + Count:%d, + NPCAttackCountList:%s + '''\ + %( + self.Head.OutputString(), + self.Count, + "..." + ) + return DumpString + + +m_NAtagMCNPCAttackCountInfo=tagMCNPCAttackCountInfo() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNPCAttackCountInfo.Head.Cmd,m_NAtagMCNPCAttackCountInfo.Head.SubCmd))] = m_NAtagMCNPCAttackCountInfo + + +#------------------------------------------------------ # A3 26 NPCID已采集次数信息 #tagMCNPCIDCollectionCntInfo class tagMCNPCIDCollectionCnt(Structure): @@ -16160,20 +16272,15 @@ #------------------------------------------------------ # A3 BF 通知客户端炼丹炉信息 #tagMCPlayerStoveMsg -class tagMCPlayerStoveMsg(Structure): +class tagMCPlayerStoveInfo(Structure): _pack_ = 1 _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("StoveLV", c_ubyte), # 炼丹炉等级 - ("StoveExp", c_int), # 炼丹炉经验 - ("ItemID", c_int), # 合成物品id + ("AlchemyID", c_int), # 丹 ID + ("StartTime", c_int), # 开始炼的时间 ] def __init__(self): self.Clear() - self.Cmd = 0xA3 - self.SubCmd = 0xBF return def ReadData(self, stringData, _pos=0, _len=0): @@ -16182,39 +16289,120 @@ return _pos + self.GetLength() def Clear(self): - self.Cmd = 0xA3 - self.SubCmd = 0xBF - self.StoveLV = 0 - self.StoveExp = 0 - self.ItemID = 0 + self.AlchemyID = 0 + self.StartTime = 0 return def GetLength(self): - return sizeof(tagMCPlayerStoveMsg) + return sizeof(tagMCPlayerStoveInfo) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): DumpString = '''// A3 BF 通知客户端炼丹炉信息 //tagMCPlayerStoveMsg: - Cmd:%s, - SubCmd:%s, - StoveLV:%d, - StoveExp:%d, - ItemID:%d + AlchemyID:%d, + StartTime:%d '''\ %( - self.Cmd, - self.SubCmd, + self.AlchemyID, + self.StartTime + ) + return DumpString + + +class tagMCPlayerStoveMsg(Structure): + Head = tagHead() + StoveLV = 0 #(BYTE StoveLV)// 炼丹炉等级 + StoveExp = 0 #(DWORD StoveExp)// 炼丹炉经验 + ItemID = 0 #(DWORD ItemID)// 合成物品id + ItemCnt = 0 #(BYTE ItemCnt)// 丹药数量 + StoveCnt = 0 #(WORD StoveCnt)// 丹药数量 + InfoList = list() #(vector<tagMCPlayerStoveInfo> InfoList) + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xA3 + self.Head.SubCmd = 0xBF + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.StoveLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.StoveExp,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.ItemCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.StoveCnt,_pos = CommFunc.ReadWORD(_lpData, _pos) + for i in range(self.StoveCnt): + temInfoList = tagMCPlayerStoveInfo() + _pos = temInfoList.ReadData(_lpData, _pos) + self.InfoList.append(temInfoList) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xA3 + self.Head.SubCmd = 0xBF + self.StoveLV = 0 + self.StoveExp = 0 + self.ItemID = 0 + self.ItemCnt = 0 + self.StoveCnt = 0 + self.InfoList = list() + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 1 + length += 4 + length += 4 + length += 1 + length += 2 + for i in range(self.StoveCnt): + length += self.InfoList[i].GetLength() + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteBYTE(data, self.StoveLV) + data = CommFunc.WriteDWORD(data, self.StoveExp) + data = CommFunc.WriteDWORD(data, self.ItemID) + data = CommFunc.WriteBYTE(data, self.ItemCnt) + data = CommFunc.WriteWORD(data, self.StoveCnt) + for i in range(self.StoveCnt): + data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer()) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + StoveLV:%d, + StoveExp:%d, + ItemID:%d, + ItemCnt:%d, + StoveCnt:%d, + InfoList:%s + '''\ + %( + self.Head.OutputString(), self.StoveLV, self.StoveExp, - self.ItemID + self.ItemID, + self.ItemCnt, + self.StoveCnt, + "..." ) return DumpString m_NAtagMCPlayerStoveMsg=tagMCPlayerStoveMsg() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerStoveMsg.Cmd,m_NAtagMCPlayerStoveMsg.SubCmd))] = m_NAtagMCPlayerStoveMsg +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerStoveMsg.Head.Cmd,m_NAtagMCPlayerStoveMsg.Head.SubCmd))] = m_NAtagMCPlayerStoveMsg #------------------------------------------------------ @@ -16282,6 +16470,8 @@ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("BeginTime", c_int), #开始计时时间 + ("BuffTime", c_int), #buff剩余时间 + ("BuffAddRate", c_int), #buff加成万分率 ("CurExp", c_int), #当前总经验 ("CurExpPoint", c_int), #当前总经验点 ] @@ -16301,6 +16491,8 @@ self.Cmd = 0xA3 self.SubCmd = 0x27 self.BeginTime = 0 + self.BuffTime = 0 + self.BuffAddRate = 0 self.CurExp = 0 self.CurExpPoint = 0 return @@ -16316,6 +16508,8 @@ Cmd:%s, SubCmd:%s, BeginTime:%d, + BuffTime:%d, + BuffAddRate:%d, CurExp:%d, CurExpPoint:%d '''\ @@ -16323,6 +16517,8 @@ self.Cmd, self.SubCmd, self.BeginTime, + self.BuffTime, + self.BuffAddRate, self.CurExp, self.CurExpPoint ) @@ -16581,6 +16777,114 @@ m_NAtagMCSingleGoldGift=tagMCSingleGoldGift() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSingleGoldGift.Cmd,m_NAtagMCSingleGoldGift.SubCmd))] = m_NAtagMCSingleGoldGift + + +#------------------------------------------------------ +# A3 09 技能五行专精信息 #tagMCSkillElementInfo + +class tagMCSkillElementData(Structure): + _pack_ = 1 + _fields_ = [ + ("MainSkillID", c_int), # 主技能ID + ("ElementSkillID", c_int), # 专精技能ID + ] + + def __init__(self): + self.Clear() + 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.MainSkillID = 0 + self.ElementSkillID = 0 + return + + def GetLength(self): + return sizeof(tagMCSkillElementData) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A3 09 技能五行专精信息 //tagMCSkillElementInfo: + MainSkillID:%d, + ElementSkillID:%d + '''\ + %( + self.MainSkillID, + self.ElementSkillID + ) + return DumpString + + +class tagMCSkillElementInfo(Structure): + Head = tagHead() + Cnt = 0 #(BYTE Cnt)// 数量 + InfoList = list() #(vector<tagMCSkillElementData> InfoList) + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xA3 + self.Head.SubCmd = 0x09 + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.Cnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.Cnt): + temInfoList = tagMCSkillElementData() + _pos = temInfoList.ReadData(_lpData, _pos) + self.InfoList.append(temInfoList) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xA3 + self.Head.SubCmd = 0x09 + self.Cnt = 0 + self.InfoList = list() + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 1 + for i in range(self.Cnt): + length += self.InfoList[i].GetLength() + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteBYTE(data, self.Cnt) + for i in range(self.Cnt): + data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer()) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + Cnt:%d, + InfoList:%s + '''\ + %( + self.Head.OutputString(), + self.Cnt, + "..." + ) + return DumpString + + +m_NAtagMCSkillElementInfo=tagMCSkillElementInfo() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSkillElementInfo.Head.Cmd,m_NAtagMCSkillElementInfo.Head.SubCmd))] = m_NAtagMCSkillElementInfo #------------------------------------------------------ @@ -18879,6 +19183,125 @@ #------------------------------------------------------ +# A7 18 采集奖励物品通知 #tagMCCollectAwardItemInfo + +class tagMCCollectAwardItem(Structure): + _pack_ = 1 + _fields_ = [ + ("ItemID", c_int), + ("Count", c_ubyte), + ("IsAuctionItem", c_ubyte), #是否拍品 + ] + + def __init__(self): + self.Clear() + 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.ItemID = 0 + self.Count = 0 + self.IsAuctionItem = 0 + return + + def GetLength(self): + return sizeof(tagMCCollectAwardItem) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A7 18 采集奖励物品通知 //tagMCCollectAwardItemInfo: + ItemID:%d, + Count:%d, + IsAuctionItem:%d + '''\ + %( + self.ItemID, + self.Count, + self.IsAuctionItem + ) + return DumpString + + +class tagMCCollectAwardItemInfo(Structure): + Head = tagHead() + CollectNPCID = 0 #(DWORD CollectNPCID)//采集的NPCID + Count = 0 #(BYTE Count) + AwardItemList = list() #(vector<tagMCCollectAwardItem> AwardItemList)//奖励物品信息列表 + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xA7 + self.Head.SubCmd = 0x18 + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.CollectNPCID,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.Count): + temAwardItemList = tagMCCollectAwardItem() + _pos = temAwardItemList.ReadData(_lpData, _pos) + self.AwardItemList.append(temAwardItemList) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xA7 + self.Head.SubCmd = 0x18 + self.CollectNPCID = 0 + self.Count = 0 + self.AwardItemList = list() + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 4 + length += 1 + for i in range(self.Count): + length += self.AwardItemList[i].GetLength() + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteDWORD(data, self.CollectNPCID) + data = CommFunc.WriteBYTE(data, self.Count) + for i in range(self.Count): + data = CommFunc.WriteString(data, self.AwardItemList[i].GetLength(), self.AwardItemList[i].GetBuffer()) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + CollectNPCID:%d, + Count:%d, + AwardItemList:%s + '''\ + %( + self.Head.OutputString(), + self.CollectNPCID, + self.Count, + "..." + ) + return DumpString + + +m_NAtagMCCollectAwardItemInfo=tagMCCollectAwardItemInfo() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCCollectAwardItemInfo.Head.Cmd,m_NAtagMCCollectAwardItemInfo.Head.SubCmd))] = m_NAtagMCCollectAwardItemInfo + + +#------------------------------------------------------ # A7 13 动态障碍物状态 #tagMCDynamicBarrierState class tagMCDynamicBarrier(Structure): @@ -19916,6 +20339,84 @@ m_NAtagMCNPCShow=tagMCNPCShow() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCNPCShow.Cmd,m_NAtagMCNPCShow.SubCmd))] = m_NAtagMCNPCShow + + +#------------------------------------------------------ +# A7 19 查询玩家境界阶装备信息结果 #tagSCPlayerEquipCacheResult + +class tagSCPlayerEquipCacheResult(Structure): + Head = tagHead() + PlayerID = 0 #(DWORD PlayerID)//玩家ID + EquipClassLV = 0 #(BYTE EquipClassLV) + ItemDataSize = 0 #(WORD ItemDataSize) + ItemData = "" #(String ItemData)//物品记录 + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xA7 + self.Head.SubCmd = 0x19 + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.EquipClassLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.ItemDataSize,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.ItemData,_pos = CommFunc.ReadString(_lpData, _pos,self.ItemDataSize) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xA7 + self.Head.SubCmd = 0x19 + self.PlayerID = 0 + self.EquipClassLV = 0 + self.ItemDataSize = 0 + self.ItemData = "" + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 4 + length += 1 + length += 2 + length += len(self.ItemData) + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteDWORD(data, self.PlayerID) + data = CommFunc.WriteBYTE(data, self.EquipClassLV) + data = CommFunc.WriteWORD(data, self.ItemDataSize) + data = CommFunc.WriteString(data, self.ItemDataSize, self.ItemData) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + PlayerID:%d, + EquipClassLV:%d, + ItemDataSize:%d, + ItemData:%s + '''\ + %( + self.Head.OutputString(), + self.PlayerID, + self.EquipClassLV, + self.ItemDataSize, + self.ItemData + ) + return DumpString + + +m_NAtagSCPlayerEquipCacheResult=tagSCPlayerEquipCacheResult() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCPlayerEquipCacheResult.Head.Cmd,m_NAtagSCPlayerEquipCacheResult.Head.SubCmd))] = m_NAtagSCPlayerEquipCacheResult #------------------------------------------------------ @@ -27625,6 +28126,54 @@ #------------------------------------------------------ +#B1 08 开始印记流失时间 #tagMCYinjiStartTime + +class tagMCYinjiStartTime(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xB1 + 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 = 0xB1 + self.SubCmd = 0x08 + return + + def GetLength(self): + return sizeof(tagMCYinjiStartTime) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''//B1 08 开始印记流失时间 //tagMCYinjiStartTime: + Cmd:%s, + SubCmd:%s + '''\ + %( + self.Cmd, + self.SubCmd + ) + return DumpString + + +m_NAtagMCYinjiStartTime=tagMCYinjiStartTime() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCYinjiStartTime.Cmd,m_NAtagMCYinjiStartTime.SubCmd))] = m_NAtagMCYinjiStartTime + + +#------------------------------------------------------ # B2 08 获得仙缘币信息 #tagMCAddXianyuanCoinMsg class tagMCAddXianyuanCoinMsg(Structure): @@ -28010,6 +28559,118 @@ #------------------------------------------------------ +# B2 15 副本买buff信息通知 #tagMCFBBuyBuffInfo + +class tagMCFBBuyBuffTime(Structure): + _pack_ = 1 + _fields_ = [ + ("MapID", c_int), + ("MoneyCnt", c_ushort), + ("BuyTime", c_int), + ] + + def __init__(self): + self.Clear() + 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.MapID = 0 + self.MoneyCnt = 0 + self.BuyTime = 0 + return + + def GetLength(self): + return sizeof(tagMCFBBuyBuffTime) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B2 15 副本买buff信息通知 //tagMCFBBuyBuffInfo: + MapID:%d, + MoneyCnt:%d, + BuyTime:%d + '''\ + %( + self.MapID, + self.MoneyCnt, + self.BuyTime + ) + return DumpString + + +class tagMCFBBuyBuffInfo(Structure): + Head = tagHead() + Cnt = 0 #(BYTE Cnt) + InfoList = list() #(vector<tagMCFBBuyBuffTime> InfoList) + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xB2 + self.Head.SubCmd = 0x15 + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.Cnt,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.Cnt): + temInfoList = tagMCFBBuyBuffTime() + _pos = temInfoList.ReadData(_lpData, _pos) + self.InfoList.append(temInfoList) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xB2 + self.Head.SubCmd = 0x15 + self.Cnt = 0 + self.InfoList = list() + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 1 + for i in range(self.Cnt): + length += self.InfoList[i].GetLength() + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteBYTE(data, self.Cnt) + for i in range(self.Cnt): + data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer()) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + Cnt:%d, + InfoList:%s + '''\ + %( + self.Head.OutputString(), + self.Cnt, + "..." + ) + return DumpString + + +m_NAtagMCFBBuyBuffInfo=tagMCFBBuyBuffInfo() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFBBuyBuffInfo.Head.Cmd,m_NAtagMCFBBuyBuffInfo.Head.SubCmd))] = m_NAtagMCFBBuyBuffInfo + + +#------------------------------------------------------ # B2 09 副本次数恢复剩余时间 #tagMCFBCntRegainRemainTime class tagMCFBCntRegain(Structure): -- Gitblit v1.8.0