From abe9dbc7d8eb82602cc975284a7d2ae8894e4ef9 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 12 十二月 2025 17:35:03 +0800
Subject: [PATCH] 389 流向记录(登录、下线、主线任务、主线关卡、副本、货币、物品)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py |  237 ++++++++++++++++++++++++++---------------------------------
 1 files changed, 104 insertions(+), 133 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
index e256cec..cbd6e77 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -217,7 +217,7 @@
                         ),
 
                 "HeroQuality":(
-                        ("DWORD", "Quality", 1),
+                        ("BYTE", "Quality", 1),
                         ("list", "InitTalentWeight", 0),
                         ("BYTE", "InitStarUpper", 0),
                         ("DWORD", "InitAddPer", 0),
@@ -225,29 +225,26 @@
                         ("DWORD", "BreakLVAddPer", 0),
                         ("DWORD", "StarAddPer", 0),
                         ("list", "BookActAwardMoney", 0),
-                        ("DWORD", "BookInitAddPer", 0),
-                        ("DWORD", "BookStarAddPer", 0),
-                        ("DWORD", "BookBreakLVAddPer", 0),
                         ("list", "DismissReturnItems", 0),
                         ("list", "RecommendAwardMoney", 0),
                         ),
 
                 "HeroQualityBreak":(
-                        ("DWORD", "Quality", 1),
+                        ("BYTE", "Quality", 1),
                         ("DWORD", "BreakLV", 1),
-                        ("WORD", "LVMax", 0),
-                        ("list", "UPCostItem", 0),
+                        ("WORD", "UPLVNeed", 0),
+                        ("list", "UPCostItemList", 0),
                         ),
 
                 "HeroQualityAwake":(
-                        ("DWORD", "Quality", 1),
+                        ("BYTE", "Quality", 1),
                         ("DWORD", "AwakeLV", 1),
                         ("list", "UPCostItem", 0),
                         ("DWORD", "RebirthCostMoney", 0),
                         ),
 
                 "HeroQualityLV":(
-                        ("DWORD", "Quality", 1),
+                        ("BYTE", "Quality", 1),
                         ("DWORD", "HeroLV", 1),
                         ("list", "UPCostItem", 0),
                         ("list", "AttrIDList", 0),
@@ -257,6 +254,22 @@
                 "LineupRecommend":(
                         ("DWORD", "RecommendID", 1),
                         ("list", "HeroIDList", 0),
+                        ),
+
+                "HeroFates":(
+                        ("WORD", "FatesID", 1),
+                        ("BYTE", "FatesQuality", 0),
+                        ("list", "HeroIDList", 0),
+                        ("list", "AwardItemList", 0),
+                        ("list", "AttrIDList", 0),
+                        ("list", "LVAttrValueList", 0),
+                        ),
+
+                "HeroFatesQualityLV":(
+                        ("BYTE", "FatesQuality", 1),
+                        ("BYTE", "FatesLV", 1),
+                        ("BYTE", "NeedStarTotal", 0),
+                        ("BYTE", "NeedHeroCnt", 0),
                         ),
 
                 "PlayerAttr":(
@@ -805,6 +818,7 @@
                         ("BYTE", "UnlockWay", 0),
                         ("DWORD", "UnlockValue", 0),
                         ("BYTE", "UnlockNeedCnt", 0),
+                        ("DWORD", "ExclusiveItemID", 0),
                         ("list", "TalentAttrIDList", 0),
                         ("list", "TalentAttrValueList", 0),
                         ("list", "TalentPerLVAddList", 0),
@@ -858,6 +872,7 @@
                         ("DWORD", "MaxHP", 0),
                         ("DWORD", "Atk", 0),
                         ("DWORD", "Def", 0),
+                        ("BYTE", "ReHeroStar", 0),
                         ("BYTE", "ReHeroBreakLV", 0),
                         ("BYTE", "ReHeroAwakeLV", 0),
                         ("DWORD", "ReAtk", 0),
@@ -1079,12 +1094,6 @@
                         ("DWORD", "StoneNPCID", 0),
                         ("BYTE", "CanAssist", 0),
                         ("BYTE", "SkillResist", 0),
-                        ),
-
-                "BOSSFirstKill":(
-                        ("DWORD", "NPCID", 1),
-                        ("WORD", "PerPlayerMoneyAward", 0),
-                        ("list", "PersonFirstKillAward", 0),
                         ),
 
                 "NPCShow":(
@@ -1455,23 +1464,6 @@
                         ("BYTE", "ChooseItemCount", 0),
                         ("dict", "LibItemInfo", 0),
                         ("list", "NotifyItemNumList", 0),
-                        ),
-
-                "ActBossReborn":(
-                        ("DWORD", "CfgID", 1),
-                        ("char", "StartDate", 0),
-                        ("char", "EndDate", 0),
-                        ("BYTE", "ResetType", 0),
-                        ("WORD", "LVLimit", 0),
-                        ("BYTE", "TemplateID", 0),
-                        ),
-
-                "BossReborn":(
-                        ("BYTE", "TemplateID", 1),
-                        ("BYTE", "ID", 1),
-                        ("DWORD", "TotalTimes", 0),
-                        ("WORD", "SingleTimes", 0),
-                        ("dict", "Reward", 0),
                         ),
 
                 "ActRealmPoint":(
@@ -2472,19 +2464,16 @@
         self.attrTuple = None
         return
         
-    def GetQuality(self): return self.attrTuple[0] # 品质 DWORD
+    def GetQuality(self): return self.attrTuple[0] # 品质 BYTE
     def GetInitTalentWeight(self): return self.attrTuple[1] #  初始天赋数权重 list
     def GetInitStarUpper(self): return self.attrTuple[2] #  初始星级上限 BYTE
-    def GetInitAddPer(self): return self.attrTuple[3] #  上阵初始加成万分率 DWORD
-    def GetLVAddPer(self): return self.attrTuple[4] #  上阵每等级加成 DWORD
-    def GetBreakLVAddPer(self): return self.attrTuple[5] #  上阵每突破等级加成 DWORD
-    def GetStarAddPer(self): return self.attrTuple[6] #  上阵每星级加成 DWORD
+    def GetInitAddPer(self): return self.attrTuple[3] #  卡牌初始加成万分率 DWORD
+    def GetLVAddPer(self): return self.attrTuple[4] #  卡牌每等级加成 DWORD
+    def GetBreakLVAddPer(self): return self.attrTuple[5] #  卡牌每突破等级加成 DWORD
+    def GetStarAddPer(self): return self.attrTuple[6] #  卡牌每星级加成 DWORD
     def GetBookActAwardMoney(self): return self.attrTuple[7] #  图鉴激活奖励货币 类型|值 list
-    def GetBookInitAddPer(self): return self.attrTuple[8] #  图鉴初始加成 DWORD
-    def GetBookStarAddPer(self): return self.attrTuple[9] #  图鉴每星级加成 DWORD
-    def GetBookBreakLVAddPer(self): return self.attrTuple[10] #  图鉴每突破等级加成 DWORD
-    def GetDismissReturnItems(self): return self.attrTuple[11] #  遣散每星返还道具 [[物品ID,个数], ...] list
-    def GetRecommendAwardMoney(self): return self.attrTuple[12] #  阵容推荐激活奖励货币 类型|值 list
+    def GetDismissReturnItems(self): return self.attrTuple[8] #  遣散每星返还道具 [[物品ID,个数], ...] list
+    def GetRecommendAwardMoney(self): return self.attrTuple[9] #  阵容推荐激活奖励货币 类型|值 list
 
 # 武将品质突破表
 class IPY_HeroQualityBreak():
@@ -2493,10 +2482,10 @@
         self.attrTuple = None
         return
         
-    def GetQuality(self): return self.attrTuple[0] # 品质 DWORD
+    def GetQuality(self): return self.attrTuple[0] # 品质 BYTE
     def GetBreakLV(self): return self.attrTuple[1] # 突破等级 DWORD
-    def GetLVMax(self): return self.attrTuple[2] #  等级上限 WORD
-    def GetUPCostItem(self): return self.attrTuple[3] #  突破到下级消耗道具 list
+    def GetUPLVNeed(self): return self.attrTuple[2] #  突破到下级需要等级 WORD
+    def GetUPCostItemList(self): return self.attrTuple[3] #  突破到下级消耗道具 list
 
 # 武将品质觉醒表
 class IPY_HeroQualityAwake():
@@ -2505,7 +2494,7 @@
         self.attrTuple = None
         return
         
-    def GetQuality(self): return self.attrTuple[0] # 品质 DWORD
+    def GetQuality(self): return self.attrTuple[0] # 品质 BYTE
     def GetAwakeLV(self): return self.attrTuple[1] # 觉醒等级 DWORD
     def GetUPCostItem(self): return self.attrTuple[2] #  觉醒到下级消耗道具 list
     def GetRebirthCostMoney(self): return self.attrTuple[3] # 重生消耗货币 DWORD
@@ -2517,7 +2506,7 @@
         self.attrTuple = None
         return
         
-    def GetQuality(self): return self.attrTuple[0] # 品质 DWORD
+    def GetQuality(self): return self.attrTuple[0] # 品质 BYTE
     def GetHeroLV(self): return self.attrTuple[1] # 武将等级 DWORD
     def GetUPCostItem(self): return self.attrTuple[2] #  升级到下级消耗道具 list
     def GetAttrIDList(self): return self.attrTuple[3] #  武将属性ID列表 list
@@ -2532,6 +2521,32 @@
         
     def GetRecommendID(self): return self.attrTuple[0] # 推荐ID DWORD
     def GetHeroIDList(self): return self.attrTuple[1] #  推荐武将ID列表 list
+
+# 武将宿缘表
+class IPY_HeroFates():
+    
+    def __init__(self):
+        self.attrTuple = None
+        return
+        
+    def GetFatesID(self): return self.attrTuple[0] # 宿缘ID WORD
+    def GetFatesQuality(self): return self.attrTuple[1] # 宿缘品质 BYTE
+    def GetHeroIDList(self): return self.attrTuple[2] #  武将ID组合列表 list
+    def GetAwardItemList(self): return self.attrTuple[3] #  激活奖励物品列表 list
+    def GetAttrIDList(self): return self.attrTuple[4] #  属性ID列表 list
+    def GetLVAttrValueList(self): return self.attrTuple[5] #  每级属性值列表 list
+
+# 武将宿缘品质等级表
+class IPY_HeroFatesQualityLV():
+    
+    def __init__(self):
+        self.attrTuple = None
+        return
+        
+    def GetFatesQuality(self): return self.attrTuple[0] # 宿缘品质 BYTE
+    def GetFatesLV(self): return self.attrTuple[1] # 宿缘等级 BYTE
+    def GetNeedStarTotal(self): return self.attrTuple[2] #  升到该级所需总星数 BYTE
+    def GetNeedHeroCnt(self): return self.attrTuple[3] #  所需品质武将数 BYTE
 
 # 属性条目表
 class IPY_PlayerAttr():
@@ -3345,13 +3360,14 @@
     def GetUnlockWay(self): return self.attrTuple[2] # 解锁方式 BYTE
     def GetUnlockValue(self): return self.attrTuple[3] # 解锁方式值 DWORD
     def GetUnlockNeedCnt(self): return self.attrTuple[4] # 解锁所需个数 BYTE
-    def GetTalentAttrIDList(self): return self.attrTuple[5] # 天赋属性ID列表 list
-    def GetTalentAttrValueList(self): return self.attrTuple[6] # 天赋属性初始值 list
-    def GetTalentPerLVAddList(self): return self.attrTuple[7] # 天赋属性每级成长 list
-    def GetEffType(self): return self.attrTuple[8] # 天赋效果类型 BYTE
-    def GetEffTypeValue(self): return self.attrTuple[9] # 效果类型值 BYTE
-    def GetEffValue(self): return self.attrTuple[10] # 效果初始值 BYTE
-    def GetEffPerLVAdd(self): return self.attrTuple[11] # 天赋效果每级成长 DWORD
+    def GetExclusiveItemID(self): return self.attrTuple[5] # 专属信物ID DWORD
+    def GetTalentAttrIDList(self): return self.attrTuple[6] # 天赋属性ID列表 list
+    def GetTalentAttrValueList(self): return self.attrTuple[7] # 天赋属性初始值 list
+    def GetTalentPerLVAddList(self): return self.attrTuple[8] # 天赋属性每级成长 list
+    def GetEffType(self): return self.attrTuple[9] # 天赋效果类型 BYTE
+    def GetEffTypeValue(self): return self.attrTuple[10] # 效果类型值 BYTE
+    def GetEffValue(self): return self.attrTuple[11] # 效果初始值 BYTE
+    def GetEffPerLVAdd(self): return self.attrTuple[12] # 天赋效果每级成长 DWORD
 
 # 红颜品质升级表
 class IPY_BeautyQualityLV():
@@ -3423,23 +3439,24 @@
     def GetMaxHP(self): return self.attrTuple[2] # 生命 DWORD
     def GetAtk(self): return self.attrTuple[3] # 攻击 DWORD
     def GetDef(self): return self.attrTuple[4] # 防御 DWORD
-    def GetReHeroBreakLV(self): return self.attrTuple[5] # 参考突破等级 BYTE
-    def GetReHeroAwakeLV(self): return self.attrTuple[6] # 参考觉醒等级 BYTE
-    def GetReAtk(self): return self.attrTuple[7] # 参考攻击 DWORD
-    def GetReDef(self): return self.attrTuple[8] # 防御 DWORD
-    def GetReMaxHP(self): return self.attrTuple[9] # 生命 DWORD
-    def GetReStunRate(self): return self.attrTuple[10] # DWORD
-    def GetReSuperHitRate(self): return self.attrTuple[11] # DWORD
-    def GetReComboRate(self): return self.attrTuple[12] # DWORD
-    def GetReMissRate(self): return self.attrTuple[13] # DWORD
-    def GetReParryRate(self): return self.attrTuple[14] # DWORD
-    def GetReSuckHPPer(self): return self.attrTuple[15] # DWORD
-    def GetReStunRateDef(self): return self.attrTuple[16] # DWORD
-    def GetReSuperHitRateDef(self): return self.attrTuple[17] # DWORD
-    def GetReComboRateDef(self): return self.attrTuple[18] # DWORD
-    def GetReMissRateDef(self): return self.attrTuple[19] # DWORD
-    def GetReParryRateDef(self): return self.attrTuple[20] # DWORD
-    def GetReSuckHPPerDef(self): return self.attrTuple[21] # DWORD
+    def GetReHeroStar(self): return self.attrTuple[5] # 参考星级 BYTE
+    def GetReHeroBreakLV(self): return self.attrTuple[6] # 参考突破等级 BYTE
+    def GetReHeroAwakeLV(self): return self.attrTuple[7] # 参考觉醒等级 BYTE
+    def GetReAtk(self): return self.attrTuple[8] # 参考攻击 DWORD
+    def GetReDef(self): return self.attrTuple[9] # 防御 DWORD
+    def GetReMaxHP(self): return self.attrTuple[10] # 生命 DWORD
+    def GetReStunRate(self): return self.attrTuple[11] # DWORD
+    def GetReSuperHitRate(self): return self.attrTuple[12] # DWORD
+    def GetReComboRate(self): return self.attrTuple[13] # DWORD
+    def GetReMissRate(self): return self.attrTuple[14] # DWORD
+    def GetReParryRate(self): return self.attrTuple[15] # DWORD
+    def GetReSuckHPPer(self): return self.attrTuple[16] # DWORD
+    def GetReStunRateDef(self): return self.attrTuple[17] # DWORD
+    def GetReSuperHitRateDef(self): return self.attrTuple[18] # DWORD
+    def GetReComboRateDef(self): return self.attrTuple[19] # DWORD
+    def GetReMissRateDef(self): return self.attrTuple[20] # DWORD
+    def GetReParryRateDef(self): return self.attrTuple[21] # DWORD
+    def GetReSuckHPPerDef(self): return self.attrTuple[22] # DWORD
 
 # 特殊地图玩家属性公式表
 class IPY_SpecMapPlayerAttrFormat():
@@ -3749,17 +3766,6 @@
     def GetStoneNPCID(self): return self.attrTuple[7] # 墓碑NPCID DWORD
     def GetCanAssist(self): return self.attrTuple[8] # 是否可协助 BYTE
     def GetSkillResist(self): return self.attrTuple[9] # 是否技能抵抗 BYTE
-
-# Boss首杀
-class IPY_BOSSFirstKill():
-    
-    def __init__(self):
-        self.attrTuple = None
-        return
-        
-    def GetNPCID(self): return self.attrTuple[0] # ID DWORD
-    def GetPerPlayerMoneyAward(self): return self.attrTuple[1] #  首杀全服玩家奖励灵石额度/人 WORD
-    def GetPersonFirstKillAward(self): return self.attrTuple[2] #  个人首次击杀奖励 [[物品ID,个数,是否拍品], ...] list
 
 # NPC秀表
 class IPY_NPCShow():
@@ -4310,33 +4316,6 @@
     def GetChooseItemCount(self): return self.attrTuple[3] # 选择个数 BYTE
     def GetLibItemInfo(self): return self.attrTuple[4] # 物品编号对应物品信息 {物品编号:[物品ID,个数,是否拍品,可选次数], ...}  0不限次数 dict
     def GetNotifyItemNumList(self): return self.attrTuple[5] # 需要广播的编号列表 list
-
-# BOSS复活活动时间表
-class IPY_ActBossReborn():
-    
-    def __init__(self):
-        self.attrTuple = None
-        return
-        
-    def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD
-    def GetStartDate(self): return self.attrTuple[1] # 开启日期 char
-    def GetEndDate(self): return self.attrTuple[2] # 结束日期 char
-    def GetResetType(self): return self.attrTuple[3] # 重置类型,0-0点重置;1-5点重置 BYTE
-    def GetLVLimit(self): return self.attrTuple[4] # 限制等级 WORD
-    def GetTemplateID(self): return self.attrTuple[5] # 模板编号 BYTE
-
-# BOSS复活表
-class IPY_BossReborn():
-    
-    def __init__(self):
-        self.attrTuple = None
-        return
-        
-    def GetTemplateID(self): return self.attrTuple[0] # 模板ID BYTE
-    def GetID(self): return self.attrTuple[1] # 活动条目ID BYTE
-    def GetTotalTimes(self): return self.attrTuple[2] # 可完成的总次数,0表示不限次数 DWORD
-    def GetSingleTimes(self): return self.attrTuple[3] # 单次领奖需要的次数 WORD
-    def GetReward(self): return self.attrTuple[4] # 奖励物品ID1 dict
 
 # 多倍修行点活动时间表
 class IPY_ActRealmPoint():
@@ -5594,6 +5573,8 @@
         self.__LoadFileData("HeroQualityAwake", onlyCheck)
         self.__LoadFileData("HeroQualityLV", onlyCheck)
         self.__LoadFileData("LineupRecommend", onlyCheck)
+        self.__LoadFileData("HeroFates", onlyCheck)
+        self.__LoadFileData("HeroFatesQualityLV", onlyCheck)
         self.__LoadFileData("PlayerAttr", onlyCheck)
         self.__LoadFileData("FightPowerRatio", onlyCheck)
         self.__LoadFileData("MainChapter", onlyCheck)
@@ -5673,7 +5654,6 @@
         self.__LoadFileData("DailyTask", onlyCheck)
         self.__LoadFileData("DailyLivenessReward", onlyCheck)
         self.__LoadFileData("BOSSInfo", onlyCheck)
-        self.__LoadFileData("BOSSFirstKill", onlyCheck)
         self.__LoadFileData("NPCShow", onlyCheck)
         self.__LoadFileData("MapRefreshNPC", onlyCheck)
         self.__LoadFileData("RuneCompound", onlyCheck)
@@ -5710,8 +5690,6 @@
         self.__LoadFileData("CrossActFamilyGCZSQ", onlyCheck)
         self.__LoadFileData("ActGodGift", onlyCheck)
         self.__LoadFileData("ActGodGiftAward", onlyCheck)
-        self.__LoadFileData("ActBossReborn", onlyCheck)
-        self.__LoadFileData("BossReborn", onlyCheck)
         self.__LoadFileData("ActRealmPoint", onlyCheck)
         self.__LoadFileData("TrialExchange", onlyCheck)
         self.__LoadFileData("AllPeopleParty", onlyCheck)
@@ -6143,6 +6121,20 @@
     def GetLineupRecommendByIndex(self, index):
         self.CheckLoadData("LineupRecommend")
         return self.ipyLineupRecommendCache[index]
+
+    def GetHeroFatesCount(self):
+        self.CheckLoadData("HeroFates")
+        return self.ipyHeroFatesLen
+    def GetHeroFatesByIndex(self, index):
+        self.CheckLoadData("HeroFates")
+        return self.ipyHeroFatesCache[index]
+
+    def GetHeroFatesQualityLVCount(self):
+        self.CheckLoadData("HeroFatesQualityLV")
+        return self.ipyHeroFatesQualityLVLen
+    def GetHeroFatesQualityLVByIndex(self, index):
+        self.CheckLoadData("HeroFatesQualityLV")
+        return self.ipyHeroFatesQualityLVCache[index]
 
     def GetPlayerAttrCount(self):
         self.CheckLoadData("PlayerAttr")
@@ -6697,13 +6689,6 @@
         self.CheckLoadData("BOSSInfo")
         return self.ipyBOSSInfoCache[index]
 
-    def GetBOSSFirstKillCount(self):
-        self.CheckLoadData("BOSSFirstKill")
-        return self.ipyBOSSFirstKillLen
-    def GetBOSSFirstKillByIndex(self, index):
-        self.CheckLoadData("BOSSFirstKill")
-        return self.ipyBOSSFirstKillCache[index]
-
     def GetNPCShowCount(self):
         self.CheckLoadData("NPCShow")
         return self.ipyNPCShowLen
@@ -6955,20 +6940,6 @@
     def GetActGodGiftAwardByIndex(self, index):
         self.CheckLoadData("ActGodGiftAward")
         return self.ipyActGodGiftAwardCache[index]
-
-    def GetActBossRebornCount(self):
-        self.CheckLoadData("ActBossReborn")
-        return self.ipyActBossRebornLen
-    def GetActBossRebornByIndex(self, index):
-        self.CheckLoadData("ActBossReborn")
-        return self.ipyActBossRebornCache[index]
-
-    def GetBossRebornCount(self):
-        self.CheckLoadData("BossReborn")
-        return self.ipyBossRebornLen
-    def GetBossRebornByIndex(self, index):
-        self.CheckLoadData("BossReborn")
-        return self.ipyBossRebornCache[index]
 
     def GetActRealmPointCount(self):
         self.CheckLoadData("ActRealmPoint")

--
Gitblit v1.8.0