From 7f7cdbf15426f9203a2fcf5268c295cd5f888eba Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 08 十一月 2019 21:01:50 +0800
Subject: [PATCH] 8333 【主干】【后端】boss之家死亡在复活点复活,不退出副本(支持和中立地图一样可返回最后一次所在的野外地图;支持从副本退出后返回boss之家不重复扣除消耗)
---
ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py | 237 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 235 insertions(+), 2 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py b/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py
index b78a0ce..421e496 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),
@@ -59,6 +64,38 @@
"MarketQuery":(
("WORD", "QueryType", 1),
("dict", "LimitInfo", 0),
+ ),
+
+ "AuctionItem":(
+ ("DWORD", "AuctionItemID", 1),
+ ("BYTE", "NoticeSaleMinutes", 0),
+ ("WORD", "FamilySaleMinutes", 0),
+ ("WORD", "WorldSaleMinutes", 0),
+ ("WORD", "BasePrice", 0),
+ ("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":(
@@ -164,6 +201,11 @@
("DWORD", "StoneNPCID", 0),
("WORD", "RebornPreNotifyTime", 0),
("char", "SourceName", 0),
+ ),
+
+ "BOSSFirstKill":(
+ ("DWORD", "NPCID", 1),
+ ("list", "ServerFirstKillPlayerAward", 0),
),
"QuestionBank":(
@@ -420,6 +462,8 @@
("BYTE", "DanLV", 1),
("WORD", "LVUpScore", 0),
("list", "MatchRange", 0),
+ ("BYTE", "MatchRobotRate", 0),
+ ("BYTE", "MatchRobotRateEx", 0),
),
"CrossPenglaiZoneMap":(
@@ -507,6 +551,28 @@
("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),
+ ),
+
+ "FairyDomain":(
+ ("WORD", "ID", 1),
+ ("DWORD", "HourCntPubLimit", 0),
+ ("DWORD", "DayCntPubLimit", 0),
+ ),
}
@@ -528,6 +594,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():
@@ -571,6 +648,72 @@
def GetQueryType(self): return self.QueryType # 查询类型
def GetLimitInfo(self): return self.LimitInfo # 限制条件
+
+# 拍卖物品表
+class IPY_AuctionItem():
+
+ def __init__(self):
+ self.AuctionItemID = 0
+ self.NoticeSaleMinutes = 0
+ self.FamilySaleMinutes = 0
+ self.WorldSaleMinutes = 0
+ self.BasePrice = 0
+ self.BuyoutPrice = 0
+ self.BiddingAdd = 0
+ self.NeedWorldNotify = 0
+ self.Sortpriority = 0
+ return
+
+ def GetAuctionItemID(self): return self.AuctionItemID
+ def GetNoticeSaleMinutes(self): return self.NoticeSaleMinutes # 预告拍卖分钟
+ def GetFamilySaleMinutes(self): return self.FamilySaleMinutes # 仙盟拍卖分钟
+ def GetWorldSaleMinutes(self): return self.WorldSaleMinutes # 全服拍卖分钟
+ 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 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():
@@ -792,6 +935,17 @@
def GetStoneNPCID(self): return self.StoneNPCID # 墓碑NPCID
def GetRebornPreNotifyTime(self): return self.RebornPreNotifyTime # 复活前X秒通知
def GetSourceName(self): return self.SourceName # BOSS来源
+
+# 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():
@@ -1321,12 +1475,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():
@@ -1506,6 +1664,53 @@
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_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):
@@ -1533,12 +1738,18 @@
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)
self.ipyFamilyLen = len(self.ipyFamilyCache)
self.ipyMarketQueryCache = self.__LoadFileData("MarketQuery", IPY_MarketQuery)
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)
@@ -1561,6 +1772,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)
@@ -1621,6 +1834,12 @@
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.ipyFairyDomainCache = self.__LoadFileData("FairyDomain", IPY_FairyDomain)
+ self.ipyFairyDomainLen = len(self.ipyFairyDomainCache)
Log("IPY_FuncConfig count=%s" % len(self.ipyFuncConfigDict))
Log("IPY_DataMgr InitOK!")
return
@@ -1789,12 +2008,18 @@
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
def GetFamilyByIndex(self, index): return self.ipyFamilyCache[index]
def GetMarketQueryCount(self): return self.ipyMarketQueryLen
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
@@ -1817,6 +2042,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
@@ -1877,6 +2104,12 @@
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 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