Level 1
##2711000
Skill #2718001
Level 1
##2711000
Formulas & functions
Formula source
-- Lua source unavailable --Formula source
function CommonFun.calcBuff_8250(srcUser, targetUser, a, b, c, d, lv)
if srcUser == nil or targetUser == nil then
return 0
end
local skilllv = srcUser:GetLernedSkillLevel(2701)
local Value = srcUser:GetGemValue(207121)
local A = skilllv * 2 + 1 + Value / 1000
if 7 <= skilllv and srcUser:HasBuffID(137593) then
A = A + 10
end
return A
endFormula source
function CommonFun.calcBuff_8251(srcUser, targetUser, a, b, c, d, lv)
if srcUser == nil or targetUser == nil then
return 0
end
local skilllv = srcUser:GetLernedSkillLevel(2701)
local A = skilllv * a + b
if 7 <= skilllv and srcUser:HasBuffID(137593) then
A = A + 10
end
return A
endFormula source
function CommonFun.calcDamage_67501(srcUser, targetUser, params, damageParam, logger)
local Int = srcUser:GetProperty("Int")
local Vit = srcUser:GetProperty("Vit")
local MAtk = srcUser:GetProperty("MAtk")
local MAtkPer = srcUser:GetProperty("MAtkPer")
local MDamIncrease = CommonFun.calcMDamIncrease(srcUser, targetUser)
local IgnoreMDef = srcUser:GetProperty("IgnoreMDef")
if 1 <= IgnoreMDef then
IgnoreMDef = 1
end
local MRefine = srcUser:GetProperty("MRefine")
local RangeDam = srcUser:GetProperty("RangeDam")
local srcAtkElement = CommonFun.GetUserAtkAttr(srcUser, params, damageParam)
local targetDefElement = targetUser:GetProperty("DefAttr")
local elementparam2 = CommonFun.CalcElementParam2(srcUser, targetUser, params, damageParam, logger)
local raceparam = CommonFun.CalcRaceParam(srcUser, targetUser, params, damageParam, logger)
local raceparam2 = CommonFun.CalcRaceParam2(srcUser, targetUser, params, damageParam, logger)
local bossparam = CommonFun.CalcBossParam(srcUser, targetUser, params, damageParam, logger)
local bossparam2 = CommonFun.CalcBossParam2(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 BaseMAtk = Int + math.floor(Int * Int / 100)
local MAtkFinal = ((MAtk - BaseMAtk) * (1 + MAtkPer) + BaseMAtk) * raceparam * bossparam * bossparam2
local MDefReduc = CommonFun.CalcMDef(srcUser, targetUser)
local skillID, skillLevel = CommonFun.UnmergeSkillID(params.skillIDAndLevel)
if damageParam.elementparam == 10 then
local skilllv_ds = srcUser:GetLernedSkillLevel(2713)
damChangePer = skilllv_ds
end
local A = ((MAtkFinal * MDefReduc * (1 - MDamReduc2) + MRefine) * (1 - RefineMDamReduc) * damChangePer * (1 + MDamIncrease) * CommonFun.calcMagicElement(srcUser, targetUser, params, damageParam) * elementparam2 - Vit2 / 2 * (1 + VitPer2) - Int2 * (1 + IntPer2)) * (1 + RangeDam)
if skillID == 2718 then
local Num = srcUser:GetBuffLayer(137570)
local count = params.hitedCount
if count == 1 then
A = A * (1 + Num * 0.5)
end
end
if skillID == 2706 then
local GemValue = srcUser:GetGemValue(207141)
A = A * (1 + GemValue / 100000)
end
if A <= 1 then
return 1
end
if srcUser:HasBuffID(137540) then
local skilllv_an = srcUser:GetLernedSkillLevel(2704)
return A * (1 + skilllv_an * 0.2), CommonFun.DamageType.Crit
end
return A
endFormula source
function CommonFun.calcDamage_80(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 Numxp = srcUser:GetRunePoint(82001)
local NormalAtk = srcUser:GetProperty("NormalAtk")
NormalAtk = NormalAtk + (3 + 0.3 * Numxp) * Int
local MAtkPer = srcUser:GetProperty("MAtkPer")
local MDamIncrease = CommonFun.calcMDamIncrease(srcUser, targetUser)
local IgnoreMDef = srcUser:GetProperty("IgnoreMDef")
if 1 <= IgnoreMDef then
IgnoreMDef = 1
end
local Num1 = srcUser:GetBuffLayer(90000952)
local Num2 = srcUser:GetBuffLayer(90000953)
local Num3 = srcUser:GetBuffLayer(90000954)
local Num24 = 0
local RefineLv2 = srcUser:GetEquipedRefineLv(2)
if srcUser:HasBuffID(90000959) then
Num24 = Num24 + RefineLv2 * 0.01
end
local Num26 = 0
local equipRing = srcUser:getEquip(CommonFun.PackType.EPACKTYPE_EQUIP, CommonFun.EquipPos.EEQUIPPOS_ARMOUR)
if equipRing.id == 42126 or equipRing.id == 142126 then
Num26 = Num26 + equipRing.refinelv * 0.01 + 0.1
end
if (equipRing.id == 42126 or equipRing.id == 142126) and equipRing.refinelv >= 15 then
Num26 = Num26 + 0.05
end
local equipRingSD = srcUser:getEquip(CommonFun.PackType.EPACKTYPE_SHADOWEQUIP, CommonFun.EquipPos.EEQUIPPOS_ARMOUR)
if equipRingSD.id == 42126 or equipRingSD.id == 142126 then
Num26 = Num26 + (equipRingSD.refinelv * 0.01 + 0.1) * equipRingSD.quench_per / 100
end
if (equipRingSD.id == 42126 or equipRingSD.id == 142126) and equipRingSD.refinelv >= 15 then
Num26 = Num26 + 0.05 * equipRingSD.quench_per / 100
end
local Num4 = srcUser:GetBuffLayer(90000942)
local Num5 = srcUser:GetBuffLayer(90000944)
local Num25 = 0
local RefineLv4 = srcUser:GetEquipedRefineLv(4)
if srcUser:HasBuffID(90000949) and 10 <= RefineLv4 then
Num25 = 1
end
local Num27 = 0
local equipRingshoes = srcUser:getEquip(CommonFun.PackType.EPACKTYPE_EQUIP, CommonFun.EquipPos.EEQUIPPOS_SHOES)
if equipRingshoes.id == 43587 or equipRingshoes.id == 143587 then
if equipRingshoes.refinelv < 5 then
Num27 = Num27 + 10
elseif equipRingshoes.refinelv >= 5 and equipRingshoes.refinelv < 10 then
Num27 = Num27 + 10 + 5
elseif equipRingshoes.refinelv >= 10 and equipRingshoes.refinelv < 15 then
Num27 = Num27 + 10 + 5 + 5
elseif equipRingshoes.refinelv >= 15 then
Num27 = Num27 + 10 + 5 + 5 + 5
end
end
local equipRingSDshoes = srcUser:getEquip(CommonFun.PackType.EPACKTYPE_SHADOWEQUIP, CommonFun.EquipPos.EEQUIPPOS_SHOES)
if equipRingSDshoes.id == 43587 or equipRingSDshoes.id == 143587 then
if equipRingSDshoes.refinelv < 5 then
Num27 = Num27 + 10 * equipRingSDshoes.quench_per / 100
elseif equipRingSDshoes.refinelv >= 5 and equipRingSDshoes.refinelv < 10 then
Num27 = Num27 + 15 * equipRingSDshoes.quench_per / 100
elseif equipRingSDshoes.refinelv >= 10 and equipRingSDshoes.refinelv < 15 then
Num27 = Num27 + 20 * equipRingSDshoes.quench_per / 100
elseif equipRingSDshoes.refinelv >= 15 then
Num27 = Num27 + 25 * equipRingSDshoes.quench_per / 100
end
end
local skilllv_1 = srcUser:GetLernedSkillLevel(1324)
local CriDam = 0
if 0 < skilllv_1 and skilllv_1 <= 5 then
CriDam = 0.1
elseif 5 < skilllv_1 then
CriDam = 0.1 + (skilllv_1 - 5) * 0.05
end
local Num_bs = srcUser:GetRunePoint(82024)
local GemValue1 = srcUser:GetGemValue(82101)
local GemValue2 = srcUser:GetGemValue(82102)
local RuneDamage = 1 + CriDam + 0.03 * Num1 + 0.03 * Num2 + 0.04 * Num3 + 0.05 * Num_bs + GemValue2 / 100000 + Num24 + Num26
local RuneDamage1 = 0
if 0 < Num4 + Num5 + skilllv_1 + Num25 + Num27 then
RuneDamage1 = skilllv_1 + Luk / 3 + Num4 * 5 + Num5 * 5 + GemValue1 / 1000 + Num25 * 5 + Num27
end
local MRefine = srcUser:GetProperty("MRefine")
local srcAtkElement = CommonFun.GetUserAtkAttr(srcUser, params, damageParam)
local targetDefElement = targetUser:GetProperty("DefAttr")
local elementparam2 = CommonFun.CalcElementParam2(srcUser, targetUser, params, damageParam, logger)
local raceparam = CommonFun.CalcRaceParam(srcUser, targetUser, params, damageParam, logger)
local raceparam2 = CommonFun.CalcRaceParam2(srcUser, targetUser, params, damageParam, logger)
local bossparam = CommonFun.CalcBossParam(srcUser, targetUser, params, damageParam, logger)
local bossparam2 = CommonFun.CalcBossParam2(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 BaseMAtk = Int + math.floor(Int * Int / 100)
local MAtkFinal = ((MAtk - BaseMAtk + NormalAtk) * (1 + MAtkPer) + BaseMAtk) * raceparam * bossparam * bossparam2
local MDefReduc = CommonFun.CalcMDef(srcUser, targetUser)
local A = (MAtkFinal * MDefReduc * (1 - MDamReduc2) + MRefine) * (1 - RefineMDamReduc) * damChangePer * (1 + MDamIncrease) * CommonFun.calcMagicElement(srcUser, targetUser, params, damageParam) * elementparam2 - Vit2 / 2 * (1 + VitPer2) - Int2 * (1 + IntPer2)
local skillID, skillLevel = CommonFun.UnmergeSkillID(params.skillIDAndLevel)
if skillID == 2718 then
local Num = srcUser:GetBuffLayer(137570)
local count = params.hitedCount
if count == 1 then
A = A * (1 + Num * 0.5)
end
end
if MDef2 <= 0 and (srcUser:HasBuffID(42360) or srcUser:HasBuffID(43110) or srcUser:HasBuffLayer(43110, EBUFFERLAYER_SHADOW)) and (srcUser:HasBuffID(41670) or srcUser:HasBuffID(42240)) then
RuneDamage1 = 100
end
local damageType = CommonFun.DamageType.Normal
if CommonFun.IsInRate(RuneDamage1, srcUser:GetRandom()) then
A = A * RuneDamage
damageType = CommonFun.DamageType.Crit
end
if srcUser:HasBuffID(137540) and skillID == 2718 then
local skilllv_an = srcUser:GetLernedSkillLevel(2704)
A = A * (1 + skilllv_an * 0.2)
damageType = CommonFun.DamageType.Crit
end
if A <= 1 then
return 1
end
return A, damageType
endSkill JSON (Level 1)
{
"id": 2718001,
"NameZh": "赤焰吐息",
"Level": 1,
"Icon": "skill_2711001",
"Cost": 1,
"Desc": [
{
"id": 2711000,
"params": "_EmptyTable"
}
],
"RollType": 2,
"Launch_Type": 2,
"DamageType": 2,
"SkillType": "Attack",
"Camps": "Enemy",
"Launch_Range": 7,
"Fire_EP": 3,
"Target_EP": 2,
"Attack_EP": 3,
"Logic": "MultiLockedTarget",
"Logic_Param": {
"emit": {
"effect": "sfx_magicsnake_ryps_bullet_prf,LowFire_B",
"multi_target": true,
"single_fire": true,
"speed": 20,
"type": 1
},
"extra_count_buff": 137570,
"hideClientDamage": 1,
"no_select": 1,
"range": 2,
"range_num": 12
},
"Damage": [
{
"damChangePer": 10,
"elementparam": 4,
"type": 80
},
{
"damChangePer": 0,
"elementparam": 10,
"type": 67501
}
],
"DamTime": {
"type": 1,
"value": 2
},
"Buff": {
"enemy": [
137610
],
"enemy_superposition": [
{
"id": 137621,
"skill": 2703
},
{
"id": 137623,
"skill": 2705
},
{
"id": 137624,
"skill": 2706
},
{
"id": 137625,
"skill": 2707
}
],
"self_superposition": [
{
"id": 137620,
"skill": 2702
},
{
"id": 137622,
"skill": 2704
}
]
},
"Pvp_buff": {
"enemy": [
137610
],
"enemy_superposition": [
{
"id": 137621,
"skill": 2703
},
{
"id": 137623,
"skill": 2705
},
{
"id": 137624,
"skill": 2706
},
{
"id": 137625,
"skill": 2707
}
],
"self_superposition": [
{
"id": 137620,
"skill": 2702
},
{
"id": 137622,
"skill": 2704
}
]
},
"AttackAct": [
"use_skill"
],
"SE_attack": "Skill/skill_hero_snake_fireball_attack_01",
"SE_hit": "Skill/skill_hero_snake_fireball_hit_01",
"description": {
"chinesesimplified": "##2711000",
"english": "##2711000",
"german": "##2711000",
"portuguese": "##2711000",
"spanish": "##2711000"
}
}