diff --git a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java index cf15bb42ad..5140595378 100644 --- a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java +++ b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java @@ -45,6 +45,11 @@ public class Decoy extends Creature private Future _hateSpam; public Decoy(NpcTemplate template, Player owner, int totalLifeTime) + { + this(template, owner, totalLifeTime, true); + } + + public Decoy(NpcTemplate template, Player owner, int totalLifeTime, boolean aggressive) { super(template); setInstanceType(InstanceType.Decoy); @@ -53,10 +58,13 @@ public class Decoy extends Creature setInvul(false); _totalLifeTime = totalLifeTime; _timeRemaining = _totalLifeTime; - final int hateSpamSkillId = 5272; - final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); - _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(_owner, this), 1000, 1000); - _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000); + if (aggressive) + { + final int hateSpamSkillId = 5272; + final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); + _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + } } @Override @@ -78,14 +86,11 @@ public class Decoy extends Creature static class DecoyLifetime implements Runnable { - private final Player _player; + private final Decoy _decoy; - private final Decoy _Decoy; - - DecoyLifetime(Player player, Decoy decoy) + DecoyLifetime(Decoy decoy) { - _player = player; - _Decoy = decoy; + _decoy = decoy; } @Override @@ -93,11 +98,11 @@ public class Decoy extends Creature { try { - _Decoy.decTimeRemaining(1000); - final double newTimeRemaining = _Decoy.getTimeRemaining(); + _decoy.decTimeRemaining(1000); + final double newTimeRemaining = _decoy.getTimeRemaining(); if (newTimeRemaining < 0) { - _Decoy.unSummon(_player); + _decoy.unSummon(); } } catch (Exception e) @@ -133,7 +138,7 @@ public class Decoy extends Creature } } - public void unSummon(Player owner) + public void unSummon() { if (_decoyLifeTask != null) { diff --git a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java index cf15bb42ad..5140595378 100644 --- a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java +++ b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java @@ -45,6 +45,11 @@ public class Decoy extends Creature private Future _hateSpam; public Decoy(NpcTemplate template, Player owner, int totalLifeTime) + { + this(template, owner, totalLifeTime, true); + } + + public Decoy(NpcTemplate template, Player owner, int totalLifeTime, boolean aggressive) { super(template); setInstanceType(InstanceType.Decoy); @@ -53,10 +58,13 @@ public class Decoy extends Creature setInvul(false); _totalLifeTime = totalLifeTime; _timeRemaining = _totalLifeTime; - final int hateSpamSkillId = 5272; - final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); - _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(_owner, this), 1000, 1000); - _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000); + if (aggressive) + { + final int hateSpamSkillId = 5272; + final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); + _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + } } @Override @@ -78,14 +86,11 @@ public class Decoy extends Creature static class DecoyLifetime implements Runnable { - private final Player _player; + private final Decoy _decoy; - private final Decoy _Decoy; - - DecoyLifetime(Player player, Decoy decoy) + DecoyLifetime(Decoy decoy) { - _player = player; - _Decoy = decoy; + _decoy = decoy; } @Override @@ -93,11 +98,11 @@ public class Decoy extends Creature { try { - _Decoy.decTimeRemaining(1000); - final double newTimeRemaining = _Decoy.getTimeRemaining(); + _decoy.decTimeRemaining(1000); + final double newTimeRemaining = _decoy.getTimeRemaining(); if (newTimeRemaining < 0) { - _Decoy.unSummon(_player); + _decoy.unSummon(); } } catch (Exception e) @@ -133,7 +138,7 @@ public class Decoy extends Creature } } - public void unSummon(Player owner) + public void unSummon() { if (_decoyLifeTask != null) { diff --git a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java index cf15bb42ad..5140595378 100644 --- a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java +++ b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java @@ -45,6 +45,11 @@ public class Decoy extends Creature private Future _hateSpam; public Decoy(NpcTemplate template, Player owner, int totalLifeTime) + { + this(template, owner, totalLifeTime, true); + } + + public Decoy(NpcTemplate template, Player owner, int totalLifeTime, boolean aggressive) { super(template); setInstanceType(InstanceType.Decoy); @@ -53,10 +58,13 @@ public class Decoy extends Creature setInvul(false); _totalLifeTime = totalLifeTime; _timeRemaining = _totalLifeTime; - final int hateSpamSkillId = 5272; - final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); - _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(_owner, this), 1000, 1000); - _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000); + if (aggressive) + { + final int hateSpamSkillId = 5272; + final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); + _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + } } @Override @@ -78,14 +86,11 @@ public class Decoy extends Creature static class DecoyLifetime implements Runnable { - private final Player _player; + private final Decoy _decoy; - private final Decoy _Decoy; - - DecoyLifetime(Player player, Decoy decoy) + DecoyLifetime(Decoy decoy) { - _player = player; - _Decoy = decoy; + _decoy = decoy; } @Override @@ -93,11 +98,11 @@ public class Decoy extends Creature { try { - _Decoy.decTimeRemaining(1000); - final double newTimeRemaining = _Decoy.getTimeRemaining(); + _decoy.decTimeRemaining(1000); + final double newTimeRemaining = _decoy.getTimeRemaining(); if (newTimeRemaining < 0) { - _Decoy.unSummon(_player); + _decoy.unSummon(); } } catch (Exception e) @@ -133,7 +138,7 @@ public class Decoy extends Creature } } - public void unSummon(Player owner) + public void unSummon() { if (_decoyLifeTask != null) { diff --git a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java index cf15bb42ad..5140595378 100644 --- a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java +++ b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java @@ -45,6 +45,11 @@ public class Decoy extends Creature private Future _hateSpam; public Decoy(NpcTemplate template, Player owner, int totalLifeTime) + { + this(template, owner, totalLifeTime, true); + } + + public Decoy(NpcTemplate template, Player owner, int totalLifeTime, boolean aggressive) { super(template); setInstanceType(InstanceType.Decoy); @@ -53,10 +58,13 @@ public class Decoy extends Creature setInvul(false); _totalLifeTime = totalLifeTime; _timeRemaining = _totalLifeTime; - final int hateSpamSkillId = 5272; - final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); - _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(_owner, this), 1000, 1000); - _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000); + if (aggressive) + { + final int hateSpamSkillId = 5272; + final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); + _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + } } @Override @@ -78,14 +86,11 @@ public class Decoy extends Creature static class DecoyLifetime implements Runnable { - private final Player _player; + private final Decoy _decoy; - private final Decoy _Decoy; - - DecoyLifetime(Player player, Decoy decoy) + DecoyLifetime(Decoy decoy) { - _player = player; - _Decoy = decoy; + _decoy = decoy; } @Override @@ -93,11 +98,11 @@ public class Decoy extends Creature { try { - _Decoy.decTimeRemaining(1000); - final double newTimeRemaining = _Decoy.getTimeRemaining(); + _decoy.decTimeRemaining(1000); + final double newTimeRemaining = _decoy.getTimeRemaining(); if (newTimeRemaining < 0) { - _Decoy.unSummon(_player); + _decoy.unSummon(); } } catch (Exception e) @@ -133,7 +138,7 @@ public class Decoy extends Creature } } - public void unSummon(Player owner) + public void unSummon() { if (_decoyLifeTask != null) { diff --git a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java index cf15bb42ad..5140595378 100644 --- a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java +++ b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java @@ -45,6 +45,11 @@ public class Decoy extends Creature private Future _hateSpam; public Decoy(NpcTemplate template, Player owner, int totalLifeTime) + { + this(template, owner, totalLifeTime, true); + } + + public Decoy(NpcTemplate template, Player owner, int totalLifeTime, boolean aggressive) { super(template); setInstanceType(InstanceType.Decoy); @@ -53,10 +58,13 @@ public class Decoy extends Creature setInvul(false); _totalLifeTime = totalLifeTime; _timeRemaining = _totalLifeTime; - final int hateSpamSkillId = 5272; - final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); - _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(_owner, this), 1000, 1000); - _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000); + if (aggressive) + { + final int hateSpamSkillId = 5272; + final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); + _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + } } @Override @@ -78,14 +86,11 @@ public class Decoy extends Creature static class DecoyLifetime implements Runnable { - private final Player _player; + private final Decoy _decoy; - private final Decoy _Decoy; - - DecoyLifetime(Player player, Decoy decoy) + DecoyLifetime(Decoy decoy) { - _player = player; - _Decoy = decoy; + _decoy = decoy; } @Override @@ -93,11 +98,11 @@ public class Decoy extends Creature { try { - _Decoy.decTimeRemaining(1000); - final double newTimeRemaining = _Decoy.getTimeRemaining(); + _decoy.decTimeRemaining(1000); + final double newTimeRemaining = _decoy.getTimeRemaining(); if (newTimeRemaining < 0) { - _Decoy.unSummon(_player); + _decoy.unSummon(); } } catch (Exception e) @@ -133,7 +138,7 @@ public class Decoy extends Creature } } - public void unSummon(Player owner) + public void unSummon() { if (_decoyLifeTask != null) { diff --git a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java index cf15bb42ad..5140595378 100644 --- a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java +++ b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java @@ -45,6 +45,11 @@ public class Decoy extends Creature private Future _hateSpam; public Decoy(NpcTemplate template, Player owner, int totalLifeTime) + { + this(template, owner, totalLifeTime, true); + } + + public Decoy(NpcTemplate template, Player owner, int totalLifeTime, boolean aggressive) { super(template); setInstanceType(InstanceType.Decoy); @@ -53,10 +58,13 @@ public class Decoy extends Creature setInvul(false); _totalLifeTime = totalLifeTime; _timeRemaining = _totalLifeTime; - final int hateSpamSkillId = 5272; - final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); - _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(_owner, this), 1000, 1000); - _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000); + if (aggressive) + { + final int hateSpamSkillId = 5272; + final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); + _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + } } @Override @@ -78,14 +86,11 @@ public class Decoy extends Creature static class DecoyLifetime implements Runnable { - private final Player _player; + private final Decoy _decoy; - private final Decoy _Decoy; - - DecoyLifetime(Player player, Decoy decoy) + DecoyLifetime(Decoy decoy) { - _player = player; - _Decoy = decoy; + _decoy = decoy; } @Override @@ -93,11 +98,11 @@ public class Decoy extends Creature { try { - _Decoy.decTimeRemaining(1000); - final double newTimeRemaining = _Decoy.getTimeRemaining(); + _decoy.decTimeRemaining(1000); + final double newTimeRemaining = _decoy.getTimeRemaining(); if (newTimeRemaining < 0) { - _Decoy.unSummon(_player); + _decoy.unSummon(); } } catch (Exception e) @@ -133,7 +138,7 @@ public class Decoy extends Creature } } - public void unSummon(Player owner) + public void unSummon() { if (_decoyLifeTask != null) { diff --git a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java index cf15bb42ad..5140595378 100644 --- a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java +++ b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java @@ -45,6 +45,11 @@ public class Decoy extends Creature private Future _hateSpam; public Decoy(NpcTemplate template, Player owner, int totalLifeTime) + { + this(template, owner, totalLifeTime, true); + } + + public Decoy(NpcTemplate template, Player owner, int totalLifeTime, boolean aggressive) { super(template); setInstanceType(InstanceType.Decoy); @@ -53,10 +58,13 @@ public class Decoy extends Creature setInvul(false); _totalLifeTime = totalLifeTime; _timeRemaining = _totalLifeTime; - final int hateSpamSkillId = 5272; - final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); - _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(_owner, this), 1000, 1000); - _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000); + if (aggressive) + { + final int hateSpamSkillId = 5272; + final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); + _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + } } @Override @@ -78,14 +86,11 @@ public class Decoy extends Creature static class DecoyLifetime implements Runnable { - private final Player _player; + private final Decoy _decoy; - private final Decoy _Decoy; - - DecoyLifetime(Player player, Decoy decoy) + DecoyLifetime(Decoy decoy) { - _player = player; - _Decoy = decoy; + _decoy = decoy; } @Override @@ -93,11 +98,11 @@ public class Decoy extends Creature { try { - _Decoy.decTimeRemaining(1000); - final double newTimeRemaining = _Decoy.getTimeRemaining(); + _decoy.decTimeRemaining(1000); + final double newTimeRemaining = _decoy.getTimeRemaining(); if (newTimeRemaining < 0) { - _Decoy.unSummon(_player); + _decoy.unSummon(); } } catch (Exception e) @@ -133,7 +138,7 @@ public class Decoy extends Creature } } - public void unSummon(Player owner) + public void unSummon() { if (_decoyLifeTask != null) { diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java index cf15bb42ad..5140595378 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java @@ -45,6 +45,11 @@ public class Decoy extends Creature private Future _hateSpam; public Decoy(NpcTemplate template, Player owner, int totalLifeTime) + { + this(template, owner, totalLifeTime, true); + } + + public Decoy(NpcTemplate template, Player owner, int totalLifeTime, boolean aggressive) { super(template); setInstanceType(InstanceType.Decoy); @@ -53,10 +58,13 @@ public class Decoy extends Creature setInvul(false); _totalLifeTime = totalLifeTime; _timeRemaining = _totalLifeTime; - final int hateSpamSkillId = 5272; - final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); - _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(_owner, this), 1000, 1000); - _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000); + if (aggressive) + { + final int hateSpamSkillId = 5272; + final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); + _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + } } @Override @@ -78,14 +86,11 @@ public class Decoy extends Creature static class DecoyLifetime implements Runnable { - private final Player _player; + private final Decoy _decoy; - private final Decoy _Decoy; - - DecoyLifetime(Player player, Decoy decoy) + DecoyLifetime(Decoy decoy) { - _player = player; - _Decoy = decoy; + _decoy = decoy; } @Override @@ -93,11 +98,11 @@ public class Decoy extends Creature { try { - _Decoy.decTimeRemaining(1000); - final double newTimeRemaining = _Decoy.getTimeRemaining(); + _decoy.decTimeRemaining(1000); + final double newTimeRemaining = _decoy.getTimeRemaining(); if (newTimeRemaining < 0) { - _Decoy.unSummon(_player); + _decoy.unSummon(); } } catch (Exception e) @@ -133,7 +138,7 @@ public class Decoy extends Creature } } - public void unSummon(Player owner) + public void unSummon() { if (_decoyLifeTask != null) { diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java index cf15bb42ad..5140595378 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java @@ -45,6 +45,11 @@ public class Decoy extends Creature private Future _hateSpam; public Decoy(NpcTemplate template, Player owner, int totalLifeTime) + { + this(template, owner, totalLifeTime, true); + } + + public Decoy(NpcTemplate template, Player owner, int totalLifeTime, boolean aggressive) { super(template); setInstanceType(InstanceType.Decoy); @@ -53,10 +58,13 @@ public class Decoy extends Creature setInvul(false); _totalLifeTime = totalLifeTime; _timeRemaining = _totalLifeTime; - final int hateSpamSkillId = 5272; - final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); - _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(_owner, this), 1000, 1000); - _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000); + if (aggressive) + { + final int hateSpamSkillId = 5272; + final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); + _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + } } @Override @@ -78,14 +86,11 @@ public class Decoy extends Creature static class DecoyLifetime implements Runnable { - private final Player _player; + private final Decoy _decoy; - private final Decoy _Decoy; - - DecoyLifetime(Player player, Decoy decoy) + DecoyLifetime(Decoy decoy) { - _player = player; - _Decoy = decoy; + _decoy = decoy; } @Override @@ -93,11 +98,11 @@ public class Decoy extends Creature { try { - _Decoy.decTimeRemaining(1000); - final double newTimeRemaining = _Decoy.getTimeRemaining(); + _decoy.decTimeRemaining(1000); + final double newTimeRemaining = _decoy.getTimeRemaining(); if (newTimeRemaining < 0) { - _Decoy.unSummon(_player); + _decoy.unSummon(); } } catch (Exception e) @@ -133,7 +138,7 @@ public class Decoy extends Creature } } - public void unSummon(Player owner) + public void unSummon() { if (_decoyLifeTask != null) { diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java index cf15bb42ad..5140595378 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java @@ -45,6 +45,11 @@ public class Decoy extends Creature private Future _hateSpam; public Decoy(NpcTemplate template, Player owner, int totalLifeTime) + { + this(template, owner, totalLifeTime, true); + } + + public Decoy(NpcTemplate template, Player owner, int totalLifeTime, boolean aggressive) { super(template); setInstanceType(InstanceType.Decoy); @@ -53,10 +58,13 @@ public class Decoy extends Creature setInvul(false); _totalLifeTime = totalLifeTime; _timeRemaining = _totalLifeTime; - final int hateSpamSkillId = 5272; - final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); - _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(_owner, this), 1000, 1000); - _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000); + if (aggressive) + { + final int hateSpamSkillId = 5272; + final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); + _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + } } @Override @@ -78,14 +86,11 @@ public class Decoy extends Creature static class DecoyLifetime implements Runnable { - private final Player _player; + private final Decoy _decoy; - private final Decoy _Decoy; - - DecoyLifetime(Player player, Decoy decoy) + DecoyLifetime(Decoy decoy) { - _player = player; - _Decoy = decoy; + _decoy = decoy; } @Override @@ -93,11 +98,11 @@ public class Decoy extends Creature { try { - _Decoy.decTimeRemaining(1000); - final double newTimeRemaining = _Decoy.getTimeRemaining(); + _decoy.decTimeRemaining(1000); + final double newTimeRemaining = _decoy.getTimeRemaining(); if (newTimeRemaining < 0) { - _Decoy.unSummon(_player); + _decoy.unSummon(); } } catch (Exception e) @@ -133,7 +138,7 @@ public class Decoy extends Creature } } - public void unSummon(Player owner) + public void unSummon() { if (_decoyLifeTask != null) { diff --git a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java index cf15bb42ad..5140595378 100644 --- a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java +++ b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java @@ -45,6 +45,11 @@ public class Decoy extends Creature private Future _hateSpam; public Decoy(NpcTemplate template, Player owner, int totalLifeTime) + { + this(template, owner, totalLifeTime, true); + } + + public Decoy(NpcTemplate template, Player owner, int totalLifeTime, boolean aggressive) { super(template); setInstanceType(InstanceType.Decoy); @@ -53,10 +58,13 @@ public class Decoy extends Creature setInvul(false); _totalLifeTime = totalLifeTime; _timeRemaining = _totalLifeTime; - final int hateSpamSkillId = 5272; - final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); - _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(_owner, this), 1000, 1000); - _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000); + if (aggressive) + { + final int hateSpamSkillId = 5272; + final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); + _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + } } @Override @@ -78,14 +86,11 @@ public class Decoy extends Creature static class DecoyLifetime implements Runnable { - private final Player _player; + private final Decoy _decoy; - private final Decoy _Decoy; - - DecoyLifetime(Player player, Decoy decoy) + DecoyLifetime(Decoy decoy) { - _player = player; - _Decoy = decoy; + _decoy = decoy; } @Override @@ -93,11 +98,11 @@ public class Decoy extends Creature { try { - _Decoy.decTimeRemaining(1000); - final double newTimeRemaining = _Decoy.getTimeRemaining(); + _decoy.decTimeRemaining(1000); + final double newTimeRemaining = _decoy.getTimeRemaining(); if (newTimeRemaining < 0) { - _Decoy.unSummon(_player); + _decoy.unSummon(); } } catch (Exception e) @@ -133,7 +138,7 @@ public class Decoy extends Creature } } - public void unSummon(Player owner) + public void unSummon() { if (_decoyLifeTask != null) { diff --git a/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java b/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java index e8078f7cf5..d6b1e5ef22 100644 --- a/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java +++ b/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java @@ -43,13 +43,12 @@ public class Decoy extends Creature private Future _decoyLifeTask; private Future _hateSpam; - /** - * Creates a decoy. - * @param template the decoy NPC template - * @param owner the owner - * @param totalLifeTime the total life time - */ public Decoy(NpcTemplate template, Player owner, int totalLifeTime) + { + this(template, owner, totalLifeTime, true); + } + + public Decoy(NpcTemplate template, Player owner, int totalLifeTime, boolean aggressive) { super(template); setInstanceType(InstanceType.Decoy); @@ -58,9 +57,123 @@ public class Decoy extends Creature setInvul(false); _totalLifeTime = totalLifeTime; _timeRemaining = _totalLifeTime; - final int skilllevel = getTemplate().getDisplayId() - 13070; _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(getOwner(), this), 1000, 1000); - _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(5272, skilllevel)), 2000, 5000); + if (aggressive) + { + final int hateSpamSkillId = 5272; + final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); + _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + } + } + + @Override + public boolean doDie(Creature killer) + { + if (!super.doDie(killer)) + { + return false; + } + if (_hateSpam != null) + { + _hateSpam.cancel(true); + _hateSpam = null; + } + _totalLifeTime = 0; + DecayTaskManager.getInstance().add(this); + return true; + } + + static class DecoyLifetime implements Runnable + { + private final Player _player; + + private final Decoy _decoy; + + DecoyLifetime(Player player, Decoy decoy) + { + _player = player; + _decoy = decoy; + } + + @Override + public void run() + { + try + { + _decoy.decTimeRemaining(1000); + final double newTimeRemaining = _decoy.getTimeRemaining(); + if (newTimeRemaining < 0) + { + _decoy.unSummon(_player); + } + } + catch (Exception e) + { + LOGGER.log(Level.SEVERE, "Decoy Error: ", e); + } + } + } + + private static class HateSpam implements Runnable + { + private final Decoy _player; + private final Skill _skill; + + HateSpam(Decoy player, Skill hate) + { + _player = player; + _skill = hate; + } + + @Override + public void run() + { + try + { + _player.setTarget(_player); + _player.doCast(_skill); + } + catch (Throwable e) + { + LOGGER.log(Level.SEVERE, "Decoy Error: ", e); + } + } + } + + public synchronized void unSummon(Player owner) + { + if (_decoyLifeTask != null) + { + _decoyLifeTask.cancel(true); + _decoyLifeTask = null; + } + if (_hateSpam != null) + { + _hateSpam.cancel(true); + _hateSpam = null; + } + + if (isSpawned() && !isDead()) + { + ZoneManager.getInstance().getRegion(this).removeFromZones(this); + owner.setDecoy(null); + decayMe(); + } + } + + public void decTimeRemaining(int value) + { + _timeRemaining -= value; + } + + public int getTimeRemaining() + { + return _timeRemaining; + } + + public int getTotalLifeTime() + { + return _totalLifeTime; } @Override @@ -141,29 +254,6 @@ public class Decoy extends Creature owner.setDecoy(null); } - public synchronized void unSummon(Player owner) - { - if (_decoyLifeTask != null) - { - _decoyLifeTask.cancel(true); - _decoyLifeTask = null; - } - if (_hateSpam != null) - { - _hateSpam.cancel(true); - _hateSpam = null; - } - - if (!isSpawned() || isDead()) - { - return; - } - - ZoneManager.getInstance().getRegion(this).removeFromZones(this); - owner.setDecoy(null); - decayMe(); - } - public Player getOwner() { return _owner; @@ -204,93 +294,4 @@ public class Decoy extends Creature _owner.sendPacket(id); } } - - @Override - public boolean doDie(Creature killer) - { - if (!super.doDie(killer)) - { - return false; - } - if (_hateSpam != null) - { - _hateSpam.cancel(true); - _hateSpam = null; - } - _totalLifeTime = 0; - DecayTaskManager.getInstance().add(this); - return true; - } - - static class DecoyLifetime implements Runnable - { - private final Player _player; - - private final Decoy _decoy; - - DecoyLifetime(Player player, Decoy decoy) - { - _player = player; - _decoy = decoy; - } - - @Override - public void run() - { - try - { - _decoy.decTimeRemaining(1000); - final double newTimeRemaining = _decoy.getTimeRemaining(); - if (newTimeRemaining < 0) - { - _decoy.unSummon(_player); - } - } - catch (Exception e) - { - LOGGER.log(Level.SEVERE, "Decoy Error: ", e); - } - } - } - - private static class HateSpam implements Runnable - { - private final Decoy _player; - private final Skill _skill; - - HateSpam(Decoy player, Skill hate) - { - _player = player; - _skill = hate; - } - - @Override - public void run() - { - try - { - _player.setTarget(_player); - _player.doCast(_skill); - } - catch (Throwable e) - { - LOGGER.log(Level.SEVERE, "Decoy Error: ", e); - } - } - } - - public void decTimeRemaining(int value) - { - _timeRemaining -= value; - } - - public int getTimeRemaining() - { - return _timeRemaining; - } - - public int getTotalLifeTime() - { - return _totalLifeTime; - } } diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java index e8078f7cf5..d6b1e5ef22 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java @@ -43,13 +43,12 @@ public class Decoy extends Creature private Future _decoyLifeTask; private Future _hateSpam; - /** - * Creates a decoy. - * @param template the decoy NPC template - * @param owner the owner - * @param totalLifeTime the total life time - */ public Decoy(NpcTemplate template, Player owner, int totalLifeTime) + { + this(template, owner, totalLifeTime, true); + } + + public Decoy(NpcTemplate template, Player owner, int totalLifeTime, boolean aggressive) { super(template); setInstanceType(InstanceType.Decoy); @@ -58,9 +57,123 @@ public class Decoy extends Creature setInvul(false); _totalLifeTime = totalLifeTime; _timeRemaining = _totalLifeTime; - final int skilllevel = getTemplate().getDisplayId() - 13070; _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(getOwner(), this), 1000, 1000); - _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(5272, skilllevel)), 2000, 5000); + if (aggressive) + { + final int hateSpamSkillId = 5272; + final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); + _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + } + } + + @Override + public boolean doDie(Creature killer) + { + if (!super.doDie(killer)) + { + return false; + } + if (_hateSpam != null) + { + _hateSpam.cancel(true); + _hateSpam = null; + } + _totalLifeTime = 0; + DecayTaskManager.getInstance().add(this); + return true; + } + + static class DecoyLifetime implements Runnable + { + private final Player _player; + + private final Decoy _decoy; + + DecoyLifetime(Player player, Decoy decoy) + { + _player = player; + _decoy = decoy; + } + + @Override + public void run() + { + try + { + _decoy.decTimeRemaining(1000); + final double newTimeRemaining = _decoy.getTimeRemaining(); + if (newTimeRemaining < 0) + { + _decoy.unSummon(_player); + } + } + catch (Exception e) + { + LOGGER.log(Level.SEVERE, "Decoy Error: ", e); + } + } + } + + private static class HateSpam implements Runnable + { + private final Decoy _player; + private final Skill _skill; + + HateSpam(Decoy player, Skill hate) + { + _player = player; + _skill = hate; + } + + @Override + public void run() + { + try + { + _player.setTarget(_player); + _player.doCast(_skill); + } + catch (Throwable e) + { + LOGGER.log(Level.SEVERE, "Decoy Error: ", e); + } + } + } + + public synchronized void unSummon(Player owner) + { + if (_decoyLifeTask != null) + { + _decoyLifeTask.cancel(true); + _decoyLifeTask = null; + } + if (_hateSpam != null) + { + _hateSpam.cancel(true); + _hateSpam = null; + } + + if (isSpawned() && !isDead()) + { + ZoneManager.getInstance().getRegion(this).removeFromZones(this); + owner.setDecoy(null); + decayMe(); + } + } + + public void decTimeRemaining(int value) + { + _timeRemaining -= value; + } + + public int getTimeRemaining() + { + return _timeRemaining; + } + + public int getTotalLifeTime() + { + return _totalLifeTime; } @Override @@ -141,29 +254,6 @@ public class Decoy extends Creature owner.setDecoy(null); } - public synchronized void unSummon(Player owner) - { - if (_decoyLifeTask != null) - { - _decoyLifeTask.cancel(true); - _decoyLifeTask = null; - } - if (_hateSpam != null) - { - _hateSpam.cancel(true); - _hateSpam = null; - } - - if (!isSpawned() || isDead()) - { - return; - } - - ZoneManager.getInstance().getRegion(this).removeFromZones(this); - owner.setDecoy(null); - decayMe(); - } - public Player getOwner() { return _owner; @@ -204,93 +294,4 @@ public class Decoy extends Creature _owner.sendPacket(id); } } - - @Override - public boolean doDie(Creature killer) - { - if (!super.doDie(killer)) - { - return false; - } - if (_hateSpam != null) - { - _hateSpam.cancel(true); - _hateSpam = null; - } - _totalLifeTime = 0; - DecayTaskManager.getInstance().add(this); - return true; - } - - static class DecoyLifetime implements Runnable - { - private final Player _player; - - private final Decoy _decoy; - - DecoyLifetime(Player player, Decoy decoy) - { - _player = player; - _decoy = decoy; - } - - @Override - public void run() - { - try - { - _decoy.decTimeRemaining(1000); - final double newTimeRemaining = _decoy.getTimeRemaining(); - if (newTimeRemaining < 0) - { - _decoy.unSummon(_player); - } - } - catch (Exception e) - { - LOGGER.log(Level.SEVERE, "Decoy Error: ", e); - } - } - } - - private static class HateSpam implements Runnable - { - private final Decoy _player; - private final Skill _skill; - - HateSpam(Decoy player, Skill hate) - { - _player = player; - _skill = hate; - } - - @Override - public void run() - { - try - { - _player.setTarget(_player); - _player.doCast(_skill); - } - catch (Throwable e) - { - LOGGER.log(Level.SEVERE, "Decoy Error: ", e); - } - } - } - - public void decTimeRemaining(int value) - { - _timeRemaining -= value; - } - - public int getTimeRemaining() - { - return _timeRemaining; - } - - public int getTotalLifeTime() - { - return _totalLifeTime; - } } diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java index e8078f7cf5..d6b1e5ef22 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java @@ -43,13 +43,12 @@ public class Decoy extends Creature private Future _decoyLifeTask; private Future _hateSpam; - /** - * Creates a decoy. - * @param template the decoy NPC template - * @param owner the owner - * @param totalLifeTime the total life time - */ public Decoy(NpcTemplate template, Player owner, int totalLifeTime) + { + this(template, owner, totalLifeTime, true); + } + + public Decoy(NpcTemplate template, Player owner, int totalLifeTime, boolean aggressive) { super(template); setInstanceType(InstanceType.Decoy); @@ -58,9 +57,123 @@ public class Decoy extends Creature setInvul(false); _totalLifeTime = totalLifeTime; _timeRemaining = _totalLifeTime; - final int skilllevel = getTemplate().getDisplayId() - 13070; _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(getOwner(), this), 1000, 1000); - _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(5272, skilllevel)), 2000, 5000); + if (aggressive) + { + final int hateSpamSkillId = 5272; + final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); + _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + } + } + + @Override + public boolean doDie(Creature killer) + { + if (!super.doDie(killer)) + { + return false; + } + if (_hateSpam != null) + { + _hateSpam.cancel(true); + _hateSpam = null; + } + _totalLifeTime = 0; + DecayTaskManager.getInstance().add(this); + return true; + } + + static class DecoyLifetime implements Runnable + { + private final Player _player; + + private final Decoy _decoy; + + DecoyLifetime(Player player, Decoy decoy) + { + _player = player; + _decoy = decoy; + } + + @Override + public void run() + { + try + { + _decoy.decTimeRemaining(1000); + final double newTimeRemaining = _decoy.getTimeRemaining(); + if (newTimeRemaining < 0) + { + _decoy.unSummon(_player); + } + } + catch (Exception e) + { + LOGGER.log(Level.SEVERE, "Decoy Error: ", e); + } + } + } + + private static class HateSpam implements Runnable + { + private final Decoy _player; + private final Skill _skill; + + HateSpam(Decoy player, Skill hate) + { + _player = player; + _skill = hate; + } + + @Override + public void run() + { + try + { + _player.setTarget(_player); + _player.doCast(_skill); + } + catch (Throwable e) + { + LOGGER.log(Level.SEVERE, "Decoy Error: ", e); + } + } + } + + public synchronized void unSummon(Player owner) + { + if (_decoyLifeTask != null) + { + _decoyLifeTask.cancel(true); + _decoyLifeTask = null; + } + if (_hateSpam != null) + { + _hateSpam.cancel(true); + _hateSpam = null; + } + + if (isSpawned() && !isDead()) + { + ZoneManager.getInstance().getRegion(this).removeFromZones(this); + owner.setDecoy(null); + decayMe(); + } + } + + public void decTimeRemaining(int value) + { + _timeRemaining -= value; + } + + public int getTimeRemaining() + { + return _timeRemaining; + } + + public int getTotalLifeTime() + { + return _totalLifeTime; } @Override @@ -141,29 +254,6 @@ public class Decoy extends Creature owner.setDecoy(null); } - public synchronized void unSummon(Player owner) - { - if (_decoyLifeTask != null) - { - _decoyLifeTask.cancel(true); - _decoyLifeTask = null; - } - if (_hateSpam != null) - { - _hateSpam.cancel(true); - _hateSpam = null; - } - - if (!isSpawned() || isDead()) - { - return; - } - - ZoneManager.getInstance().getRegion(this).removeFromZones(this); - owner.setDecoy(null); - decayMe(); - } - public Player getOwner() { return _owner; @@ -204,93 +294,4 @@ public class Decoy extends Creature _owner.sendPacket(id); } } - - @Override - public boolean doDie(Creature killer) - { - if (!super.doDie(killer)) - { - return false; - } - if (_hateSpam != null) - { - _hateSpam.cancel(true); - _hateSpam = null; - } - _totalLifeTime = 0; - DecayTaskManager.getInstance().add(this); - return true; - } - - static class DecoyLifetime implements Runnable - { - private final Player _player; - - private final Decoy _decoy; - - DecoyLifetime(Player player, Decoy decoy) - { - _player = player; - _decoy = decoy; - } - - @Override - public void run() - { - try - { - _decoy.decTimeRemaining(1000); - final double newTimeRemaining = _decoy.getTimeRemaining(); - if (newTimeRemaining < 0) - { - _decoy.unSummon(_player); - } - } - catch (Exception e) - { - LOGGER.log(Level.SEVERE, "Decoy Error: ", e); - } - } - } - - private static class HateSpam implements Runnable - { - private final Decoy _player; - private final Skill _skill; - - HateSpam(Decoy player, Skill hate) - { - _player = player; - _skill = hate; - } - - @Override - public void run() - { - try - { - _player.setTarget(_player); - _player.doCast(_skill); - } - catch (Throwable e) - { - LOGGER.log(Level.SEVERE, "Decoy Error: ", e); - } - } - } - - public void decTimeRemaining(int value) - { - _timeRemaining -= value; - } - - public int getTimeRemaining() - { - return _timeRemaining; - } - - public int getTotalLifeTime() - { - return _totalLifeTime; - } } diff --git a/L2J_Mobius_Classic_1.0/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java b/L2J_Mobius_Classic_1.0/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java index cf15bb42ad..5140595378 100644 --- a/L2J_Mobius_Classic_1.0/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java +++ b/L2J_Mobius_Classic_1.0/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java @@ -45,6 +45,11 @@ public class Decoy extends Creature private Future _hateSpam; public Decoy(NpcTemplate template, Player owner, int totalLifeTime) + { + this(template, owner, totalLifeTime, true); + } + + public Decoy(NpcTemplate template, Player owner, int totalLifeTime, boolean aggressive) { super(template); setInstanceType(InstanceType.Decoy); @@ -53,10 +58,13 @@ public class Decoy extends Creature setInvul(false); _totalLifeTime = totalLifeTime; _timeRemaining = _totalLifeTime; - final int hateSpamSkillId = 5272; - final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); - _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(_owner, this), 1000, 1000); - _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000); + if (aggressive) + { + final int hateSpamSkillId = 5272; + final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); + _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + } } @Override @@ -78,14 +86,11 @@ public class Decoy extends Creature static class DecoyLifetime implements Runnable { - private final Player _player; + private final Decoy _decoy; - private final Decoy _Decoy; - - DecoyLifetime(Player player, Decoy decoy) + DecoyLifetime(Decoy decoy) { - _player = player; - _Decoy = decoy; + _decoy = decoy; } @Override @@ -93,11 +98,11 @@ public class Decoy extends Creature { try { - _Decoy.decTimeRemaining(1000); - final double newTimeRemaining = _Decoy.getTimeRemaining(); + _decoy.decTimeRemaining(1000); + final double newTimeRemaining = _decoy.getTimeRemaining(); if (newTimeRemaining < 0) { - _Decoy.unSummon(_player); + _decoy.unSummon(); } } catch (Exception e) @@ -133,7 +138,7 @@ public class Decoy extends Creature } } - public void unSummon(Player owner) + public void unSummon() { if (_decoyLifeTask != null) { diff --git a/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java b/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java index cf15bb42ad..5140595378 100644 --- a/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java +++ b/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java @@ -45,6 +45,11 @@ public class Decoy extends Creature private Future _hateSpam; public Decoy(NpcTemplate template, Player owner, int totalLifeTime) + { + this(template, owner, totalLifeTime, true); + } + + public Decoy(NpcTemplate template, Player owner, int totalLifeTime, boolean aggressive) { super(template); setInstanceType(InstanceType.Decoy); @@ -53,10 +58,13 @@ public class Decoy extends Creature setInvul(false); _totalLifeTime = totalLifeTime; _timeRemaining = _totalLifeTime; - final int hateSpamSkillId = 5272; - final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); - _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(_owner, this), 1000, 1000); - _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000); + if (aggressive) + { + final int hateSpamSkillId = 5272; + final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); + _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + } } @Override @@ -78,14 +86,11 @@ public class Decoy extends Creature static class DecoyLifetime implements Runnable { - private final Player _player; + private final Decoy _decoy; - private final Decoy _Decoy; - - DecoyLifetime(Player player, Decoy decoy) + DecoyLifetime(Decoy decoy) { - _player = player; - _Decoy = decoy; + _decoy = decoy; } @Override @@ -93,11 +98,11 @@ public class Decoy extends Creature { try { - _Decoy.decTimeRemaining(1000); - final double newTimeRemaining = _Decoy.getTimeRemaining(); + _decoy.decTimeRemaining(1000); + final double newTimeRemaining = _decoy.getTimeRemaining(); if (newTimeRemaining < 0) { - _Decoy.unSummon(_player); + _decoy.unSummon(); } } catch (Exception e) @@ -133,7 +138,7 @@ public class Decoy extends Creature } } - public void unSummon(Player owner) + public void unSummon() { if (_decoyLifeTask != null) { diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java index cf15bb42ad..5140595378 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java @@ -45,6 +45,11 @@ public class Decoy extends Creature private Future _hateSpam; public Decoy(NpcTemplate template, Player owner, int totalLifeTime) + { + this(template, owner, totalLifeTime, true); + } + + public Decoy(NpcTemplate template, Player owner, int totalLifeTime, boolean aggressive) { super(template); setInstanceType(InstanceType.Decoy); @@ -53,10 +58,13 @@ public class Decoy extends Creature setInvul(false); _totalLifeTime = totalLifeTime; _timeRemaining = _totalLifeTime; - final int hateSpamSkillId = 5272; - final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); - _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(_owner, this), 1000, 1000); - _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000); + if (aggressive) + { + final int hateSpamSkillId = 5272; + final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); + _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + } } @Override @@ -78,14 +86,11 @@ public class Decoy extends Creature static class DecoyLifetime implements Runnable { - private final Player _player; + private final Decoy _decoy; - private final Decoy _Decoy; - - DecoyLifetime(Player player, Decoy decoy) + DecoyLifetime(Decoy decoy) { - _player = player; - _Decoy = decoy; + _decoy = decoy; } @Override @@ -93,11 +98,11 @@ public class Decoy extends Creature { try { - _Decoy.decTimeRemaining(1000); - final double newTimeRemaining = _Decoy.getTimeRemaining(); + _decoy.decTimeRemaining(1000); + final double newTimeRemaining = _decoy.getTimeRemaining(); if (newTimeRemaining < 0) { - _Decoy.unSummon(_player); + _decoy.unSummon(); } } catch (Exception e) @@ -133,7 +138,7 @@ public class Decoy extends Creature } } - public void unSummon(Player owner) + public void unSummon() { if (_decoyLifeTask != null) { diff --git a/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java b/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java index cf15bb42ad..5140595378 100644 --- a/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java +++ b/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java @@ -45,6 +45,11 @@ public class Decoy extends Creature private Future _hateSpam; public Decoy(NpcTemplate template, Player owner, int totalLifeTime) + { + this(template, owner, totalLifeTime, true); + } + + public Decoy(NpcTemplate template, Player owner, int totalLifeTime, boolean aggressive) { super(template); setInstanceType(InstanceType.Decoy); @@ -53,10 +58,13 @@ public class Decoy extends Creature setInvul(false); _totalLifeTime = totalLifeTime; _timeRemaining = _totalLifeTime; - final int hateSpamSkillId = 5272; - final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); - _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(_owner, this), 1000, 1000); - _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000); + if (aggressive) + { + final int hateSpamSkillId = 5272; + final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); + _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + } } @Override @@ -78,14 +86,11 @@ public class Decoy extends Creature static class DecoyLifetime implements Runnable { - private final Player _player; + private final Decoy _decoy; - private final Decoy _Decoy; - - DecoyLifetime(Player player, Decoy decoy) + DecoyLifetime(Decoy decoy) { - _player = player; - _Decoy = decoy; + _decoy = decoy; } @Override @@ -93,11 +98,11 @@ public class Decoy extends Creature { try { - _Decoy.decTimeRemaining(1000); - final double newTimeRemaining = _Decoy.getTimeRemaining(); + _decoy.decTimeRemaining(1000); + final double newTimeRemaining = _decoy.getTimeRemaining(); if (newTimeRemaining < 0) { - _Decoy.unSummon(_player); + _decoy.unSummon(); } } catch (Exception e) @@ -133,7 +138,7 @@ public class Decoy extends Creature } } - public void unSummon(Player owner) + public void unSummon() { if (_decoyLifeTask != null) { diff --git a/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java b/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java index cf15bb42ad..5140595378 100644 --- a/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java +++ b/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java @@ -45,6 +45,11 @@ public class Decoy extends Creature private Future _hateSpam; public Decoy(NpcTemplate template, Player owner, int totalLifeTime) + { + this(template, owner, totalLifeTime, true); + } + + public Decoy(NpcTemplate template, Player owner, int totalLifeTime, boolean aggressive) { super(template); setInstanceType(InstanceType.Decoy); @@ -53,10 +58,13 @@ public class Decoy extends Creature setInvul(false); _totalLifeTime = totalLifeTime; _timeRemaining = _totalLifeTime; - final int hateSpamSkillId = 5272; - final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); - _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(_owner, this), 1000, 1000); - _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000); + if (aggressive) + { + final int hateSpamSkillId = 5272; + final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); + _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + } } @Override @@ -78,14 +86,11 @@ public class Decoy extends Creature static class DecoyLifetime implements Runnable { - private final Player _player; + private final Decoy _decoy; - private final Decoy _Decoy; - - DecoyLifetime(Player player, Decoy decoy) + DecoyLifetime(Decoy decoy) { - _player = player; - _Decoy = decoy; + _decoy = decoy; } @Override @@ -93,11 +98,11 @@ public class Decoy extends Creature { try { - _Decoy.decTimeRemaining(1000); - final double newTimeRemaining = _Decoy.getTimeRemaining(); + _decoy.decTimeRemaining(1000); + final double newTimeRemaining = _decoy.getTimeRemaining(); if (newTimeRemaining < 0) { - _Decoy.unSummon(_player); + _decoy.unSummon(); } } catch (Exception e) @@ -133,7 +138,7 @@ public class Decoy extends Creature } } - public void unSummon(Player owner) + public void unSummon() { if (_decoyLifeTask != null) { diff --git a/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java b/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java index cf15bb42ad..5140595378 100644 --- a/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java +++ b/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java @@ -45,6 +45,11 @@ public class Decoy extends Creature private Future _hateSpam; public Decoy(NpcTemplate template, Player owner, int totalLifeTime) + { + this(template, owner, totalLifeTime, true); + } + + public Decoy(NpcTemplate template, Player owner, int totalLifeTime, boolean aggressive) { super(template); setInstanceType(InstanceType.Decoy); @@ -53,10 +58,13 @@ public class Decoy extends Creature setInvul(false); _totalLifeTime = totalLifeTime; _timeRemaining = _totalLifeTime; - final int hateSpamSkillId = 5272; - final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); - _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(_owner, this), 1000, 1000); - _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000); + if (aggressive) + { + final int hateSpamSkillId = 5272; + final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); + _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + } } @Override @@ -78,14 +86,11 @@ public class Decoy extends Creature static class DecoyLifetime implements Runnable { - private final Player _player; + private final Decoy _decoy; - private final Decoy _Decoy; - - DecoyLifetime(Player player, Decoy decoy) + DecoyLifetime(Decoy decoy) { - _player = player; - _Decoy = decoy; + _decoy = decoy; } @Override @@ -93,11 +98,11 @@ public class Decoy extends Creature { try { - _Decoy.decTimeRemaining(1000); - final double newTimeRemaining = _Decoy.getTimeRemaining(); + _decoy.decTimeRemaining(1000); + final double newTimeRemaining = _decoy.getTimeRemaining(); if (newTimeRemaining < 0) { - _Decoy.unSummon(_player); + _decoy.unSummon(); } } catch (Exception e) @@ -133,7 +138,7 @@ public class Decoy extends Creature } } - public void unSummon(Player owner) + public void unSummon() { if (_decoyLifeTask != null) { diff --git a/L2J_Mobius_Classic_2.9.5_Saviors/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java b/L2J_Mobius_Classic_2.9.5_Saviors/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java index cf15bb42ad..5140595378 100644 --- a/L2J_Mobius_Classic_2.9.5_Saviors/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java +++ b/L2J_Mobius_Classic_2.9.5_Saviors/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java @@ -45,6 +45,11 @@ public class Decoy extends Creature private Future _hateSpam; public Decoy(NpcTemplate template, Player owner, int totalLifeTime) + { + this(template, owner, totalLifeTime, true); + } + + public Decoy(NpcTemplate template, Player owner, int totalLifeTime, boolean aggressive) { super(template); setInstanceType(InstanceType.Decoy); @@ -53,10 +58,13 @@ public class Decoy extends Creature setInvul(false); _totalLifeTime = totalLifeTime; _timeRemaining = _totalLifeTime; - final int hateSpamSkillId = 5272; - final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); - _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(_owner, this), 1000, 1000); - _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000); + if (aggressive) + { + final int hateSpamSkillId = 5272; + final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); + _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + } } @Override @@ -78,14 +86,11 @@ public class Decoy extends Creature static class DecoyLifetime implements Runnable { - private final Player _player; + private final Decoy _decoy; - private final Decoy _Decoy; - - DecoyLifetime(Player player, Decoy decoy) + DecoyLifetime(Decoy decoy) { - _player = player; - _Decoy = decoy; + _decoy = decoy; } @Override @@ -93,11 +98,11 @@ public class Decoy extends Creature { try { - _Decoy.decTimeRemaining(1000); - final double newTimeRemaining = _Decoy.getTimeRemaining(); + _decoy.decTimeRemaining(1000); + final double newTimeRemaining = _decoy.getTimeRemaining(); if (newTimeRemaining < 0) { - _Decoy.unSummon(_player); + _decoy.unSummon(); } } catch (Exception e) @@ -133,7 +138,7 @@ public class Decoy extends Creature } } - public void unSummon(Player owner) + public void unSummon() { if (_decoyLifeTask != null) { diff --git a/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java b/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java index cf15bb42ad..5140595378 100644 --- a/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java +++ b/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java @@ -45,6 +45,11 @@ public class Decoy extends Creature private Future _hateSpam; public Decoy(NpcTemplate template, Player owner, int totalLifeTime) + { + this(template, owner, totalLifeTime, true); + } + + public Decoy(NpcTemplate template, Player owner, int totalLifeTime, boolean aggressive) { super(template); setInstanceType(InstanceType.Decoy); @@ -53,10 +58,13 @@ public class Decoy extends Creature setInvul(false); _totalLifeTime = totalLifeTime; _timeRemaining = _totalLifeTime; - final int hateSpamSkillId = 5272; - final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); - _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(_owner, this), 1000, 1000); - _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000); + if (aggressive) + { + final int hateSpamSkillId = 5272; + final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); + _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + } } @Override @@ -78,14 +86,11 @@ public class Decoy extends Creature static class DecoyLifetime implements Runnable { - private final Player _player; + private final Decoy _decoy; - private final Decoy _Decoy; - - DecoyLifetime(Player player, Decoy decoy) + DecoyLifetime(Decoy decoy) { - _player = player; - _Decoy = decoy; + _decoy = decoy; } @Override @@ -93,11 +98,11 @@ public class Decoy extends Creature { try { - _Decoy.decTimeRemaining(1000); - final double newTimeRemaining = _Decoy.getTimeRemaining(); + _decoy.decTimeRemaining(1000); + final double newTimeRemaining = _decoy.getTimeRemaining(); if (newTimeRemaining < 0) { - _Decoy.unSummon(_player); + _decoy.unSummon(); } } catch (Exception e) @@ -133,7 +138,7 @@ public class Decoy extends Creature } } - public void unSummon(Player owner) + public void unSummon() { if (_decoyLifeTask != null) { diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java index cf15bb42ad..5140595378 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java @@ -45,6 +45,11 @@ public class Decoy extends Creature private Future _hateSpam; public Decoy(NpcTemplate template, Player owner, int totalLifeTime) + { + this(template, owner, totalLifeTime, true); + } + + public Decoy(NpcTemplate template, Player owner, int totalLifeTime, boolean aggressive) { super(template); setInstanceType(InstanceType.Decoy); @@ -53,10 +58,13 @@ public class Decoy extends Creature setInvul(false); _totalLifeTime = totalLifeTime; _timeRemaining = _totalLifeTime; - final int hateSpamSkillId = 5272; - final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); - _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(_owner, this), 1000, 1000); - _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000); + if (aggressive) + { + final int hateSpamSkillId = 5272; + final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); + _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + } } @Override @@ -78,14 +86,11 @@ public class Decoy extends Creature static class DecoyLifetime implements Runnable { - private final Player _player; + private final Decoy _decoy; - private final Decoy _Decoy; - - DecoyLifetime(Player player, Decoy decoy) + DecoyLifetime(Decoy decoy) { - _player = player; - _Decoy = decoy; + _decoy = decoy; } @Override @@ -93,11 +98,11 @@ public class Decoy extends Creature { try { - _Decoy.decTimeRemaining(1000); - final double newTimeRemaining = _Decoy.getTimeRemaining(); + _decoy.decTimeRemaining(1000); + final double newTimeRemaining = _decoy.getTimeRemaining(); if (newTimeRemaining < 0) { - _Decoy.unSummon(_player); + _decoy.unSummon(); } } catch (Exception e) @@ -133,7 +138,7 @@ public class Decoy extends Creature } } - public void unSummon(Player owner) + public void unSummon() { if (_decoyLifeTask != null) { diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java index cf15bb42ad..5140595378 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java @@ -45,6 +45,11 @@ public class Decoy extends Creature private Future _hateSpam; public Decoy(NpcTemplate template, Player owner, int totalLifeTime) + { + this(template, owner, totalLifeTime, true); + } + + public Decoy(NpcTemplate template, Player owner, int totalLifeTime, boolean aggressive) { super(template); setInstanceType(InstanceType.Decoy); @@ -53,10 +58,13 @@ public class Decoy extends Creature setInvul(false); _totalLifeTime = totalLifeTime; _timeRemaining = _totalLifeTime; - final int hateSpamSkillId = 5272; - final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); - _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(_owner, this), 1000, 1000); - _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000); + if (aggressive) + { + final int hateSpamSkillId = 5272; + final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); + _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + } } @Override @@ -78,14 +86,11 @@ public class Decoy extends Creature static class DecoyLifetime implements Runnable { - private final Player _player; + private final Decoy _decoy; - private final Decoy _Decoy; - - DecoyLifetime(Player player, Decoy decoy) + DecoyLifetime(Decoy decoy) { - _player = player; - _Decoy = decoy; + _decoy = decoy; } @Override @@ -93,11 +98,11 @@ public class Decoy extends Creature { try { - _Decoy.decTimeRemaining(1000); - final double newTimeRemaining = _Decoy.getTimeRemaining(); + _decoy.decTimeRemaining(1000); + final double newTimeRemaining = _decoy.getTimeRemaining(); if (newTimeRemaining < 0) { - _Decoy.unSummon(_player); + _decoy.unSummon(); } } catch (Exception e) @@ -133,7 +138,7 @@ public class Decoy extends Creature } } - public void unSummon(Player owner) + public void unSummon() { if (_decoyLifeTask != null) { diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java index cf15bb42ad..5140595378 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java @@ -45,6 +45,11 @@ public class Decoy extends Creature private Future _hateSpam; public Decoy(NpcTemplate template, Player owner, int totalLifeTime) + { + this(template, owner, totalLifeTime, true); + } + + public Decoy(NpcTemplate template, Player owner, int totalLifeTime, boolean aggressive) { super(template); setInstanceType(InstanceType.Decoy); @@ -53,10 +58,13 @@ public class Decoy extends Creature setInvul(false); _totalLifeTime = totalLifeTime; _timeRemaining = _totalLifeTime; - final int hateSpamSkillId = 5272; - final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); - _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(_owner, this), 1000, 1000); - _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000); + if (aggressive) + { + final int hateSpamSkillId = 5272; + final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); + _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + } } @Override @@ -78,14 +86,11 @@ public class Decoy extends Creature static class DecoyLifetime implements Runnable { - private final Player _player; + private final Decoy _decoy; - private final Decoy _Decoy; - - DecoyLifetime(Player player, Decoy decoy) + DecoyLifetime(Decoy decoy) { - _player = player; - _Decoy = decoy; + _decoy = decoy; } @Override @@ -93,11 +98,11 @@ public class Decoy extends Creature { try { - _Decoy.decTimeRemaining(1000); - final double newTimeRemaining = _Decoy.getTimeRemaining(); + _decoy.decTimeRemaining(1000); + final double newTimeRemaining = _decoy.getTimeRemaining(); if (newTimeRemaining < 0) { - _Decoy.unSummon(_player); + _decoy.unSummon(); } } catch (Exception e) @@ -133,7 +138,7 @@ public class Decoy extends Creature } } - public void unSummon(Player owner) + public void unSummon() { if (_decoyLifeTask != null) { diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java index cf15bb42ad..5140595378 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java @@ -45,6 +45,11 @@ public class Decoy extends Creature private Future _hateSpam; public Decoy(NpcTemplate template, Player owner, int totalLifeTime) + { + this(template, owner, totalLifeTime, true); + } + + public Decoy(NpcTemplate template, Player owner, int totalLifeTime, boolean aggressive) { super(template); setInstanceType(InstanceType.Decoy); @@ -53,10 +58,13 @@ public class Decoy extends Creature setInvul(false); _totalLifeTime = totalLifeTime; _timeRemaining = _totalLifeTime; - final int hateSpamSkillId = 5272; - final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); - _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(_owner, this), 1000, 1000); - _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000); + if (aggressive) + { + final int hateSpamSkillId = 5272; + final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); + _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + } } @Override @@ -78,14 +86,11 @@ public class Decoy extends Creature static class DecoyLifetime implements Runnable { - private final Player _player; + private final Decoy _decoy; - private final Decoy _Decoy; - - DecoyLifetime(Player player, Decoy decoy) + DecoyLifetime(Decoy decoy) { - _player = player; - _Decoy = decoy; + _decoy = decoy; } @Override @@ -93,11 +98,11 @@ public class Decoy extends Creature { try { - _Decoy.decTimeRemaining(1000); - final double newTimeRemaining = _Decoy.getTimeRemaining(); + _decoy.decTimeRemaining(1000); + final double newTimeRemaining = _decoy.getTimeRemaining(); if (newTimeRemaining < 0) { - _Decoy.unSummon(_player); + _decoy.unSummon(); } } catch (Exception e) @@ -133,7 +138,7 @@ public class Decoy extends Creature } } - public void unSummon(Player owner) + public void unSummon() { if (_decoyLifeTask != null) { diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java index cf15bb42ad..5140595378 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java +++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/actor/instance/Decoy.java @@ -45,6 +45,11 @@ public class Decoy extends Creature private Future _hateSpam; public Decoy(NpcTemplate template, Player owner, int totalLifeTime) + { + this(template, owner, totalLifeTime, true); + } + + public Decoy(NpcTemplate template, Player owner, int totalLifeTime, boolean aggressive) { super(template); setInstanceType(InstanceType.Decoy); @@ -53,10 +58,13 @@ public class Decoy extends Creature setInvul(false); _totalLifeTime = totalLifeTime; _timeRemaining = _totalLifeTime; - final int hateSpamSkillId = 5272; - final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); - _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(_owner, this), 1000, 1000); - _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + _decoyLifeTask = ThreadPool.scheduleAtFixedRate(new DecoyLifetime(this), 1000, 1000); + if (aggressive) + { + final int hateSpamSkillId = 5272; + final int skilllevel = Math.min(getTemplate().getDisplayId() - 13070, SkillData.getInstance().getMaxLevel(hateSpamSkillId)); + _hateSpam = ThreadPool.scheduleAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(hateSpamSkillId, skilllevel)), 2000, 5000); + } } @Override @@ -78,14 +86,11 @@ public class Decoy extends Creature static class DecoyLifetime implements Runnable { - private final Player _player; + private final Decoy _decoy; - private final Decoy _Decoy; - - DecoyLifetime(Player player, Decoy decoy) + DecoyLifetime(Decoy decoy) { - _player = player; - _Decoy = decoy; + _decoy = decoy; } @Override @@ -93,11 +98,11 @@ public class Decoy extends Creature { try { - _Decoy.decTimeRemaining(1000); - final double newTimeRemaining = _Decoy.getTimeRemaining(); + _decoy.decTimeRemaining(1000); + final double newTimeRemaining = _decoy.getTimeRemaining(); if (newTimeRemaining < 0) { - _Decoy.unSummon(_player); + _decoy.unSummon(); } } catch (Exception e) @@ -133,7 +138,7 @@ public class Decoy extends Creature } } - public void unSummon(Player owner) + public void unSummon() { if (_decoyLifeTask != null) {