hxp
2019-03-07 0a61ceac61e017f86560ce4b226092a23ada4e31
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -113,8 +113,7 @@
                "ItemPlusMax":(
                        ("BYTE", "Type", 1),
                        ("BYTE", "ItemRank", 1),
                        ("BYTE", "ItemColor", 1),
                        ("BYTE", "Star", 1),
                        ("WORD", "LevelMax", 0),
                        ),
@@ -128,6 +127,35 @@
                        ("BYTE", "StarsNeed", 1),
                        ("list", "AttrType", 0),
                        ("list", "AttrValue", 0),
                        ),
                "EquipLegendAttrCount":(
                        ("BYTE", "ItemType", 1),
                        ("BYTE", "ItemColor", 1),
                        ("BYTE", "IsSuit", 1),
                        ("BYTE", "FixedLegendAttrCount", 0),
                        ("BYTE", "GoodLegendAttrCount", 0),
                        ("BYTE", "OtherLegendAttrCount", 0),
                        ),
                "EquipLegendAttrType":(
                        ("BYTE", "ItemType", 1),
                        ("list", "FixedLegendAttrList", 0),
                        ("list", "GoodLegendAttrList", 0),
                        ("list", "CommLegendAttrList", 0),
                        ),
                "EquipLegendAttrLib":(
                        ("BYTE", "LegendAttrID", 1),
                        ("dict", "LegendAttrLib", 0),
                        ),
                "EquipLegendAttrValue":(
                        ("BYTE", "ItemType", 1),
                        ("BYTE", "ItemClassLV", 1),
                        ("BYTE", "ItemColor", 1),
                        ("BYTE", "IsSuit", 1),
                        ("dict", "LVLegendAttrLibNumInfo", 0),
                        ),
                "Dogz":(
@@ -316,28 +344,12 @@
                        ),
                "EquipSuitAttr":(
                        ("BYTE", "GroupType", 1),
                        ("BYTE", "SuiteType", 1),
                        ("WORD", "SuiteLV", 1),
                        ("BYTE", "Job", 1),
                        ("BYTE", "Count1", 0),
                        ("list", "AttrType1", 0),
                        ("list", "AttrValue1", 0),
                        ("BYTE", "Count2", 0),
                        ("list", "AttrType2", 0),
                        ("list", "AttrValue2", 0),
                        ("BYTE", "Count3", 0),
                        ("list", "AttrType3", 0),
                        ("list", "AttrValue3", 0),
                        ),
                "EquipSuitCompound":(
                        ("BYTE", "SuiteType", 1),
                        ("BYTE", "EquipPlace", 1),
                        ("WORD", "SuiteLV", 1),
                        ("BYTE", "Job", 1),
                        ("list", "CostItemID", 0),
                        ("list", "CostItemCnt", 0),
                        ("WORD", "SuiteID", 1),
                        ("BYTE", "SuiteCnt", 0),
                        ("BYTE", "Star", 0),
                        ("dict", "AttrInfo", 0),
                        ("DWORD", "SkillID", 0),
                        ("BYTE", "IsNotify", 0),
                        ),
                "WingRefineAttr":(
@@ -595,16 +607,6 @@
                        ("list", "SuccessList", 0),
                        ),
                "TreasureSkill":(
                        ("BYTE", "SkillUpType", 1),
                        ("BYTE", "SkillLV", 1),
                        ("DWORD", "NeedPoint", 0),
                        ("WORD", "InitRate", 0),
                        ("list", "NeedItemID", 0),
                        ("list", "NeedItemCnt", 0),
                        ("list", "MaxRate", 0),
                        ),
                "ContineSignAward":(
                        ("BYTE", "ContineDay", 1),
                        ("list", "ItemID", 0),
@@ -637,6 +639,10 @@
                        ("list", "LegendAttrValue", 0),
                        ("list", "OutOfPrintAttr", 0),
                        ("list", "OutOfPrintAttrValue", 0),
                        ),
                "AuctionItem":(
                        ("DWORD", "AuctionItemID", 1),
                        ),
                "VipPrivilege":(
@@ -691,7 +697,7 @@
                        ("WORD", "AdvanceMinutes", 0),
                        ("WORD", "LVLimit", 0),
                        ("BYTE", "IsDayReset", 0),
                        ("list", "ShopTypeList", 0),
                        ("dict", "ShopTypeList", 0),
                        ("char", "MailKey", 0),
                        ("list", "MailItemPrize", 0),
                        ),
@@ -982,7 +988,7 @@
                        ("WORD", "AdvanceMinutes", 0),
                        ("WORD", "LVLimit", 0),
                        ("BYTE", "IsDayReset", 0),
                        ("list", "GiftbagTypeList", 0),
                        ("dict", "GiftbagTypeList", 0),
                        ("char", "MailKey", 0),
                        ("list", "MailItemPrize", 0),
                        ),
@@ -1016,7 +1022,7 @@
                        ("DWORD", "TemplateID", 1),
                        ("DWORD", "NeedCostGold", 0),
                        ("BYTE", "AwardIndex", 0),
                        ("list", "AwardItemList", 0),
                        ("dict", "AwardItemList", 0),
                        ("char", "NotifyKey", 0),
                        ),
@@ -1034,7 +1040,7 @@
                        ("BYTE", "ID", 1),
                        ("DWORD", "TotalTimes", 0),
                        ("WORD", "SingleTimes", 0),
                        ("list", "Reward", 0),
                        ("dict", "Reward", 0),
                        ),
                "ActRealmPoint":(
@@ -1169,13 +1175,31 @@
                "CrossRealmPKDan":(
                        ("BYTE", "DanLV", 1),
                        ("WORD", "LVUpScore", 0),
                        ),
                "CrossRealmPKDanAward":(
                        ("char", "CrossZoneName", 1),
                        ("BYTE", "SeasonID", 1),
                        ("BYTE", "DanLV", 1),
                        ("list", "DanLVAwardList", 0),
                        ("list", "SeasonDanLVAwardList", 0),
                        ),
                "CrossPenglaiZone":(
                        ("BYTE", "ZoneID", 0),
                "CrossRealmPKOrderAward":(
                        ("char", "CrossZoneName", 1),
                        ("BYTE", "SeasonID", 1),
                        ("dict", "OrderAwardInfo", 0),
                        ),
                "CrossZoneComm":(
                        ("char", "CrossZoneName", 1),
                        ("BYTE", "ZoneID", 1),
                        ("list", "ServerGroupIDList", 0),
                        ),
                "CrossPenglaiZoneMap":(
                        ("BYTE", "ZoneID", 0),
                        ("DWORD", "MapID", 1),
                        ("DWORD", "DataMapID", 1),
                        ("BYTE", "CopyMapID", 1),
@@ -1264,7 +1288,7 @@
                        ("BYTE", "ActionType", 0),
                        ("DWORD", "TotalTimes", 0),
                        ("WORD", "SingleTimes", 0),
                        ("list", "Reward", 0),
                        ("char", "Reward", 0),
                        ),
                "ZhuXianSuitAttr":(
@@ -1328,6 +1352,64 @@
                        ("DWORD", "Index", 1),
                        ("DWORD", "NeedPoint", 0),
                        ("dict", "Award", 0),
                        ),
                "ZhuXianStoneAttr":(
                        ("BYTE", "SuitType", 1),
                        ("BYTE", "ShareSoneLV", 1),
                        ("list", "AttrIDList", 0),
                        ("list", "AttrValueList", 0),
                        ),
                "ActLuckyTreasure":(
                        ("DWORD", "CfgID", 1),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("BYTE", "ResetType", 0),
                        ("WORD", "LVLimit", 0),
                        ("BYTE", "TemplateID", 0),
                        ("WORD", "LuckyPoint", 0),
                        ),
                "LuckyTreasureTemplate":(
                        ("BYTE", "TemplateID", 1),
                        ("list", "WorldLVLimit", 0),
                        ("DWORD", "ItemID", 0),
                        ("WORD", "ItemCnt", 0),
                        ("BYTE", "IsBind", 0),
                        ("DWORD", "Weight", 0),
                        ),
                "MysteryShop":(
                        ("list", "LVRange", 0),
                        ("DWORD", "GoodsID", 0),
                        ),
                "EquipPlaceIndexMap":(
                        ("DWORD", "GridIndex", 0),
                        ("DWORD", "ClassLV", 1),
                        ("DWORD", "EquipPlace", 1),
                        ),
                "EquipStarUp":(
                        ("BYTE", "ClassLV", 1),
                        ("BYTE", "EquipPlace", 1),
                        ("BYTE", "Star", 1),
                        ("list", "CostEquipPlace", 0),
                        ("list", "CostEquipColor", 0),
                        ("BYTE", "CostEquipCnt", 0),
                        ("BYTE", "SuitTotalRate", 0),
                        ("dict", "CostItemDict", 0),
                        ("dict", "StarAttrInfo", 0),
                        ("dict", "BaseAttrInfo", 0),
                        ),
                "EquipPlusEvolve":(
                        ("BYTE", "EquipPlace", 1),
                        ("BYTE", "EvolveLV", 1),
                        ("WORD", "NeedPlusLV", 0),
                        ("dict", "CostItem", 0),
                        ("dict", "Attr", 0),
                        ),
                }
@@ -1502,14 +1584,12 @@
    
    def __init__(self):
        self.Type = 0
        self.ItemRank = 0
        self.ItemColor = 0
        self.Star = 0
        self.LevelMax = 0
        return
        
    def GetType(self): return self.Type # 按装备位对应类型查找
    def GetItemRank(self): return self.ItemRank #  装备阶数
    def GetItemColor(self): return self.ItemColor # 装备颜色 如橙装
    def GetStar(self): return self.Star #  装备星数
    def GetLevelMax(self): return self.LevelMax # 强化等级上限
# 装备全身强化属性
@@ -1537,6 +1617,68 @@
    def GetStarsNeed(self): return self.StarsNeed # 全身星数
    def GetAttrType(self): return self.AttrType # 属性类型
    def GetAttrValue(self): return self.AttrValue # 属性值
# 装备传奇属性条数表
class IPY_EquipLegendAttrCount():
    def __init__(self):
        self.ItemType = 0
        self.ItemColor = 0
        self.IsSuit = 0
        self.FixedLegendAttrCount = 0
        self.GoodLegendAttrCount = 0
        self.OtherLegendAttrCount = 0
        return
    def GetItemType(self): return self.ItemType # 物品类型
    def GetItemColor(self): return self.ItemColor # 物品颜色
    def GetIsSuit(self): return self.IsSuit # 是否套装
    def GetFixedLegendAttrCount(self): return self.FixedLegendAttrCount # 固定传奇属性条数
    def GetGoodLegendAttrCount(self): return self.GoodLegendAttrCount # 追求传奇属性保底条数
    def GetOtherLegendAttrCount(self): return self.OtherLegendAttrCount # 其他随机传奇属性条数
# 装备传奇属性类型表
class IPY_EquipLegendAttrType():
    def __init__(self):
        self.ItemType = 0
        self.FixedLegendAttrList = []
        self.GoodLegendAttrList = []
        self.CommLegendAttrList = []
        return
    def GetItemType(self): return self.ItemType # 物品类型
    def GetFixedLegendAttrList(self): return self.FixedLegendAttrList # 固定传奇属性列表
    def GetGoodLegendAttrList(self): return self.GoodLegendAttrList # 追求传奇属性列表
    def GetCommLegendAttrList(self): return self.CommLegendAttrList # 一般传奇属性列表
# 装备传奇属性值库表
class IPY_EquipLegendAttrLib():
    def __init__(self):
        self.LegendAttrID = 0
        self.LegendAttrLib = {}
        return
    def GetLegendAttrID(self): return self.LegendAttrID # 传奇属性ID
    def GetLegendAttrLib(self): return self.LegendAttrLib # 属性库信息 {库编号:[随机数值, ...], ...}
# 装备传奇属性等级数值表
class IPY_EquipLegendAttrValue():
    def __init__(self):
        self.ItemType = 0
        self.ItemClassLV = 0
        self.ItemColor = 0
        self.IsSuit = 0
        self.LVLegendAttrLibNumInfo = {}
        return
    def GetItemType(self): return self.ItemType # 物品类型
    def GetItemClassLV(self): return self.ItemClassLV # 物品阶级
    def GetItemColor(self): return self.ItemColor # 物品颜色
    def GetIsSuit(self): return self.IsSuit # 是否套装
    def GetLVLegendAttrLibNumInfo(self): return self.LVLegendAttrLibNumInfo # 属性ID等级段对应数值库编号 {属性ID:{等级:库编号, ...}}
# 神兽表
class IPY_Dogz():
@@ -1927,53 +2069,20 @@
class IPY_EquipSuitAttr():
    
    def __init__(self):
        self.GroupType = 0
        self.SuiteType = 0
        self.SuiteLV = 0
        self.Job = 0
        self.Count1 = 0
        self.AttrType1 = []
        self.AttrValue1 = []
        self.Count2 = 0
        self.AttrType2 = []
        self.AttrValue2 = []
        self.Count3 = 0
        self.AttrType3 = []
        self.AttrValue3 = []
        self.SuiteID = 0
        self.SuiteCnt = 0
        self.Star = 0
        self.AttrInfo = {}
        self.SkillID = 0
        self.IsNotify = 0
        return
        
    def GetGroupType(self): return self.GroupType # 套装组合类型
    def GetSuiteType(self): return self.SuiteType # 套装类型
    def GetSuiteLV(self): return self.SuiteLV # 套装等级
    def GetJob(self): return self.Job # ְҵ
    def GetCount1(self): return self.Count1 # 阶段1所需数量
    def GetAttrType1(self): return self.AttrType1 # 阶段1属性类型
    def GetAttrValue1(self): return self.AttrValue1 # 阶段1属性值
    def GetCount2(self): return self.Count2 # 阶段2所需数量
    def GetAttrType2(self): return self.AttrType2 # 阶段2属性类型
    def GetAttrValue2(self): return self.AttrValue2 # 阶段2属性值
    def GetCount3(self): return self.Count3 # 阶段2所需数量
    def GetAttrType3(self): return self.AttrType3 # 阶段2属性类型
    def GetAttrValue3(self): return self.AttrValue3 # 阶段2属性值
# 套装合成表
class IPY_EquipSuitCompound():
    def __init__(self):
        self.SuiteType = 0
        self.EquipPlace = 0
        self.SuiteLV = 0
        self.Job = 0
        self.CostItemID = []
        self.CostItemCnt = []
        return
    def GetSuiteType(self): return self.SuiteType # 套装类型
    def GetEquipPlace(self): return self.EquipPlace # 装备部位
    def GetSuiteLV(self): return self.SuiteLV # 套装等级
    def GetJob(self): return self.Job # ְҵ
    def GetCostItemID(self): return self.CostItemID # 材料ID
    def GetCostItemCnt(self): return self.CostItemCnt # 材料数量
    def GetSuiteID(self): return self.SuiteID # 套装ID
    def GetSuiteCnt(self): return self.SuiteCnt # 套装件数
    def GetStar(self): return self.Star # 星数
    def GetAttrInfo(self): return self.AttrInfo # 属性
    def GetSkillID(self): return self.SkillID # 技能ID
    def GetIsNotify(self): return self.IsNotify # 是否广播
# 羽翼精炼属性表
class IPY_WingRefineAttr():
@@ -2501,27 +2610,6 @@
    def GetItemAward(self): return self.ItemAward # 物品奖励
    def GetSuccessList(self): return self.SuccessList # 需要完成成就
# 法宝技能升级表
class IPY_TreasureSkill():
    def __init__(self):
        self.SkillUpType = 0
        self.SkillLV = 0
        self.NeedPoint = 0
        self.InitRate = 0
        self.NeedItemID = []
        self.NeedItemCnt = []
        self.MaxRate = []
        return
    def GetSkillUpType(self): return self.SkillUpType # 技能升级类型
    def GetSkillLV(self): return self.SkillLV # 技能等级
    def GetNeedPoint(self): return self.NeedPoint # 升到当前级消耗天石精华
    def GetInitRate(self): return self.InitRate # 初始概率
    def GetNeedItemID(self): return self.NeedItemID # 升到当前级溶彩石ID
    def GetNeedItemCnt(self): return self.NeedItemCnt # 升到当前级溶彩石数量
    def GetMaxRate(self): return self.MaxRate # 升到当前级概率
# 连续签到奖励表
class IPY_ContineSignAward():
    
@@ -2593,6 +2681,15 @@
    def GetLegendAttrValue(self): return self.LegendAttrValue # 传奇属性值
    def GetOutOfPrintAttr(self): return self.OutOfPrintAttr # 绝版属性ID
    def GetOutOfPrintAttrValue(self): return self.OutOfPrintAttrValue # 绝版属性最大值
# 拍卖物品表
class IPY_AuctionItem():
    def __init__(self):
        self.AuctionItemID = 0
        return
    def GetAuctionItemID(self): return self.AuctionItemID
# VIP特权表
class IPY_VipPrivilege():
@@ -2694,7 +2791,7 @@
        self.AdvanceMinutes = 0
        self.LVLimit = 0
        self.IsDayReset = 0
        self.ShopTypeList = []
        self.ShopTypeList = {}
        self.MailKey = ""
        self.MailItemPrize = []
        return
@@ -3310,7 +3407,7 @@
        self.AdvanceMinutes = 0
        self.LVLimit = 0
        self.IsDayReset = 0
        self.GiftbagTypeList = []
        self.GiftbagTypeList = {}
        self.MailKey = ""
        self.MailItemPrize = []
        return
@@ -3387,14 +3484,14 @@
        self.TemplateID = 0
        self.NeedCostGold = 0
        self.AwardIndex = 0
        self.AwardItemList = []
        self.AwardItemList = {}
        self.NotifyKey = ""
        return
        
    def GetTemplateID(self): return self.TemplateID # 模板ID
    def GetNeedCostGold(self): return self.NeedCostGold # 需要消费仙玉数
    def GetAwardIndex(self): return self.AwardIndex # 返利奖励索引0~31,同个模板中不重复
    def GetAwardItemList(self): return self.AwardItemList # 返利物品信息列表 [(物品ID,个数,是否绑定),...]
    def GetAwardItemList(self): return self.AwardItemList # 返利物品信息列表 {世界等级范围:[({职业:物品ID,..},个数,是否绑定), ...]}
    def GetNotifyKey(self): return self.NotifyKey # 全服广播key,默认两个参数(玩家名, 档位额度)
# BOSS复活活动时间表
@@ -3424,7 +3521,7 @@
        self.ID = 0
        self.TotalTimes = 0
        self.SingleTimes = 0
        self.Reward = []
        self.Reward = {}
        return
        
    def GetTemplateID(self): return self.TemplateID # 模板ID
@@ -3714,20 +3811,60 @@
    
    def __init__(self):
        self.DanLV = 0
        self.LVUpScore = 0
        return
    def GetDanLV(self): return self.DanLV # 段位等级
    def GetLVUpScore(self): return self.LVUpScore # 升段位所需积分
# 跨服竞技场段位奖励表
class IPY_CrossRealmPKDanAward():
    def __init__(self):
        self.CrossZoneName = ""
        self.SeasonID = 0
        self.DanLV = 0
        self.DanLVAwardList = []
        self.SeasonDanLVAwardList = []
        return
        
    def GetCrossZoneName(self): return self.CrossZoneName # 跨服分区名
    def GetSeasonID(self): return self.SeasonID # 赛季ID
    def GetDanLV(self): return self.DanLV # 段位等级
    def GetDanLVAwardList(self): return self.DanLVAwardList # 段位达标奖励物品列表
    def GetSeasonDanLVAwardList(self): return self.SeasonDanLVAwardList # 赛季段位奖励物品列表
    def GetDanLVAwardList(self): return self.DanLVAwardList # 段位达标奖励物品列表 [[奖励物品ID,个数,是否绑定], ...]
    def GetSeasonDanLVAwardList(self): return self.SeasonDanLVAwardList # 赛季段位奖励物品列表 [[奖励物品ID,个数,是否绑定], ...]
# 跨服Boss蓬莱仙境分区表
class IPY_CrossPenglaiZone():
# 跨服竞技场排名奖励表
class IPY_CrossRealmPKOrderAward():
    def __init__(self):
        self.CrossZoneName = ""
        self.SeasonID = 0
        self.OrderAwardInfo = {}
        return
    def GetCrossZoneName(self): return self.CrossZoneName # 跨服分区名
    def GetSeasonID(self): return self.SeasonID # 赛季ID
    def GetOrderAwardInfo(self): return self.OrderAwardInfo # 赛季排名奖励信息 {"排名":[[奖励物品ID,个数,是否绑定], ...], ...}
# 跨服分区表通用
class IPY_CrossZoneComm():
    def __init__(self):
        self.CrossZoneName = ""
        self.ZoneID = 0
        self.ServerGroupIDList = []
        return
    def GetCrossZoneName(self): return self.CrossZoneName # 跨服分区名
    def GetZoneID(self): return self.ZoneID # 赛区ID
    def GetServerGroupIDList(self): return self.ServerGroupIDList # 赛区服务器组ID列表
# 跨服Boss蓬莱仙境分区地图表
class IPY_CrossPenglaiZoneMap():
    
    def __init__(self):
        self.ZoneID = 0
        self.ServerGroupIDList = []
        self.MapID = 0
        self.DataMapID = 0
        self.CopyMapID = 0
@@ -3736,7 +3873,6 @@
        return
        
    def GetZoneID(self): return self.ZoneID # 分区ID
    def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器组ID列表
    def GetMapID(self): return self.MapID # 场景地图ID
    def GetDataMapID(self): return self.DataMapID # 数据地图ID
    def GetCopyMapID(self): return self.CopyMapID # 虚拟线路ID
@@ -3912,7 +4048,7 @@
        self.ActionType = 0
        self.TotalTimes = 0
        self.SingleTimes = 0
        self.Reward = []
        self.Reward = ""
        return
        
    def GetTemplateID(self): return self.TemplateID # 模板ID
@@ -4054,6 +4190,129 @@
    def GetIndex(self): return self.Index # 索引
    def GetNeedPoint(self): return self.NeedPoint # 需要点数
    def GetAward(self): return self.Award # 奖励 {"职业":[[物品ID,个数,是否绑定],...], ...}
# 诛仙宝石共鸣属性表
class IPY_ZhuXianStoneAttr():
    def __init__(self):
        self.SuitType = 0
        self.ShareSoneLV = 0
        self.AttrIDList = []
        self.AttrValueList = []
        return
    def GetSuitType(self): return self.SuitType # 套装类型
    def GetShareSoneLV(self): return self.ShareSoneLV # 共鸣等级
    def GetAttrIDList(self): return self.AttrIDList # 属性ID列表
    def GetAttrValueList(self): return self.AttrValueList # 属性值列表
# 幸运鉴宝活动时间表
class IPY_ActLuckyTreasure():
    def __init__(self):
        self.CfgID = 0
        self.StartDate = ""
        self.EndDate = ""
        self.ResetType = 0
        self.LVLimit = 0
        self.TemplateID = 0
        self.LuckyPoint = 0
        return
    def GetCfgID(self): return self.CfgID # 配置ID
    def GetStartDate(self): return self.StartDate # 开启日期
    def GetEndDate(self): return self.EndDate # 结束日期
    def GetResetType(self): return self.ResetType # 重置类型,0-0点重置;1-5点重置
    def GetLVLimit(self): return self.LVLimit # 限制等级
    def GetTemplateID(self): return self.TemplateID # 模板编号
    def GetLuckyPoint(self): return self.LuckyPoint # 总幸运值
# 幸运鉴宝库模板表
class IPY_LuckyTreasureTemplate():
    def __init__(self):
        self.TemplateID = 0
        self.WorldLVLimit = []
        self.ItemID = 0
        self.ItemCnt = 0
        self.IsBind = 0
        self.Weight = 0
        return
    def GetTemplateID(self): return self.TemplateID # 模板ID
    def GetWorldLVLimit(self): return self.WorldLVLimit # 世界等级范围
    def GetItemID(self): return self.ItemID # 物品ID
    def GetItemCnt(self): return self.ItemCnt # 物品数量
    def GetIsBind(self): return self.IsBind # 是否绑定
    def GetWeight(self): return self.Weight # 权重
# 神秘商店表
class IPY_MysteryShop():
    def __init__(self):
        self.LVRange = []
        self.GoodsID = 0
        return
    def GetLVRange(self): return self.LVRange # 等级范围
    def GetGoodsID(self): return self.GoodsID # 商城表ID
# 装备位背包索引映射表
class IPY_EquipPlaceIndexMap():
    def __init__(self):
        self.GridIndex = 0
        self.ClassLV = 0
        self.EquipPlace = 0
        return
    def GetGridIndex(self): return self.GridIndex # 背包格子索引
    def GetClassLV(self): return self.ClassLV # 阶级(物品表LV字段)
    def GetEquipPlace(self): return self.EquipPlace # 装备位(物品表EquipPlace字段)
# 装备升星表
class IPY_EquipStarUp():
    def __init__(self):
        self.ClassLV = 0
        self.EquipPlace = 0
        self.Star = 0
        self.CostEquipPlace = []
        self.CostEquipColor = []
        self.CostEquipCnt = 0
        self.SuitTotalRate = 0
        self.CostItemDict = {}
        self.StarAttrInfo = {}
        self.BaseAttrInfo = {}
        return
    def GetClassLV(self): return self.ClassLV # 阶级
    def GetEquipPlace(self): return self.EquipPlace # 装备位
    def GetStar(self): return self.Star # 星数
    def GetCostEquipPlace(self): return self.CostEquipPlace # 可用装备部位
    def GetCostEquipColor(self): return self.CostEquipColor # 可用装备品质
    def GetCostEquipCnt(self): return self.CostEquipCnt # 装备数量
    def GetSuitTotalRate(self): return self.SuitTotalRate # 全套装加成概率(非套50%)
    def GetCostItemDict(self): return self.CostItemDict # 特殊材料
    def GetStarAttrInfo(self): return self.StarAttrInfo # 星级属性
    def GetBaseAttrInfo(self): return self.BaseAttrInfo # 基础属性增加
# 装备强化进化表
class IPY_EquipPlusEvolve():
    def __init__(self):
        self.EquipPlace = 0
        self.EvolveLV = 0
        self.NeedPlusLV = 0
        self.CostItem = {}
        self.Attr = {}
        return
    def GetEquipPlace(self): return self.EquipPlace # 装备位
    def GetEvolveLV(self): return self.EvolveLV # 进化等级
    def GetNeedPlusLV(self): return self.NeedPlusLV # 需要强化等级
    def GetCostItem(self): return self.CostItem # 消耗材料
    def GetAttr(self): return self.Attr # 属性
def Log(msg, playerID=0, par=0):
@@ -4099,6 +4358,14 @@
        self.ipyItemPlusSumAttrLen = len(self.ipyItemPlusSumAttrCache)
        self.ipyRoleEquipStarsCache = self.__LoadFileData("RoleEquipStars", IPY_RoleEquipStars)
        self.ipyRoleEquipStarsLen = len(self.ipyRoleEquipStarsCache)
        self.ipyEquipLegendAttrCountCache = self.__LoadFileData("EquipLegendAttrCount", IPY_EquipLegendAttrCount)
        self.ipyEquipLegendAttrCountLen = len(self.ipyEquipLegendAttrCountCache)
        self.ipyEquipLegendAttrTypeCache = self.__LoadFileData("EquipLegendAttrType", IPY_EquipLegendAttrType)
        self.ipyEquipLegendAttrTypeLen = len(self.ipyEquipLegendAttrTypeCache)
        self.ipyEquipLegendAttrLibCache = self.__LoadFileData("EquipLegendAttrLib", IPY_EquipLegendAttrLib)
        self.ipyEquipLegendAttrLibLen = len(self.ipyEquipLegendAttrLibCache)
        self.ipyEquipLegendAttrValueCache = self.__LoadFileData("EquipLegendAttrValue", IPY_EquipLegendAttrValue)
        self.ipyEquipLegendAttrValueLen = len(self.ipyEquipLegendAttrValueCache)
        self.ipyDogzCache = self.__LoadFileData("Dogz", IPY_Dogz)
        self.ipyDogzLen = len(self.ipyDogzCache)
        self.ipyDogzEquipPlusCache = self.__LoadFileData("DogzEquipPlus", IPY_DogzEquipPlus)
@@ -4131,8 +4398,6 @@
        self.ipyNPCStrengthenLen = len(self.ipyNPCStrengthenCache)
        self.ipyEquipSuitAttrCache = self.__LoadFileData("EquipSuitAttr", IPY_EquipSuitAttr)
        self.ipyEquipSuitAttrLen = len(self.ipyEquipSuitAttrCache)
        self.ipyEquipSuitCompoundCache = self.__LoadFileData("EquipSuitCompound", IPY_EquipSuitCompound)
        self.ipyEquipSuitCompoundLen = len(self.ipyEquipSuitCompoundCache)
        self.ipyWingRefineAttrCache = self.__LoadFileData("WingRefineAttr", IPY_WingRefineAttr)
        self.ipyWingRefineAttrLen = len(self.ipyWingRefineAttrCache)
        self.ipyWingRefineExpCache = self.__LoadFileData("WingRefineExp", IPY_WingRefineExp)
@@ -4165,8 +4430,6 @@
        self.ipyTreasureUpLen = len(self.ipyTreasureUpCache)
        self.ipyTreasurePrivilegeCache = self.__LoadFileData("TreasurePrivilege", IPY_TreasurePrivilege)
        self.ipyTreasurePrivilegeLen = len(self.ipyTreasurePrivilegeCache)
        self.ipyTreasureSkillCache = self.__LoadFileData("TreasureSkill", IPY_TreasureSkill)
        self.ipyTreasureSkillLen = len(self.ipyTreasureSkillCache)
        self.ipyContineSignAwardCache = self.__LoadFileData("ContineSignAward", IPY_ContineSignAward)
        self.ipyContineSignAwardLen = len(self.ipyContineSignAwardCache)
        self.ipySignAwardCache = self.__LoadFileData("SignAward", IPY_SignAward)
@@ -4175,6 +4438,8 @@
        self.ipyVIPAwardLen = len(self.ipyVIPAwardCache)
        self.ipyAppointItemCache = self.__LoadFileData("AppointItem", IPY_AppointItem)
        self.ipyAppointItemLen = len(self.ipyAppointItemCache)
        self.ipyAuctionItemCache = self.__LoadFileData("AuctionItem", IPY_AuctionItem)
        self.ipyAuctionItemLen = len(self.ipyAuctionItemCache)
        self.ipyVipPrivilegeCache = self.__LoadFileData("VipPrivilege", IPY_VipPrivilege)
        self.ipyVipPrivilegeLen = len(self.ipyVipPrivilegeCache)
        self.ipyStoreCache = self.__LoadFileData("Store", IPY_Store)
@@ -4295,8 +4560,14 @@
        self.ipyGodWeaponEffectLen = len(self.ipyGodWeaponEffectCache)
        self.ipyCrossRealmPKDanCache = self.__LoadFileData("CrossRealmPKDan", IPY_CrossRealmPKDan)
        self.ipyCrossRealmPKDanLen = len(self.ipyCrossRealmPKDanCache)
        self.ipyCrossPenglaiZoneCache = self.__LoadFileData("CrossPenglaiZone", IPY_CrossPenglaiZone)
        self.ipyCrossPenglaiZoneLen = len(self.ipyCrossPenglaiZoneCache)
        self.ipyCrossRealmPKDanAwardCache = self.__LoadFileData("CrossRealmPKDanAward", IPY_CrossRealmPKDanAward)
        self.ipyCrossRealmPKDanAwardLen = len(self.ipyCrossRealmPKDanAwardCache)
        self.ipyCrossRealmPKOrderAwardCache = self.__LoadFileData("CrossRealmPKOrderAward", IPY_CrossRealmPKOrderAward)
        self.ipyCrossRealmPKOrderAwardLen = len(self.ipyCrossRealmPKOrderAwardCache)
        self.ipyCrossZoneCommCache = self.__LoadFileData("CrossZoneComm", IPY_CrossZoneComm)
        self.ipyCrossZoneCommLen = len(self.ipyCrossZoneCommCache)
        self.ipyCrossPenglaiZoneMapCache = self.__LoadFileData("CrossPenglaiZoneMap", IPY_CrossPenglaiZoneMap)
        self.ipyCrossPenglaiZoneMapLen = len(self.ipyCrossPenglaiZoneMapCache)
        self.ipyGatherSoulCache = self.__LoadFileData("GatherSoul", IPY_GatherSoul)
        self.ipyGatherSoulLen = len(self.ipyGatherSoulCache)
        self.ipyGatherSoulCompoundCache = self.__LoadFileData("GatherSoulCompound", IPY_GatherSoulCompound)
@@ -4333,6 +4604,20 @@
        self.ipyNewAllPeoplePartyLen = len(self.ipyNewAllPeoplePartyCache)
        self.ipyNewAllPeoplePartyAwardCache = self.__LoadFileData("NewAllPeoplePartyAward", IPY_NewAllPeoplePartyAward)
        self.ipyNewAllPeoplePartyAwardLen = len(self.ipyNewAllPeoplePartyAwardCache)
        self.ipyZhuXianStoneAttrCache = self.__LoadFileData("ZhuXianStoneAttr", IPY_ZhuXianStoneAttr)
        self.ipyZhuXianStoneAttrLen = len(self.ipyZhuXianStoneAttrCache)
        self.ipyActLuckyTreasureCache = self.__LoadFileData("ActLuckyTreasure", IPY_ActLuckyTreasure)
        self.ipyActLuckyTreasureLen = len(self.ipyActLuckyTreasureCache)
        self.ipyLuckyTreasureTemplateCache = self.__LoadFileData("LuckyTreasureTemplate", IPY_LuckyTreasureTemplate)
        self.ipyLuckyTreasureTemplateLen = len(self.ipyLuckyTreasureTemplateCache)
        self.ipyMysteryShopCache = self.__LoadFileData("MysteryShop", IPY_MysteryShop)
        self.ipyMysteryShopLen = len(self.ipyMysteryShopCache)
        self.ipyEquipPlaceIndexMapCache = self.__LoadFileData("EquipPlaceIndexMap", IPY_EquipPlaceIndexMap)
        self.ipyEquipPlaceIndexMapLen = len(self.ipyEquipPlaceIndexMapCache)
        self.ipyEquipStarUpCache = self.__LoadFileData("EquipStarUp", IPY_EquipStarUp)
        self.ipyEquipStarUpLen = len(self.ipyEquipStarUpCache)
        self.ipyEquipPlusEvolveCache = self.__LoadFileData("EquipPlusEvolve", IPY_EquipPlusEvolve)
        self.ipyEquipPlusEvolveLen = len(self.ipyEquipPlusEvolveCache)
        Log("IPY_FuncConfig count=%s" % len(self.ipyFuncConfigDict))
        Log("IPY_DataMgr InitOK!")
        return
@@ -4519,6 +4804,14 @@
    def GetItemPlusSumAttrByIndex(self, index): return self.ipyItemPlusSumAttrCache[index]
    def GetRoleEquipStarsCount(self): return self.ipyRoleEquipStarsLen
    def GetRoleEquipStarsByIndex(self, index): return self.ipyRoleEquipStarsCache[index]
    def GetEquipLegendAttrCountCount(self): return self.ipyEquipLegendAttrCountLen
    def GetEquipLegendAttrCountByIndex(self, index): return self.ipyEquipLegendAttrCountCache[index]
    def GetEquipLegendAttrTypeCount(self): return self.ipyEquipLegendAttrTypeLen
    def GetEquipLegendAttrTypeByIndex(self, index): return self.ipyEquipLegendAttrTypeCache[index]
    def GetEquipLegendAttrLibCount(self): return self.ipyEquipLegendAttrLibLen
    def GetEquipLegendAttrLibByIndex(self, index): return self.ipyEquipLegendAttrLibCache[index]
    def GetEquipLegendAttrValueCount(self): return self.ipyEquipLegendAttrValueLen
    def GetEquipLegendAttrValueByIndex(self, index): return self.ipyEquipLegendAttrValueCache[index]
    def GetDogzCount(self): return self.ipyDogzLen
    def GetDogzByIndex(self, index): return self.ipyDogzCache[index]
    def GetDogzEquipPlusCount(self): return self.ipyDogzEquipPlusLen
@@ -4551,8 +4844,6 @@
    def GetNPCStrengthenByIndex(self, index): return self.ipyNPCStrengthenCache[index]
    def GetEquipSuitAttrCount(self): return self.ipyEquipSuitAttrLen
    def GetEquipSuitAttrByIndex(self, index): return self.ipyEquipSuitAttrCache[index]
    def GetEquipSuitCompoundCount(self): return self.ipyEquipSuitCompoundLen
    def GetEquipSuitCompoundByIndex(self, index): return self.ipyEquipSuitCompoundCache[index]
    def GetWingRefineAttrCount(self): return self.ipyWingRefineAttrLen
    def GetWingRefineAttrByIndex(self, index): return self.ipyWingRefineAttrCache[index]
    def GetWingRefineExpCount(self): return self.ipyWingRefineExpLen
@@ -4585,8 +4876,6 @@
    def GetTreasureUpByIndex(self, index): return self.ipyTreasureUpCache[index]
    def GetTreasurePrivilegeCount(self): return self.ipyTreasurePrivilegeLen
    def GetTreasurePrivilegeByIndex(self, index): return self.ipyTreasurePrivilegeCache[index]
    def GetTreasureSkillCount(self): return self.ipyTreasureSkillLen
    def GetTreasureSkillByIndex(self, index): return self.ipyTreasureSkillCache[index]
    def GetContineSignAwardCount(self): return self.ipyContineSignAwardLen
    def GetContineSignAwardByIndex(self, index): return self.ipyContineSignAwardCache[index]
    def GetSignAwardCount(self): return self.ipySignAwardLen
@@ -4595,6 +4884,8 @@
    def GetVIPAwardByIndex(self, index): return self.ipyVIPAwardCache[index]
    def GetAppointItemCount(self): return self.ipyAppointItemLen
    def GetAppointItemByIndex(self, index): return self.ipyAppointItemCache[index]
    def GetAuctionItemCount(self): return self.ipyAuctionItemLen
    def GetAuctionItemByIndex(self, index): return self.ipyAuctionItemCache[index]
    def GetVipPrivilegeCount(self): return self.ipyVipPrivilegeLen
    def GetVipPrivilegeByIndex(self, index): return self.ipyVipPrivilegeCache[index]
    def GetStoreCount(self): return self.ipyStoreLen
@@ -4715,8 +5006,14 @@
    def GetGodWeaponEffectByIndex(self, index): return self.ipyGodWeaponEffectCache[index]
    def GetCrossRealmPKDanCount(self): return self.ipyCrossRealmPKDanLen
    def GetCrossRealmPKDanByIndex(self, index): return self.ipyCrossRealmPKDanCache[index]
    def GetCrossPenglaiZoneCount(self): return self.ipyCrossPenglaiZoneLen
    def GetCrossPenglaiZoneByIndex(self, index): return self.ipyCrossPenglaiZoneCache[index]
    def GetCrossRealmPKDanAwardCount(self): return self.ipyCrossRealmPKDanAwardLen
    def GetCrossRealmPKDanAwardByIndex(self, index): return self.ipyCrossRealmPKDanAwardCache[index]
    def GetCrossRealmPKOrderAwardCount(self): return self.ipyCrossRealmPKOrderAwardLen
    def GetCrossRealmPKOrderAwardByIndex(self, index): return self.ipyCrossRealmPKOrderAwardCache[index]
    def GetCrossZoneCommCount(self): return self.ipyCrossZoneCommLen
    def GetCrossZoneCommByIndex(self, index): return self.ipyCrossZoneCommCache[index]
    def GetCrossPenglaiZoneMapCount(self): return self.ipyCrossPenglaiZoneMapLen
    def GetCrossPenglaiZoneMapByIndex(self, index): return self.ipyCrossPenglaiZoneMapCache[index]
    def GetGatherSoulCount(self): return self.ipyGatherSoulLen
    def GetGatherSoulByIndex(self, index): return self.ipyGatherSoulCache[index]
    def GetGatherSoulCompoundCount(self): return self.ipyGatherSoulCompoundLen
@@ -4753,6 +5050,20 @@
    def GetNewAllPeoplePartyByIndex(self, index): return self.ipyNewAllPeoplePartyCache[index]
    def GetNewAllPeoplePartyAwardCount(self): return self.ipyNewAllPeoplePartyAwardLen
    def GetNewAllPeoplePartyAwardByIndex(self, index): return self.ipyNewAllPeoplePartyAwardCache[index]
    def GetZhuXianStoneAttrCount(self): return self.ipyZhuXianStoneAttrLen
    def GetZhuXianStoneAttrByIndex(self, index): return self.ipyZhuXianStoneAttrCache[index]
    def GetActLuckyTreasureCount(self): return self.ipyActLuckyTreasureLen
    def GetActLuckyTreasureByIndex(self, index): return self.ipyActLuckyTreasureCache[index]
    def GetLuckyTreasureTemplateCount(self): return self.ipyLuckyTreasureTemplateLen
    def GetLuckyTreasureTemplateByIndex(self, index): return self.ipyLuckyTreasureTemplateCache[index]
    def GetMysteryShopCount(self): return self.ipyMysteryShopLen
    def GetMysteryShopByIndex(self, index): return self.ipyMysteryShopCache[index]
    def GetEquipPlaceIndexMapCount(self): return self.ipyEquipPlaceIndexMapLen
    def GetEquipPlaceIndexMapByIndex(self, index): return self.ipyEquipPlaceIndexMapCache[index]
    def GetEquipStarUpCount(self): return self.ipyEquipStarUpLen
    def GetEquipStarUpByIndex(self, index): return self.ipyEquipStarUpCache[index]
    def GetEquipPlusEvolveCount(self): return self.ipyEquipPlusEvolveLen
    def GetEquipPlusEvolveByIndex(self, index): return self.ipyEquipPlusEvolveCache[index]
IPYData = IPY_DataMgr()
def IPY_Data(): return IPYData