From 50e41acd370d6545269cc59f7bed734ea9f7b398 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 30 十月 2018 12:03:12 +0800
Subject: [PATCH] 4380 【主干】【后端】装备传奇属性战力优化
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py | 10 ++++++++--
PySysDB/PySysDBPY.h | 2 ++
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py | 16 ++++++++++++++--
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/CalcNoLineEffect.py | 8 +++++++-
4 files changed, 31 insertions(+), 5 deletions(-)
diff --git a/PySysDB/PySysDBPY.h b/PySysDB/PySysDBPY.h
index 4d07715..7352d82 100644
--- a/PySysDB/PySysDBPY.h
+++ b/PySysDB/PySysDBPY.h
@@ -450,6 +450,8 @@
DWORD CftAtkSpeed; //攻速系数
DWORD CftLuckyHit; //会心一击系数
DWORD CftSpeedPer; //移动速度百分比系数
+ DWORD CftAtkPer; //攻击百分比系数
+ DWORD CftMaxHPPer; //生命百分比系数
};
//NPC掉落表
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
index 329abfb..c638168 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -377,6 +377,8 @@
("DWORD", "CftAtkSpeed", 0),
("DWORD", "CftLuckyHit", 0),
("DWORD", "CftSpeedPer", 0),
+ ("DWORD", "CftAtkPer", 0),
+ ("DWORD", "CftMaxHPPer", 0),
),
"NPCDropItem":(
@@ -1757,7 +1759,9 @@
self.CftFaintDefRate = 0
self.CftAtkSpeed = 0
self.CftLuckyHit = 0
- self.CftSpeedPer = 0
+ self.CftSpeedPer = 0
+ self.CftAtkPer = 0
+ self.CftMaxHPPer = 0
return
def GetLV(self): return self.LV # 等级
@@ -1780,7 +1784,9 @@
def GetCftFaintDefRate(self): return self.CftFaintDefRate # 控制抵抗系数
def GetCftAtkSpeed(self): return self.CftAtkSpeed # 攻速系数
def GetCftLuckyHit(self): return self.CftLuckyHit # 会心一击系数
- def GetCftSpeedPer(self): return self.CftSpeedPer # 移动速度百分比系数
+ def GetCftSpeedPer(self): return self.CftSpeedPer # 移动速度百分比系数
+ def GetCftAtkPer(self): return self.CftAtkPer # 攻击百分比系数
+ def GetCftMaxHPPer(self): return self.CftMaxHPPer # 生命百分比系数
# NPC掉落表
class IPY_NPCDropItem():
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
index 0afbe39..4204d7a 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -3356,7 +3356,8 @@
__AttrName = "%s" # 参数为ChConfig.Def_Calc_AllAttrType_MAX对应所有属性列表索引
__AttrNameNoline = "Noline_%s" # 参数为ChConfig.Def_Calc_AllAttrType_MAX对应所有属性列表索引
- __NolineAttrList = [ChConfig.TYPE_Calc_AttrSpeed] # 需要记录的非线性战斗属性
+ __NolineAttrList = [ChConfig.TYPE_Calc_AttrSpeed, ChConfig.TYPE_Calc_AttrATKMin, ChConfig.TYPE_Calc_AttrATKMax,
+ ChConfig.TYPE_Calc_AttrMaxHP] # 需要记录的非线性战斗属性
## 初始化
# @param self 类实例
@@ -3465,9 +3466,20 @@
AtkSpeedParameter = fpParam.GetCftAtkSpeed()
LuckyHitParameter = fpParam.GetCftLuckyHit()
+ fpEx = 0
+ #装备模块特殊处理
+ if self.mfpType == ShareDefine.Def_MFPType_Equip:
+ AtkPer = getattr(self, self.__AttrNameNoline % ChConfig.TYPE_Calc_AttrATKMax) * fpParam.GetCftAtkPer() # 攻击百分比系数
+ MaxHPPer = getattr(self, self.__AttrNameNoline % ChConfig.TYPE_Calc_AttrMaxHP) * fpParam.GetCftMaxHPPer() # 生命百分比系数
+ fpEx = eval(IpyGameDataPY.GetFuncCompileCfg("FightpowerFormula", 3))
+ GameWorld.DebugLog("装备模块攻击生命百分比传奇属性战力: fpEx=%s" % fpEx)
+ else:
+ AtkPer = 0
+ MaxHPPer = 0
+
#获取策划配置的表格
FightpowerFormula = IpyGameDataPY.GetFuncCfg("FightpowerFormula")
- totalFightPower = eval(FormulaControl.GetCompileFormula("FightpowerFormula", FightpowerFormula))
+ totalFightPower = eval(FormulaControl.GetCompileFormula("FightpowerFormula", FightpowerFormula)) + fpEx
#GameWorld.DebugLog("MfpType=%s,FightPower=%s, %s" % (self.mfpType, totalFightPower, self.GetMFPAttrStr()))
if totalFightPower > ShareDefine.Def_UpperLimit_DWord:
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/CalcNoLineEffect.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/CalcNoLineEffect.py
index 8cc0ec7..67fea1e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/CalcNoLineEffect.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/CalcNoLineEffect.py
@@ -16,11 +16,12 @@
# @change: "2013-11-13 21:00" Alee 移动速度独立处理
# @change: "2015-07-29 17:30" hxp 伤害减免改为线性
#---------------------------------------------------------------------
-"""Version = 2015-07-29 17:30"""
+#"""Version = 2015-07-29 17:30"""
#---------------------------------------------------------------------
import ChConfig
import EffGetSet
import GameWorld
+import ShareDefine
#---------------------------------------------------------------------
## 给玩家添加非线性Buff效果
@@ -69,6 +70,11 @@
#if not attrDict.has_key(key): # 如果该模块没有增加该属性,则跳过
if key not in attrDict: # 如果该模块没有增加该属性,则跳过
continue
+ #装备模块攻击、生命非线性属性提升的属性不计算战力,战力另外算
+ if mfpObj.mfpType == ShareDefine.Def_MFPType_Equip \
+ and key in [ChConfig.TYPE_Calc_AttrATKMin, ChConfig.TYPE_Calc_AttrATKMax, ChConfig.TYPE_Calc_AttrMaxHP]:
+ GameWorld.DebugLog("装备模块某些属性不计入战力计算: key=%s,value=%s" % (key, attrDict[key]))
+ continue
curMValue = attrDict[key]
curMAddValue = curValue * curMValue / ChConfig.Def_MaxRateValue # 相对增加值
mfpObj.AddCalcMFPAttr(key, curMAddValue) # 给对应模块累加上非线性增加的战斗属性值
--
Gitblit v1.8.0