Pailaka Devil's Legacy improvement.

This commit is contained in:
MobiusDev 2015-10-03 23:00:44 +00:00
parent 1322852e42
commit 45433f8d9a
2 changed files with 40 additions and 0 deletions

View File

@ -31,6 +31,7 @@ import com.l2jserver.gameserver.model.Location;
import com.l2jserver.gameserver.model.actor.L2Attackable; import com.l2jserver.gameserver.model.actor.L2Attackable;
import com.l2jserver.gameserver.model.actor.L2Character; import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Npc; 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.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.holders.SkillHolder; import com.l2jserver.gameserver.model.holders.SkillHolder;
import com.l2jserver.gameserver.model.instancezone.InstanceWorld; import com.l2jserver.gameserver.model.instancezone.InstanceWorld;
@ -87,6 +88,9 @@ public final class PailakaDevilsLegacy extends AbstractInstance
// Misc // Misc
private static final int TEMPLATE_ID = 44; private static final int TEMPLATE_ID = 44;
private static final int ZONE = 20109; 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() public PailakaDevilsLegacy()
{ {
@ -96,6 +100,7 @@ public final class PailakaDevilsLegacy extends AbstractInstance
addKillId(LEMATAN); addKillId(LEMATAN);
addSpawnId(FOLLOWERS); addSpawnId(FOLLOWERS);
addEnterZoneId(ZONE); addEnterZoneId(ZONE);
addExitZoneId(ZONE_EXIT);
addMoveFinishedId(LEMATAN); addMoveFinishedId(LEMATAN);
} }
@ -294,6 +299,35 @@ public final class PailakaDevilsLegacy extends AbstractInstance
return super.onEnterZone(character, zone); 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 @Override
public void onMoveFinished(L2Npc npc) public void onMoveFinished(L2Npc npc)
{ {

View File

@ -29,6 +29,12 @@
<node X="75490" Y="-221480" /> <node X="75490" Y="-221480" />
<node X="75630" Y="-221140" /> <node X="75630" Y="-221140" />
</zone> </zone>
<zone name="Giran (Devil's Isle)" id="200000" type="ScriptZone" shape="NPoly" minZ="-5152" maxZ="3848">
<node X="65788" Y="-229302" />
<node X="98153" Y="-229274" />
<node X="98153" Y="-196678" />
<node X="65758" Y="-196655" />
</zone>
<zone name="Nornil's Garden Warrior's Gate" id="20110" type="ScriptZone" shape="Cuboid" minZ="-12650" maxZ="-12600"> <zone name="Nornil's Garden Warrior's Gate" id="20110" type="ScriptZone" shape="Cuboid" minZ="-12650" maxZ="-12600">
<node X="-109864" Y="76184" /> <node X="-109864" Y="76184" />
<node X="-109544" Y="76392" /> <node X="-109544" Y="76392" />