From e6a51e6e426799c0913398b978821b3cbb653f48 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 13 十二月 2019 16:49:55 +0800
Subject: [PATCH] 8341 【恺英】【后端】强化进化系统优化(增加每阶不同强化等级上限验证)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py                    |   23 +++++++++++++++++++++++
 PySysDB/PySysDBPY.h                                                                                     |    9 +++++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipPlus.py |    8 ++++++++
 3 files changed, 40 insertions(+), 0 deletions(-)

diff --git a/PySysDB/PySysDBPY.h b/PySysDB/PySysDBPY.h
index accdfb9..d608cc5 100644
--- a/PySysDB/PySysDBPY.h
+++ b/PySysDB/PySysDBPY.h
@@ -135,6 +135,15 @@
 	list		MasterPlusAttrValueList;	//激活属性值列表
 };
 
+//装备强化等级上限
+
+struct tagItemPlusMax
+{
+	BYTE		_Type;	//强化类型
+	BYTE		_ClassLV;	//阶
+	WORD		PlusLVMax;	//最大强化等级
+};
+
 //装备全身星数属性
 
 struct tagRoleEquipStars
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipPlus.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipPlus.py
index d50ed8e..c57109d 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipPlus.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipPlus.py
@@ -85,6 +85,14 @@
         return
     
     curPartPlusLV = ChEquip.GetEquipPartPlusLV(curPlayer, packType, index)
+    classLV = ItemCommon.GetItemClassLV(curEquip)
+    plusMaxIpyData = IpyGameDataPY.GetIpyGameData("ItemPlusMax", findType, classLV)
+    if not plusMaxIpyData:
+        return
+    plusLVMax = plusMaxIpyData.GetPlusLVMax()
+    if curPartPlusLV >= plusLVMax:
+        #GameWorld.DebugLog("强化达到本阶最大等级,无法强化! classLV=%s,plusLVMax=%s,curPartPlusLV=%s" % (classLV, plusLVMax, curPartPlusLV))
+        return
     plusIpyData = IpyGameDataPY.GetIpyGameData("ItemPlus", findType, curPartPlusLV)
     if not plusIpyData:
         return
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
index 9ec7ba6..8d397e9 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -137,6 +137,12 @@
                         ("list", "MasterPlusAttrValueList", 0),
                         ),
 
+                "ItemPlusMax":(
+                        ("BYTE", "Type", 1),
+                        ("BYTE", "ClassLV", 1),
+                        ("WORD", "PlusLVMax", 0),
+                        ),
+
                 "RoleEquipStars":(
                         ("BYTE", "StarsNeed", 1),
                         ("list", "AttrType", 0),
@@ -1772,6 +1778,19 @@
     def GetMasterPlusLV(self): return self.MasterPlusLV # 大师强化等级
     def GetMasterPlusAttrIDList(self): return self.MasterPlusAttrIDList # 激活属性类型列表
     def GetMasterPlusAttrValueList(self): return self.MasterPlusAttrValueList # 激活属性值列表
+
+# 装备强化等级上限
+class IPY_ItemPlusMax():
+    
+    def __init__(self):
+        self.Type = 0
+        self.ClassLV = 0
+        self.PlusLVMax = 0
+        return
+        
+    def GetType(self): return self.Type # 强化类型
+    def GetClassLV(self): return self.ClassLV # 阶
+    def GetPlusLVMax(self): return self.PlusLVMax # 最大强化等级
 
 # 装备全身星数属性
 class IPY_RoleEquipStars():
@@ -4789,6 +4808,8 @@
         self.ipyItemPlusLen = len(self.ipyItemPlusCache)
         self.ipyItemPlusMasterCache = self.__LoadFileData("ItemPlusMaster", IPY_ItemPlusMaster)
         self.ipyItemPlusMasterLen = len(self.ipyItemPlusMasterCache)
+        self.ipyItemPlusMaxCache = self.__LoadFileData("ItemPlusMax", IPY_ItemPlusMax)
+        self.ipyItemPlusMaxLen = len(self.ipyItemPlusMaxCache)
         self.ipyRoleEquipStarsCache = self.__LoadFileData("RoleEquipStars", IPY_RoleEquipStars)
         self.ipyRoleEquipStarsLen = len(self.ipyRoleEquipStarsCache)
         self.ipyEquipLegendAttrCountCache = self.__LoadFileData("EquipLegendAttrCount", IPY_EquipLegendAttrCount)
@@ -5263,6 +5284,8 @@
     def GetItemPlusByIndex(self, index): return self.ipyItemPlusCache[index]
     def GetItemPlusMasterCount(self): return self.ipyItemPlusMasterLen
     def GetItemPlusMasterByIndex(self, index): return self.ipyItemPlusMasterCache[index]
+    def GetItemPlusMaxCount(self): return self.ipyItemPlusMaxLen
+    def GetItemPlusMaxByIndex(self, index): return self.ipyItemPlusMaxCache[index]
     def GetRoleEquipStarsCount(self): return self.ipyRoleEquipStarsLen
     def GetRoleEquipStarsByIndex(self, index): return self.ipyRoleEquipStarsCache[index]
     def GetEquipLegendAttrCountCount(self): return self.ipyEquipLegendAttrCountLen

--
Gitblit v1.8.0