From a2b6496da2384f6ad3adb23a75e2776cb7c95862 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期一, 16 三月 2020 18:39:58 +0800 Subject: [PATCH] 8401 【后端】BOSS复活修改(boss信息表无复活时间配置的boss不处理复活检查逻辑,防止和关联的活动控制复活状态冲突) --- ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py | 262 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 256 insertions(+), 6 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py b/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py index ae44945..9c95488 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py @@ -41,6 +41,11 @@ ("char", "Numerical5", 0), ), + "CreateRoleLimitServer":( + ("list", "LimitServerGroupIDRangeList", 0), + ("list", "LimitServerGroupIDList", 0), + ), + "WorldLV":( ("WORD", "WorldLV", 1), ("DWORD", "OpenServerSecond", 0), @@ -70,6 +75,27 @@ ("WORD", "BuyoutPrice", 0), ("WORD", "BiddingAdd", 0), ("BYTE", "NeedWorldNotify", 0), + ("BYTE", "Sortpriority", 0), + ), + + "AuctionSystemItem":( + ("DWORD", "CfgID", 1), + ("char", "StartDate", 0), + ("char", "EndDate", 0), + ("char", "StartTime", 0), + ("char", "EndTime", 0), + ("list", "WorldLVRange", 0), + ("list", "AddRandSecondRange", 0), + ("WORD", "ReplenishCDMinutes", 0), + ("BYTE", "ReplenishAuctionCount", 0), + ("DWORD", "ReplenishItemID", 0), + ("list", "ReplenishEquipInfo", 0), + ("list", "ReplenishEquipPlaces", 0), + ("BYTE", "AuctionCount", 0), + ("list", "RandMinuteRange", 0), + ("list", "ItemCountWeightList", 0), + ("list", "AuctionItemWeightList", 0), + ("list", "RandMailKeyList", 0), ), "DailyAction":( @@ -175,6 +201,12 @@ ("DWORD", "StoneNPCID", 0), ("WORD", "RebornPreNotifyTime", 0), ("char", "SourceName", 0), + ("BYTE", "CanAssist", 0), + ), + + "BOSSFirstKill":( + ("DWORD", "NPCID", 1), + ("list", "ServerFirstKillPlayerAward", 0), ), "QuestionBank":( @@ -276,6 +308,15 @@ ("list", "NotifyInfoLoop", 0), ("WORD", "LVLimit", 0), ("BYTE", "IsDayReset", 0), + ), + + "ActDailyGiftbag":( + ("DWORD", "CfgID", 1), + ("char", "ActMark", 0), + ("list", "PlatformList", 0), + ("list", "ServerIDList", 0), + ("char", "StartDate", 0), + ("char", "EndDate", 0), ), "ActExpRate":( @@ -431,6 +472,8 @@ ("BYTE", "DanLV", 1), ("WORD", "LVUpScore", 0), ("list", "MatchRange", 0), + ("BYTE", "MatchRobotRate", 0), + ("BYTE", "MatchRobotRateEx", 0), ), "CrossPenglaiZoneMap":( @@ -518,6 +561,33 @@ ("list", "NotifyInfoLoop", 0), ("WORD", "LVLimit", 0), ), + + "EquipStarUp":( + ("BYTE", "ClassLV", 1), + ("BYTE", "EquipPlace", 1), + ("BYTE", "Star", 1), + ("list", "CostEquipPlace", 0), + ("BYTE", "IsJobLimit", 0), + ("list", "CostEquipColor", 0), + ("BYTE", "UnSuitRate", 0), + ), + + "FamilyWarRankAward":( + ("WORD", "WarWorldLV", 1), + ("BYTE", "WarRank", 0), + ("list", "RankAuctionItem", 0), + ), + + "AssistThanksGift":( + ("DWORD", "GiftID", 1), + ("BYTE", "AssistAwardCount", 0), + ), + + "FairyDomain":( + ("WORD", "ID", 1), + ("DWORD", "HourCntPubLimit", 0), + ("DWORD", "DayCntPubLimit", 0), + ), } @@ -539,6 +609,17 @@ def GetNumerical3(self): return self.Numerical3 # 数据3 def GetNumerical4(self): return self.Numerical4 # 数据4 def GetNumerical5(self): return self.Numerical5 # 数据5 + +# 创角限制服务器配置表 +class IPY_CreateRoleLimitServer(): + + def __init__(self): + self.LimitServerGroupIDRangeList = [] + self.LimitServerGroupIDList = [] + return + + def GetLimitServerGroupIDRangeList(self): return self.LimitServerGroupIDRangeList # 限制创角的服务器组ID范围列表 + def GetLimitServerGroupIDList(self): return self.LimitServerGroupIDList # 限制创角的服务器组ID列表 # 世界等级表格 class IPY_WorldLV(): @@ -594,7 +675,8 @@ self.BasePrice = 0 self.BuyoutPrice = 0 self.BiddingAdd = 0 - self.NeedWorldNotify = 0 + self.NeedWorldNotify = 0 + self.Sortpriority = 0 return def GetAuctionItemID(self): return self.AuctionItemID @@ -604,7 +686,49 @@ def GetBasePrice(self): return self.BasePrice # 起拍价 def GetBuyoutPrice(self): return self.BuyoutPrice # 一口价 def GetBiddingAdd(self): return self.BiddingAdd # 竞价增加 - def GetNeedWorldNotify(self): return self.NeedWorldNotify # 是否需要广播 + def GetNeedWorldNotify(self): return self.NeedWorldNotify # 是否需要广播 + def GetSortpriority(self): return self.Sortpriority # 排序优先级归组 + +# 拍卖行系统拍品表 +class IPY_AuctionSystemItem(): + + def __init__(self): + self.CfgID = 0 + self.StartDate = "" + self.EndDate = "" + self.StartTime = "" + self.EndTime = "" + self.WorldLVRange = [] + self.AddRandSecondRange = [] + self.ReplenishCDMinutes = 0 + self.ReplenishAuctionCount = 0 + self.ReplenishItemID = 0 + self.ReplenishEquipInfo = [] + self.ReplenishEquipPlaces = [] + self.AuctionCount = 0 + self.RandMinuteRange = [] + self.ItemCountWeightList = [] + self.AuctionItemWeightList = [] + self.RandMailKeyList = [] + return + + def GetCfgID(self): return self.CfgID + def GetStartDate(self): return self.StartDate # 开启日期 + def GetEndDate(self): return self.EndDate # 结束日期 + def GetStartTime(self): return self.StartTime # 开启时间 + def GetEndTime(self): return self.EndTime # 结束时间 + def GetWorldLVRange(self): return self.WorldLVRange # 世界等级范围限制 + def GetAddRandSecondRange(self): return self.AddRandSecondRange # 每件拍品随机间隔上架秒数 上限|下限 + def GetReplenishCDMinutes(self): return self.ReplenishCDMinutes # 动态补充拍品间隔分钟 + def GetReplenishAuctionCount(self): return self.ReplenishAuctionCount # 动态补充拍品保底数 + def GetReplenishItemID(self): return self.ReplenishItemID # 动态补充物品ID + def GetReplenishEquipInfo(self): return self.ReplenishEquipInfo # 动态补充装备信息 [阶,颜色,是否套装] + def GetReplenishEquipPlaces(self): return self.ReplenishEquipPlaces # 动态补充上架装备位列表 + def GetAuctionCount(self): return self.AuctionCount # 指定上架次数 + def GetRandMinuteRange(self): return self.RandMinuteRange # 指定上架随机间隔分钟下限|上限 + def GetItemCountWeightList(self): return self.ItemCountWeightList # 指定上架随机件数权重列表, [[权重, 件数], ...] + def GetAuctionItemWeightList(self): return self.AuctionItemWeightList # 指定上架物品随机权重, [[权重, 物品ID],[权重, [阶,颜色,部位集合,是否套装,星级]] ...] + def GetRandMailKeyList(self): return self.RandMailKeyList # 指定上架随机邮件列表,有配置时上架的时候在线玩家会收到一封上架邮件提醒 # 日常活动表 class IPY_DailyAction(): @@ -814,7 +938,8 @@ self.NoUpdataCnt = 0 self.StoneNPCID = 0 self.RebornPreNotifyTime = 0 - self.SourceName = "" + self.SourceName = "" + self.CanAssist = 0 return def GetNPCID(self): return self.NPCID # ID @@ -825,7 +950,19 @@ def GetNoUpdataCnt(self): return self.NoUpdataCnt # 多少次未更新实时在线数量字段时强制更新 def GetStoneNPCID(self): return self.StoneNPCID # 墓碑NPCID def GetRebornPreNotifyTime(self): return self.RebornPreNotifyTime # 复活前X秒通知 - def GetSourceName(self): return self.SourceName # BOSS来源 + def GetSourceName(self): return self.SourceName # BOSS来源 + def GetCanAssist(self): return self.CanAssist # 是否可协助 + +# Boss首杀 +class IPY_BOSSFirstKill(): + + def __init__(self): + self.NPCID = 0 + self.ServerFirstKillPlayerAward = [] + return + + def GetNPCID(self): return self.NPCID # ID + def GetServerFirstKillPlayerAward(self): return self.ServerFirstKillPlayerAward # 全服首杀玩家奖励 [[物品ID,个数,是否拍品], ...] # 宴会题库表 class IPY_QuestionBank(): @@ -1037,6 +1174,25 @@ def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # 全服提示信息 - 循环广播[间隔分钟, 广播key] def GetLVLimit(self): return self.LVLimit # 限制等级 def GetIsDayReset(self): return self.IsDayReset # 是否每天重置 + +# 每日礼包表 +class IPY_ActDailyGiftbag(): + + def __init__(self): + self.CfgID = 0 + self.ActMark = "" + self.PlatformList = [] + self.ServerIDList = [] + self.StartDate = "" + self.EndDate = "" + return + + def GetCfgID(self): return self.CfgID # 配置ID + def GetActMark(self): return self.ActMark # 活动组标记 + def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有 + def GetServerIDList(self): return self.ServerIDList # 服务器ID列表 + def GetStartDate(self): return self.StartDate # 开启日期 + def GetEndDate(self): return self.EndDate # 结束日期 # 双倍经验活动表 class IPY_ActExpRate(): @@ -1355,12 +1511,16 @@ def __init__(self): self.DanLV = 0 self.LVUpScore = 0 - self.MatchRange = [] + self.MatchRange = [] + self.MatchRobotRate = 0 + self.MatchRobotRateEx = 0 return def GetDanLV(self): return self.DanLV # 段位等级 def GetLVUpScore(self): return self.LVUpScore # 升段位所需积分 - def GetMatchRange(self): return self.MatchRange # 可匹配到的玩家段位区间 [从段位A, 到段位B],配[]代表只匹配本段位的 + def GetMatchRange(self): return self.MatchRange # 可匹配到的玩家段位区间 [从段位A, 到段位B],配[]代表只匹配本段位的 + def GetMatchRobotRate(self): return self.MatchRobotRate # 匹配机器人基础概率,百分率 + def GetMatchRobotRateEx(self): return self.MatchRobotRateEx # 匹配机器人失败次数附加概率,百分率 # 跨服Boss蓬莱仙境分区地图表 class IPY_CrossPenglaiZoneMap(): @@ -1540,6 +1700,64 @@ def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间 def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # 全服提示信息 - 循环广播[间隔分钟, 广播key] def GetLVLimit(self): return self.LVLimit # 限制等级 + +# 装备升星表 +class IPY_EquipStarUp(): + + def __init__(self): + self.ClassLV = 0 + self.EquipPlace = 0 + self.Star = 0 + self.CostEquipPlace = [] + self.IsJobLimit = 0 + self.CostEquipColor = [] + self.UnSuitRate = 0 + return + + def GetClassLV(self): return self.ClassLV # 阶级 + def GetEquipPlace(self): return self.EquipPlace # 装备位 + def GetStar(self): return self.Star # 星数 + def GetCostEquipPlace(self): return self.CostEquipPlace # 可用装备部位 + def GetIsJobLimit(self): return self.IsJobLimit # 是否只用本职业装备材料 + def GetCostEquipColor(self): return self.CostEquipColor # 可用装备品质 + def GetUnSuitRate(self): return self.UnSuitRate # 单件非套装加成概率 + +# 仙盟联赛排名奖励表 +class IPY_FamilyWarRankAward(): + + def __init__(self): + self.WarWorldLV = 0 + self.WarRank = 0 + self.RankAuctionItem = [] + return + + def GetWarWorldLV(self): return self.WarWorldLV # 联赛世界等级 + def GetWarRank(self): return self.WarRank # 联赛排名 + def GetRankAuctionItem(self): return self.RankAuctionItem # 拍品奖励[[拍品ID,个数], ...] + +# 协助感谢礼盒表 +class IPY_AssistThanksGift(): + + def __init__(self): + self.GiftID = 0 + self.AssistAwardCount = 0 + return + + def GetGiftID(self): return self.GiftID # 礼盒物品ID + def GetAssistAwardCount(self): return self.AssistAwardCount # 协助奖励每日次数 + +# 缥缈仙域表 +class IPY_FairyDomain(): + + def __init__(self): + self.ID = 0 + self.HourCntPubLimit = 0 + self.DayCntPubLimit = 0 + return + + def GetID(self): return self.ID # 事件编号 + def GetHourCntPubLimit(self): return self.HourCntPubLimit # 全服每小时次数限制 + def GetDayCntPubLimit(self): return self.DayCntPubLimit # 全服每天次数限制 def Log(msg, playerID=0, par=0): @@ -1567,6 +1785,8 @@ self.ipyConfigEx = {} self.ipyFuncConfigCache = self.__LoadFileData("FuncConfig", IPY_FuncConfig) self.ipyFuncConfigLen = len(self.ipyFuncConfigCache) + self.ipyCreateRoleLimitServerCache = self.__LoadFileData("CreateRoleLimitServer", IPY_CreateRoleLimitServer) + self.ipyCreateRoleLimitServerLen = len(self.ipyCreateRoleLimitServerCache) self.ipyWorldLVCache = self.__LoadFileData("WorldLV", IPY_WorldLV) self.ipyWorldLVLen = len(self.ipyWorldLVCache) self.ipyFamilyCache = self.__LoadFileData("Family", IPY_Family) @@ -1575,6 +1795,8 @@ self.ipyMarketQueryLen = len(self.ipyMarketQueryCache) self.ipyAuctionItemCache = self.__LoadFileData("AuctionItem", IPY_AuctionItem) self.ipyAuctionItemLen = len(self.ipyAuctionItemCache) + self.ipyAuctionSystemItemCache = self.__LoadFileData("AuctionSystemItem", IPY_AuctionSystemItem) + self.ipyAuctionSystemItemLen = len(self.ipyAuctionSystemItemCache) self.ipyDailyActionCache = self.__LoadFileData("DailyAction", IPY_DailyAction) self.ipyDailyActionLen = len(self.ipyDailyActionCache) self.ipyDailyActionCustomCache = self.__LoadFileData("DailyActionCustom", IPY_DailyActionCustom) @@ -1597,6 +1819,8 @@ self.ipyChinMapLen = len(self.ipyChinMapCache) self.ipyBOSSInfoCache = self.__LoadFileData("BOSSInfo", IPY_BOSSInfo) self.ipyBOSSInfoLen = len(self.ipyBOSSInfoCache) + self.ipyBOSSFirstKillCache = self.__LoadFileData("BOSSFirstKill", IPY_BOSSFirstKill) + self.ipyBOSSFirstKillLen = len(self.ipyBOSSFirstKillCache) self.ipyQuestionBankCache = self.__LoadFileData("QuestionBank", IPY_QuestionBank) self.ipyQuestionBankLen = len(self.ipyQuestionBankCache) self.ipyFamilyRedPackCache = self.__LoadFileData("FamilyRedPack", IPY_FamilyRedPack) @@ -1615,6 +1839,8 @@ self.ipyActSpringSaleLen = len(self.ipyActSpringSaleCache) self.ipyActFlashGiftbagCache = self.__LoadFileData("ActFlashGiftbag", IPY_ActFlashGiftbag) self.ipyActFlashGiftbagLen = len(self.ipyActFlashGiftbagCache) + self.ipyActDailyGiftbagCache = self.__LoadFileData("ActDailyGiftbag", IPY_ActDailyGiftbag) + self.ipyActDailyGiftbagLen = len(self.ipyActDailyGiftbagCache) self.ipyActExpRateCache = self.__LoadFileData("ActExpRate", IPY_ActExpRate) self.ipyActExpRateLen = len(self.ipyActExpRateCache) self.ipyActCostRebateCache = self.__LoadFileData("ActCostRebate", IPY_ActCostRebate) @@ -1657,6 +1883,14 @@ self.ipyNewUniquenessArriveLen = len(self.ipyNewUniquenessArriveCache) self.ipyActLuckyTreasureCache = self.__LoadFileData("ActLuckyTreasure", IPY_ActLuckyTreasure) self.ipyActLuckyTreasureLen = len(self.ipyActLuckyTreasureCache) + self.ipyEquipStarUpCache = self.__LoadFileData("EquipStarUp", IPY_EquipStarUp) + self.ipyEquipStarUpLen = len(self.ipyEquipStarUpCache) + self.ipyFamilyWarRankAwardCache = self.__LoadFileData("FamilyWarRankAward", IPY_FamilyWarRankAward) + self.ipyFamilyWarRankAwardLen = len(self.ipyFamilyWarRankAwardCache) + self.ipyAssistThanksGiftCache = self.__LoadFileData("AssistThanksGift", IPY_AssistThanksGift) + self.ipyAssistThanksGiftLen = len(self.ipyAssistThanksGiftCache) + self.ipyFairyDomainCache = self.__LoadFileData("FairyDomain", IPY_FairyDomain) + self.ipyFairyDomainLen = len(self.ipyFairyDomainCache) Log("IPY_FuncConfig count=%s" % len(self.ipyFuncConfigDict)) Log("IPY_DataMgr InitOK!") return @@ -1825,6 +2059,8 @@ def GetFuncConfigCount(self): return self.ipyFuncConfigLen def GetFuncConfigByIndex(self, index): return self.ipyFuncConfigCache[index] + def GetCreateRoleLimitServerCount(self): return self.ipyCreateRoleLimitServerLen + def GetCreateRoleLimitServerByIndex(self, index): return self.ipyCreateRoleLimitServerCache[index] def GetWorldLVCount(self): return self.ipyWorldLVLen def GetWorldLVByIndex(self, index): return self.ipyWorldLVCache[index] def GetFamilyCount(self): return self.ipyFamilyLen @@ -1833,6 +2069,8 @@ def GetMarketQueryByIndex(self, index): return self.ipyMarketQueryCache[index] def GetAuctionItemCount(self): return self.ipyAuctionItemLen def GetAuctionItemByIndex(self, index): return self.ipyAuctionItemCache[index] + def GetAuctionSystemItemCount(self): return self.ipyAuctionSystemItemLen + def GetAuctionSystemItemByIndex(self, index): return self.ipyAuctionSystemItemCache[index] def GetDailyActionCount(self): return self.ipyDailyActionLen def GetDailyActionByIndex(self, index): return self.ipyDailyActionCache[index] def GetDailyActionCustomCount(self): return self.ipyDailyActionCustomLen @@ -1855,6 +2093,8 @@ def GetChinMapByIndex(self, index): return self.ipyChinMapCache[index] def GetBOSSInfoCount(self): return self.ipyBOSSInfoLen def GetBOSSInfoByIndex(self, index): return self.ipyBOSSInfoCache[index] + def GetBOSSFirstKillCount(self): return self.ipyBOSSFirstKillLen + def GetBOSSFirstKillByIndex(self, index): return self.ipyBOSSFirstKillCache[index] def GetQuestionBankCount(self): return self.ipyQuestionBankLen def GetQuestionBankByIndex(self, index): return self.ipyQuestionBankCache[index] def GetFamilyRedPackCount(self): return self.ipyFamilyRedPackLen @@ -1873,6 +2113,8 @@ def GetActSpringSaleByIndex(self, index): return self.ipyActSpringSaleCache[index] def GetActFlashGiftbagCount(self): return self.ipyActFlashGiftbagLen def GetActFlashGiftbagByIndex(self, index): return self.ipyActFlashGiftbagCache[index] + def GetActDailyGiftbagCount(self): return self.ipyActDailyGiftbagLen + def GetActDailyGiftbagByIndex(self, index): return self.ipyActDailyGiftbagCache[index] def GetActExpRateCount(self): return self.ipyActExpRateLen def GetActExpRateByIndex(self, index): return self.ipyActExpRateCache[index] def GetActCostRebateCount(self): return self.ipyActCostRebateLen @@ -1915,6 +2157,14 @@ def GetNewUniquenessArriveByIndex(self, index): return self.ipyNewUniquenessArriveCache[index] def GetActLuckyTreasureCount(self): return self.ipyActLuckyTreasureLen def GetActLuckyTreasureByIndex(self, index): return self.ipyActLuckyTreasureCache[index] + def GetEquipStarUpCount(self): return self.ipyEquipStarUpLen + def GetEquipStarUpByIndex(self, index): return self.ipyEquipStarUpCache[index] + def GetFamilyWarRankAwardCount(self): return self.ipyFamilyWarRankAwardLen + def GetFamilyWarRankAwardByIndex(self, index): return self.ipyFamilyWarRankAwardCache[index] + def GetAssistThanksGiftCount(self): return self.ipyAssistThanksGiftLen + def GetAssistThanksGiftByIndex(self, index): return self.ipyAssistThanksGiftCache[index] + def GetFairyDomainCount(self): return self.ipyFairyDomainLen + def GetFairyDomainByIndex(self, index): return self.ipyFairyDomainCache[index] IPYData = IPY_DataMgr() def IPY_Data(): return IPYData -- Gitblit v1.8.0