hch
2024-10-14 e3da0cc2f9c808c617b030a4c9e698b4a82f5799
ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py
@@ -47,6 +47,16 @@
                        ("list", "LimitServerGroupIDList", 0),
                        ),
                "PlayerFace":(
                        ("DWORD", "FaceID", 1),
                        ("BYTE", "UnlockDefault", 0),
                        ),
                "PlayerFacePic":(
                        ("DWORD", "FacePicID", 1),
                        ("BYTE", "UnlockDefault", 0),
                        ),
                "WorldLV":(
                        ("WORD", "WorldLV", 1),
                        ("DWORD", "OpenServerSecond", 0),
@@ -60,6 +70,13 @@
                        ("DWORD", "NeedMoney", 0),
                        ("DWORD", "WeekMissionMoneyMax", 0),
                        ("BYTE", "BossFBCnt", 0),
                        ),
                "FamilyEmblem":(
                        ("BYTE", "EmblemID", 1),
                        ("BYTE", "UnlockFamilyLV", 0),
                        ("DWORD", "ExpireMinutes", 0),
                        ("DWORD", "CustomFamilyID", 0),
                        ),
                "FamilyBossHurtAward":(
@@ -203,6 +220,17 @@
                        ("DWORD", "FightPowerMax", 0),
                        ("WORD", "LVLimit", 0),
                        ("list", "DayFreeHelpCount", 0),
                        ),
                "FuncTeamSet":(
                        ("DWORD", "FuncMapID", 1),
                        ("BYTE", "NeedName", 0),
                        ("BYTE", "MemberMax", 0),
                        ("BYTE", "ApplyMax", 0),
                        ("BYTE", "ReqApplyMax", 0),
                        ("BYTE", "SortType", 0),
                        ("BYTE", "SortReverse", 0),
                        ("BYTE", "OPLimitInAct", 0),
                        ),
                "ChinMap":(
@@ -425,6 +453,19 @@
                        ("BYTE", "IsDayReset", 0),
                        ),
                "ActFamilyCTGAssist":(
                        ("DWORD", "CfgID", 1),
                        ("list", "PlatformList", 0),
                        ("list", "ServerGroupIDList", 0),
                        ("BYTE", "ActNum", 0),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("dict", "NotifyInfoStart", 0),
                        ("dict", "NotifyInfoEnd", 0),
                        ("list", "NotifyInfoLoop", 0),
                        ("BYTE", "IsDayReset", 0),
                        ),
                "ActCollectWords":(
                        ("DWORD", "CfgID", 1),
                        ("list", "PlatformList", 0),
@@ -457,18 +498,109 @@
                        ("BYTE", "ActNum", 0),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("char", "JoinStartTime", 0),
                        ("char", "JoinEndTime", 0),
                        ("dict", "NotifyInfoStart", 0),
                        ("dict", "NotifyInfoEnd", 0),
                        ("list", "NotifyInfoLoop", 0),
                        ("BYTE", "IsDayReset", 0),
                        ("BYTE", "ResetType", 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),
                        ("WORD", "XiangongID", 0),
                        ),
                "CrossActBossTrial":(
                        ("DWORD", "CfgID", 1),
                        ("char", "ActGroupName", 0),
                        ("BYTE", "ZoneID", 0),
                        ("list", "ServerIDRangeList", 0),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("char", "JoinStartTime", 0),
                        ("char", "JoinEndTime", 0),
                        ("dict", "NotifyInfoStart", 0),
                        ("dict", "NotifyInfoEnd", 0),
                        ("list", "NotifyInfoLoop", 0),
                        ("BYTE", "IsDayReset", 0),
                        ("BYTE", "ResetType", 0),
                        ("WORD", "PersonalTemplateID", 0),
                        ("WORD", "FamilyTemplateID", 0),
                        ),
                "ActHorsePetTrain":(
                        ("DWORD", "CfgID", 1),
                        ("list", "PlatformList", 0),
                        ("list", "ServerGroupIDList", 0),
                        ("BYTE", "ActNum", 0),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("char", "JoinStartTime", 0),
                        ("char", "JoinEndTime", 0),
                        ("WORD", "PersonalTemplateID", 0),
                        ),
                "CrossActHorsePetTrain":(
                        ("DWORD", "CfgID", 1),
                        ("char", "ActGroupName", 0),
                        ("BYTE", "ZoneID", 0),
                        ("list", "ServerIDRangeList", 0),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("char", "JoinStartTime", 0),
                        ("char", "JoinEndTime", 0),
                        ("WORD", "PersonalTemplateID", 0),
                        ),
                "ActHorsePetTrainBillTemp":(
                        ("DWORD", "TemplateID", 1),
                        ("BYTE", "Rank", 0),
                        ("list", "AwardItemList", 0),
                        ("DWORD", "NeedScore", 0),
                        ("dict", "ScoreAwardEx", 0),
                        ("WORD", "XiangongID", 0),
                        ),
                "ActGubao":(
                        ("DWORD", "CfgID", 1),
                        ("list", "PlatformList", 0),
                        ("list", "ServerGroupIDList", 0),
                        ("BYTE", "ActNum", 0),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("char", "JoinStartTime", 0),
                        ("char", "JoinEndTime", 0),
                        ("WORD", "PersonalTemplateID", 0),
                        ),
                "CrossActGubao":(
                        ("DWORD", "CfgID", 1),
                        ("char", "ActGroupName", 0),
                        ("BYTE", "ZoneID", 0),
                        ("list", "ServerIDRangeList", 0),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("char", "JoinStartTime", 0),
                        ("char", "JoinEndTime", 0),
                        ("WORD", "PersonalTemplateID", 0),
                        ),
                "ActGubaoBillTemp":(
                        ("DWORD", "TemplateID", 1),
                        ("BYTE", "Rank", 0),
                        ("list", "AwardItemList", 0),
                        ("DWORD", "NeedScore", 0),
                        ("dict", "ScoreAwardEx", 0),
                        ("WORD", "XiangongID", 0),
                        ),
                "ActXianXiaMJ":(
@@ -478,10 +610,32 @@
                        ("BYTE", "ActNum", 0),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("dict", "NotifyInfoStart", 0),
                        ("dict", "NotifyInfoEnd", 0),
                        ("list", "NotifyInfoLoop", 0),
                        ("BYTE", "ResetType", 0),
                        ("char", "JoinStartTime", 0),
                        ("char", "JoinEndTime", 0),
                        ("BYTE", "IsDayReset", 0),
                        ("WORD", "PersonalTemplateID", 0),
                        ),
                "CrossActXianXiaMJ":(
                        ("DWORD", "CfgID", 1),
                        ("char", "ActGroupName", 0),
                        ("BYTE", "ZoneID", 0),
                        ("list", "ServerIDRangeList", 0),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("char", "JoinStartTime", 0),
                        ("char", "JoinEndTime", 0),
                        ("BYTE", "IsDayReset", 0),
                        ("WORD", "PersonalTemplateID", 0),
                        ),
                "ActXianXiaMJBillTemp":(
                        ("DWORD", "TemplateID", 1),
                        ("BYTE", "Rank", 0),
                        ("list", "AwardItemList", 0),
                        ("DWORD", "NeedScore", 0),
                        ("dict", "ScoreAwardEx", 0),
                        ("WORD", "XiangongID", 0),
                        ),
                "ActGodGift":(
@@ -689,6 +843,12 @@
                        ("list", "ServerGroupIDList", 0),
                        ),
                "CrossZoneBattlefield":(
                        ("char", "CrossZoneName", 1),
                        ("BYTE", "ZoneID", 1),
                        ("list", "ServerGroupIDList", 0),
                        ),
                "CrossZonePK":(
                        ("char", "CrossZoneName", 1),
                        ("BYTE", "ZoneID", 1),
@@ -712,6 +872,7 @@
                        ("BYTE", "Rank", 1),
                        ("list", "RankAwardItemList", 0),
                        ("WORD", "MainOfficialID", 0),
                        ("WORD", "XiangongID", 0),
                        ),
                "ChampionshipOfficial":(
@@ -971,6 +1132,18 @@
                        ("BYTE", "UnSuitRate", 0),
                        ),
                "MineAreaItem":(
                        ("BYTE", "MineID", 1),
                        ("WORD", "LimitLV", 0),
                        ("DWORD", "ItemID", 0),
                        ("BYTE", "ItemLV", 0),
                        ("DWORD", "ItemCount", 0),
                        ("float", "ItemWeight", 0),
                        ("DWORD", "RefreshWeightSys", 0),
                        ("DWORD", "RefreshWeight", 0),
                        ("DWORD", "RefreshWeightSuper", 0),
                        ),
                "FamilyWarRankAward":(
                        ("WORD", "WarWorldLV", 1),
                        ("BYTE", "WarRank", 0),
@@ -980,6 +1153,24 @@
                "AssistThanksGift":(
                        ("DWORD", "GiftID", 1),
                        ("BYTE", "AssistAwardCount", 0),
                        ),
                "Worship":(
                        ("BYTE", "WorshipType", 1),
                        ("DWORD", "WorshipValue", 1),
                        ("BYTE", "WorshipDays", 0),
                        ("BYTE", "MoneyType", 0),
                        ("list", "MoneyRange", 0),
                        ),
                "Xiangong":(
                        ("WORD", "XiangongID", 1),
                        ("BYTE", "ShowDays", 0),
                        ("BYTE", "MoneyType", 0),
                        ("DWORD", "MoneyValue", 0),
                        ("DWORD", "TitleID", 0),
                        ("list", "AwardItemList", 0),
                        ("char", "MailKey", 0),
                        ),
                "FairyDomain":(
@@ -1014,6 +1205,26 @@
    def GetLimitServerGroupIDRangeList(self): return self.attrTuple[0] # 限制创角的服务器组ID范围列表 list
    def GetLimitServerGroupIDList(self): return self.attrTuple[1] # 限制创角的服务器组ID列表 list
# 头像表
class IPY_PlayerFace():
    def __init__(self):
        self.attrTuple = None
        return
    def GetFaceID(self): return self.attrTuple[0] # 头像ID DWORD
    def GetUnlockDefault(self): return self.attrTuple[1] # 是否默认激活 BYTE
# 头像框表
class IPY_PlayerFacePic():
    def __init__(self):
        self.attrTuple = None
        return
    def GetFacePicID(self): return self.attrTuple[0] # 头像框ID DWORD
    def GetUnlockDefault(self): return self.attrTuple[1] # 是否默认激活 BYTE
# 世界等级表格
class IPY_WorldLV():
    
@@ -1038,6 +1249,18 @@
    def GetNeedMoney(self): return self.attrTuple[4] # 升级需要资金 DWORD
    def GetWeekMissionMoneyMax(self): return self.attrTuple[5] # 每周任务最大可获得仙盟资金 DWORD
    def GetBossFBCnt(self): return self.attrTuple[6] # BOSS副本次数 BYTE
# 仙盟徽章表
class IPY_FamilyEmblem():
    def __init__(self):
        self.attrTuple = None
        return
    def GetEmblemID(self): return self.attrTuple[0] # 徽章ID BYTE
    def GetUnlockFamilyLV(self): return self.attrTuple[1] # 解锁仙盟等级,为0时代表其他方式解锁 BYTE
    def GetExpireMinutes(self): return self.attrTuple[2] # 有效时长,分钟 DWORD
    def GetCustomFamilyID(self): return self.attrTuple[3] # 定制仙盟ID DWORD
# 仙盟试炼伤血奖励表
class IPY_FamilyBossHurtAward():
@@ -1256,6 +1479,22 @@
    def GetFightPowerMax(self): return self.attrTuple[3] # 助战最高战力,0为不限制 DWORD
    def GetLVLimit(self): return self.attrTuple[4] # 助战等级限制, 0为不限制 WORD
    def GetDayFreeHelpCount(self): return self.attrTuple[5] # 每日免费助战次数,[每日免费助战次数, 是否所有层通用] list
# 功能队伍设定表
class IPY_FuncTeamSet():
    def __init__(self):
        self.attrTuple = None
        return
    def GetFuncMapID(self): return self.attrTuple[0] # 功能地图ID DWORD
    def GetNeedName(self): return self.attrTuple[1] # 需要队伍名 BYTE
    def GetMemberMax(self): return self.attrTuple[2] # 最大人员数 BYTE
    def GetApplyMax(self): return self.attrTuple[3] # 最大接受申请数 BYTE
    def GetReqApplyMax(self): return self.attrTuple[4] # 最大申请数 BYTE
    def GetSortType(self): return self.attrTuple[5] # 队伍列表排序方案 BYTE
    def GetSortReverse(self): return self.attrTuple[6] # 是否倒序 BYTE
    def GetOPLimitInAct(self): return self.attrTuple[7] # 活动期间限制队伍操作 BYTE
# 地图表
class IPY_ChinMap():
@@ -1577,6 +1816,24 @@
    def GetNotifyInfoLoop(self): return self.attrTuple[8] # 全服提示信息 - 循环广播[间隔分钟, 广播key] list
    def GetIsDayReset(self): return self.attrTuple[9] # 是否每天重置 BYTE
# 仙盟充值协助活动表
class IPY_ActFamilyCTGAssist():
    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 GetServerGroupIDList(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 GetNotifyInfoStart(self): return self.attrTuple[6] # 全服提示信息 - 相对开始时间 dict
    def GetNotifyInfoEnd(self): return self.attrTuple[7] # 全服提示信息 - 相对结束时间 dict
    def GetNotifyInfoLoop(self): return self.attrTuple[8] # 全服提示信息 - 循环广播[间隔分钟, 广播key] list
    def GetIsDayReset(self): return self.attrTuple[9] # 是否每天重置 BYTE
# 集字活动时间表
class IPY_ActCollectWords():
    
@@ -1625,12 +1882,15 @@
    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 GetNotifyInfoStart(self): return self.attrTuple[6] # 全服提示信息 - 相对开始时间 dict
    def GetNotifyInfoEnd(self): return self.attrTuple[7] # 全服提示信息 - 相对结束时间 dict
    def GetNotifyInfoLoop(self): return self.attrTuple[8] # 全服提示信息 - 循环广播[间隔分钟, 广播key] list
    def GetIsDayReset(self): return self.attrTuple[9] # 是否每天重置 BYTE
    def GetResetType(self): return self.attrTuple[10] # 重置类型,0-0点重置;1-5点重置 BYTE
    def GetTemplateIDList(self): return self.attrTuple[11] # 榜单模板编号列表 list
    def GetJoinStartTime(self): return self.attrTuple[6] # 参与开始时间点 char
    def GetJoinEndTime(self): return self.attrTuple[7] # 参与结束时间点 char
    def GetNotifyInfoStart(self): return self.attrTuple[8] # 全服提示信息 - 相对开始时间 dict
    def GetNotifyInfoEnd(self): return self.attrTuple[9] # 全服提示信息 - 相对结束时间 dict
    def GetNotifyInfoLoop(self): return self.attrTuple[10] # 全服提示信息 - 循环广播[间隔分钟, 广播key] list
    def GetIsDayReset(self): return self.attrTuple[11] # 是否每天重置 BYTE
    def GetResetType(self): return self.attrTuple[12] # 重置类型,0-0点重置;1-5点重置 BYTE
    def GetTemplateIDList(self): return self.attrTuple[13] # 榜单模板编号列表 list
    def GetFamilyTemplateIDList(self): return self.attrTuple[14] # 仙盟榜单模板编号列表 list
# Boss历练榜单模版表
class IPY_ActBossTrialTemplate():
@@ -1641,7 +1901,130 @@
        
    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 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
    def GetXiangongID(self): return self.attrTuple[6] # 晋升仙宫ID WORD
# Boss历练跨服活动表
class IPY_CrossActBossTrial():
    def __init__(self):
        self.attrTuple = None
        return
    def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD
    def GetActGroupName(self): return self.attrTuple[1] # 活动组名(同组活动的名字需相同) char
    def GetZoneID(self): return self.attrTuple[2] # 组内分组编号 BYTE
    def GetServerIDRangeList(self): return self.attrTuple[3] # 活动的账号服务器ID范围列表 [[serverIDA, serverIDB], ...] list
    def GetStartDate(self): return self.attrTuple[4] # 开启日期 char
    def GetEndDate(self): return self.attrTuple[5] # 结束日期 char
    def GetJoinStartTime(self): return self.attrTuple[6] # 参与开始时间点 char
    def GetJoinEndTime(self): return self.attrTuple[7] # 参与结束时间点 char
    def GetNotifyInfoStart(self): return self.attrTuple[8] # 全服提示信息 - 相对开始时间 dict
    def GetNotifyInfoEnd(self): return self.attrTuple[9] # 全服提示信息 - 相对结束时间 dict
    def GetNotifyInfoLoop(self): return self.attrTuple[10] # 全服提示信息 - 循环广播[循环分钟, 广播key, [广播参数列表可选]] list
    def GetIsDayReset(self): return self.attrTuple[11] # 是否每天重置 BYTE
    def GetResetType(self): return self.attrTuple[12] # 重置类型,0-0点重置;1-5点重置 BYTE
    def GetPersonalTemplateID(self): return self.attrTuple[13] # 个人排行模板编号 WORD
    def GetFamilyTemplateID(self): return self.attrTuple[14] # 仙盟排行模板编号 WORD
# 骑宠养成活动时间表
class IPY_ActHorsePetTrain():
    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 GetServerGroupIDList(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 GetJoinStartTime(self): return self.attrTuple[6] # 参与开始时间点 char
    def GetJoinEndTime(self): return self.attrTuple[7] # 参与结束时间点 char
    def GetPersonalTemplateID(self): return self.attrTuple[8] # 个人排行模板编号 WORD
# 骑宠养成活动跨服表
class IPY_CrossActHorsePetTrain():
    def __init__(self):
        self.attrTuple = None
        return
    def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD
    def GetActGroupName(self): return self.attrTuple[1] # 活动组名(同组活动的名字需相同) char
    def GetZoneID(self): return self.attrTuple[2] # 组内分组编号 BYTE
    def GetServerIDRangeList(self): return self.attrTuple[3] # 活动的账号服务器ID范围列表 [[serverIDA, serverIDB], ...] list
    def GetStartDate(self): return self.attrTuple[4] # 开启日期 char
    def GetEndDate(self): return self.attrTuple[5] # 结束日期 char
    def GetJoinStartTime(self): return self.attrTuple[6] # 参与开始时间点 char
    def GetJoinEndTime(self): return self.attrTuple[7] # 参与结束时间点 char
    def GetPersonalTemplateID(self): return self.attrTuple[8] # 个人排行模板编号 WORD
# 骑宠养成榜单模版表
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
    def GetXiangongID(self): return self.attrTuple[5] # 晋升仙宫ID WORD
# 古宝养成活动时间表
class IPY_ActGubao():
    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 GetServerGroupIDList(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 GetJoinStartTime(self): return self.attrTuple[6] # 参与开始时间点 char
    def GetJoinEndTime(self): return self.attrTuple[7] # 参与结束时间点 char
    def GetPersonalTemplateID(self): return self.attrTuple[8] # 个人排行模板编号 WORD
# 古宝养成活动跨服表
class IPY_CrossActGubao():
    def __init__(self):
        self.attrTuple = None
        return
    def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD
    def GetActGroupName(self): return self.attrTuple[1] # 活动组名(同组活动的名字需相同) char
    def GetZoneID(self): return self.attrTuple[2] # 组内分组编号 BYTE
    def GetServerIDRangeList(self): return self.attrTuple[3] # 活动的账号服务器ID范围列表 [[serverIDA, serverIDB], ...] list
    def GetStartDate(self): return self.attrTuple[4] # 开启日期 char
    def GetEndDate(self): return self.attrTuple[5] # 结束日期 char
    def GetJoinStartTime(self): return self.attrTuple[6] # 参与开始时间点 char
    def GetJoinEndTime(self): return self.attrTuple[7] # 参与结束时间点 char
    def GetPersonalTemplateID(self): return self.attrTuple[8] # 个人排行模板编号 WORD
# 古宝养成榜单模版表
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
    def GetXiangongID(self): return self.attrTuple[5] # 晋升仙宫ID WORD
# 仙匣秘境活动时间表
class IPY_ActXianXiaMJ():
@@ -1656,10 +2039,42 @@
    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 GetNotifyInfoStart(self): return self.attrTuple[6] # 全服提示信息 - 相对开始时间 dict
    def GetNotifyInfoEnd(self): return self.attrTuple[7] # 全服提示信息 - 相对结束时间 dict
    def GetNotifyInfoLoop(self): return self.attrTuple[8] # 全服提示信息 - 循环广播[间隔分钟, 广播key] list
    def GetResetType(self): return self.attrTuple[9] # 重置类型,0-0点重置;1-5点重置 BYTE
    def GetJoinStartTime(self): return self.attrTuple[6] # 参与开始时间点 char
    def GetJoinEndTime(self): return self.attrTuple[7] # 参与结束时间点 char
    def GetIsDayReset(self): return self.attrTuple[8] # 是否每天重置 BYTE
    def GetPersonalTemplateID(self): return self.attrTuple[9] # 个人排行模板编号 WORD
# 仙匣秘境活动跨服表
class IPY_CrossActXianXiaMJ():
    def __init__(self):
        self.attrTuple = None
        return
    def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD
    def GetActGroupName(self): return self.attrTuple[1] # 活动组名(同组活动的名字需相同) char
    def GetZoneID(self): return self.attrTuple[2] # 组内分组编号 BYTE
    def GetServerIDRangeList(self): return self.attrTuple[3] # 活动的账号服务器ID范围列表 [[serverIDA, serverIDB], ...] list
    def GetStartDate(self): return self.attrTuple[4] # 开启日期 char
    def GetEndDate(self): return self.attrTuple[5] # 结束日期 char
    def GetJoinStartTime(self): return self.attrTuple[6] # 参与开始时间点 char
    def GetJoinEndTime(self): return self.attrTuple[7] # 参与结束时间点 char
    def GetIsDayReset(self): return self.attrTuple[8] # 是否每天重置 BYTE
    def GetPersonalTemplateID(self): return self.attrTuple[9] # 个人排行模板编号 WORD
# 仙匣秘境榜单模版表
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
    def GetXiangongID(self): return self.attrTuple[5] # 晋升仙宫ID WORD
# 天帝礼包活动时间表
class IPY_ActGodGift():
@@ -1951,6 +2366,17 @@
    def GetZoneID(self): return self.attrTuple[1] # 赛区ID BYTE
    def GetServerGroupIDList(self): return self.attrTuple[2] # 赛区服务器组ID列表 list
# 跨服分区表古神战场
class IPY_CrossZoneBattlefield():
    def __init__(self):
        self.attrTuple = None
        return
    def GetCrossZoneName(self): return self.attrTuple[0] # 跨服分区名 char
    def GetZoneID(self): return self.attrTuple[1] # 赛区ID BYTE
    def GetServerGroupIDList(self): return self.attrTuple[2] # 赛区服务器组ID列表 list
# 跨服分区表竞技场
class IPY_CrossZonePK():
    
@@ -1989,7 +2415,8 @@
        
    def GetRank(self): return self.attrTuple[0] #  名次 BYTE
    def GetRankAwardItemList(self): return self.attrTuple[1] # 名次奖励物品列表 list
    def GetMainOfficialID(self): return self.attrTuple[2] # 主官职ID WORD
    def GetMainOfficialID(self): return self.attrTuple[2] # 主官职ID WORD
    def GetXiangongID(self): return self.attrTuple[3] # 晋升仙宫ID WORD
# 跨服排位官职表
class IPY_ChampionshipOfficial():
@@ -2368,6 +2795,23 @@
    def GetCostEquipColor(self): return self.attrTuple[5] # 可用装备品质 list
    def GetUnSuitRate(self): return self.attrTuple[6] # 单件非套装加成概率 BYTE
# 福地物品表
class IPY_MineAreaItem():
    def __init__(self):
        self.attrTuple = None
        return
    def GetMineID(self): return self.attrTuple[0] # 矿物ID BYTE
    def GetLimitLV(self): return self.attrTuple[1] # 解锁等级 WORD
    def GetItemID(self): return self.attrTuple[2] # 物品ID DWORD
    def GetItemLV(self): return self.attrTuple[3] # 物品等级 BYTE
    def GetItemCount(self): return self.attrTuple[4] # 物品个数 DWORD
    def GetItemWeight(self): return self.attrTuple[5] # 物品总重量 float
    def GetRefreshWeightSys(self): return self.attrTuple[6] # 系统刷新权重 DWORD
    def GetRefreshWeight(self): return self.attrTuple[7] # 常规刷新权重 DWORD
    def GetRefreshWeightSuper(self): return self.attrTuple[8] # 超级刷新权重 DWORD
# 仙盟联赛排名奖励表
class IPY_FamilyWarRankAward():
    
@@ -2388,6 +2832,34 @@
        
    def GetGiftID(self): return self.attrTuple[0] # 礼盒物品ID DWORD
    def GetAssistAwardCount(self): return self.attrTuple[1] #  协助奖励每日次数 BYTE
# 膜拜表
class IPY_Worship():
    def __init__(self):
        self.attrTuple = None
        return
    def GetWorshipType(self): return self.attrTuple[0] # 膜拜类型 BYTE
    def GetWorshipValue(self): return self.attrTuple[1] # 膜拜值 DWORD
    def GetWorshipDays(self): return self.attrTuple[2] # 膜拜天数 BYTE
    def GetMoneyType(self): return self.attrTuple[3] # 膜拜货币类型 BYTE
    def GetMoneyRange(self): return self.attrTuple[4] # 货币值范围 list
# 仙宫表
class IPY_Xiangong():
    def __init__(self):
        self.attrTuple = None
        return
    def GetXiangongID(self): return self.attrTuple[0] # 仙宫ID WORD
    def GetShowDays(self): return self.attrTuple[1] # 展示天数 BYTE
    def GetMoneyType(self): return self.attrTuple[2] # 点赞货币类型 BYTE
    def GetMoneyValue(self): return self.attrTuple[3] # 货币值 DWORD
    def GetTitleID(self): return self.attrTuple[4] # 称号ID DWORD
    def GetAwardItemList(self): return self.attrTuple[5] # 晋级仙宫奖励物品列表 list
    def GetMailKey(self): return self.attrTuple[6] # 仙官通知邮件 char
# 缥缈仙域表
class IPY_FairyDomain():
@@ -2457,8 +2929,11 @@
            self.ipyConfigEx = {}
        self.__LoadFileData("FuncConfig", onlyCheck)
        self.__LoadFileData("CreateRoleLimitServer", onlyCheck)
        self.__LoadFileData("PlayerFace", onlyCheck)
        self.__LoadFileData("PlayerFacePic", onlyCheck)
        self.__LoadFileData("WorldLV", onlyCheck)
        self.__LoadFileData("Family", onlyCheck)
        self.__LoadFileData("FamilyEmblem", onlyCheck)
        self.__LoadFileData("FamilyBossHurtAward", onlyCheck)
        self.__LoadFileData("FamilyZhenfa", onlyCheck)
        self.__LoadFileData("MarketQuery", onlyCheck)
@@ -2474,6 +2949,7 @@
        self.__LoadFileData("FBFunc", onlyCheck)
        self.__LoadFileData("FBLine", onlyCheck)
        self.__LoadFileData("FBHelpBattle", onlyCheck)
        self.__LoadFileData("FuncTeamSet", onlyCheck)
        self.__LoadFileData("ChinMap", onlyCheck)
        self.__LoadFileData("BOSSInfo", onlyCheck)
        self.__LoadFileData("BOSSFirstKill", onlyCheck)
@@ -2494,11 +2970,21 @@
        self.__LoadFileData("ActExpRate", onlyCheck)
        self.__LoadFileData("ActCostRebate", onlyCheck)
        self.__LoadFileData("ActBuyOne", onlyCheck)
        self.__LoadFileData("ActFamilyCTGAssist", onlyCheck)
        self.__LoadFileData("ActCollectWords", onlyCheck)
        self.__LoadFileData("ActGarbageSorting", onlyCheck)
        self.__LoadFileData("ActBossTrial", onlyCheck)
        self.__LoadFileData("ActBossTrialTemplate", onlyCheck)
        self.__LoadFileData("CrossActBossTrial", onlyCheck)
        self.__LoadFileData("ActHorsePetTrain", onlyCheck)
        self.__LoadFileData("CrossActHorsePetTrain", onlyCheck)
        self.__LoadFileData("ActHorsePetTrainBillTemp", onlyCheck)
        self.__LoadFileData("ActGubao", onlyCheck)
        self.__LoadFileData("CrossActGubao", onlyCheck)
        self.__LoadFileData("ActGubaoBillTemp", onlyCheck)
        self.__LoadFileData("ActXianXiaMJ", onlyCheck)
        self.__LoadFileData("CrossActXianXiaMJ", onlyCheck)
        self.__LoadFileData("ActXianXiaMJBillTemp", onlyCheck)
        self.__LoadFileData("ActGodGift", onlyCheck)
        self.__LoadFileData("ActHorsePetFeast", onlyCheck)
        self.__LoadFileData("ActBossReborn", onlyCheck)
@@ -2516,6 +3002,7 @@
        self.__LoadFileData("ActManyDayRecharge", onlyCheck)
        self.__LoadFileData("ActTotalRecharge", onlyCheck)
        self.__LoadFileData("CrossZoneComm", onlyCheck)
        self.__LoadFileData("CrossZoneBattlefield", onlyCheck)
        self.__LoadFileData("CrossZonePK", onlyCheck)
        self.__LoadFileData("ChampionshipTime", onlyCheck)
        self.__LoadFileData("ChampionshipRank", onlyCheck)
@@ -2543,8 +3030,11 @@
        self.__LoadFileData("CrossActCTGBillboard", onlyCheck)
        self.__LoadFileData("CrossActCTGBillboardOrder", onlyCheck)
        self.__LoadFileData("EquipStarUp", onlyCheck)
        self.__LoadFileData("MineAreaItem", onlyCheck)
        self.__LoadFileData("FamilyWarRankAward", onlyCheck)
        self.__LoadFileData("AssistThanksGift", onlyCheck)
        self.__LoadFileData("Worship", onlyCheck)
        self.__LoadFileData("Xiangong", onlyCheck)
        self.__LoadFileData("FairyDomain", onlyCheck)
        Log("IPY_DataMgr ReloadOK! onlyCheck=%s" % onlyCheck)
        return
@@ -2765,6 +3255,20 @@
        self.CheckLoadData("CreateRoleLimitServer")
        return self.ipyCreateRoleLimitServerCache[index]
    def GetPlayerFaceCount(self):
        self.CheckLoadData("PlayerFace")
        return self.ipyPlayerFaceLen
    def GetPlayerFaceByIndex(self, index):
        self.CheckLoadData("PlayerFace")
        return self.ipyPlayerFaceCache[index]
    def GetPlayerFacePicCount(self):
        self.CheckLoadData("PlayerFacePic")
        return self.ipyPlayerFacePicLen
    def GetPlayerFacePicByIndex(self, index):
        self.CheckLoadData("PlayerFacePic")
        return self.ipyPlayerFacePicCache[index]
    def GetWorldLVCount(self):
        self.CheckLoadData("WorldLV")
        return self.ipyWorldLVLen
@@ -2778,6 +3282,13 @@
    def GetFamilyByIndex(self, index):
        self.CheckLoadData("Family")
        return self.ipyFamilyCache[index]
    def GetFamilyEmblemCount(self):
        self.CheckLoadData("FamilyEmblem")
        return self.ipyFamilyEmblemLen
    def GetFamilyEmblemByIndex(self, index):
        self.CheckLoadData("FamilyEmblem")
        return self.ipyFamilyEmblemCache[index]
    def GetFamilyBossHurtAwardCount(self):
        self.CheckLoadData("FamilyBossHurtAward")
@@ -2883,6 +3394,13 @@
    def GetFBHelpBattleByIndex(self, index):
        self.CheckLoadData("FBHelpBattle")
        return self.ipyFBHelpBattleCache[index]
    def GetFuncTeamSetCount(self):
        self.CheckLoadData("FuncTeamSet")
        return self.ipyFuncTeamSetLen
    def GetFuncTeamSetByIndex(self, index):
        self.CheckLoadData("FuncTeamSet")
        return self.ipyFuncTeamSetCache[index]
    def GetChinMapCount(self):
        self.CheckLoadData("ChinMap")
@@ -3024,6 +3542,13 @@
        self.CheckLoadData("ActBuyOne")
        return self.ipyActBuyOneCache[index]
    def GetActFamilyCTGAssistCount(self):
        self.CheckLoadData("ActFamilyCTGAssist")
        return self.ipyActFamilyCTGAssistLen
    def GetActFamilyCTGAssistByIndex(self, index):
        self.CheckLoadData("ActFamilyCTGAssist")
        return self.ipyActFamilyCTGAssistCache[index]
    def GetActCollectWordsCount(self):
        self.CheckLoadData("ActCollectWords")
        return self.ipyActCollectWordsLen
@@ -3052,12 +3577,75 @@
        self.CheckLoadData("ActBossTrialTemplate")
        return self.ipyActBossTrialTemplateCache[index]
    def GetCrossActBossTrialCount(self):
        self.CheckLoadData("CrossActBossTrial")
        return self.ipyCrossActBossTrialLen
    def GetCrossActBossTrialByIndex(self, index):
        self.CheckLoadData("CrossActBossTrial")
        return self.ipyCrossActBossTrialCache[index]
    def GetActHorsePetTrainCount(self):
        self.CheckLoadData("ActHorsePetTrain")
        return self.ipyActHorsePetTrainLen
    def GetActHorsePetTrainByIndex(self, index):
        self.CheckLoadData("ActHorsePetTrain")
        return self.ipyActHorsePetTrainCache[index]
    def GetCrossActHorsePetTrainCount(self):
        self.CheckLoadData("CrossActHorsePetTrain")
        return self.ipyCrossActHorsePetTrainLen
    def GetCrossActHorsePetTrainByIndex(self, index):
        self.CheckLoadData("CrossActHorsePetTrain")
        return self.ipyCrossActHorsePetTrainCache[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 GetCrossActGubaoCount(self):
        self.CheckLoadData("CrossActGubao")
        return self.ipyCrossActGubaoLen
    def GetCrossActGubaoByIndex(self, index):
        self.CheckLoadData("CrossActGubao")
        return self.ipyCrossActGubaoCache[index]
    def GetActGubaoBillTempCount(self):
        self.CheckLoadData("ActGubaoBillTemp")
        return self.ipyActGubaoBillTempLen
    def GetActGubaoBillTempByIndex(self, index):
        self.CheckLoadData("ActGubaoBillTemp")
        return self.ipyActGubaoBillTempCache[index]
    def GetActXianXiaMJCount(self):
        self.CheckLoadData("ActXianXiaMJ")
        return self.ipyActXianXiaMJLen
    def GetActXianXiaMJByIndex(self, index):
        self.CheckLoadData("ActXianXiaMJ")
        return self.ipyActXianXiaMJCache[index]
    def GetCrossActXianXiaMJCount(self):
        self.CheckLoadData("CrossActXianXiaMJ")
        return self.ipyCrossActXianXiaMJLen
    def GetCrossActXianXiaMJByIndex(self, index):
        self.CheckLoadData("CrossActXianXiaMJ")
        return self.ipyCrossActXianXiaMJCache[index]
    def GetActXianXiaMJBillTempCount(self):
        self.CheckLoadData("ActXianXiaMJBillTemp")
        return self.ipyActXianXiaMJBillTempLen
    def GetActXianXiaMJBillTempByIndex(self, index):
        self.CheckLoadData("ActXianXiaMJBillTemp")
        return self.ipyActXianXiaMJBillTempCache[index]
    def GetActGodGiftCount(self):
        self.CheckLoadData("ActGodGift")
@@ -3177,6 +3765,13 @@
    def GetCrossZoneCommByIndex(self, index):
        self.CheckLoadData("CrossZoneComm")
        return self.ipyCrossZoneCommCache[index]
    def GetCrossZoneBattlefieldCount(self):
        self.CheckLoadData("CrossZoneBattlefield")
        return self.ipyCrossZoneBattlefieldLen
    def GetCrossZoneBattlefieldByIndex(self, index):
        self.CheckLoadData("CrossZoneBattlefield")
        return self.ipyCrossZoneBattlefieldCache[index]
    def GetCrossZonePKCount(self):
        self.CheckLoadData("CrossZonePK")
@@ -3367,6 +3962,13 @@
        self.CheckLoadData("EquipStarUp")
        return self.ipyEquipStarUpCache[index]
    def GetMineAreaItemCount(self):
        self.CheckLoadData("MineAreaItem")
        return self.ipyMineAreaItemLen
    def GetMineAreaItemByIndex(self, index):
        self.CheckLoadData("MineAreaItem")
        return self.ipyMineAreaItemCache[index]
    def GetFamilyWarRankAwardCount(self):
        self.CheckLoadData("FamilyWarRankAward")
        return self.ipyFamilyWarRankAwardLen
@@ -3381,6 +3983,20 @@
        self.CheckLoadData("AssistThanksGift")
        return self.ipyAssistThanksGiftCache[index]
    def GetWorshipCount(self):
        self.CheckLoadData("Worship")
        return self.ipyWorshipLen
    def GetWorshipByIndex(self, index):
        self.CheckLoadData("Worship")
        return self.ipyWorshipCache[index]
    def GetXiangongCount(self):
        self.CheckLoadData("Xiangong")
        return self.ipyXiangongLen
    def GetXiangongByIndex(self, index):
        self.CheckLoadData("Xiangong")
        return self.ipyXiangongCache[index]
    def GetFairyDomainCount(self):
        self.CheckLoadData("FairyDomain")
        return self.ipyFairyDomainLen