From 67bcc2ab06912fc3d9cf31ceae533da76e50d5ae Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期五, 20 九月 2019 14:19:55 +0800 Subject: [PATCH] 8258 【后端】BOSS首杀 --- ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py | 648 +++++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 524 insertions(+), 124 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py index 35f29ee..83ba1f1 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py @@ -6773,6 +6773,162 @@ #------------------------------------------------------ +# B3 11 聊天缓存通知 #tagGCTalkCache + +class tagGCTalkCacheInfo(Structure): + ChannelType = 0 #(BYTE ChannelType)// 1 世界 2 仙盟 + NameLen = 0 #(BYTE NameLen) + Name = "" #(String Name)//size = SrcNameLen + PlayerID = 0 #(DWORD PlayerID) + Time = 0 #(DWORD Time) + Len = 0 #(WORD Len) + Content = "" #(String Content)//size = Len + Extras = "" #(char Extras[256])//附加值列表 + data = None + + def __init__(self): + self.Clear() + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + self.ChannelType,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen) + self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.Time,_pos = CommFunc.ReadDWORD(_lpData, _pos) + self.Len,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.Content,_pos = CommFunc.ReadString(_lpData, _pos,self.Len) + self.Extras,_pos = CommFunc.ReadString(_lpData, _pos,256) + return _pos + + def Clear(self): + self.ChannelType = 0 + self.NameLen = 0 + self.Name = "" + self.PlayerID = 0 + self.Time = 0 + self.Len = 0 + self.Content = "" + self.Extras = "" + return + + def GetLength(self): + length = 0 + length += 1 + length += 1 + length += len(self.Name) + length += 4 + length += 4 + length += 2 + length += len(self.Content) + length += 256 + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteBYTE(data, self.ChannelType) + data = CommFunc.WriteBYTE(data, self.NameLen) + data = CommFunc.WriteString(data, self.NameLen, self.Name) + data = CommFunc.WriteDWORD(data, self.PlayerID) + data = CommFunc.WriteDWORD(data, self.Time) + data = CommFunc.WriteWORD(data, self.Len) + data = CommFunc.WriteString(data, self.Len, self.Content) + data = CommFunc.WriteString(data, 256, self.Extras) + return data + + def OutputString(self): + DumpString = ''' + ChannelType:%d, + NameLen:%d, + Name:%s, + PlayerID:%d, + Time:%d, + Len:%d, + Content:%s, + Extras:%s + '''\ + %( + self.ChannelType, + self.NameLen, + self.Name, + self.PlayerID, + self.Time, + self.Len, + self.Content, + self.Extras + ) + return DumpString + + +class tagGCTalkCache(Structure): + Head = tagHead() + Count = 0 #(WORD Count) + InfoList = list() #(vector<tagGCTalkCacheInfo> InfoList)//size = Count + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xB3 + self.Head.SubCmd = 0x11 + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos) + for i in range(self.Count): + temInfoList = tagGCTalkCacheInfo() + _pos = temInfoList.ReadData(_lpData, _pos) + self.InfoList.append(temInfoList) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xB3 + self.Head.SubCmd = 0x11 + self.Count = 0 + self.InfoList = list() + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 2 + for i in range(self.Count): + length += self.InfoList[i].GetLength() + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteWORD(data, self.Count) + for i in range(self.Count): + data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer()) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + Count:%d, + InfoList:%s + '''\ + %( + self.Head.OutputString(), + self.Count, + "..." + ) + return DumpString + + +m_NAtagGCTalkCache=tagGCTalkCache() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCTalkCache.Head.Cmd,m_NAtagGCTalkCache.Head.SubCmd))] = m_NAtagGCTalkCache + + +#------------------------------------------------------ # B5 04 拍卖行新上架拍品 #tagGCAddAuctionItemInfo class tagGCAddAuctionItem(Structure): @@ -10529,6 +10685,7 @@ _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), + ("IsRobot", c_ubyte), # 是否匹配机器人 ] def __init__(self): @@ -10545,6 +10702,7 @@ def Clear(self): self.Cmd = 0xC0 self.SubCmd = 0x02 + self.IsRobot = 0 return def GetLength(self): @@ -10556,11 +10714,13 @@ def OutputString(self): DumpString = '''// C0 02 跨服PK开始匹配 //tagGCCrossRealmPKStartMatch: Cmd:%s, - SubCmd:%s + SubCmd:%s, + IsRobot:%d '''\ %( self.Cmd, - self.SubCmd + self.SubCmd, + self.IsRobot ) return DumpString @@ -12850,6 +13010,7 @@ ("BossType", c_ubyte), #编号类型0-世界boss 1-boss之家 ("KillCnt", c_int), #击杀次数 ("ItemAddCnt", c_int), #物品增加次数 + ("BuyCnt", c_ubyte), #购买次数 ] def __init__(self): @@ -12865,6 +13026,7 @@ self.BossType = 0 self.KillCnt = 0 self.ItemAddCnt = 0 + self.BuyCnt = 0 return def GetLength(self): @@ -12877,12 +13039,14 @@ DumpString = '''//A3 B7 当日累计攻击boss次数 //tagMCBOSSAttactCnt: BossType:%d, KillCnt:%d, - ItemAddCnt:%d + ItemAddCnt:%d, + BuyCnt:%d '''\ %( self.BossType, self.KillCnt, - self.ItemAddCnt + self.ItemAddCnt, + self.BuyCnt ) return DumpString @@ -15285,6 +15449,178 @@ #------------------------------------------------------ +# A3 28 历史累积充值奖励领取记录 #tagMCHistoryReChargeAwardRecord + +class tagMCHistoryReChargeAwardRecord(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("AwardGetRecord", c_int), # 按二进制位标示领取记录 配置奖励ID代表第几位 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA3 + self.SubCmd = 0x28 + 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 = 0x28 + self.AwardGetRecord = 0 + return + + def GetLength(self): + return sizeof(tagMCHistoryReChargeAwardRecord) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A3 28 历史累积充值奖励领取记录 //tagMCHistoryReChargeAwardRecord: + Cmd:%s, + SubCmd:%s, + AwardGetRecord:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.AwardGetRecord + ) + return DumpString + + +m_NAtagMCHistoryReChargeAwardRecord=tagMCHistoryReChargeAwardRecord() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCHistoryReChargeAwardRecord.Cmd,m_NAtagMCHistoryReChargeAwardRecord.SubCmd))] = m_NAtagMCHistoryReChargeAwardRecord + + +#------------------------------------------------------ +# A3 12 通知骑宠觉醒信息 #tagMCHorsePetSkinData + +class tagMCHorsePetSkinInfo(Structure): + _pack_ = 1 + _fields_ = [ + ("Type", c_ubyte), # 1-坐骑 2-灵宠 + ("ID", c_int), # 对应坐骑表灵宠表ID + ("Exp", c_int), #经验 + ("SkinLV", c_ubyte), #觉醒等级 + ("SkinIndex", 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.Type = 0 + self.ID = 0 + self.Exp = 0 + self.SkinLV = 0 + self.SkinIndex = 0 + return + + def GetLength(self): + return sizeof(tagMCHorsePetSkinInfo) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A3 12 通知骑宠觉醒信息 //tagMCHorsePetSkinData: + Type:%d, + ID:%d, + Exp:%d, + SkinLV:%d, + SkinIndex:%d + '''\ + %( + self.Type, + self.ID, + self.Exp, + self.SkinLV, + self.SkinIndex + ) + return DumpString + + +class tagMCHorsePetSkinData(Structure): + Head = tagHead() + Num = 0 #(BYTE Num)//个数 + InfoList = list() #(vector<tagMCHorsePetSkinInfo> InfoList)// 数据列表 + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xA3 + self.Head.SubCmd = 0x12 + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.Num,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.Num): + temInfoList = tagMCHorsePetSkinInfo() + _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 = 0x12 + self.Num = 0 + self.InfoList = list() + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 1 + for i in range(self.Num): + 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.Num) + for i in range(self.Num): + data = CommFunc.WriteString(data, self.InfoList[i].GetLength(), self.InfoList[i].GetBuffer()) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + Num:%d, + InfoList:%s + '''\ + %( + self.Head.OutputString(), + self.Num, + "..." + ) + return DumpString + + +m_NAtagMCHorsePetSkinData=tagMCHorsePetSkinData() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCHorsePetSkinData.Head.Cmd,m_NAtagMCHorsePetSkinData.Head.SubCmd))] = m_NAtagMCHorsePetSkinData + + +#------------------------------------------------------ # A3 52 法宝等级信息 #tagMCMagicWeaponLVInfo class tagMCMagicWeaponInfo(Structure): @@ -16836,6 +17172,7 @@ ("ExtraCnt", c_ubyte), # VIP额外次数 ("ExtraData", c_ubyte), # 额外参数1 ("ExtraData2", c_ubyte), # 额外参数2 + ("HaveRecover", c_ubyte), # 已找回 1-全部已找回 2-非VIP已找回 ] def __init__(self): @@ -16853,6 +17190,7 @@ self.ExtraCnt = 0 self.ExtraData = 0 self.ExtraData2 = 0 + self.HaveRecover = 0 return def GetLength(self): @@ -16867,14 +17205,16 @@ RecoverCnt:%d, ExtraCnt:%d, ExtraData:%d, - ExtraData2:%d + ExtraData2:%d, + HaveRecover:%d '''\ %( self.Index, self.RecoverCnt, self.ExtraCnt, self.ExtraData, - self.ExtraData2 + self.ExtraData2, + self.HaveRecover ) return DumpString @@ -21498,6 +21838,58 @@ #------------------------------------------------------ +# A8 15 灵器突破结果 #tagMCLingQiEquipBreakResult + +class tagMCLingQiEquipBreakResult(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("MakeItemID", c_int), #突破后的物品ID + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA8 + 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 = 0xA8 + self.SubCmd = 0x15 + self.MakeItemID = 0 + return + + def GetLength(self): + return sizeof(tagMCLingQiEquipBreakResult) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A8 15 灵器突破结果 //tagMCLingQiEquipBreakResult: + Cmd:%s, + SubCmd:%s, + MakeItemID:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.MakeItemID + ) + return DumpString + + +m_NAtagMCLingQiEquipBreakResult=tagMCLingQiEquipBreakResult() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCLingQiEquipBreakResult.Cmd,m_NAtagMCLingQiEquipBreakResult.SubCmd))] = m_NAtagMCLingQiEquipBreakResult + + +#------------------------------------------------------ # A8 14 合成结果通知 #tagMCMakeItemAnswer class tagMCMakeItemAnswer(Structure): @@ -22119,118 +22511,6 @@ m_NAtagMCVirtualItemDrop=tagMCVirtualItemDrop() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCVirtualItemDrop.Head.Cmd,m_NAtagMCVirtualItemDrop.Head.SubCmd))] = m_NAtagMCVirtualItemDrop - - -#------------------------------------------------------ -# A8 15 诛仙装备分解结果通知 #tagMCZhuXianDecomposeResult - -class tagMCZhuXianDecomposeItem(Structure): - _pack_ = 1 - _fields_ = [ - ("ItemID", c_int), #物品ID - ("ItemCnt", c_ubyte), #物品数量 - ("IsBind", 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.ItemCnt = 0 - self.IsBind = 0 - return - - def GetLength(self): - return sizeof(tagMCZhuXianDecomposeItem) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// A8 15 诛仙装备分解结果通知 //tagMCZhuXianDecomposeResult: - ItemID:%d, - ItemCnt:%d, - IsBind:%d - '''\ - %( - self.ItemID, - self.ItemCnt, - self.IsBind - ) - return DumpString - - -class tagMCZhuXianDecomposeResult(Structure): - Head = tagHead() - Cnt = 0 #(BYTE Cnt)//数量 - ItemList = list() #(vector<tagMCZhuXianDecomposeItem> ItemList) - data = None - - def __init__(self): - self.Clear() - self.Head.Cmd = 0xA8 - 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): - temItemList = tagMCZhuXianDecomposeItem() - _pos = temItemList.ReadData(_lpData, _pos) - self.ItemList.append(temItemList) - return _pos - - def Clear(self): - self.Head = tagHead() - self.Head.Clear() - self.Head.Cmd = 0xA8 - self.Head.SubCmd = 0x15 - self.Cnt = 0 - self.ItemList = list() - return - - def GetLength(self): - length = 0 - length += self.Head.GetLength() - length += 1 - for i in range(self.Cnt): - length += self.ItemList[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.ItemList[i].GetLength(), self.ItemList[i].GetBuffer()) - return data - - def OutputString(self): - DumpString = ''' - Head:%s, - Cnt:%d, - ItemList:%s - '''\ - %( - self.Head.OutputString(), - self.Cnt, - "..." - ) - return DumpString - - -m_NAtagMCZhuXianDecomposeResult=tagMCZhuXianDecomposeResult() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCZhuXianDecomposeResult.Head.Cmd,m_NAtagMCZhuXianDecomposeResult.Head.SubCmd))] = m_NAtagMCZhuXianDecomposeResult #------------------------------------------------------ @@ -26716,6 +26996,9 @@ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("State", c_ubyte), #0-不可领 1-可领 2-已领取 + ("CTGTotal", c_int), #本次活动已累计充值,单位元 + ("FireworksBuyCount", c_ushort), #已购买高级烟花数 + ("FirewordsScore", c_int), #当前累计所有烟花总积分 ] def __init__(self): @@ -26733,6 +27016,9 @@ self.Cmd = 0xAA self.SubCmd = 0x14 self.State = 0 + self.CTGTotal = 0 + self.FireworksBuyCount = 0 + self.FirewordsScore = 0 return def GetLength(self): @@ -26745,18 +27031,132 @@ DumpString = '''// AA 14 仙界盛典充值大礼 //tagMCXJSDRecharge: Cmd:%s, SubCmd:%s, - State:%d + State:%d, + CTGTotal:%d, + FireworksBuyCount:%d, + FirewordsScore:%d '''\ %( self.Cmd, self.SubCmd, - self.State + self.State, + self.CTGTotal, + self.FireworksBuyCount, + self.FirewordsScore ) return DumpString m_NAtagMCXJSDRecharge=tagMCXJSDRecharge() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCXJSDRecharge.Cmd,m_NAtagMCXJSDRecharge.SubCmd))] = m_NAtagMCXJSDRecharge + + +#------------------------------------------------------ +# AB 01 Boss首杀玩家奖励信息 #tagMCBossFirstKillStateInfo + +class tagMCBossFirstKillState(Structure): + _pack_ = 1 + _fields_ = [ + ("NPCID", c_int), + ("FKState", c_int), # 玩家该boss首杀相关状态,按位存:个位-玩家是否击杀过,十位-是否已领取首杀全服奖励,百位-是否已领取个人首杀奖励 + ] + + 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.FKState = 0 + return + + def GetLength(self): + return sizeof(tagMCBossFirstKillState) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// AB 01 Boss首杀玩家奖励信息 //tagMCBossFirstKillStateInfo: + NPCID:%d, + FKState:%d + '''\ + %( + self.NPCID, + self.FKState + ) + return DumpString + + +class tagMCBossFirstKillStateInfo(Structure): + Head = tagHead() + BossCount = 0 #(BYTE BossCount) + FirstKillStateList = list() #(vector<tagMCBossFirstKillState> FirstKillStateList) + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xAB + self.Head.SubCmd = 0x01 + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.BossCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.BossCount): + temFirstKillStateList = tagMCBossFirstKillState() + _pos = temFirstKillStateList.ReadData(_lpData, _pos) + self.FirstKillStateList.append(temFirstKillStateList) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xAB + self.Head.SubCmd = 0x01 + self.BossCount = 0 + self.FirstKillStateList = list() + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 1 + for i in range(self.BossCount): + length += self.FirstKillStateList[i].GetLength() + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteBYTE(data, self.BossCount) + for i in range(self.BossCount): + data = CommFunc.WriteString(data, self.FirstKillStateList[i].GetLength(), self.FirstKillStateList[i].GetBuffer()) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + BossCount:%d, + FirstKillStateList:%s + '''\ + %( + self.Head.OutputString(), + self.BossCount, + "..." + ) + return DumpString + + +m_NAtagMCBossFirstKillStateInfo=tagMCBossFirstKillStateInfo() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCBossFirstKillStateInfo.Head.Cmd,m_NAtagMCBossFirstKillStateInfo.Head.SubCmd))] = m_NAtagMCBossFirstKillStateInfo #------------------------------------------------------ @@ -28247,7 +28647,7 @@ Head = tagHead() PointAttrIDCount = 0 #(BYTE PointAttrIDCount)// 点类型个数 PointAttrIDList = list() #(vector<BYTE> PointAttrIDList)// 点类型列表 - PointValueList = list() #(vector<WORD> PointValueList)// 点类型对应已加自由点数列表 + PointValueList = list() #(vector<DWORD> PointValueList)// 点类型对应已加自由点数列表 data = None def __init__(self): @@ -28264,7 +28664,7 @@ value,_pos=CommFunc.ReadBYTE(_lpData,_pos) self.PointAttrIDList.append(value) for i in range(self.PointAttrIDCount): - value,_pos=CommFunc.ReadWORD(_lpData,_pos) + value,_pos=CommFunc.ReadDWORD(_lpData,_pos) self.PointValueList.append(value) return _pos @@ -28283,7 +28683,7 @@ length += self.Head.GetLength() length += 1 length += 1 * self.PointAttrIDCount - length += 2 * self.PointAttrIDCount + length += 4 * self.PointAttrIDCount return length @@ -28294,7 +28694,7 @@ for i in range(self.PointAttrIDCount): data = CommFunc.WriteBYTE(data, self.PointAttrIDList[i]) for i in range(self.PointAttrIDCount): - data = CommFunc.WriteWORD(data, self.PointValueList[i]) + data = CommFunc.WriteDWORD(data, self.PointValueList[i]) return data def OutputString(self): -- Gitblit v1.8.0