Level 10
Is this the one?
Skill #306001
Consumes all SP to deal Neutral P.DMG that equals to P.ATK * ([8df936]%s[-]+remaining SP/[8df936]%s[-])+[8df936]%s[-]+[8df936]%s[-] * [8df936]%s[-]. This damage ignores [8df936]%s%%[-] DMG down effect contributed by race DMG down, elemental DMG down and P.DMG down effects, and ignores DMG down the target gains from skills. Can be used only during Critical Explosion. SP stops replenishing for [8df936]%s[-]s. The Spirit Bomb cost is based on the previous skills used: Cast directly: 5 Spirit Bombs After [Combo Finish] and [Blade Stop]: 4 Spirit Bombs After [Tiger Knuckle Fist]: 3 Spirit Bombs After [Chain Crush Combo]: 1 Spirit Bomb
Level 10
Is this the one?
Level 9
Is this the one?
Level 8
Is this the one?
Level 7
Is this the one?
Level 6
Is this the one?
Level 5
Great!
Level 4
Great!
Level 3
Great!
Level 2
Great!
Level 1
Great!
Formulas & functions
Formula source
function CommonFun.calcBuff_4360(srcUser, targetUser, a, b, c, d, lv)
if srcUser == nil or targetUser == nil then
return 0
end
local RefineLv = srcUser:GetEquipedRefineLv(7)
local Ring1 = srcUser:GetEquipedID(7)
local A = 100
local Sp = srcUser:GetProperty("Sp")
local MaxSp = srcUser:GetProperty("MaxSp")
local xinnian = 0
local skill_xinnian3 = srcUser:GetLernedSkillLevel(6013)
local skill_xinnian1 = srcUser:GetLernedSkillLevel(6011)
if srcUser:HasBuffID(1010211) then
local layer_xinnian = srcUser:GetBuffLayer(1010211)
xinnian = skill_xinnian3 * 3 * (1 + (layer_xinnian - 1) * (0.15 + skill_xinnian1 * 0.05))
A = A - xinnian
end
local GemValue = 0
if Sp < MaxSp * 0.3 then
GemValue = srcUser:GetGemValue(122132)
end
if GemValue ~= 0 then
A = A - GemValue / 1000
end
if Ring1 == 62540 or Ring1 == 162540 then
A = A + RefineLv * a + b
end
return A
endFormula source
function CommonFun.calcBuff_8160(srcUser, targetUser, a, b, c, d, lv)
if srcUser == nil or targetUser == nil then
return 0
end
local A = b
if srcUser:HasBuffID(a) then
A = c
end
return A
endFormula source
function CommonFun.calcDamage_12202(srcUser, targetUser, params, damageParam, logger)
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 Sp = srcUser:GetProperty("Sp")
local MaxSp = srcUser:GetProperty("MaxSp")
local IgnoreDef = 0
local IgnoreDef1 = srcUser:GetProperty("IgnoreDef")
local IgnoreDef2 = srcUser:GetProperty("IgnoreEquipDef")
if targetUser.boss or targetUser.mini then
IgnoreDef = IgnoreDef1
else
IgnoreDef = IgnoreDef1 + IgnoreDef2
end
if 1 <= IgnoreDef then
IgnoreDef = 1
end
local Refine = srcUser:GetProperty("Refine")
local Def2 = targetUser:GetProperty("Def")
local DefPer2 = targetUser:GetProperty("DefPer")
local Vit2 = targetUser:GetProperty("Vit")
local VitPer2 = targetUser:GetProperty("VitPer")
local RefineDamReduc = targetUser:GetProperty("RefineDamReduc")
local damChangePer = damageParam.damChangePer
local damChangePer1 = damageParam.damChangePer1
local xinnian = 0
local xinnian1 = 1
local skill_xinnian3 = srcUser:GetLernedSkillLevel(6013)
local skill_xinnian1 = srcUser:GetLernedSkillLevel(6011)
if srcUser:HasBuffID(1010201) then
local layer_xinnian = srcUser:GetBuffLayer(1010201)
xinnian = skill_xinnian3 * 0.01 * (1 + (layer_xinnian - 1) * (0.15 + skill_xinnian1 * 0.05))
end
if srcUser:HasBuffID(1010221) then
local layer_xinnian1 = srcUser:GetBuffLayer(1010221)
xinnian1 = (skill_xinnian3 * 0.06 + 0.05) * (1 + (layer_xinnian1 - 1) * (0.15 + skill_xinnian1 * 0.05)) + 1
end
local DamSpike = srcUser:GetProperty("DamSpike")
local DamReduc = targetUser:GetProperty("DamReduc")
local PvP_DamReduc = targetUser:GetProperty("DamReduc")
local mapid, maptype = srcUser:GetMapInfo()
if (maptype == 2 or maptype == 4) and targetUser:GetNpcID() == 0 then
PvP_DamReduc = PvP_DamReduc < -1 and -1 or 1 < PvP_DamReduc and 1 or PvP_DamReduc
PvP_DamReduc = math.floor(PvP_DamReduc * 1000) / 1000
PvP_DamReduc = 0.4 * (1 - math.sin(PvP_DamReduc * 3.14 / 2))
else
PvP_DamReduc = 0
end
DamReduc = DamReduc + PvP_DamReduc
ReduceLv = CommonFun.calcSpikeLv(srcUser, targetUser)
local SkillDamReduc = CommonFun.calcSkillDamReduc(srcUser, targetUser)
local DamReduc2 = 1 - (1 + 0.009 * ReduceLv + DamSpike - DamReduc) * SkillDamReduc
local skilllv = srcUser:GetLernedSkillLevel(306)
if 5 < skilllv then
DamReduc2 = 1 - (1 + 0.009 * ReduceLv + DamSpike - math.max(DamReduc - 0.06 * (skilllv - 5) - xinnian, 0))
end
if 0.9 <= DamReduc2 then
DamReduc2 = 0.9
end
local raceparam = CommonFun.CalcRaceParam(srcUser, targetUser, params, damageParam, logger)
local bodyparam = CommonFun.CalcBodyParam(srcUser, targetUser, params, damageParam, logger)
local elementparam = CommonFun.CalcElementParam(srcUser, targetUser, params, damageParam, logger)
local bossparam = CommonFun.CalcBossParam(srcUser, targetUser, params, damageParam, logger)
local raceparam2 = CommonFun.CalcRaceParam2(srcUser, targetUser, params, damageParam, logger)
local bodyparam2 = CommonFun.CalcBodyParam2(srcUser, targetUser, params, damageParam, logger)
local elementparam2 = CommonFun.CalcElementParam2(srcUser, targetUser, params, damageParam, logger)
local bossparam2 = CommonFun.CalcBossParam2(srcUser, targetUser, params, damageParam, logger)
local Num1 = srcUser:GetRunePoint(120100)
local RuneDamage = Num1 * 0.6
local BaseLvDamage = 0
local IBaseLv = srcUser.BaseLv
if srcUser:HasBuffID(42220) then
BaseLvDamage = IBaseLv * 40
end
local a = 0
local b = 0
local c = 0
local d = 0
local Equip1 = srcUser:GetEquipedID(7)
local Equip3 = srcUser:GetEquipedID(5)
local Equip4 = srcUser:GetEquipedID(6)
if Equip1 == 62508 or Equip1 == 162508 then
a = 5
end
if Equip1 == 62540 or Equip1 == 162540 then
a = 5
end
local equipRing = srcUser:getEquip(CommonFun.PackType.EPACKTYPE_EQUIP, CommonFun.EquipPos.EEQUIPPOS_ARMOUR)
if equipRing.id == 42089 or equipRing.id == 142089 then
b = 2
end
local equipRingSD = srcUser:getEquip(CommonFun.PackType.EPACKTYPE_SHADOWEQUIP, CommonFun.EquipPos.EEQUIPPOS_ARMOUR)
if equipRingSD.id == 42089 or equipRingSD.id == 142089 then
b = 2 * equipRingSD.quench_per / 100
end
if Equip3 == 44003 or Equip3 == 144003 then
c = 1.5
end
if Equip4 == 44003 or Equip4 == 144003 then
d = 1.5
end
local equipRing5 = srcUser:getEquip(CommonFun.PackType.EPACKTYPE_EQUIP, CommonFun.EquipPos.EEQUIPPOS_ACCESSORY1)
if equipRing5.id == 44047 or equipRing5.id == 144047 then
c = 2
end
local equipRingSD5 = srcUser:getEquip(CommonFun.PackType.EPACKTYPE_SHADOWEQUIP, CommonFun.EquipPos.EEQUIPPOS_ACCESSORY1)
if equipRingSD5.id == 44047 or equipRingSD5.id == 144047 then
c = 2 * equipRingSD5.quench_per / 100
end
local equipRing6 = srcUser:getEquip(CommonFun.PackType.EPACKTYPE_EQUIP, CommonFun.EquipPos.EEQUIPPOS_ACCESSORY2)
if equipRing6.id == 44047 or equipRing6.id == 144047 then
d = 2
end
local equipRingSD6 = srcUser:getEquip(CommonFun.PackType.EPACKTYPE_SHADOWEQUIP, CommonFun.EquipPos.EEQUIPPOS_ACCESSORY2)
if equipRingSD6.id == 44047 or equipRingSD6.id == 144047 then
d = 2 * equipRingSD6.quench_per / 100
end
local BaseAtk = Str * 2 + math.floor(Str * Str / 100) + math.floor(Dex / 5) + math.floor(Luk / 5)
local BaseAtk1 = Str * 4 + math.floor(Str * Str / 100) * 2 + math.floor(Dex / 5) + math.floor(Luk / 5)
local AtkFinal = ((Atk - BaseAtk) * (1 + AtkPer) * CommonFun.ShapeCorrection(srcUser, targetUser) * bodyparam * elementparam * elementparam2 + BaseAtk1) * raceparam * bossparam * bossparam2
local ShortRangeDamReduc2 = targetUser:GetProperty("ShortRangeDamReduc")
local GemDam = 1
if Sp < MaxSp * 0.3 then
GemValue = srcUser:GetGemValue(122131)
GemDam = 1 + GemValue / 100000
end
local potian = 1
local skillID, skillLevel = CommonFun.UnmergeSkillID(params.skillIDAndLevel)
if skillID == 3303 or skillID == 819 then
local skilllv_potian = srcUser:GetLernedSkillLevel(3303)
local skilllv_fuw = srcUser:GetLernedSkillLevel(819)
local skilllv_lz = srcUser:GetLernedSkillLevel(3329)
local Num_lz = srcUser:GetBuffLayer(100500)
local lz = 1
if 1 <= skilllv_lz then
lz = 1 + Num_lz * skilllv_lz * 0.002
end
damChangePer = 4 * skilllv
damChangePer1 = 5 * skilllv
potian = (math.max(skilllv_potian, skilllv_fuw) * 0.05 + 0.5) * lz
end
local A = (((AtkFinal * (1 - DamReduc2) + Refine) * (damChangePer + Sp / 100 + RuneDamage + a + b + c + d) + 2500 + 500 * damChangePer1) * (1 + DamIncrease - ShortRangeDamReduc2) * (1 - RefineDamReduc) * GemDam + BaseLvDamage) * potian
if targetUser:GetNpcID() ~= 0 and srcUser:HasBuffID(1010220) and srcUser:HasBuffID(1010250) then
A = A * xinnian1
end
if A <= 1 then
return 1
end
return A
endSkill JSON (Level 10)
{
"id": 306010,
"NameZh": "阿修罗霸凰拳",
"Level": 10,
"Icon": "skill_306001",
"Cost": 1,
"PeakLevel": 5,
"Desc": [
{
"id": 306001,
"params": [
40,
100,
2500,
500,
50,
30,
300
]
}
],
"RollType": 1,
"DamageType": 1,
"SkillType": "Attack",
"Camps": "Enemy",
"Launch_Range": 3,
"Fire_EP": 0,
"Target_EP": 0,
"Attack_EP": 0,
"CD": 5,
"SkillCost": {
"costtype": 1
},
"DelayCD": 1,
"PreCondition": {
"ProType": 1
},
"Lead_Type": {
"CCT": 0,
"FCT": 2,
"type": 2
},
"Logic": "SkillLockedTarget",
"Logic_Param": {
"CanBeInterrupted": 1
},
"Damage": [
{
"damChangePer": 40,
"damChangePer1": 50,
"elementparam": 5,
"type": 12202
}
],
"DamTime": {
"type": 1,
"value": 1
},
"AttackEffects": [
{
"curve": 1,
"range": 0.1,
"time": 1,
"type": 2
},
{
"direction": "forward",
"distance": 1.5,
"speed": 20,
"type": 1
}
],
"Buff": {
"enemy": [
90004365
],
"self": [
100721,
100722,
100723
]
},
"Pvp_buff": {
"enemy": [
90004365
],
"self": [
100721,
100722,
100723
]
},
"CastAct": "reading",
"AttackAct": [
"use_skill2"
],
"E_Attack_On": 1,
"SE_cast": "Common/Magic_cast",
"SE_attack": "Skill/GuillotineFist",
"description": {
"chinesesimplified": "就是这件吗?",
"english": "Is this the one?",
"german": "Ist das der eine?",
"portuguese": "É esta?",
"spanish": "¿Es este?"
}
}