| | |
| | | return restoreMP
|
| | |
|
| | |
|
| | | ## 获取技能对最终伤害影响的效果比例
|
| | | # @param skill 使用的技能
|
| | | # @return |
| | | #===============================================================================
|
| | | # def GetSkillFinalHurtPer(atkObj, defObj, skill, tick):
|
| | | # |
| | | # atkObjType = atkObj.GetGameObjType()
|
| | | # defObjType = defObj.GetGameObjType()
|
| | | # |
| | | # finalPer = ChConfig.Def_MaxRateValue # 默认10000
|
| | | # |
| | | # if atkObjType != IPY_GameWorld.gotPlayer:
|
| | | # return finalPer
|
| | | # |
| | | # # 技能对玩家的影响
|
| | | # if defObjType == IPY_GameWorld.gotPlayer:
|
| | | # |
| | | # # 减少值
|
| | | # reduceHurtPerEff = GetSkillEffectByEffectID(skill, ChConfig.Def_Skill_Effect_ReduceFinalHurtPer)
|
| | | # curReducePer = 0 if not reduceHurtPerEff else reduceHurtPerEff.GetEffectValue(0)
|
| | | # finalPer -= curReducePer
|
| | | # |
| | | # # 增加值
|
| | | # addHurtPerEff = GetSkillEffectByEffectID(skill, ChConfig.Def_Skill_Effect_AddFinalHurtPer)
|
| | | # curAddPer = 0 if not addHurtPerEff else addHurtPerEff.GetEffectValue(0)
|
| | | # finalPer += curAddPer
|
| | | # |
| | | # #根据防守方职业 计算攻击方伤害加成
|
| | | # if defObj.GetJob() in [ShareDefine.PlayerJob_Warrior, ShareDefine.PlayerJob_Knight]:
|
| | | # finalPer += PlayerControl.GetJobAHurtAddPer(atkObj)
|
| | | # elif defObj.GetJob() in [ShareDefine.PlayerJob_Wizard, ShareDefine.PlayerJob_ForceUser]:
|
| | | # finalPer += PlayerControl.GetJobBHurtAddPer(atkObj)
|
| | | # elif defObj.GetJob() in [ShareDefine.PlayerJob_Assassin, ShareDefine.PlayerJob_BowMaster]:
|
| | | # finalPer += PlayerControl.GetJobCHurtAddPer(atkObj)
|
| | | # |
| | | # # 对NPC的影响
|
| | | # elif defObjType == IPY_GameWorld.gotNPC:
|
| | | # finalPer += PlayerControl.GetNPCHurtAddPer(atkObj)
|
| | | # if defObj.GetNPCID() in ReadChConfig.GetEvalChConfig("PlayerSpecialAttrBossID"):
|
| | | # finalPer += PlayerControl.GetBossIDHurtAddPer(atkObj)
|
| | | # |
| | | # # 技能连击加成
|
| | | # curSkillTypeID = skill.GetSkillTypeID()
|
| | | # comboSkillTypeID = atkObj.GetDictByKey(ChConfig.Def_PlayerKey_ComboSkillTypeID)
|
| | | # # 如果是触发连击的技能, 则附加连击伤害加成
|
| | | # if curSkillTypeID == comboSkillTypeID:
|
| | | # comboAddPer = atkObj.GetDictByKey(ChConfig.Def_PlayerKey_ComboAddHurtPer)
|
| | | # finalPer += comboAddPer
|
| | | # GameWorld.DebugLog("连击最终伤害加成%s, skillID=%s" % (comboAddPer, curSkillTypeID))
|
| | | # |
| | | # finalPer = max(0, finalPer)
|
| | | # |
| | | # return finalPer
|
| | | #===============================================================================
|
| | |
|
| | | ## 更新技能连击数
|
| | | # @param attacker
|
| | | # @param skill 使用的技能
|