Fixed TriggerSkillByDamage effect handler.

Contributed by nasseka.
This commit is contained in:
MobiusDevelopment
2022-08-17 06:32:12 +00:00
parent 32d64f1037
commit 79a629c9ca
37 changed files with 199 additions and 399 deletions

View File

@@ -92,7 +92,7 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
if ((_hpPercent < 100) && (event.getAttacker().getCurrentHpPercent() > _hpPercent)) if ((_hpPercent < 100) && (event.getTarget().getCurrentHpPercent() > _hpPercent))
{ {
return; return;
} }
@@ -102,10 +102,11 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
Skill triggerSkill = _skill.getSkill();
WorldObject target = null; WorldObject target = null;
try try
{ {
target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), _skill.getSkill(), false, false, false); target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), triggerSkill, false, false, false);
} }
catch (Exception e) catch (Exception e)
{ {
@@ -116,25 +117,16 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
final Skill triggerSkill; if (_skillLevelScaleTo > 0)
if (_skillLevelScaleTo <= 0)
{ {
triggerSkill = _skill.getSkill(); final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(triggerSkill.getId());
}
else
{
final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(_skill.getSkillId());
if (buffInfo != null) if (buffInfo != null)
{ {
triggerSkill = SkillData.getInstance().getSkill(_skill.getSkillId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1)); triggerSkill = SkillData.getInstance().getSkill(triggerSkill.getId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1));
}
else
{
triggerSkill = _skill.getSkill();
} }
} }
SkillCaster.triggerCast(event.getAttacker(), (Creature) target, triggerSkill); SkillCaster.triggerCast(event.getTarget(), (Creature) target, triggerSkill);
} }
@Override @Override

View File

@@ -371,11 +371,11 @@
<excludedFromCheck>true</excludedFromCheck> <excludedFromCheck>true</excludedFromCheck>
<effects> <effects>
<effect name="TriggerSkillByDamage"> <effect name="TriggerSkillByDamage">
<!-- Undying Will -->
<attackerType>Creature</attackerType> <attackerType>Creature</attackerType>
<chance>100</chance> <chance>100</chance>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<minDamage>1</minDamage> <minDamage>1</minDamage>
<hpPercent>30</hpPercent>
<skillId>1918</skillId> <!-- Undying Will --> <skillId>1918</skillId> <!-- Undying Will -->
<skillLevel>1</skillLevel> <skillLevel>1</skillLevel>
</effect> </effect>
@@ -400,7 +400,7 @@
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
<conditions> <conditions>
<condition name="RemainHpPer"> <condition name="RemainHpPer">
<amount>20</amount> <amount>30</amount>
<percentType>LESS</percentType> <percentType>LESS</percentType>
<affectType>CASTER</affectType> <affectType>CASTER</affectType>
</condition> </condition>

View File

@@ -92,7 +92,7 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
if ((_hpPercent < 100) && (event.getAttacker().getCurrentHpPercent() > _hpPercent)) if ((_hpPercent < 100) && (event.getTarget().getCurrentHpPercent() > _hpPercent))
{ {
return; return;
} }
@@ -102,10 +102,11 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
Skill triggerSkill = _skill.getSkill();
WorldObject target = null; WorldObject target = null;
try try
{ {
target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), _skill.getSkill(), false, false, false); target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), triggerSkill, false, false, false);
} }
catch (Exception e) catch (Exception e)
{ {
@@ -116,25 +117,16 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
final Skill triggerSkill; if (_skillLevelScaleTo > 0)
if (_skillLevelScaleTo <= 0)
{ {
triggerSkill = _skill.getSkill(); final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(triggerSkill.getId());
}
else
{
final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(_skill.getSkillId());
if (buffInfo != null) if (buffInfo != null)
{ {
triggerSkill = SkillData.getInstance().getSkill(_skill.getSkillId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1)); triggerSkill = SkillData.getInstance().getSkill(triggerSkill.getId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1));
}
else
{
triggerSkill = _skill.getSkill();
} }
} }
SkillCaster.triggerCast(event.getAttacker(), (Creature) target, triggerSkill); SkillCaster.triggerCast(event.getTarget(), (Creature) target, triggerSkill);
} }
@Override @Override

View File

@@ -371,11 +371,11 @@
<excludedFromCheck>true</excludedFromCheck> <excludedFromCheck>true</excludedFromCheck>
<effects> <effects>
<effect name="TriggerSkillByDamage"> <effect name="TriggerSkillByDamage">
<!-- Undying Will -->
<attackerType>Creature</attackerType> <attackerType>Creature</attackerType>
<chance>100</chance> <chance>100</chance>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<minDamage>1</minDamage> <minDamage>1</minDamage>
<hpPercent>30</hpPercent>
<skillId>1918</skillId> <!-- Undying Will --> <skillId>1918</skillId> <!-- Undying Will -->
<skillLevel>1</skillLevel> <skillLevel>1</skillLevel>
</effect> </effect>
@@ -400,7 +400,7 @@
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
<conditions> <conditions>
<condition name="RemainHpPer"> <condition name="RemainHpPer">
<amount>20</amount> <amount>30</amount>
<percentType>LESS</percentType> <percentType>LESS</percentType>
<affectType>CASTER</affectType> <affectType>CASTER</affectType>
</condition> </condition>

View File

@@ -92,7 +92,7 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
if ((_hpPercent < 100) && (event.getAttacker().getCurrentHpPercent() > _hpPercent)) if ((_hpPercent < 100) && (event.getTarget().getCurrentHpPercent() > _hpPercent))
{ {
return; return;
} }
@@ -102,10 +102,11 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
Skill triggerSkill = _skill.getSkill();
WorldObject target = null; WorldObject target = null;
try try
{ {
target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), _skill.getSkill(), false, false, false); target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), triggerSkill, false, false, false);
} }
catch (Exception e) catch (Exception e)
{ {
@@ -116,25 +117,16 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
final Skill triggerSkill; if (_skillLevelScaleTo > 0)
if (_skillLevelScaleTo <= 0)
{ {
triggerSkill = _skill.getSkill(); final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(triggerSkill.getId());
}
else
{
final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(_skill.getSkillId());
if (buffInfo != null) if (buffInfo != null)
{ {
triggerSkill = SkillData.getInstance().getSkill(_skill.getSkillId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1)); triggerSkill = SkillData.getInstance().getSkill(triggerSkill.getId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1));
}
else
{
triggerSkill = _skill.getSkill();
} }
} }
SkillCaster.triggerCast(event.getAttacker(), (Creature) target, triggerSkill); SkillCaster.triggerCast(event.getTarget(), (Creature) target, triggerSkill);
} }
@Override @Override

View File

@@ -371,11 +371,11 @@
<excludedFromCheck>true</excludedFromCheck> <excludedFromCheck>true</excludedFromCheck>
<effects> <effects>
<effect name="TriggerSkillByDamage"> <effect name="TriggerSkillByDamage">
<!-- Undying Will -->
<attackerType>Creature</attackerType> <attackerType>Creature</attackerType>
<chance>100</chance> <chance>100</chance>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<minDamage>1</minDamage> <minDamage>1</minDamage>
<hpPercent>30</hpPercent>
<skillId>1918</skillId> <!-- Undying Will --> <skillId>1918</skillId> <!-- Undying Will -->
<skillLevel>1</skillLevel> <skillLevel>1</skillLevel>
</effect> </effect>
@@ -400,7 +400,7 @@
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
<conditions> <conditions>
<condition name="RemainHpPer"> <condition name="RemainHpPer">
<amount>20</amount> <amount>30</amount>
<percentType>LESS</percentType> <percentType>LESS</percentType>
<affectType>CASTER</affectType> <affectType>CASTER</affectType>
</condition> </condition>

View File

@@ -92,7 +92,7 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
if ((_hpPercent < 100) && (event.getAttacker().getCurrentHpPercent() > _hpPercent)) if ((_hpPercent < 100) && (event.getTarget().getCurrentHpPercent() > _hpPercent))
{ {
return; return;
} }
@@ -102,10 +102,11 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
Skill triggerSkill = _skill.getSkill();
WorldObject target = null; WorldObject target = null;
try try
{ {
target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), _skill.getSkill(), false, false, false); target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), triggerSkill, false, false, false);
} }
catch (Exception e) catch (Exception e)
{ {
@@ -116,25 +117,16 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
final Skill triggerSkill; if (_skillLevelScaleTo > 0)
if (_skillLevelScaleTo <= 0)
{ {
triggerSkill = _skill.getSkill(); final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(triggerSkill.getId());
}
else
{
final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(_skill.getSkillId());
if (buffInfo != null) if (buffInfo != null)
{ {
triggerSkill = SkillData.getInstance().getSkill(_skill.getSkillId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1)); triggerSkill = SkillData.getInstance().getSkill(triggerSkill.getId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1));
}
else
{
triggerSkill = _skill.getSkill();
} }
} }
SkillCaster.triggerCast(event.getAttacker(), (Creature) target, triggerSkill); SkillCaster.triggerCast(event.getTarget(), (Creature) target, triggerSkill);
} }
@Override @Override

View File

@@ -371,11 +371,11 @@
<excludedFromCheck>true</excludedFromCheck> <excludedFromCheck>true</excludedFromCheck>
<effects> <effects>
<effect name="TriggerSkillByDamage"> <effect name="TriggerSkillByDamage">
<!-- Undying Will -->
<attackerType>Creature</attackerType> <attackerType>Creature</attackerType>
<chance>100</chance> <chance>100</chance>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<minDamage>1</minDamage> <minDamage>1</minDamage>
<hpPercent>30</hpPercent>
<skillId>1918</skillId> <!-- Undying Will --> <skillId>1918</skillId> <!-- Undying Will -->
<skillLevel>1</skillLevel> <skillLevel>1</skillLevel>
</effect> </effect>
@@ -400,7 +400,7 @@
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
<conditions> <conditions>
<condition name="RemainHpPer"> <condition name="RemainHpPer">
<amount>20</amount> <amount>30</amount>
<percentType>LESS</percentType> <percentType>LESS</percentType>
<affectType>CASTER</affectType> <affectType>CASTER</affectType>
</condition> </condition>

View File

@@ -92,7 +92,7 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
if ((_hpPercent < 100) && (event.getAttacker().getCurrentHpPercent() > _hpPercent)) if ((_hpPercent < 100) && (event.getTarget().getCurrentHpPercent() > _hpPercent))
{ {
return; return;
} }
@@ -102,10 +102,11 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
Skill triggerSkill = _skill.getSkill();
WorldObject target = null; WorldObject target = null;
try try
{ {
target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), _skill.getSkill(), false, false, false); target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), triggerSkill, false, false, false);
} }
catch (Exception e) catch (Exception e)
{ {
@@ -116,25 +117,16 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
final Skill triggerSkill; if (_skillLevelScaleTo > 0)
if (_skillLevelScaleTo <= 0)
{ {
triggerSkill = _skill.getSkill(); final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(triggerSkill.getId());
}
else
{
final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(_skill.getSkillId());
if (buffInfo != null) if (buffInfo != null)
{ {
triggerSkill = SkillData.getInstance().getSkill(_skill.getSkillId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1)); triggerSkill = SkillData.getInstance().getSkill(triggerSkill.getId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1));
}
else
{
triggerSkill = _skill.getSkill();
} }
} }
SkillCaster.triggerCast(event.getAttacker(), (Creature) target, triggerSkill); SkillCaster.triggerCast(event.getTarget(), (Creature) target, triggerSkill);
} }
@Override @Override

View File

@@ -371,11 +371,11 @@
<excludedFromCheck>true</excludedFromCheck> <excludedFromCheck>true</excludedFromCheck>
<effects> <effects>
<effect name="TriggerSkillByDamage"> <effect name="TriggerSkillByDamage">
<!-- Undying Will -->
<attackerType>Creature</attackerType> <attackerType>Creature</attackerType>
<chance>100</chance> <chance>100</chance>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<minDamage>1</minDamage> <minDamage>1</minDamage>
<hpPercent>30</hpPercent>
<skillId>1918</skillId> <!-- Undying Will --> <skillId>1918</skillId> <!-- Undying Will -->
<skillLevel>1</skillLevel> <skillLevel>1</skillLevel>
</effect> </effect>
@@ -400,7 +400,7 @@
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
<conditions> <conditions>
<condition name="RemainHpPer"> <condition name="RemainHpPer">
<amount>20</amount> <amount>30</amount>
<percentType>LESS</percentType> <percentType>LESS</percentType>
<affectType>CASTER</affectType> <affectType>CASTER</affectType>
</condition> </condition>

View File

@@ -92,7 +92,7 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
if ((_hpPercent < 100) && (event.getAttacker().getCurrentHpPercent() > _hpPercent)) if ((_hpPercent < 100) && (event.getTarget().getCurrentHpPercent() > _hpPercent))
{ {
return; return;
} }
@@ -102,10 +102,11 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
Skill triggerSkill = _skill.getSkill();
WorldObject target = null; WorldObject target = null;
try try
{ {
target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), _skill.getSkill(), false, false, false); target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), triggerSkill, false, false, false);
} }
catch (Exception e) catch (Exception e)
{ {
@@ -116,25 +117,16 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
final Skill triggerSkill; if (_skillLevelScaleTo > 0)
if (_skillLevelScaleTo <= 0)
{ {
triggerSkill = _skill.getSkill(); final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(triggerSkill.getId());
}
else
{
final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(_skill.getSkillId());
if (buffInfo != null) if (buffInfo != null)
{ {
triggerSkill = SkillData.getInstance().getSkill(_skill.getSkillId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1)); triggerSkill = SkillData.getInstance().getSkill(triggerSkill.getId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1));
}
else
{
triggerSkill = _skill.getSkill();
} }
} }
SkillCaster.triggerCast(event.getAttacker(), (Creature) target, triggerSkill); SkillCaster.triggerCast(event.getTarget(), (Creature) target, triggerSkill);
} }
@Override @Override

View File

@@ -371,11 +371,11 @@
<excludedFromCheck>true</excludedFromCheck> <excludedFromCheck>true</excludedFromCheck>
<effects> <effects>
<effect name="TriggerSkillByDamage"> <effect name="TriggerSkillByDamage">
<!-- Undying Will -->
<attackerType>Creature</attackerType> <attackerType>Creature</attackerType>
<chance>100</chance> <chance>100</chance>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<minDamage>1</minDamage> <minDamage>1</minDamage>
<hpPercent>30</hpPercent>
<skillId>1918</skillId> <!-- Undying Will --> <skillId>1918</skillId> <!-- Undying Will -->
<skillLevel>1</skillLevel> <skillLevel>1</skillLevel>
</effect> </effect>
@@ -400,7 +400,7 @@
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
<conditions> <conditions>
<condition name="RemainHpPer"> <condition name="RemainHpPer">
<amount>20</amount> <amount>30</amount>
<percentType>LESS</percentType> <percentType>LESS</percentType>
<affectType>CASTER</affectType> <affectType>CASTER</affectType>
</condition> </condition>

View File

@@ -92,7 +92,7 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
if ((_hpPercent < 100) && (event.getAttacker().getCurrentHpPercent() > _hpPercent)) if ((_hpPercent < 100) && (event.getTarget().getCurrentHpPercent() > _hpPercent))
{ {
return; return;
} }
@@ -102,10 +102,11 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
Skill triggerSkill = _skill.getSkill();
WorldObject target = null; WorldObject target = null;
try try
{ {
target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), _skill.getSkill(), false, false, false); target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), triggerSkill, false, false, false);
} }
catch (Exception e) catch (Exception e)
{ {
@@ -116,25 +117,16 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
final Skill triggerSkill; if (_skillLevelScaleTo > 0)
if (_skillLevelScaleTo <= 0)
{ {
triggerSkill = _skill.getSkill(); final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(triggerSkill.getId());
}
else
{
final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(_skill.getSkillId());
if (buffInfo != null) if (buffInfo != null)
{ {
triggerSkill = SkillData.getInstance().getSkill(_skill.getSkillId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1)); triggerSkill = SkillData.getInstance().getSkill(triggerSkill.getId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1));
}
else
{
triggerSkill = _skill.getSkill();
} }
} }
SkillCaster.triggerCast(event.getAttacker(), (Creature) target, triggerSkill); SkillCaster.triggerCast(event.getTarget(), (Creature) target, triggerSkill);
} }
@Override @Override

View File

@@ -371,11 +371,11 @@
<excludedFromCheck>true</excludedFromCheck> <excludedFromCheck>true</excludedFromCheck>
<effects> <effects>
<effect name="TriggerSkillByDamage"> <effect name="TriggerSkillByDamage">
<!-- Undying Will -->
<attackerType>Creature</attackerType> <attackerType>Creature</attackerType>
<chance>100</chance> <chance>100</chance>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<minDamage>1</minDamage> <minDamage>1</minDamage>
<hpPercent>30</hpPercent>
<skillId>1918</skillId> <!-- Undying Will --> <skillId>1918</skillId> <!-- Undying Will -->
<skillLevel>1</skillLevel> <skillLevel>1</skillLevel>
</effect> </effect>
@@ -400,7 +400,7 @@
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
<conditions> <conditions>
<condition name="RemainHpPer"> <condition name="RemainHpPer">
<amount>20</amount> <amount>30</amount>
<percentType>LESS</percentType> <percentType>LESS</percentType>
<affectType>CASTER</affectType> <affectType>CASTER</affectType>
</condition> </condition>

View File

@@ -92,7 +92,7 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
if ((_hpPercent < 100) && (event.getAttacker().getCurrentHpPercent() > _hpPercent)) if ((_hpPercent < 100) && (event.getTarget().getCurrentHpPercent() > _hpPercent))
{ {
return; return;
} }
@@ -102,10 +102,11 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
Skill triggerSkill = _skill.getSkill();
WorldObject target = null; WorldObject target = null;
try try
{ {
target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), _skill.getSkill(), false, false, false); target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), triggerSkill, false, false, false);
} }
catch (Exception e) catch (Exception e)
{ {
@@ -116,25 +117,16 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
final Skill triggerSkill; if (_skillLevelScaleTo > 0)
if (_skillLevelScaleTo <= 0)
{ {
triggerSkill = _skill.getSkill(); final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(triggerSkill.getId());
}
else
{
final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(_skill.getSkillId());
if (buffInfo != null) if (buffInfo != null)
{ {
triggerSkill = SkillData.getInstance().getSkill(_skill.getSkillId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1)); triggerSkill = SkillData.getInstance().getSkill(triggerSkill.getId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1));
}
else
{
triggerSkill = _skill.getSkill();
} }
} }
SkillCaster.triggerCast(event.getAttacker(), (Creature) target, triggerSkill); SkillCaster.triggerCast(event.getTarget(), (Creature) target, triggerSkill);
} }
@Override @Override

View File

@@ -371,11 +371,11 @@
<excludedFromCheck>true</excludedFromCheck> <excludedFromCheck>true</excludedFromCheck>
<effects> <effects>
<effect name="TriggerSkillByDamage"> <effect name="TriggerSkillByDamage">
<!-- Undying Will -->
<attackerType>Creature</attackerType> <attackerType>Creature</attackerType>
<chance>100</chance> <chance>100</chance>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<minDamage>1</minDamage> <minDamage>1</minDamage>
<hpPercent>30</hpPercent>
<skillId>1918</skillId> <!-- Undying Will --> <skillId>1918</skillId> <!-- Undying Will -->
<skillLevel>1</skillLevel> <skillLevel>1</skillLevel>
</effect> </effect>
@@ -400,7 +400,7 @@
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
<conditions> <conditions>
<condition name="RemainHpPer"> <condition name="RemainHpPer">
<amount>20</amount> <amount>30</amount>
<percentType>LESS</percentType> <percentType>LESS</percentType>
<affectType>CASTER</affectType> <affectType>CASTER</affectType>
</condition> </condition>

View File

@@ -92,7 +92,7 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
if ((_hpPercent < 100) && (event.getAttacker().getCurrentHpPercent() > _hpPercent)) if ((_hpPercent < 100) && (event.getTarget().getCurrentHpPercent() > _hpPercent))
{ {
return; return;
} }
@@ -102,10 +102,11 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
Skill triggerSkill = _skill.getSkill();
WorldObject target = null; WorldObject target = null;
try try
{ {
target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), _skill.getSkill(), false, false, false); target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), triggerSkill, false, false, false);
} }
catch (Exception e) catch (Exception e)
{ {
@@ -116,25 +117,16 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
final Skill triggerSkill; if (_skillLevelScaleTo > 0)
if (_skillLevelScaleTo <= 0)
{ {
triggerSkill = _skill.getSkill(); final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(triggerSkill.getId());
}
else
{
final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(_skill.getSkillId());
if (buffInfo != null) if (buffInfo != null)
{ {
triggerSkill = SkillData.getInstance().getSkill(_skill.getSkillId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1)); triggerSkill = SkillData.getInstance().getSkill(triggerSkill.getId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1));
}
else
{
triggerSkill = _skill.getSkill();
} }
} }
SkillCaster.triggerCast(event.getAttacker(), (Creature) target, triggerSkill); SkillCaster.triggerCast(event.getTarget(), (Creature) target, triggerSkill);
} }
@Override @Override

View File

@@ -468,11 +468,11 @@
<excludedFromCheck>true</excludedFromCheck> <excludedFromCheck>true</excludedFromCheck>
<effects> <effects>
<effect name="TriggerSkillByDamage"> <effect name="TriggerSkillByDamage">
<!-- Undying Will -->
<attackerType>Creature</attackerType> <attackerType>Creature</attackerType>
<chance>100</chance> <chance>100</chance>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<minDamage>1</minDamage> <minDamage>1</minDamage>
<hpPercent>30</hpPercent>
<skillId>1918</skillId> <!-- Undying Will --> <skillId>1918</skillId> <!-- Undying Will -->
<skillLevel>1</skillLevel> <skillLevel>1</skillLevel>
</effect> </effect>
@@ -497,7 +497,7 @@
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
<conditions> <conditions>
<condition name="RemainHpPer"> <condition name="RemainHpPer">
<amount>20</amount> <amount>30</amount>
<percentType>LESS</percentType> <percentType>LESS</percentType>
<affectType>CASTER</affectType> <affectType>CASTER</affectType>
</condition> </condition>

View File

@@ -92,7 +92,7 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
if ((_hpPercent < 100) && (event.getAttacker().getCurrentHpPercent() > _hpPercent)) if ((_hpPercent < 100) && (event.getTarget().getCurrentHpPercent() > _hpPercent))
{ {
return; return;
} }
@@ -102,10 +102,11 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
Skill triggerSkill = _skill.getSkill();
WorldObject target = null; WorldObject target = null;
try try
{ {
target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), _skill.getSkill(), false, false, false); target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), triggerSkill, false, false, false);
} }
catch (Exception e) catch (Exception e)
{ {
@@ -116,25 +117,16 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
final Skill triggerSkill; if (_skillLevelScaleTo > 0)
if (_skillLevelScaleTo <= 0)
{ {
triggerSkill = _skill.getSkill(); final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(triggerSkill.getId());
}
else
{
final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(_skill.getSkillId());
if (buffInfo != null) if (buffInfo != null)
{ {
triggerSkill = SkillData.getInstance().getSkill(_skill.getSkillId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1)); triggerSkill = SkillData.getInstance().getSkill(triggerSkill.getId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1));
}
else
{
triggerSkill = _skill.getSkill();
} }
} }
SkillCaster.triggerCast(event.getAttacker(), (Creature) target, triggerSkill); SkillCaster.triggerCast(event.getTarget(), (Creature) target, triggerSkill);
} }
@Override @Override

View File

@@ -468,11 +468,11 @@
<excludedFromCheck>true</excludedFromCheck> <excludedFromCheck>true</excludedFromCheck>
<effects> <effects>
<effect name="TriggerSkillByDamage"> <effect name="TriggerSkillByDamage">
<!-- Undying Will -->
<attackerType>Creature</attackerType> <attackerType>Creature</attackerType>
<chance>100</chance> <chance>100</chance>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<minDamage>1</minDamage> <minDamage>1</minDamage>
<hpPercent>30</hpPercent>
<skillId>1918</skillId> <!-- Undying Will --> <skillId>1918</skillId> <!-- Undying Will -->
<skillLevel>1</skillLevel> <skillLevel>1</skillLevel>
</effect> </effect>
@@ -497,7 +497,7 @@
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
<conditions> <conditions>
<condition name="RemainHpPer"> <condition name="RemainHpPer">
<amount>20</amount> <amount>30</amount>
<percentType>LESS</percentType> <percentType>LESS</percentType>
<affectType>CASTER</affectType> <affectType>CASTER</affectType>
</condition> </condition>

View File

@@ -92,7 +92,7 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
if ((_hpPercent < 100) && (event.getAttacker().getCurrentHpPercent() > _hpPercent)) if ((_hpPercent < 100) && (event.getTarget().getCurrentHpPercent() > _hpPercent))
{ {
return; return;
} }
@@ -102,10 +102,11 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
Skill triggerSkill = _skill.getSkill();
WorldObject target = null; WorldObject target = null;
try try
{ {
target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), _skill.getSkill(), false, false, false); target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), triggerSkill, false, false, false);
} }
catch (Exception e) catch (Exception e)
{ {
@@ -116,25 +117,16 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
final Skill triggerSkill; if (_skillLevelScaleTo > 0)
if (_skillLevelScaleTo <= 0)
{ {
triggerSkill = _skill.getSkill(); final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(triggerSkill.getId());
}
else
{
final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(_skill.getSkillId());
if (buffInfo != null) if (buffInfo != null)
{ {
triggerSkill = SkillData.getInstance().getSkill(_skill.getSkillId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1)); triggerSkill = SkillData.getInstance().getSkill(triggerSkill.getId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1));
}
else
{
triggerSkill = _skill.getSkill();
} }
} }
SkillCaster.triggerCast(event.getAttacker(), (Creature) target, triggerSkill); SkillCaster.triggerCast(event.getTarget(), (Creature) target, triggerSkill);
} }
@Override @Override

View File

@@ -468,11 +468,11 @@
<excludedFromCheck>true</excludedFromCheck> <excludedFromCheck>true</excludedFromCheck>
<effects> <effects>
<effect name="TriggerSkillByDamage"> <effect name="TriggerSkillByDamage">
<!-- Undying Will -->
<attackerType>Creature</attackerType> <attackerType>Creature</attackerType>
<chance>100</chance> <chance>100</chance>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<minDamage>1</minDamage> <minDamage>1</minDamage>
<hpPercent>30</hpPercent>
<skillId>1918</skillId> <!-- Undying Will --> <skillId>1918</skillId> <!-- Undying Will -->
<skillLevel>1</skillLevel> <skillLevel>1</skillLevel>
</effect> </effect>
@@ -497,7 +497,7 @@
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
<conditions> <conditions>
<condition name="RemainHpPer"> <condition name="RemainHpPer">
<amount>20</amount> <amount>30</amount>
<percentType>LESS</percentType> <percentType>LESS</percentType>
<affectType>CASTER</affectType> <affectType>CASTER</affectType>
</condition> </condition>

View File

@@ -92,7 +92,7 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
if ((_hpPercent < 100) && (event.getAttacker().getCurrentHpPercent() > _hpPercent)) if ((_hpPercent < 100) && (event.getTarget().getCurrentHpPercent() > _hpPercent))
{ {
return; return;
} }
@@ -102,10 +102,11 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
Skill triggerSkill = _skill.getSkill();
WorldObject target = null; WorldObject target = null;
try try
{ {
target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), _skill.getSkill(), false, false, false); target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), triggerSkill, false, false, false);
} }
catch (Exception e) catch (Exception e)
{ {
@@ -116,25 +117,16 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
final Skill triggerSkill; if (_skillLevelScaleTo > 0)
if (_skillLevelScaleTo <= 0)
{ {
triggerSkill = _skill.getSkill(); final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(triggerSkill.getId());
}
else
{
final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(_skill.getSkillId());
if (buffInfo != null) if (buffInfo != null)
{ {
triggerSkill = SkillData.getInstance().getSkill(_skill.getSkillId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1)); triggerSkill = SkillData.getInstance().getSkill(triggerSkill.getId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1));
}
else
{
triggerSkill = _skill.getSkill();
} }
} }
SkillCaster.triggerCast(event.getAttacker(), (Creature) target, triggerSkill); SkillCaster.triggerCast(event.getTarget(), (Creature) target, triggerSkill);
} }
@Override @Override

View File

@@ -468,11 +468,11 @@
<excludedFromCheck>true</excludedFromCheck> <excludedFromCheck>true</excludedFromCheck>
<effects> <effects>
<effect name="TriggerSkillByDamage"> <effect name="TriggerSkillByDamage">
<!-- Undying Will -->
<attackerType>Creature</attackerType> <attackerType>Creature</attackerType>
<chance>100</chance> <chance>100</chance>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<minDamage>1</minDamage> <minDamage>1</minDamage>
<hpPercent>30</hpPercent>
<skillId>1918</skillId> <!-- Undying Will --> <skillId>1918</skillId> <!-- Undying Will -->
<skillLevel>1</skillLevel> <skillLevel>1</skillLevel>
</effect> </effect>
@@ -497,7 +497,7 @@
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
<conditions> <conditions>
<condition name="RemainHpPer"> <condition name="RemainHpPer">
<amount>20</amount> <amount>30</amount>
<percentType>LESS</percentType> <percentType>LESS</percentType>
<affectType>CASTER</affectType> <affectType>CASTER</affectType>
</condition> </condition>

View File

@@ -92,7 +92,7 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
if ((_hpPercent < 100) && (event.getAttacker().getCurrentHpPercent() > _hpPercent)) if ((_hpPercent < 100) && (event.getTarget().getCurrentHpPercent() > _hpPercent))
{ {
return; return;
} }
@@ -102,10 +102,11 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
Skill triggerSkill = _skill.getSkill();
WorldObject target = null; WorldObject target = null;
try try
{ {
target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), _skill.getSkill(), false, false, false); target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), triggerSkill, false, false, false);
} }
catch (Exception e) catch (Exception e)
{ {
@@ -116,25 +117,16 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
final Skill triggerSkill; if (_skillLevelScaleTo > 0)
if (_skillLevelScaleTo <= 0)
{ {
triggerSkill = _skill.getSkill(); final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(triggerSkill.getId());
}
else
{
final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(_skill.getSkillId());
if (buffInfo != null) if (buffInfo != null)
{ {
triggerSkill = SkillData.getInstance().getSkill(_skill.getSkillId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1)); triggerSkill = SkillData.getInstance().getSkill(triggerSkill.getId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1));
}
else
{
triggerSkill = _skill.getSkill();
} }
} }
SkillCaster.triggerCast(event.getAttacker(), (Creature) target, triggerSkill); SkillCaster.triggerCast(event.getTarget(), (Creature) target, triggerSkill);
} }
@Override @Override

View File

@@ -92,7 +92,7 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
if ((_hpPercent < 100) && (event.getAttacker().getCurrentHpPercent() > _hpPercent)) if ((_hpPercent < 100) && (event.getTarget().getCurrentHpPercent() > _hpPercent))
{ {
return; return;
} }
@@ -102,10 +102,11 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
Skill triggerSkill = _skill.getSkill();
WorldObject target = null; WorldObject target = null;
try try
{ {
target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), _skill.getSkill(), false, false, false); target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), triggerSkill, false, false, false);
} }
catch (Exception e) catch (Exception e)
{ {
@@ -116,25 +117,16 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
final Skill triggerSkill; if (_skillLevelScaleTo > 0)
if (_skillLevelScaleTo <= 0)
{ {
triggerSkill = _skill.getSkill(); final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(triggerSkill.getId());
}
else
{
final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(_skill.getSkillId());
if (buffInfo != null) if (buffInfo != null)
{ {
triggerSkill = SkillData.getInstance().getSkill(_skill.getSkillId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1)); triggerSkill = SkillData.getInstance().getSkill(triggerSkill.getId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1));
}
else
{
triggerSkill = _skill.getSkill();
} }
} }
SkillCaster.triggerCast(event.getAttacker(), (Creature) target, triggerSkill); SkillCaster.triggerCast(event.getTarget(), (Creature) target, triggerSkill);
} }
@Override @Override

View File

@@ -92,7 +92,7 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
if ((_hpPercent < 100) && (event.getAttacker().getCurrentHpPercent() > _hpPercent)) if ((_hpPercent < 100) && (event.getTarget().getCurrentHpPercent() > _hpPercent))
{ {
return; return;
} }
@@ -102,10 +102,11 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
Skill triggerSkill = _skill.getSkill();
WorldObject target = null; WorldObject target = null;
try try
{ {
target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), _skill.getSkill(), false, false, false); target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), triggerSkill, false, false, false);
} }
catch (Exception e) catch (Exception e)
{ {
@@ -116,25 +117,16 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
final Skill triggerSkill; if (_skillLevelScaleTo > 0)
if (_skillLevelScaleTo <= 0)
{ {
triggerSkill = _skill.getSkill(); final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(triggerSkill.getId());
}
else
{
final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(_skill.getSkillId());
if (buffInfo != null) if (buffInfo != null)
{ {
triggerSkill = SkillData.getInstance().getSkill(_skill.getSkillId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1)); triggerSkill = SkillData.getInstance().getSkill(triggerSkill.getId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1));
}
else
{
triggerSkill = _skill.getSkill();
} }
} }
SkillCaster.triggerCast(event.getAttacker(), (Creature) target, triggerSkill); SkillCaster.triggerCast(event.getTarget(), (Creature) target, triggerSkill);
} }
@Override @Override

View File

@@ -92,7 +92,7 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
if ((_hpPercent < 100) && (event.getAttacker().getCurrentHpPercent() > _hpPercent)) if ((_hpPercent < 100) && (event.getTarget().getCurrentHpPercent() > _hpPercent))
{ {
return; return;
} }
@@ -102,10 +102,11 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
Skill triggerSkill = _skill.getSkill();
WorldObject target = null; WorldObject target = null;
try try
{ {
target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), _skill.getSkill(), false, false, false); target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), triggerSkill, false, false, false);
} }
catch (Exception e) catch (Exception e)
{ {
@@ -116,25 +117,16 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
final Skill triggerSkill; if (_skillLevelScaleTo > 0)
if (_skillLevelScaleTo <= 0)
{ {
triggerSkill = _skill.getSkill(); final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(triggerSkill.getId());
}
else
{
final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(_skill.getSkillId());
if (buffInfo != null) if (buffInfo != null)
{ {
triggerSkill = SkillData.getInstance().getSkill(_skill.getSkillId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1)); triggerSkill = SkillData.getInstance().getSkill(triggerSkill.getId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1));
}
else
{
triggerSkill = _skill.getSkill();
} }
} }
SkillCaster.triggerCast(event.getAttacker(), (Creature) target, triggerSkill); SkillCaster.triggerCast(event.getTarget(), (Creature) target, triggerSkill);
} }
@Override @Override

View File

@@ -92,7 +92,7 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
if ((_hpPercent < 100) && (event.getAttacker().getCurrentHpPercent() > _hpPercent)) if ((_hpPercent < 100) && (event.getTarget().getCurrentHpPercent() > _hpPercent))
{ {
return; return;
} }
@@ -102,10 +102,11 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
Skill triggerSkill = _skill.getSkill();
WorldObject target = null; WorldObject target = null;
try try
{ {
target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), _skill.getSkill(), false, false, false); target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), triggerSkill, false, false, false);
} }
catch (Exception e) catch (Exception e)
{ {
@@ -116,25 +117,16 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
final Skill triggerSkill; if (_skillLevelScaleTo > 0)
if (_skillLevelScaleTo <= 0)
{ {
triggerSkill = _skill.getSkill(); final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(triggerSkill.getId());
}
else
{
final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(_skill.getSkillId());
if (buffInfo != null) if (buffInfo != null)
{ {
triggerSkill = SkillData.getInstance().getSkill(_skill.getSkillId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1)); triggerSkill = SkillData.getInstance().getSkill(triggerSkill.getId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1));
}
else
{
triggerSkill = _skill.getSkill();
} }
} }
SkillCaster.triggerCast(event.getAttacker(), (Creature) target, triggerSkill); SkillCaster.triggerCast(event.getTarget(), (Creature) target, triggerSkill);
} }
@Override @Override

View File

@@ -92,7 +92,7 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
if ((_hpPercent < 100) && (event.getAttacker().getCurrentHpPercent() > _hpPercent)) if ((_hpPercent < 100) && (event.getTarget().getCurrentHpPercent() > _hpPercent))
{ {
return; return;
} }
@@ -102,10 +102,11 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
Skill triggerSkill = _skill.getSkill();
WorldObject target = null; WorldObject target = null;
try try
{ {
target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), _skill.getSkill(), false, false, false); target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), triggerSkill, false, false, false);
} }
catch (Exception e) catch (Exception e)
{ {
@@ -116,25 +117,16 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
final Skill triggerSkill; if (_skillLevelScaleTo > 0)
if (_skillLevelScaleTo <= 0)
{ {
triggerSkill = _skill.getSkill(); final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(triggerSkill.getId());
}
else
{
final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(_skill.getSkillId());
if (buffInfo != null) if (buffInfo != null)
{ {
triggerSkill = SkillData.getInstance().getSkill(_skill.getSkillId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1)); triggerSkill = SkillData.getInstance().getSkill(triggerSkill.getId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1));
}
else
{
triggerSkill = _skill.getSkill();
} }
} }
SkillCaster.triggerCast(event.getAttacker(), (Creature) target, triggerSkill); SkillCaster.triggerCast(event.getTarget(), (Creature) target, triggerSkill);
} }
@Override @Override

View File

@@ -92,7 +92,7 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
if ((_hpPercent < 100) && (event.getAttacker().getCurrentHpPercent() > _hpPercent)) if ((_hpPercent < 100) && (event.getTarget().getCurrentHpPercent() > _hpPercent))
{ {
return; return;
} }
@@ -102,10 +102,11 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
Skill triggerSkill = _skill.getSkill();
WorldObject target = null; WorldObject target = null;
try try
{ {
target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), _skill.getSkill(), false, false, false); target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), triggerSkill, false, false, false);
} }
catch (Exception e) catch (Exception e)
{ {
@@ -116,25 +117,16 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
final Skill triggerSkill; if (_skillLevelScaleTo > 0)
if (_skillLevelScaleTo <= 0)
{ {
triggerSkill = _skill.getSkill(); final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(triggerSkill.getId());
}
else
{
final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(_skill.getSkillId());
if (buffInfo != null) if (buffInfo != null)
{ {
triggerSkill = SkillData.getInstance().getSkill(_skill.getSkillId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1)); triggerSkill = SkillData.getInstance().getSkill(triggerSkill.getId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1));
}
else
{
triggerSkill = _skill.getSkill();
} }
} }
SkillCaster.triggerCast(event.getAttacker(), (Creature) target, triggerSkill); SkillCaster.triggerCast(event.getTarget(), (Creature) target, triggerSkill);
} }
@Override @Override

View File

@@ -92,7 +92,7 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
if ((_hpPercent < 100) && (event.getAttacker().getCurrentHpPercent() > _hpPercent)) if ((_hpPercent < 100) && (event.getTarget().getCurrentHpPercent() > _hpPercent))
{ {
return; return;
} }
@@ -102,10 +102,11 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
Skill triggerSkill = _skill.getSkill();
WorldObject target = null; WorldObject target = null;
try try
{ {
target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), _skill.getSkill(), false, false, false); target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), triggerSkill, false, false, false);
} }
catch (Exception e) catch (Exception e)
{ {
@@ -116,25 +117,16 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
final Skill triggerSkill; if (_skillLevelScaleTo > 0)
if (_skillLevelScaleTo <= 0)
{ {
triggerSkill = _skill.getSkill(); final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(triggerSkill.getId());
}
else
{
final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(_skill.getSkillId());
if (buffInfo != null) if (buffInfo != null)
{ {
triggerSkill = SkillData.getInstance().getSkill(_skill.getSkillId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1)); triggerSkill = SkillData.getInstance().getSkill(triggerSkill.getId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1));
}
else
{
triggerSkill = _skill.getSkill();
} }
} }
SkillCaster.triggerCast(event.getAttacker(), (Creature) target, triggerSkill); SkillCaster.triggerCast(event.getTarget(), (Creature) target, triggerSkill);
} }
@Override @Override

View File

@@ -92,7 +92,7 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
if ((_hpPercent < 100) && (event.getAttacker().getCurrentHpPercent() > _hpPercent)) if ((_hpPercent < 100) && (event.getTarget().getCurrentHpPercent() > _hpPercent))
{ {
return; return;
} }
@@ -102,10 +102,11 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
Skill triggerSkill = _skill.getSkill();
WorldObject target = null; WorldObject target = null;
try try
{ {
target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), _skill.getSkill(), false, false, false); target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), triggerSkill, false, false, false);
} }
catch (Exception e) catch (Exception e)
{ {
@@ -116,25 +117,16 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
final Skill triggerSkill; if (_skillLevelScaleTo > 0)
if (_skillLevelScaleTo <= 0)
{ {
triggerSkill = _skill.getSkill(); final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(triggerSkill.getId());
}
else
{
final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(_skill.getSkillId());
if (buffInfo != null) if (buffInfo != null)
{ {
triggerSkill = SkillData.getInstance().getSkill(_skill.getSkillId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1)); triggerSkill = SkillData.getInstance().getSkill(triggerSkill.getId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1));
}
else
{
triggerSkill = _skill.getSkill();
} }
} }
SkillCaster.triggerCast(event.getAttacker(), (Creature) target, triggerSkill); SkillCaster.triggerCast(event.getTarget(), (Creature) target, triggerSkill);
} }
@Override @Override

View File

@@ -92,7 +92,7 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
if ((_hpPercent < 100) && (event.getAttacker().getCurrentHpPercent() > _hpPercent)) if ((_hpPercent < 100) && (event.getTarget().getCurrentHpPercent() > _hpPercent))
{ {
return; return;
} }
@@ -102,10 +102,11 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
Skill triggerSkill = _skill.getSkill();
WorldObject target = null; WorldObject target = null;
try try
{ {
target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), _skill.getSkill(), false, false, false); target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), triggerSkill, false, false, false);
} }
catch (Exception e) catch (Exception e)
{ {
@@ -116,25 +117,16 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
final Skill triggerSkill; if (_skillLevelScaleTo > 0)
if (_skillLevelScaleTo <= 0)
{ {
triggerSkill = _skill.getSkill(); final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(triggerSkill.getId());
}
else
{
final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(_skill.getSkillId());
if (buffInfo != null) if (buffInfo != null)
{ {
triggerSkill = SkillData.getInstance().getSkill(_skill.getSkillId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1)); triggerSkill = SkillData.getInstance().getSkill(triggerSkill.getId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1));
}
else
{
triggerSkill = _skill.getSkill();
} }
} }
SkillCaster.triggerCast(event.getAttacker(), (Creature) target, triggerSkill); SkillCaster.triggerCast(event.getTarget(), (Creature) target, triggerSkill);
} }
@Override @Override

View File

@@ -92,7 +92,7 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
if ((_hpPercent < 100) && (event.getAttacker().getCurrentHpPercent() > _hpPercent)) if ((_hpPercent < 100) && (event.getTarget().getCurrentHpPercent() > _hpPercent))
{ {
return; return;
} }
@@ -102,10 +102,11 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
Skill triggerSkill = _skill.getSkill();
WorldObject target = null; WorldObject target = null;
try try
{ {
target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), _skill.getSkill(), false, false, false); target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), triggerSkill, false, false, false);
} }
catch (Exception e) catch (Exception e)
{ {
@@ -116,25 +117,16 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
final Skill triggerSkill; if (_skillLevelScaleTo > 0)
if (_skillLevelScaleTo <= 0)
{ {
triggerSkill = _skill.getSkill(); final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(triggerSkill.getId());
}
else
{
final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(_skill.getSkillId());
if (buffInfo != null) if (buffInfo != null)
{ {
triggerSkill = SkillData.getInstance().getSkill(_skill.getSkillId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1)); triggerSkill = SkillData.getInstance().getSkill(triggerSkill.getId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1));
}
else
{
triggerSkill = _skill.getSkill();
} }
} }
SkillCaster.triggerCast(event.getAttacker(), (Creature) target, triggerSkill); SkillCaster.triggerCast(event.getTarget(), (Creature) target, triggerSkill);
} }
@Override @Override

View File

@@ -92,7 +92,7 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
if ((_hpPercent < 100) && (event.getAttacker().getCurrentHpPercent() > _hpPercent)) if ((_hpPercent < 100) && (event.getTarget().getCurrentHpPercent() > _hpPercent))
{ {
return; return;
} }
@@ -102,10 +102,11 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
Skill triggerSkill = _skill.getSkill();
WorldObject target = null; WorldObject target = null;
try try
{ {
target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), _skill.getSkill(), false, false, false); target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), triggerSkill, false, false, false);
} }
catch (Exception e) catch (Exception e)
{ {
@@ -116,25 +117,16 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
final Skill triggerSkill; if (_skillLevelScaleTo > 0)
if (_skillLevelScaleTo <= 0)
{ {
triggerSkill = _skill.getSkill(); final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(triggerSkill.getId());
}
else
{
final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(_skill.getSkillId());
if (buffInfo != null) if (buffInfo != null)
{ {
triggerSkill = SkillData.getInstance().getSkill(_skill.getSkillId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1)); triggerSkill = SkillData.getInstance().getSkill(triggerSkill.getId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1));
}
else
{
triggerSkill = _skill.getSkill();
} }
} }
SkillCaster.triggerCast(event.getAttacker(), (Creature) target, triggerSkill); SkillCaster.triggerCast(event.getTarget(), (Creature) target, triggerSkill);
} }
@Override @Override

View File

@@ -92,7 +92,7 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
if ((_hpPercent < 100) && (event.getAttacker().getCurrentHpPercent() > _hpPercent)) if ((_hpPercent < 100) && (event.getTarget().getCurrentHpPercent() > _hpPercent))
{ {
return; return;
} }
@@ -102,10 +102,11 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
Skill triggerSkill = _skill.getSkill();
WorldObject target = null; WorldObject target = null;
try try
{ {
target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), _skill.getSkill(), false, false, false); target = TargetHandler.getInstance().getHandler(_targetType).getTarget(event.getTarget(), event.getAttacker(), triggerSkill, false, false, false);
} }
catch (Exception e) catch (Exception e)
{ {
@@ -116,25 +117,16 @@ public class TriggerSkillByDamage extends AbstractEffect
return; return;
} }
final Skill triggerSkill; if (_skillLevelScaleTo > 0)
if (_skillLevelScaleTo <= 0)
{ {
triggerSkill = _skill.getSkill(); final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(triggerSkill.getId());
}
else
{
final BuffInfo buffInfo = ((Creature) target).getEffectList().getBuffInfoBySkillId(_skill.getSkillId());
if (buffInfo != null) if (buffInfo != null)
{ {
triggerSkill = SkillData.getInstance().getSkill(_skill.getSkillId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1)); triggerSkill = SkillData.getInstance().getSkill(triggerSkill.getId(), Math.min(_skillLevelScaleTo, buffInfo.getSkill().getLevel() + 1));
}
else
{
triggerSkill = _skill.getSkill();
} }
} }
SkillCaster.triggerCast(event.getAttacker(), (Creature) target, triggerSkill); SkillCaster.triggerCast(event.getTarget(), (Creature) target, triggerSkill);
} }
@Override @Override