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