From 45433f8d9a55b7365d19096114e0d30598a7d2bc Mon Sep 17 00:00:00 2001
From: MobiusDev <8391001+MobiusDevelopment@users.noreply.github.com>
Date: Sat, 3 Oct 2015 23:00:44 +0000
Subject: [PATCH] Pailaka Devil's Legacy improvement.
---
.../PailakaDevilsLegacy.java | 34 +++++++++++++++++++
trunk/dist/game/data/zones/custom_script.xml | 6 ++++
2 files changed, 40 insertions(+)
diff --git a/trunk/dist/game/data/scripts/instances/PailakaDevilsLegacy/PailakaDevilsLegacy.java b/trunk/dist/game/data/scripts/instances/PailakaDevilsLegacy/PailakaDevilsLegacy.java
index 4581a138b3..48f1ee10c2 100644
--- a/trunk/dist/game/data/scripts/instances/PailakaDevilsLegacy/PailakaDevilsLegacy.java
+++ b/trunk/dist/game/data/scripts/instances/PailakaDevilsLegacy/PailakaDevilsLegacy.java
@@ -31,6 +31,7 @@ import com.l2jserver.gameserver.model.Location;
import com.l2jserver.gameserver.model.actor.L2Attackable;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.gameserver.model.actor.L2Summon;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.holders.SkillHolder;
import com.l2jserver.gameserver.model.instancezone.InstanceWorld;
@@ -87,6 +88,9 @@ public final class PailakaDevilsLegacy extends AbstractInstance
// Misc
private static final int TEMPLATE_ID = 44;
private static final int ZONE = 20109;
+ private static final int ZONE_EXIT = 200000;
+ private static final int TIGRESS_LVL1 = 14916;
+ private static final int TIGRESS_LVL2 = 14917;
public PailakaDevilsLegacy()
{
@@ -96,6 +100,7 @@ public final class PailakaDevilsLegacy extends AbstractInstance
addKillId(LEMATAN);
addSpawnId(FOLLOWERS);
addEnterZoneId(ZONE);
+ addExitZoneId(ZONE_EXIT);
addMoveFinishedId(LEMATAN);
}
@@ -294,6 +299,35 @@ public final class PailakaDevilsLegacy extends AbstractInstance
return super.onEnterZone(character, zone);
}
+ @Override
+ public String onExitZone(L2Character character, L2ZoneType zone)
+ {
+ if (character.isPlayer() && character.hasSummon())
+ {
+ for (L2Summon summon : character.getServitors().values())
+ {
+ if (((summon.getTemplate().getId() == TIGRESS_LVL1) || (summon.getTemplate().getId() == TIGRESS_LVL2)))
+ {
+ if (!summon.isDead())
+ {
+ summon.getAI().stopFollow();
+ summon.abortAttack();
+ summon.abortCast();
+ if (summon.hasAI())
+ {
+ summon.getAI().stopAITask();
+ }
+ summon.getKnownList().removeAllKnownObjects();
+ summon.setTarget(null);
+ }
+ summon.decayMe();
+ break;
+ }
+ }
+ }
+ return super.onExitZone(character, zone);
+ }
+
@Override
public void onMoveFinished(L2Npc npc)
{
diff --git a/trunk/dist/game/data/zones/custom_script.xml b/trunk/dist/game/data/zones/custom_script.xml
index a3176aa0d9..548bff8511 100644
--- a/trunk/dist/game/data/zones/custom_script.xml
+++ b/trunk/dist/game/data/zones/custom_script.xml
@@ -29,6 +29,12 @@
+
+
+
+
+
+