From 7db53f547e9093ad323343d28282e40413c13a6d Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期二, 25 九月 2018 20:22:35 +0800
Subject: [PATCH] 3818 日常任务次数重置问题

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py |  381 +++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 318 insertions(+), 63 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
index a6319fb..e36210d 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -62,6 +62,7 @@
                         ("list", "AttrType", 0),
                         ("list", "AttrNum", 0),
                         ("DWORD", "SkillID", 0),
+                        ("char", "SysMark", 0),
                         ),
 
                 "FuncConfig":(
@@ -93,6 +94,7 @@
                         ("WORD", "SuccessRateMax", 0),
                         ("BYTE", "AddonsCountMax", 0),
                         ("char", "SysMark", 0),
+                        ("BYTE", "SysMarkParamType", 0),
                         ),
 
                 "ItemPlus":(
@@ -122,6 +124,23 @@
                         ("BYTE", "StarsNeed", 1),
                         ("list", "AttrType", 0),
                         ("list", "AttrValue", 0),
+                        ),
+
+                "Dogz":(
+                        ("BYTE", "DogzID", 1),
+                        ("list", "BaseAttrTypes", 0),
+                        ("list", "BaseAttrValues", 0),
+                        ("list", "HelpBattleSkills", 0),
+                        ("DWORD", "FightPowerEx", 0),
+                        ("list", "EquipPlaceColorList", 0),
+                        ),
+
+                "DogzEquipPlus":(
+                        ("BYTE", "EquipPlace", 1),
+                        ("BYTE", "PlusLV", 1),
+                        ("list", "PlusAttrTypes", 0),
+                        ("list", "PlusAttrValues", 0),
+                        ("DWORD", "PlusLVUPTotalExp", 0),
                         ),
 
                 "Rune":(
@@ -169,6 +188,7 @@
                 "PetInfo":(
                         ("DWORD", "ID", 1),
                         ("BYTE", "Quality", 0),
+                        ("char", "UnlockSys", 0),
                         ("DWORD", "UnLockNeedItemID", 0),
                         ("BYTE", "UnLockNeedItemCnt", 0),
                         ("DWORD", "DecomposeExp", 0),
@@ -177,6 +197,7 @@
                         ("WORD", "UseNeedRank", 0),
                         ("list", "SkillID", 0),
                         ("list", "SkillUnLock", 0),
+                        ("list", "SkillUnLockSys", 0),
                         ("DWORD", "InitFightPower", 0),
                         ),
 
@@ -210,6 +231,7 @@
                         ("BYTE", "UseNeedRank", 0),
                         ("BYTE", "Quality", 0),
                         ("DWORD", "InitFightPower", 0),
+                        ("char", "UnlockSys", 0),
                         ),
 
                 "HorseUp":(
@@ -219,6 +241,7 @@
                         ("list", "AttrType", 0),
                         ("list", "AttrValue", 0),
                         ("list", "SkillID", 0),
+                        ("char", "SysMark", 0),
                         ),
 
                 "PlayerLV":(
@@ -474,6 +497,7 @@
                         ("DWORD", "SkillAtkRateC", 0),
                         ("DWORD", "SpeedPerC", 0),
                         ("DWORD", "AtkSpeedC", 0),
+                        ("DWORD", "SkillAtkRateReduceC", 0),
                         ),
 
                 "Success":(
@@ -497,6 +521,7 @@
                         ("DWORD", "PreTreasure", 0),
                         ("list", "SuccID", 0),
                         ("list", "Potentials", 0),
+                        ("list", "SkillPower", 0),
                         ("dict", "NeedItem", 0),
                         ),
 
@@ -506,7 +531,9 @@
                         ("DWORD", "NeedExp", 0),
                         ("dict", "AddAttr", 0),
                         ("list", "UnLockSkill", 0),
-                        ("DWORD", "PrivilegeID", 0),
+                        ("DWORD", "ActiveMWID", 0),
+                        ("list", "ItemAward", 0),
+                        ("DWORD", "ActiveSoulID", 0),
                         ),
 
                 "TreasurePrivilege":(
@@ -516,6 +543,7 @@
                         ("DWORD", "MaxValue", 0),
                         ("dict", "AddAttr", 0),
                         ("list", "ItemAward", 0),
+                        ("list", "SuccessList", 0),
                         ),
 
                 "TreasureSkill":(
@@ -609,9 +637,12 @@
                         ("char", "EndDate", 0),
                         ("list", "StartTimeList", 0),
                         ("list", "EndTimeList", 0),
+                        ("WORD", "AdvanceMinutes", 0),
                         ("WORD", "LVLimit", 0),
                         ("BYTE", "IsDayReset", 0),
                         ("list", "ShopTypeList", 0),
+                        ("char", "MailKey", 0),
+                        ("list", "MailItemPrize", 0),
                         ),
 
                 "DailyQuest":(
@@ -674,6 +705,9 @@
                         ("DWORD", "NPCID", 1),
                         ("DWORD", "MapID", 0),
                         ("BYTE", "RefreshMark", 0),
+                        ("BYTE", "IsNeedShunt", 0),
+                        ("BYTE", "RelatedType", 0),
+                        ("WORD", "RelatedID", 0),
                         ("DWORD", "StoneNPCID", 0),
                         ),
 
@@ -722,7 +756,7 @@
                         ("DWORD", "DataMapID", 1),
                         ("BYTE", "InspireType", 1),
                         ("WORD", "InspireMaxLV", 0),
-                        ("DWORD", "MoneyCount", 0),
+                        ("char", "MoneyCount", 0),
                         ),
 
                 "RuneCompound":(
@@ -856,6 +890,8 @@
                         ("dict", "GridItemInfo", 0),
                         ("list", "JobItemList", 0),
                         ("list", "GridItemRateListFree", 0),
+                        ("list", "FreeGridItemRateList2", 0),
+                        ("dict", "FreeGridItemRateList3", 0),
                         ("list", "GridItemRateList1", 0),
                         ("list", "GridItemRateList2", 0),
                         ("dict", "GridItemRateList3", 0),
@@ -875,9 +911,12 @@
                         ("char", "EndDate", 0),
                         ("list", "StartTimeList", 0),
                         ("list", "EndTimeList", 0),
+                        ("WORD", "AdvanceMinutes", 0),
                         ("WORD", "LVLimit", 0),
                         ("BYTE", "IsDayReset", 0),
-                        ("list", "GiftbagList", 0),
+                        ("list", "GiftbagTypeList", 0),
+                        ("char", "MailKey", 0),
+                        ("list", "MailItemPrize", 0),
                         ),
 
                 "FlashGiftbag":(
@@ -890,6 +929,21 @@
                         ("char", "NotifyKey", 0),
                         ),
 
+                "ActExpRate":(
+                        ("DWORD", "CfgID", 1),
+                        ("WORD", "LVLimit", 0),
+                        ("DWORD", "AddExpRate", 0),
+                        ),
+
+                "ActCostRebate":(
+                        ("DWORD", "CfgID", 1),
+                        ("char", "StartDate", 0),
+                        ("char", "EndDate", 0),
+                        ("WORD", "LVLimit", 0),
+                        ("BYTE", "IsDayReset", 0),
+                        ("list", "TemplateIDList", 0),
+                        ),
+
                 "CostRebateTemplate":(
                         ("DWORD", "TemplateID", 1),
                         ("DWORD", "NeedCostGold", 0),
@@ -898,22 +952,32 @@
                         ("char", "NotifyKey", 0),
                         ),
 
+                "ActBossReborn":(
+                        ("DWORD", "CfgID", 1),
+                        ("char", "StartDate", 0),
+                        ("char", "EndDate", 0),
+                        ("BYTE", "ResetType", 0),
+                        ("WORD", "LVLimit", 0),
+                        ("BYTE", "TemplateID", 0),
+                        ),
+
                 "BossReborn":(
+                        ("BYTE", "TemplateID", 1),
                         ("BYTE", "ID", 1),
                         ("DWORD", "TotalTimes", 0),
                         ("WORD", "SingleTimes", 0),
-                        ("list", "RewardItemID1", 0),
-                        ("list", "RewardItemCnt1", 0),
-                        ("list", "RewardItemID2", 0),
-                        ("list", "RewardItemCnt2", 0),
-                        ("list", "RewardItemID3", 0),
-                        ("list", "RewardItemCnt3", 0),
-                        ("list", "WorldLVList", 0),
+                        ("list", "Reward", 0),
+                        ),
+
+                "ActRealmPoint":(
+                        ("DWORD", "CfgID", 1),
+                        ("WORD", "Multiple", 0),
+                        ("WORD", "LVLimit", 0),
                         ),
 
                 "TrialExchange":(
                         ("DWORD", "ID", 1),
-                        ("DWORD", "ExchangeItemID", 0),
+                        ("list", "ExchangeItemIDList", 0),
                         ("DWORD", "ExchangeItemCount", 0),
                         ("DWORD", "ExchangeItemIsBind", 0),
                         ("DWORD", "CostItemID", 0),
@@ -931,6 +995,14 @@
                         ("DWORD", "Index", 1),
                         ("DWORD", "NeedPoint", 0),
                         ("dict", "Award", 0),
+                        ),
+
+                "MapEventPoint":(
+                        ("DWORD", "MapID", 1),
+                        ("DWORD", "NPCID", 1),
+                        ("WORD", "LowLV", 0),
+                        ("WORD", "HighestLV", 0),
+                        ("DWORD", "Defense", 0),
                         ),
                 }
 
@@ -992,7 +1064,8 @@
         self.Exp = 0
         self.AttrType = []
         self.AttrNum = []
-        self.SkillID = 0
+        self.SkillID = 0
+        self.SysMark = ""
         return
         
     def GetType(self): return self.Type # 神兵类型
@@ -1000,7 +1073,8 @@
     def GetExp(self): return self.Exp
     def GetAttrType(self): return self.AttrType # 属性类型
     def GetAttrNum(self): return self.AttrNum # 属性值
-    def GetSkillID(self): return self.SkillID # 激活技能ID
+    def GetSkillID(self): return self.SkillID # 激活技能ID
+    def GetSysMark(self): return self.SysMark # 系统提示
 
 # 功能配置表格
 class IPY_FuncConfig():
@@ -1052,7 +1126,8 @@
         self.SuccessRate = 0
         self.SuccessRateMax = 0
         self.AddonsCountMax = 0
-        self.SysMark = ""
+        self.SysMark = ""
+        self.SysMarkParamType = 0
         return
         
     def GetID(self): return self.ID # 合成配置编号ID
@@ -1065,7 +1140,8 @@
     def GetSuccessRate(self): return self.SuccessRate #  成功率万分率
     def GetSuccessRateMax(self): return self.SuccessRateMax #  最大成功率万分率
     def GetAddonsCountMax(self): return self.AddonsCountMax # 最大可附加材料数, 增加概率用, 非必须, 0代表不可附加材料
-    def GetSysMark(self): return self.SysMark # 提示mark
+    def GetSysMark(self): return self.SysMark # 提示mark
+    def GetSysMarkParamType(self): return self.SysMarkParamType # 系统提示参数组合类型
 
 # 物品强化效果表
 class IPY_ItemPlus():
@@ -1128,6 +1204,42 @@
     def GetStarsNeed(self): return self.StarsNeed # 全身星数
     def GetAttrType(self): return self.AttrType # 属性类型
     def GetAttrValue(self): return self.AttrValue # 属性值
+
+# 神兽表
+class IPY_Dogz():
+    
+    def __init__(self):
+        self.DogzID = 0
+        self.BaseAttrTypes = []
+        self.BaseAttrValues = []
+        self.HelpBattleSkills = []
+        self.FightPowerEx = 0
+        self.EquipPlaceColorList = []
+        return
+        
+    def GetDogzID(self): return self.DogzID # 神兽ID
+    def GetBaseAttrTypes(self): return self.BaseAttrTypes # 基础属性类型列表
+    def GetBaseAttrValues(self): return self.BaseAttrValues # 基础属性值列表
+    def GetHelpBattleSkills(self): return self.HelpBattleSkills # 助战技能ID列表
+    def GetFightPowerEx(self): return self.FightPowerEx # 助战附加战力
+    def GetEquipPlaceColorList(self): return self.EquipPlaceColorList # 穿戴装备颜色限制
+
+# 神兽强化表
+class IPY_DogzEquipPlus():
+    
+    def __init__(self):
+        self.EquipPlace = 0
+        self.PlusLV = 0
+        self.PlusAttrTypes = []
+        self.PlusAttrValues = []
+        self.PlusLVUPTotalExp = 0
+        return
+        
+    def GetEquipPlace(self): return self.EquipPlace # 装备位
+    def GetPlusLV(self): return self.PlusLV # 强化等级
+    def GetPlusAttrTypes(self): return self.PlusAttrTypes # 强化属性类型列表
+    def GetPlusAttrValues(self): return self.PlusAttrValues # 强化属性值列表
+    def GetPlusLVUPTotalExp(self): return self.PlusLVUPTotalExp # 升级所需累计熟练度总值
 
 # 符印表
 class IPY_Rune():
@@ -1223,6 +1335,7 @@
     def __init__(self):
         self.ID = 0
         self.Quality = 0
+        self.UnlockSys = ""
         self.UnLockNeedItemID = 0
         self.UnLockNeedItemCnt = 0
         self.DecomposeExp = 0
@@ -1231,11 +1344,13 @@
         self.UseNeedRank = 0
         self.SkillID = []
         self.SkillUnLock = []
+        self.SkillUnLockSys = []
         self.InitFightPower = 0
         return
         
     def GetID(self): return self.ID # 灵兽NPCID
     def GetQuality(self): return self.Quality # 品质
+    def GetUnlockSys(self): return self.UnlockSys # 解锁广播提示
     def GetUnLockNeedItemID(self): return self.UnLockNeedItemID # 解锁灵兽物品ID
     def GetUnLockNeedItemCnt(self): return self.UnLockNeedItemCnt # 解锁所需物品数量
     def GetDecomposeExp(self): return self.DecomposeExp # 分解单个解锁物品可获得升阶经验
@@ -1244,6 +1359,7 @@
     def GetUseNeedRank(self): return self.UseNeedRank # 多少阶可切换外观
     def GetSkillID(self): return self.SkillID # 灵兽技能ID
     def GetSkillUnLock(self): return self.SkillUnLock # 灵兽技能解锁需要阶数
+    def GetSkillUnLockSys(self): return self.SkillUnLockSys # 灵兽技能解锁提示
     def GetInitFightPower(self): return self.InitFightPower # 初始战力
 
 # 装备分解属性表
@@ -1301,7 +1417,8 @@
         self.MaxLV = 0
         self.UseNeedRank = 0
         self.Quality = 0
-        self.InitFightPower = 0
+        self.InitFightPower = 0
+        self.UnlockSys = ""
         return
         
     def GetHorseID(self): return self.HorseID # 坐骑编号ID
@@ -1312,7 +1429,8 @@
     def GetMaxLV(self): return self.MaxLV # 坐骑最高等级
     def GetUseNeedRank(self): return self.UseNeedRank # 多少阶可切换外观
     def GetQuality(self): return self.Quality # 坐骑品质
-    def GetInitFightPower(self): return self.InitFightPower # 初始战力
+    def GetInitFightPower(self): return self.InitFightPower # 初始战力
+    def GetUnlockSys(self): return self.UnlockSys # 解锁广播提示
 
 # 坐骑升级表
 class IPY_HorseUp():
@@ -1323,7 +1441,8 @@
         self.NeedExp = 0
         self.AttrType = []
         self.AttrValue = []
-        self.SkillID = []
+        self.SkillID = []
+        self.SysMark = ""
         return
         
     def GetHorseID(self): return self.HorseID # 坐骑编号ID
@@ -1331,7 +1450,8 @@
     def GetNeedExp(self): return self.NeedExp # 升级所需经验
     def GetAttrType(self): return self.AttrType # 激活加成属性类型
     def GetAttrValue(self): return self.AttrValue # 激活加成属性值
-    def GetSkillID(self): return self.SkillID # 可获得的技能ID
+    def GetSkillID(self): return self.SkillID # 可获得的技能ID
+    def GetSysMark(self): return self.SysMark # 广播提示
 
 # 玩家等级表
 class IPY_PlayerLV():
@@ -1830,7 +1950,8 @@
         self.SuperHitReduceC = 0
         self.SkillAtkRateC = 0
         self.SpeedPerC = 0
-        self.AtkSpeedC = 0
+        self.AtkSpeedC = 0
+        self.SkillAtkRateReduceC = 0
         return
         
     def GetClassLV(self): return self.ClassLV #  装备阶级
@@ -1857,7 +1978,8 @@
     def GetSuperHitReduceC(self): return self.SuperHitReduceC #  暴击抗性百分比系数
     def GetSkillAtkRateC(self): return self.SkillAtkRateC #  技能伤害百分比系数
     def GetSpeedPerC(self): return self.SpeedPerC #  移动速度百分比系数
-    def GetAtkSpeedC(self): return self.AtkSpeedC #  攻击速度系数
+    def GetAtkSpeedC(self): return self.AtkSpeedC #  攻击速度系数
+    def GetSkillAtkRateReduceC(self): return self.SkillAtkRateReduceC #  技能减伤百分比系数
 
 # 成就表
 class IPY_Success():
@@ -1899,6 +2021,7 @@
         self.PreTreasure = 0
         self.SuccID = []
         self.Potentials = []
+        self.SkillPower = []
         self.NeedItem = {}
         return
         
@@ -1907,6 +2030,7 @@
     def GetPreTreasure(self): return self.PreTreasure # 前置法宝
     def GetSuccID(self): return self.SuccID # 成就ID
     def GetPotentials(self): return self.Potentials # 技能潜力升级
+    def GetSkillPower(self): return self.SkillPower # 技能解锁战力
     def GetNeedItem(self): return self.NeedItem # 需要消耗物品
 
 # 法宝升级表
@@ -1918,7 +2042,9 @@
         self.NeedExp = 0
         self.AddAttr = {}
         self.UnLockSkill = []
-        self.PrivilegeID = 0
+        self.ActiveMWID = 0
+        self.ItemAward = []
+        self.ActiveSoulID = 0
         return
         
     def GetMWID(self): return self.MWID # 法宝ID
@@ -1926,7 +2052,9 @@
     def GetNeedExp(self): return self.NeedExp # 需要经验
     def GetAddAttr(self): return self.AddAttr # 属性
     def GetUnLockSkill(self): return self.UnLockSkill # 解锁的技能
-    def GetPrivilegeID(self): return self.PrivilegeID # 特权ID
+    def GetActiveMWID(self): return self.ActiveMWID # 激活法宝ID
+    def GetItemAward(self): return self.ItemAward # 物品奖励[itemID,cnt,isbind]
+    def GetActiveSoulID(self): return self.ActiveSoulID # 激活魂ID
 
 # 法宝特权表
 class IPY_TreasurePrivilege():
@@ -1937,7 +2065,8 @@
         self.SingleValue = 0
         self.MaxValue = 0
         self.AddAttr = {}
-        self.ItemAward = []
+        self.ItemAward = []
+        self.SuccessList = []
         return
         
     def GetPrivilegeID(self): return self.PrivilegeID # 特权ID
@@ -1945,7 +2074,8 @@
     def GetSingleValue(self): return self.SingleValue # 进度
     def GetMaxValue(self): return self.MaxValue # 最大进度
     def GetAddAttr(self): return self.AddAttr # 属性
-    def GetItemAward(self): return self.ItemAward # 物品奖励
+    def GetItemAward(self): return self.ItemAward # 物品奖励
+    def GetSuccessList(self): return self.SuccessList # 需要完成成就
 
 # 法宝技能升级表
 class IPY_TreasureSkill():
@@ -2133,9 +2263,12 @@
         self.EndDate = ""
         self.StartTimeList = []
         self.EndTimeList = []
+        self.AdvanceMinutes = 0
         self.LVLimit = 0
         self.IsDayReset = 0
-        self.ShopTypeList = []
+        self.ShopTypeList = []
+        self.MailKey = ""
+        self.MailItemPrize = []
         return
         
     def GetCfgID(self): return self.CfgID # 配置ID
@@ -2143,9 +2276,12 @@
     def GetEndDate(self): return self.EndDate # 结束日期
     def GetStartTimeList(self): return self.StartTimeList # 开启时间列表, 支持多个时段
     def GetEndTimeList(self): return self.EndTimeList # 结束时间列表, 支持多个时段
+    def GetAdvanceMinutes(self): return self.AdvanceMinutes # 前端提前X分钟展示活动
     def GetLVLimit(self): return self.LVLimit # 限制等级
     def GetIsDayReset(self): return self.IsDayReset # 是否每天重置
-    def GetShopTypeList(self): return self.ShopTypeList # 商店类型列表
+    def GetShopTypeList(self): return self.ShopTypeList # 商店类型列表
+    def GetMailKey(self): return self.MailKey # 活动更新时发送邮件key
+    def GetMailItemPrize(self): return self.MailItemPrize # 活动更新时发送邮件奖励物品
 
 # 日常任务表
 class IPY_DailyQuest():
@@ -2272,12 +2408,18 @@
         self.NPCID = 0
         self.MapID = 0
         self.RefreshMark = 0
+        self.IsNeedShunt = 0
+        self.RelatedType = 0
+        self.RelatedID = 0
         self.StoneNPCID = 0
         return
         
     def GetNPCID(self): return self.NPCID # ID
     def GetMapID(self): return self.MapID # 地图ID
     def GetRefreshMark(self): return self.RefreshMark # 刷新标识点
+    def GetIsNeedShunt(self): return self.IsNeedShunt # 是否需要分流
+    def GetRelatedType(self): return self.RelatedType # 刷怪关联类型
+    def GetRelatedID(self): return self.RelatedID # 关联ID
     def GetStoneNPCID(self): return self.StoneNPCID # 墓碑NPCID
 
 # 古神禁地表
@@ -2375,7 +2517,7 @@
         self.DataMapID = 0
         self.InspireType = 0
         self.InspireMaxLV = 0
-        self.MoneyCount = 0
+        self.MoneyCount = ""
         return
         
     def GetDataMapID(self): return self.DataMapID # 地图ID
@@ -2657,6 +2799,8 @@
         self.GridItemInfo = {}
         self.JobItemList = []
         self.GridItemRateListFree = []
+        self.FreeGridItemRateList2 = []
+        self.FreeGridItemRateList3 = {}
         self.GridItemRateList1 = []
         self.GridItemRateList2 = []
         self.GridItemRateList3 = {}
@@ -2668,6 +2812,8 @@
     def GetGridItemInfo(self): return self.GridItemInfo # 格子编号对应物品信息 {"编号":[物品ID, 个数], ...}
     def GetJobItemList(self): return self.JobItemList # 职业物品组列表 [[职业1物品, 职业2物品, ...], ...]
     def GetGridItemRateListFree(self): return self.GridItemRateListFree # 免费产出格子编号饼图 [[概率, 格子编号], ...]
+    def GetFreeGridItemRateList2(self): return self.FreeGridItemRateList2 # 免费每满x次保底产出格子编号饼图 [[概率, 格子编号], ...]
+    def GetFreeGridItemRateList3(self): return self.FreeGridItemRateList3 # 免费第x次必出产出格子编号饼图 {次数:[[概率, 格子编号], ...], ...}
     def GetGridItemRateList1(self): return self.GridItemRateList1 # 常规产出格子编号饼图 [[概率, 格子编号], ...]
     def GetGridItemRateList2(self): return self.GridItemRateList2 # 每满x次保底产出格子编号饼图 [[概率, 格子编号], ...]
     def GetGridItemRateList3(self): return self.GridItemRateList3 # 第x次必出产出格子编号饼图 {次数:[[概率, 格子编号], ...], ...}
@@ -2697,9 +2843,12 @@
         self.EndDate = ""
         self.StartTimeList = []
         self.EndTimeList = []
+        self.AdvanceMinutes = 0
         self.LVLimit = 0
         self.IsDayReset = 0
-        self.GiftbagList = []
+        self.GiftbagTypeList = []
+        self.MailKey = ""
+        self.MailItemPrize = []
         return
         
     def GetCfgID(self): return self.CfgID # 配置ID
@@ -2707,9 +2856,12 @@
     def GetEndDate(self): return self.EndDate # 结束日期
     def GetStartTimeList(self): return self.StartTimeList # 开启时间列表, 支持多个时段
     def GetEndTimeList(self): return self.EndTimeList # 结束时间列表, 支持多个时段
+    def GetAdvanceMinutes(self): return self.AdvanceMinutes # 前端提前X分钟展示活动
     def GetLVLimit(self): return self.LVLimit # 限制等级
     def GetIsDayReset(self): return self.IsDayReset # 是否每天重置
-    def GetGiftbagList(self): return self.GiftbagList # 礼包模板类型列表
+    def GetGiftbagTypeList(self): return self.GiftbagTypeList # 礼包类型列表
+    def GetMailKey(self): return self.MailKey # 活动更新时发送邮件key
+    def GetMailItemPrize(self): return self.MailItemPrize # 活动更新时发送邮件奖励物品
 
 # 限时礼包模板表
 class IPY_FlashGiftbag():
@@ -2732,6 +2884,38 @@
     def GetMainItemID(self): return self.MainItemID # 标的物品ID
     def GetNotifyKey(self): return self.NotifyKey # 全服广播key,默认两个参数(玩家名, 档位额度)
 
+# 双倍经验活动表
+class IPY_ActExpRate():
+    
+    def __init__(self):
+        self.CfgID = 0
+        self.LVLimit = 0
+        self.AddExpRate = 0
+        return
+        
+    def GetCfgID(self): return self.CfgID # 配置ID
+    def GetLVLimit(self): return self.LVLimit # 限制等级
+    def GetAddExpRate(self): return self.AddExpRate # 经验倍率加成,万分率
+
+# 消费返利活动表
+class IPY_ActCostRebate():
+    
+    def __init__(self):
+        self.CfgID = 0
+        self.StartDate = ""
+        self.EndDate = ""
+        self.LVLimit = 0
+        self.IsDayReset = 0
+        self.TemplateIDList = []
+        return
+        
+    def GetCfgID(self): return self.CfgID # 配置ID
+    def GetStartDate(self): return self.StartDate # 开启日期
+    def GetEndDate(self): return self.EndDate # 结束日期
+    def GetLVLimit(self): return self.LVLimit # 限制等级
+    def GetIsDayReset(self): return self.IsDayReset # 是否每天重置
+    def GetTemplateIDList(self): return self.TemplateIDList # 模板ID列表
+
 # 消费返利模板表
 class IPY_CostRebateTemplate():
     
@@ -2749,39 +2933,61 @@
     def GetAwardItemList(self): return self.AwardItemList # 返利物品信息列表 [(物品ID,个数,是否绑定),...]
     def GetNotifyKey(self): return self.NotifyKey # 全服广播key,默认两个参数(玩家名, 档位额度)
 
+# BOSS复活活动时间表
+class IPY_ActBossReborn():
+    
+    def __init__(self):
+        self.CfgID = 0
+        self.StartDate = ""
+        self.EndDate = ""
+        self.ResetType = 0
+        self.LVLimit = 0
+        self.TemplateID = 0
+        return
+        
+    def GetCfgID(self): return self.CfgID # 配置ID
+    def GetStartDate(self): return self.StartDate # 开启日期
+    def GetEndDate(self): return self.EndDate # 结束日期
+    def GetResetType(self): return self.ResetType # 重置类型,0-0点重置;1-5点重置
+    def GetLVLimit(self): return self.LVLimit # 限制等级
+    def GetTemplateID(self): return self.TemplateID # 模板编号
+
 # BOSS复活表
 class IPY_BossReborn():
     
     def __init__(self):
+        self.TemplateID = 0
         self.ID = 0
         self.TotalTimes = 0
         self.SingleTimes = 0
-        self.RewardItemID1 = []
-        self.RewardItemCnt1 = []
-        self.RewardItemID2 = []
-        self.RewardItemCnt2 = []
-        self.RewardItemID3 = []
-        self.RewardItemCnt3 = []
-        self.WorldLVList = []
+        self.Reward = []
         return
         
-    def GetID(self): return self.ID # ID
+    def GetTemplateID(self): return self.TemplateID # 模板ID
+    def GetID(self): return self.ID # 活动条目ID
     def GetTotalTimes(self): return self.TotalTimes # 可完成的总次数,0表示不限次数
     def GetSingleTimes(self): return self.SingleTimes # 单次领奖需要的次数
-    def GetRewardItemID1(self): return self.RewardItemID1 # 奖励物品ID1
-    def GetRewardItemCnt1(self): return self.RewardItemCnt1 # 奖励物品数量1
-    def GetRewardItemID2(self): return self.RewardItemID2 # 奖励物品ID2
-    def GetRewardItemCnt2(self): return self.RewardItemCnt2 # 奖励物品数量2
-    def GetRewardItemID3(self): return self.RewardItemID3 # 奖励物品ID3
-    def GetRewardItemCnt3(self): return self.RewardItemCnt3 # 奖励物品数量3
-    def GetWorldLVList(self): return self.WorldLVList # 世界等级
+    def GetReward(self): return self.Reward # 奖励物品ID1
+
+# 多倍修行点活动时间表
+class IPY_ActRealmPoint():
+    
+    def __init__(self):
+        self.CfgID = 0
+        self.Multiple = 0
+        self.LVLimit = 0
+        return
+        
+    def GetCfgID(self): return self.CfgID # 配置ID
+    def GetMultiple(self): return self.Multiple # 倍数
+    def GetLVLimit(self): return self.LVLimit # 限制等级
 
 # 宗门试炼兑换表
 class IPY_TrialExchange():
     
     def __init__(self):
         self.ID = 0
-        self.ExchangeItemID = 0
+        self.ExchangeItemIDList = []
         self.ExchangeItemCount = 0
         self.ExchangeItemIsBind = 0
         self.CostItemID = 0
@@ -2789,7 +2995,7 @@
         return
         
     def GetID(self): return self.ID # 兑换ID
-    def GetExchangeItemID(self): return self.ExchangeItemID # 兑换物品ID
+    def GetExchangeItemIDList(self): return self.ExchangeItemIDList # 兑换物品ID
     def GetExchangeItemCount(self): return self.ExchangeItemCount # 兑换物品个数
     def GetExchangeItemIsBind(self): return self.ExchangeItemIsBind # 兑换物品是否绑定
     def GetCostItemID(self): return self.CostItemID # 消耗物品ID
@@ -2822,6 +3028,23 @@
     def GetIndex(self): return self.Index # 索引
     def GetNeedPoint(self): return self.NeedPoint # 需要点数
     def GetAward(self): return self.Award # 奖励 {"职业":[[物品ID,个数,是否绑定],...], ...}
+
+# 地图NPC配置表-挂机点
+class IPY_MapEventPoint():
+    
+    def __init__(self):
+        self.MapID = 0
+        self.NPCID = 0
+        self.LowLV = 0
+        self.HighestLV = 0
+        self.Defense = 0
+        return
+        
+    def GetMapID(self): return self.MapID
+    def GetNPCID(self): return self.NPCID
+    def GetLowLV(self): return self.LowLV #  推荐最低等级
+    def GetHighestLV(self): return self.HighestLV #  推荐最高等级
+    def GetDefense(self): return self.Defense #  推荐防御
 
 
 def Log(msg, playerID=0, par=0):
@@ -2867,6 +3090,10 @@
         self.ipyItemPlusSumAttrLen = len(self.ipyItemPlusSumAttrCache)
         self.ipyRoleEquipStarsCache = self.__LoadFileData("RoleEquipStars", IPY_RoleEquipStars)
         self.ipyRoleEquipStarsLen = len(self.ipyRoleEquipStarsCache)
+        self.ipyDogzCache = self.__LoadFileData("Dogz", IPY_Dogz)
+        self.ipyDogzLen = len(self.ipyDogzCache)
+        self.ipyDogzEquipPlusCache = self.__LoadFileData("DogzEquipPlus", IPY_DogzEquipPlus)
+        self.ipyDogzEquipPlusLen = len(self.ipyDogzEquipPlusCache)
         self.ipyRuneCache = self.__LoadFileData("Rune", IPY_Rune)
         self.ipyRuneLen = len(self.ipyRuneCache)
         self.ipyEquipWashCache = self.__LoadFileData("EquipWash", IPY_EquipWash)
@@ -3009,16 +3236,26 @@
         self.ipyActFlashGiftbagLen = len(self.ipyActFlashGiftbagCache)
         self.ipyFlashGiftbagCache = self.__LoadFileData("FlashGiftbag", IPY_FlashGiftbag)
         self.ipyFlashGiftbagLen = len(self.ipyFlashGiftbagCache)
+        self.ipyActExpRateCache = self.__LoadFileData("ActExpRate", IPY_ActExpRate)
+        self.ipyActExpRateLen = len(self.ipyActExpRateCache)
+        self.ipyActCostRebateCache = self.__LoadFileData("ActCostRebate", IPY_ActCostRebate)
+        self.ipyActCostRebateLen = len(self.ipyActCostRebateCache)
         self.ipyCostRebateTemplateCache = self.__LoadFileData("CostRebateTemplate", IPY_CostRebateTemplate)
         self.ipyCostRebateTemplateLen = len(self.ipyCostRebateTemplateCache)
+        self.ipyActBossRebornCache = self.__LoadFileData("ActBossReborn", IPY_ActBossReborn)
+        self.ipyActBossRebornLen = len(self.ipyActBossRebornCache)
         self.ipyBossRebornCache = self.__LoadFileData("BossReborn", IPY_BossReborn)
         self.ipyBossRebornLen = len(self.ipyBossRebornCache)
+        self.ipyActRealmPointCache = self.__LoadFileData("ActRealmPoint", IPY_ActRealmPoint)
+        self.ipyActRealmPointLen = len(self.ipyActRealmPointCache)
         self.ipyTrialExchangeCache = self.__LoadFileData("TrialExchange", IPY_TrialExchange)
         self.ipyTrialExchangeLen = len(self.ipyTrialExchangeCache)
         self.ipyAllPeoplePartyCache = self.__LoadFileData("AllPeopleParty", IPY_AllPeopleParty)
         self.ipyAllPeoplePartyLen = len(self.ipyAllPeoplePartyCache)
         self.ipyAllPeoplePartyAwardCache = self.__LoadFileData("AllPeoplePartyAward", IPY_AllPeoplePartyAward)
         self.ipyAllPeoplePartyAwardLen = len(self.ipyAllPeoplePartyAwardCache)
+        self.ipyMapEventPointCache = self.__LoadFileData("MapEventPoint", IPY_MapEventPoint)
+        self.ipyMapEventPointLen = len(self.ipyMapEventPointCache)
         Log("IPY_FuncConfig count=%s" % len(self.ipyFuncConfigDict))
         Log("IPY_DataMgr InitOK!")
         return
@@ -3110,22 +3347,26 @@
         for i, strValue in enumerate(rowList):
             if i == 0:
                 continue
-            fieldName = fieldList[i][1]
-            strValue = strValue.lstrip().rstrip()
-            if strValue.isdigit():
-                configValue = int(strValue)
-            elif (strValue.startswith("{") and strValue.endswith("}")) \
-                or (strValue.startswith("[") and strValue.endswith("]")) \
-                or (strValue.startswith("(") and strValue.endswith(")")):
-                configValue = eval(strValue)
-            elif "_" in strValue and type(self.__StrToDict(strValue)) == dict:
-                configValue = self.__StrToDict(strValue)
-            elif ChConfig.Def_Str_Montant in strValue:
-                configValue = eval("(%s,)" % strValue.replace(ChConfig.Def_Str_Montant, ","))
-            elif strValue in ["-", ""]:
-                configValue = ""
-            else:
-                configValue = self.__ToFloat(strValue)
+            try:
+                fieldName = fieldList[i][1]
+                strValue = strValue.lstrip().rstrip()
+                if strValue.isdigit():
+                    configValue = int(strValue)
+                elif (strValue.startswith("{") and strValue.endswith("}")) \
+                    or (strValue.startswith("[") and strValue.endswith("]")) \
+                    or (strValue.startswith("(") and strValue.endswith(")")):
+                    configValue = eval(strValue)
+                elif "_" in strValue and type(self.__StrToDict(strValue)) == dict:
+                    configValue = self.__StrToDict(strValue)
+                elif ChConfig.Def_Str_Montant in strValue:
+                    configValue = eval("(%s,)" % strValue.replace(ChConfig.Def_Str_Montant, ","))
+                elif strValue in ["-", ""]:
+                    configValue = ""
+                else:
+                    configValue = self.__ToFloat(strValue)
+            except BaseException:
+                ErrLog("SetIpyDataError: tableName=%s,key=%s,i=%s,value=%s" % ("FuncConfig", key, i, strValue))
+                raise
             setattr(funcConfigObj, fieldName, configValue)
         self.ipyFuncConfigDict[key] = funcConfigObj
         return
@@ -3201,6 +3442,10 @@
     def GetItemPlusSumAttrByIndex(self, index): return self.ipyItemPlusSumAttrCache[index]
     def GetRoleEquipStarsCount(self): return self.ipyRoleEquipStarsLen
     def GetRoleEquipStarsByIndex(self, index): return self.ipyRoleEquipStarsCache[index]
+    def GetDogzCount(self): return self.ipyDogzLen
+    def GetDogzByIndex(self, index): return self.ipyDogzCache[index]
+    def GetDogzEquipPlusCount(self): return self.ipyDogzEquipPlusLen
+    def GetDogzEquipPlusByIndex(self, index): return self.ipyDogzEquipPlusCache[index]
     def GetRuneCount(self): return self.ipyRuneLen
     def GetRuneByIndex(self, index): return self.ipyRuneCache[index]
     def GetEquipWashCount(self): return self.ipyEquipWashLen
@@ -3343,16 +3588,26 @@
     def GetActFlashGiftbagByIndex(self, index): return self.ipyActFlashGiftbagCache[index]
     def GetFlashGiftbagCount(self): return self.ipyFlashGiftbagLen
     def GetFlashGiftbagByIndex(self, index): return self.ipyFlashGiftbagCache[index]
+    def GetActExpRateCount(self): return self.ipyActExpRateLen
+    def GetActExpRateByIndex(self, index): return self.ipyActExpRateCache[index]
+    def GetActCostRebateCount(self): return self.ipyActCostRebateLen
+    def GetActCostRebateByIndex(self, index): return self.ipyActCostRebateCache[index]
     def GetCostRebateTemplateCount(self): return self.ipyCostRebateTemplateLen
     def GetCostRebateTemplateByIndex(self, index): return self.ipyCostRebateTemplateCache[index]
+    def GetActBossRebornCount(self): return self.ipyActBossRebornLen
+    def GetActBossRebornByIndex(self, index): return self.ipyActBossRebornCache[index]
     def GetBossRebornCount(self): return self.ipyBossRebornLen
     def GetBossRebornByIndex(self, index): return self.ipyBossRebornCache[index]
+    def GetActRealmPointCount(self): return self.ipyActRealmPointLen
+    def GetActRealmPointByIndex(self, index): return self.ipyActRealmPointCache[index]
     def GetTrialExchangeCount(self): return self.ipyTrialExchangeLen
     def GetTrialExchangeByIndex(self, index): return self.ipyTrialExchangeCache[index]
     def GetAllPeoplePartyCount(self): return self.ipyAllPeoplePartyLen
     def GetAllPeoplePartyByIndex(self, index): return self.ipyAllPeoplePartyCache[index]
     def GetAllPeoplePartyAwardCount(self): return self.ipyAllPeoplePartyAwardLen
     def GetAllPeoplePartyAwardByIndex(self, index): return self.ipyAllPeoplePartyAwardCache[index]
+    def GetMapEventPointCount(self): return self.ipyMapEventPointLen
+    def GetMapEventPointByIndex(self, index): return self.ipyMapEventPointCache[index]
 
 IPYData = IPY_DataMgr()
 def IPY_Data(): return IPYData

--
Gitblit v1.8.0