From 9d9430082ec01ad0c0dcad5b4c062525c4053548 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 07 一月 2025 19:00:09 +0800
Subject: [PATCH] 10289 【越南】【英语】【砍树】【BT】运势-服务端(寻宝设定表增加配置不同的寻宝广播key)

---
 ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py |  231 +++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 205 insertions(+), 26 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py b/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py
index 2a98b53..618c5d7 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py
@@ -47,6 +47,16 @@
                         ("list", "LimitServerGroupIDList", 0),
                         ),
 
+                "PlayerFace":(
+                        ("DWORD", "FaceID", 1),
+                        ("BYTE", "UnlockDefault", 0),
+                        ),
+
+                "PlayerFacePic":(
+                        ("DWORD", "FacePicID", 1),
+                        ("BYTE", "UnlockDefault", 0),
+                        ),
+
                 "WorldLV":(
                         ("WORD", "WorldLV", 1),
                         ("DWORD", "OpenServerSecond", 0),
@@ -60,6 +70,27 @@
                         ("DWORD", "NeedMoney", 0),
                         ("DWORD", "WeekMissionMoneyMax", 0),
                         ("BYTE", "BossFBCnt", 0),
+                        ("DWORD", "ZhenbaogeWeights", 0),
+                        ),
+
+                "FamilyEmblem":(
+                        ("BYTE", "EmblemID", 1),
+                        ("BYTE", "UnlockFamilyLV", 0),
+                        ("DWORD", "ExpireMinutes", 0),
+                        ("DWORD", "CustomFamilyID", 0),
+                        ),
+
+                "FamilyZhenbaogeCut":(
+                        ("BYTE", "CutNum", 1),
+                        ("DWORD", "CutWeight", 0),
+                        ("float", "MinRatio", 0),
+                        ("float", "RandRatio", 0),
+                        ),
+
+                "FamilyZhenbaogeItem":(
+                        ("BYTE", "ItemGroupNum", 1),
+                        ("DWORD", "ItemWeight", 0),
+                        ("list", "ItemList", 0),
                         ),
 
                 "FamilyBossHurtAward":(
@@ -710,7 +741,7 @@
                         ("list", "NotifyInfoLoop", 0),
                         ("WORD", "LVLimit", 0),
                         ("BYTE", "IsDayReset", 0),
-                        ("list", "ShopTypeList", 0),
+                        ("dict", "ShopTypeList", 0),
                         ),
 
                 "Store":(
@@ -917,6 +948,26 @@
                         ("WORD", "LVLimit", 0),
                         ),
 
+                "ActYunshi":(
+                        ("DWORD", "CfgID", 1),
+                        ("list", "PlatformList", 0),
+                        ("list", "ServerGroupIDList", 0),
+                        ("BYTE", "ActNum", 0),
+                        ("char", "StartDate", 0),
+                        ("char", "EndDate", 0),
+                        ("BYTE", "ResetType", 0),
+                        ),
+
+                "ActLunhuidian":(
+                        ("DWORD", "CfgID", 1),
+                        ("list", "PlatformList", 0),
+                        ("list", "ServerGroupIDList", 0),
+                        ("BYTE", "ActNum", 0),
+                        ("char", "StartDate", 0),
+                        ("char", "EndDate", 0),
+                        ("BYTE", "ResetType", 0),
+                        ),
+
                 "ActBuyCountGift":(
                         ("DWORD", "CfgID", 1),
                         ("list", "PlatformList", 0),
@@ -924,9 +975,6 @@
                         ("BYTE", "ActNum", 0),
                         ("char", "StartDate", 0),
                         ("char", "EndDate", 0),
-                        ("dict", "NotifyInfoStart", 0),
-                        ("dict", "NotifyInfoEnd", 0),
-                        ("list", "NotifyInfoLoop", 0),
                         ("BYTE", "IsDayReset", 0),
                         ("BYTE", "ResetType", 0),
                         ),
@@ -938,9 +986,6 @@
                         ("BYTE", "ActNum", 0),
                         ("char", "StartDate", 0),
                         ("char", "EndDate", 0),
-                        ("dict", "NotifyInfoStart", 0),
-                        ("dict", "NotifyInfoEnd", 0),
-                        ("list", "NotifyInfoLoop", 0),
                         ("BYTE", "IsDayReset", 0),
                         ("BYTE", "ResetType", 0),
                         ),
@@ -952,9 +997,6 @@
                         ("BYTE", "ActNum", 0),
                         ("char", "StartDate", 0),
                         ("char", "EndDate", 0),
-                        ("dict", "NotifyInfoStart", 0),
-                        ("dict", "NotifyInfoEnd", 0),
-                        ("list", "NotifyInfoLoop", 0),
                         ),
 
                 "ActLoginAward":(
@@ -1188,6 +1230,26 @@
     def GetLimitServerGroupIDRangeList(self): return self.attrTuple[0] # 限制创角的服务器组ID范围列表 list
     def GetLimitServerGroupIDList(self): return self.attrTuple[1] # 限制创角的服务器组ID列表 list
 
+# 头像表
+class IPY_PlayerFace():
+    
+    def __init__(self):
+        self.attrTuple = None
+        return
+        
+    def GetFaceID(self): return self.attrTuple[0] # 头像ID DWORD
+    def GetUnlockDefault(self): return self.attrTuple[1] # 是否默认激活 BYTE
+
+# 头像框表
+class IPY_PlayerFacePic():
+    
+    def __init__(self):
+        self.attrTuple = None
+        return
+        
+    def GetFacePicID(self): return self.attrTuple[0] # 头像框ID DWORD
+    def GetUnlockDefault(self): return self.attrTuple[1] # 是否默认激活 BYTE
+
 # 世界等级表格
 class IPY_WorldLV():
     
@@ -1211,7 +1273,43 @@
     def GetEliteCnt(self): return self.attrTuple[3] # 精英数量 BYTE
     def GetNeedMoney(self): return self.attrTuple[4] # 升级需要资金 DWORD
     def GetWeekMissionMoneyMax(self): return self.attrTuple[5] # 每周任务最大可获得仙盟资金 DWORD
-    def GetBossFBCnt(self): return self.attrTuple[6] # BOSS副本次数 BYTE
+    def GetBossFBCnt(self): return self.attrTuple[6] # BOSS副本次数 BYTE
+    def GetZhenbaogeWeights(self): return self.attrTuple[7] # 珍宝阁总权重 DWORD
+
+# 仙盟徽章表
+class IPY_FamilyEmblem():
+    
+    def __init__(self):
+        self.attrTuple = None
+        return
+        
+    def GetEmblemID(self): return self.attrTuple[0] # 徽章ID BYTE
+    def GetUnlockFamilyLV(self): return self.attrTuple[1] # 解锁仙盟等级,为0时代表其他方式解锁 BYTE
+    def GetExpireMinutes(self): return self.attrTuple[2] # 有效时长,分钟 DWORD
+    def GetCustomFamilyID(self): return self.attrTuple[3] # 定制仙盟ID DWORD
+
+# 仙盟珍宝阁砍价
+class IPY_FamilyZhenbaogeCut():
+    
+    def __init__(self):
+        self.attrTuple = None
+        return
+        
+    def GetCutNum(self): return self.attrTuple[0] # 砍价人次 BYTE
+    def GetCutWeight(self): return self.attrTuple[1] # 砍价权重 DWORD
+    def GetMinRatio(self): return self.attrTuple[2] # 保底比值 float
+    def GetRandRatio(self): return self.attrTuple[3] # 随机比值 float
+
+# 仙盟珍宝阁物品
+class IPY_FamilyZhenbaogeItem():
+    
+    def __init__(self):
+        self.attrTuple = None
+        return
+        
+    def GetItemGroupNum(self): return self.attrTuple[0] # 物品组编号 BYTE
+    def GetItemWeight(self): return self.attrTuple[1] # 随机权重 DWORD
+    def GetItemList(self): return self.attrTuple[2] # 物品列表[[物品ID,个数,是否拍品], ...] list
 
 # 仙盟试炼伤血奖励表
 class IPY_FamilyBossHurtAward():
@@ -2152,7 +2250,7 @@
     def GetNotifyInfoLoop(self): return self.attrTuple[11] # 全服提示信息 - 循环广播[间隔分钟, 广播key] list
     def GetLVLimit(self): return self.attrTuple[12] # 限制等级 WORD
     def GetIsDayReset(self): return self.attrTuple[13] # 是否每天重置 BYTE
-    def GetShopTypeList(self): return self.attrTuple[14] # 商店类型列表 list
+    def GetShopTypeList(self): return self.attrTuple[14] # 商店类型列表 dict
 
 # 商城表
 class IPY_Store():
@@ -2463,6 +2561,36 @@
     def GetNotifyInfoEnd(self): return self.attrTuple[10] # 全服提示信息 - 相对结束时间 dict
     def GetLVLimit(self): return self.attrTuple[11] # 限制等级 WORD
 
+# 运势活动时间表
+class IPY_ActYunshi():
+    
+    def __init__(self):
+        self.attrTuple = None
+        return
+        
+    def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD
+    def GetPlatformList(self): return self.attrTuple[1] # 活动平台列表["平台A", "平台A", ...],配[]代表所有 list
+    def GetServerGroupIDList(self): return self.attrTuple[2] # 服务器ID列表 list
+    def GetActNum(self): return self.attrTuple[3] # 活动分组编号, 活动类型 * 10 + 不同界面编号 BYTE
+    def GetStartDate(self): return self.attrTuple[4] # 开启日期 char
+    def GetEndDate(self): return self.attrTuple[5] # 结束日期 char
+    def GetResetType(self): return self.attrTuple[6] # 重置类型,0-0点重置;1-5点重置 BYTE
+
+# 轮回殿活动时间表
+class IPY_ActLunhuidian():
+    
+    def __init__(self):
+        self.attrTuple = None
+        return
+        
+    def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD
+    def GetPlatformList(self): return self.attrTuple[1] # 活动平台列表["平台A", "平台A", ...],配[]代表所有 list
+    def GetServerGroupIDList(self): return self.attrTuple[2] # 服务器ID列表 list
+    def GetActNum(self): return self.attrTuple[3] # 活动分组编号, 活动类型 * 10 + 不同界面编号 BYTE
+    def GetStartDate(self): return self.attrTuple[4] # 开启日期 char
+    def GetEndDate(self): return self.attrTuple[5] # 结束日期 char
+    def GetResetType(self): return self.attrTuple[6] # 重置类型,0-0点重置;1-5点重置 BYTE
+
 # 购买次数礼包活动时间表
 class IPY_ActBuyCountGift():
     
@@ -2476,11 +2604,8 @@
     def GetActNum(self): return self.attrTuple[3] # 活动分组编号, 活动类型 * 10 + 不同界面编号 BYTE
     def GetStartDate(self): return self.attrTuple[4] # 开启日期 char
     def GetEndDate(self): return self.attrTuple[5] # 结束日期 char
-    def GetNotifyInfoStart(self): return self.attrTuple[6] # 全服提示信息 - 相对开始时间 dict
-    def GetNotifyInfoEnd(self): return self.attrTuple[7] # 全服提示信息 - 相对结束时间 dict
-    def GetNotifyInfoLoop(self): return self.attrTuple[8] # 全服提示信息 - 循环广播[间隔分钟, 广播key] list
-    def GetIsDayReset(self): return self.attrTuple[9] # 是否每天重置 BYTE
-    def GetResetType(self): return self.attrTuple[10] # 重置类型,0-0点重置;1-5点重置 BYTE
+    def GetIsDayReset(self): return self.attrTuple[6] # 是否每天重置 BYTE
+    def GetResetType(self): return self.attrTuple[7] # 重置类型,0-0点重置;1-5点重置 BYTE
 
 # 任务活动时间表
 class IPY_ActTask():
@@ -2495,11 +2620,8 @@
     def GetActNum(self): return self.attrTuple[3] # 活动分组编号, 活动类型 * 10 + 不同界面编号 BYTE
     def GetStartDate(self): return self.attrTuple[4] # 开启日期 char
     def GetEndDate(self): return self.attrTuple[5] # 结束日期 char
-    def GetNotifyInfoStart(self): return self.attrTuple[6] # 全服提示信息 - 相对开始时间 dict
-    def GetNotifyInfoEnd(self): return self.attrTuple[7] # 全服提示信息 - 相对结束时间 dict
-    def GetNotifyInfoLoop(self): return self.attrTuple[8] # 全服提示信息 - 循环广播[间隔分钟, 广播key] list
-    def GetIsDayReset(self): return self.attrTuple[9] # 是否每天重置 BYTE
-    def GetResetType(self): return self.attrTuple[10] # 重置类型,0-0点重置;1-5点重置 BYTE
+    def GetIsDayReset(self): return self.attrTuple[6] # 是否每天重置 BYTE
+    def GetResetType(self): return self.attrTuple[7] # 重置类型,0-0点重置;1-5点重置 BYTE
 
 # 登录活动奖励时间表新
 class IPY_ActLoginNew():
@@ -2513,10 +2635,7 @@
     def GetServerGroupIDList(self): return self.attrTuple[2] # 服务器ID列表 list
     def GetActNum(self): return self.attrTuple[3] # 活动分组编号, 活动类型 * 10 + 不同界面编号 BYTE
     def GetStartDate(self): return self.attrTuple[4] # 开启日期 char
-    def GetEndDate(self): return self.attrTuple[5] # 结束日期 char
-    def GetNotifyInfoStart(self): return self.attrTuple[6] # 全服提示信息 - 相对开始时间 dict
-    def GetNotifyInfoEnd(self): return self.attrTuple[7] # 全服提示信息 - 相对结束时间 dict
-    def GetNotifyInfoLoop(self): return self.attrTuple[8] # 全服提示信息 - 循环广播[间隔分钟, 广播key] list
+    def GetEndDate(self): return self.attrTuple[5] # 结束日期 char
 
 # 登录奖励时间表
 class IPY_ActLoginAward():
@@ -2880,8 +2999,13 @@
             self.ipyConfigEx = {}
         self.__LoadFileData("FuncConfig", onlyCheck)
         self.__LoadFileData("CreateRoleLimitServer", onlyCheck)
+        self.__LoadFileData("PlayerFace", onlyCheck)
+        self.__LoadFileData("PlayerFacePic", onlyCheck)
         self.__LoadFileData("WorldLV", onlyCheck)
         self.__LoadFileData("Family", onlyCheck)
+        self.__LoadFileData("FamilyEmblem", onlyCheck)
+        self.__LoadFileData("FamilyZhenbaogeCut", onlyCheck)
+        self.__LoadFileData("FamilyZhenbaogeItem", onlyCheck)
         self.__LoadFileData("FamilyBossHurtAward", onlyCheck)
         self.__LoadFileData("FamilyZhenfa", onlyCheck)
         self.__LoadFileData("MarketQuery", onlyCheck)
@@ -2961,6 +3085,8 @@
         self.__LoadFileData("CrossDemonLandZoneMap", onlyCheck)
         self.__LoadFileData("CrossFamilyFlagwarZoneMap", onlyCheck)
         self.__LoadFileData("ActWeekParty", onlyCheck)
+        self.__LoadFileData("ActYunshi", onlyCheck)
+        self.__LoadFileData("ActLunhuidian", onlyCheck)
         self.__LoadFileData("ActBuyCountGift", onlyCheck)
         self.__LoadFileData("ActTask", onlyCheck)
         self.__LoadFileData("ActLoginNew", onlyCheck)
@@ -3063,8 +3189,12 @@
                         attrValue = value
                     elif fieldType == "dict":
                         attrValue = self.__StrToDict(value)
+                        if type(attrValue) != dict:
+                            raise
                     elif fieldType == "list":
                         attrValue = self.__StrToList(value)
+                        if type(attrValue) not in [list, tuple]:
+                            raise
                     elif fieldType == "eval":
                         attrValue = self.__StrToEval(value)
                     elif fieldType == "float":
@@ -3203,6 +3333,20 @@
         self.CheckLoadData("CreateRoleLimitServer")
         return self.ipyCreateRoleLimitServerCache[index]
 
+    def GetPlayerFaceCount(self):
+        self.CheckLoadData("PlayerFace")
+        return self.ipyPlayerFaceLen
+    def GetPlayerFaceByIndex(self, index):
+        self.CheckLoadData("PlayerFace")
+        return self.ipyPlayerFaceCache[index]
+
+    def GetPlayerFacePicCount(self):
+        self.CheckLoadData("PlayerFacePic")
+        return self.ipyPlayerFacePicLen
+    def GetPlayerFacePicByIndex(self, index):
+        self.CheckLoadData("PlayerFacePic")
+        return self.ipyPlayerFacePicCache[index]
+
     def GetWorldLVCount(self):
         self.CheckLoadData("WorldLV")
         return self.ipyWorldLVLen
@@ -3216,6 +3360,27 @@
     def GetFamilyByIndex(self, index):
         self.CheckLoadData("Family")
         return self.ipyFamilyCache[index]
+
+    def GetFamilyEmblemCount(self):
+        self.CheckLoadData("FamilyEmblem")
+        return self.ipyFamilyEmblemLen
+    def GetFamilyEmblemByIndex(self, index):
+        self.CheckLoadData("FamilyEmblem")
+        return self.ipyFamilyEmblemCache[index]
+
+    def GetFamilyZhenbaogeCutCount(self):
+        self.CheckLoadData("FamilyZhenbaogeCut")
+        return self.ipyFamilyZhenbaogeCutLen
+    def GetFamilyZhenbaogeCutByIndex(self, index):
+        self.CheckLoadData("FamilyZhenbaogeCut")
+        return self.ipyFamilyZhenbaogeCutCache[index]
+
+    def GetFamilyZhenbaogeItemCount(self):
+        self.CheckLoadData("FamilyZhenbaogeItem")
+        return self.ipyFamilyZhenbaogeItemLen
+    def GetFamilyZhenbaogeItemByIndex(self, index):
+        self.CheckLoadData("FamilyZhenbaogeItem")
+        return self.ipyFamilyZhenbaogeItemCache[index]
 
     def GetFamilyBossHurtAwardCount(self):
         self.CheckLoadData("FamilyBossHurtAward")
@@ -3770,6 +3935,20 @@
         self.CheckLoadData("ActWeekParty")
         return self.ipyActWeekPartyCache[index]
 
+    def GetActYunshiCount(self):
+        self.CheckLoadData("ActYunshi")
+        return self.ipyActYunshiLen
+    def GetActYunshiByIndex(self, index):
+        self.CheckLoadData("ActYunshi")
+        return self.ipyActYunshiCache[index]
+
+    def GetActLunhuidianCount(self):
+        self.CheckLoadData("ActLunhuidian")
+        return self.ipyActLunhuidianLen
+    def GetActLunhuidianByIndex(self, index):
+        self.CheckLoadData("ActLunhuidian")
+        return self.ipyActLunhuidianCache[index]
+
     def GetActBuyCountGiftCount(self):
         self.CheckLoadData("ActBuyCountGift")
         return self.ipyActBuyCountGiftLen

--
Gitblit v1.8.0