From 9c7acc7f02e130a8b742ec21579fdf5e6640d3cc Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期五, 16 十一月 2018 15:18:59 +0800
Subject: [PATCH] 2683 支持召唤兽-灵类型可继承主人为NPC的完整属性

---
 ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py |  210 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 208 insertions(+), 2 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py b/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py
index 4ae0037..0f0d821 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py
@@ -182,6 +182,7 @@
                 "ActSpringSale":(
                         ("DWORD", "CfgID", 1),
                         ("char", "ActMark", 0),
+                        ("list", "PlatformList", 0),
                         ("list", "ServerIDList", 0),
                         ("char", "StartDate", 0),
                         ("char", "EndDate", 0),
@@ -198,6 +199,7 @@
                 "ActFlashGiftbag":(
                         ("DWORD", "CfgID", 1),
                         ("char", "ActMark", 0),
+                        ("list", "PlatformList", 0),
                         ("list", "ServerIDList", 0),
                         ("char", "StartDate", 0),
                         ("char", "EndDate", 0),
@@ -214,6 +216,7 @@
                 "ActExpRate":(
                         ("DWORD", "CfgID", 1),
                         ("char", "ActMark", 0),
+                        ("list", "PlatformList", 0),
                         ("list", "ServerIDList", 0),
                         ("char", "StartDate", 0),
                         ("char", "EndDate", 0),
@@ -221,6 +224,7 @@
                         ("list", "EndTimeList", 0),
                         ("dict", "NotifyInfoStart", 0),
                         ("dict", "NotifyInfoEnd", 0),
+                        ("list", "NotifyInfoLoop", 0),
                         ("WORD", "LVLimit", 0),
                         ("DWORD", "AddExpRate", 0),
                         ),
@@ -228,6 +232,7 @@
                 "ActCostRebate":(
                         ("DWORD", "CfgID", 1),
                         ("char", "ActMark", 0),
+                        ("list", "PlatformList", 0),
                         ("list", "ServerIDList", 0),
                         ("char", "StartDate", 0),
                         ("char", "EndDate", 0),
@@ -240,6 +245,7 @@
                 "ActBossReborn":(
                         ("DWORD", "CfgID", 1),
                         ("char", "ActMark", 0),
+                        ("list", "PlatformList", 0),
                         ("list", "ServerIDList", 0),
                         ("char", "StartDate", 0),
                         ("char", "EndDate", 0),
@@ -253,9 +259,11 @@
                 "ActFairyCeremony":(
                         ("DWORD", "CfgID", 1),
                         ("char", "ActMark", 0),
+                        ("list", "PlatformList", 0),
                         ("list", "ServerIDList", 0),
                         ("char", "StartDate", 0),
                         ("char", "EndDate", 0),
+                        ("BYTE", "ResetType", 0),
                         ("dict", "NotifyInfoStart", 0),
                         ("dict", "NotifyInfoEnd", 0),
                         ("WORD", "LVLimit", 0),
@@ -270,6 +278,7 @@
                 "ActRealmPoint":(
                         ("DWORD", "CfgID", 1),
                         ("char", "ActMark", 0),
+                        ("list", "PlatformList", 0),
                         ("list", "ServerIDList", 0),
                         ("char", "StartDate", 0),
                         ("char", "EndDate", 0),
@@ -278,6 +287,59 @@
                         ("dict", "NotifyInfoEnd", 0),
                         ("WORD", "Multiple", 0),
                         ("WORD", "LVLimit", 0),
+                        ),
+
+                "ActFlashSale":(
+                        ("DWORD", "CfgID", 1),
+                        ("char", "ActMark", 0),
+                        ("list", "PlatformList", 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),
+                        ),
+
+                "ActWishingWell":(
+                        ("DWORD", "CfgID", 1),
+                        ("char", "ActMark", 0),
+                        ("list", "PlatformList", 0),
+                        ("list", "ServerIDList", 0),
+                        ("char", "StartDate", 0),
+                        ("char", "EndDate", 0),
+                        ("BYTE", "IsDayReset", 0),
+                        ("BYTE", "ResetType", 0),
+                        ("dict", "NotifyInfoStart", 0),
+                        ("dict", "NotifyInfoEnd", 0),
+                        ("list", "NotifyInfoLoop", 0),
+                        ("WORD", "LVLimit", 0),
+                        ),
+
+                "ActTotalRecharge":(
+                        ("DWORD", "CfgID", 1),
+                        ("char", "ActMark", 0),
+                        ("list", "PlatformList", 0),
+                        ("list", "ServerIDList", 0),
+                        ("char", "StartDate", 0),
+                        ("char", "EndDate", 0),
+                        ("dict", "NotifyInfoStart", 0),
+                        ("dict", "NotifyInfoEnd", 0),
+                        ("list", "NotifyInfoLoop", 0),
+                        ("BYTE", "IsDayReset", 0),
                         ),
                 }
 
@@ -599,6 +661,7 @@
     def __init__(self):
         self.CfgID = 0
         self.ActMark = ""
+        self.PlatformList = []
         self.ServerIDList = []
         self.StartDate = ""
         self.EndDate = ""
@@ -614,6 +677,7 @@
         
     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 # 结束日期
@@ -632,6 +696,7 @@
     def __init__(self):
         self.CfgID = 0
         self.ActMark = ""
+        self.PlatformList = []
         self.ServerIDList = []
         self.StartDate = ""
         self.EndDate = ""
@@ -647,6 +712,7 @@
         
     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 # 结束日期
@@ -665,6 +731,7 @@
     def __init__(self):
         self.CfgID = 0
         self.ActMark = ""
+        self.PlatformList = []
         self.ServerIDList = []
         self.StartDate = ""
         self.EndDate = ""
@@ -672,12 +739,14 @@
         self.EndTimeList = []
         self.NotifyInfoStart = {}
         self.NotifyInfoEnd = {}
+        self.NotifyInfoLoop = []
         self.LVLimit = 0
         self.AddExpRate = 0
         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 # 结束日期
@@ -685,6 +754,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 # 经验倍率加成,万分率
 
@@ -694,6 +764,7 @@
     def __init__(self):
         self.CfgID = 0
         self.ActMark = ""
+        self.PlatformList = []
         self.ServerIDList = []
         self.StartDate = ""
         self.EndDate = ""
@@ -705,6 +776,7 @@
         
     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 # 结束日期
@@ -719,6 +791,7 @@
     def __init__(self):
         self.CfgID = 0
         self.ActMark = ""
+        self.PlatformList = []
         self.ServerIDList = []
         self.StartDate = ""
         self.EndDate = ""
@@ -731,6 +804,7 @@
         
     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 # 结束日期
@@ -746,9 +820,11 @@
     def __init__(self):
         self.CfgID = 0
         self.ActMark = ""
+        self.PlatformList = []
         self.ServerIDList = []
         self.StartDate = ""
         self.EndDate = ""
+        self.ResetType = 0
         self.NotifyInfoStart = {}
         self.NotifyInfoEnd = {}
         self.LVLimit = 0
@@ -756,9 +832,11 @@
         
     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 # 结束日期
+    def GetResetType(self): return self.ResetType # 重置类型,0-0点重置;1-5点重置;2-5点开始0点结束
     def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间
     def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间
     def GetLVLimit(self): return self.LVLimit # 限制等级
@@ -782,6 +860,7 @@
     def __init__(self):
         self.CfgID = 0
         self.ActMark = ""
+        self.PlatformList = []
         self.ServerIDList = []
         self.StartDate = ""
         self.EndDate = ""
@@ -794,6 +873,7 @@
         
     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 # 结束日期
@@ -802,6 +882,116 @@
     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.PlatformList = []
+        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 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 # 结束日期
+    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 # 全服限制数量
+
+# 许愿池活动时间表
+class IPY_ActWishingWell():
+    
+    def __init__(self):
+        self.CfgID = 0
+        self.ActMark = ""
+        self.PlatformList = []
+        self.ServerIDList = []
+        self.StartDate = ""
+        self.EndDate = ""
+        self.IsDayReset = 0
+        self.ResetType = 0
+        self.NotifyInfoStart = {}
+        self.NotifyInfoEnd = {}
+        self.NotifyInfoLoop = []
+        self.LVLimit = 0
+        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 # 结束日期
+    def GetIsDayReset(self): return self.IsDayReset # 是否每天重置
+    def GetResetType(self): return self.ResetType # 重置类型,0-0点重置;1-5点重置
+    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 # 限制等级
+
+# 累计充值活动表
+class IPY_ActTotalRecharge():
+    
+    def __init__(self):
+        self.CfgID = 0
+        self.ActMark = ""
+        self.PlatformList = []
+        self.ServerIDList = []
+        self.StartDate = ""
+        self.EndDate = ""
+        self.NotifyInfoStart = {}
+        self.NotifyInfoEnd = {}
+        self.NotifyInfoLoop = []
+        self.IsDayReset = 0
+        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 # 结束日期
+    def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间
+    def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间
+    def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # 全服提示信息 - 循环广播[间隔分钟, 广播key]
+    def GetIsDayReset(self): return self.IsDayReset # 是否每天重置
 
 
 def Log(msg, playerID=0, par=0):
@@ -877,6 +1067,14 @@
         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)
+        self.ipyActWishingWellCache = self.__LoadFileData("ActWishingWell", IPY_ActWishingWell)
+        self.ipyActWishingWellLen = len(self.ipyActWishingWellCache)
+        self.ipyActTotalRechargeCache = self.__LoadFileData("ActTotalRecharge", IPY_ActTotalRecharge)
+        self.ipyActTotalRechargeLen = len(self.ipyActTotalRechargeCache)
         Log("IPY_FuncConfig count=%s" % len(self.ipyFuncConfigDict))
         Log("IPY_DataMgr InitOK!")
         return
@@ -1093,6 +1291,14 @@
     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]
+    def GetActWishingWellCount(self): return self.ipyActWishingWellLen
+    def GetActWishingWellByIndex(self, index): return self.ipyActWishingWellCache[index]
+    def GetActTotalRechargeCount(self): return self.ipyActTotalRechargeLen
+    def GetActTotalRechargeByIndex(self, index): return self.ipyActTotalRechargeCache[index]
 
 IPYData = IPY_DataMgr()
 def IPY_Data(): return IPYData
@@ -1287,7 +1493,7 @@
     '''查询条件下与对应查询字段参考值相近的数据实例;参考值小于配置表最小值时返回none,大于最大值时返回最大值对应的实例
     @param dtName: 表名,不含tag
     @param keyName: 参考字段名
-    @param keyValue: 参考字段值
+    @param keyValue: 参考字段值,大于等于字段值时返回对应数据
     @param conditionDict: 查询条件,{查询字段名:字段值, ...}
     @return: 找不到数据返回 None , 否则返回对应的 ipyData 数据实例
     '''
@@ -1319,7 +1525,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