ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -64,6 +64,7 @@
                        ("BYTE", "AtkDistType", 0),
                        ("BYTE", "Sex", 0),
                        ("WORD", "LV", 0),
                        ("BYTE", "BossType", 0),
                        ("DWORD", "Atk", 0),
                        ("DWORD", "Def", 0),
                        ("DWORD", "MaxHP", 0),
@@ -161,6 +162,7 @@
                        ("WORD", "HPInheritPer", 0),
                        ("dict", "BatAttrDict", 0),
                        ("list", "FetterIDList", 0),
                        ("BYTE", "RecruitBySelf", 0),
                        ),
                "HeroTalent":(
@@ -327,6 +329,8 @@
                        ("DWORD", "PosNPCID6", 0),
                        ("DWORD", "PosNPCID7", 0),
                        ("DWORD", "BossID", 0),
                        ("list", "SkillIDExList", 0),
                        ("BYTE", "SkillExCnt", 0),
                        ),
                "Dienstgrad":(
@@ -542,7 +546,6 @@
                "EquipColor":(
                        ("BYTE", "ItemColor", 1),
                        ("DWORD", "MoneyBase", 0),
                        ("DWORD", "AtkStep", 0),
                        ("DWORD", "DefStep", 0),
                        ("DWORD", "HPStep", 0),
@@ -1541,7 +1544,6 @@
                        ("list", "CostMoneyList", 0),
                        ("WORD", "EnsureCount", 0),
                        ("BYTE", "OnceLucky", 0),
                        ("WORD", "FullLucky", 0),
                        ("char", "LuckyRateFormat", 0),
                        ("BYTE", "LuckyGridNum", 0),
                        ("dict", "GridNumMaxLimitInfo", 0),
@@ -1561,7 +1563,7 @@
                        ("list", "GridItemRateList1", 0),
                        ("list", "GridItemRateList2", 0),
                        ("dict", "GridItemRateList3", 0),
                        ("list", "LuckyItemRateList", 0),
                        ("dict", "LuckyItemRateInfo", 0),
                        ),
                "TreasureItemLib":(
@@ -1705,88 +1707,6 @@
                        ("BYTE", "NeedNotify", 0),
                        ),
                "ActGarbageSorting":(
                        ("DWORD", "CfgID", 1),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("BYTE", "ResetType", 0),
                        ("WORD", "LVLimit", 0),
                        ("BYTE", "CTGTypeEffValue", 0),
                        ),
                "ActGarbageTask":(
                        ("DWORD", "GarbageTasklD", 1),
                        ("DWORD", "FinishNeedValue", 0),
                        ("DWORD", "FinishTimeMax", 0),
                        ("BYTE", "AutoProduce", 0),
                        ("list", "ProduceGarbageRateList", 0),
                        ),
                "ActBossTrial":(
                        ("DWORD", "CfgID", 1),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("char", "JoinStartTime", 0),
                        ("char", "JoinEndTime", 0),
                        ("WORD", "LVLimit", 0),
                        ("BYTE", "IsDayReset", 0),
                        ("BYTE", "ResetType", 0),
                        ("dict", "SubmitItemAwardInfo", 0),
                        ("BYTE", "SubmitAwardResetType", 0),
                        ("WORD", "ActShopType", 0),
                        ("list", "TemplateIDList", 0),
                        ("list", "FamilyTemplateIDList", 0),
                        ),
                "ActBossTrialTemplate":(
                        ("DWORD", "TemplateID", 1),
                        ("BYTE", "Rank", 0),
                        ("list", "AwardItemList", 0),
                        ("list", "MemAwardItemList", 0),
                        ("DWORD", "NeedScore", 0),
                        ("dict", "ScoreAwardEx", 0),
                        ),
                "ActHorsePetTrain":(
                        ("DWORD", "CfgID", 1),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("char", "JoinStartTime", 0),
                        ("char", "JoinEndTime", 0),
                        ("WORD", "LVLimit", 0),
                        ("WORD", "ActShopType", 0),
                        ("WORD", "PersonalTemplateID", 0),
                        ("BYTE", "IsRelationCrossAct", 0),
                        ),
                "ActHorsePetTrainBillTemp":(
                        ("DWORD", "TemplateID", 1),
                        ("BYTE", "Rank", 0),
                        ("list", "AwardItemList", 0),
                        ("DWORD", "NeedScore", 0),
                        ("dict", "ScoreAwardEx", 0),
                        ),
                "ActGubao":(
                        ("DWORD", "CfgID", 1),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("char", "JoinStartTime", 0),
                        ("char", "JoinEndTime", 0),
                        ("WORD", "LVLimit", 0),
                        ("WORD", "ActShopType", 0),
                        ("WORD", "PersonalTemplateID", 0),
                        ("BYTE", "IsRelationCrossAct", 0),
                        ),
                "ActGubaoBillTemp":(
                        ("DWORD", "TemplateID", 1),
                        ("BYTE", "Rank", 0),
                        ("list", "AwardItemList", 0),
                        ("DWORD", "NeedScore", 0),
                        ("dict", "ScoreAwardEx", 0),
                        ),
                "ActLianqiBillTemp":(
                        ("DWORD", "TemplateID", 1),
                        ("BYTE", "Rank", 0),
@@ -1803,42 +1723,6 @@
                        ("list", "GridWeightItemList", 0),
                        ("list", "LayerAwardItemList", 0),
                        ("list", "LayerWeightItemList", 0),
                        ),
                "ActXianXiaMJ":(
                        ("DWORD", "CfgID", 1),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("char", "JoinStartTime", 0),
                        ("char", "JoinEndTime", 0),
                        ("BYTE", "IsDayReset", 0),
                        ("WORD", "LVLimit", 0),
                        ("DWORD", "UseItemID", 0),
                        ("list", "UseMoneyInfo", 0),
                        ("BYTE", "TemplateID", 0),
                        ("WORD", "PersonalTemplateID", 0),
                        ("WORD", "LotteryAddScore", 0),
                        ("WORD", "LayerAddScore", 0),
                        ("BYTE", "IsRelationCrossAct", 0),
                        ),
                "ActXianXiaMJBillTemp":(
                        ("DWORD", "TemplateID", 1),
                        ("BYTE", "Rank", 0),
                        ("list", "AwardItemList", 0),
                        ("DWORD", "NeedScore", 0),
                        ("dict", "ScoreAwardEx", 0),
                        ),
                "ActXianXiaMJAward":(
                        ("DWORD", "TemplateID", 1),
                        ("BYTE", "AwardLibType", 0),
                        ("list", "AwardItemCountList", 0),
                        ("list", "UnlockAwardLimitTimesList", 0),
                        ("list", "AwardLibWeightList", 0),
                        ("dict", "LibItemInfo", 0),
                        ("dict", "ItemLayerLimitInfo", 0),
                        ("dict", "ItemAwardTimesTotalInfo", 0),
                        ),
                "ActGodGift":(
@@ -1863,15 +1747,6 @@
                        ("BYTE", "ChooseItemCount", 0),
                        ("dict", "LibItemInfo", 0),
                        ("list", "NotifyItemNumList", 0),
                        ),
                "ActHorsePetFeast":(
                        ("DWORD", "CfgID", 1),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("list", "StartTimeList", 0),
                        ("list", "EndTimeList", 0),
                        ("WORD", "LVLimit", 0),
                        ),
                "ActBossReborn":(
@@ -2665,6 +2540,30 @@
                        ("DWORD", "LVUPNeedMoney", 0),
                        ("DWORD", "LVUPNeedTime", 0),
                        ("list", "EquipColorRateList", 0),
                        ("list", "EquipColorRateList1", 0),
                        ("list", "EquipColorRateList2", 0),
                        ),
                "GoldRushCamp":(
                        ("BYTE", "CampID", 1),
                        ("WORD", "PanningUnlock", 0),
                        ("list", "MoneyUnlock", 0),
                        ),
                "GoldRushWorker":(
                        ("BYTE", "WorkerID", 1),
                        ("WORD", "PlayerLVUnlock", 0),
                        ("list", "MoneyUnlock", 0),
                        ),
                "GoldRushItem":(
                        ("BYTE", "GoldID", 1),
                        ("DWORD", "ItemID", 0),
                        ("BYTE", "ItemLV", 0),
                        ("DWORD", "ItemCount", 0),
                        ("DWORD", "RefreshWeight", 0),
                        ("BYTE", "WorkerMax", 0),
                        ("BYTE", "NeedSeconds", 0),
                        ),
                }
@@ -2719,25 +2618,26 @@
    def GetAtkDistType(self): return self.attrTuple[4] # 远近类型;1-近战;2-远程 BYTE
    def GetSex(self): return self.attrTuple[5] # 性别;1-男,2-女 BYTE
    def GetLV(self): return self.attrTuple[6] # 等级 WORD
    def GetAtk(self): return self.attrTuple[7] # 攻击力 DWORD
    def GetDef(self): return self.attrTuple[8] # 防御值 DWORD
    def GetMaxHP(self): return self.attrTuple[9] # 最大生命值,可超过20E DWORD
    def GetSkillIDList(self): return self.attrTuple[10] # 技能ID列表 list
    def GetFinalDamPer(self): return self.attrTuple[11] # 最终增伤 DWORD
    def GetFinalDamPerDef(self): return self.attrTuple[12] # 最终减伤 DWORD
    def GetMissRate(self): return self.attrTuple[13] # 闪避概率 DWORD
    def GetMissRateDef(self): return self.attrTuple[14] # 抗闪避概率 DWORD
    def GetSuperHitRate(self): return self.attrTuple[15] # 暴击概率 DWORD
    def GetSuperHitRateDef(self): return self.attrTuple[16] # 抗暴击概率 DWORD
    def GetStunRate(self): return self.attrTuple[17] # 击晕概率 DWORD
    def GetStunRateDef(self): return self.attrTuple[18] # 抗击晕概率 DWORD
    def GetComboRate(self): return self.attrTuple[19] # 连击概率 DWORD
    def GetComboRateDef(self): return self.attrTuple[20] # 抗连击概率 DWORD
    def GetParryRate(self): return self.attrTuple[21] # 格挡概率 DWORD
    def GetParryRateDef(self): return self.attrTuple[22] # 抗格挡概率 DWORD
    def GetSuckHPPer(self): return self.attrTuple[23] # 吸血比率 DWORD
    def GetSuckHPPerDef(self): return self.attrTuple[24] # 抗吸血比率 DWORD
    def GetSpecAttrInfo(self): return self.attrTuple[25] # 特殊属性信息 {"属性ID":值, ...} dict
    def GetBossType(self): return self.attrTuple[7] # Boss类型 BYTE
    def GetAtk(self): return self.attrTuple[8] # 攻击力 DWORD
    def GetDef(self): return self.attrTuple[9] # 防御值 DWORD
    def GetMaxHP(self): return self.attrTuple[10] # 最大生命值,可超过20E DWORD
    def GetSkillIDList(self): return self.attrTuple[11] # 技能ID列表 list
    def GetFinalDamPer(self): return self.attrTuple[12] # 最终增伤 DWORD
    def GetFinalDamPerDef(self): return self.attrTuple[13] # 最终减伤 DWORD
    def GetMissRate(self): return self.attrTuple[14] # 闪避概率 DWORD
    def GetMissRateDef(self): return self.attrTuple[15] # 抗闪避概率 DWORD
    def GetSuperHitRate(self): return self.attrTuple[16] # 暴击概率 DWORD
    def GetSuperHitRateDef(self): return self.attrTuple[17] # 抗暴击概率 DWORD
    def GetStunRate(self): return self.attrTuple[18] # 击晕概率 DWORD
    def GetStunRateDef(self): return self.attrTuple[19] # 抗击晕概率 DWORD
    def GetComboRate(self): return self.attrTuple[20] # 连击概率 DWORD
    def GetComboRateDef(self): return self.attrTuple[21] # 抗连击概率 DWORD
    def GetParryRate(self): return self.attrTuple[22] # 格挡概率 DWORD
    def GetParryRateDef(self): return self.attrTuple[23] # 抗格挡概率 DWORD
    def GetSuckHPPer(self): return self.attrTuple[24] # 吸血比率 DWORD
    def GetSuckHPPerDef(self): return self.attrTuple[25] # 抗吸血比率 DWORD
    def GetSpecAttrInfo(self): return self.attrTuple[26] # 特殊属性信息 {"属性ID":值, ...} dict
# NPC成长表
class IPY_NPCStronger():
@@ -2830,7 +2730,8 @@
    def GetDefInheritPer(self): return self.attrTuple[10] # 防御继承 WORD
    def GetHPInheritPer(self): return self.attrTuple[11] # 生命继承 WORD
    def GetBatAttrDict(self): return self.attrTuple[12] # 其他战斗属性字典 {"属性ID":值, ...} dict
    def GetFetterIDList(self): return self.attrTuple[13] # 羁绊ID列表 list
    def GetFetterIDList(self): return self.attrTuple[13] # 羁绊ID列表 list
    def GetRecruitBySelf(self): return self.attrTuple[14] #  招募需要本体 BYTE
# 武将星级天赋表
class IPY_HeroTalent():
@@ -3071,7 +2972,9 @@
    def GetPosNPCID5(self): return self.attrTuple[5] # 5号位NPCID DWORD
    def GetPosNPCID6(self): return self.attrTuple[6] # 6号位NPCID DWORD
    def GetPosNPCID7(self): return self.attrTuple[7] # 7号位NPCID DWORD
    def GetBossID(self): return self.attrTuple[8] #  本阵容的BossID,没有boss时为0 DWORD
    def GetBossID(self): return self.attrTuple[8] #  本阵容的BossID,没有boss时为0 DWORD
    def GetSkillIDExList(self): return self.attrTuple[9] #  boss附加技能列表 list
    def GetSkillExCnt(self): return self.attrTuple[10] # 随机附加技能数,0为所有 BYTE
# 称号表
class IPY_Dienstgrad():
@@ -3412,13 +3315,12 @@
        return
        
    def GetItemColor(self): return self.attrTuple[0] # 装备品质 BYTE
    def GetMoneyBase(self): return self.attrTuple[1] # 分解货币 DWORD
    def GetAtkStep(self): return self.attrTuple[2] # 攻击步长 DWORD
    def GetDefStep(self): return self.attrTuple[3] # 防御步长 DWORD
    def GetHPStep(self): return self.attrTuple[4] # 生命步长 DWORD
    def GetAttrLibCntList(self): return self.attrTuple[5] # 库属性条数列表 list
    def GetAttrRange(self): return self.attrTuple[6] # 通用属性范围,下限|上限 list
    def GetAttrRangeDict(self): return self.attrTuple[7] # 指定属性范围字典,{指定属性ID:[范围下限, 上限], ...} dict
    def GetAtkStep(self): return self.attrTuple[1] # 攻击步长 DWORD
    def GetDefStep(self): return self.attrTuple[2] # 防御步长 DWORD
    def GetHPStep(self): return self.attrTuple[3] # 生命步长 DWORD
    def GetAttrLibCntList(self): return self.attrTuple[4] # 库属性条数列表 list
    def GetAttrRange(self): return self.attrTuple[5] # 通用属性范围,下限|上限 list
    def GetAttrRangeDict(self): return self.attrTuple[6] # 指定属性范围字典,{指定属性ID:[范围下限, 上限], ...} dict
# 装备部位表
class IPY_EquipPlace():
@@ -4871,14 +4773,13 @@
    def GetCostMoneyList(self): return self.attrTuple[11] # 消耗货币列表 list
    def GetEnsureCount(self): return self.attrTuple[12] # 每x次必出 WORD
    def GetOnceLucky(self): return self.attrTuple[13] # 单次幸运值 BYTE
    def GetFullLucky(self): return self.attrTuple[14] # 满幸运值 WORD
    def GetLuckyRateFormat(self): return self.attrTuple[15] # 幸运格子概率公式 char
    def GetLuckyGridNum(self): return self.attrTuple[16] # 幸运格子编号 BYTE
    def GetGridNumMaxLimitInfo(self): return self.attrTuple[17] # 格子最大产出次数限制,{"格子":最大可产出次数, ...} dict
    def GetNotifyGridNumList(self): return self.attrTuple[18] # 需要额外广播的格子 list
    def GetNotifyKey(self): return self.attrTuple[19] # 广播key char
    def GetAwardMoneyType(self): return self.attrTuple[20] # 额外奖励货币类型 BYTE
    def GetAwardMoneyValue(self): return self.attrTuple[21] # 单次奖励货币数 WORD
    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 GetNotifyKey(self): return self.attrTuple[18] # 广播key char
    def GetAwardMoneyType(self): return self.attrTuple[19] # 额外奖励货币类型 BYTE
    def GetAwardMoneyValue(self): return self.attrTuple[20] # 单次奖励货币数 WORD
# 寻宝产出库表
class IPY_TreasureHouse():
@@ -4896,7 +4797,7 @@
    def GetGridItemRateList1(self): return self.attrTuple[6] # 常规产出格子编号饼图 [[概率, 格子编号], ...] list
    def GetGridItemRateList2(self): return self.attrTuple[7] # 每满x次保底产出格子编号饼图 [[概率, 格子编号], ...] list
    def GetGridItemRateList3(self): return self.attrTuple[8] # 第x次必出产出格子编号饼图 {次数:[[概率, 格子编号], ...], ...} dict
    def GetLuckyItemRateList(self): return self.attrTuple[9] # 满幸运产出概率饼图 [[概率, 格子编号], ...] list
    def GetLuckyItemRateInfo(self): return self.attrTuple[9] # 幸运产出概率饼图 {"幸运值":[[概率, 格子编号], ...], ...} dict
# 寻宝物品库
class IPY_TreasureItemLib():
@@ -5119,128 +5020,6 @@
    def GetNeedItemList(self): return self.attrTuple[4] # 所需物品信息列表 [[物品ID,个数,是否绑定], ...] list
    def GetNeedNotify(self): return self.attrTuple[5] # 是否需要广播 BYTE
# 垃圾分类活动时间表
class IPY_ActGarbageSorting():
    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 GetResetType(self): return self.attrTuple[3] # 重置类型,0-0点重置;1-5点重置 BYTE
    def GetLVLimit(self): return self.attrTuple[4] # 限制等级 WORD
    def GetCTGTypeEffValue(self): return self.attrTuple[5] # 充值有效类型值 BYTE
# 垃圾分类任务产出表
class IPY_ActGarbageTask():
    def __init__(self):
        self.attrTuple = None
        return
    def GetGarbageTasklD(self): return self.attrTuple[0] # 垃圾任务ID DWORD
    def GetFinishNeedValue(self): return self.attrTuple[1] # 完成所需进度值 DWORD
    def GetFinishTimeMax(self): return self.attrTuple[2] # 总可完成次数,0不限 DWORD
    def GetAutoProduce(self): return self.attrTuple[3] # 自动产生垃圾 BYTE
    def GetProduceGarbageRateList(self): return self.attrTuple[4] # 随机产生垃圾概率饼图 list
# Boss历练活动表
class IPY_ActBossTrial():
    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 GetJoinStartTime(self): return self.attrTuple[3] # 参与开始时间点 char
    def GetJoinEndTime(self): return self.attrTuple[4] # 参与结束时间点 char
    def GetLVLimit(self): return self.attrTuple[5] # 限制等级 WORD
    def GetIsDayReset(self): return self.attrTuple[6] # 是否每天重置 BYTE
    def GetResetType(self): return self.attrTuple[7] # 重置类型,0-0点重置;1-5点重置 BYTE
    def GetSubmitItemAwardInfo(self): return self.attrTuple[8] # 提交凭证个数对应奖励 dict
    def GetSubmitAwardResetType(self): return self.attrTuple[9] # 提交凭证每日重置类型,0-跟随活动; 1-0点重置;2-5点重置 BYTE
    def GetActShopType(self): return self.attrTuple[10] # 开放商店类型,为0时不开放 WORD
    def GetTemplateIDList(self): return self.attrTuple[11] # 榜单模板编号列表 list
    def GetFamilyTemplateIDList(self): return self.attrTuple[12] # 仙盟榜单模板编号列表 list
# Boss历练榜单模版表
class IPY_ActBossTrialTemplate():
    def __init__(self):
        self.attrTuple = None
        return
    def GetTemplateID(self): return self.attrTuple[0] # 模板编号 DWORD
    def GetRank(self): return self.attrTuple[1] # 名次 BYTE
    def GetAwardItemList(self): return self.attrTuple[2] # 奖励物品列表[[物品ID,个数,是否拍品], ...] 仙盟榜时为盟主奖励,如果没有配置,则统一取成员奖励 list
    def GetMemAwardItemList(self): return self.attrTuple[3] # 仙盟榜成员奖励物品信息列表[[物品ID,个数,是否拍品], ...] list
    def GetNeedScore(self): return self.attrTuple[4] # 上榜所需积分 DWORD
    def GetScoreAwardEx(self): return self.attrTuple[5] # 达标积分额外奖励 {积分:[[物品ID,个数,是否拍品], ...], ...} dict
# 骑宠养成活动时间表
class IPY_ActHorsePetTrain():
    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 GetJoinStartTime(self): return self.attrTuple[3] # 参与开始时间点 char
    def GetJoinEndTime(self): return self.attrTuple[4] # 参与结束时间点 char
    def GetLVLimit(self): return self.attrTuple[5] # 限制等级 WORD
    def GetActShopType(self): return self.attrTuple[6] # 开放商店类型,为0时不开放 WORD
    def GetPersonalTemplateID(self): return self.attrTuple[7] # 个人排行模板编号 WORD
    def GetIsRelationCrossAct(self): return self.attrTuple[8] # 是否关联跨服活动 BYTE
# 骑宠养成榜单模版表
class IPY_ActHorsePetTrainBillTemp():
    def __init__(self):
        self.attrTuple = None
        return
    def GetTemplateID(self): return self.attrTuple[0] # 模板编号 DWORD
    def GetRank(self): return self.attrTuple[1] # 名次 BYTE
    def GetAwardItemList(self): return self.attrTuple[2] # 奖励物品列表[[物品ID,个数,是否拍品], ...] list
    def GetNeedScore(self): return self.attrTuple[3] # 上榜所需积分 DWORD
    def GetScoreAwardEx(self): return self.attrTuple[4] # 达标积分额外奖励 {积分:[[物品ID,个数,是否拍品], ...], ...} dict
# 古宝养成活动时间表
class IPY_ActGubao():
    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 GetJoinStartTime(self): return self.attrTuple[3] # 参与开始时间点 char
    def GetJoinEndTime(self): return self.attrTuple[4] # 参与结束时间点 char
    def GetLVLimit(self): return self.attrTuple[5] # 限制等级 WORD
    def GetActShopType(self): return self.attrTuple[6] # 开放商店类型,为0时不开放 WORD
    def GetPersonalTemplateID(self): return self.attrTuple[7] # 个人排行模板编号 WORD
    def GetIsRelationCrossAct(self): return self.attrTuple[8] # 是否关联跨服活动 BYTE
# 古宝养成榜单模版表
class IPY_ActGubaoBillTemp():
    def __init__(self):
        self.attrTuple = None
        return
    def GetTemplateID(self): return self.attrTuple[0] # 模板编号 DWORD
    def GetRank(self): return self.attrTuple[1] # 名次 BYTE
    def GetAwardItemList(self): return self.attrTuple[2] # 奖励物品列表[[物品ID,个数,是否拍品], ...] list
    def GetNeedScore(self): return self.attrTuple[3] # 上榜所需积分 DWORD
    def GetScoreAwardEx(self): return self.attrTuple[4] # 达标积分额外奖励 {积分:[[物品ID,个数,是否拍品], ...], ...} dict
# 炼器榜单模版表
class IPY_ActLianqiBillTemp():
    
@@ -5268,57 +5047,6 @@
    def GetGridWeightItemList(self): return self.attrTuple[4] # 格子物品权重随机库 [[权重,物品ID,个数], ...] list
    def GetLayerAwardItemList(self): return self.attrTuple[5] # 通关该层固定奖励 [[物品ID,个数,是否拍品], ...] list
    def GetLayerWeightItemList(self): return self.attrTuple[6] # 通关该层额外随机奖励 [[权重,物品ID,个数], ...] list
# 仙匣秘境活动时间表
class IPY_ActXianXiaMJ():
    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 GetJoinStartTime(self): return self.attrTuple[3] # 参与开始时间点 char
    def GetJoinEndTime(self): return self.attrTuple[4] # 参与结束时间点 char
    def GetIsDayReset(self): return self.attrTuple[5] # 是否每天重置 BYTE
    def GetLVLimit(self): return self.attrTuple[6] # 限制等级 WORD
    def GetUseItemID(self): return self.attrTuple[7] # 消耗物品ID DWORD
    def GetUseMoneyInfo(self): return self.attrTuple[8] # 消耗货币信息 list
    def GetTemplateID(self): return self.attrTuple[9] # 模板ID BYTE
    def GetPersonalTemplateID(self): return self.attrTuple[10] # 个人排行模板编号 WORD
    def GetLotteryAddScore(self): return self.attrTuple[11] # 每次抽奖加积分 WORD
    def GetLayerAddScore(self): return self.attrTuple[12] # 每次跨层加积分 WORD
    def GetIsRelationCrossAct(self): return self.attrTuple[13] # 是否关联跨服活动 BYTE
# 仙匣秘境榜单模版表
class IPY_ActXianXiaMJBillTemp():
    def __init__(self):
        self.attrTuple = None
        return
    def GetTemplateID(self): return self.attrTuple[0] # 模板编号 DWORD
    def GetRank(self): return self.attrTuple[1] # 名次 BYTE
    def GetAwardItemList(self): return self.attrTuple[2] # 奖励物品列表[[物品ID,个数,是否拍品], ...] list
    def GetNeedScore(self): return self.attrTuple[3] # 上榜所需积分 DWORD
    def GetScoreAwardEx(self): return self.attrTuple[4] # 达标积分额外奖励 {积分:[[物品ID,个数,是否拍品], ...], ...} dict
# 仙匣秘境奖池表
class IPY_ActXianXiaMJAward():
    def __init__(self):
        self.attrTuple = None
        return
    def GetTemplateID(self): return self.attrTuple[0] # 奖池模板编号 DWORD
    def GetAwardLibType(self): return self.attrTuple[1] # 奖励库类型 BYTE
    def GetAwardItemCountList(self): return self.attrTuple[2] # 层选择个数列表  层1物品数|层2|… list
    def GetUnlockAwardLimitTimesList(self): return self.attrTuple[3] # 层抽X次后可产出(本层) 层1限制|层2|… list
    def GetAwardLibWeightList(self): return self.attrTuple[4] # 产出该库外权重 list
    def GetLibItemInfo(self): return self.attrTuple[5] # 本库物品随机库内权重(先随机库外权重,若产出再随机库内权重) dict
    def GetItemLayerLimitInfo(self): return self.attrTuple[6] # 物品产出奖池层限制 {物品ID:大于等于X层可产出, ...} dict
    def GetItemAwardTimesTotalInfo(self): return self.attrTuple[7] # 物品产出次数限制(所有层){物品ID:总产出次数, ...} dict
# 天帝礼包活动时间表
class IPY_ActGodGift():
@@ -5353,20 +5081,6 @@
    def GetChooseItemCount(self): return self.attrTuple[3] # 选择个数 BYTE
    def GetLibItemInfo(self): return self.attrTuple[4] # 物品编号对应物品信息 {物品编号:[物品ID,个数,是否拍品,可选次数], ...}  0不限次数 dict
    def GetNotifyItemNumList(self): return self.attrTuple[5] # 需要广播的编号列表 list
# 骑宠盛宴活动
class IPY_ActHorsePetFeast():
    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 GetStartTimeList(self): return self.attrTuple[3] # 开启时间列表, 支持多个时段 list
    def GetEndTimeList(self): return self.attrTuple[4] # 结束时间列表, 支持多个时段 list
    def GetLVLimit(self): return self.attrTuple[5] # 限制等级 WORD
# BOSS复活活动时间表
class IPY_ActBossReborn():
@@ -6624,7 +6338,7 @@
    def GetNeedQiyun(self): return self.attrTuple[1] # 所需气运值 DWORD
    def GetAwardItemList(self): return self.attrTuple[2] # 奖励物品列表 list
# 仙树等级表
# 祝福树
class IPY_TreeLV():
    
    def __init__(self):
@@ -6634,7 +6348,46 @@
    def GetTreeLV(self): return self.attrTuple[0] # 仙树等级 BYTE
    def GetLVUPNeedMoney(self): return self.attrTuple[1] # 升到下一级所需货币数 DWORD
    def GetLVUPNeedTime(self): return self.attrTuple[2] # 升级下一级所需所需秒 DWORD
    def GetEquipColorRateList(self): return self.attrTuple[3] # 产出装备品质概率列表,[0品质万分率, 1品质万分率, ...] list
    def GetEquipColorRateList(self): return self.attrTuple[3] # 小怪产出装备品质概率列表,[0品质万分率, 1品质万分率, ...] list
    def GetEquipColorRateList1(self): return self.attrTuple[4] # 精英产出装备品质概率列表,[0品质万分率, 1品质万分率, ...] list
    def GetEquipColorRateList2(self): return self.attrTuple[5] # boss产出装备品质概率列表,[0品质万分率, 1品质万分率, ...] list
# 淘金营地表
class IPY_GoldRushCamp():
    def __init__(self):
        self.attrTuple = None
        return
    def GetCampID(self): return self.attrTuple[0] # BYTE
    def GetPanningUnlock(self): return self.attrTuple[1] # 淘金次数解锁 WORD
    def GetMoneyUnlock(self): return self.attrTuple[2] # 货币解锁,货币类型|货币值 list
# 淘金监工表
class IPY_GoldRushWorker():
    def __init__(self):
        self.attrTuple = None
        return
    def GetWorkerID(self): return self.attrTuple[0] # BYTE
    def GetPlayerLVUnlock(self): return self.attrTuple[1] # 主公等级解锁 WORD
    def GetMoneyUnlock(self): return self.attrTuple[2] # 货币解锁,货币类型|货币值 list
# 淘金物品表
class IPY_GoldRushItem():
    def __init__(self):
        self.attrTuple = None
        return
    def GetGoldID(self): return self.attrTuple[0] # 淘金ID BYTE
    def GetItemID(self): return self.attrTuple[1] # 物品ID DWORD
    def GetItemLV(self): return self.attrTuple[2] # 物品等级 BYTE
    def GetItemCount(self): return self.attrTuple[3] # 物品个数 DWORD
    def GetRefreshWeight(self): return self.attrTuple[4] # 常规刷新权重 DWORD
    def GetWorkerMax(self): return self.attrTuple[5] # 监工上限 BYTE
    def GetNeedSeconds(self): return self.attrTuple[6] # 耗时秒 BYTE
def Log(msg, playerID=0, par=0):
@@ -6847,22 +6600,10 @@
        self.__LoadFileData("ActFamilyCTGAssistTemp", onlyCheck)
        self.__LoadFileData("ActCollectWords", onlyCheck)
        self.__LoadFileData("CollectWordsExchange", onlyCheck)
        self.__LoadFileData("ActGarbageSorting", onlyCheck)
        self.__LoadFileData("ActGarbageTask", onlyCheck)
        self.__LoadFileData("ActBossTrial", onlyCheck)
        self.__LoadFileData("ActBossTrialTemplate", onlyCheck)
        self.__LoadFileData("ActHorsePetTrain", onlyCheck)
        self.__LoadFileData("ActHorsePetTrainBillTemp", onlyCheck)
        self.__LoadFileData("ActGubao", onlyCheck)
        self.__LoadFileData("ActGubaoBillTemp", onlyCheck)
        self.__LoadFileData("ActLianqiBillTemp", onlyCheck)
        self.__LoadFileData("CrossActFamilyGCZSQ", onlyCheck)
        self.__LoadFileData("ActXianXiaMJ", onlyCheck)
        self.__LoadFileData("ActXianXiaMJBillTemp", onlyCheck)
        self.__LoadFileData("ActXianXiaMJAward", onlyCheck)
        self.__LoadFileData("ActGodGift", onlyCheck)
        self.__LoadFileData("ActGodGiftAward", onlyCheck)
        self.__LoadFileData("ActHorsePetFeast", onlyCheck)
        self.__LoadFileData("ActBossReborn", onlyCheck)
        self.__LoadFileData("BossReborn", onlyCheck)
        self.__LoadFileData("ActRealmPoint", onlyCheck)
@@ -6958,6 +6699,9 @@
        self.__LoadFileData("Xiangong", onlyCheck)
        self.__LoadFileData("TiandaoTree", onlyCheck)
        self.__LoadFileData("TreeLV", onlyCheck)
        self.__LoadFileData("GoldRushCamp", onlyCheck)
        self.__LoadFileData("GoldRushWorker", onlyCheck)
        self.__LoadFileData("GoldRushItem", onlyCheck)
        Log("IPY_DataMgr ReloadOK! onlyCheck=%s" % onlyCheck)
        return
    
@@ -8261,62 +8005,6 @@
        self.CheckLoadData("CollectWordsExchange")
        return self.ipyCollectWordsExchangeCache[index]
    def GetActGarbageSortingCount(self):
        self.CheckLoadData("ActGarbageSorting")
        return self.ipyActGarbageSortingLen
    def GetActGarbageSortingByIndex(self, index):
        self.CheckLoadData("ActGarbageSorting")
        return self.ipyActGarbageSortingCache[index]
    def GetActGarbageTaskCount(self):
        self.CheckLoadData("ActGarbageTask")
        return self.ipyActGarbageTaskLen
    def GetActGarbageTaskByIndex(self, index):
        self.CheckLoadData("ActGarbageTask")
        return self.ipyActGarbageTaskCache[index]
    def GetActBossTrialCount(self):
        self.CheckLoadData("ActBossTrial")
        return self.ipyActBossTrialLen
    def GetActBossTrialByIndex(self, index):
        self.CheckLoadData("ActBossTrial")
        return self.ipyActBossTrialCache[index]
    def GetActBossTrialTemplateCount(self):
        self.CheckLoadData("ActBossTrialTemplate")
        return self.ipyActBossTrialTemplateLen
    def GetActBossTrialTemplateByIndex(self, index):
        self.CheckLoadData("ActBossTrialTemplate")
        return self.ipyActBossTrialTemplateCache[index]
    def GetActHorsePetTrainCount(self):
        self.CheckLoadData("ActHorsePetTrain")
        return self.ipyActHorsePetTrainLen
    def GetActHorsePetTrainByIndex(self, index):
        self.CheckLoadData("ActHorsePetTrain")
        return self.ipyActHorsePetTrainCache[index]
    def GetActHorsePetTrainBillTempCount(self):
        self.CheckLoadData("ActHorsePetTrainBillTemp")
        return self.ipyActHorsePetTrainBillTempLen
    def GetActHorsePetTrainBillTempByIndex(self, index):
        self.CheckLoadData("ActHorsePetTrainBillTemp")
        return self.ipyActHorsePetTrainBillTempCache[index]
    def GetActGubaoCount(self):
        self.CheckLoadData("ActGubao")
        return self.ipyActGubaoLen
    def GetActGubaoByIndex(self, index):
        self.CheckLoadData("ActGubao")
        return self.ipyActGubaoCache[index]
    def GetActGubaoBillTempCount(self):
        self.CheckLoadData("ActGubaoBillTemp")
        return self.ipyActGubaoBillTempLen
    def GetActGubaoBillTempByIndex(self, index):
        self.CheckLoadData("ActGubaoBillTemp")
        return self.ipyActGubaoBillTempCache[index]
    def GetActLianqiBillTempCount(self):
        self.CheckLoadData("ActLianqiBillTemp")
        return self.ipyActLianqiBillTempLen
@@ -8331,27 +8019,6 @@
        self.CheckLoadData("CrossActFamilyGCZSQ")
        return self.ipyCrossActFamilyGCZSQCache[index]
    def GetActXianXiaMJCount(self):
        self.CheckLoadData("ActXianXiaMJ")
        return self.ipyActXianXiaMJLen
    def GetActXianXiaMJByIndex(self, index):
        self.CheckLoadData("ActXianXiaMJ")
        return self.ipyActXianXiaMJCache[index]
    def GetActXianXiaMJBillTempCount(self):
        self.CheckLoadData("ActXianXiaMJBillTemp")
        return self.ipyActXianXiaMJBillTempLen
    def GetActXianXiaMJBillTempByIndex(self, index):
        self.CheckLoadData("ActXianXiaMJBillTemp")
        return self.ipyActXianXiaMJBillTempCache[index]
    def GetActXianXiaMJAwardCount(self):
        self.CheckLoadData("ActXianXiaMJAward")
        return self.ipyActXianXiaMJAwardLen
    def GetActXianXiaMJAwardByIndex(self, index):
        self.CheckLoadData("ActXianXiaMJAward")
        return self.ipyActXianXiaMJAwardCache[index]
    def GetActGodGiftCount(self):
        self.CheckLoadData("ActGodGift")
        return self.ipyActGodGiftLen
@@ -8365,13 +8032,6 @@
    def GetActGodGiftAwardByIndex(self, index):
        self.CheckLoadData("ActGodGiftAward")
        return self.ipyActGodGiftAwardCache[index]
    def GetActHorsePetFeastCount(self):
        self.CheckLoadData("ActHorsePetFeast")
        return self.ipyActHorsePetFeastLen
    def GetActHorsePetFeastByIndex(self, index):
        self.CheckLoadData("ActHorsePetFeast")
        return self.ipyActHorsePetFeastCache[index]
    def GetActBossRebornCount(self):
        self.CheckLoadData("ActBossReborn")
@@ -9037,6 +8697,27 @@
    def GetTreeLVByIndex(self, index):
        self.CheckLoadData("TreeLV")
        return self.ipyTreeLVCache[index]
    def GetGoldRushCampCount(self):
        self.CheckLoadData("GoldRushCamp")
        return self.ipyGoldRushCampLen
    def GetGoldRushCampByIndex(self, index):
        self.CheckLoadData("GoldRushCamp")
        return self.ipyGoldRushCampCache[index]
    def GetGoldRushWorkerCount(self):
        self.CheckLoadData("GoldRushWorker")
        return self.ipyGoldRushWorkerLen
    def GetGoldRushWorkerByIndex(self, index):
        self.CheckLoadData("GoldRushWorker")
        return self.ipyGoldRushWorkerCache[index]
    def GetGoldRushItemCount(self):
        self.CheckLoadData("GoldRushItem")
        return self.ipyGoldRushItemLen
    def GetGoldRushItemByIndex(self, index):
        self.CheckLoadData("GoldRushItem")
        return self.ipyGoldRushItemCache[index]
IPYData = IPY_DataMgr()
def IPY_Data(): return IPYData