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