xdh
2019-04-13 10a2b69436a1ebb09fa49a339655e150bfda70a8
ServerPython/CoreServerGroup/GameServer/Script/ChMapToGamePyPack.py
@@ -847,421 +847,6 @@
#------------------------------------------------------
#03 02 天梯竞技场玩家发起挑战#tagMGHighLadderChallenge
class  tagHightLadderItemInfo(Structure):
    ItemTypeID = 0    #(DWORD ItemTypeID)//物品ID
    ItemPlaceType = 0    #(BYTE ItemPlaceType)//物品位置的背包类型
    ItemPlaceIndex = 0    #(BYTE ItemPlaceIndex)//物品所在的索引
    Count = 0    #(WORD Count)//单组数量
    ItemStarLV = 0    #(BYTE ItemStarLV)//装备星级
    IdentifyPar = 0    #(BYTE IdentifyPar)//鉴定参数
    CurDurg = 0    #(DWORD CurDurg)//当前耐久
    MaxDurg = 0    #(DWORD MaxDurg)//最大耐久
    CanPlaceStoneCount = 0    #(BYTE CanPlaceStoneCount)//可镶嵌宝石数0表示不可以镶嵌宝石
    ItemProperty = 0    #(BYTE ItemProperty)//装备五行
    SoulProperty = 0    #(WORD SoulProperty)//灵魂属性属性
    Maker = 0    #(DWORD Maker)//制作者ID
    MakerName = ""    #(char MakerName[33])//制造者名字
    Stone1 = 0    #(DWORD Stone1)//镶嵌宝石1
    Stone2 = 0    #(DWORD Stone2)//镶嵌宝石
    Stone3 = 0    #(DWORD Stone3)//镶嵌宝石
    Stone4 = 0    #(DWORD Stone4)//镶嵌宝石
    Stone5 = 0    #(DWORD Stone5)//镶嵌宝石
    Stone6 = 0    #(DWORD Stone6)//镶嵌宝石
    Stone7 = 0    #(DWORD Stone7)//镶嵌宝石
    Stone8 = 0    #(DWORD Stone8)//镶嵌宝石
    Stone9 = 0    #(DWORD Stone9)//镶嵌宝石
    IsRenZhu = 0    #(BYTE IsRenZhu)//是否认主
    EquipDefenseValue = 0    #(DWORD EquipDefenseValue)//用于记录装备的防御值
    EquipMinAtkValue = 0    #(DWORD EquipMinAtkValue)//用于记录装备的最小伤害值
    EquipMaxAtkValue = 0    #(DWORD EquipMaxAtkValue)//用于记录装备的最大伤害值
    UserDataLen = 0    #(DWORD UserDataLen)
    UserData = ""    #(String UserData)//自定义数据
    FitLV = 0    #(BYTE FitLV)//物品契合等级
    Proficiency = 0    #(DWORD Proficiency)//熟练度
    IsSuite = 0    #(BYTE IsSuite)//是否已经套装化
    BaseHP = 0    #(DWORD BaseHP)// HP基础值
    BaseMagicDef = 0    #(DWORD BaseMagicDef)//内防基础值
    MaxAddSkillCnt = 0    #(BYTE MaxAddSkillCnt)// 最大附魔次数
    PetID = 0    #(DWORD PetID)//装备该装备的宠物ID,为0则未装备
    EquipMagicDefValue = 0    #(DWORD EquipMagicDefValue)//装备内防值
    EquipMinMagicAtkValue = 0    #(DWORD EquipMinMagicAtkValue)//装备最小内攻
    EquipMaxMagicAtkValue = 0    #(DWORD EquipMaxMagicAtkValue)//装备最大内攻
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.ItemTypeID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.ItemPlaceType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.ItemPlaceIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.ItemStarLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.IdentifyPar,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.CurDurg,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.MaxDurg,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.CanPlaceStoneCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.ItemProperty,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.SoulProperty,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.Maker,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.MakerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
        self.Stone1,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.Stone2,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.Stone3,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.Stone4,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.Stone5,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.Stone6,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.Stone7,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.Stone8,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.Stone9,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.IsRenZhu,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.EquipDefenseValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.EquipMinAtkValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.EquipMaxAtkValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.UserDataLen,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen)
        self.FitLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Proficiency,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.IsSuite,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.BaseHP,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.BaseMagicDef,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.MaxAddSkillCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.PetID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.EquipMagicDefValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.EquipMinMagicAtkValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.EquipMaxMagicAtkValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        return _pos
    def Clear(self):
        self.ItemTypeID = 0
        self.ItemPlaceType = 0
        self.ItemPlaceIndex = 0
        self.Count = 0
        self.ItemStarLV = 0
        self.IdentifyPar = 0
        self.CurDurg = 0
        self.MaxDurg = 0
        self.CanPlaceStoneCount = 0
        self.ItemProperty = 0
        self.SoulProperty = 0
        self.Maker = 0
        self.MakerName = ""
        self.Stone1 = 0
        self.Stone2 = 0
        self.Stone3 = 0
        self.Stone4 = 0
        self.Stone5 = 0
        self.Stone6 = 0
        self.Stone7 = 0
        self.Stone8 = 0
        self.Stone9 = 0
        self.IsRenZhu = 0
        self.EquipDefenseValue = 0
        self.EquipMinAtkValue = 0
        self.EquipMaxAtkValue = 0
        self.UserDataLen = 0
        self.UserData = ""
        self.FitLV = 0
        self.Proficiency = 0
        self.IsSuite = 0
        self.BaseHP = 0
        self.BaseMagicDef = 0
        self.MaxAddSkillCnt = 0
        self.PetID = 0
        self.EquipMagicDefValue = 0
        self.EquipMinMagicAtkValue = 0
        self.EquipMaxMagicAtkValue = 0
        return
    def GetLength(self):
        length = 0
        length += 4
        length += 1
        length += 1
        length += 2
        length += 1
        length += 1
        length += 4
        length += 4
        length += 1
        length += 1
        length += 2
        length += 4
        length += 33
        length += 4
        length += 4
        length += 4
        length += 4
        length += 4
        length += 4
        length += 4
        length += 4
        length += 4
        length += 1
        length += 4
        length += 4
        length += 4
        length += 4
        length += len(self.UserData)
        length += 1
        length += 4
        length += 1
        length += 4
        length += 4
        length += 1
        length += 4
        length += 4
        length += 4
        length += 4
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteDWORD(data, self.ItemTypeID)
        data = CommFunc.WriteBYTE(data, self.ItemPlaceType)
        data = CommFunc.WriteBYTE(data, self.ItemPlaceIndex)
        data = CommFunc.WriteWORD(data, self.Count)
        data = CommFunc.WriteBYTE(data, self.ItemStarLV)
        data = CommFunc.WriteBYTE(data, self.IdentifyPar)
        data = CommFunc.WriteDWORD(data, self.CurDurg)
        data = CommFunc.WriteDWORD(data, self.MaxDurg)
        data = CommFunc.WriteBYTE(data, self.CanPlaceStoneCount)
        data = CommFunc.WriteBYTE(data, self.ItemProperty)
        data = CommFunc.WriteWORD(data, self.SoulProperty)
        data = CommFunc.WriteDWORD(data, self.Maker)
        data = CommFunc.WriteString(data, 33, self.MakerName)
        data = CommFunc.WriteDWORD(data, self.Stone1)
        data = CommFunc.WriteDWORD(data, self.Stone2)
        data = CommFunc.WriteDWORD(data, self.Stone3)
        data = CommFunc.WriteDWORD(data, self.Stone4)
        data = CommFunc.WriteDWORD(data, self.Stone5)
        data = CommFunc.WriteDWORD(data, self.Stone6)
        data = CommFunc.WriteDWORD(data, self.Stone7)
        data = CommFunc.WriteDWORD(data, self.Stone8)
        data = CommFunc.WriteDWORD(data, self.Stone9)
        data = CommFunc.WriteBYTE(data, self.IsRenZhu)
        data = CommFunc.WriteDWORD(data, self.EquipDefenseValue)
        data = CommFunc.WriteDWORD(data, self.EquipMinAtkValue)
        data = CommFunc.WriteDWORD(data, self.EquipMaxAtkValue)
        data = CommFunc.WriteDWORD(data, self.UserDataLen)
        data = CommFunc.WriteString(data, self.UserDataLen, self.UserData)
        data = CommFunc.WriteBYTE(data, self.FitLV)
        data = CommFunc.WriteDWORD(data, self.Proficiency)
        data = CommFunc.WriteBYTE(data, self.IsSuite)
        data = CommFunc.WriteDWORD(data, self.BaseHP)
        data = CommFunc.WriteDWORD(data, self.BaseMagicDef)
        data = CommFunc.WriteBYTE(data, self.MaxAddSkillCnt)
        data = CommFunc.WriteDWORD(data, self.PetID)
        data = CommFunc.WriteDWORD(data, self.EquipMagicDefValue)
        data = CommFunc.WriteDWORD(data, self.EquipMinMagicAtkValue)
        data = CommFunc.WriteDWORD(data, self.EquipMaxMagicAtkValue)
        return data
    def OutputString(self):
        DumpString = '''
                                ItemTypeID:%d,
                                ItemPlaceType:%d,
                                ItemPlaceIndex:%d,
                                Count:%d,
                                ItemStarLV:%d,
                                IdentifyPar:%d,
                                CurDurg:%d,
                                MaxDurg:%d,
                                CanPlaceStoneCount:%d,
                                ItemProperty:%d,
                                SoulProperty:%d,
                                Maker:%d,
                                MakerName:%s,
                                Stone1:%d,
                                Stone2:%d,
                                Stone3:%d,
                                Stone4:%d,
                                Stone5:%d,
                                Stone6:%d,
                                Stone7:%d,
                                Stone8:%d,
                                Stone9:%d,
                                IsRenZhu:%d,
                                EquipDefenseValue:%d,
                                EquipMinAtkValue:%d,
                                EquipMaxAtkValue:%d,
                                UserDataLen:%d,
                                UserData:%s,
                                FitLV:%d,
                                Proficiency:%d,
                                IsSuite:%d,
                                BaseHP:%d,
                                BaseMagicDef:%d,
                                MaxAddSkillCnt:%d,
                                PetID:%d,
                                EquipMagicDefValue:%d,
                                EquipMinMagicAtkValue:%d,
                                EquipMaxMagicAtkValue:%d
                                '''\
                                %(
                                self.ItemTypeID,
                                self.ItemPlaceType,
                                self.ItemPlaceIndex,
                                self.Count,
                                self.ItemStarLV,
                                self.IdentifyPar,
                                self.CurDurg,
                                self.MaxDurg,
                                self.CanPlaceStoneCount,
                                self.ItemProperty,
                                self.SoulProperty,
                                self.Maker,
                                self.MakerName,
                                self.Stone1,
                                self.Stone2,
                                self.Stone3,
                                self.Stone4,
                                self.Stone5,
                                self.Stone6,
                                self.Stone7,
                                self.Stone8,
                                self.Stone9,
                                self.IsRenZhu,
                                self.EquipDefenseValue,
                                self.EquipMinAtkValue,
                                self.EquipMaxAtkValue,
                                self.UserDataLen,
                                self.UserData,
                                self.FitLV,
                                self.Proficiency,
                                self.IsSuite,
                                self.BaseHP,
                                self.BaseMagicDef,
                                self.MaxAddSkillCnt,
                                self.PetID,
                                self.EquipMagicDefValue,
                                self.EquipMinMagicAtkValue,
                                self.EquipMaxMagicAtkValue
                                )
        return DumpString
class  tagMGHighLadderChallenge(Structure):
    Head = tagHead()
    PlayerID = 0    #(DWORD PlayerID)//玩家ID
    PlayerName = ""    #(char PlayerName[33])
    PlayerLV = 0    #(WORD PlayerLV)
    FightPower = 0    #(DWORD FightPower)
    FightPropertyDataLen = 0    #(DWORD FightPropertyDataLen)
    FightPropertyData = ""    #(String FightPropertyData)//Python自定义数据
    EquipCount = 0    #(BYTE EquipCount)
    EquipList = list()    #(vector<tagHightLadderItemInfo> EquipList)//装备信息列表
    VSOrder = 0    #(WORD VSOrder)//要挑战的排位
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0x03
        self.Head.SubCmd = 0x02
        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.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
        self.PlayerLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.FightPropertyDataLen,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.FightPropertyData,_pos = CommFunc.ReadString(_lpData, _pos,self.FightPropertyDataLen)
        self.EquipCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.EquipCount):
            temEquipList = tagHightLadderItemInfo()
            _pos = temEquipList.ReadData(_lpData, _pos)
            self.EquipList.append(temEquipList)
        self.VSOrder,_pos = CommFunc.ReadWORD(_lpData, _pos)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0x03
        self.Head.SubCmd = 0x02
        self.PlayerID = 0
        self.PlayerName = ""
        self.PlayerLV = 0
        self.FightPower = 0
        self.FightPropertyDataLen = 0
        self.FightPropertyData = ""
        self.EquipCount = 0
        self.EquipList = list()
        self.VSOrder = 0
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 4
        length += 33
        length += 2
        length += 4
        length += 4
        length += len(self.FightPropertyData)
        length += 1
        for i in range(self.EquipCount):
            length += self.EquipList[i].GetLength()
        length += 2
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteDWORD(data, self.PlayerID)
        data = CommFunc.WriteString(data, 33, self.PlayerName)
        data = CommFunc.WriteWORD(data, self.PlayerLV)
        data = CommFunc.WriteDWORD(data, self.FightPower)
        data = CommFunc.WriteDWORD(data, self.FightPropertyDataLen)
        data = CommFunc.WriteString(data, self.FightPropertyDataLen, self.FightPropertyData)
        data = CommFunc.WriteBYTE(data, self.EquipCount)
        for i in range(self.EquipCount):
            data = CommFunc.WriteString(data, self.EquipList[i].GetLength(), self.EquipList[i].GetBuffer())
        data = CommFunc.WriteWORD(data, self.VSOrder)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                PlayerID:%d,
                                PlayerName:%s,
                                PlayerLV:%d,
                                FightPower:%d,
                                FightPropertyDataLen:%d,
                                FightPropertyData:%s,
                                EquipCount:%d,
                                EquipList:%s,
                                VSOrder:%d
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.PlayerID,
                                self.PlayerName,
                                self.PlayerLV,
                                self.FightPower,
                                self.FightPropertyDataLen,
                                self.FightPropertyData,
                                self.EquipCount,
                                "...",
                                self.VSOrder
                                )
        return DumpString
m_NAtagMGHighLadderChallenge=tagMGHighLadderChallenge()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMGHighLadderChallenge.Head.Cmd,m_NAtagMGHighLadderChallenge.Head.SubCmd))] = m_NAtagMGHighLadderChallenge
#------------------------------------------------------
#03 04 玩家领取补偿物品发放结果#tagMGGiveCompensationResult
class  tagMGGiveCompensationResult(Structure):