|  |  |  | 
|---|
|  |  |  | import ChPyNetSendPack | 
|---|
|  |  |  | import NetPackCommon | 
|---|
|  |  |  | import FamilyRobBoss | 
|---|
|  |  |  | import EquipZhuXian | 
|---|
|  |  |  | import FBCommon | 
|---|
|  |  |  | import ChNPC | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | 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): | 
|---|
|  |  |  | 
|---|
|  |  |  | # 改变技能伤害 | 
|---|
|  |  |  | atkSkillPer, atkSkillValue = ChangeSkillHurt(atkObj, defObj, curSkill, atkSkillPer, atkSkillValue) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | atkSkillPer = ChangeSkillHurtPer(atkObj, defObj, curSkill, atkSkillPer) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #  atkSkillPer 包含普攻,所以不是用技能增强处理 | 
|---|
|  |  |  | atkSkillPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AttackAddSkillPer) | 
|---|
|  |  |  |  | 
|---|