From 2eec704540684c4de0c98bd6833e9a5a3a24f7e3 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 23 十月 2019 00:04:46 +0800
Subject: [PATCH] 8311 【恺英】【后端】新增装备评分参数(装备传奇技能增减属性效果支持)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/EffGetSet.py                 |   14 +++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/PrintSkill.py          |   21 ++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py                     |   16 +++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py            |   32 ++++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py    |   49 ++++++++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py |    4 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py                        |   46 +++++++++++
 7 files changed, 175 insertions(+), 7 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
index 0ecb368..f69023c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
@@ -1458,12 +1458,14 @@
     if atkObj.GetGameObjType() != IPY_GameWorld.gotPlayer:
         return skillPer
     
-    #skillTypeID = curSkill.GetSkillTypeID()
+    skillTypeID = curSkill.GetSkillTypeID()
     
     addPer = 0
     reducePer = 0
+    addPer += SkillCommon.GetSkillAddPerByID(atkObj, skillTypeID)
     
     if defObj.GetGameObjType() == IPY_GameWorld.gotPlayer:
+        reducePer = SkillCommon.GetSkillReducePerByID(defObj, skillTypeID)
         
         #根据防守方职业 计算攻击方伤害加成
         if defObj.GetJob() in [ShareDefine.PlayerJob_Warrior, ShareDefine.PlayerJob_Knight]:
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index 86c3b3f..ee484d5 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -74,7 +74,7 @@
 Def_BuffValue_Count = 3     # buff记录的value个数
 
 #游戏对象属性--------------------------------------------
-Def_Calc_AllAttrType_MAX = 135
+Def_Calc_AllAttrType_MAX = 149
 #基本属性BUFF计算,顺序与 ObjProperty_AttrByIndex 对应,同时也为buff效果ID同步通知策划
 TYPE_Calc_AttrList = (
 TYPE_Calc_Metal,                        # 金 1
@@ -223,6 +223,20 @@
 TYPE_Calc_BurnValue,                    # 灼烧固定伤害
 TYPE_Calc_BurnTimePer,                     # 延长灼烧时间百分比
 TYPE_Calc_SubSpeedPer,                  # 减移动速度百分比
+TYPE_Calc_SkillAddPer1,                  # 技能伤害增强1 135
+TYPE_Calc_SkillAddPer2,                  # 技能伤害增强2
+TYPE_Calc_SkillAddPer3,                  # 技能伤害增强3
+TYPE_Calc_SkillAddPer4,                  # 技能伤害增强4
+TYPE_Calc_SkillAddPer5,                  # 技能伤害增强5
+TYPE_Calc_SkillAddPer6,                  # 技能伤害增强6 140
+TYPE_Calc_SkillAddPer7,                  # 技能伤害增强7
+TYPE_Calc_SkillReducePer1,               # 受到技能伤害减少1
+TYPE_Calc_SkillReducePer2,               # 受到技能伤害减少2
+TYPE_Calc_SkillReducePer3,               # 受到技能伤害减少3
+TYPE_Calc_SkillReducePer4,               # 受到技能伤害减少4 145
+TYPE_Calc_SkillReducePer5,               # 受到技能伤害减少5
+TYPE_Calc_SkillReducePer6,               # 受到技能伤害减少6
+TYPE_Calc_SkillReducePer7,               # 受到技能伤害减少7
 ) = range(1, Def_Calc_AllAttrType_MAX)
 
 
@@ -3238,6 +3252,20 @@
 Def_PlayerKey_WaterQualityLV = "WaterQualityLV"   # 水灵根品级
 Def_PlayerKey_FireQualityLV = "FireQualityLV"   # 火灵根品级
 Def_PlayerKey_EarthQualityLV = "EarthQualityLV"   # 土灵根品级
+Def_PlayerKey_SkillAddPer1 = "SkillAddPer1"   # 技能伤害增强1
+Def_PlayerKey_SkillAddPer2 = "SkillAddPer2"   # 技能伤害增强2
+Def_PlayerKey_SkillAddPer3 = "SkillAddPer3"   # 技能伤害增强3
+Def_PlayerKey_SkillAddPer4 = "SkillAddPer4"   # 技能伤害增强4
+Def_PlayerKey_SkillAddPer5 = "SkillAddPer5"   # 技能伤害增强5
+Def_PlayerKey_SkillAddPer6 = "SkillAddPer6"   # 技能伤害增强6
+Def_PlayerKey_SkillAddPer7 = "SkillAddPer7"   # 技能伤害增强7
+Def_PlayerKey_SkillReducePer1 = "SkillReducePer1"   # 受到技能伤害减少1
+Def_PlayerKey_SkillReducePer2 = "SkillReducePer2"   # 受到技能伤害减少2
+Def_PlayerKey_SkillReducePer3 = "SkillReducePer3"   # 受到技能伤害减少3
+Def_PlayerKey_SkillReducePer4 = "SkillReducePer4"   # 受到技能伤害减少4
+Def_PlayerKey_SkillReducePer5 = "SkillReducePer5"   # 受到技能伤害减少5
+Def_PlayerKey_SkillReducePer6 = "SkillReducePer6"   # 受到技能伤害减少6
+Def_PlayerKey_SkillReducePer7 = "SkillReducePer7"   # 受到技能伤害减少7
 
 #功能索引ShareDefine.Def_AttrFruitFuncList
 Def_PlayerKey_FruitAttr = "FruitAttr_%s_%s" # 属性果实增加的属性,参数为(功能索引, 物品效果id)
@@ -4232,7 +4260,21 @@
     ShareDefine.Def_Effect_BurnValue:[[TYPE_Calc_BurnValue], False, TYPE_Linear],   # 灼烧固定伤害
     ShareDefine.Def_Effect_BurnTimePer:[[TYPE_Calc_BurnTimePer], False, TYPE_Linear],   # 延长灼烧时间百分比
     ShareDefine.Def_Effect_SubSpeedPer:[[TYPE_Calc_SubSpeedPer], False, TYPE_Linear],   # 减移动速度百分比
-
+    ShareDefine.Def_Effect_SkillAddPer1:[[TYPE_Calc_SkillAddPer1], False, TYPE_Linear],   # 技能伤害增强1
+    ShareDefine.Def_Effect_SkillAddPer2:[[TYPE_Calc_SkillAddPer2], False, TYPE_Linear],   # 技能伤害增强2
+    ShareDefine.Def_Effect_SkillAddPer3:[[TYPE_Calc_SkillAddPer3], False, TYPE_Linear],   # 技能伤害增强3
+    ShareDefine.Def_Effect_SkillAddPer4:[[TYPE_Calc_SkillAddPer4], False, TYPE_Linear],   # 技能伤害增强4
+    ShareDefine.Def_Effect_SkillAddPer5:[[TYPE_Calc_SkillAddPer5], False, TYPE_Linear],   # 技能伤害增强5
+    ShareDefine.Def_Effect_SkillAddPer6:[[TYPE_Calc_SkillAddPer6], False, TYPE_Linear],   # 技能伤害增强6
+    ShareDefine.Def_Effect_SkillAddPer7:[[TYPE_Calc_SkillAddPer7], False, TYPE_Linear],   # 技能伤害增强7
+    ShareDefine.Def_Effect_SkillReducePer1:[[TYPE_Calc_SkillReducePer1], False, TYPE_Linear],   # 受到技能伤害减少1
+    ShareDefine.Def_Effect_SkillReducePer2:[[TYPE_Calc_SkillReducePer2], False, TYPE_Linear],   # 受到技能伤害减少2
+    ShareDefine.Def_Effect_SkillReducePer3:[[TYPE_Calc_SkillReducePer3], False, TYPE_Linear],   # 受到技能伤害减少3
+    ShareDefine.Def_Effect_SkillReducePer4:[[TYPE_Calc_SkillReducePer4], False, TYPE_Linear],   # 受到技能伤害减少4
+    ShareDefine.Def_Effect_SkillReducePer5:[[TYPE_Calc_SkillReducePer5], False, TYPE_Linear],   # 受到技能伤害减少5
+    ShareDefine.Def_Effect_SkillReducePer6:[[TYPE_Calc_SkillReducePer6], False, TYPE_Linear],   # 受到技能伤害减少6
+    ShareDefine.Def_Effect_SkillReducePer7:[[TYPE_Calc_SkillReducePer7], False, TYPE_Linear],   # 受到技能伤害减少7
+    
     #战斗非线性
     ShareDefine.Def_Effect_SuperHitPer:[[TYPE_Calc_SuperHit], False, TYPE_NoLinear],
     ShareDefine.Def_Effect_LuckyHitPer:[[TYPE_Calc_LuckyHit], False, TYPE_NoLinear], # 会心一击伤害百分比
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/PrintSkill.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/PrintSkill.py
index e0c2c5a..7da936f 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/PrintSkill.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/PrintSkill.py
@@ -13,9 +13,10 @@
 #
 #---------------------------------------------------------------------
 import GameWorld
-import ChConfig
 import PassiveBuffEffMng
 import PlayerPet
+import IpyGameDataPY
+import SkillCommon
 
 ## GM命令执行入口
 #  @param curPlayer 当前玩家
@@ -59,7 +60,23 @@
     
     for funcType, skillList in skillDict.items():
         GameWorld.DebugAnswer(curPlayer, "%s : %s"%(showDict.get(funcType, funcType), skillList))
-    
+        
+    ## 打印技能增减伤信息
+    plusSkillTypeIDList = []
+    skillPlusAttrIDDict = IpyGameDataPY.GetFuncEvalCfg("SkillPlusAttrID", 2, {})
+    for skillTypeIDList in skillPlusAttrIDDict.values():
+        for skillTypeID in skillTypeIDList:
+            if skillTypeID in plusSkillTypeIDList:
+                continue
+            skillData = GameWorld.GetGameData().GetSkillBySkillID(skillTypeID)
+            if not SkillCommon.CheckSkillJob(curPlayer, skillData):
+                continue
+            plusSkillTypeIDList.append(skillTypeID)
+            addPer = SkillCommon.GetSkillAddPerByID(curPlayer, skillTypeID)
+            reducePer = SkillCommon.GetSkillReducePerByID(curPlayer, skillTypeID)
+            if addPer or reducePer:
+                GameWorld.DebugAnswer(curPlayer, "%s 增伤+%s 减伤+%s" % (skillData.GetSkillName(), addPer, reducePer))
+                
     if not cmdList:
         return
     
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 7b83e00..212471d 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -6822,6 +6822,38 @@
 def GetSubSpeedPer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_SubSpeedPer)
 def SetSubSpeedPer(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_SubSpeedPer, value)
 
+# 技能伤害增强
+def GetSkillAddPer1(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_SkillAddPer1)
+def SetSkillAddPer1(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_SkillAddPer1, value)
+def GetSkillAddPer2(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_SkillAddPer2)
+def SetSkillAddPer2(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_SkillAddPer2, value)
+def GetSkillAddPer3(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_SkillAddPer3)
+def SetSkillAddPer3(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_SkillAddPer3, value)
+def GetSkillAddPer4(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_SkillAddPer4)
+def SetSkillAddPer4(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_SkillAddPer4, value)
+def GetSkillAddPer5(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_SkillAddPer5)
+def SetSkillAddPer5(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_SkillAddPer5, value)
+def GetSkillAddPer6(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_SkillAddPer6)
+def SetSkillAddPer6(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_SkillAddPer6, value)
+def GetSkillAddPer7(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_SkillAddPer7)
+def SetSkillAddPer7(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_SkillAddPer7, value)
+
+# 受到技能伤害减少
+def GetSkillReducePer1(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_SkillReducePer1)
+def SetSkillReducePer1(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_SkillReducePer1, value)
+def GetSkillReducePer2(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_SkillReducePer2)
+def SetSkillReducePer2(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_SkillReducePer2, value)
+def GetSkillReducePer3(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_SkillReducePer3)
+def SetSkillReducePer3(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_SkillReducePer3, value)
+def GetSkillReducePer4(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_SkillReducePer4)
+def SetSkillReducePer4(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_SkillReducePer4, value)
+def GetSkillReducePer5(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_SkillReducePer5)
+def SetSkillReducePer5(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_SkillReducePer5, value)
+def GetSkillReducePer6(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_SkillReducePer6)
+def SetSkillReducePer6(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_SkillReducePer6, value)
+def GetSkillReducePer7(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_SkillReducePer7)
+def SetSkillReducePer7(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_SkillReducePer7, value)
+
 ## 计算功能背包物品属性 
 #  @param curPlayer 当前玩家
 #  @param packType 背包类型
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
index 2171143..fd59db3 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -864,7 +864,21 @@
 CDBPlayerRefresh_FinalHurtReducePer,   # 最终伤害减少百分比 
 CDBPlayerRefresh_YinjiTime,   # 每X秒减少印记时间,毫秒
 CDBPlayerRefresh_YinjiCnt,   # 当前印记数 214
-) = range(146, 215)
+CDBPlayerRefresh_SkillAddPer1,   # 技能伤害增强1 215
+CDBPlayerRefresh_SkillAddPer2,   # 技能伤害增强2
+CDBPlayerRefresh_SkillAddPer3,   # 技能伤害增强3
+CDBPlayerRefresh_SkillAddPer4,   # 技能伤害增强4
+CDBPlayerRefresh_SkillAddPer5,   # 技能伤害增强5
+CDBPlayerRefresh_SkillAddPer6,   # 技能伤害增强6 220
+CDBPlayerRefresh_SkillAddPer7,   # 技能伤害增强7
+CDBPlayerRefresh_SkillReducePer1,   # 受到技能伤害减少1
+CDBPlayerRefresh_SkillReducePer2,   # 受到技能伤害减少2
+CDBPlayerRefresh_SkillReducePer3,   # 受到技能伤害减少3
+CDBPlayerRefresh_SkillReducePer4,   # 受到技能伤害减少4 225
+CDBPlayerRefresh_SkillReducePer5,   # 受到技能伤害减少5
+CDBPlayerRefresh_SkillReducePer6,   # 受到技能伤害减少6
+CDBPlayerRefresh_SkillReducePer7,   # 受到技能伤害减少7
+) = range(146, 229)
 
 TYPE_Price_Gold_Paper_Money = 5    # 金钱类型,(先用礼券,再用金子)
 TYPE_Price_Family_Contribution = 6 # 战盟贡献度(活跃度转换得来)
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 e982e53..3c72c38 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/EffGetSet.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/EffGetSet.py
@@ -174,6 +174,20 @@
    [lambda curObj:PlayerControl.GetBurnValue(curObj), lambda curObj, value:PlayerControl.SetBurnValue(curObj, value), ShareDefine.CDBPlayerRefresh_YinjiTime, 0, 0],    # 灼烧固定伤害
    [lambda curObj:PlayerControl.GetBurnTimePer(curObj), lambda curObj, value:PlayerControl.SetBurnTimePer(curObj, value), 0, 0, 0],    # 延长灼烧时间百分比
    [lambda curObj:PlayerControl.GetSubSpeedPer(curObj), lambda curObj, value:PlayerControl.SetSubSpeedPer(curObj, value), 0, 0, 0],    # 减移动速度百分比
+   [lambda curObj:PlayerControl.GetSkillAddPer1(curObj), lambda curObj, value:PlayerControl.SetSkillAddPer1(curObj, value), ShareDefine.CDBPlayerRefresh_SkillAddPer1, 1, 0],    # 技能伤害增强1
+   [lambda curObj:PlayerControl.GetSkillAddPer2(curObj), lambda curObj, value:PlayerControl.SetSkillAddPer2(curObj, value), ShareDefine.CDBPlayerRefresh_SkillAddPer2, 1, 0],    # 技能伤害增强2
+   [lambda curObj:PlayerControl.GetSkillAddPer3(curObj), lambda curObj, value:PlayerControl.SetSkillAddPer3(curObj, value), ShareDefine.CDBPlayerRefresh_SkillAddPer3, 1, 0],    # 技能伤害增强3
+   [lambda curObj:PlayerControl.GetSkillAddPer4(curObj), lambda curObj, value:PlayerControl.SetSkillAddPer4(curObj, value), ShareDefine.CDBPlayerRefresh_SkillAddPer4, 1, 0],    # 技能伤害增强4
+   [lambda curObj:PlayerControl.GetSkillAddPer5(curObj), lambda curObj, value:PlayerControl.SetSkillAddPer5(curObj, value), ShareDefine.CDBPlayerRefresh_SkillAddPer5, 1, 0],    # 技能伤害增强5
+   [lambda curObj:PlayerControl.GetSkillAddPer6(curObj), lambda curObj, value:PlayerControl.SetSkillAddPer6(curObj, value), ShareDefine.CDBPlayerRefresh_SkillAddPer6, 1, 0],    # 技能伤害增强6
+   [lambda curObj:PlayerControl.GetSkillAddPer7(curObj), lambda curObj, value:PlayerControl.SetSkillAddPer7(curObj, value), ShareDefine.CDBPlayerRefresh_SkillAddPer7, 1, 0],    # 技能伤害增强7
+   [lambda curObj:PlayerControl.GetSkillReducePer1(curObj), lambda curObj, value:PlayerControl.SetSkillReducePer1(curObj, value), ShareDefine.CDBPlayerRefresh_SkillReducePer1, 1, 0],    # 受到技能伤害减少1
+   [lambda curObj:PlayerControl.GetSkillReducePer2(curObj), lambda curObj, value:PlayerControl.SetSkillReducePer2(curObj, value), ShareDefine.CDBPlayerRefresh_SkillReducePer2, 1, 0],    # 受到技能伤害减少2
+   [lambda curObj:PlayerControl.GetSkillReducePer3(curObj), lambda curObj, value:PlayerControl.SetSkillReducePer3(curObj, value), ShareDefine.CDBPlayerRefresh_SkillReducePer3, 1, 0],    # 受到技能伤害减少3
+   [lambda curObj:PlayerControl.GetSkillReducePer4(curObj), lambda curObj, value:PlayerControl.SetSkillReducePer4(curObj, value), ShareDefine.CDBPlayerRefresh_SkillReducePer4, 1, 0],    # 受到技能伤害减少4
+   [lambda curObj:PlayerControl.GetSkillReducePer5(curObj), lambda curObj, value:PlayerControl.SetSkillReducePer5(curObj, value), ShareDefine.CDBPlayerRefresh_SkillReducePer5, 1, 0],    # 受到技能伤害减少5
+   [lambda curObj:PlayerControl.GetSkillReducePer6(curObj), lambda curObj, value:PlayerControl.SetSkillReducePer6(curObj, value), ShareDefine.CDBPlayerRefresh_SkillReducePer6, 1, 0],    # 受到技能伤害减少6
+   [lambda curObj:PlayerControl.GetSkillReducePer7(curObj), lambda curObj, value:PlayerControl.SetSkillReducePer7(curObj, value), ShareDefine.CDBPlayerRefresh_SkillReducePer7, 1, 0],    # 受到技能伤害减少7
 ]
 
 ## 通过索引获得属性值
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py
index 512409f..046c782 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py
@@ -2313,5 +2313,52 @@
     #    
     # return
     #===========================================================================
+    
+def GetSkillAddPerByID(curPlayer, skillTypeID):
+    ## 获取技能伤害百分比提升值
+    # @param skillTypeID: 技能TypeID
+    SkillAddPerAttrIDDict = IpyGameDataPY.GetConfigEx("SkillAddPerAttrIDDict")
+    if not SkillAddPerAttrIDDict:
+        SkillAddPerAttrIDDict = {}
+        skillPlusAttrIDDict = IpyGameDataPY.GetFuncEvalCfg("SkillPlusAttrID", 2, {})
+        for attrIDStr, skillTypeIDList in skillPlusAttrIDDict.items():
+            attrID = int(attrIDStr)
+            if attrID not in ShareDefine.SkillAddPerAttrIDList:
+                continue
+            for cfgSkillTypeID in skillTypeIDList:
+                SkillAddPerAttrIDDict[cfgSkillTypeID] = attrID
+        IpyGameDataPY.SetConfigEx("SkillAddPerAttrIDDict", SkillAddPerAttrIDDict)
         
-        
\ No newline at end of file
+    if skillTypeID not in SkillAddPerAttrIDDict:
+        return 0
+    curAttrID = SkillAddPerAttrIDDict[skillTypeID]
+    attrInfo = ChConfig.ItemEffect_AttrDict.get(curAttrID, [])
+    if attrInfo == []:
+        return 0
+    effIndex = attrInfo[0][0]
+    return EffGetSet.GetValueByEffIndex(curPlayer, effIndex)
+
+def GetSkillReducePerByID(curPlayer, skillTypeID):
+    ## 获取技能伤害百分比减伤值
+    # @param skillTypeID: 技能TypeID
+    SkillReducePerAttrIDDict = IpyGameDataPY.GetConfigEx("SkillReducePerAttrIDDict")
+    if not SkillReducePerAttrIDDict:
+        SkillReducePerAttrIDDict = {}
+        skillPlusAttrIDDict = IpyGameDataPY.GetFuncEvalCfg("SkillPlusAttrID", 2, {})
+        for attrIDStr, skillTypeIDList in skillPlusAttrIDDict.items():
+            attrID = int(attrIDStr)
+            if attrID not in ShareDefine.SkillReducePerAttrIDList:
+                continue
+            for cfgSkillTypeID in skillTypeIDList:
+                SkillReducePerAttrIDDict[cfgSkillTypeID] = attrID
+        IpyGameDataPY.SetConfigEx("SkillReducePerAttrIDDict", SkillReducePerAttrIDDict)
+        
+    if skillTypeID not in SkillReducePerAttrIDDict:
+        return 0
+    curAttrID = SkillReducePerAttrIDDict[skillTypeID]
+    attrInfo = ChConfig.ItemEffect_AttrDict.get(curAttrID, [])
+    if attrInfo == []:
+        return 0
+    effIndex = attrInfo[0][0]
+    return EffGetSet.GetValueByEffIndex(curPlayer, effIndex)
+

--
Gitblit v1.8.0