Ninjutsu - Thousand Shadows

Ninjutsu - Thousand Shadows

Lv 10SummonCopySkill Delay: 1 sec

Summon one Shadow Clone to assist in battle. The Shadow Clone can perform some skills. The higher the level of the skill is, the better the Shadow Clone's Attributes will be. Every time Shadow Clone attacks, Pen. of its origin will increase by 10%%. Lasts 3 seconds. Stacks up to 3 layers. Up to 2 Shadow Clones may exist simultaneously and each lasts 20 seconds

CD: 12 sec
Fixed: 1

Aesir Effects

• Ninjutsu - Thousand Shadows - Flowing Blade Ninjutsu - Thousand Shadows clones' Auto Attack DMG +10%
• Ninjutsu - Thousand Shadows - Formless [Ninjutsu - Thousand Shadows] clones' DMG received -10%

Skill Levels

Lvl: 9
SummonCopy
CD: 12 sec
Skill Delay: 1 sec
SP: 30
Fixed Cast Time: 1

• Summon one Shadow Clone to assist in battle. The Shadow Clone can perform some skills. The higher the level of the skill is, the better the Shadow Clone's Attributes will be. Every time Shadow Clone attacks, Pen. of its origin will increase by 10%%. Lasts 3 seconds. Stacks up to 3 layers. Up to 2 Shadow Clones may exist simultaneously and each lasts 20 seconds

Lvl: 8
SummonCopy
CD: 12 sec
Skill Delay: 1 sec
SP: 30
Fixed Cast Time: 1

• Summon one Shadow Clone to assist in battle. The Shadow Clone can perform some skills. The higher the level of the skill is, the better the Shadow Clone's Attributes will be. Every time Shadow Clone attacks, Pen. of its origin will increase by 10%%. Lasts 3 seconds. Stacks up to 3 layers. Up to 2 Shadow Clones may exist simultaneously and each lasts 20 seconds

Lvl: 7
SummonCopy
CD: 12 sec
Skill Delay: 1 sec
SP: 30
Fixed Cast Time: 1

• Summon one Shadow Clone to assist in battle. The Shadow Clone can perform some skills. The higher the level of the skill is, the better the Shadow Clone's Attributes will be. Every time Shadow Clone attacks, Pen. of its origin will increase by 10%%. Lasts 3 seconds. Stacks up to 3 layers. Up to 2 Shadow Clones may exist simultaneously and each lasts 20 seconds

Lvl: 6
SummonCopy
CD: 12 sec
Skill Delay: 1 sec
SP: 30
Fixed Cast Time: 1

• Summon one Shadow Clone to assist in battle. The Shadow Clone can perform some skills. The higher the level of the skill is, the better the Shadow Clone's Attributes will be. Every time Shadow Clone attacks, Pen. of its origin will increase by 10%%. Lasts 3 seconds. Stacks up to 3 layers. Up to 2 Shadow Clones may exist simultaneously and each lasts 20 seconds

Lvl: 5
SummonCopy
CD: 12 sec
Skill Delay: 1 sec
SP: 30
Fixed Cast Time: 1

• Summon one Shadow Clone to assist in battle. The Shadow Clone can perform some skills. The higher the level of the skill is, the better the Shadow Clone's Attributes will be. Every time Shadow Clone attacks, Pen. of its origin will increase by 10%%. Lasts 3 seconds. Stacks up to 3 layers. Up to 2 Shadow Clones may exist simultaneously and each lasts 20 seconds

Lvl: 4
SummonCopy
CD: 12 sec
Skill Delay: 1 sec
SP: 30
Fixed Cast Time: 1

• Summon one Shadow Clone to assist in battle. The Shadow Clone can perform some skills. The higher the level of the skill is, the better the Shadow Clone's Attributes will be. Every time Shadow Clone attacks, Pen. of its origin will increase by 10%%. Lasts 3 seconds. Stacks up to 3 layers. Up to 2 Shadow Clones may exist simultaneously and each lasts 20 seconds

Lvl: 3
SummonCopy
CD: 12 sec
Skill Delay: 1 sec
SP: 30
Fixed Cast Time: 1

• Summon one Shadow Clone to assist in battle. The Shadow Clone can perform some skills. The higher the level of the skill is, the better the Shadow Clone's Attributes will be. Every time Shadow Clone attacks, Pen. of its origin will increase by 10%%. Lasts 3 seconds. Stacks up to 3 layers. Up to 2 Shadow Clones may exist simultaneously and each lasts 20 seconds

Lvl: 2
SummonCopy
CD: 12 sec
Skill Delay: 1 sec
SP: 30
Fixed Cast Time: 1

• Summon one Shadow Clone to assist in battle. The Shadow Clone can perform some skills. The higher the level of the skill is, the better the Shadow Clone's Attributes will be. Every time Shadow Clone attacks, Pen. of its origin will increase by 10%%. Lasts 3 seconds. Stacks up to 3 layers. Up to 2 Shadow Clones may exist simultaneously and each lasts 20 seconds

Lvl: 1
SummonCopy
CD: 12 sec
Skill Delay: 1 sec
SP: 30
Fixed Cast Time: 1

• Summon one Shadow Clone to assist in battle. The Shadow Clone can perform some skills. The higher the level of the skill is, the better the Shadow Clone's Attributes will be. Every time Shadow Clone attacks, Pen. of its origin will increase by 10%%. Lasts 3 seconds. Stacks up to 3 layers. Up to 2 Shadow Clones may exist simultaneously and each lasts 20 seconds

Formula

1function CommonFun.calcBuff_6(srcUser, targetUser, a, b, c, d, lv)
2  if srcUser == nil or targetUser == nil then
3    return 0
4  end
5  local MaxHp = targetUser:GetProperty("MaxHp")
6  local A = MaxHp * (a + c) + b
7  if 0 < A or a == 0 then
8    return A
9  end
10  if srcUser:GetNpcID() == 0 and targetUser:HasBuffID(160000_BOSS_IMMUNE_EFFECT_:MAX_STACK_0) and targetUser.boss == false and targetUser.mini == false then
11    return 0
12  end
13  if srcUser:GetNpcID() == 0 and (targetUser.boss or targetUser.mini) then
14    local Vit = srcUser:GetProperty("Vit")
15    local MAtk = srcUser:GetProperty("MAtk")
16    local MAtkPer = srcUser:GetProperty("MAtkPer")
17    local Refine = srcUser:GetProperty("Refine")
18    local MRefine = srcUser:GetProperty("MRefine")
19    local Def2 = targetUser:GetProperty("Def")
20    local DefPer2 = targetUser:GetProperty("DefPer")
21    local MDef2 = targetUser:GetProperty("MDef")
22    local MDefPer2 = targetUser:GetProperty("MDefPer")
23    local Vit2 = targetUser:GetProperty("Vit")
24    local VitPer2 = targetUser:GetProperty("VitPer")
25    local DamReduc2 = CommonFun.calcDamReDuc(srcUser, targetUser)
26    local RefineDamReduc = CommonFun.calcRefineDamReduc(srcUser, targetUser)
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 Str = srcUser:GetProperty("Str")
32    local Dex = srcUser:GetProperty("Dex")
33    local Luk = srcUser:GetProperty("Luk")
34    local Atk = srcUser:GetProperty("Atk")
35    local AtkPer = srcUser:GetProperty("AtkPer")
36    local DamIncrease = srcUser:GetProperty("DamIncrease")
37    local MDamIncrease = CommonFun.calcMDamIncrease(srcUser, targetUser)
38    local IgnoreDef = srcUser:GetProperty("IgnoreDef")
39    if 1 <= IgnoreDef then
40      IgnoreDef = 1
41    end
42    local IgnoreMDef = srcUser:GetProperty("IgnoreMDef")
43    if 1 <= IgnoreMDef then
44      IgnoreMDef = 1
45    end
46    local raceparam = 1
47    local srcRace = srcUser.race
48    local targetRace = targetUser.race
49    if targetUser:HasBuffID(139410_TWO_FACE_DEMON_KING_HUMAN_:MAX_STACK_0) then
50      targetRace = 3
51    end
52    if srcUser:HasBuffID(139411_TWO_FACE_DEMON_KING_DEMON_:MAX_STACK_0) then
53      srcRace = 3
54    end
55    if srcUser:HasBuffID(49320_RACIAL_ANCIENT_RELICS_PERMANENT_:MAX_STACK_0) and srcUser:HasBuffID(49325_RACIAL_ANCIENT_RELICS_CD_:MAX_STACK_0) then
56    elseif srcUser:HasBuffID(49320_RACIAL_ANCIENT_RELICS_PERMANENT_:MAX_STACK_0) then
57      targetRace = 2
58    end
59    if targetUser:HasBuffID(49320_RACIAL_ANCIENT_RELICS_PERMANENT_:MAX_STACK_0) and targetUser:HasBuffID(49325_RACIAL_ANCIENT_RELICS_CD_:MAX_STACK_0) then
60    elseif targetUser:HasBuffID(49320_RACIAL_ANCIENT_RELICS_PERMANENT_:MAX_STACK_0) then
61      srcRace = 2
62    end
63    if nil == CommonFun.RaceProps[targetRace] then
64      return 0
65    end
66    if nil == CommonFun.RaceProps[srcRace] then
67      return 0
68    end
69    local raceInc = srcUser:GetProperty(CommonFun.RaceProps[targetRace][1])
70    local raceRed = targetUser:GetProperty(CommonFun.RaceProps[srcRace][2])
71    local raceRedThrough = srcUser:GetProperty(CommonFun.RaceProps[srcRace][3])
72    local raceIncResistance = targetUser:GetProperty(CommonFun.RaceProps[targetRace][4])
73    if nil == raceRedThrough then
74      raceRedThrough = 0
75    end
76    if nil == raceIncResistance then
77      raceIncResistance = 0
78    end
79    if 0 <= raceInc then
80      raceInc = raceInc * math.max(1 - raceIncResistance, 0)
81    end
82    if 0 <= raceRed then
83      raceRed = raceRed * math.max(1 - raceRedThrough, 0)
84    end
85    local raceparam = 1 + raceInc - raceRed
86    if raceparam <= 0.1 then
87      raceparam = 0.1
88    end
89    local MAtkFinal = MAtk * (1 + MAtkPer) * CommonFun.ShapeCorrection(srcUser, targetUser) * raceparam
90    local AtkFinal = Atk * (1 + AtkPer) * CommonFun.ShapeCorrection(srcUser, targetUser) * raceparam
91    if MAtkFinal <= AtkFinal then
92      local DefReduc = CommonFun.CalcDef(srcUser, targetUser)
93      A = (AtkFinal * DefReduc * (1 - DamReduc2) + Refine) * a * 100 * (1 - RefineDamReduc) * (1 + DamIncrease) - Vit2 * (1 + VitPer2) + b
94    else
95      local MDefReduc = CommonFun.CalcMDef(srcUser, targetUser)
96      A = (MAtkFinal * MDefReduc * (1 - MDamReduc2) + MRefine) * a * 100 * (1 - RefineMDamReduc) * (1 + MDamIncrease) - Vit2 / 2 * (1 + VitPer2) - Int2 * (1 + IntPer2) + b
97    end
98  end
99  local AttrFunction = srcUser:GetProperty("AttrFunction")
100  local bitfunc = CommonFun.getBits(AttrFunction)
101  if (targetUser.boss or targetUser.mini or targetUser.changelinepunish) and (targetUser.zoneType == 1 or targetUser.zoneType == 22) and targetUser.noPunishBoss == false and bitfunc[CommonFun.AttrFunction.JustInViceZone] == 1 and targetUser.isBossFromBranch == false then
102    A = 0
103  end
104  if CommonFun.checkAttrFunctionMiss(targetUser, srcUser) then
105    A = 0
106  end
107  if targetUser.boss and targetUser.zoneType == 22 and CommonFun.CheckStormBossMiss(targetUser, srcUser) then
108    A = 0
109  end
110  if targetUser:GetNpcID() == 30043_YEAR or targetUser:GetNpcID() == 280303_WILDNESS_SPIRIT_BEAST or targetUser:GetNpcID() == 56008_GOMORA or targetUser:GetNpcID() == 56009_BALTAN or targetUser:GetNpcID() == 56010_GOLZA or targetUser:GetNpcID() == 56011_BEMSTAR or targetUser:GetNpcID() == 56012_ELEKING or targetUser:GetNpcID() == 56013_KING_JOE then
111    A = -1
112  end
113  if targetUser:DamageAlways1() then
114    A = -1
115  end
116  return A
117end
Preserved HTML snapshot from ROM Handbook