From 43a9e6c87a5a4980902e86eb0470d885b1a3fb8f Mon Sep 17 00:00:00 2001 From: xdh <xiefantasy@qq.com> Date: 星期一, 22 十月 2018 21:23:02 +0800 Subject: [PATCH] 4282 【主干】【1.1.0】【后端】新增物品效果:获得X法宝X经验 --- ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py | 96 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 92 insertions(+), 4 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py b/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py index 1546ef5..e945a24 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py @@ -88,7 +88,7 @@ "DailyActionCustom":( ("DWORD", "ID", 0), ("BYTE", "OpenServerWeek", 1), - ("DWORD", "OpenServerDay", 1), + ("DWORD", "OpenServerDay", 0), ("BYTE", "DailyID", 0), ("list", "OpenTimeList", 0), ("DWORD", "Duration", 0), @@ -111,7 +111,7 @@ "FBStateTimeCustom":( ("DWORD", "ID", 0), ("BYTE", "OpenServerWeek", 1), - ("DWORD", "OpenServerDay", 1), + ("DWORD", "OpenServerDay", 0), ("DWORD", "DataMapID", 0), ("BYTE", "StartHour", 0), ("BYTE", "StartMinute", 0), @@ -221,6 +221,7 @@ ("list", "EndTimeList", 0), ("dict", "NotifyInfoStart", 0), ("dict", "NotifyInfoEnd", 0), + ("list", "NotifyInfoLoop", 0), ("WORD", "LVLimit", 0), ("DWORD", "AddExpRate", 0), ), @@ -256,6 +257,7 @@ ("list", "ServerIDList", 0), ("char", "StartDate", 0), ("char", "EndDate", 0), + ("BYTE", "ResetType", 0), ("dict", "NotifyInfoStart", 0), ("dict", "NotifyInfoEnd", 0), ("WORD", "LVLimit", 0), @@ -278,6 +280,30 @@ ("dict", "NotifyInfoEnd", 0), ("WORD", "Multiple", 0), ("WORD", "LVLimit", 0), + ), + + "ActFlashSale":( + ("DWORD", "CfgID", 1), + ("char", "ActMark", 0), + ("list", "ServerIDList", 0), + ("char", "StartDate", 0), + ("char", "EndDate", 0), + ("list", "StartTimeList", 0), + ("list", "EndTimeList", 0), + ("WORD", "AdvanceMinutes", 0), + ("dict", "NotifyInfoStart", 0), + ("dict", "NotifyInfoEnd", 0), + ("list", "NotifyInfoLoop", 0), + ("WORD", "LVLimit", 0), + ("BYTE", "IsDayReset", 0), + ("list", "ShopTypeList", 0), + ), + + "Store":( + ("DWORD", "ID", 1), + ("DWORD", "ShopType", 0), + ("BYTE", "RefreshType", 0), + ("DWORD", "ServerLimitCnt", 0), ), } @@ -672,6 +698,7 @@ self.EndTimeList = [] self.NotifyInfoStart = {} self.NotifyInfoEnd = {} + self.NotifyInfoLoop = [] self.LVLimit = 0 self.AddExpRate = 0 return @@ -685,6 +712,7 @@ def GetEndTimeList(self): return self.EndTimeList # 结束时间列表, 支持多个时段 def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间 def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间 + def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # 全服提示信息 - 循环广播[间隔分钟, 广播key, [可选参数1, ...]] def GetLVLimit(self): return self.LVLimit # 限制等级 def GetAddExpRate(self): return self.AddExpRate # 经验倍率加成,万分率 @@ -749,6 +777,7 @@ self.ServerIDList = [] self.StartDate = "" self.EndDate = "" + self.ResetType = 0 self.NotifyInfoStart = {} self.NotifyInfoEnd = {} self.LVLimit = 0 @@ -759,6 +788,7 @@ def GetServerIDList(self): return self.ServerIDList # 服务器ID列表 def GetStartDate(self): return self.StartDate # 开启日期 def GetEndDate(self): return self.EndDate # 结束日期 + def GetResetType(self): return self.ResetType # 重置类型,0-0点重置;1-5点重置 def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间 def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间 def GetLVLimit(self): return self.LVLimit # 限制等级 @@ -802,6 +832,56 @@ def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间 def GetMultiple(self): return self.Multiple # 倍数 def GetLVLimit(self): return self.LVLimit # 限制等级 + +# 限时抢购表 +class IPY_ActFlashSale(): + + def __init__(self): + self.CfgID = 0 + self.ActMark = "" + self.ServerIDList = [] + self.StartDate = "" + self.EndDate = "" + self.StartTimeList = [] + self.EndTimeList = [] + self.AdvanceMinutes = 0 + self.NotifyInfoStart = {} + self.NotifyInfoEnd = {} + self.NotifyInfoLoop = [] + self.LVLimit = 0 + self.IsDayReset = 0 + self.ShopTypeList = [] + return + + def GetCfgID(self): return self.CfgID # 配置ID + def GetActMark(self): return self.ActMark # 活动组标记 + def GetServerIDList(self): return self.ServerIDList # 服务器ID列表 + def GetStartDate(self): return self.StartDate # 开启日期 + 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 GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间 + def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间 + def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # 全服提示信息 - 循环广播[间隔分钟, 广播key] + def GetLVLimit(self): return self.LVLimit # 限制等级 + def GetIsDayReset(self): return self.IsDayReset # 是否每天重置 + def GetShopTypeList(self): return self.ShopTypeList # 商店类型列表 + +# 商城表 +class IPY_Store(): + + def __init__(self): + self.ID = 0 + self.ShopType = 0 + self.RefreshType = 0 + self.ServerLimitCnt = 0 + return + + def GetID(self): return self.ID # ID + def GetShopType(self): return self.ShopType # 商店类型 + def GetRefreshType(self): return self.RefreshType # 刷新类型 0-不重置,1-onWeek0点,2-onWeek5点,3-OnDay0点,4-OnDay5点 + def GetServerLimitCnt(self): return self.ServerLimitCnt # 全服限制数量 def Log(msg, playerID=0, par=0): @@ -877,6 +957,10 @@ self.ipyUniquenessArriveLen = len(self.ipyUniquenessArriveCache) self.ipyActRealmPointCache = self.__LoadFileData("ActRealmPoint", IPY_ActRealmPoint) self.ipyActRealmPointLen = len(self.ipyActRealmPointCache) + self.ipyActFlashSaleCache = self.__LoadFileData("ActFlashSale", IPY_ActFlashSale) + self.ipyActFlashSaleLen = len(self.ipyActFlashSaleCache) + self.ipyStoreCache = self.__LoadFileData("Store", IPY_Store) + self.ipyStoreLen = len(self.ipyStoreCache) Log("IPY_FuncConfig count=%s" % len(self.ipyFuncConfigDict)) Log("IPY_DataMgr InitOK!") return @@ -1093,6 +1177,10 @@ def GetUniquenessArriveByIndex(self, index): return self.ipyUniquenessArriveCache[index] def GetActRealmPointCount(self): return self.ipyActRealmPointLen def GetActRealmPointByIndex(self, index): return self.ipyActRealmPointCache[index] + def GetActFlashSaleCount(self): return self.ipyActFlashSaleLen + def GetActFlashSaleByIndex(self, index): return self.ipyActFlashSaleCache[index] + def GetStoreCount(self): return self.ipyStoreLen + def GetStoreByIndex(self, index): return self.ipyStoreCache[index] IPYData = IPY_DataMgr() def IPY_Data(): return IPYData @@ -1287,7 +1375,7 @@ '''查询条件下与对应查询字段参考值相近的数据实例;参考值小于配置表最小值时返回none,大于最大值时返回最大值对应的实例 @param dtName: 表名,不含tag @param keyName: 参考字段名 - @param keyValue: 参考字段值 + @param keyValue: 参考字段值,大于等于字段值时返回对应数据 @param conditionDict: 查询条件,{查询字段名:字段值, ...} @return: 找不到数据返回 None , 否则返回对应的 ipyData 数据实例 ''' @@ -1319,7 +1407,7 @@ for i in xrange(near - 1, low - 1, -1): nearData = dataList[i] nearValue = getattr(nearData, "%s" % keyName) - if nearValue < keyValue: + if nearValue <= keyValue: return nearData elif keyValue > nearValue: -- Gitblit v1.8.0