Delivery Exception

Delivery Exception

Lv 1AttackMagic

Deals (Atk100%) Dmg to the target

Range: 9

Formula

1function CommonFun.calcDamage_79501(srcUser, targetUser, params, damageParam, logger)
2  local Int = srcUser:GetProperty("Int")
3  local Vit = srcUser:GetProperty("Vit")
4  local MAtk = srcUser:GetProperty("MAtk")
5  local MAtkPer = srcUser:GetProperty("MAtkPer")
6  local Str = srcUser:GetProperty("Str")
7  local NormalAtk = srcUser:GetProperty("NormalAtk")
8  NormalAtk = NormalAtk + 3 * Int
9  local MDamIncrease = CommonFun.calcMDamIncrease(srcUser, targetUser)
10  local IgnoreMDef = srcUser:GetProperty("IgnoreMDef")
11  if 1 <= IgnoreMDef then
12    IgnoreMDef = 1
13  end
14  local MRefine = srcUser:GetProperty("MRefine")
15  local RangeDam = srcUser:GetProperty("RangeDam")
16  local srcAtkElement = CommonFun.GetUserAtkAttr(srcUser, targetUser, params, damageParam)
17  local targetDefElement = targetUser:GetProperty("DefAttr")
18  local elementparam2 = CommonFun.CalcElementParam2(srcUser, targetUser, params, damageParam, logger)
19  local raceparam = CommonFun.CalcRaceParam(srcUser, targetUser, params, damageParam, logger)
20  local raceparam2 = CommonFun.CalcRaceParam2(srcUser, targetUser, params, damageParam, logger)
21  local bossparam = CommonFun.CalcBossParam(srcUser, targetUser, params, damageParam, logger)
22  local bossparam2 = CommonFun.CalcBossParam2(srcUser, targetUser, params, damageParam, logger)
23  local MDef2 = targetUser:GetProperty("MDef")
24  local MDefPer2 = targetUser:GetProperty("MDefPer")
25  local Vit2 = targetUser:GetProperty("Vit")
26  local VitPer2 = targetUser:GetProperty("VitPer")
27  local Int2 = targetUser:GetProperty("Int")
28  local IntPer2 = targetUser:GetProperty("IntPer")
29  local MDamReduc2 = CommonFun.calcMDamReDuc(srcUser, targetUser)
30  local RefineMDamReduc = CommonFun.calcRefineMDamReduc(srcUser, targetUser)
31  local damChangePer = damageParam.damChangePer
32  local skillID, skillLevel = CommonFun.UnmergeSkillID(params.skillIDAndLevel)
33  local BaseMAtk = Int + math.floor(Int * Int / 100)
34  local MAtkFinal = ((MAtk - BaseMAtk) * (1 + MAtkPer) + BaseMAtk) * raceparam * bossparam * bossparam2
35  local skillID, skillLevel = CommonFun.UnmergeSkillID(params.skillIDAndLevel)
36  local wutai = srcUser:GetLernedSkillLevel(4751_PHANTOM_DANCER:ROTATING_STAGE)
37  local guanjiao = srcUser:GetLernedSkillLevel(4762_PHANTOM_DANCER:SPECIAL_DISCIPLINE_MODE)
38  local peisong = srcUser:GetLernedSkillLevel(4754_PHANTOM_DANCER:DELIVERY_EXCEPTION)
39  local strratio = 1 + Str / 500
40  if skillID == 4764_PHANTOM_DANCER:SPIKED_CLUB_NORMAL_ATTACK_PHANTOM_DANCER:SPIKED_CLUB_NORMAL_ATTACK then
41    damChangePer = (wutai * 1.2 + 12) * strratio
42  end
43  if skillID == 4766_PHANTOM_DANCER:LARGE_SPIKED_CLUB_PHANTOM_DANCER:LARGE_SPIKED_CLUB then
44    damChangePer = (wutai * 3.6 + 36) * strratio
45  end
46  if skillID == 4767_PHANTOM_DANCER:DELIVERY_EXCEPTION_PHANTOM_DANCER:DELIVERY_EXCEPTION then
47    damChangePer = peisong * 1.2 + 7.2
48  end
49  local MDefReduc = CommonFun.CalcMDef(srcUser, targetUser)
50  if skillID == 4767_PHANTOM_DANCER:DELIVERY_EXCEPTION_PHANTOM_DANCER:DELIVERY_EXCEPTION or skillID == 4764_PHANTOM_DANCER:SPIKED_CLUB_NORMAL_ATTACK_PHANTOM_DANCER:SPIKED_CLUB_NORMAL_ATTACK then
51    RangeDam = 0
52  end
53  local MDamSpike = srcUser:GetProperty("MDamSpike_MPEN")
54  local MDamReduc = targetUser:GetProperty("MDamReduc")
55  local skilllv = srcUser:GetLernedSkillLevel(4762_PHANTOM_DANCER:SPECIAL_DISCIPLINE_MODE)
56  if skillID == 4767_PHANTOM_DANCER:DELIVERY_EXCEPTION and 0 <= MDamReduc then
57    MDamReduc = math.max(MDamReduc - 0.02 * skilllv, 0)
58  end
59  local PvP_MDamReduc = MDamReduc
60  local mapid, maptype = srcUser:GetMapInfo()
61  if (maptype == PVP_MAPS) and targetUser:GetNpcID() == 0 then
62    PvP_MDamReduc = PvP_MDamReduc < -1 and -1 or 1 < PvP_MDamReduc and 1 or PvP_MDamReduc
63    PvP_MDamReduc = math.floor(PvP_MDamReduc * 1000) / 1000
64    PvP_MDamReduc = 0.4 * (1 - math.sin(PvP_MDamReduc * 3.14 / 2))
65  else
66    PvP_MDamReduc = 0
67  end
68  MDamReduc = MDamReduc + PvP_MDamReduc
69  local ReduceLv = CommonFun.calcSpikeLv(srcUser, targetUser)
70  local SkillMDamReduc = CommonFun.calcSkillMDamReduc(srcUser, targetUser)
71  local MDamReduc2 = 1 - (1 + 0.009 * ReduceLv + MDamSpike - MDamReduc) * SkillMDamReduc
72  if 0.9 <= MDamReduc2 then
73    MDamReduc2 = 0.9
74  end
75  local GemValue = srcUser:GetGemValue(219101_ROTATING_STAGE_DAMAGE_AND_HEALING_OF_VARIOUS_MACE_TYPES_PERCENTAGE)
76  local GemValue2 = srcUser:GetGemValue(219151_DELIVERY_EXCEPTION_TARGET_TAKES_KAFRA_DAMAGE_PERCENTAGE)
77  if skillID == 4767_PHANTOM_DANCER:DELIVERY_EXCEPTION then
78    damChangePer = damChangePer * (1 + GemValue / 100000)
79  end
80  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)
81  if targetUser:GetNpcID() ~= 0 and 0 < A and skillID == 4767_PHANTOM_DANCER:DELIVERY_EXCEPTION then
82    A = A * (1 + guanjiao * 0.05)
83  end
84  if targetUser:HasBuffID(140371_PROFESSIONAL_SERVICES_WAREHOUSE_BITE_INCIDENT_:MAX_STACK_0) then
85    A = A * (1 + GemValue2 / 100000)
86  end
87  local enemy = srcUser:IsEnemy(targetUser)
88  if skillID == 4766_PHANTOM_DANCER:LARGE_SPIKED_CLUB_PHANTOM_DANCER:LARGE_SPIKED_CLUB and enemy == false then
89    return 0, CommonFun.DamageType.None
90  end
91  if A <= 1 then
92    return 1
93  end
94  return A
95end
Preserved HTML snapshot from ROM Handbook