Skill #144001

Heal

Restore ([8df936]%s[-]* Rounded ( (BaseLv+INT) /[8df936]%s[-]) ) HP to self and allies. When the targets are undead monsters, the skill deals Holy Damage: [8df936]%s%%[-] Healing Value/2

Level 20

Used to be a trusted man of a former king in Glast Heim, he was overly kind which had made him an easy tool for his friends. He was the one that produced evil. It was already too late when he realized that.

Cost 1 | Heal

ID 144020

Level 19

Used to be a trusted man of a former king in Glast Heim, he was overly kind which had made him an easy tool for his friends. He was the one that produced evil. It was already too late when he realized that.

Cost 1 | Heal

ID 144019

Level 18

Used to be a trusted man of a former king in Glast Heim, he was overly kind which had made him an easy tool for his friends. He was the one that produced evil. It was already too late when he realized that.

Cost 1 | Heal

ID 144018

Level 17

Used to be a trusted man of a former king in Glast Heim, he was overly kind which had made him an easy tool for his friends. He was the one that produced evil. It was already too late when he realized that.

Cost 1 | Heal

ID 144017

Level 16

Used to be a trusted man of a former king in Glast Heim, he was overly kind which had made him an easy tool for his friends. He was the one that produced evil. It was already too late when he realized that.

Cost 1 | Heal

ID 144016

Level 15

Used to be a trusted man of a former king in Glast Heim, he was overly kind which had made him an easy tool for his friends. He was the one that produced evil. It was already too late when he realized that.

Cost 1 | Heal

ID 144015

Level 14

Used to be a trusted man of a former king in Glast Heim, he was overly kind which had made him an easy tool for his friends. He was the one that produced evil. It was already too late when he realized that.

Cost 1 | Heal

ID 144014

Level 13

Used to be a trusted man of a former king in Glast Heim, he was overly kind which had made him an easy tool for his friends. He was the one that produced evil. It was already too late when he realized that.

Cost 1 | Heal

ID 144013

Level 12

Used to be a trusted man of a former king in Glast Heim, he was overly kind which had made him an easy tool for his friends. He was the one that produced evil. It was already too late when he realized that.

Cost 1 | Heal

ID 144012

Level 11

Used to be a trusted man of a former king in Glast Heim, he was overly kind which had made him an easy tool for his friends. He was the one that produced evil. It was already too late when he realized that.

Cost 1 | Heal

ID 144011

Level 10

Used to be a trusted man of a former king in Glast Heim, he was overly kind which had made him an easy tool for his friends. He was the one that produced evil. It was already too late when he realized that.

Cost 1 | Heal

ID 144010

Level 9

Used to be a trusted man of a former king in Glast Heim, he was overly kind which had made him an easy tool for his friends. He was the one that produced evil. It was already too late when he realized that.

Cost 1 | Heal

ID 144009

Level 8

Used to be a trusted man of a former king in Glast Heim, he was overly kind which had made him an easy tool for his friends. He was the one that produced evil. It was already too late when he realized that.

Cost 1 | Heal

ID 144008

Level 7

Used to be a trusted man of a former king in Glast Heim, he was overly kind which had made him an easy tool for his friends. He was the one that produced evil. It was already too late when he realized that.

Cost 1 | Heal

ID 144007

Level 6

Used to be a trusted man of a former king in Glast Heim, he was overly kind which had made him an easy tool for his friends. He was the one that produced evil. It was already too late when he realized that.

Cost 1 | Heal

ID 144006

Level 5

Used to be a trusted man of a former king in Glast Heim, he was overly kind which had made him an easy tool for his friends. He was the one that produced evil. It was already too late when he realized that.

Cost 1 | Heal

ID 144005

Level 4

Used to be a trusted man of a former king in Glast Heim, he was overly kind which had made him an easy tool for his friends. He was the one that produced evil. It was already too late when he realized that.

Cost 1 | Heal

ID 144004

Level 3

Used to be a trusted man of a former king in Glast Heim, he was overly kind which had made him an easy tool for his friends. He was the one that produced evil. It was already too late when he realized that.

Cost 1 | Heal

ID 144003

Level 2

Used to be a trusted man of a former king in Glast Heim, he was overly kind which had made him an easy tool for his friends. He was the one that produced evil. It was already too late when he realized that.

Cost 1 | Heal

ID 144002

Level 1

Used to be a trusted man of a former king in Glast Heim, he was overly kind which had made him an easy tool for his friends. He was the one that produced evil. It was already too late when he realized that.

Cost 1 | Heal

ID 144001

Formulas & functions

CommonFun links

HealLv 1-20 | buff | Buffs 45000110

Formula source

function CommonFun.calcBuff_440(srcUser, targetUser, a, b, c, d, lv, damage)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local Num1 = srcUser:GetRunePoint(51002)
  local Num2 = srcUser:GetRunePoint(51007)
  local Num3 = srcUser:GetRunePoint(51008)
  local RuneRate = Num1 + Num2 + Num3
  local A = RuneRate * 100
  if A <= 0 then
    return 0
  end
  return A
end
HealLv 1-20 | damage

Formula source

function CommonFun.calcDamage_5101(srcUser, targetUser, params, damageParam, logger)
  local BaseLv = srcUser.BaseLv
  local Int = srcUser:GetProperty("Int")
  local HolyAtk = srcUser:GetProperty("HolyAtk")
  local HealEncPer = srcUser:GetProperty("HealEncPer")
  local enemy = srcUser:IsEnemy(targetUser)
  local MDamIncrease = CommonFun.calcMDamIncrease(srcUser, targetUser)
  local MAtk = srcUser:GetProperty("MAtk")
  local MAtkPer = srcUser:GetProperty("MAtkPer")
  local skilllv_1 = srcUser:GetLernedSkillLevel(50034)
  local skilllv_2 = srcUser:GetLernedSkillLevel(50035)
  local Num1 = srcUser:GetRunePoint(51001)
  local Num2 = srcUser:GetRunePoint(51011)
  local RuneDamage = Num1 * 0.02 + Num2 * 0.02 + 1
  local c = 1
  if srcUser:HasBuffID(51580) then
    c = 1.1
  end
  local RefineLv = srcUser:GetEquipedRefineLv(1)
  local Angel = 1
  if srcUser:HasBuffID(40430) then
    Angel = 1 + RefineLv / 100
  end
  if srcUser:HasBuffID(90001813) then
    if 5 <= RefineLv and RefineLv < 10 then
      Angel = Angel + 0.03
    elseif 10 <= RefineLv then
      Angel = Angel + 0.03 + 0.07
    end
  end
  if srcUser:HasBuffID(90001816) then
    if 5 <= RefineLv and RefineLv < 10 then
      Angel = Angel + 0.02
    elseif 10 <= RefineLv then
      Angel = Angel + 0.02 + 0.03
    end
  end
  local equipRing = srcUser:getEquip(CommonFun.PackType.EPACKTYPE_EQUIP, CommonFun.EquipPos.EEQUIPPOS_SHIELD)
  if equipRing.id == 42579 or equipRing.id == 142579 then
    if 5 > equipRing.refinelv then
      Angel = Angel + equipRing.refinelv / 100
    elseif 5 <= equipRing.refinelv and 10 > equipRing.refinelv then
      Angel = Angel + 0.05 + equipRing.refinelv / 100
    elseif 10 <= equipRing.refinelv then
      Angel = Angel + 0.05 + 0.1 + equipRing.refinelv / 100
    end
  end
  local equipRingSD = srcUser:getEquip(CommonFun.PackType.EPACKTYPE_SHADOWEQUIP, CommonFun.EquipPos.EEQUIPPOS_SHIELD)
  if equipRingSD.id == 42579 or equipRingSD.id == 142579 then
    if 5 > equipRingSD.refinelv then
      Angel = Angel + equipRingSD.refinelv / 100 * equipRingSD.quench_per / 100
    elseif 5 <= equipRingSD.refinelv and 10 > equipRingSD.refinelv then
      Angel = Angel + (0.05 + equipRingSD.refinelv / 100) * equipRingSD.quench_per / 100
    elseif 10 <= equipRingSD.refinelv then
      Angel = Angel + (0.15000000000000002 + equipRingSD.refinelv / 100) * equipRingSD.quench_per / 100
    end
  end
  local srcAtkElement = CommonFun.GetUserAtkAttr(srcUser, params, damageParam)
  local targetDefElement = targetUser:GetProperty("DefAttr")
  local BeHealEncPer2 = targetUser:GetProperty("BeHealEncPer")
  local race2 = targetUser.race
  if srcUser:HasBuffID(49320) and srcUser:HasBuffID(49325) then
  elseif srcUser:HasBuffID(49320) then
    race2 = 2
  end
  local DefAttr2 = targetUser:GetProperty("DefAttr")
  local AttrEffect = targetUser:GetProperty("AttrEffect2")
  local bits = CommonFun.getBits(AttrEffect)
  local damChangePer = damageParam.damChangePer
  local damChangePer1 = damageParam.damChangePer1
  local elementparam2 = CommonFun.CalcElementParam2(srcUser, targetUser, params, damageParam, logger)
  local A = ((math.floor((BaseLv + Int) / 10) * damChangePer + 100 + skilllv_1 * 50 + skilllv_2 * 50 + MAtk * (1 + MAtkPer) * 0.5) * (1 + HealEncPer) * (1 + BeHealEncPer2) + damChangePer1) * -1 * (1 + HolyAtk) * RuneDamage * c * Angel
  local skillID, skillLevel = CommonFun.UnmergeSkillID(params.skillIDAndLevel)
  if skillID == 11 then
    local BaseLv = srcUser.BaseLv
    A = (100 + BaseLv * 5 + skilllv_1 * 200 + skilllv_2 * 200) * (1 + HealEncPer) * (1 + BeHealEncPer2) * -1 * (1 + HolyAtk)
  end
  if skillID == 1224 or skillID == 5905 then
    local skilllv_3 = srcUser:GetLernedSkillLevel(144)
    local damChangePer = 4
    if skilllv_3 <= 10 then
      damChangePer = 4 + skilllv_3 * 8
    elseif 10 < skilllv_3 then
      damChangePer = 64 + skilllv_3 * 2
    end
    local MaxHp = targetUser:GetProperty("MaxHp")
    local Hp = targetUser:GetProperty("Hp")
    local Num = srcUser:GetRunePoint(54030)
    local RuneDamage1 = (MaxHp - Hp) * 0.02 * Num
    local healper = 1
    if skillID == 5905 then
      RuneDamage1 = 0
      local skilllv_sg = srcUser:GetLernedSkillLevel(5900)
      healper = skilllv_sg * 0.2 + 1.5
    end
    local GemValue = srcUser:GetGemValue(51011)
    local GemDam = 1 + GemValue / 100000
    A = (math.floor((BaseLv + Int) / 10) * damChangePer + 100 + skilllv_1 * 50 + skilllv_2 * 50 + MAtk * (1 + MAtkPer) * 0.5) * damChangePer1 * (1 + HealEncPer) * (1 + BeHealEncPer2) * -1 * (1 + HolyAtk) * RuneDamage * c * Angel * GemDam * healper - RuneDamage1 * (1 + BeHealEncPer2)
  end
  if targetUser:HasBuffID(41100050) then
    local MaxHp = targetUser:GetProperty("MaxHp")
    local Hp = targetUser:GetProperty("Hp")
    local Num1 = targetUser:GetBuffLayer(41100050)
    if Hp < MaxHp * (0.15 * Num1) then
      A = A * 3
    end
  end
  local RateNum = 0
  local profressionID = srcUser:GetProfressionID()
  if srcUser:HasBuffID(35381) and (profressionID == 51 or profressionID == 52 or profressionID == 53 or profressionID == 54 or profressionID == 55 or profressionID == 615) then
    RateNum = 15
  end
  local HealtoDam = targetUser:GetBuffLevel(129100)
  local DamRatio = 1
  if targetUser:HasBuffID(129100) then
    DamRatio = -0.1 * HealtoDam
  end
  if skillID == 1224 and srcUser:HasBuffID(22000530) then
    DamRatio = 1
    if 0 < A then
      A = 0
    end
  end
  local HealReduce = targetUser:GetBuffLevel(136500)
  if targetUser:HasBuffID(136500) then
    DamRatio = 1 - (0.2 + 0.03 * HealReduce)
  end
  if enemy then
    if DefAttr2 == 9 then
      return A / 2 * CommonFun.calcMagicElement(srcUser, targetUser, params, damageParam) * elementparam2 * -1 * (1 + MDamIncrease)
    else
      return 0, 0
    end
  elseif DefAttr2 == 9 or bits[CommonFun.AttrEffect.PoisinDamNoUse] == 1 then
    return -1
  elseif CommonFun.IsInRate(RateNum, srcUser:GetRandom()) then
    return A * 2 * DamRatio
  else
    return A * DamRatio
  end
end

Skill JSON (Level 20)

{
  "id": 144020,
  "NameZh": "治愈术",
  "Level": 20,
  "Icon": "skill_144001",
  "Cost": 1,
  "PeakLevel": 10,
  "Desc": [
    {
      "id": 144000,
      "params": [
        104,
        10,
        100
      ]
    }
  ],
  "RollType": 2,
  "DamageType": 2,
  "SkillType": "Heal",
  "Camps": "Friend|Enemy",
  "Launch_Range": 9,
  "Fire_EP": 3,
  "Target_EP": 2,
  "Attack_EP": 3,
  "SkillCost": {
    "sp": 70
  },
  "DelayCD": 1,
  "AutoCondition": [
    {
      "no_target": 1,
      "priority": 1,
      "teamvalue": 70,
      "type": 5
    },
    {
      "no_target": 1,
      "priority": 1,
      "type": 3,
      "value": 70
    }
  ],
  "NoTargetAutoCast": 1,
  "Logic": "SkillNone",
  "Logic_Param": {
    "include_friendnpc": 1,
    "include_self": 1,
    "select_target": 1
  },
  "Damage": [
    {
      "damChangePer": 104,
      "damChangePer1": 0,
      "elementparam": 6,
      "type": 5101
    }
  ],
  "DamTime": {
    "type": 1,
    "value": 1
  },
  "Buff": {
    "friend": [
      45000110
    ],
    "self": [
      45000110
    ],
    "team": [
      45000110
    ]
  },
  "Pvp_buff": {
    "friend": [
      45000110
    ],
    "self": [
      45000110
    ],
    "team": [
      45000110
    ]
  },
  "AttackAct": [
    "use_magic"
  ],
  "SE_cast": "Common/Magic_cast",
  "SE_hit": "Common/Heal",
  "description": {
    "chinesesimplified": "曾经是古城某位先王身边的亲信,无知的仁善使他屡遭朋友利用,并亲手造就了邪恶的诞生。当悔悟之时,为时已晚。",
    "english": "Used to be a trusted man of a former king in Glast Heim, he was overly kind which had made him an easy tool for his friends. He was the one that produced evil. It was already too late when he realized that.",
    "german": "Früher war er ein zuverlässiger Mann eines ehemaligen Königs in Glast Heim,er war übermäßig freundlich,was ihn für seine Freunde zu einem einfachen Werkzeug gemacht hatte. Er war derjenige,der das Böse hervorgebracht hat. Es war schon zu spät,als er das erkannte.",
    "portuguese": "Era uma das pessoas de confiança do rei. A sua bondade imprudente o levou a ser usado pelos seus amigos,originando resultados malignos. Em épocas de arrependimento,já terá sido tarde demais.",
    "spanish": "Solía ser un hombre de confianza de un antiguo rey en Glast Heim,era demasiado amable,lo que le hacía facilmente manipulable para sus amigos. Él fue el que produjo el mal. Ya era demasiado tarde cuando se dio cuenta."
  }
}