Bottled Ghost

Bottled Ghost

Lv 10AttackMagic

Throw a distressed Phantom bottle at a distant enemy, dealing poison attribute magic damage equal to M.Atk *3200% to the target and enemies within a 2.5-meter radius, and inflicting 【Distress】. Over the next 15 seconds, 【Distress】 deals 10% damage per second. The 【Distress】 effect can stack up to 15 layers. The 【Distress】 inflicted on monsters cannot be subject to Clearance, and when the 【Distress】 stacks exceed 10 layers, the target monster's Armor attribute will no longer resist poison attributes.

CD: 1 sec
Range: 6
Cast: 4

Skill Levels

Lvl: 9
Attack
Magic
CD: 1 sec
Skill Delay: 1 sec
SP: 92
Range: 6
Cast Time: 4

• Throw a distressed Phantom bottle at a distant enemy, dealing poison attribute magic damage equal to M.Atk *3000% to the target and enemies within a 2.5-meter radius, and inflicting 【Distress】. Over the next 15 seconds, 【Distress】 deals 10% damage per second. The 【Distress】 effect can stack up to 15 layers. The 【Distress】 inflicted on monsters cannot be subject to Clearance, and when the 【Distress】 stacks exceed 10 layers, the target monster's Armor attribute will no longer resist poison attributes.

Lvl: 8
Attack
Magic
CD: 1 sec
Skill Delay: 1 sec
SP: 84
Range: 6
Cast Time: 4

• Throw a distressed Phantom bottle at a distant enemy, dealing poison attribute magic damage equal to M.Atk *2800% to the target and enemies within a 2.5-meter radius, and inflicting 【Distress】. Over the next 15 seconds, 【Distress】 deals 10% damage per second. The 【Distress】 effect can stack up to 15 layers. The 【Distress】 inflicted on monsters cannot be subject to Clearance, and when the 【Distress】 stacks exceed 10 layers, the target monster's Armor attribute will no longer resist poison attributes.

Lvl: 7
Attack
Magic
CD: 1 sec
Skill Delay: 1 sec
SP: 76
Range: 6
Cast Time: 4

• Throw a distressed Phantom bottle at a distant enemy, dealing poison attribute magic damage equal to M.Atk *2600% to the target and enemies within a 2.5-meter radius, and inflicting 【Distress】. Over the next 15 seconds, 【Distress】 deals 10% damage per second. The 【Distress】 effect can stack up to 15 layers. The 【Distress】 inflicted on monsters cannot be subject to Clearance, and when the 【Distress】 stacks exceed 10 layers, the target monster's Armor attribute will no longer resist poison attributes.

Lvl: 6
Attack
Magic
CD: 1 sec
Skill Delay: 1 sec
SP: 68
Range: 6
Cast Time: 4

• Throw a distressed Phantom bottle at a distant enemy, dealing poison attribute magic damage equal to M.Atk *2400% to the target and enemies within a 2.5-meter radius, and inflicting 【Distress】. Over the next 15 seconds, 【Distress】 deals 10% damage per second. The 【Distress】 effect can stack up to 15 layers. The 【Distress】 inflicted on monsters cannot be subject to Clearance, and when the 【Distress】 stacks exceed 10 layers, the target monster's Armor attribute will no longer resist poison attributes.

Lvl: 5
Attack
Magic
CD: 1 sec
Skill Delay: 1 sec
SP: 60
Range: 6
Cast Time: 4

• Throw a distressed Phantom bottle at a distant enemy, dealing poison attribute magic damage equal to M.Atk *2200% to the target and enemies within a 2.5-meter radius, and inflicting 【Distress】. Over the next 15 seconds, 【Distress】 deals 10% damage per second. The 【Distress】 effect can stack up to 15 layers. The 【Distress】 inflicted on monsters cannot be subject to Clearance, and when the 【Distress】 stacks exceed 10 layers, the target monster's Armor attribute will no longer resist poison attributes.

Lvl: 4
Attack
Magic
CD: 1 sec
Skill Delay: 1 sec
SP: 52
Range: 6
Cast Time: 4

• Throw a distressed Phantom bottle at a distant enemy, dealing poison attribute magic damage equal to M.Atk *2000% to the target and enemies within a 2.5-meter radius, and inflicting 【Distress】. Over the next 15 seconds, 【Distress】 deals 10% damage per second. The 【Distress】 effect can stack up to 15 layers. The 【Distress】 inflicted on monsters cannot be subject to Clearance, and when the 【Distress】 stacks exceed 10 layers, the target monster's Armor attribute will no longer resist poison attributes.

Lvl: 3
Attack
Magic
CD: 1 sec
Skill Delay: 1 sec
SP: 44
Range: 6
Cast Time: 4

• Throw a distressed Phantom bottle at a distant enemy, dealing poison attribute magic damage equal to M.Atk *1800% to the target and enemies within a 2.5-meter radius, and inflicting 【Distress】. Over the next 15 seconds, 【Distress】 deals 10% damage per second. The 【Distress】 effect can stack up to 15 layers. The 【Distress】 inflicted on monsters cannot be subject to Clearance, and when the 【Distress】 stacks exceed 10 layers, the target monster's Armor attribute will no longer resist poison attributes.

Lvl: 2
Attack
Magic
CD: 1 sec
Skill Delay: 1 sec
SP: 36
Range: 6
Cast Time: 4

• Throw a distressed Phantom bottle at a distant enemy, dealing poison attribute magic damage equal to M.Atk *1600% to the target and enemies within a 2.5-meter radius, and inflicting 【Distress】. Over the next 15 seconds, 【Distress】 deals 10% damage per second. The 【Distress】 effect can stack up to 15 layers. The 【Distress】 inflicted on monsters cannot be subject to Clearance, and when the 【Distress】 stacks exceed 10 layers, the target monster's Armor attribute will no longer resist poison attributes.

Lvl: 1
Attack
Magic
CD: 1 sec
Skill Delay: 1 sec
SP: 28
Range: 6
Cast Time: 4

• Throw a distressed Phantom bottle at a distant enemy, dealing poison attribute magic damage equal to M.Atk *1400% to the target and enemies within a 2.5-meter radius, and inflicting 【Distress】. Over the next 15 seconds, 【Distress】 deals 10% damage per second. The 【Distress】 effect can stack up to 15 layers. The 【Distress】 inflicted on monsters cannot be subject to Clearance, and when the 【Distress】 stacks exceed 10 layers, the target monster's Armor attribute will no longer resist poison attributes.

Formula

1function CommonFun.calcDamage_64501(srcUser, targetUser, params, damageParam, logger)
2  local Int = srcUser:GetProperty("Int")
3  local Dex = srcUser:GetProperty("Dex")
4  local Vit = srcUser:GetProperty("Vit")
5  local Luk = srcUser:GetProperty("Luk")
6  local MAtk = srcUser:GetProperty("MAtk")
7  local MAtkPer = srcUser:GetProperty("MAtkPer")
8  local MDamIncrease = CommonFun.calcMDamIncrease(srcUser, targetUser)
9  local IgnoreMDef = srcUser:GetProperty("IgnoreMDef")
10  if 1 <= IgnoreMDef then
11    IgnoreMDef = 1
12  end
13  local MRefine = srcUser:GetProperty("MRefine")
14  local RangeDam = srcUser:GetProperty("RangeDam")
15  local srcAtkElement = CommonFun.GetUserAtkAttr(srcUser, targetUser, params, damageParam)
16  local targetDefElement = targetUser:GetProperty("DefAttr")
17  local elementparam2 = CommonFun.CalcElementParam2(srcUser, targetUser, params, damageParam, logger)
18  local raceparam = CommonFun.CalcRaceParam(srcUser, targetUser, params, damageParam, logger)
19  local raceparam2 = CommonFun.CalcRaceParam2(srcUser, targetUser, params, damageParam, logger)
20  local bossparam = CommonFun.CalcBossParam(srcUser, targetUser, params, damageParam, logger)
21  local bossparam2 = CommonFun.CalcBossParam2(srcUser, targetUser, params, damageParam, logger)
22  local MDef2 = targetUser:GetProperty("MDef")
23  local MDefPer2 = targetUser:GetProperty("MDefPer")
24  local Vit2 = targetUser:GetProperty("Vit")
25  local VitPer2 = targetUser:GetProperty("VitPer")
26  local Int2 = targetUser:GetProperty("Int")
27  local IntPer2 = targetUser:GetProperty("IntPer")
28  local MDamReduc2 = CommonFun.calcMDamReDuc(srcUser, targetUser)
29  local RefineMDamReduc = CommonFun.calcRefineMDamReduc(srcUser, targetUser)
30  local damChangePer = damageParam.damChangePer
31  local BaseMAtk = Int + math.floor(Int * Int / 100)
32  local MAtkFinal = ((MAtk - BaseMAtk) * (1 + MAtkPer) + BaseMAtk) * raceparam * bossparam * bossparam2
33  local MDefReduc = CommonFun.CalcMDef(srcUser, targetUser)
34  local Str2 = targetUser:GetProperty("Str")
35  local Agi2 = targetUser:GetProperty("Agi")
36  local Dex2 = targetUser:GetProperty("Dex")
37  local Luk2 = targetUser:GetProperty("Luk")
38  local skilllv_bt = srcUser:GetLernedSkillLevel(2622_ARCHBISHOP:CASTIGATE)
39  local Luk_Ratio = 1
40  if math.min(Str2, Agi2, Vit2, Int2, Dex2, Luk2) == 0 and 0 < skilllv_bt then
41    Luk_Ratio = 1 + Luk / 500 * skilllv_bt * 0.1
42  end
43  if 0 < skilllv_bt and targetUser:GetNpcID() ~= 0 then
44    local Point = math.min(math.floor(Dex / 5), math.floor(Int / 5), math.floor(Luk / 5))
45    Luk_Ratio = Luk_Ratio + skilllv_bt * 0.002 * Point
46  end
47  local skillID, skillLevel = CommonFun.UnmergeSkillID(params.skillIDAndLevel)
48  if skillID == 2615_HIGH_PRIEST:FATAL_DREAM or skillID == 2633_ARCHBISHOP:FATAL_DREAM_ARCHBISHOP:FATAL_DREAM then
49    local targetid = targetUser:GetGuid()
50    local BasicValue = srcUser:GetTarInterferenceValue(targetid)
51    damChangePer = damChangePer * (1 + BasicValue / 10 * 0.04)
52  end
53  if skillID == 2637_ARCHBISHOP:STORM_GUST or skillID == 2639_ARCHBISHOP:HELL_WILD_ROAR then
54    local skilllv_jem = srcUser:GetLernedSkillLevel(2612_HIGH_PRIEST:GARM)
55    local skilllv_kq = srcUser:GetLernedSkillLevel(2620_ARCHBISHOP:RABIES_VACCINATION)
56    damChangePer = (3 + skilllv_jem * 1.3) * (1 + skilllv_kq * 0.03)
57  end
58  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)) * Luk_Ratio
59  if skillID == 2614_HIGH_PRIEST:BOTTLED_GHOST or skillID == 2633_ARCHBISHOP:FATAL_DREAM_ARCHBISHOP:FATAL_DREAM then
60    A = A * (1 + RangeDam)
61  end
62  if A <= 1 then
63    return 1
64  end
65  return A
66end
Preserved HTML snapshot from ROM Handbook