
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
95endPreserved HTML snapshot from ROM Handbook
