Fixed skill mastery double abnormal time.
Contributed by Liamxroy.
This commit is contained in:
@@ -251,7 +251,8 @@ public class SkillCaster implements Runnable
|
|||||||
int reuseDelay = caster.getStat().getReuseTime(_skill);
|
int reuseDelay = caster.getStat().getReuseTime(_skill);
|
||||||
if (reuseDelay > 10)
|
if (reuseDelay > 10)
|
||||||
{
|
{
|
||||||
if (Formulas.calcSkillMastery(caster, _skill))
|
// Skill mastery doesn't affect static skills / A2 and item skills on reuse.
|
||||||
|
if (Formulas.calcSkillMastery(caster, _skill) && !_skill.isStatic() && (_skill.getReferenceItemId() == 0) && (_skill.getOperateType() == SkillOperateType.A1))
|
||||||
{
|
{
|
||||||
reuseDelay = 100;
|
reuseDelay = 100;
|
||||||
caster.sendPacket(SystemMessageId.A_SKILL_IS_READY_TO_BE_USED_AGAIN);
|
caster.sendPacket(SystemMessageId.A_SKILL_IS_READY_TO_BE_USED_AGAIN);
|
||||||
|
|||||||
@@ -950,16 +950,6 @@ public class Formulas
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// Static skills are not affected by Skill Mastery.
|
|
||||||
if (skill.isStatic())
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
// Item skills are not affected by Skill Mastery.
|
|
||||||
if (skill.getReferenceItemId() > 0)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
final int val = (int) actor.getStat().getAdd(Stats.SKILL_CRITICAL, -1);
|
final int val = (int) actor.getStat().getAdd(Stats.SKILL_CRITICAL, -1);
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
|
|||||||
@@ -251,7 +251,8 @@ public class SkillCaster implements Runnable
|
|||||||
int reuseDelay = caster.getStat().getReuseTime(_skill);
|
int reuseDelay = caster.getStat().getReuseTime(_skill);
|
||||||
if (reuseDelay > 10)
|
if (reuseDelay > 10)
|
||||||
{
|
{
|
||||||
if (Formulas.calcSkillMastery(caster, _skill))
|
// Skill mastery doesn't affect static skills / A2 and item skills on reuse.
|
||||||
|
if (Formulas.calcSkillMastery(caster, _skill) && !_skill.isStatic() && (_skill.getReferenceItemId() == 0) && (_skill.getOperateType() == SkillOperateType.A1))
|
||||||
{
|
{
|
||||||
reuseDelay = 100;
|
reuseDelay = 100;
|
||||||
caster.sendPacket(SystemMessageId.A_SKILL_IS_READY_TO_BE_USED_AGAIN);
|
caster.sendPacket(SystemMessageId.A_SKILL_IS_READY_TO_BE_USED_AGAIN);
|
||||||
|
|||||||
@@ -950,16 +950,6 @@ public class Formulas
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// Static skills are not affected by Skill Mastery.
|
|
||||||
if (skill.isStatic())
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
// Item skills are not affected by Skill Mastery.
|
|
||||||
if (skill.getReferenceItemId() > 0)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
final int val = (int) actor.getStat().getAdd(Stats.SKILL_CRITICAL, -1);
|
final int val = (int) actor.getStat().getAdd(Stats.SKILL_CRITICAL, -1);
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
|
|||||||
@@ -251,7 +251,8 @@ public class SkillCaster implements Runnable
|
|||||||
int reuseDelay = caster.getStat().getReuseTime(_skill);
|
int reuseDelay = caster.getStat().getReuseTime(_skill);
|
||||||
if (reuseDelay > 10)
|
if (reuseDelay > 10)
|
||||||
{
|
{
|
||||||
if (Formulas.calcSkillMastery(caster, _skill))
|
// Skill mastery doesn't affect static skills / A2 and item skills on reuse.
|
||||||
|
if (Formulas.calcSkillMastery(caster, _skill) && !_skill.isStatic() && (_skill.getReferenceItemId() == 0) && (_skill.getOperateType() == SkillOperateType.A1))
|
||||||
{
|
{
|
||||||
reuseDelay = 100;
|
reuseDelay = 100;
|
||||||
caster.sendPacket(SystemMessageId.A_SKILL_IS_READY_TO_BE_USED_AGAIN);
|
caster.sendPacket(SystemMessageId.A_SKILL_IS_READY_TO_BE_USED_AGAIN);
|
||||||
|
|||||||
@@ -950,16 +950,6 @@ public class Formulas
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// Static skills are not affected by Skill Mastery.
|
|
||||||
if (skill.isStatic())
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
// Item skills are not affected by Skill Mastery.
|
|
||||||
if (skill.getReferenceItemId() > 0)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
final int val = (int) actor.getStat().getAdd(Stats.SKILL_CRITICAL, -1);
|
final int val = (int) actor.getStat().getAdd(Stats.SKILL_CRITICAL, -1);
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
|
|||||||
@@ -251,7 +251,8 @@ public class SkillCaster implements Runnable
|
|||||||
int reuseDelay = caster.getStat().getReuseTime(_skill);
|
int reuseDelay = caster.getStat().getReuseTime(_skill);
|
||||||
if (reuseDelay > 10)
|
if (reuseDelay > 10)
|
||||||
{
|
{
|
||||||
if (Formulas.calcSkillMastery(caster, _skill))
|
// Skill mastery doesn't affect static skills / A2 and item skills on reuse.
|
||||||
|
if (Formulas.calcSkillMastery(caster, _skill) && !_skill.isStatic() && (_skill.getReferenceItemId() == 0) && (_skill.getOperateType() == SkillOperateType.A1))
|
||||||
{
|
{
|
||||||
reuseDelay = 100;
|
reuseDelay = 100;
|
||||||
caster.sendPacket(SystemMessageId.A_SKILL_IS_READY_TO_BE_USED_AGAIN);
|
caster.sendPacket(SystemMessageId.A_SKILL_IS_READY_TO_BE_USED_AGAIN);
|
||||||
|
|||||||
@@ -950,16 +950,6 @@ public class Formulas
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// Static skills are not affected by Skill Mastery.
|
|
||||||
if (skill.isStatic())
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
// Item skills are not affected by Skill Mastery.
|
|
||||||
if (skill.getReferenceItemId() > 0)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
final int val = (int) actor.getStat().getAdd(Stats.SKILL_CRITICAL, -1);
|
final int val = (int) actor.getStat().getAdd(Stats.SKILL_CRITICAL, -1);
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
|
|||||||
@@ -251,7 +251,8 @@ public class SkillCaster implements Runnable
|
|||||||
int reuseDelay = caster.getStat().getReuseTime(_skill);
|
int reuseDelay = caster.getStat().getReuseTime(_skill);
|
||||||
if (reuseDelay > 10)
|
if (reuseDelay > 10)
|
||||||
{
|
{
|
||||||
if (Formulas.calcSkillMastery(caster, _skill))
|
// Skill mastery doesn't affect static skills / A2 and item skills on reuse.
|
||||||
|
if (Formulas.calcSkillMastery(caster, _skill) && !_skill.isStatic() && (_skill.getReferenceItemId() == 0) && (_skill.getOperateType() == SkillOperateType.A1))
|
||||||
{
|
{
|
||||||
reuseDelay = 100;
|
reuseDelay = 100;
|
||||||
caster.sendPacket(SystemMessageId.A_SKILL_IS_READY_TO_BE_USED_AGAIN);
|
caster.sendPacket(SystemMessageId.A_SKILL_IS_READY_TO_BE_USED_AGAIN);
|
||||||
|
|||||||
@@ -950,16 +950,6 @@ public class Formulas
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// Static skills are not affected by Skill Mastery.
|
|
||||||
if (skill.isStatic())
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
// Item skills are not affected by Skill Mastery.
|
|
||||||
if (skill.getReferenceItemId() > 0)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
final int val = (int) actor.getStat().getAdd(Stats.SKILL_CRITICAL, -1);
|
final int val = (int) actor.getStat().getAdd(Stats.SKILL_CRITICAL, -1);
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
|
|||||||
@@ -251,7 +251,8 @@ public class SkillCaster implements Runnable
|
|||||||
int reuseDelay = caster.getStat().getReuseTime(_skill);
|
int reuseDelay = caster.getStat().getReuseTime(_skill);
|
||||||
if (reuseDelay > 10)
|
if (reuseDelay > 10)
|
||||||
{
|
{
|
||||||
if (Formulas.calcSkillMastery(caster, _skill))
|
// Skill mastery doesn't affect static skills / A2 and item skills on reuse.
|
||||||
|
if (Formulas.calcSkillMastery(caster, _skill) && !_skill.isStatic() && (_skill.getReferenceItemId() == 0) && (_skill.getOperateType() == SkillOperateType.A1))
|
||||||
{
|
{
|
||||||
reuseDelay = 100;
|
reuseDelay = 100;
|
||||||
caster.sendPacket(SystemMessageId.A_SKILL_IS_READY_TO_BE_USED_AGAIN);
|
caster.sendPacket(SystemMessageId.A_SKILL_IS_READY_TO_BE_USED_AGAIN);
|
||||||
|
|||||||
@@ -950,16 +950,6 @@ public class Formulas
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// Static skills are not affected by Skill Mastery.
|
|
||||||
if (skill.isStatic())
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
// Item skills are not affected by Skill Mastery.
|
|
||||||
if (skill.getReferenceItemId() > 0)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
final int val = (int) actor.getStat().getAdd(Stats.SKILL_CRITICAL, -1);
|
final int val = (int) actor.getStat().getAdd(Stats.SKILL_CRITICAL, -1);
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
|
|||||||
@@ -251,7 +251,8 @@ public class SkillCaster implements Runnable
|
|||||||
int reuseDelay = caster.getStat().getReuseTime(_skill);
|
int reuseDelay = caster.getStat().getReuseTime(_skill);
|
||||||
if (reuseDelay > 10)
|
if (reuseDelay > 10)
|
||||||
{
|
{
|
||||||
if (Formulas.calcSkillMastery(caster, _skill))
|
// Skill mastery doesn't affect static skills / A2 and item skills on reuse.
|
||||||
|
if (Formulas.calcSkillMastery(caster, _skill) && !_skill.isStatic() && (_skill.getReferenceItemId() == 0) && (_skill.getOperateType() == SkillOperateType.A1))
|
||||||
{
|
{
|
||||||
reuseDelay = 100;
|
reuseDelay = 100;
|
||||||
caster.sendPacket(SystemMessageId.A_SKILL_IS_READY_TO_BE_USED_AGAIN);
|
caster.sendPacket(SystemMessageId.A_SKILL_IS_READY_TO_BE_USED_AGAIN);
|
||||||
|
|||||||
@@ -950,16 +950,6 @@ public class Formulas
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// Static skills are not affected by Skill Mastery.
|
|
||||||
if (skill.isStatic())
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
// Item skills are not affected by Skill Mastery.
|
|
||||||
if (skill.getReferenceItemId() > 0)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
final int val = (int) actor.getStat().getAdd(Stats.SKILL_CRITICAL, -1);
|
final int val = (int) actor.getStat().getAdd(Stats.SKILL_CRITICAL, -1);
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
|
|||||||
@@ -251,7 +251,8 @@ public class SkillCaster implements Runnable
|
|||||||
int reuseDelay = caster.getStat().getReuseTime(_skill);
|
int reuseDelay = caster.getStat().getReuseTime(_skill);
|
||||||
if (reuseDelay > 10)
|
if (reuseDelay > 10)
|
||||||
{
|
{
|
||||||
if (Formulas.calcSkillMastery(caster, _skill))
|
// Skill mastery doesn't affect static skills / A2 and item skills on reuse.
|
||||||
|
if (Formulas.calcSkillMastery(caster, _skill) && !_skill.isStatic() && (_skill.getReferenceItemId() == 0) && (_skill.getOperateType() == SkillOperateType.A1))
|
||||||
{
|
{
|
||||||
reuseDelay = 100;
|
reuseDelay = 100;
|
||||||
caster.sendPacket(SystemMessageId.A_SKILL_IS_READY_TO_BE_USED_AGAIN);
|
caster.sendPacket(SystemMessageId.A_SKILL_IS_READY_TO_BE_USED_AGAIN);
|
||||||
|
|||||||
@@ -950,16 +950,6 @@ public class Formulas
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// Static skills are not affected by Skill Mastery.
|
|
||||||
if (skill.isStatic())
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
// Item skills are not affected by Skill Mastery.
|
|
||||||
if (skill.getReferenceItemId() > 0)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
final int val = (int) actor.getStat().getAdd(Stats.SKILL_CRITICAL, -1);
|
final int val = (int) actor.getStat().getAdd(Stats.SKILL_CRITICAL, -1);
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
|
|||||||
@@ -251,7 +251,8 @@ public class SkillCaster implements Runnable
|
|||||||
int reuseDelay = caster.getStat().getReuseTime(_skill);
|
int reuseDelay = caster.getStat().getReuseTime(_skill);
|
||||||
if (reuseDelay > 10)
|
if (reuseDelay > 10)
|
||||||
{
|
{
|
||||||
if (Formulas.calcSkillMastery(caster, _skill))
|
// Skill mastery doesn't affect static skills / A2 and item skills on reuse.
|
||||||
|
if (Formulas.calcSkillMastery(caster, _skill) && !_skill.isStatic() && (_skill.getReferenceItemId() == 0) && (_skill.getOperateType() == SkillOperateType.A1))
|
||||||
{
|
{
|
||||||
reuseDelay = 100;
|
reuseDelay = 100;
|
||||||
caster.sendPacket(SystemMessageId.A_SKILL_IS_READY_TO_BE_USED_AGAIN);
|
caster.sendPacket(SystemMessageId.A_SKILL_IS_READY_TO_BE_USED_AGAIN);
|
||||||
|
|||||||
@@ -950,16 +950,6 @@ public class Formulas
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// Static skills are not affected by Skill Mastery.
|
|
||||||
if (skill.isStatic())
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
// Item skills are not affected by Skill Mastery.
|
|
||||||
if (skill.getReferenceItemId() > 0)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
final int val = (int) actor.getStat().getAdd(Stats.SKILL_CRITICAL, -1);
|
final int val = (int) actor.getStat().getAdd(Stats.SKILL_CRITICAL, -1);
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
|
|||||||
@@ -251,7 +251,8 @@ public class SkillCaster implements Runnable
|
|||||||
int reuseDelay = caster.getStat().getReuseTime(_skill);
|
int reuseDelay = caster.getStat().getReuseTime(_skill);
|
||||||
if (reuseDelay > 10)
|
if (reuseDelay > 10)
|
||||||
{
|
{
|
||||||
if (Formulas.calcSkillMastery(caster, _skill))
|
// Skill mastery doesn't affect static skills / A2 and item skills on reuse.
|
||||||
|
if (Formulas.calcSkillMastery(caster, _skill) && !_skill.isStatic() && (_skill.getReferenceItemId() == 0) && (_skill.getOperateType() == SkillOperateType.A1))
|
||||||
{
|
{
|
||||||
reuseDelay = 100;
|
reuseDelay = 100;
|
||||||
caster.sendPacket(SystemMessageId.A_SKILL_IS_READY_TO_BE_USED_AGAIN);
|
caster.sendPacket(SystemMessageId.A_SKILL_IS_READY_TO_BE_USED_AGAIN);
|
||||||
|
|||||||
@@ -950,16 +950,6 @@ public class Formulas
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// Static skills are not affected by Skill Mastery.
|
|
||||||
if (skill.isStatic())
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
// Item skills are not affected by Skill Mastery.
|
|
||||||
if (skill.getReferenceItemId() > 0)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
final int val = (int) actor.getStat().getAdd(Stats.SKILL_CRITICAL, -1);
|
final int val = (int) actor.getStat().getAdd(Stats.SKILL_CRITICAL, -1);
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
|
|||||||
@@ -251,7 +251,8 @@ public class SkillCaster implements Runnable
|
|||||||
int reuseDelay = caster.getStat().getReuseTime(_skill);
|
int reuseDelay = caster.getStat().getReuseTime(_skill);
|
||||||
if (reuseDelay > 10)
|
if (reuseDelay > 10)
|
||||||
{
|
{
|
||||||
if (Formulas.calcSkillMastery(caster, _skill))
|
// Skill mastery doesn't affect static skills / A2 and item skills on reuse.
|
||||||
|
if (Formulas.calcSkillMastery(caster, _skill) && !_skill.isStatic() && (_skill.getReferenceItemId() == 0) && (_skill.getOperateType() == SkillOperateType.A1))
|
||||||
{
|
{
|
||||||
reuseDelay = 100;
|
reuseDelay = 100;
|
||||||
caster.sendPacket(SystemMessageId.A_SKILL_IS_READY_TO_BE_USED_AGAIN);
|
caster.sendPacket(SystemMessageId.A_SKILL_IS_READY_TO_BE_USED_AGAIN);
|
||||||
|
|||||||
@@ -950,16 +950,6 @@ public class Formulas
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// Static skills are not affected by Skill Mastery.
|
|
||||||
if (skill.isStatic())
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
// Item skills are not affected by Skill Mastery.
|
|
||||||
if (skill.getReferenceItemId() > 0)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
final int val = (int) actor.getStat().getAdd(Stats.SKILL_CRITICAL, -1);
|
final int val = (int) actor.getStat().getAdd(Stats.SKILL_CRITICAL, -1);
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
|
|||||||
@@ -251,7 +251,8 @@ public class SkillCaster implements Runnable
|
|||||||
int reuseDelay = caster.getStat().getReuseTime(_skill);
|
int reuseDelay = caster.getStat().getReuseTime(_skill);
|
||||||
if (reuseDelay > 10)
|
if (reuseDelay > 10)
|
||||||
{
|
{
|
||||||
if (Formulas.calcSkillMastery(caster, _skill))
|
// Skill mastery doesn't affect static skills / A2 and item skills on reuse.
|
||||||
|
if (Formulas.calcSkillMastery(caster, _skill) && !_skill.isStatic() && (_skill.getReferenceItemId() == 0) && (_skill.getOperateType() == SkillOperateType.A1))
|
||||||
{
|
{
|
||||||
reuseDelay = 100;
|
reuseDelay = 100;
|
||||||
caster.sendPacket(SystemMessageId.A_SKILL_IS_READY_TO_BE_USED_AGAIN);
|
caster.sendPacket(SystemMessageId.A_SKILL_IS_READY_TO_BE_USED_AGAIN);
|
||||||
|
|||||||
@@ -951,16 +951,6 @@ public class Formulas
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// Static skills are not affected by Skill Mastery.
|
|
||||||
if (skill.isStatic())
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
// Item skills are not affected by Skill Mastery.
|
|
||||||
if (skill.getReferenceItemId() > 0)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
final int val = (int) actor.getStat().getAdd(Stats.SKILL_CRITICAL, -1);
|
final int val = (int) actor.getStat().getAdd(Stats.SKILL_CRITICAL, -1);
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
|
|||||||
@@ -251,7 +251,8 @@ public class SkillCaster implements Runnable
|
|||||||
int reuseDelay = caster.getStat().getReuseTime(_skill);
|
int reuseDelay = caster.getStat().getReuseTime(_skill);
|
||||||
if (reuseDelay > 10)
|
if (reuseDelay > 10)
|
||||||
{
|
{
|
||||||
if (Formulas.calcSkillMastery(caster, _skill))
|
// Skill mastery doesn't affect static skills / A2 and item skills on reuse.
|
||||||
|
if (Formulas.calcSkillMastery(caster, _skill) && !_skill.isStatic() && (_skill.getReferenceItemId() == 0) && (_skill.getOperateType() == SkillOperateType.A1))
|
||||||
{
|
{
|
||||||
reuseDelay = 100;
|
reuseDelay = 100;
|
||||||
caster.sendPacket(SystemMessageId.A_SKILL_IS_READY_TO_BE_USED_AGAIN);
|
caster.sendPacket(SystemMessageId.A_SKILL_IS_READY_TO_BE_USED_AGAIN);
|
||||||
|
|||||||
@@ -951,16 +951,6 @@ public class Formulas
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// Static skills are not affected by Skill Mastery.
|
|
||||||
if (skill.isStatic())
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
// Item skills are not affected by Skill Mastery.
|
|
||||||
if (skill.getReferenceItemId() > 0)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
final int val = (int) actor.getStat().getAdd(Stats.SKILL_CRITICAL, -1);
|
final int val = (int) actor.getStat().getAdd(Stats.SKILL_CRITICAL, -1);
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
|
|||||||
@@ -251,7 +251,8 @@ public class SkillCaster implements Runnable
|
|||||||
int reuseDelay = caster.getStat().getReuseTime(_skill);
|
int reuseDelay = caster.getStat().getReuseTime(_skill);
|
||||||
if (reuseDelay > 10)
|
if (reuseDelay > 10)
|
||||||
{
|
{
|
||||||
if (Formulas.calcSkillMastery(caster, _skill))
|
// Skill mastery doesn't affect static skills / A2 and item skills on reuse.
|
||||||
|
if (Formulas.calcSkillMastery(caster, _skill) && !_skill.isStatic() && (_skill.getReferenceItemId() == 0) && (_skill.getOperateType() == SkillOperateType.A1))
|
||||||
{
|
{
|
||||||
reuseDelay = 100;
|
reuseDelay = 100;
|
||||||
caster.sendPacket(SystemMessageId.A_SKILL_IS_READY_TO_BE_USED_AGAIN);
|
caster.sendPacket(SystemMessageId.A_SKILL_IS_READY_TO_BE_USED_AGAIN);
|
||||||
|
|||||||
@@ -951,16 +951,6 @@ public class Formulas
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// Static skills are not affected by Skill Mastery.
|
|
||||||
if (skill.isStatic())
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
// Item skills are not affected by Skill Mastery.
|
|
||||||
if (skill.getReferenceItemId() > 0)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
final int val = (int) actor.getStat().getAdd(Stats.SKILL_CRITICAL, -1);
|
final int val = (int) actor.getStat().getAdd(Stats.SKILL_CRITICAL, -1);
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
|
|||||||
@@ -251,7 +251,8 @@ public class SkillCaster implements Runnable
|
|||||||
int reuseDelay = caster.getStat().getReuseTime(_skill);
|
int reuseDelay = caster.getStat().getReuseTime(_skill);
|
||||||
if (reuseDelay > 10)
|
if (reuseDelay > 10)
|
||||||
{
|
{
|
||||||
if (Formulas.calcSkillMastery(caster, _skill))
|
// Skill mastery doesn't affect static skills / A2 and item skills on reuse.
|
||||||
|
if (Formulas.calcSkillMastery(caster, _skill) && !_skill.isStatic() && (_skill.getReferenceItemId() == 0) && (_skill.getOperateType() == SkillOperateType.A1))
|
||||||
{
|
{
|
||||||
reuseDelay = 100;
|
reuseDelay = 100;
|
||||||
caster.sendPacket(SystemMessageId.A_SKILL_IS_READY_TO_BE_USED_AGAIN);
|
caster.sendPacket(SystemMessageId.A_SKILL_IS_READY_TO_BE_USED_AGAIN);
|
||||||
|
|||||||
@@ -950,16 +950,6 @@ public class Formulas
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// Static skills are not affected by Skill Mastery.
|
|
||||||
if (skill.isStatic())
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
// Item skills are not affected by Skill Mastery.
|
|
||||||
if (skill.getReferenceItemId() > 0)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
final int val = (int) actor.getStat().getAdd(Stats.SKILL_CRITICAL, -1);
|
final int val = (int) actor.getStat().getAdd(Stats.SKILL_CRITICAL, -1);
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
|
|||||||
Reference in New Issue
Block a user