From 62e250b4736e682b3d466ef29667ad1ab9bd759e Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 22 十月 2019 18:06:33 +0800
Subject: [PATCH] 8311 【恺英】【后端】新增装备评分参数(攻生命百分比,技能加减,法宝技能加减,技能CD减免)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/EffGetSet.py         |    2 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py |   38 +++++----
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py             |   25 ++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py           |   61 ++++++++++++++
 PySysDB/PySysDBPY.h                                                                            |   19 ++++
 ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py                                  |   25 ++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py    |   12 --
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py                |    9 +-
 8 files changed, 156 insertions(+), 35 deletions(-)

diff --git a/PySysDB/PySysDBPY.h b/PySysDB/PySysDBPY.h
index f0b62a9..e2aeca1 100644
--- a/PySysDB/PySysDBPY.h
+++ b/PySysDB/PySysDBPY.h
@@ -676,6 +676,25 @@
 	DWORD		HitC;	// 命中系数
 	DWORD		MissC;	// 闪避系数
 	DWORD		PetDamPerC;	// 灵宠增伤百分比系数
+	DWORD		MaxHPPerC;	// 生命加成系数
+	DWORD		AtkPerC;	// 攻击加成系数
+	DWORD		SkillAtkRateC;	// 技能加成系数
+	DWORD		SkillAtkRateReduceC;	// 技能减免系数
+	DWORD		SkillAddPer1C;	// 技能伤害增强1系数
+	DWORD		SkillAddPer2C;	// 技能伤害增强2系数
+	DWORD		SkillAddPer3C;	// 技能伤害增强3系数
+	DWORD		SkillAddPer4C;	// 技能伤害增强4系数
+	DWORD		SkillAddPer5C;	// 技能伤害增强5系数
+	DWORD		SkillAddPer6C;	// 技能伤害增强6系数
+	DWORD		SkillAddPer7C;	// 技能伤害增强7系数
+	DWORD		SkillReducePer1C;	// 受到技能伤害减少1系数
+	DWORD		SkillReducePer2C;	// 受到技能伤害减少2系数
+	DWORD		SkillReducePer3C;	// 受到技能伤害减少3系数
+	DWORD		SkillReducePer4C;	// 受到技能伤害减少4系数
+	DWORD		SkillReducePer5C;	// 受到技能伤害减少5系数
+	DWORD		SkillReducePer6C;	// 受到技能伤害减少6系数
+	DWORD		SkillReducePer7C;	// 受到技能伤害减少7系数
+	DWORD		ReduceSkillCDPerC;	// 减少所有技能CD系数
 };
 
 //成就表
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
index 972cf96..2171143 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
@@ -509,6 +509,29 @@
 Def_Effect_JobBAtkReducePer = 94 # 法师攻击伤害减免
 Def_Effect_JobCAtkReducePer = 95 # 弓箭攻击伤害减免
 
+Def_Effect_SkillAddPer1 = 102 # 技能伤害增强1
+Def_Effect_SkillAddPer2 = 103 # 技能伤害增强2
+Def_Effect_SkillAddPer3 = 104 # 技能伤害增强3
+Def_Effect_SkillAddPer4 = 105 # 技能伤害增强4
+Def_Effect_SkillAddPer5 = 106 # 技能伤害增强5
+Def_Effect_SkillAddPer6 = 107 # 技能伤害增强6
+Def_Effect_SkillAddPer7 = 108 # 技能伤害增强7
+
+Def_Effect_SkillReducePer1 = 109 # 受到技能伤害减少1
+Def_Effect_SkillReducePer2 = 110 # 受到技能伤害减少2
+Def_Effect_SkillReducePer3 = 111 # 受到技能伤害减少3
+Def_Effect_SkillReducePer4 = 112 # 受到技能伤害减少4
+Def_Effect_SkillReducePer5 = 113 # 受到技能伤害减少5
+Def_Effect_SkillReducePer6 = 114 # 受到技能伤害减少6
+Def_Effect_SkillReducePer7 = 115 # 受到技能伤害减少7
+
+## 技能伤害百分比增加的 属性ID 列表
+SkillAddPerAttrIDList = [Def_Effect_SkillAddPer1, Def_Effect_SkillAddPer2, Def_Effect_SkillAddPer3, Def_Effect_SkillAddPer4, 
+                         Def_Effect_SkillAddPer5, Def_Effect_SkillAddPer6, Def_Effect_SkillAddPer7]
+## 技能伤害百分比减少的 属性ID 列表
+SkillReducePerAttrIDList = [Def_Effect_SkillReducePer1, Def_Effect_SkillReducePer2, Def_Effect_SkillReducePer3, Def_Effect_SkillReducePer4, 
+                            Def_Effect_SkillReducePer5, Def_Effect_SkillReducePer6, Def_Effect_SkillReducePer7]
+    
 Def_Effect_Luck = 120 # 气运
 Def_Effect_LuckPer = 133 # 气运百分率
 
@@ -529,6 +552,8 @@
 Def_Effect_BurnTimePer = 147    # 延长灼烧时间百分比
 Def_Effect_SubSpeedPer = 148    # 减移动速度百分比
 
+Def_Effect_ReduceSkillCDPer = 149   # 减少技能CD, a值为万分率
+
 #增加%d物理伤害值,其中a值为伤害值
 Def_Effect_AddAtk = 1005
 #增加%d魔法伤害值,其中a值为伤害值
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index 937bd42..86c3b3f 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -159,7 +159,7 @@
 TYPE_Calc_ReduceBackHPPer,              # 暂无用
 TYPE_Calc_XPRestorePer,                 # 自动恢复XP值比率
 
-TYPE_Calc_ReduceSkillCD,                # 减技能CD
+TYPE_Calc_ReduceSkillCDPer,             # 减技能CD比例
 TYPE_Calc_SkillAtkRate,                 # 技能攻击比例加成
 TYPE_Calc_SkillAtkRateReduce,           # 技能攻击比例减少 75
 TYPE_Calc_DamagePVP,                    # 伤害输出固定值
@@ -3189,7 +3189,6 @@
 Def_PlayerKey_LastHurtValue = "LastHurtValue" # 最后一次伤害值
 Def_PlayerKey_LastHurtNPCObjID = "LastHurtNPCObjID" # 最后攻击的NPCObjID
 Def_PlayerKey_LastAttackerObjID = "LastAttackerObjID" # 被攻击者记录的最近攻击玩家ID
-Def_PlayerKey_ReduceSkillCDPer = "ReduceSkillCDPer" # 减技能CD万分率
 Def_PlayerKey_CommMapExpRate = "CommMapExpRate" # 常规地图经验倍率加成
 Def_PlayerKey_FinalHurtPer = "FinalHurtPer" # 最终伤害百分比
 Def_PlayerKey_FinalHurtReducePer = "FHReducePer" # 最终伤害减免百分比
@@ -4022,7 +4021,7 @@
 AttrName_LuckyHit = "LuckyHit"    # 会心一击伤害固定值
 AttrName_IgnoreDefRate = "IgnoreDefRate"    # 无视防御几率
 AttrName_AtkSpeed = "AtkSpeed"    # 攻击速度
-AttrName_ReduceSkillCD = "ReduceSkillCD"    # 减技能CD值
+AttrName_ReduceSkillCDPer = "ReduceSkillCDPer"    # 减技能CD比例
 AttrName_BleedDamage = "BleedDamage"    # 流血伤害增加
 AttrName_KillBackHP = "KillBackHP"    # 击杀回血
 AttrName_KillBackMP = "KillBackMP"    # 击杀回蓝
@@ -4103,7 +4102,7 @@
     ShareDefine.Def_Effect_LuckyHitRate:[[TYPE_Calc_LuckyHitRate], False, TYPE_Linear],
     ShareDefine.Def_Effect_LuckyHitRateReduce:[[TYPE_Calc_LuckyHitRateReduce], False, TYPE_Linear],
     ShareDefine.Def_Effect_Luck:[[TYPE_Calc_Luck], False, TYPE_Linear],
-    ShareDefine.Def_Effect_ReduceSkillCD:[[TYPE_Calc_ReduceSkillCD], False, TYPE_Linear],
+    ShareDefine.Def_Effect_ReduceSkillCDPer:[[TYPE_Calc_ReduceSkillCDPer], False, TYPE_Linear],
     AttrName_MinAtk:[[TYPE_Calc_AttrATKMin], False, TYPE_Linear],
     AttrName_MaxAtk:[[TYPE_Calc_AttrATKMax], False, TYPE_Linear],
     #AttrName_MinMAtk:[[TYPE_Calc_AttrMATKMin], False, TYPE_Linear],
@@ -4143,7 +4142,7 @@
     AttrName_IgnoreDefRateReduce:[[TYPE_Calc_IgnoreDefRateReduce], False, TYPE_Linear],
     AttrName_IgnoreDefReducePer:[[TYPE_Calc_IgnoreDefReducePer], False, TYPE_Linear],
     AttrName_AtkSpeed:[[TYPE_Calc_AttrAtkSpeed], False, TYPE_Linear],
-    AttrName_ReduceSkillCD:[[TYPE_Calc_ReduceSkillCD], False, TYPE_Linear],
+    AttrName_ReduceSkillCDPer:[[TYPE_Calc_ReduceSkillCDPer], False, TYPE_Linear],
     AttrName_KillBackHP:[[TYPE_Calc_KillBackHP], False, TYPE_Linear],
     AttrName_KillBackMP:[[TYPE_Calc_KillBackMP], False, TYPE_Linear],
     AttrName_DamBackPer:[[TYPE_Calc_DamBackPer], False, TYPE_Linear],
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
index 57ec83f..07ff968 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -565,6 +565,25 @@
                         ("DWORD", "HitC", 0),
                         ("DWORD", "MissC", 0),
                         ("DWORD", "PetDamPerC", 0),
+                        ("DWORD", "MaxHPPerC", 0),
+                        ("DWORD", "AtkPerC", 0),
+                        ("DWORD", "SkillAtkRateC", 0),
+                        ("DWORD", "SkillAtkRateReduceC", 0),
+                        ("DWORD", "SkillAddPer1C", 0),
+                        ("DWORD", "SkillAddPer2C", 0),
+                        ("DWORD", "SkillAddPer3C", 0),
+                        ("DWORD", "SkillAddPer4C", 0),
+                        ("DWORD", "SkillAddPer5C", 0),
+                        ("DWORD", "SkillAddPer6C", 0),
+                        ("DWORD", "SkillAddPer7C", 0),
+                        ("DWORD", "SkillReducePer1C", 0),
+                        ("DWORD", "SkillReducePer2C", 0),
+                        ("DWORD", "SkillReducePer3C", 0),
+                        ("DWORD", "SkillReducePer4C", 0),
+                        ("DWORD", "SkillReducePer5C", 0),
+                        ("DWORD", "SkillReducePer6C", 0),
+                        ("DWORD", "SkillReducePer7C", 0),
+                        ("DWORD", "ReduceSkillCDPerC", 0),
                         ),
 
                 "Success":(
@@ -2612,7 +2631,26 @@
         self.SuperHitRateReduceC = 0
         self.HitC = 0
         self.MissC = 0
-        self.PetDamPerC = 0
+        self.PetDamPerC = 0
+        self.MaxHPPerC = 0
+        self.AtkPerC = 0
+        self.SkillAtkRateC = 0
+        self.SkillAtkRateReduceC = 0
+        self.SkillAddPer1C = 0
+        self.SkillAddPer2C = 0
+        self.SkillAddPer3C = 0
+        self.SkillAddPer4C = 0
+        self.SkillAddPer5C = 0
+        self.SkillAddPer6C = 0
+        self.SkillAddPer7C = 0
+        self.SkillReducePer1C = 0
+        self.SkillReducePer2C = 0
+        self.SkillReducePer3C = 0
+        self.SkillReducePer4C = 0
+        self.SkillReducePer5C = 0
+        self.SkillReducePer6C = 0
+        self.SkillReducePer7C = 0
+        self.ReduceSkillCDPerC = 0
         return
         
     def GetClassLV(self): return self.ClassLV #  装备阶级
@@ -2633,7 +2671,26 @@
     def GetSuperHitRateReduceC(self): return self.SuperHitRateReduceC #  暴击抗性系数
     def GetHitC(self): return self.HitC #  命中系数
     def GetMissC(self): return self.MissC #  闪避系数
-    def GetPetDamPerC(self): return self.PetDamPerC #  灵宠增伤百分比系数
+    def GetPetDamPerC(self): return self.PetDamPerC #  灵宠增伤百分比系数
+    def GetMaxHPPerC(self): return self.MaxHPPerC #  生命加成系数
+    def GetAtkPerC(self): return self.AtkPerC #  攻击加成系数
+    def GetSkillAtkRateC(self): return self.SkillAtkRateC #  技能加成系数
+    def GetSkillAtkRateReduceC(self): return self.SkillAtkRateReduceC #  技能减免系数
+    def GetSkillAddPer1C(self): return self.SkillAddPer1C #  技能伤害增强1系数
+    def GetSkillAddPer2C(self): return self.SkillAddPer2C #  技能伤害增强2系数
+    def GetSkillAddPer3C(self): return self.SkillAddPer3C #  技能伤害增强3系数
+    def GetSkillAddPer4C(self): return self.SkillAddPer4C #  技能伤害增强4系数
+    def GetSkillAddPer5C(self): return self.SkillAddPer5C #  技能伤害增强5系数
+    def GetSkillAddPer6C(self): return self.SkillAddPer6C #  技能伤害增强6系数
+    def GetSkillAddPer7C(self): return self.SkillAddPer7C #  技能伤害增强7系数
+    def GetSkillReducePer1C(self): return self.SkillReducePer1C #  受到技能伤害减少1系数
+    def GetSkillReducePer2C(self): return self.SkillReducePer2C #  受到技能伤害减少2系数
+    def GetSkillReducePer3C(self): return self.SkillReducePer3C #  受到技能伤害减少3系数
+    def GetSkillReducePer4C(self): return self.SkillReducePer4C #  受到技能伤害减少4系数
+    def GetSkillReducePer5C(self): return self.SkillReducePer5C #  受到技能伤害减少5系数
+    def GetSkillReducePer6C(self): return self.SkillReducePer6C #  受到技能伤害减少6系数
+    def GetSkillReducePer7C(self): return self.SkillReducePer7C #  受到技能伤害减少7系数
+    def GetReduceSkillCDPerC(self): return self.ReduceSkillCDPerC #  减少所有技能CD系数
 
 # 成就表
 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 2644140..d4836b4 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
@@ -441,13 +441,13 @@
     
     BaseEquipMaxHPAddPer = attrDict.get(ShareDefine.Def_Effect_BaseEquipMaxHPAddPer, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetBaseEquipMaxHPAddPerC())
     BaseEquipAtkAddPer = attrDict.get(ShareDefine.Def_Effect_BaseEquipAtkAddPer, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetBaseEquipAtkAddPerC())
-    AtkPer = 0#attrDict.get(ShareDefine.Def_Effect_AddAtkByPer, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetAtkPerC())
+    AtkPer = attrDict.get(ShareDefine.Def_Effect_AddAtkByPer, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetAtkPerC())
     DamagePer = 0#attrDict.get(ShareDefine.Def_Effect_DamagePer, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetDamagePerC())
     SuperHitRate = 0#attrDict.get(ShareDefine.Def_Effect_SuperHitRate, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSuperHitRateC())
     SuperHit = attrDict.get(ShareDefine.Def_Effect_SuperHit, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSuperHitC())
     SuperHitPer = attrDict.get(ShareDefine.Def_Effect_SuperHitPer, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSuperHitPerC())
     DamReducePer = 0#attrDict.get(ShareDefine.Def_Effect_DamReducePer, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetDamReducePerC())
-    MaxHPPer = 0#attrDict.get(ShareDefine.Def_Effect_MaxHPPer, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetMaxHPPerC())
+    MaxHPPer = attrDict.get(ShareDefine.Def_Effect_MaxHPPer, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetMaxHPPerC())
     DefPer = 0#attrDict.get(ShareDefine.Def_Effect_DefPer, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetDefPerC())
     LuckyHitRate = attrDict.get(ShareDefine.Def_Effect_LuckyHitRate, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetLuckyHitRateC())
     LuckyHitRateReduce = attrDict.get(ShareDefine.Def_Effect_LuckyHitRateReduce, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetLuckyHitRateReduceC())
@@ -466,25 +466,27 @@
     DamChanceDef = 0#attrDict.get(ShareDefine.Def_Effect_DamChanceDef, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetDamChanceDefC())
     SuperHitReduce = attrDict.get(ShareDefine.Def_Effect_SuperHitReduce, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSuperHitReduceC())
     SuperHitRateReduce = attrDict.get(ShareDefine.Def_Effect_SuperHitRateReduce, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSuperHitRateReduceC())
-    SkillAtkRate = 0#attrDict.get(ShareDefine.Def_Effect_SkillAtkRate, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillAtkRateC())
+    SkillAtkRate = attrDict.get(ShareDefine.Def_Effect_SkillAtkRate, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillAtkRateC())
     SpeedPer = 0#attrDict.get(ShareDefine.Def_Effect_SpeedPer, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSpeedPerC())
-    SkillAtkRateReduce = 0#attrDict.get(ShareDefine.Def_Effect_SkillAtkRateReduce, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillAtkRateReduceC())
+    SkillAtkRateReduce = attrDict.get(ShareDefine.Def_Effect_SkillAtkRateReduce, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillAtkRateReduceC())
     Hit = attrDict.get(ShareDefine.Def_Effect_Hit, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetHitC())
     Miss = attrDict.get(ShareDefine.Def_Effect_Miss, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetMissC())
-    SkillAddPerA = 0
-    SkillAddPerB = 0
-    SkillAddPerC = 0
-    SkillAddPerD = 0
-    SkillAddPerE = 0
-    SkillAddPerF = 0
-    SkillAddPerG = 0
-    SkillReducePerA = 0
-    SkillReducePerB = 0
-    SkillReducePerC = 0
-    SkillReducePerD = 0
-    SkillReducePerE = 0
-    SkillReducePerF = 0
-    SkillReducePerG = 0
+    SkillAddPerA = attrDict.get(ShareDefine.Def_Effect_SkillAddPer1, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillAddPer1C())
+    SkillAddPerB = attrDict.get(ShareDefine.Def_Effect_SkillAddPer2, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillAddPer2C())
+    SkillAddPerC = attrDict.get(ShareDefine.Def_Effect_SkillAddPer3, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillAddPer3C())
+    SkillAddPerD = attrDict.get(ShareDefine.Def_Effect_SkillAddPer4, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillAddPer4C())
+    SkillAddPerE = attrDict.get(ShareDefine.Def_Effect_SkillAddPer5, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillAddPer5C())
+    SkillAddPerF = attrDict.get(ShareDefine.Def_Effect_SkillAddPer6, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillAddPer6C())
+    SkillAddPerG = attrDict.get(ShareDefine.Def_Effect_SkillAddPer7, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillAddPer7C())
+    SkillReducePerA = attrDict.get(ShareDefine.Def_Effect_SkillReducePer1, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillReducePer1C())
+    SkillReducePerB = attrDict.get(ShareDefine.Def_Effect_SkillReducePer2, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillReducePer2C())
+    SkillReducePerC = attrDict.get(ShareDefine.Def_Effect_SkillReducePer3, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillReducePer3C())
+    SkillReducePerD = attrDict.get(ShareDefine.Def_Effect_SkillReducePer4, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillReducePer4C())
+    SkillReducePerE = attrDict.get(ShareDefine.Def_Effect_SkillReducePer5, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillReducePer5C())
+    SkillReducePerF = attrDict.get(ShareDefine.Def_Effect_SkillReducePer6, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillReducePer6C())
+    SkillReducePerG = attrDict.get(ShareDefine.Def_Effect_SkillReducePer7, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillReducePer7C())
+    
+    ReduceSkillCDPer = attrDict.get(ShareDefine.Def_Effect_ReduceSkillCDPer, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetReduceSkillCDPerC())
     
     # 攻速不默认乘,仅作为参数提供策划使用
     AtkSpeed = 0#attrDict.get(ShareDefine.Def_Effect_AtkSpeed, 0)
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 51c2515..7b83e00 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -6418,15 +6418,9 @@
 def GetAtkBackMPPer(curPlayer): return 0
 def SetAtkBackMPPer(curPlayer, value): return
 
-## 玩家减技能CD值
-def GetReduceSkillCD(curPlayer): return curPlayer.GetBattleValEx3()
-def SetReduceSkillCD(curPlayer, reduceSkillCD):
-    curPlayer.SetBattleValEx3(reduceSkillCD)
-    reducePerFormat = ReadChConfig.GetChConfig("SkillCDReducePer")
-    reducePer = eval(reducePerFormat)
-    curPlayer.SetDict(ChConfig.Def_PlayerKey_ReduceSkillCDPer, reducePer)
-    return
-def GetReduceSkillCDPer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_ReduceSkillCDPer)
+## 玩家减技能CD比例
+def GetReduceSkillCDPer(curPlayer): return curPlayer.GetBattleValEx3()
+def SetReduceSkillCDPer(curPlayer, reducePer): return curPlayer.SetBattleValEx3(reducePer)
 
 ## 常规地图经验倍率加成
 def GetCommMapExpRate(curPlayer):
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
index 972cf96..2171143 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -509,6 +509,29 @@
 Def_Effect_JobBAtkReducePer = 94 # 法师攻击伤害减免
 Def_Effect_JobCAtkReducePer = 95 # 弓箭攻击伤害减免
 
+Def_Effect_SkillAddPer1 = 102 # 技能伤害增强1
+Def_Effect_SkillAddPer2 = 103 # 技能伤害增强2
+Def_Effect_SkillAddPer3 = 104 # 技能伤害增强3
+Def_Effect_SkillAddPer4 = 105 # 技能伤害增强4
+Def_Effect_SkillAddPer5 = 106 # 技能伤害增强5
+Def_Effect_SkillAddPer6 = 107 # 技能伤害增强6
+Def_Effect_SkillAddPer7 = 108 # 技能伤害增强7
+
+Def_Effect_SkillReducePer1 = 109 # 受到技能伤害减少1
+Def_Effect_SkillReducePer2 = 110 # 受到技能伤害减少2
+Def_Effect_SkillReducePer3 = 111 # 受到技能伤害减少3
+Def_Effect_SkillReducePer4 = 112 # 受到技能伤害减少4
+Def_Effect_SkillReducePer5 = 113 # 受到技能伤害减少5
+Def_Effect_SkillReducePer6 = 114 # 受到技能伤害减少6
+Def_Effect_SkillReducePer7 = 115 # 受到技能伤害减少7
+
+## 技能伤害百分比增加的 属性ID 列表
+SkillAddPerAttrIDList = [Def_Effect_SkillAddPer1, Def_Effect_SkillAddPer2, Def_Effect_SkillAddPer3, Def_Effect_SkillAddPer4, 
+                         Def_Effect_SkillAddPer5, Def_Effect_SkillAddPer6, Def_Effect_SkillAddPer7]
+## 技能伤害百分比减少的 属性ID 列表
+SkillReducePerAttrIDList = [Def_Effect_SkillReducePer1, Def_Effect_SkillReducePer2, Def_Effect_SkillReducePer3, Def_Effect_SkillReducePer4, 
+                            Def_Effect_SkillReducePer5, Def_Effect_SkillReducePer6, Def_Effect_SkillReducePer7]
+    
 Def_Effect_Luck = 120 # 气运
 Def_Effect_LuckPer = 133 # 气运百分率
 
@@ -529,6 +552,8 @@
 Def_Effect_BurnTimePer = 147    # 延长灼烧时间百分比
 Def_Effect_SubSpeedPer = 148    # 减移动速度百分比
 
+Def_Effect_ReduceSkillCDPer = 149   # 减少技能CD, a值为万分率
+
 #增加%d物理伤害值,其中a值为伤害值
 Def_Effect_AddAtk = 1005
 #增加%d魔法伤害值,其中a值为伤害值
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/EffGetSet.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/EffGetSet.py
index 1605b8f..e982e53 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/EffGetSet.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/EffGetSet.py
@@ -110,7 +110,7 @@
    [lambda curObj:PlayerControl.GetReduceBackHPPer(curObj), lambda curObj, value:PlayerControl.SetReduceBackHPPer(curObj, value), 0, 0, 0],  # 暂无用
    [lambda curObj:PlayerControl.GetXPRestorePer(curObj), lambda curObj, value:PlayerControl.SetXPRestorePer(curObj, value), 0, 0, 0],        # 自动恢复XP值比率
    
-   [lambda curObj:PlayerControl.GetReduceSkillCD(curObj), lambda curObj, value:PlayerControl.SetReduceSkillCD(curObj, value), 0, 0, 0],          # 减技能CD值
+   [lambda curObj:PlayerControl.GetReduceSkillCDPer(curObj), lambda curObj, value:PlayerControl.SetReduceSkillCDPer(curObj, value), IPY_PlayerDefine.CDBPlayerRefresh_BattleValEx3, 1, 0],  # 减技能CD比例
    [lambda curObj:curObj.GetSkillAtkRate(), lambda curObj, value:curObj.SetSkillAtkRate(value), IPY_PlayerDefine.CDBPlayerRefresh_SkillAtkRate, 1, 0],                                        # 技能攻击比例加成
    [lambda curObj:PlayerControl.GetSkillAtkRateReduce(curObj), lambda curObj, value:PlayerControl.SetSkillAtkRateReduce(curObj, value), ShareDefine.CDBPlayerRefresh_SkillAtkRateReduce, 1, 0],# 技能攻击比例减少
    [lambda curObj:PlayerControl.GetDamagePVP(curObj), lambda curObj, value:PlayerControl.SetDamagePVP(curObj, value), ShareDefine.CDBPlayerRefresh_DamagePVP, 1, 0],     # PVP固定伤害

--
Gitblit v1.8.0