8311 【恺英】【后端】新增装备评分参数(装备传奇技能增减属性效果支持)
7个文件已修改
182 ■■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/PrintSkill.py 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/EffGetSet.py 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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]:
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], # 会心一击伤害百分比
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
    
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 背包类型
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 # 战盟贡献度(活跃度转换得来)
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
]
## 通过索引获得属性值
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)
        
    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)