
HP Absorb
Lvl: 10
Attack
Magic
CD: 2 sec
Skill Delay: 1.5 sec
SP: 100
Range: 5
Cast Time: 3
Fixed Cast Time: 0.5
Deals Neutral M. DMG equal to 25%% of an enemy's current HP and absorbs 50%% of the damage dealt to heal the user. Meanwhile, the enemy's VIT decreases by 15, and the user's VIT increases by 15. When it is effective on MVP and Mini Monsters, the HP loss will decrease to a fixed amount, and there will be no bonus lifesteal.
Lvl: 9
Attack
Magic
CD: 2 sec
Skill Delay: 1.5 sec
SP: 100
Range: 5
Cast Time: 3
Fixed Cast Time: 0.5
• Deals Neutral M. DMG equal to 25%% of an enemy's current HP and absorbs 50%% of the damage dealt to heal the user. Meanwhile, the enemy's VIT decreases by 12, and the user's VIT increases by 12. When it is effective on MVP and Mini Monsters, the HP loss will decrease to a fixed amount, and there will be no bonus lifesteal.
Lvl: 8
Attack
Magic
CD: 2 sec
Skill Delay: 1.5 sec
SP: 100
Range: 5
Cast Time: 3
Fixed Cast Time: 0.5
• Deals Neutral M. DMG equal to 25%% of an enemy's current HP and absorbs 50%% of the damage dealt to heal the user. Meanwhile, the enemy's VIT decreases by 9, and the user's VIT increases by 9. When it is effective on MVP and Mini Monsters, the HP loss will decrease to a fixed amount, and there will be no bonus lifesteal.
Lvl: 7
Attack
Magic
CD: 2 sec
Skill Delay: 1.5 sec
SP: 100
Range: 5
Cast Time: 3
Fixed Cast Time: 0.5
• Deals Neutral M. DMG equal to 25%% of an enemy's current HP and absorbs 50%% of the damage dealt to heal the user. Meanwhile, the enemy's VIT decreases by 6, and the user's VIT increases by 6. When it is effective on MVP and Mini Monsters, the HP loss will decrease to a fixed amount, and there will be no bonus lifesteal.
Lvl: 6
Attack
Magic
CD: 2 sec
Skill Delay: 1.5 sec
SP: 100
Range: 5
Cast Time: 3
Fixed Cast Time: 0.5
• Deals Neutral M. DMG equal to 25%% of an enemy's current HP and absorbs 50%% of the damage dealt to heal the user. Meanwhile, the enemy's VIT decreases by 3, and the user's VIT increases by 3. When it is effective on MVP and Mini Monsters, the HP loss will decrease to a fixed amount, and there will be no bonus lifesteal.
Lvl: 5
Attack
Magic
CD: 2 sec
Skill Delay: 1.5 sec
SP: 100
Range: 5
Cast Time: 3
Fixed Cast Time: 0.5
• Deals Neutral M. DMG equal to 25% of an enemy's current HP and absorbs 50% of the damage dealt to heal the user. When it is effective on MVP and Mini Monsters, the HP loss will decrease to a fixed amount, and there will be no bonus lifesteal.
Lvl: 4
Attack
Magic
CD: 2 sec
Skill Delay: 1.5 sec
SP: 100
Range: 5
Cast Time: 3
Fixed Cast Time: 0.5
• Deals Neutral M. DMG equal to 20% of an enemy's current HP and absorbs 45% of the damage dealt to heal the user. When it is effective on MVP and Mini Monsters, the HP loss will decrease to a fixed amount, and there will be no bonus lifesteal.
Lvl: 3
Attack
Magic
CD: 2 sec
Skill Delay: 1.5 sec
SP: 100
Range: 5
Cast Time: 3
Fixed Cast Time: 0.5
• Deals Neutral M. DMG equal to 15% of an enemy's current HP and absorbs 40% of the damage dealt to heal the user. When it is effective on MVP and Mini Monsters, the HP loss will decrease to a fixed amount, and there will be no bonus lifesteal.
Lvl: 2
Attack
Magic
CD: 2 sec
Skill Delay: 1.5 sec
SP: 100
Range: 5
Cast Time: 3
Fixed Cast Time: 0.5
• Deals Neutral M. DMG equal to 10% of an enemy's current HP and absorbs 35% of the damage dealt to heal the user. When it is effective on MVP and Mini Monsters, the HP loss will decrease to a fixed amount, and there will be no bonus lifesteal.
Lvl: 1
Attack
Magic
CD: 2 sec
Skill Delay: 1.5 sec
SP: 100
Range: 5
Cast Time: 3
Fixed Cast Time: 0.5
• Deals Neutral M. DMG equal to 5% of an enemy's current HP and absorbs 30% of the damage dealt to heal the user. When it is effective on MVP and Mini Monsters, the HP loss will decrease to a fixed amount, and there will be no bonus lifesteal.
Aesir
• HP Absorb - Enhance [HP Absorb]’s percentage of target’s HP absorbed +4%
Formula
function CommonFun.calcDamage_2304(srcUser, targetUser, params, damageParam, logger)
local Luk = srcUser:GetProperty("Luk")
local Int = srcUser:GetProperty("Int")
local Vit = srcUser:GetProperty("Vit")
local MAtk = srcUser:GetProperty("MAtk")
local MAtkPer = srcUser:GetProperty("MAtkPer")
local target_Hp = targetUser:GetProperty("Hp")
local MDamIncrease = CommonFun.calcMDamIncrease(srcUser, targetUser)
local IgnoreMDef = srcUser:GetProperty("IgnoreMDef")
if 1 <= IgnoreMDef then
IgnoreMDef = 1
end
local srcAtkElement = CommonFun.GetUserAtkAttr(srcUser, targetUser, params, damageParam)
local targetDefElement = targetUser:GetProperty("DefAttr")
local elementparam2 = CommonFun.CalcElementParam2(srcUser, targetUser, params, damageParam, logger)
local MDef2 = targetUser:GetProperty("MDef")
local MDefPer2 = targetUser:GetProperty("MDefPer")
local Vit2 = targetUser:GetProperty("Vit")
local VitPer2 = targetUser:GetProperty("VitPer")
local Int2 = targetUser:GetProperty("Int")
local IntPer2 = targetUser:GetProperty("IntPer")
local MDamReduc2 = CommonFun.calcMDamReDuc(srcUser, targetUser)
local RefineMDamReduc = targetUser:GetProperty("RefineMDamReduc")
local damChangePer = damageParam.damChangePer
local MDefReduc = CommonFun.CalcMDef(srcUser, targetUser)
local Num1 = srcUser:GetRunePoint(24070_AESIR_HP_ABSORB_S_PERCENTAGE_OF_TARGET_S_HP_ABSORBED_4)
local RuneDamage = Num1 * 4
if targetUser.boss == true or targetUser.mini == true or targetUser:HasBuffID(160000_BOSS_IMMUNE_EFFECT_:MAX_STACK_0) then
target_Hp = 0
end
local A = target_Hp * MDefReduc * (1 - MDamReduc2) * (damChangePer + RuneDamage) / 100 * (1 - RefineMDamReduc) * (1 + MDamIncrease) * CommonFun.calcMagicElement(srcUser, targetUser, params, damageParam) * elementparam2 - Vit2 / 2 * (1 + VitPer2) - Int2 * (1 + IntPer2)
if A <= 1 then
return 1
end
return A
end
Enemy 6
function CommonFun.calcBuff_6(srcUser, targetUser, a, b, c, d, lv)
if srcUser == nil or targetUser == nil then
return 0
end
local MaxHp = targetUser:GetProperty("MaxHp")
local A = MaxHp * (a + c) + b
if 0 < A or a == 0 then
return A
end
if srcUser:GetNpcID() == 0 and targetUser:HasBuffID(160000_BOSS_IMMUNE_EFFECT_:MAX_STACK_0) and targetUser.boss == false and targetUser.mini == false then
return 0
end
if srcUser:GetNpcID() == 0 and (targetUser.boss or targetUser.mini) then
local Vit = srcUser:GetProperty("Vit")
local MAtk = srcUser:GetProperty("MAtk")
local MAtkPer = srcUser:GetProperty("MAtkPer")
local Refine = srcUser:GetProperty("Refine")
local MRefine = srcUser:GetProperty("MRefine")
local Def2 = targetUser:GetProperty("Def")
local DefPer2 = targetUser:GetProperty("DefPer")
local MDef2 = targetUser:GetProperty("MDef")
local MDefPer2 = targetUser:GetProperty("MDefPer")
local Vit2 = targetUser:GetProperty("Vit")
local VitPer2 = targetUser:GetProperty("VitPer")
local DamReduc2 = CommonFun.calcDamReDuc(srcUser, targetUser)
local RefineDamReduc = targetUser:GetProperty("RefineDamReduc")
local Int2 = targetUser:GetProperty("Int")
local IntPer2 = targetUser:GetProperty("IntPer")
local MDamReduc2 = CommonFun.calcMDamReDuc(srcUser, targetUser)
local RefineMDamReduc = targetUser:GetProperty("RefineMDamReduc")
local Str = srcUser:GetProperty("Str")
local Dex = srcUser:GetProperty("Dex")
local Luk = srcUser:GetProperty("Luk")
local Atk = srcUser:GetProperty("Atk")
local AtkPer = srcUser:GetProperty("AtkPer")
local DamIncrease = srcUser:GetProperty("DamIncrease")
local MDamIncrease = CommonFun.calcMDamIncrease(srcUser, targetUser)
local IgnoreDef = srcUser:GetProperty("IgnoreDef")
if 1 <= IgnoreDef then
IgnoreDef = 1
end
local IgnoreMDef = srcUser:GetProperty("IgnoreMDef")
if 1 <= IgnoreMDef then
IgnoreMDef = 1
end
local raceparam = 1
local srcRace = srcUser.race
local targetRace = targetUser.race
if targetUser:HasBuffID(139410_TWO_FACE_DEMON_KING_HUMAN_:MAX_STACK_0) then
targetRace = 3
end
if srcUser:HasBuffID(139411_TWO_FACE_DEMON_KING_DEMON_:MAX_STACK_0) then
srcRace = 3
end
if srcUser:HasBuffID(49320_RACIAL_ANCIENT_RELICS_PERMANENT_:MAX_STACK_0) and srcUser:HasBuffID(49325_RACIAL_ANCIENT_RELICS_CD_:MAX_STACK_0) then
elseif srcUser:HasBuffID(49320_RACIAL_ANCIENT_RELICS_PERMANENT_:MAX_STACK_0) then
targetRace = 2
end
if targetUser:HasBuffID(49320_RACIAL_ANCIENT_RELICS_PERMANENT_:MAX_STACK_0) and targetUser:HasBuffID(49325_RACIAL_ANCIENT_RELICS_CD_:MAX_STACK_0) then
elseif targetUser:HasBuffID(49320_RACIAL_ANCIENT_RELICS_PERMANENT_:MAX_STACK_0) then
srcRace = 2
end
if nil == CommonFun.RaceProps[targetRace] then
return 0
end
if nil == CommonFun.RaceProps[srcRace] then
return 0
end
local raceInc = srcUser:GetProperty(CommonFun.RaceProps[targetRace][1])
local raceRed = targetUser:GetProperty(CommonFun.RaceProps[srcRace][2])
local raceparam = 1 + raceInc - raceRed
if raceparam <= 0.1 then
raceparam = 0.1
end
local MAtkFinal = MAtk * (1 + MAtkPer) * CommonFun.ShapeCorrection(srcUser, targetUser) * raceparam
local AtkFinal = Atk * (1 + AtkPer) * CommonFun.ShapeCorrection(srcUser, targetUser) * raceparam
if MAtkFinal <= AtkFinal then
local DefReduc = CommonFun.CalcDef(srcUser, targetUser)
A = (AtkFinal * DefReduc * (1 - DamReduc2) + Refine) * a * 100 * (1 - RefineDamReduc) * (1 + DamIncrease) - Vit2 * (1 + VitPer2) + b
else
local MDefReduc = CommonFun.CalcMDef(srcUser, targetUser)
A = (MAtkFinal * MDefReduc * (1 - MDamReduc2) + MRefine) * a * 100 * (1 - RefineMDamReduc) * (1 + MDamIncrease) - Vit2 / 2 * (1 + VitPer2) - Int2 * (1 + IntPer2) + b
end
end
local AttrFunction = srcUser:GetProperty("AttrFunction")
local bitfunc = CommonFun.getBits(AttrFunction)
if (targetUser.boss or targetUser.mini or targetUser.changelinepunish) and (targetUser.zoneType == 1 or targetUser.zoneType == 22) and targetUser.noPunishBoss == false and bitfunc[CommonFun.AttrFunction.JustInViceZone] == 1 and targetUser.isBossFromBranch == false then
A = 0
end
if CommonFun.checkAttrFunctionMiss(targetUser, srcUser) then
A = 0
end
if targetUser.boss and targetUser.zoneType == 22 and CommonFun.CheckStormBossMiss(targetUser, srcUser) then
A = 0
end
if targetUser:GetNpcID() == 30043_YEAR or targetUser:GetNpcID() == 280303_WILDNESS_SPIRIT_BEAST or targetUser:GetNpcID() == 56008_GOMORA or targetUser:GetNpcID() == 56009_BALTAN or targetUser:GetNpcID() == 56010_GOLZA or targetUser:GetNpcID() == 56011_BEMSTAR or targetUser:GetNpcID() == 56012_ELEKING or targetUser:GetNpcID() == 56013_KING_JOE then
A = -1
end
if targetUser:DamageAlways1() then
A = -1
end
return A
end
Self
{
"id": 116873,
"BuffDesc": "VIT increases",
"BuffIcon": "skillbuff_1168001",
"BuffName": "HP Absorb [Peak 2.0]",
"BuffRate": {
"Odds": 100
},
"IconType": 1,
"BuffEffect": {
"Vit": {
"a": 3,
"b": -15,
"type": 1
},
"type": "AttrChange"
}
}
Enemy
{
"id": 116872,
"BuffDesc": "Decrease VIT",
"BuffIcon": "skillbuff_1168001",
"BuffName": "HP Absorb [Peak 2.0]",
"BuffRate": {
"Odds": 100
},
"IconType": 1,
"BuffEffect": {
"Vit": {
"a": -3,
"b": 15,
"type": 1
},
"type": "AttrChange"
}
}
Enemy
{
"id": 116905,
"BuffName": "HP Absorb (MVP)",
"BuffRate": {
"Odds": {
"type": 3076
}
},
"BuffEffect": {
"Hp": {
"a": -0.25,
"b": 0,
"type": 6
},
"type": "HSPChange"
}
}
Formula
{
"CD": 2,
"id": 1168010,
"Buff": {
"self": [
116873
],
"enemy": [
116872,
116905
]
},
"Cost": 1,
"Desc": [
{
"id": 1168001,
"params": [
15,
15
]
}
],
"Icon": "skill_1168001",
"Camps": "Enemy",
"Level": 10,
"Logic": "SkillLockedTarget",
"Damage": [
{
"type": 2304,
"damChangePer": 25,
"elementparam": 5
}
],
"DescId": "##1301899",
"NameZh": "##149438",
"CastAct": "reading",
"DamTime": {
"type": 1,
"value": 2
},
"DelayCD": 1.5,
"Fire_EP": 3,
"SE_cast": "Skill/Magic_cast",
"Pvp_buff": {
"self": [
116873
],
"enemy": [
116872,
116905
]
},
"RollType": 2,
"AttackAct": [
"use_skill"
],
"Attack_EP": 3,
"Lead_Type": {
"CCT": 0.5,
"FCT": 3,
"type": 2
},
"SE_attack": "Skill/skill_magic_understand_attack_01",
"SkillCost": {
"sp": 100
},
"SkillType": "Attack",
"Target_EP": 3,
"DamageType": 2,
"Logic_Param": {
"isSuckSkill": 1
},
"Launch_Range": 5
}