ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -216,12 +216,16 @@
                        ("list", "AttrValueList", 0),
                        ),
                "HeroSkin":(
                "HeroSkinAttr":(
                        ("DWORD", "SkinID", 1),
                        ("DWORD", "NeedItemID", 0),
                        ("BYTE", "StarMax", 0),
                        ("list", "WearAttrIDList", 0),
                        ("list", "WearAttrValueList", 0),
                        ("list", "AllBatAttrIDList", 0),
                        ("list", "AllBatAttrValueList", 0),
                        ("list", "WearAttrPerStarAddList", 0),
                        ("list", "RoleAttrIDList", 0),
                        ("list", "RoleAttrValueList", 0),
                        ("list", "RoleAttrPerStarAddList", 0),
                        ),
                "HeroQuality":(
@@ -1213,7 +1217,9 @@
                        ("list", "GridItemRateList2", 0),
                        ("dict", "GridItemRateList3", 0),
                        ("list", "GridItemRateList4", 0),
                        ("dict", "AtLeastCntLimitInfo", 0),
                        ("dict", "LuckyItemRateInfo", 0),
                        ("dict", "LuckyItemRateInfoEx", 0),
                        ),
                "TreasureItemLib":(
@@ -1994,18 +2000,22 @@
    def GetAttrIDList(self): return self.attrTuple[2] #  属性ID列表 list
    def GetAttrValueList(self): return self.attrTuple[3] #  属性值列表 list
# 皮肤表
class IPY_HeroSkin():
# 皮肤时装属性表
class IPY_HeroSkinAttr():
    
    def __init__(self):
        self.attrTuple = None
        return
        
    def GetSkinID(self): return self.attrTuple[0] # 皮肤NPCID DWORD
    def GetWearAttrIDList(self): return self.attrTuple[1] #  穿戴属性ID列表 list
    def GetWearAttrValueList(self): return self.attrTuple[2] #  穿戴属性值列表 list
    def GetAllBatAttrIDList(self): return self.attrTuple[3] #  全体上阵属性ID列表 list
    def GetAllBatAttrValueList(self): return self.attrTuple[4] #  全体上阵属性值列表 list
    def GetNeedItemID(self): return self.attrTuple[1] # 所需道具 DWORD
    def GetStarMax(self): return self.attrTuple[2] # 最高星级 BYTE
    def GetWearAttrIDList(self): return self.attrTuple[3] #  穿戴属性ID列表 list
    def GetWearAttrValueList(self): return self.attrTuple[4] #  穿戴属性值列表 list
    def GetWearAttrPerStarAddList(self): return self.attrTuple[5] # 穿戴每星加成值列表 list
    def GetRoleAttrIDList(self): return self.attrTuple[6] #  主公属性ID列表 list
    def GetRoleAttrValueList(self): return self.attrTuple[7] #  主公属性初始值列表 list
    def GetRoleAttrPerStarAddList(self): return self.attrTuple[8] # 主公每星加成值列表 list
# 武将品质表
class IPY_HeroQuality():
@@ -3467,7 +3477,9 @@
    def GetGridItemRateList2(self): return self.attrTuple[7] # 每满x次保底产出格子编号饼图 [[概率, 格子编号], ...] list
    def GetGridItemRateList3(self): return self.attrTuple[8] # 第x次必出产出格子编号饼图 {次数:[[概率, 格子编号], ...], ...} dict
    def GetGridItemRateList4(self): return self.attrTuple[9] # 第x次x抽必出 list
    def GetLuckyItemRateInfo(self): return self.attrTuple[10] # 幸运产出概率饼图 {"幸运值":[[概率, 格子编号], ...], ...} dict
    def GetAtLeastCntLimitInfo(self): return self.attrTuple[10] # 最小次数才能产出限制 {格子:至少所需次数才可产出, ...} dict
    def GetLuckyItemRateInfo(self): return self.attrTuple[11] # 幸运产出概率饼图 {"幸运值":[[概率, 格子编号], ...], ...} dict
    def GetLuckyItemRateInfoEx(self): return self.attrTuple[12] # 非永久卡玩家幸运产出概率饼图 {"幸运值":[[概率, 格子编号], ...], ...} dict
# 寻宝物品库
class IPY_TreasureItemLib():
@@ -4377,7 +4389,7 @@
        self.__LoadFileData("HeroAwake", onlyCheck)
        self.__LoadFileData("HeroFetter", onlyCheck)
        self.__LoadFileData("HeroLineupHalo", onlyCheck)
        self.__LoadFileData("HeroSkin", onlyCheck)
        self.__LoadFileData("HeroSkinAttr", onlyCheck)
        self.__LoadFileData("HeroQuality", onlyCheck)
        self.__LoadFileData("HeroQualityBreak", onlyCheck)
        self.__LoadFileData("HeroQualityAwake", onlyCheck)
@@ -4843,12 +4855,12 @@
        self.CheckLoadData("HeroLineupHalo")
        return self.ipyHeroLineupHaloCache[index]
    def GetHeroSkinCount(self):
        self.CheckLoadData("HeroSkin")
        return self.ipyHeroSkinLen
    def GetHeroSkinByIndex(self, index):
        self.CheckLoadData("HeroSkin")
        return self.ipyHeroSkinCache[index]
    def GetHeroSkinAttrCount(self):
        self.CheckLoadData("HeroSkinAttr")
        return self.ipyHeroSkinAttrLen
    def GetHeroSkinAttrByIndex(self, index):
        self.CheckLoadData("HeroSkinAttr")
        return self.ipyHeroSkinAttrCache[index]
    def GetHeroQualityCount(self):
        self.CheckLoadData("HeroQuality")