|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #------------------------------------------------------ | 
|---|
|  |  |  | # A2 27 查询地图NPC数量信息 #tagCMQueryNPCCntInfo | 
|---|
|  |  |  |  | 
|---|
|  |  |  | class  tagCMQueryNPCCntInfo(Structure): | 
|---|
|  |  |  | Head = tagHead() | 
|---|
|  |  |  | MapID = 0    #(DWORD MapID)// 目标地图ID | 
|---|
|  |  |  | LineID = 0    #(WORD LineID)// 线路ID | 
|---|
|  |  |  | IsNoTimeLimit = 0    #(BYTE IsNoTimeLimit)//是否没有查询时间限制,默认有限制 | 
|---|
|  |  |  | NPCIDListLen = 0    #(BYTE NPCIDListLen) | 
|---|
|  |  |  | NPCIDList = ""    #(String NPCIDList)// 需要查询的NPCID列表 | 
|---|
|  |  |  | data = None | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def __init__(self): | 
|---|
|  |  |  | self.Clear() | 
|---|
|  |  |  | self.Head.Cmd = 0xA2 | 
|---|
|  |  |  | self.Head.SubCmd = 0x27 | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def ReadData(self, _lpData, _pos=0, _Len=0): | 
|---|
|  |  |  | self.Clear() | 
|---|
|  |  |  | _pos = self.Head.ReadData(_lpData, _pos) | 
|---|
|  |  |  | self.MapID,_pos = CommFunc.ReadDWORD(_lpData, _pos) | 
|---|
|  |  |  | self.LineID,_pos = CommFunc.ReadWORD(_lpData, _pos) | 
|---|
|  |  |  | self.IsNoTimeLimit,_pos = CommFunc.ReadBYTE(_lpData, _pos) | 
|---|
|  |  |  | self.NPCIDListLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) | 
|---|
|  |  |  | self.NPCIDList,_pos = CommFunc.ReadString(_lpData, _pos,self.NPCIDListLen) | 
|---|
|  |  |  | return _pos | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def Clear(self): | 
|---|
|  |  |  | self.Head = tagHead() | 
|---|
|  |  |  | self.Head.Clear() | 
|---|
|  |  |  | self.Head.Cmd = 0xA2 | 
|---|
|  |  |  | self.Head.SubCmd = 0x27 | 
|---|
|  |  |  | self.MapID = 0 | 
|---|
|  |  |  | self.LineID = 0 | 
|---|
|  |  |  | self.IsNoTimeLimit = 0 | 
|---|
|  |  |  | self.NPCIDListLen = 0 | 
|---|
|  |  |  | self.NPCIDList = "" | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def GetLength(self): | 
|---|
|  |  |  | length = 0 | 
|---|
|  |  |  | length += self.Head.GetLength() | 
|---|
|  |  |  | length += 4 | 
|---|
|  |  |  | length += 2 | 
|---|
|  |  |  | length += 1 | 
|---|
|  |  |  | length += 1 | 
|---|
|  |  |  | length += len(self.NPCIDList) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return length | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def GetBuffer(self): | 
|---|
|  |  |  | data = '' | 
|---|
|  |  |  | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) | 
|---|
|  |  |  | data = CommFunc.WriteDWORD(data, self.MapID) | 
|---|
|  |  |  | data = CommFunc.WriteWORD(data, self.LineID) | 
|---|
|  |  |  | data = CommFunc.WriteBYTE(data, self.IsNoTimeLimit) | 
|---|
|  |  |  | data = CommFunc.WriteBYTE(data, self.NPCIDListLen) | 
|---|
|  |  |  | data = CommFunc.WriteString(data, self.NPCIDListLen, self.NPCIDList) | 
|---|
|  |  |  | return data | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def OutputString(self): | 
|---|
|  |  |  | DumpString = ''' | 
|---|
|  |  |  | Head:%s, | 
|---|
|  |  |  | MapID:%d, | 
|---|
|  |  |  | LineID:%d, | 
|---|
|  |  |  | IsNoTimeLimit:%d, | 
|---|
|  |  |  | NPCIDListLen:%d, | 
|---|
|  |  |  | NPCIDList:%s | 
|---|
|  |  |  | '''\ | 
|---|
|  |  |  | %( | 
|---|
|  |  |  | self.Head.OutputString(), | 
|---|
|  |  |  | self.MapID, | 
|---|
|  |  |  | self.LineID, | 
|---|
|  |  |  | self.IsNoTimeLimit, | 
|---|
|  |  |  | self.NPCIDListLen, | 
|---|
|  |  |  | self.NPCIDList | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | return DumpString | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | m_NAtagCMQueryNPCCntInfo=tagCMQueryNPCCntInfo() | 
|---|
|  |  |  | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMQueryNPCCntInfo.Head.Cmd,m_NAtagCMQueryNPCCntInfo.Head.SubCmd))] = m_NAtagCMQueryNPCCntInfo | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #------------------------------------------------------ | 
|---|
|  |  |  | # A2 13 查询地图NPC信息 #tagCMQueryNPCInfo | 
|---|
|  |  |  |  | 
|---|
|  |  |  | class  tagCMQueryNPCInfo(Structure): | 
|---|