From 6e928c09df9d294e2f90cd91189a3c9abb7b007f Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 31 十月 2025 17:58:33 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(词条技能1014 ~ 1019:增加技能初始CD支持,优化技能CD;优化技能属性、buff属性计算;修复纯buff怒技没有同步技能的bug;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py |  123 ++++++++++++++--------------------------
 1 files changed, 44 insertions(+), 79 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
index ee4a1ed..8a1d35c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -132,6 +132,7 @@
                         ("list", "EffectValues3", 0),
                         ("BYTE", "TriggerWay3", 0),
                         ("BYTE", "TriggerSrc3", 0),
+                        ("WORD", "CoolDownInit", 0),
                         ("WORD", "CoolDownTime", 0),
                         ("list", "BuffStateLimit", 0),
                         ("BYTE", "CurBuffState", 0),
@@ -141,7 +142,6 @@
                         ("DWORD", "BuffRepeat", 0),
                         ("BYTE", "DispersedLimit", 0),
                         ("DWORD", "FightPower", 0),
-                        ("char", "SkillMotionName", 0),
                         ),
 
                 "Hero":(
@@ -227,6 +227,7 @@
                         ("DWORD", "BookStarAddPer", 0),
                         ("DWORD", "BookBreakLVAddPer", 0),
                         ("list", "DismissReturnItems", 0),
+                        ("list", "RecommendAwardMoney", 0),
                         ),
 
                 "HeroQualityBreak":(
@@ -247,6 +248,11 @@
                         ("DWORD", "Quality", 1),
                         ("DWORD", "HeroLV", 1),
                         ("list", "UPCostItem", 0),
+                        ),
+
+                "LineupRecommend":(
+                        ("DWORD", "RecommendID", 1),
+                        ("list", "HeroIDList", 0),
                         ),
 
                 "PlayerAttr":(
@@ -327,8 +333,8 @@
                         ("DWORD", "PosNPCID4", 0),
                         ("DWORD", "PosNPCID5", 0),
                         ("DWORD", "PosNPCID6", 0),
-                        ("DWORD", "PosNPCID7", 0),
                         ("DWORD", "BossID", 0),
+                        ("BYTE", "BossPosView", 0),
                         ("list", "SkillIDExList", 0),
                         ("BYTE", "SkillExCnt", 0),
                         ),
@@ -1117,10 +1123,6 @@
                         ("WORD", "OldPrice", 0),
                         ),
 
-                "AuctionItem":(
-                        ("DWORD", "AuctionItemID", 1),
-                        ),
-
                 "VipPrivilege":(
                         ("DWORD", "VIPPriID", 1),
                         ("DWORD", "VIP0", 0),
@@ -1256,25 +1258,12 @@
                         ("BYTE", "CanBreakCollect", 0),
                         ),
 
-                "TreasureNPC":(
-                        ("DWORD", "NPCID", 1),
-                        ("dict", "AttackCountDropWeightInfo", 0),
-                        ("list", "AttackDropWeightList", 0),
-                        ("list", "AttackDropWeightListEx", 0),
-                        ("BYTE", "DropCountEx", 0),
-                        ("BYTE", "AlchemyDiffLV", 0),
-                        ("char", "NotDropNotify", 0),
-                        ),
-
                 "Chests":(
                         ("DWORD", "ChestsItemID", 1),
                         ("DWORD", "CostItemID", 0),
                         ("BYTE", "CostItemCount", 0),
-                        ("WORD", "CostGold", 0),
-                        ("BYTE", "ShowType", 0),
-                        ("BYTE", "IsBind", 0),
-                        ("BYTE", "AucionItemCanSell", 0),
-                        ("list", "AucionItemDiffSellIDList", 0),
+                        ("BYTE", "CostMoneyType", 0),
+                        ("WORD", "CostMoneyValue", 0),
                         ),
 
                 "ChestsAward":(
@@ -2543,16 +2532,16 @@
     def GetEffectValues3(self): return self.attrTuple[27] # 效果值列表3 list
     def GetTriggerWay3(self): return self.attrTuple[28] # 触发方式 BYTE
     def GetTriggerSrc3(self): return self.attrTuple[29] # 有效来源 BYTE
-    def GetCoolDownTime(self): return self.attrTuple[30] # 技能冷却时间 WORD
-    def GetBuffStateLimit(self): return self.attrTuple[31] # Buff状态限制组 list
-    def GetCurBuffState(self): return self.attrTuple[32] # Buff状态值 BYTE
-    def GetLastTime(self): return self.attrTuple[33] # 持续时间 WORD
-    def GetLayerCnt(self): return self.attrTuple[34] # Buff层数 BYTE
-    def GetLayerMax(self): return self.attrTuple[35] # 最大层数 BYTE
-    def GetBuffRepeat(self): return self.attrTuple[36] # Buff叠加规则 DWORD
-    def GetDispersedLimit(self): return self.attrTuple[37] # 驱散限制 BYTE
-    def GetFightPower(self): return self.attrTuple[38] # 技能战斗力 DWORD
-    def GetSkillMotionName(self): return self.attrTuple[39] # 技能动作名 char
+    def GetCoolDownInit(self): return self.attrTuple[30] # 初始冷却时间 WORD
+    def GetCoolDownTime(self): return self.attrTuple[31] # 技能冷却时间 WORD
+    def GetBuffStateLimit(self): return self.attrTuple[32] # Buff状态限制组 list
+    def GetCurBuffState(self): return self.attrTuple[33] # Buff状态值 BYTE
+    def GetLastTime(self): return self.attrTuple[34] # 持续时间 WORD
+    def GetLayerCnt(self): return self.attrTuple[35] # Buff层数 BYTE
+    def GetLayerMax(self): return self.attrTuple[36] # 最大层数 BYTE
+    def GetBuffRepeat(self): return self.attrTuple[37] # Buff叠加规则 DWORD
+    def GetDispersedLimit(self): return self.attrTuple[38] # 驱散限制 BYTE
+    def GetFightPower(self): return self.attrTuple[39] # 技能战斗力 DWORD
 
 # 武将表
 class IPY_Hero():
@@ -2677,7 +2666,8 @@
     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 GetDismissReturnItems(self): return self.attrTuple[11] #  遣散每星返还道具 [[物品ID,个数], ...] list
+    def GetRecommendAwardMoney(self): return self.attrTuple[12] #  阵容推荐激活奖励货币 类型|值 list
 
 # 武将品质突破表
 class IPY_HeroQualityBreak():
@@ -2713,6 +2703,16 @@
     def GetQuality(self): return self.attrTuple[0] # 品质 DWORD
     def GetHeroLV(self): return self.attrTuple[1] # 武将等级 DWORD
     def GetUPCostItem(self): return self.attrTuple[2] #  升级到下级消耗道具 list
+
+# 推荐阵容表
+class IPY_LineupRecommend():
+    
+    def __init__(self):
+        self.attrTuple = None
+        return
+        
+    def GetRecommendID(self): return self.attrTuple[0] # 推荐ID DWORD
+    def GetHeroIDList(self): return self.attrTuple[1] #  推荐武将ID列表 list
 
 # 属性条目表
 class IPY_PlayerAttr():
@@ -2818,8 +2818,8 @@
     def GetPosNPCID4(self): return self.attrTuple[4] # 4号位NPCID DWORD
     def GetPosNPCID5(self): return self.attrTuple[5] # 5号位NPCID DWORD
     def GetPosNPCID6(self): return self.attrTuple[6] # 6号位NPCID DWORD
-    def GetPosNPCID7(self): return self.attrTuple[7] # 7号位NPCID DWORD
-    def GetBossID(self): return self.attrTuple[8] #  本阵容的BossID,没有boss时为0 DWORD
+    def GetBossID(self): return self.attrTuple[7] #  本阵容的BossID,没有boss时为0 DWORD
+    def GetBossPosView(self): return self.attrTuple[8] # Boss通知站位 BYTE
     def GetSkillIDExList(self): return self.attrTuple[9] #  boss附加技能列表 list
     def GetSkillExCnt(self): return self.attrTuple[10] # 随机附加技能数,0为所有 BYTE
 
@@ -3987,15 +3987,6 @@
     def GetPrice(self): return self.attrTuple[2] # 礼包现价 WORD
     def GetOldPrice(self): return self.attrTuple[3] # 礼包原价 WORD
 
-# 拍卖物品表
-class IPY_AuctionItem():
-    
-    def __init__(self):
-        self.attrTuple = None
-        return
-        
-    def GetAuctionItemID(self): return self.attrTuple[0] # DWORD
-
 # VIP特权表
 class IPY_VipPrivilege():
     
@@ -4191,21 +4182,6 @@
     def GetNotifyCollectResult(self): return self.attrTuple[10] # 是否通知采集结果 BYTE
     def GetCanBreakCollect(self): return self.attrTuple[11] # 被攻击是否打断采集 BYTE
 
-# 宝箱怪表
-class IPY_TreasureNPC():
-    
-    def __init__(self):
-        self.attrTuple = None
-        return
-        
-    def GetNPCID(self): return self.attrTuple[0] # 宝箱怪NPCID DWORD
-    def GetAttackCountDropWeightInfo(self): return self.attrTuple[1] # 攻击次数对应掉落权重饼图 {次数:[[权重, [物品ID,个数,是否拍品]], ...], ...} dict
-    def GetAttackDropWeightList(self): return self.attrTuple[2] # 常规攻击权重饼图 [[权重, [物品ID,个数,是否拍品]], ...] list
-    def GetAttackDropWeightListEx(self): return self.attrTuple[3] # 额外掉落权重饼图库,每次攻击都会掉落  [[权重, [物品ID,个数,是否拍品]], ...] list
-    def GetDropCountEx(self): return self.attrTuple[4] # 额外库执行次数 BYTE
-    def GetAlchemyDiffLV(self): return self.attrTuple[5] # 过滤炼丹等级差,0-不过滤,>0过滤大于自身炼丹等级X级的物品 BYTE
-    def GetNotDropNotify(self): return self.attrTuple[6] # 没有掉落时提示信息 char
-
 # 宝箱表开启
 class IPY_Chests():
     
@@ -4216,11 +4192,8 @@
     def GetChestsItemID(self): return self.attrTuple[0] # 宝箱物品ID DWORD
     def GetCostItemID(self): return self.attrTuple[1] # 消耗物品ID DWORD
     def GetCostItemCount(self): return self.attrTuple[2] # 消耗物品个数 BYTE
-    def GetCostGold(self): return self.attrTuple[3] # 消耗仙玉 WORD
-    def GetShowType(self): return self.attrTuple[4] # 前端表现类型0-无表现, >0有表现需同步结果,具体类型前端自定义 BYTE
-    def GetIsBind(self): return self.attrTuple[5] # 开出物品是否绑定 BYTE
-    def GetAucionItemCanSell(self): return self.attrTuple[6] # 开出拍品可否上架集市 BYTE
-    def GetAucionItemDiffSellIDList(self): return self.attrTuple[7] # 可否上架差异拍品ID列表,即可上架代表不可上架的拍品ID列表,不可上架代表可上架的拍品ID列表 list
+    def GetCostMoneyType(self): return self.attrTuple[3] # 开启消耗货币类型 BYTE
+    def GetCostMoneyValue(self): return self.attrTuple[4] # 消耗货币 WORD
 
 # 宝箱表产出表
 class IPY_ChestsAward():
@@ -6075,6 +6048,7 @@
         self.__LoadFileData("HeroQualityBreak", onlyCheck)
         self.__LoadFileData("HeroQualityAwake", onlyCheck)
         self.__LoadFileData("HeroQualityLV", onlyCheck)
+        self.__LoadFileData("LineupRecommend", onlyCheck)
         self.__LoadFileData("PlayerAttr", onlyCheck)
         self.__LoadFileData("FightPowerRatio", onlyCheck)
         self.__LoadFileData("MainChapter", onlyCheck)
@@ -6156,7 +6130,6 @@
         self.__LoadFileData("TreasureUp", onlyCheck)
         self.__LoadFileData("SignIn", onlyCheck)
         self.__LoadFileData("VIPAward", onlyCheck)
-        self.__LoadFileData("AuctionItem", onlyCheck)
         self.__LoadFileData("VipPrivilege", onlyCheck)
         self.__LoadFileData("Store", onlyCheck)
         self.__LoadFileData("ActSpringSale", onlyCheck)
@@ -6169,7 +6142,6 @@
         self.__LoadFileData("RuneCompound", onlyCheck)
         self.__LoadFileData("ResourcesBack", onlyCheck)
         self.__LoadFileData("CollectNPC", onlyCheck)
-        self.__LoadFileData("TreasureNPC", onlyCheck)
         self.__LoadFileData("Chests", onlyCheck)
         self.__LoadFileData("ChestsAward", onlyCheck)
         self.__LoadFileData("VIPKillNPC", onlyCheck)
@@ -6636,6 +6608,13 @@
     def GetHeroQualityLVByIndex(self, index):
         self.CheckLoadData("HeroQualityLV")
         return self.ipyHeroQualityLVCache[index]
+
+    def GetLineupRecommendCount(self):
+        self.CheckLoadData("LineupRecommend")
+        return self.ipyLineupRecommendLen
+    def GetLineupRecommendByIndex(self, index):
+        self.CheckLoadData("LineupRecommend")
+        return self.ipyLineupRecommendCache[index]
 
     def GetPlayerAttrCount(self):
         self.CheckLoadData("PlayerAttr")
@@ -7204,13 +7183,6 @@
         self.CheckLoadData("VIPAward")
         return self.ipyVIPAwardCache[index]
 
-    def GetAuctionItemCount(self):
-        self.CheckLoadData("AuctionItem")
-        return self.ipyAuctionItemLen
-    def GetAuctionItemByIndex(self, index):
-        self.CheckLoadData("AuctionItem")
-        return self.ipyAuctionItemCache[index]
-
     def GetVipPrivilegeCount(self):
         self.CheckLoadData("VipPrivilege")
         return self.ipyVipPrivilegeLen
@@ -7294,13 +7266,6 @@
     def GetCollectNPCByIndex(self, index):
         self.CheckLoadData("CollectNPC")
         return self.ipyCollectNPCCache[index]
-
-    def GetTreasureNPCCount(self):
-        self.CheckLoadData("TreasureNPC")
-        return self.ipyTreasureNPCLen
-    def GetTreasureNPCByIndex(self, index):
-        self.CheckLoadData("TreasureNPC")
-        return self.ipyTreasureNPCCache[index]
 
     def GetChestsCount(self):
         self.CheckLoadData("Chests")

--
Gitblit v1.8.0