Improvements for Seed of Destruction.
Contributed by Sahar.
This commit is contained in:
parent
5375129879
commit
0cb542afd9
@ -21,6 +21,7 @@ import java.util.Calendar;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.l2jmobius.Config;
|
||||
import com.l2jmobius.commons.util.CommonUtil;
|
||||
@ -48,12 +49,7 @@ import com.l2jmobius.gameserver.model.skills.Skill;
|
||||
import com.l2jmobius.gameserver.model.zone.L2ZoneType;
|
||||
import com.l2jmobius.gameserver.network.NpcStringId;
|
||||
import com.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.CameraMode;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.NormalCamera;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.SocialAction;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.SpecialCamera;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
||||
import com.l2jmobius.gameserver.util.Util;
|
||||
|
||||
@ -67,18 +63,13 @@ public class SeedOfDestruction extends AbstractNpcAI
|
||||
public int killedDevice = 0;
|
||||
public int deviceSpawnedMobCount = 0;
|
||||
public boolean ZoneWaitForTP = true;
|
||||
public List<L2Npc> naezds = new ArrayList<>();
|
||||
public List<L2PcInstance> PlayersInInstance = new ArrayList<>();
|
||||
public List<L2Npc> _mags = new ArrayList<>();
|
||||
L2Npc _tiat;
|
||||
L2Npc _priest;
|
||||
L2Npc _ChangePortal;
|
||||
L2Npc _MovePeltast;
|
||||
L2Npc _naezdTR1;
|
||||
L2Npc _naezdTR2;
|
||||
L2Npc _naezdTL1;
|
||||
L2Npc _naezdTL2;
|
||||
L2Npc _portalForCamera;
|
||||
|
||||
public SODWorld(Long time)
|
||||
{
|
||||
@ -103,10 +94,7 @@ public class SeedOfDestruction extends AbstractNpcAI
|
||||
private static final int THRONE_POWERFUL_DEVICE = 18778;
|
||||
private static final int SPAWN_DEVICE = 18696;
|
||||
private static final int TIAT = 29163;
|
||||
private static final int ChangePortal = 29172;
|
||||
private static final int PRIEST = 29173;
|
||||
private static final int NAEZD = 29162;
|
||||
private static final int PELTAST = 22581;
|
||||
private static final int[] SPAWN_MOB_IDS = {22536, 22537, 22538, 22539, 22540, 22541, 22542, 22543, 22544, 22547, 22550, 22551, 22552, 22596};
|
||||
private static final int[] MOB_IDS = {22536, 22537, 22538, 22539, 22540, 22541, 22542, 22543, 22544, 22547, 22550, 22551, 22552, 22596, 29162};
|
||||
private static final Location MOVE_TO_TIAT = new Location(-250403, 207273, -11952, 16384);
|
||||
@ -787,13 +775,6 @@ public class SeedOfDestruction extends AbstractNpcAI
|
||||
{-249423, 208088, -11894},
|
||||
{-249248, 208088, -11889}
|
||||
};
|
||||
private static int[][] NAEZDSPAWNS =
|
||||
{
|
||||
{-250304, 206624, -11908, 26492},
|
||||
{-250304, 206529, -11908, 26492},
|
||||
{-250506, 206624, -11907, 8191},
|
||||
{-250506, 206529, -11909, 8191}
|
||||
};
|
||||
// @formatter:on
|
||||
|
||||
// Initialization at 6:30 am on Wednesday and Saturday
|
||||
@ -1087,9 +1068,7 @@ public class SeedOfDestruction extends AbstractNpcAI
|
||||
}
|
||||
case 6:
|
||||
{
|
||||
runThrone(world);
|
||||
world.openDoor(THRONE_DOOR);
|
||||
spawn(world, FORT_PORTALS, false, true);
|
||||
break;
|
||||
}
|
||||
case 7:
|
||||
@ -1197,48 +1176,6 @@ public class SeedOfDestruction extends AbstractNpcAI
|
||||
}
|
||||
}
|
||||
|
||||
protected void runThrone(SODWorld world)
|
||||
{
|
||||
world._portalForCamera = addSpawn(SPAWN_DEVICE, -248781, 206325, -11966, 0, false, 0, false, world.getInstanceId());
|
||||
world._portalForCamera.setRandomWalking(false);
|
||||
|
||||
for (int i = 0; i < 12; i++)
|
||||
{
|
||||
final L2Npc npc1 = addSpawn(22543, ONETR[i][0], ONETR[i][1], ONETR[i][2], 16285, false, 0, false, world.getInstanceId());
|
||||
npc1.setRandomWalking(false);
|
||||
world._mags.add(npc1);
|
||||
|
||||
final L2Npc npc2 = addSpawn(22541, TWOTR[i][0], TWOTR[i][1], TWOTR[i][2], 16285, false, 0, false, world.getInstanceId());
|
||||
npc2.setRandomWalking(false);
|
||||
}
|
||||
for (int i = 0; i < 6; i++)
|
||||
{
|
||||
final L2Npc npc3 = addSpawn(FRETR[i][0], FRETR[i][1], FRETR[i][2], FRETR[i][3], 16285, false, 0, false, world.getInstanceId());
|
||||
npc3.setRandomWalking(false);
|
||||
|
||||
final L2Npc npc4 = addSpawn(22536, FORTR[i][0], FORTR[i][1], FORTR[i][2], 16285, false, 0, false, world.getInstanceId());
|
||||
npc4.setRandomWalking(false);
|
||||
|
||||
final L2Npc npc5 = addSpawn(22537, FIVETR[i][0], FIVETR[i][1], FIVETR[i][2], 16285, false, 0, false, world.getInstanceId());
|
||||
npc5.setRandomWalking(false);
|
||||
}
|
||||
|
||||
if (world.naezds.size() < 1)
|
||||
{
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
final L2Npc npc = addSpawn(NAEZD, NAEZDSPAWNS[i][0], NAEZDSPAWNS[i][1], NAEZDSPAWNS[i][2], NAEZDSPAWNS[i][3], false, 0, false, world.getInstanceId());
|
||||
npc.setRandomWalking(false);
|
||||
world.naezds.add(npc);
|
||||
}
|
||||
}
|
||||
world._MovePeltast = addSpawn(PELTAST, -250403, 207556, -11957, 16383, false, 0, false, world.getInstanceId());
|
||||
world._MovePeltast.setRandomWalking(false);
|
||||
|
||||
world._priest = addSpawn(PRIEST, -250408, 205862, -11727, 16383, false, 0, false, world.getInstanceId());
|
||||
world._priest.setRandomWalking(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onSkillSee(L2Npc npc, L2PcInstance caster, Skill skill, L2Object[] targets, boolean isPet)
|
||||
{
|
||||
@ -1292,96 +1229,14 @@ public class SeedOfDestruction extends AbstractNpcAI
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
InstanceWorld tmpworld = null;
|
||||
|
||||
if (npc != null)
|
||||
{
|
||||
tmpworld = InstanceManager.getInstance().getWorld(npc);
|
||||
}
|
||||
else
|
||||
{
|
||||
tmpworld = InstanceManager.getInstance().getWorld(player);
|
||||
}
|
||||
|
||||
final InstanceWorld tmpworld = InstanceManager.getInstance().getWorld(npc != null ? npc : player);
|
||||
if (tmpworld instanceof SODWorld)
|
||||
{
|
||||
final SODWorld world = (SODWorld) tmpworld;
|
||||
final teleCoord teleto = new teleCoord();
|
||||
teleto.instanceId = world.getInstanceId();
|
||||
if (event.equals("Part1"))
|
||||
if (event.equals("ThroneSpawn"))
|
||||
{
|
||||
world.ZoneWaitForTP = false;
|
||||
broadcastPacket((new SpecialCamera(player, 3500, 90, 15, 100, 10000, 5000, 0, 0, 1, 0, 0)), world);
|
||||
startQuestTimer("Part2", 100, world._MovePeltast, player);
|
||||
}
|
||||
else if (event.equals("Part2"))
|
||||
{
|
||||
MoveTo(world._MovePeltast, -250401, 207130, -11957);
|
||||
broadcastPacket((new SpecialCamera(player, 300, 90, 5, 6000, 10000, 7000, 0, 0, 1, 0, 0)), world);
|
||||
startQuestTimer("Part3", 100, world._MovePeltast, null);
|
||||
}
|
||||
else if (event.equals("Part3"))
|
||||
{
|
||||
broadcastPacket((new SocialAction(world._priest.getObjectId(), 1)), world);
|
||||
broadcastPacket((new SpecialCamera(world._priest, 200, 90, 10, 0, 10000, 5000, 0, 0, 1, 0, 0)), world);
|
||||
startQuestTimer("Part4", 100, npc, null);
|
||||
}
|
||||
else if (event.equals("Part4"))
|
||||
{
|
||||
broadcastPacket((new SpecialCamera(world._priest, 200, 90, 5, 2500, 10000, 5000, 0, 0, 1, 0, 0)), world);
|
||||
startQuestTimer("Part5", 100, world._MovePeltast, null);
|
||||
}
|
||||
else if (event.equals("Part5"))
|
||||
{
|
||||
broadcastPacket((new SpecialCamera(world._MovePeltast, 150, 90, 5, 0, 10000, 5000, 0, 0, 1, 0, 0)), world);
|
||||
startQuestTimer("Part6", 100, world._MovePeltast, null);
|
||||
}
|
||||
else if (event.equals("Part6"))
|
||||
{
|
||||
broadcastPacket((new SpecialCamera(world._MovePeltast, 150, 15, 10, 3000, 10000, 5000, 0, 0, 1, 0, 0)), world);
|
||||
MoveTo(world._priest, -250402, 206519, -11905);
|
||||
broadcastPacket((new SocialAction(world._MovePeltast.getObjectId(), 1)), world);
|
||||
startQuestTimer("Part7", 100, world._MovePeltast, null);
|
||||
}
|
||||
else if (event.equals("Part7"))
|
||||
{
|
||||
broadcastPacket((new SpecialCamera(world._priest, 1400, 40, 20, 0, 10000, 5000, 0, 0, 1, 0, 0)), world);
|
||||
Delete(world._MovePeltast);
|
||||
startQuestTimer("Part8", 100, world._priest, null);
|
||||
}
|
||||
else if (event.equals("Part8"))
|
||||
{
|
||||
broadcastPacket((new SpecialCamera(world._priest, 350, 90, 5, 7000, 10000, 8000, 0, 0, 1, 0, 0)), world);
|
||||
startQuestTimer("Part9", 100, world._priest, null);
|
||||
}
|
||||
else if (event.equals("Part9"))
|
||||
{
|
||||
broadcastPacket((new SpecialCamera(world._priest, 350, 90, 0, 2500, 10000, 15000, 0, 0, 1, 0, 0)), world);
|
||||
startQuestTimer("Part10", 100, world._priest, null);
|
||||
}
|
||||
else if (event.equals("Part10"))
|
||||
{
|
||||
world._ChangePortal = addSpawn(ChangePortal, -250402, 206519, -11905, 0, false, 0, false, world.getInstanceId());
|
||||
world._ChangePortal.setRandomWalking(false);
|
||||
world._priest.doCast(SkillData.getInstance().getSkill(5816, 1));
|
||||
startQuestTimer("Part11", 300, world._priest, null);
|
||||
startQuestTimer("PartUnnamed", 50, world._priest, null);
|
||||
}
|
||||
else if (event.equals("PartUnnamed"))
|
||||
{
|
||||
final Skill _skill = SkillData.getInstance().getSkill(5815, 1);
|
||||
for (L2Npc naezd : world.naezds)
|
||||
{
|
||||
naezd.doCast(_skill);
|
||||
}
|
||||
startQuestTimer("PartUnnamed", 100, world._priest, null);
|
||||
}
|
||||
else if (event.equals("Part11"))
|
||||
{
|
||||
cancelQuestTimers("PartUnnamed");
|
||||
world._tiat = addSpawn(TIAT, -250400, 207271, -11961, 16285, false, 0, false, world.getInstanceId());
|
||||
world._tiat.setRandomWalking(false);
|
||||
world._tiat.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||
world._naezdTR1 = addSpawn(NAEZD, -250154, 207203, -11970, 33818, false, 0, false, world.getInstanceId());
|
||||
world._naezdTR1.setRandomWalking(false);
|
||||
world._naezdTR2 = addSpawn(NAEZD, -250209, 206941, -11966, 27379, false, 0, false, world.getInstanceId());
|
||||
@ -1390,118 +1245,34 @@ public class SeedOfDestruction extends AbstractNpcAI
|
||||
world._naezdTL1.setRandomWalking(false);
|
||||
world._naezdTL2 = addSpawn(NAEZD, -250597, 206941, -11966, 6867, false, 0, false, world.getInstanceId());
|
||||
world._naezdTL2.setRandomWalking(false);
|
||||
broadcastPacket((new SpecialCamera(world._tiat, 400, 90, 5, 1500, 10000, 13000, 0, 0, 1, 0, 0)), world);
|
||||
startQuestTimer("Part12", 100, world._tiat, null);
|
||||
}
|
||||
else if (event.equals("Part12"))
|
||||
{
|
||||
broadcastPacket((new SocialAction(world._tiat.getObjectId(), 1)), world);
|
||||
Delete(world._priest);
|
||||
Delete(world._ChangePortal);
|
||||
startQuestTimer("Part13", 100, world._tiat, null);
|
||||
}
|
||||
else if (event.equals("Part13"))
|
||||
{
|
||||
world._naezdTR2.doCast(SkillData.getInstance().getSkill(5815, 1));
|
||||
world._naezdTL2.doCast(SkillData.getInstance().getSkill(5815, 1));
|
||||
startQuestTimer("Part14", 100, world._tiat, null);
|
||||
}
|
||||
else if (event.equals("Part14"))
|
||||
{
|
||||
world._naezdTR1.doCast(SkillData.getInstance().getSkill(5815, 1));
|
||||
world._naezdTL1.doCast(SkillData.getInstance().getSkill(5815, 1));
|
||||
broadcastPacket((new SpecialCamera(world._tiat, 600, 90, 5, 4000, 10000, 8000, 0, 0, 1, 0, 0)), world);
|
||||
startQuestTimer("Part15", 100, world._tiat, null);
|
||||
}
|
||||
else if (event.equals("Part15"))
|
||||
{
|
||||
MoveTo(world._naezdTR1, -249576, 207155, -11969);
|
||||
MoveTo(world._naezdTR2, -249576, 207155, -11969);
|
||||
MoveTo(world._naezdTL1, -251465, 206601, -11970);
|
||||
MoveTo(world._naezdTL2, -251465, 206601, -11970);
|
||||
startQuestTimer("Part16", 100, world._tiat, null);
|
||||
}
|
||||
else if (event.equals("Part16"))
|
||||
{
|
||||
broadcastPacket((new SpecialCamera(world._tiat, 1400, 90, 40, 3000, 10000, 3000, 0, 0, 1, 0, 0)), world);
|
||||
startQuestTimer("Part17", 100, world._tiat, null);
|
||||
}
|
||||
else if (event.equals("Part17"))
|
||||
{
|
||||
broadcastPacket((new SpecialCamera(world._portalForCamera, 3500, 37, 1, 0, 10000, 2000, 0, 0, 1, 0, 0)), world);
|
||||
startQuestTimer("Part18", 100, world._tiat, null);
|
||||
}
|
||||
else if (event.equals("Part18"))
|
||||
{
|
||||
final Skill _skill = SkillData.getInstance().getSkill(5833, 1);
|
||||
for (L2Npc mag : world._mags)
|
||||
|
||||
for (int i = 0; i < 12; i++)
|
||||
{
|
||||
mag.setTarget(mag);
|
||||
mag.doCast(_skill);
|
||||
final L2Npc npc1 = addSpawn(22543, ONETR[i][0], ONETR[i][1], ONETR[i][2], 16285, false, 0, false, world.getInstanceId());
|
||||
npc1.setRandomWalking(false);
|
||||
world._mags.add(npc1);
|
||||
|
||||
final L2Npc npc2 = addSpawn(22541, TWOTR[i][0], TWOTR[i][1], TWOTR[i][2], 16285, false, 0, false, world.getInstanceId());
|
||||
npc2.setRandomWalking(false);
|
||||
}
|
||||
broadcastPacket((new SpecialCamera(world._portalForCamera, 2400, 60, 1, 5000, 10000, 6000, 0, 0, 1, 0, 0)), world);
|
||||
startQuestTimer("Part19", 100, world._tiat, null);
|
||||
}
|
||||
else if (event.equals("Part19"))
|
||||
{
|
||||
broadcastPacket((new SpecialCamera(world._portalForCamera, 2000, 75, 4, 2000, 10000, 3000, 0, 0, 1, 0, 0)), world);
|
||||
startQuestTimer("Part20", 100, world._tiat, null);
|
||||
}
|
||||
else if (event.equals("Part20"))
|
||||
{
|
||||
broadcastPacket((new SpecialCamera(world._tiat, 250, 90, 0, 100, 10000, 3000, 0, 0, 1, 0, 0)), world);
|
||||
startQuestTimer("Part21", 100, world._tiat, null);
|
||||
}
|
||||
else if (event.equals("Part21"))
|
||||
{
|
||||
broadcastPacket((new SpecialCamera(world._tiat, 1500, 90, 5, 5000, 10000, 6500, 0, 0, 1, 0, 0)), world);
|
||||
startQuestTimer("Part22", 100, world._tiat, null);
|
||||
}
|
||||
else if (event.equals("Part22"))
|
||||
{
|
||||
world._tiat.doCast(SkillData.getInstance().getSkill(5818, 1));
|
||||
startQuestTimer("End!", 100, world._tiat, null);
|
||||
}
|
||||
else if (event.equals("End!"))
|
||||
{
|
||||
for (L2PcInstance plr : world.PlayersInInstance)
|
||||
for (int i = 0; i < 6; i++)
|
||||
{
|
||||
if ((plr == null) || (checkworld(plr) != 1))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
SetMovieMode(plr, false);
|
||||
Delete(world._portalForCamera);
|
||||
}
|
||||
for (L2Npc naezd : world.naezds)
|
||||
{
|
||||
Delete(naezd);
|
||||
final L2Npc npc3 = addSpawn(FRETR[i][0], FRETR[i][1], FRETR[i][2], FRETR[i][3], 16285, false, 0, false, world.getInstanceId());
|
||||
npc3.setRandomWalking(false);
|
||||
|
||||
final L2Npc npc4 = addSpawn(22536, FORTR[i][0], FORTR[i][1], FORTR[i][2], 16285, false, 0, false, world.getInstanceId());
|
||||
npc4.setRandomWalking(false);
|
||||
|
||||
final L2Npc npc5 = addSpawn(22537, FIVETR[i][0], FIVETR[i][1], FIVETR[i][2], 16285, false, 0, false, world.getInstanceId());
|
||||
npc5.setRandomWalking(false);
|
||||
}
|
||||
|
||||
spawn(world, FORT_PORTALS, false, true);
|
||||
}
|
||||
else if (event.equals("KillTiatPart1"))
|
||||
{
|
||||
for (L2PcInstance plr : world.PlayersInInstance)
|
||||
{
|
||||
if ((plr == null) || (checkworld(plr) != 1))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
SetMovieMode(plr, true);
|
||||
playMovie(plr, Movie.SC_BOSS_TIAT_ENDING_SUCCES);
|
||||
}
|
||||
Delete(npc);
|
||||
for (L2Npc mob : InstanceManager.getInstance().getInstance(world.getInstanceId()).getNpcs())
|
||||
{
|
||||
mob.deleteMe();
|
||||
}
|
||||
for (L2PcInstance plr : world.PlayersInInstance)
|
||||
{
|
||||
if ((plr == null) || (checkworld(plr) != 1))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
SetMovieMode(plr, false);
|
||||
}
|
||||
playMovie(world.PlayersInInstance.stream().filter(plr -> (plr != null) && (checkworld(plr) == 1)).collect(Collectors.toList()), Movie.SC_BOSS_TIAT_ENDING_SUCCES);
|
||||
InstanceManager.getInstance().getInstance(world.getInstanceId()).getNpcs().forEach(L2Npc::deleteMe);
|
||||
}
|
||||
else if (event.equals("Spawn"))
|
||||
{
|
||||
@ -1574,7 +1345,6 @@ public class SeedOfDestruction extends AbstractNpcAI
|
||||
{
|
||||
world.incStatus();
|
||||
SoDManager.getInstance().increaseSoDTiatKilled();
|
||||
Delete(npc);
|
||||
for (L2Npc mob : InstanceManager.getInstance().getInstance(world.getInstanceId()).getNpcs())
|
||||
{
|
||||
mob.deleteMe();
|
||||
@ -1589,12 +1359,10 @@ public class SeedOfDestruction extends AbstractNpcAI
|
||||
}
|
||||
else if (npc.getId() == NAEZD)
|
||||
{
|
||||
world.naezds.remove(npc);
|
||||
final L2Attackable mob = (L2Attackable) addSpawn(npc.getId(), npc.getSpawn().getX(), npc.getSpawn().getY(), npc.getSpawn().getZ(), npc.getSpawn().getHeading(), false, 0, false, world.getInstanceId());
|
||||
mob.setRandomWalking(false);
|
||||
mob.setSeeThroughSilentMove(true);
|
||||
mob.setIsRaidMinion(true);
|
||||
world.naezds.add(mob);
|
||||
}
|
||||
else if (npc.getId() == SPAWN_DEVICE)
|
||||
{
|
||||
@ -1701,71 +1469,12 @@ public class SeedOfDestruction extends AbstractNpcAI
|
||||
final SODWorld world = (SODWorld) tmpworld;
|
||||
if ((zone.getId() == 25253) && world.ZoneWaitForTP)
|
||||
{
|
||||
startQuestTimer("Part1", 58000, world._priest, (L2PcInstance) character);
|
||||
for (L2PcInstance player : world.PlayersInInstance)
|
||||
{
|
||||
if ((player == null) || (checkworld(player) != 1))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
SetMovieMode(player, true);
|
||||
playMovie(player, Movie.SC_BOSS_TIAT_OPENING);
|
||||
world.ZoneWaitForTP = false;
|
||||
}
|
||||
startQuestTimer("ThroneSpawn", 55000, null, (L2PcInstance) character);
|
||||
playMovie(world.PlayersInInstance.stream().filter(player -> (player != null) && (checkworld(player) == 1)).collect(Collectors.toList()), Movie.SC_BOSS_TIAT_OPENING);
|
||||
world.ZoneWaitForTP = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onEnterZone(character, zone);
|
||||
}
|
||||
|
||||
private void broadcastPacket(IClientOutgoingPacket mov, SODWorld world)
|
||||
{
|
||||
for (L2PcInstance player : world.PlayersInInstance)
|
||||
{
|
||||
if ((player == null) || (checkworld(player) != 1))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
player.sendPacket(mov);
|
||||
}
|
||||
}
|
||||
|
||||
private void Delete(L2Npc npc)
|
||||
{
|
||||
npc.decayMe();
|
||||
npc.deleteMe();
|
||||
}
|
||||
|
||||
private void SetMovieMode(L2PcInstance player, boolean mode)
|
||||
{
|
||||
if (mode)
|
||||
{
|
||||
player.abortAttack();
|
||||
player.abortCast();
|
||||
player.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||
player.setTarget(null);
|
||||
player.setIsImmobilized(true);
|
||||
player.sendPacket(new CameraMode(1));
|
||||
player.getAppearance().setGhostMode(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
player.setIsImmobilized(false);
|
||||
player.sendPacket(new CameraMode(0));
|
||||
player.sendPacket(new NormalCamera());
|
||||
player.getAppearance().setGhostMode(false);
|
||||
}
|
||||
}
|
||||
|
||||
private void MoveTo(L2Npc npc, int x, int y, int z)
|
||||
{
|
||||
if (npc == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
npc.abortCast();
|
||||
npc.abortAttack();
|
||||
npc.setRunning();
|
||||
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, (new Location(x, y, z, 0)));
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user