xdh
2018-08-23 9d9ad0b584fe00b46c6207c17bdbe868aec6b97b
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
@@ -4012,6 +4012,91 @@
#------------------------------------------------------
# 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):
@@ -6529,6 +6614,58 @@
#------------------------------------------------------
# A5 12 激活法宝之魂 #tagCMActiveMWSoul
class  tagCMActiveMWSoul(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("ID", c_ubyte),    #编号
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        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 = 0xA5
        self.SubCmd = 0x12
        self.ID = 0
        return
    def GetLength(self):
        return sizeof(tagCMActiveMWSoul)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 12 激活法宝之魂 //tagCMActiveMWSoul:
                                Cmd:%s,
                                SubCmd:%s,
                                ID:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.ID
                                )
        return DumpString
m_NAtagCMActiveMWSoul=tagCMActiveMWSoul()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActiveMWSoul.Cmd,m_NAtagCMActiveMWSoul.SubCmd))] = m_NAtagCMActiveMWSoul
#------------------------------------------------------
# A5 49 大师天赋技能加点 #tagCMAddMasterSkillPoint
class  tagCMMasterSkillPoint(Structure):
@@ -7665,6 +7802,303 @@
#------------------------------------------------------
# A5 C2 神兽变更助战状态 #tagCMDogzBattleStateChange
class  tagCMDogzBattleStateChange(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("DogzID", c_ubyte),    # 神兽ID
                  ("BatteState", c_ubyte),    #助战状态,0-召回,1-助战
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        self.SubCmd = 0xC2
        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 = 0xC2
        self.DogzID = 0
        self.BatteState = 0
        return
    def GetLength(self):
        return sizeof(tagCMDogzBattleStateChange)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 C2 神兽变更助战状态 //tagCMDogzBattleStateChange:
                                Cmd:%s,
                                SubCmd:%s,
                                DogzID:%d,
                                BatteState:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.DogzID,
                                self.BatteState
                                )
        return DumpString
m_NAtagCMDogzBattleStateChange=tagCMDogzBattleStateChange()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMDogzBattleStateChange.Cmd,m_NAtagCMDogzBattleStateChange.SubCmd))] = m_NAtagCMDogzBattleStateChange
#------------------------------------------------------
# A5 C3 神兽购买助战位 #tagCMDogzBuyBatteCount
class  tagCMDogzBuyBatteCount(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        self.SubCmd = 0xC3
        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 = 0xC3
        return
    def GetLength(self):
        return sizeof(tagCMDogzBuyBatteCount)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 C3 神兽购买助战位 //tagCMDogzBuyBatteCount:
                                Cmd:%s,
                                SubCmd:%s
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd
                                )
        return DumpString
m_NAtagCMDogzBuyBatteCount=tagCMDogzBuyBatteCount()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMDogzBuyBatteCount.Cmd,m_NAtagCMDogzBuyBatteCount.SubCmd))] = m_NAtagCMDogzBuyBatteCount
#------------------------------------------------------
# A5 C0 神兽穿戴装备 #tagCMDogzEquipItem
class  tagCMDogzEquipItem(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("DogzID", c_ubyte),    # 神兽ID
                  ("EquipIndex", c_ubyte),    #神兽装备所在神兽背包索引
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        self.SubCmd = 0xC0
        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 = 0xC0
        self.DogzID = 0
        self.EquipIndex = 0
        return
    def GetLength(self):
        return sizeof(tagCMDogzEquipItem)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 C0 神兽穿戴装备 //tagCMDogzEquipItem:
                                Cmd:%s,
                                SubCmd:%s,
                                DogzID:%d,
                                EquipIndex:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.DogzID,
                                self.EquipIndex
                                )
        return DumpString
m_NAtagCMDogzEquipItem=tagCMDogzEquipItem()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMDogzEquipItem.Cmd,m_NAtagCMDogzEquipItem.SubCmd))] = m_NAtagCMDogzEquipItem
#------------------------------------------------------
# A5 C4 神兽装备强化 #tagCMDogzEquipPlus
class  tagCMDogzEquipPlus(Structure):
    Head = tagHead()
    EquipIndex = 0    #(BYTE EquipIndex)//神兽装备背包中索引
    IndexCount = 0    #(BYTE IndexCount)//材料所在神兽物品背包索引的数量
    IndexList = list()    #(vector<BYTE> IndexList)//材料所在神兽物品背包索引列表
    IsDouble = 0    #(BYTE IsDouble)//是否双倍强化
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA5
        self.Head.SubCmd = 0xC4
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.EquipIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.IndexCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.IndexCount):
            value,_pos=CommFunc.ReadBYTE(_lpData,_pos)
            self.IndexList.append(value)
        self.IsDouble,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA5
        self.Head.SubCmd = 0xC4
        self.EquipIndex = 0
        self.IndexCount = 0
        self.IndexList = list()
        self.IsDouble = 0
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 1
        length += 1 * self.IndexCount
        length += 1
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.EquipIndex)
        data = CommFunc.WriteBYTE(data, self.IndexCount)
        for i in range(self.IndexCount):
            data = CommFunc.WriteBYTE(data, self.IndexList[i])
        data = CommFunc.WriteBYTE(data, self.IsDouble)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                EquipIndex:%d,
                                IndexCount:%d,
                                IndexList:%s,
                                IsDouble:%d
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.EquipIndex,
                                self.IndexCount,
                                "...",
                                self.IsDouble
                                )
        return DumpString
m_NAtagCMDogzEquipPlus=tagCMDogzEquipPlus()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMDogzEquipPlus.Head.Cmd,m_NAtagCMDogzEquipPlus.Head.SubCmd))] = m_NAtagCMDogzEquipPlus
#------------------------------------------------------
# A5 C1 神兽卸下装备 #tagCMDogzUnEquipItem
class  tagCMDogzUnEquipItem(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("DogzID", c_ubyte),    # 神兽ID
                  ("EquipPlace", c_ubyte),    #卸下的装备位, 0代表卸下全部
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        self.SubCmd = 0xC1
        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 = 0xC1
        self.DogzID = 0
        self.EquipPlace = 0
        return
    def GetLength(self):
        return sizeof(tagCMDogzUnEquipItem)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 C1 神兽卸下装备 //tagCMDogzUnEquipItem:
                                Cmd:%s,
                                SubCmd:%s,
                                DogzID:%d,
                                EquipPlace:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.DogzID,
                                self.EquipPlace
                                )
        return DumpString
m_NAtagCMDogzUnEquipItem=tagCMDogzUnEquipItem()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMDogzUnEquipItem.Cmd,m_NAtagCMDogzUnEquipItem.SubCmd))] = m_NAtagCMDogzUnEquipItem
#------------------------------------------------------
# A5 48 兑换大师等级经验 #tagCMExchangeMasterEXP
class  tagCMExchangeMasterEXP(Structure):