From ba951da9a5916d6250ea2fdf0a8f9028740ade34 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 12 三月 2024 19:59:10 +0800
Subject: [PATCH] 10033 【后端】仙树升级系统及砍树产出规则(增加装备评分参数支持: 攻速、击晕、连击、抗连击、反击、抗反击、吸血、抗吸血)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py | 21 ++++++++++++++++++---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py | 28 ++++++++++++++++++++++++++--
PySysDB/PySysDBPY.h | 8 ++++++++
3 files changed, 52 insertions(+), 5 deletions(-)
diff --git a/PySysDB/PySysDBPY.h b/PySysDB/PySysDBPY.h
index f5fe338..13398de 100644
--- a/PySysDB/PySysDBPY.h
+++ b/PySysDB/PySysDBPY.h
@@ -1032,6 +1032,14 @@
DWORD ProDefPerC; // 防护百分比系数
DWORD FinalHurtPerC; // 最终伤害加成系数
DWORD FinalHurtReducePerC; // 最终伤害减免系数
+ DWORD AtkSpeedC; // 攻速系数
+ DWORD FaintRateC; // 击晕率系数
+ DWORD ComboRateC; // 连击率系数
+ DWORD ComboDefRateC; // 抗连击系数
+ DWORD AtkBackRateC; // 反击率系数
+ DWORD AtkBackDefRateC; // 抗反击系数
+ DWORD SuckHPPerC; // 吸血率系数
+ DWORD SuckHPDefPerC; // 抗吸血系数
};
//成就表
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
index 8ad89e4..f716fa7 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -857,6 +857,14 @@
("DWORD", "ProDefPerC", 0),
("DWORD", "FinalHurtPerC", 0),
("DWORD", "FinalHurtReducePerC", 0),
+ ("DWORD", "AtkSpeedC", 0),
+ ("DWORD", "FaintRateC", 0),
+ ("DWORD", "ComboRateC", 0),
+ ("DWORD", "ComboDefRateC", 0),
+ ("DWORD", "AtkBackRateC", 0),
+ ("DWORD", "AtkBackDefRateC", 0),
+ ("DWORD", "SuckHPPerC", 0),
+ ("DWORD", "SuckHPDefPerC", 0),
),
"Success":(
@@ -3947,7 +3955,15 @@
self.IgnoreDefRateReduceC = 0
self.ProDefPerC = 0
self.FinalHurtPerC = 0
- self.FinalHurtReducePerC = 0
+ self.FinalHurtReducePerC = 0
+ self.AtkSpeedC = 0
+ self.FaintRateC = 0
+ self.ComboRateC = 0
+ self.ComboDefRateC = 0
+ self.AtkBackRateC = 0
+ self.AtkBackDefRateC = 0
+ self.SuckHPPerC = 0
+ self.SuckHPDefPerC = 0
return
def GetClassLV(self): return self.ClassLV # 装备阶级
@@ -3995,7 +4011,15 @@
def GetIgnoreDefRateReduceC(self): return self.IgnoreDefRateReduceC # 无视防御减免系数
def GetProDefPerC(self): return self.ProDefPerC # 防护百分比系数
def GetFinalHurtPerC(self): return self.FinalHurtPerC # 最终伤害加成系数
- def GetFinalHurtReducePerC(self): return self.FinalHurtReducePerC # 最终伤害减免系数
+ def GetFinalHurtReducePerC(self): return self.FinalHurtReducePerC # 最终伤害减免系数
+ def GetAtkSpeedC(self): return self.AtkSpeedC # 攻速系数
+ def GetFaintRateC(self): return self.FaintRateC # 击晕率系数
+ def GetComboRateC(self): return self.ComboRateC # 连击率系数
+ def GetComboDefRateC(self): return self.ComboDefRateC # 抗连击系数
+ def GetAtkBackRateC(self): return self.AtkBackRateC # 反击率系数
+ def GetAtkBackDefRateC(self): return self.AtkBackDefRateC # 抗反击系数
+ def GetSuckHPPerC(self): return self.SuckHPPerC # 吸血率系数
+ def GetSuckHPDefPerC(self): return self.SuckHPDefPerC # 抗吸血系数
# 成就表
class IPY_Success():
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py
index 5c5d224..4205311 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py
@@ -669,6 +669,15 @@
itemQuality = curItem.GetItemQuality()
isSuit = 1 if curItem.GetSuiteID() > 0 else 0
gsParamIpyData = IpyGameDataPY.GetIpyGameDataNotLog("EquipGSParam", classLV, color, isSuit, itemQuality)
+
+ baseAttrIDCnt = curItem.GetUserAttrCount(ShareDefine.Def_IudetBaseAttrID)
+ baseAttrValueCnt = curItem.GetUserAttrCount(ShareDefine.Def_IudetBaseAttrValue)
+ if baseAttrIDCnt == baseAttrValueCnt:
+ for i in xrange(baseAttrIDCnt):
+ baseAttrID = curItem.GetUserAttrByIndex(ShareDefine.Def_IudetBaseAttrID, i)
+ baseAttrValue = curItem.GetUserAttrByIndex(ShareDefine.Def_IudetBaseAttrValue, i)
+ attrDict[baseAttrID] = attrDict.get(baseAttrID, 0) + baseAttrValue
+
# 传奇属性
legAttrIDList, legAttrValueList = ItemControler.GetEquipLegendAttrAll(curItem)
for i, legendAttrID in enumerate(legAttrIDList):
@@ -751,13 +760,19 @@
FinalHurtPerC = attrDict.get(ShareDefine.Def_Effect_FinalHurtPer, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetFinalHurtPerC())
FinalHurtReducePerC = attrDict.get(ShareDefine.Def_Effect_FinalHurtReducePer, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetFinalHurtReducePerC())
- # 攻速不默认乘,仅作为参数提供策划使用
- AtkSpeed = 0#attrDict.get(ShareDefine.Def_Effect_AtkSpeed, 0)
- AtkSpeedC = 1#1 if not gsParamIpyData else gsParamIpyData.GetAtkSpeedC()
+ AtkSpeed = attrDict.get(ShareDefine.Def_Effect_AtkSpeed, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetAtkSpeedC())
OnlyFinalHurt = attrDict.get(ShareDefine.Def_Effect_OnlyFinalHurt, 0)
PVPAtkBackHP = attrDict.get(ShareDefine.Def_Effect_PVPAtkBackHP, 0)
+ FaintRate = attrDict.get(ShareDefine.Def_Effect_FaintRate, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetFaintRateC())
+ ComboRate = attrDict.get(ShareDefine.Def_Effect_ComboRate, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetComboRateC())
+ ComboDefRate = attrDict.get(ShareDefine.Def_Effect_ComboDefRate, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetComboDefRateC())
+ AtkBackRate = attrDict.get(ShareDefine.Def_Effect_AtkBackRate, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetAtkBackRateC())
+ AtkBackDefRate = attrDict.get(ShareDefine.Def_Effect_AtkBackDefRate, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetAtkBackDefRateC())
+ SuckHPPer = attrDict.get(ShareDefine.Def_Effect_SuckHPPer, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSuckHPPerC())
+ SuckHPDefPer = attrDict.get(ShareDefine.Def_Effect_SuckHPDefPer, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSuckHPDefPerC())
+
if GetIsDogzEquip(curItem):
# 神兽装备用不同公式
value = eval(FormulaControl.GetCompileFormula("EquipGSFormula3", IpyGameDataPY.GetFuncCfg("EquipGSFormula", 3)))
--
Gitblit v1.8.0