From cad5322198881fb5cbf0ab12b05f06dc2642fb6d Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期三, 23 一月 2019 14:57:04 +0800 Subject: [PATCH] 5931 【后端】【1.5.100】诛仙装备开发(诛仙装备传奇属性效果、套装属性效果; 增加GM命令 PrintZXEquipSkill 输出诛仙装备所影响的相关技能效果信息) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py | 41 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 41 insertions(+), 0 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 b2df452..bb89a25 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 @@ -57,6 +57,7 @@ import ChPyNetSendPack import NetPackCommon import FamilyRobBoss +import EquipZhuXian import FBCommon import ChNPC @@ -1417,6 +1418,44 @@ return +def ChangeSkillHurtPer(atkObj, defObj, curSkill, skillPer): + ## 改变技能伤害百分比 + + if not curSkill: + return skillPer + + if atkObj.GetGameObjType() != IPY_GameWorld.gotPlayer: + return skillPer + + skillTypeID = curSkill.GetSkillTypeID() + + addPer = EquipZhuXian.GetZhuXianEquipSkillAddPer(atkObj.GetPlayerID(), skillTypeID) + reducePer = 0 + + if defObj.GetGameObjType() == IPY_GameWorld.gotPlayer: + reducePer = EquipZhuXian.GetZhuXianEquipSkillReducePer(defObj.GetPlayerID(), skillTypeID) + + #根据防守方职业 计算攻击方伤害加成 + if defObj.GetJob() in [ShareDefine.PlayerJob_Warrior, ShareDefine.PlayerJob_Knight]: + addPer += PlayerControl.GetJobAHurtAddPer(atkObj) + elif defObj.GetJob() in [ShareDefine.PlayerJob_Wizard, ShareDefine.PlayerJob_ForceUser]: + addPer += PlayerControl.GetJobBHurtAddPer(atkObj) + elif defObj.GetJob() in [ShareDefine.PlayerJob_Assassin, ShareDefine.PlayerJob_BowMaster]: + addPer += PlayerControl.GetJobCHurtAddPer(atkObj) + + #根据攻击方职业 计算防守方伤害减免 + if atkObj.GetJob() in [ShareDefine.PlayerJob_Warrior, ShareDefine.PlayerJob_Knight]: + reducePer += PlayerControl.GetJobAAtkReducePer(defObj) + elif atkObj.GetJob() in [ShareDefine.PlayerJob_Wizard, ShareDefine.PlayerJob_ForceUser]: + reducePer += PlayerControl.GetJobBAtkReducePer(defObj) + elif atkObj.GetJob() in [ShareDefine.PlayerJob_Assassin, ShareDefine.PlayerJob_BowMaster]: + reducePer += PlayerControl.GetJobCAtkReducePer(defObj) + + if addPer or reducePer: + addSkillPer = (addPer - reducePer) / 10000.0 + skillPer = max(0, skillPer + addSkillPer) + + return skillPer # 改变技能伤害(效果ID1010), 野外小怪1009替换1010伤害(2018-03-07增加精英怪) def ChangeSkillHurt(curPlayer, defObj, curSkill, skillPer, skillValue): @@ -1855,6 +1894,8 @@ # 改变技能伤害 atkSkillPer, atkSkillValue = ChangeSkillHurt(atkObj, defObj, curSkill, atkSkillPer, atkSkillValue) + atkSkillPer = ChangeSkillHurtPer(atkObj, defObj, curSkill, atkSkillPer) + # atkSkillPer 包含普攻,所以不是用技能增强处理 atkSkillPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AttackAddSkillPer) -- Gitblit v1.8.0