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":(
@@ -500,20 +504,6 @@
                        ("list", "AwardItemList", 0),
                        ),
                "LianTi":(
                        ("BYTE", "LianTiLV", 1),
                        ("list", "FixedAttrType", 0),
                        ("list", "FixedAttrValue", 0),
                        ("list", "PlusAttrType", 0),
                        ("list", "PlusAttrRate", 0),
                        ("list", "EatItemAttrType", 0),
                        ("list", "EatItemAttrValue", 0),
                        ("WORD", "NeedEatCount", 0),
                        ("WORD", "EatPerCount", 0),
                        ("list", "LVUpCostItemInfo", 0),
                        ("DWORD", "ActivateSkillID", 0),
                        ),
                "FuncConfig":(
                        ("char", "Key", 1),
                        ("char", "Numerical1", 0),
@@ -672,24 +662,6 @@
                        ("dict", "LVLegendAttrLibNumInfo", 0),
                        ),
                "Dogz":(
                        ("BYTE", "DogzID", 1),
                        ("list", "BaseAttrTypes", 0),
                        ("list", "BaseAttrValues", 0),
                        ("list", "HelpBattleSkills", 0),
                        ("DWORD", "FightPowerEx", 0),
                        ("list", "EquipPlaceColorList", 0),
                        ("list", "HelpBattleNotify", 0),
                        ),
                "DogzEquipPlus":(
                        ("BYTE", "EquipPlace", 1),
                        ("BYTE", "PlusLV", 1),
                        ("list", "PlusAttrTypes", 0),
                        ("list", "PlusAttrValues", 0),
                        ("DWORD", "PlusLVUPTotalExp", 0),
                        ),
                "EquipWash":(
                        ("BYTE", "WashType", 1),
                        ("BYTE", "WashLV", 1),
@@ -726,16 +698,6 @@
                        ("WORD", "LV", 1),
                        ("DWORD", "UpNeedExp", 0),
                        ("dict", "Attr", 0),
                        ),
                "FaQiLVUp":(
                        ("BYTE", "FaQiLV", 1),
                        ("WORD", "NeedEatCount", 0),
                        ("list", "LVAttrType", 0),
                        ("list", "LVAttrValue", 0),
                        ("list", "UpItemAttrType", 0),
                        ("list", "UpItemAttrValue", 0),
                        ("DWORD", "UpEatItemPerCount", 0),
                        ),
                "HorseClass":(
@@ -1050,6 +1012,7 @@
                        ("list", "ItemListEx", 0),
                        ("BYTE", "ResetType", 0),
                        ("DWORD", "LimitCnt", 0),
                        ("DWORD", "CostItemID", 0),
                        ("BYTE", "MoneyType", 0),
                        ("DWORD", "MoneyNum", 0),
                        ("DWORD", "MoneyOriginal", 0),
@@ -1215,10 +1178,10 @@
                "TreasureSet":(
                        ("BYTE", "TreasureType", 1),
                        ("BYTE", "PackType", 0),
                        ("BYTE", "CheckPack", 0),
                        ("BYTE", "IsActType", 0),
                        ("list", "CheckPackList", 0),
                        ("BYTE", "ActType", 0),
                        ("DWORD", "DailyMaxCount", 0),
                        ("DWORD", "DailyMaxCountMoney", 0),
                        ("BYTE", "DailyFreeCount", 0),
                        ("list", "TreasureCountList", 0),
                        ("char", "RecycleItemMail", 0),
@@ -1231,10 +1194,12 @@
                        ("char", "LuckyRateFormat", 0),
                        ("BYTE", "LuckyGridNum", 0),
                        ("dict", "GridNumMaxLimitInfo", 0),
                        ("list", "RecordGridNumList", 0),
                        ("list", "NotifyGridNumList", 0),
                        ("dict", "NotifyKeyDict", 0),
                        ("BYTE", "AwardMoneyType", 0),
                        ("WORD", "AwardMoneyValue", 0),
                        ("list", "AwardItemInfo", 0),
                        ("BYTE", "WishReset", 0),
                        ("dict", "WishLibSelect", 0),
                        ("dict", "WishLibPubFreeCnt", 0),
@@ -1252,7 +1217,9 @@
                        ("list", "GridItemRateList2", 0),
                        ("dict", "GridItemRateList3", 0),
                        ("list", "GridItemRateList4", 0),
                        ("dict", "AtLeastCntLimitInfo", 0),
                        ("dict", "LuckyItemRateInfo", 0),
                        ("dict", "LuckyItemRateInfoEx", 0),
                        ),
                "TreasureItemLib":(
@@ -1556,25 +1523,47 @@
                        ("list", "AwardItemList", 0),
                        ),
                "ActLoginNew":(
                        ("DWORD", "CfgID", 1),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("WORD", "RelateFuncID", 0),
                        ("BYTE", "FuncActDays", 0),
                        ("BYTE", "FuncLoop", 0),
                        ("WORD", "LVLimit", 0),
                        ("list", "RepSignCostMoneyInfo", 0),
                        ("BYTE", "TemplateID", 0),
                        ("WORD", "AwardExCTGID", 0),
                        ("WORD", "ActZhanlingType", 0),
                        ),
                "ActLoginNewAward":(
                "ActSignAward":(
                        ("BYTE", "TemplateID", 1),
                        ("BYTE", "DayNum", 0),
                        ("list", "LoginAwardItemList", 0),
                        ("list", "LoginAwardItemListEx", 0),
                        ("list", "SignAwardItemList", 0),
                        ),
                "ActBillboardAward":(
                        ("DWORD", "TemplateID", 1),
                        ("WORD", "RankA", 0),
                        ("WORD", "RankB", 0),
                        ("float", "NeedValue", 0),
                        ("list", "AwardItemList", 0),
                        ),
                "ActHeroAppear":(
                        ("DWORD", "CfgID", 1),
                        ("list", "PlatformList", 0),
                        ("list", "ServerIDList", 0),
                        ("BYTE", "ActNum", 0),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("list", "ActHeroIDList", 0),
                        ("WORD", "ActTreasureType", 0),
                        ("BYTE", "StarGiftTempID", 0),
                        ("list", "SkinCTGIDList", 0),
                        ("list", "GiftCTGIDList", 0),
                        ("WORD", "GiftShopType", 0),
                        ("WORD", "ExShopType", 0),
                        ("char", "ExShopRecycleMail", 0),
                        ("WORD", "SignTempID", 0),
                        ("WORD", "BillTempID", 0),
                        ("char", "BillAwardMail", 0),
                        ),
                "ActHeroAppearStar":(
                        ("BYTE", "StarTempID", 1),
                        ("BYTE", "NeedStar", 0),
                        ("BYTE", "AwardIndex", 0),
                        ("list", "FreeAwardItemList", 0),
                        ("WORD", "StarGiftCTGID", 0),
                        ("dict", "HeroGiftItemInfo", 0),
                        ),
                "EquipPlaceIndexMap":(
@@ -1622,6 +1611,15 @@
                        ("WORD", "NeedPlusLV", 0),
                        ("dict", "CostItem", 0),
                        ("dict", "Attr", 0),
                        ),
                "QunyingCross":(
                        ("char", "AppID", 1),
                        ("WORD", "ZoneID", 1),
                        ("DWORD", "CrossServerID", 0),
                        ("list", "ServerIDList", 0),
                        ("BYTE", "SplitServerCnt", 0),
                        ("BYTE", "MatchServerCnt", 0),
                        ),
                "FamilyCross":(
@@ -1687,38 +1685,6 @@
                        ("BYTE", "QualityLV", 1),
                        ),
                "LoveGift":(
                        ("BYTE", "GiftNum", 1),
                        ("DWORD", "GiftItemID", 0),
                        ("BYTE", "AllowBatch", 0),
                        ),
                "Marry":(
                        ("BYTE", "BridePriceID", 1),
                        ("list", "CostMoneyInfo", 0),
                        ),
                "LoveRing":(
                        ("BYTE", "RingClassLV", 1),
                        ("BYTE", "RingStarLV", 1),
                        ("list", "CoupleAttrType", 0),
                        ("list", "CoupleAttrValue", 0),
                        ("list", "StarAttrType", 0),
                        ("list", "StarAttrValue", 0),
                        ("list", "UpItemAttrType", 0),
                        ("list", "UpItemAttrValue", 0),
                        ("DWORD", "NeedEatCount", 0),
                        ("DWORD", "UpEatItemPerCount", 0),
                        ),
                "LoveCharm":(
                        ("BYTE", "CharmLV", 1),
                        ("DWORD", "UpNeedCharm", 0),
                        ("list", "LVAttrType", 0),
                        ("list", "LVAttrValue", 0),
                        ("list", "LVAwardItemInfo", 0),
                        ),
                "HorsePetSkin":(
                        ("BYTE", "Type", 1),
                        ("DWORD", "ID", 1),
@@ -1726,12 +1692,6 @@
                        ("DWORD", "NeedExp", 0),
                        ("dict", "AttrInfo", 0),
                        ("BYTE", "SkinIndex", 0),
                        ),
                "FuncSysPrivilege":(
                        ("BYTE", "FuncSysID", 1),
                        ("BYTE", "DayNum", 0),
                        ("list", "DayAwardItemInfo", 0),
                        ),
                "HistoryRechargeAward":(
@@ -1752,16 +1712,6 @@
                        ("list", "FreeRewardItemList", 0),
                        ("list", "ZLRewardItemList", 0),
                        ("list", "ZLRewardItemListH", 0),
                        ),
                "Xiangong":(
                        ("WORD", "XiangongID", 1),
                        ),
                "TiandaoTree":(
                        ("WORD", "AwardIndex", 1),
                        ("DWORD", "NeedQiyun", 0),
                        ("list", "AwardItemList", 0),
                        ),
                "TreeLV":(
@@ -1808,6 +1758,10 @@
                "Robot":(
                        ("DWORD", "ID", 1),
                        ("char", "RobotName", 0),
                        ("BYTE", "RealmLV", 0),
                        ("DWORD", "TempNum", 0),
                        ("DWORD", "TempValue1", 0),
                        ("DWORD", "TempValue2", 0),
                        ("char", "ViewCache", 0),
                        ),
                }
@@ -2059,18 +2013,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():
@@ -2468,25 +2426,6 @@
    def GetNeedValueList(self): return self.attrTuple[3] # 所需值列表 list
    def GetAwardItemList(self): return self.attrTuple[4] # 奖励物品列表 list
# 境界炼体属性表
class IPY_LianTi():
    def __init__(self):
        self.attrTuple = None
        return
    def GetLianTiLV(self): return self.attrTuple[0] # 炼体等级 BYTE
    def GetFixedAttrType(self): return self.attrTuple[1] # 固定属性类型(非累积) list
    def GetFixedAttrValue(self): return self.attrTuple[2] # 固定属性值(非累积) list
    def GetPlusAttrType(self): return self.attrTuple[3] # 增强属性类型(非累积) list
    def GetPlusAttrRate(self): return self.attrTuple[4] # 增强属性万分率(非累积) list
    def GetEatItemAttrType(self): return self.attrTuple[5] # 每x个培养丹增加属性类型,x=UpEatItemPerCount list
    def GetEatItemAttrValue(self): return self.attrTuple[6] # 每x个培养丹增加属性值,x=UpEatItemPerCount list
    def GetNeedEatCount(self): return self.attrTuple[7] # 升级所需个数(非累计) WORD
    def GetEatPerCount(self): return self.attrTuple[8] # 每次培养消耗x个 WORD
    def GetLVUpCostItemInfo(self): return self.attrTuple[9] # 突破等级道具ID|个数 list
    def GetActivateSkillID(self): return self.attrTuple[10] # 激活技能ID DWORD
# 功能配置表格
class IPY_FuncConfig():
    
@@ -2740,34 +2679,6 @@
    def GetItemQuality(self): return self.attrTuple[4] # 物品星级 BYTE
    def GetLVLegendAttrLibNumInfo(self): return self.attrTuple[5] # 属性ID等级段对应数值库编号 {属性ID:{等级:库编号, ...}} dict
# 神兽表
class IPY_Dogz():
    def __init__(self):
        self.attrTuple = None
        return
    def GetDogzID(self): return self.attrTuple[0] # 神兽ID BYTE
    def GetBaseAttrTypes(self): return self.attrTuple[1] # 基础属性类型列表 list
    def GetBaseAttrValues(self): return self.attrTuple[2] # 基础属性值列表 list
    def GetHelpBattleSkills(self): return self.attrTuple[3] # 助战技能ID列表 list
    def GetFightPowerEx(self): return self.attrTuple[4] # 助战附加战力 DWORD
    def GetEquipPlaceColorList(self): return self.attrTuple[5] # 穿戴装备颜色限制 list
    def GetHelpBattleNotify(self): return self.attrTuple[6] # 助战广播 ["广播key",[参数1,参数2,...],广播CD分钟] list
# 神兽强化表
class IPY_DogzEquipPlus():
    def __init__(self):
        self.attrTuple = None
        return
    def GetEquipPlace(self): return self.attrTuple[0] # 装备位 BYTE
    def GetPlusLV(self): return self.attrTuple[1] # 强化等级 BYTE
    def GetPlusAttrTypes(self): return self.attrTuple[2] # 强化属性类型列表 list
    def GetPlusAttrValues(self): return self.attrTuple[3] # 强化属性值列表 list
    def GetPlusLVUPTotalExp(self): return self.attrTuple[4] # 升级所需累计熟练度总值 DWORD
# 洗练表
class IPY_EquipWash():
    
@@ -2820,21 +2731,6 @@
    def GetLV(self): return self.attrTuple[0] # 等级 WORD
    def GetUpNeedExp(self): return self.attrTuple[1] # 升级所需经验数 DWORD
    def GetAttr(self): return self.attrTuple[2] # 属性加成 dict
# 法器升级表
class IPY_FaQiLVUp():
    def __init__(self):
        self.attrTuple = None
        return
    def GetFaQiLV(self): return self.attrTuple[0] # 法器等级 BYTE
    def GetNeedEatCount(self): return self.attrTuple[1] # 升级所需个数(非累计) WORD
    def GetLVAttrType(self): return self.attrTuple[2] # 每级额外属性类型(非累积) list
    def GetLVAttrValue(self): return self.attrTuple[3] # 每级额外属性值(非累积) list
    def GetUpItemAttrType(self): return self.attrTuple[4] # 每x个培养丹增加属性类型,x=UpEatItemPerCount list
    def GetUpItemAttrValue(self): return self.attrTuple[5] # 每x个培养丹增加属性值,x=UpEatItemPerCount list
    def GetUpEatItemPerCount(self): return self.attrTuple[6] # 每次培养消耗x个 DWORD
# 坐骑阶级表
class IPY_HorseClass():
@@ -3309,11 +3205,12 @@
    def GetItemListEx(self): return self.attrTuple[4] # 扩展物品列表[[物品ID,个数,是否绑定],...] list
    def GetResetType(self): return self.attrTuple[5] # 重置类型 BYTE
    def GetLimitCnt(self): return self.attrTuple[6] # 个人限制数量 DWORD
    def GetMoneyType(self): return self.attrTuple[7] # 金钱类型 BYTE
    def GetMoneyNum(self): return self.attrTuple[8] # 金钱数量 DWORD
    def GetMoneyOriginal(self): return self.attrTuple[9] # 原价 DWORD
    def GetUnlockType(self): return self.attrTuple[10] # 解锁类型 BYTE
    def GetUnlockValue(self): return self.attrTuple[11] # 解锁所需值 DWORD
    def GetCostItemID(self): return self.attrTuple[7] # 消耗道具ID DWORD
    def GetMoneyType(self): return self.attrTuple[8] # 金钱类型 BYTE
    def GetMoneyNum(self): return self.attrTuple[9] # 金钱数量 DWORD
    def GetMoneyOriginal(self): return self.attrTuple[10] # 原价 DWORD
    def GetUnlockType(self): return self.attrTuple[11] # 解锁类型 BYTE
    def GetUnlockValue(self): return self.attrTuple[12] # 解锁所需值 DWORD
# 每日任务表
class IPY_DailyTask():
@@ -3549,10 +3446,10 @@
        return
        
    def GetTreasureType(self): return self.attrTuple[0] # 寻宝类型 BYTE
    def GetPackType(self): return self.attrTuple[1] # 放入背包 BYTE
    def GetCheckPack(self): return self.attrTuple[2] # 是否检查背包 BYTE
    def GetIsActType(self): return self.attrTuple[3] # 是否活动寻宝 BYTE
    def GetDailyMaxCount(self): return self.attrTuple[4] # 每日最大次数 DWORD
    def GetCheckPackList(self): return self.attrTuple[1] # 检查背包类型列表 list
    def GetActType(self): return self.attrTuple[2] # 活动寻宝类型 BYTE
    def GetDailyMaxCount(self): return self.attrTuple[3] # 每日最大次数 DWORD
    def GetDailyMaxCountMoney(self): return self.attrTuple[4] # 每日货币次数 DWORD
    def GetDailyFreeCount(self): return self.attrTuple[5] # 每日免费次数 BYTE
    def GetTreasureCountList(self): return self.attrTuple[6] # 抽奖次数列表 list
    def GetRecycleItemMail(self): return self.attrTuple[7] # 重置回收道具邮件,如果有配置回收邮件key,则重置时会回收多余的寻宝道具 char
@@ -3565,14 +3462,16 @@
    def GetLuckyRateFormat(self): return self.attrTuple[14] # 幸运格子概率公式 char
    def GetLuckyGridNum(self): return self.attrTuple[15] # 幸运格子编号 BYTE
    def GetGridNumMaxLimitInfo(self): return self.attrTuple[16] # 格子最大产出次数限制,{"格子":最大可产出次数, ...} dict
    def GetNotifyGridNumList(self): return self.attrTuple[17] # 需要额外广播的格子 list
    def GetNotifyKeyDict(self): return self.attrTuple[18] # 广播key dict
    def GetAwardMoneyType(self): return self.attrTuple[19] # 额外奖励货币类型 BYTE
    def GetAwardMoneyValue(self): return self.attrTuple[20] # 单次奖励货币数 WORD
    def GetWishReset(self): return self.attrTuple[21] # 心愿重置规则 BYTE
    def GetWishLibSelect(self): return self.attrTuple[22] # 心愿库选择数 dict
    def GetWishLibPubFreeCnt(self): return self.attrTuple[23] # 心愿库公共免费次数 dict
    def GetWishLibCard(self): return self.attrTuple[24] # 心愿库心愿卡 dict
    def GetRecordGridNumList(self): return self.attrTuple[17] # 需要记录产出的格子 list
    def GetNotifyGridNumList(self): return self.attrTuple[18] # 需要额外广播的格子 list
    def GetNotifyKeyDict(self): return self.attrTuple[19] # 广播key dict
    def GetAwardMoneyType(self): return self.attrTuple[20] # 额外奖励货币类型 BYTE
    def GetAwardMoneyValue(self): return self.attrTuple[21] # 单次奖励货币数 WORD
    def GetAwardItemInfo(self): return self.attrTuple[22] # 单次额外奖励道具,物品ID|个数 list
    def GetWishReset(self): return self.attrTuple[23] # 心愿重置规则 BYTE
    def GetWishLibSelect(self): return self.attrTuple[24] # 心愿库选择数 dict
    def GetWishLibPubFreeCnt(self): return self.attrTuple[25] # 心愿库公共免费次数 dict
    def GetWishLibCard(self): return self.attrTuple[26] # 心愿库心愿卡 dict
# 寻宝产出库表
class IPY_TreasureHouse():
@@ -3591,7 +3490,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():
@@ -4064,27 +3965,8 @@
    def GetNeedValue(self): return self.attrTuple[3] # 完成任务所需值 DWORD
    def GetAwardItemList(self): return self.attrTuple[4] # 任务奖励列表[[物品ID,个数,是否拍品], ...] list
# 登录活动奖励时间表新
class IPY_ActLoginNew():
    def __init__(self):
        self.attrTuple = None
        return
    def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD
    def GetStartDate(self): return self.attrTuple[1] # 开启日期 char
    def GetEndDate(self): return self.attrTuple[2] # 结束日期 char
    def GetRelateFuncID(self): return self.attrTuple[3] # 关联功能ID WORD
    def GetFuncActDays(self): return self.attrTuple[4] # 功能活动天数 BYTE
    def GetFuncLoop(self): return self.attrTuple[5] # 功能是否循环 BYTE
    def GetLVLimit(self): return self.attrTuple[6] # 限制等级 WORD
    def GetRepSignCostMoneyInfo(self): return self.attrTuple[7] # 补签消耗货币类型数量 list
    def GetTemplateID(self): return self.attrTuple[8] # 登录奖励模板编号 BYTE
    def GetAwardExCTGID(self): return self.attrTuple[9] # 扩展奖励礼包充值ID WORD
    def GetActZhanlingType(self): return self.attrTuple[10] # 关联活动战令类型 WORD
# 登录活动奖励模板表新
class IPY_ActLoginNewAward():
# 活动签到奖励表
class IPY_ActSignAward():
    
    def __init__(self):
        self.attrTuple = None
@@ -4092,8 +3974,59 @@
        
    def GetTemplateID(self): return self.attrTuple[0] # 模板ID BYTE
    def GetDayNum(self): return self.attrTuple[1] # 第X天从1开始 BYTE
    def GetLoginAwardItemList(self): return self.attrTuple[2] # 奖励列表[[物品ID,个数,是否拍品], ...] list
    def GetLoginAwardItemListEx(self): return self.attrTuple[3] # 扩展奖励列表[[物品ID,个数,是否拍品], ...] list
    def GetSignAwardItemList(self): return self.attrTuple[2] # 奖励列表[[物品ID,个数], ...] list
# 活动排行奖励表
class IPY_ActBillboardAward():
    def __init__(self):
        self.attrTuple = None
        return
    def GetTemplateID(self): return self.attrTuple[0] # 模板ID DWORD
    def GetRankA(self): return self.attrTuple[1] # 名次A WORD
    def GetRankB(self): return self.attrTuple[2] # 至名次B WORD
    def GetNeedValue(self): return self.attrTuple[3] # 至少所需值 float
    def GetAwardItemList(self): return self.attrTuple[4] # 奖励物品列表[[物品ID,个数], ...] list
# 武将登场时间表
class IPY_ActHeroAppear():
    def __init__(self):
        self.attrTuple = None
        return
    def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD
    def GetPlatformList(self): return self.attrTuple[1] # 活动平台列表["平台A", "平台A", ...],配[]代表所有 list
    def GetServerIDList(self): return self.attrTuple[2] # 服务器ID列表 list
    def GetActNum(self): return self.attrTuple[3] # 活动分组编号, 活动类型 * 10 + 不同界面编号 BYTE
    def GetStartDate(self): return self.attrTuple[4] # 开启日期 char
    def GetEndDate(self): return self.attrTuple[5] # 结束日期 char
    def GetActHeroIDList(self): return self.attrTuple[6] # 登场武将ID列表 list
    def GetActTreasureType(self): return self.attrTuple[7] # 招募寻宝类型 WORD
    def GetStarGiftTempID(self): return self.attrTuple[8] # 专属升星礼包模板 BYTE
    def GetSkinCTGIDList(self): return self.attrTuple[9] # 时装充值ID列表 list
    def GetGiftCTGIDList(self): return self.attrTuple[10] # 礼包充值ID列表 list
    def GetGiftShopType(self): return self.attrTuple[11] # 礼包商店类型 WORD
    def GetExShopType(self): return self.attrTuple[12] # 兑换商店类型 WORD
    def GetExShopRecycleMail(self): return self.attrTuple[13] # 兑换货币回收邮件 char
    def GetSignTempID(self): return self.attrTuple[14] # 签到奖励模板 WORD
    def GetBillTempID(self): return self.attrTuple[15] # 排行奖励模板 WORD
    def GetBillAwardMail(self): return self.attrTuple[16] # 榜单奖励发放邮件 char
# 升星计划奖励表
class IPY_ActHeroAppearStar():
    def __init__(self):
        self.attrTuple = None
        return
    def GetStarTempID(self): return self.attrTuple[0] # 模板ID BYTE
    def GetNeedStar(self): return self.attrTuple[1] # 所需星 BYTE
    def GetAwardIndex(self): return self.attrTuple[2] # 奖励记录索引 BYTE
    def GetFreeAwardItemList(self): return self.attrTuple[3] # 免费奖励物品信息列表[[物品ID,个数], ...] list
    def GetStarGiftCTGID(self): return self.attrTuple[4] # 星级礼包充值ID WORD
    def GetHeroGiftItemInfo(self): return self.attrTuple[5] # 登场武将额外专属奖励信息{"武将ID":[[专属物品ID,个数], ...], ...} dict
# 装备位背包索引映射表
class IPY_EquipPlaceIndexMap():
@@ -4166,6 +4099,20 @@
    def GetNeedPlusLV(self): return self.attrTuple[2] # 需要强化等级 WORD
    def GetCostItem(self): return self.attrTuple[3] # 消耗材料 dict
    def GetAttr(self): return self.attrTuple[4] # 属性 dict
# 群英榜分区表
class IPY_QunyingCross():
    def __init__(self):
        self.attrTuple = None
        return
    def GetAppID(self): return self.attrTuple[0] # AppID char
    def GetZoneID(self): return self.attrTuple[1] # 分区ID WORD
    def GetCrossServerID(self): return self.attrTuple[2] # 跨服服务器ID DWORD
    def GetServerIDList(self): return self.attrTuple[3] # 互通服务器ID列表 list
    def GetSplitServerCnt(self): return self.attrTuple[4] # 按X个相邻服分割 BYTE
    def GetMatchServerCnt(self): return self.attrTuple[5] # 分割区服内X个服随机匹配一组 BYTE
# 跨服公会表
class IPY_FamilyCross():
@@ -4275,58 +4222,6 @@
    def GetPointID(self): return self.attrTuple[1] # 灵根ID DWORD
    def GetQualityLV(self): return self.attrTuple[2] # 品级 BYTE
# 情缘礼物表
class IPY_LoveGift():
    def __init__(self):
        self.attrTuple = None
        return
    def GetGiftNum(self): return self.attrTuple[0] # 聘礼ID BYTE
    def GetGiftItemID(self): return self.attrTuple[1] # 物品ID DWORD
    def GetAllowBatch(self): return self.attrTuple[2] # 是否允许批量赠送 BYTE
# 情缘提亲表
class IPY_Marry():
    def __init__(self):
        self.attrTuple = None
        return
    def GetBridePriceID(self): return self.attrTuple[0] # 聘礼ID BYTE
    def GetCostMoneyInfo(self): return self.attrTuple[1] # 消耗货币类型|数值 list
# 情缘情戒表
class IPY_LoveRing():
    def __init__(self):
        self.attrTuple = None
        return
    def GetRingClassLV(self): return self.attrTuple[0] # 情戒阶级 BYTE
    def GetRingStarLV(self): return self.attrTuple[1] # 情戒星级 BYTE
    def GetCoupleAttrType(self): return self.attrTuple[2] # 仙侣属性类型(非累积) list
    def GetCoupleAttrValue(self): return self.attrTuple[3] # 仙侣属性值(非累积) list
    def GetStarAttrType(self): return self.attrTuple[4] # 星级额外属性类型(非累积) list
    def GetStarAttrValue(self): return self.attrTuple[5] # 星级额外属性值(非累积) list
    def GetUpItemAttrType(self): return self.attrTuple[6] # 每x个培养丹增加属性类型,x=UpEatItemPerCount list
    def GetUpItemAttrValue(self): return self.attrTuple[7] # 每x个培养丹增加属性值,x=UpEatItemPerCount list
    def GetNeedEatCount(self): return self.attrTuple[8] # 升级所需个数(非累计) DWORD
    def GetUpEatItemPerCount(self): return self.attrTuple[9] # 每次培养消耗x个 DWORD
# 情缘魅力属性表
class IPY_LoveCharm():
    def __init__(self):
        self.attrTuple = None
        return
    def GetCharmLV(self): return self.attrTuple[0] # 魅力等级 BYTE
    def GetUpNeedCharm(self): return self.attrTuple[1] # 升下级所需总魅力 DWORD
    def GetLVAttrType(self): return self.attrTuple[2] # 属性类型 list
    def GetLVAttrValue(self): return self.attrTuple[3] # 总属性值 list
    def GetLVAwardItemInfo(self): return self.attrTuple[4] # 等级物品奖励[[物品ID,个数,是否拍品], ...] list
# 骑宠觉醒表
class IPY_HorsePetSkin():
    
@@ -4340,17 +4235,6 @@
    def GetNeedExp(self): return self.attrTuple[3] # 升级需要经验 DWORD
    def GetAttrInfo(self): return self.attrTuple[4] # 属性 dict
    def GetSkinIndex(self): return self.attrTuple[5] # 外观 BYTE
# 功能特权奖励表
class IPY_FuncSysPrivilege():
    def __init__(self):
        self.attrTuple = None
        return
    def GetFuncSysID(self): return self.attrTuple[0] # 功能系统ID BYTE
    def GetDayNum(self): return self.attrTuple[1] # 第X天 BYTE
    def GetDayAwardItemInfo(self): return self.attrTuple[2] #  奖励物品信息 [[物品ID,个数,是否拍品], ...] list
# 累计充值奖励表
class IPY_HistoryRechargeAward():
@@ -4386,26 +4270,6 @@
    def GetFreeRewardItemList(self): return self.attrTuple[3] # 免费奖励物品列表 [[物品ID,个数,是否拍品],...] list
    def GetZLRewardItemList(self): return self.attrTuple[4] # 战令奖励物品列表 [[物品ID,个数,是否拍品],...] list
    def GetZLRewardItemListH(self): return self.attrTuple[5] # 高级战令奖励物品列表 [[物品ID,个数,是否拍品],...] list
# 仙宫表
class IPY_Xiangong():
    def __init__(self):
        self.attrTuple = None
        return
    def GetXiangongID(self): return self.attrTuple[0] # 仙宫ID WORD
# 仙宫天道树
class IPY_TiandaoTree():
    def __init__(self):
        self.attrTuple = None
        return
    def GetAwardIndex(self): return self.attrTuple[0] # 奖励索引 WORD
    def GetNeedQiyun(self): return self.attrTuple[1] # 所需气运值 DWORD
    def GetAwardItemList(self): return self.attrTuple[2] # 奖励物品列表 list
# 祝福树
class IPY_TreeLV():
@@ -4482,7 +4346,11 @@
        
    def GetID(self): return self.attrTuple[0] # 机器人ID,同玩家ID DWORD
    def GetRobotName(self): return self.attrTuple[1] # char
    def GetViewCache(self): return self.attrTuple[2] # 机器人缓存 char
    def GetRealmLV(self): return self.attrTuple[2] # 指定官职 BYTE
    def GetTempNum(self): return self.attrTuple[3] # 功能模版 DWORD
    def GetTempValue1(self): return self.attrTuple[4] # 功能值1 DWORD
    def GetTempValue2(self): return self.attrTuple[5] # 功能值2 DWORD
    def GetViewCache(self): return self.attrTuple[6] # 机器人缓存 char
def Log(msg, playerID=0, par=0):
@@ -4552,7 +4420,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)
@@ -4577,7 +4445,6 @@
        self.__LoadFileData("RealmXXZL", onlyCheck)
        self.__LoadFileData("Realm", onlyCheck)
        self.__LoadFileData("RealmLVUPTask", onlyCheck)
        self.__LoadFileData("LianTi", onlyCheck)
        self.__LoadFileData("FuncConfig", onlyCheck)
        self.__LoadFileData("FuncOpenLV", onlyCheck)
        self.__LoadFileData("ItemCompound", onlyCheck)
@@ -4597,12 +4464,9 @@
        self.__LoadFileData("EquipLegendAttrType", onlyCheck)
        self.__LoadFileData("EquipLegendAttrLib", onlyCheck)
        self.__LoadFileData("EquipLegendAttrValue", onlyCheck)
        self.__LoadFileData("Dogz", onlyCheck)
        self.__LoadFileData("DogzEquipPlus", onlyCheck)
        self.__LoadFileData("EquipWash", onlyCheck)
        self.__LoadFileData("AttrFruit", onlyCheck)
        self.__LoadFileData("EquipDecompose", onlyCheck)
        self.__LoadFileData("FaQiLVUp", onlyCheck)
        self.__LoadFileData("HorseClass", onlyCheck)
        self.__LoadFileData("HorseSkin", onlyCheck)
        self.__LoadFileData("Gubao", onlyCheck)
@@ -4685,13 +4549,16 @@
        self.__LoadFileData("ActBuyCountGift", onlyCheck)
        self.__LoadFileData("ActTask", onlyCheck)
        self.__LoadFileData("ActTaskTemp", onlyCheck)
        self.__LoadFileData("ActLoginNew", onlyCheck)
        self.__LoadFileData("ActLoginNewAward", onlyCheck)
        self.__LoadFileData("ActSignAward", onlyCheck)
        self.__LoadFileData("ActBillboardAward", onlyCheck)
        self.__LoadFileData("ActHeroAppear", onlyCheck)
        self.__LoadFileData("ActHeroAppearStar", onlyCheck)
        self.__LoadFileData("EquipPlaceIndexMap", onlyCheck)
        self.__LoadFileData("EquipShenAttr", onlyCheck)
        self.__LoadFileData("EquipShenEvolve", onlyCheck)
        self.__LoadFileData("EquipStarUp", onlyCheck)
        self.__LoadFileData("EquipPlusEvolve", onlyCheck)
        self.__LoadFileData("QunyingCross", onlyCheck)
        self.__LoadFileData("FamilyCross", onlyCheck)
        self.__LoadFileData("Family", onlyCheck)
        self.__LoadFileData("FamilyEmblem", onlyCheck)
@@ -4701,17 +4568,10 @@
        self.__LoadFileData("ItemWashMax", onlyCheck)
        self.__LoadFileData("SkillElement", onlyCheck)
        self.__LoadFileData("LingGenEffect", onlyCheck)
        self.__LoadFileData("LoveGift", onlyCheck)
        self.__LoadFileData("Marry", onlyCheck)
        self.__LoadFileData("LoveRing", onlyCheck)
        self.__LoadFileData("LoveCharm", onlyCheck)
        self.__LoadFileData("HorsePetSkin", onlyCheck)
        self.__LoadFileData("FuncSysPrivilege", onlyCheck)
        self.__LoadFileData("HistoryRechargeAward", onlyCheck)
        self.__LoadFileData("CustomAward", onlyCheck)
        self.__LoadFileData("Zhanling", onlyCheck)
        self.__LoadFileData("Xiangong", onlyCheck)
        self.__LoadFileData("TiandaoTree", onlyCheck)
        self.__LoadFileData("TreeLV", onlyCheck)
        self.__LoadFileData("LLMJ", onlyCheck)
        self.__LoadFileData("GoldRushCamp", onlyCheck)
@@ -5027,12 +4887,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")
@@ -5202,13 +5062,6 @@
        self.CheckLoadData("RealmLVUPTask")
        return self.ipyRealmLVUPTaskCache[index]
    def GetLianTiCount(self):
        self.CheckLoadData("LianTi")
        return self.ipyLianTiLen
    def GetLianTiByIndex(self, index):
        self.CheckLoadData("LianTi")
        return self.ipyLianTiCache[index]
    def GetFuncConfigCount(self):
        self.CheckLoadData("FuncConfig")
        return self.ipyFuncConfigLen
@@ -5342,20 +5195,6 @@
        self.CheckLoadData("EquipLegendAttrValue")
        return self.ipyEquipLegendAttrValueCache[index]
    def GetDogzCount(self):
        self.CheckLoadData("Dogz")
        return self.ipyDogzLen
    def GetDogzByIndex(self, index):
        self.CheckLoadData("Dogz")
        return self.ipyDogzCache[index]
    def GetDogzEquipPlusCount(self):
        self.CheckLoadData("DogzEquipPlus")
        return self.ipyDogzEquipPlusLen
    def GetDogzEquipPlusByIndex(self, index):
        self.CheckLoadData("DogzEquipPlus")
        return self.ipyDogzEquipPlusCache[index]
    def GetEquipWashCount(self):
        self.CheckLoadData("EquipWash")
        return self.ipyEquipWashLen
@@ -5376,13 +5215,6 @@
    def GetEquipDecomposeByIndex(self, index):
        self.CheckLoadData("EquipDecompose")
        return self.ipyEquipDecomposeCache[index]
    def GetFaQiLVUpCount(self):
        self.CheckLoadData("FaQiLVUp")
        return self.ipyFaQiLVUpLen
    def GetFaQiLVUpByIndex(self, index):
        self.CheckLoadData("FaQiLVUp")
        return self.ipyFaQiLVUpCache[index]
    def GetHorseClassCount(self):
        self.CheckLoadData("HorseClass")
@@ -5958,19 +5790,33 @@
        self.CheckLoadData("ActTaskTemp")
        return self.ipyActTaskTempCache[index]
    def GetActLoginNewCount(self):
        self.CheckLoadData("ActLoginNew")
        return self.ipyActLoginNewLen
    def GetActLoginNewByIndex(self, index):
        self.CheckLoadData("ActLoginNew")
        return self.ipyActLoginNewCache[index]
    def GetActSignAwardCount(self):
        self.CheckLoadData("ActSignAward")
        return self.ipyActSignAwardLen
    def GetActSignAwardByIndex(self, index):
        self.CheckLoadData("ActSignAward")
        return self.ipyActSignAwardCache[index]
    def GetActLoginNewAwardCount(self):
        self.CheckLoadData("ActLoginNewAward")
        return self.ipyActLoginNewAwardLen
    def GetActLoginNewAwardByIndex(self, index):
        self.CheckLoadData("ActLoginNewAward")
        return self.ipyActLoginNewAwardCache[index]
    def GetActBillboardAwardCount(self):
        self.CheckLoadData("ActBillboardAward")
        return self.ipyActBillboardAwardLen
    def GetActBillboardAwardByIndex(self, index):
        self.CheckLoadData("ActBillboardAward")
        return self.ipyActBillboardAwardCache[index]
    def GetActHeroAppearCount(self):
        self.CheckLoadData("ActHeroAppear")
        return self.ipyActHeroAppearLen
    def GetActHeroAppearByIndex(self, index):
        self.CheckLoadData("ActHeroAppear")
        return self.ipyActHeroAppearCache[index]
    def GetActHeroAppearStarCount(self):
        self.CheckLoadData("ActHeroAppearStar")
        return self.ipyActHeroAppearStarLen
    def GetActHeroAppearStarByIndex(self, index):
        self.CheckLoadData("ActHeroAppearStar")
        return self.ipyActHeroAppearStarCache[index]
    def GetEquipPlaceIndexMapCount(self):
        self.CheckLoadData("EquipPlaceIndexMap")
@@ -6006,6 +5852,13 @@
    def GetEquipPlusEvolveByIndex(self, index):
        self.CheckLoadData("EquipPlusEvolve")
        return self.ipyEquipPlusEvolveCache[index]
    def GetQunyingCrossCount(self):
        self.CheckLoadData("QunyingCross")
        return self.ipyQunyingCrossLen
    def GetQunyingCrossByIndex(self, index):
        self.CheckLoadData("QunyingCross")
        return self.ipyQunyingCrossCache[index]
    def GetFamilyCrossCount(self):
        self.CheckLoadData("FamilyCross")
@@ -6070,47 +5923,12 @@
        self.CheckLoadData("LingGenEffect")
        return self.ipyLingGenEffectCache[index]
    def GetLoveGiftCount(self):
        self.CheckLoadData("LoveGift")
        return self.ipyLoveGiftLen
    def GetLoveGiftByIndex(self, index):
        self.CheckLoadData("LoveGift")
        return self.ipyLoveGiftCache[index]
    def GetMarryCount(self):
        self.CheckLoadData("Marry")
        return self.ipyMarryLen
    def GetMarryByIndex(self, index):
        self.CheckLoadData("Marry")
        return self.ipyMarryCache[index]
    def GetLoveRingCount(self):
        self.CheckLoadData("LoveRing")
        return self.ipyLoveRingLen
    def GetLoveRingByIndex(self, index):
        self.CheckLoadData("LoveRing")
        return self.ipyLoveRingCache[index]
    def GetLoveCharmCount(self):
        self.CheckLoadData("LoveCharm")
        return self.ipyLoveCharmLen
    def GetLoveCharmByIndex(self, index):
        self.CheckLoadData("LoveCharm")
        return self.ipyLoveCharmCache[index]
    def GetHorsePetSkinCount(self):
        self.CheckLoadData("HorsePetSkin")
        return self.ipyHorsePetSkinLen
    def GetHorsePetSkinByIndex(self, index):
        self.CheckLoadData("HorsePetSkin")
        return self.ipyHorsePetSkinCache[index]
    def GetFuncSysPrivilegeCount(self):
        self.CheckLoadData("FuncSysPrivilege")
        return self.ipyFuncSysPrivilegeLen
    def GetFuncSysPrivilegeByIndex(self, index):
        self.CheckLoadData("FuncSysPrivilege")
        return self.ipyFuncSysPrivilegeCache[index]
    def GetHistoryRechargeAwardCount(self):
        self.CheckLoadData("HistoryRechargeAward")
@@ -6132,20 +5950,6 @@
    def GetZhanlingByIndex(self, index):
        self.CheckLoadData("Zhanling")
        return self.ipyZhanlingCache[index]
    def GetXiangongCount(self):
        self.CheckLoadData("Xiangong")
        return self.ipyXiangongLen
    def GetXiangongByIndex(self, index):
        self.CheckLoadData("Xiangong")
        return self.ipyXiangongCache[index]
    def GetTiandaoTreeCount(self):
        self.CheckLoadData("TiandaoTree")
        return self.ipyTiandaoTreeLen
    def GetTiandaoTreeByIndex(self, index):
        self.CheckLoadData("TiandaoTree")
        return self.ipyTiandaoTreeCache[index]
    def GetTreeLVCount(self):
        self.CheckLoadData("TreeLV")