Support for randomWalk and randomAnimation NPC template parameters.
This commit is contained in:
parent
24bea65710
commit
194a0518bc
@ -128,7 +128,7 @@ public final class LairOfAntharas extends AbstractNpcAI
|
||||
mob.setOnKillDelay(0);
|
||||
if ((npc.getId() == DRAGON_GUARD) || (npc.getId() == DRAGON_MAGE))
|
||||
{
|
||||
mob.setIsNoRndWalk(true);
|
||||
mob.setRandomWalking(false);
|
||||
startQuestTimer("CHECK_HOME", 10000, npc, null, true);
|
||||
}
|
||||
return super.onSpawn(npc);
|
||||
|
@ -232,7 +232,7 @@ public class TarBeetleSpawn implements IGameXmlReader
|
||||
spawn.setZ(GeoEngine.getInstance().getHeight(location.getX(), location.getY(), location.getZ()));
|
||||
|
||||
final L2Npc npc = spawn.doSpawn();
|
||||
npc.setIsNoRndWalk(true);
|
||||
npc.setRandomWalking(false);
|
||||
npc.setIsImmobilized(true);
|
||||
npc.setIsInvul(true);
|
||||
npc.disableCoreAI(true);
|
||||
|
@ -81,7 +81,7 @@ public final class ZealotOfShilen extends AbstractNpcAI
|
||||
{
|
||||
if (npc.getId() == ZEALOT)
|
||||
{
|
||||
npc.setIsNoRndWalk(true);
|
||||
npc.setRandomWalking(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -508,7 +508,7 @@ public class HallOfErosionAttack extends AbstractNpcAI
|
||||
{
|
||||
if (CommonUtil.contains(NOTMOVE, npc.getId()))
|
||||
{
|
||||
npc.setIsNoRndWalk(true);
|
||||
npc.setRandomWalking(false);
|
||||
npc.setIsImmobilized(true);
|
||||
}
|
||||
|
||||
|
@ -499,7 +499,7 @@ public class HallOfErosionDefence extends AbstractNpcAI
|
||||
{
|
||||
if (CommonUtil.contains(NOTMOVE, npc.getId()))
|
||||
{
|
||||
npc.setIsNoRndWalk(true);
|
||||
npc.setRandomWalking(false);
|
||||
npc.setIsImmobilized(true);
|
||||
}
|
||||
|
||||
|
@ -552,13 +552,13 @@ public class HeartInfinityAttack extends AbstractNpcAI
|
||||
{
|
||||
if (CommonUtil.contains(NOTMOVE, npc.getId()))
|
||||
{
|
||||
npc.setIsNoRndWalk(true);
|
||||
npc.setRandomWalking(false);
|
||||
npc.setIsImmobilized(true);
|
||||
}
|
||||
|
||||
if (npc.getId() == HOUND)
|
||||
{
|
||||
npc.setIsNoRndWalk(true);
|
||||
npc.setRandomWalking(false);
|
||||
npc.setIsImmobilized(true);
|
||||
}
|
||||
|
||||
|
@ -557,7 +557,7 @@ public class HeartInfinityDefence extends AbstractNpcAI
|
||||
{
|
||||
if (CommonUtil.contains(NOTMOVE, npc.getId()))
|
||||
{
|
||||
npc.setIsNoRndWalk(true);
|
||||
npc.setRandomWalking(false);
|
||||
npc.setIsImmobilized(true);
|
||||
}
|
||||
|
||||
|
@ -1141,7 +1141,7 @@ public class SeedOfDestruction extends AbstractNpcAI
|
||||
world.npcList.put(npc, false);
|
||||
}
|
||||
npc.setIsImmobilized(TIAT == mob[0] ? true : isImmobilized);
|
||||
npc.setIsNoRndWalk(true);
|
||||
npc.setRandomWalking(false);
|
||||
if (npc.isAttackable())
|
||||
{
|
||||
((L2Attackable) npc).setSeeThroughSilentMove(true);
|
||||
@ -1200,27 +1200,27 @@ 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.setIsNoRndWalk(true);
|
||||
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.setIsNoRndWalk(true);
|
||||
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.setIsNoRndWalk(true);
|
||||
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.setIsNoRndWalk(true);
|
||||
npc3.setRandomWalking(false);
|
||||
|
||||
final L2Npc npc4 = addSpawn(22536, FORTR[i][0], FORTR[i][1], FORTR[i][2], 16285, false, 0, false, world.getInstanceId());
|
||||
npc4.setIsNoRndWalk(true);
|
||||
npc4.setRandomWalking(false);
|
||||
|
||||
final L2Npc npc5 = addSpawn(22537, FIVETR[i][0], FIVETR[i][1], FIVETR[i][2], 16285, false, 0, false, world.getInstanceId());
|
||||
npc5.setIsNoRndWalk(true);
|
||||
npc5.setRandomWalking(false);
|
||||
}
|
||||
|
||||
if (world.naezds.size() < 1)
|
||||
@ -1228,15 +1228,15 @@ public class SeedOfDestruction extends AbstractNpcAI
|
||||
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.setIsNoRndWalk(true);
|
||||
npc.setRandomWalking(false);
|
||||
world.naezds.add(npc);
|
||||
}
|
||||
}
|
||||
world._MovePeltast = addSpawn(PELTAST, -250403, 207556, -11957, 16383, false, 0, false, world.getInstanceId());
|
||||
world._MovePeltast.setIsNoRndWalk(true);
|
||||
world._MovePeltast.setRandomWalking(false);
|
||||
|
||||
world._priest = addSpawn(PRIEST, -250408, 205862, -11727, 16383, false, 0, false, world.getInstanceId());
|
||||
world._priest.setIsNoRndWalk(true);
|
||||
world._priest.setRandomWalking(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -1362,7 +1362,7 @@ public class SeedOfDestruction extends AbstractNpcAI
|
||||
else if (event.equals("Part10"))
|
||||
{
|
||||
world._ChangePortal = addSpawn(ChangePortal, -250402, 206519, -11905, 0, false, 0, false, world.getInstanceId());
|
||||
world._ChangePortal.setIsNoRndWalk(true);
|
||||
world._ChangePortal.setRandomWalking(false);
|
||||
world._priest.doCast(SkillData.getInstance().getSkill(5816, 1));
|
||||
startQuestTimer("Part11", 300, world._priest, null);
|
||||
startQuestTimer("PartUnnamed", 50, world._priest, null);
|
||||
@ -1380,16 +1380,16 @@ public class SeedOfDestruction extends AbstractNpcAI
|
||||
{
|
||||
cancelQuestTimers("PartUnnamed");
|
||||
world._tiat = addSpawn(TIAT, -250400, 207271, -11961, 16285, false, 0, false, world.getInstanceId());
|
||||
world._tiat.setIsNoRndWalk(true);
|
||||
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.setIsNoRndWalk(true);
|
||||
world._naezdTR1.setRandomWalking(false);
|
||||
world._naezdTR2 = addSpawn(NAEZD, -250209, 206941, -11966, 27379, false, 0, false, world.getInstanceId());
|
||||
world._naezdTR2.setIsNoRndWalk(true);
|
||||
world._naezdTR2.setRandomWalking(false);
|
||||
world._naezdTL1 = addSpawn(NAEZD, -250652, 207203, -11970, 0, false, 0, false, world.getInstanceId());
|
||||
world._naezdTL1.setIsNoRndWalk(true);
|
||||
world._naezdTL1.setRandomWalking(false);
|
||||
world._naezdTL2 = addSpawn(NAEZD, -250597, 206941, -11966, 6867, false, 0, false, world.getInstanceId());
|
||||
world._naezdTL2.setIsNoRndWalk(true);
|
||||
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);
|
||||
}
|
||||
@ -1591,7 +1591,7 @@ public class SeedOfDestruction extends AbstractNpcAI
|
||||
{
|
||||
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.setIsNoRndWalk(true);
|
||||
mob.setRandomWalking(false);
|
||||
mob.setSeeThroughSilentMove(true);
|
||||
mob.setIsRaidMinion(true);
|
||||
world.naezds.add(mob);
|
||||
|
@ -65,7 +65,7 @@ public final class HellboundCore extends AbstractNpcAI
|
||||
{
|
||||
if (npc.getId() == NAIA)
|
||||
{
|
||||
npc.setIsNoRndWalk(true);
|
||||
npc.setRandomWalking(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -63,7 +63,7 @@ public final class OutpostCaptain extends AbstractNpcAI
|
||||
@Override
|
||||
public final String onSpawn(L2Npc npc)
|
||||
{
|
||||
npc.setIsNoRndWalk(true);
|
||||
npc.setRandomWalking(false);
|
||||
|
||||
if (npc.getId() == CAPTAIN)
|
||||
{
|
||||
|
@ -206,7 +206,7 @@ public final class AnomicFoundry extends AbstractNpcAI
|
||||
|
||||
if (npc.getId() == LABORER)
|
||||
{
|
||||
npc.setIsNoRndWalk(true);
|
||||
npc.setRandomWalking(false);
|
||||
}
|
||||
return super.onSpawn(npc);
|
||||
}
|
||||
|
@ -834,7 +834,7 @@ public final class TowerOfNaia extends AbstractNpcAI
|
||||
time = (int) ((distance / npc.getWalkSpeed()) * 1000);
|
||||
npc.setWalking();
|
||||
npc.disableCoreAI(true);
|
||||
npc.setIsNoRndWalk(true);
|
||||
npc.setRandomWalking(false);
|
||||
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(coords[0], coords[1], coords[2], heading));
|
||||
npc.getSpawn().setX(coords[0]);
|
||||
npc.getSpawn().setY(coords[1]);
|
||||
|
@ -64,7 +64,7 @@ public final class EvasGiftBox extends AbstractNpcAI
|
||||
@Override
|
||||
public String onSpawn(L2Npc npc)
|
||||
{
|
||||
npc.setIsNoRndWalk(true);
|
||||
npc.setRandomWalking(false);
|
||||
((L2Attackable) npc).setOnKillDelay(0);
|
||||
return super.onSpawn(npc);
|
||||
}
|
||||
|
@ -141,7 +141,7 @@ public final class SelMahumSquad extends AbstractNpcAI
|
||||
npc.setWalking();
|
||||
npc.setTarget(npc);
|
||||
|
||||
if (npc.isNoRndWalk())
|
||||
if (!npc.isRandomWalkingEnabled())
|
||||
{
|
||||
npc.doCast(SkillData.getInstance().getSkill(6331, 1));
|
||||
npc.setDisplayEffect(MAHUM_EFFECT_SLEEP);
|
||||
@ -232,9 +232,9 @@ public final class SelMahumSquad extends AbstractNpcAI
|
||||
}
|
||||
case "SCE_CAMPFIRE_START":
|
||||
{
|
||||
if (!receiver.isNoRndWalk() && !receiver.isDead() && (receiver.getAI().getIntention() != CtrlIntention.AI_INTENTION_ATTACK) && CommonUtil.contains(SQUAD_LEADERS, receiver.getId()))
|
||||
if (receiver.isRandomWalkingEnabled() && !receiver.isDead() && (receiver.getAI().getIntention() != CtrlIntention.AI_INTENTION_ATTACK) && CommonUtil.contains(SQUAD_LEADERS, receiver.getId()))
|
||||
{
|
||||
receiver.setIsNoRndWalk(true); // Moving to fire - i_ai0 = 1
|
||||
receiver.setRandomWalking(false); // Moving to fire - i_ai0 = 1
|
||||
receiver.setRunning();
|
||||
final Location loc = sender.getPointInRange(100, 200);
|
||||
loc.setHeading(receiver.getHeading());
|
||||
@ -253,7 +253,7 @@ public final class SelMahumSquad extends AbstractNpcAI
|
||||
}
|
||||
else if ((receiver.getAI().getIntention() != CtrlIntention.AI_INTENTION_ATTACK) && CommonUtil.contains(SQUAD_LEADERS, receiver.getId()))
|
||||
{
|
||||
receiver.setIsNoRndWalk(false);
|
||||
receiver.setRandomWalking(true);
|
||||
receiver.getVariables().remove("BUSY_STATE");
|
||||
receiver.setRHandId(THS_Weapon);
|
||||
startQuestTimer("return_from_fire", 3000, receiver, null);
|
||||
@ -264,11 +264,11 @@ public final class SelMahumSquad extends AbstractNpcAI
|
||||
{
|
||||
if (!receiver.isDead() && (receiver.getAI().getIntention() != CtrlIntention.AI_INTENTION_ATTACK) && (receiver.getVariables().getInt("BUSY_STATE", 0) == 0) && CommonUtil.contains(SQUAD_LEADERS, receiver.getId()))
|
||||
{
|
||||
if (receiver.isNoRndWalk()) // i_ai0 == 1
|
||||
if (!receiver.isRandomWalkingEnabled()) // i_ai0 == 1
|
||||
{
|
||||
receiver.setRHandId(THS_Weapon);
|
||||
}
|
||||
receiver.setIsNoRndWalk(true); // Moving to fire - i_ai0 = 1
|
||||
receiver.setRandomWalking(false); // Moving to fire - i_ai0 = 1
|
||||
receiver.getVariables().set("BUSY_STATE", 1); // Eating - i_ai3 = 1
|
||||
receiver.setRunning();
|
||||
receiver.broadcastSay(ChatType.NPC_GENERAL, (getRandom(3) < 1) ? NpcStringId.LOOKS_DELICIOUS : NpcStringId.LET_S_GO_EAT);
|
||||
@ -312,7 +312,7 @@ public final class SelMahumSquad extends AbstractNpcAI
|
||||
public void onMoveFinished(L2Npc npc)
|
||||
{
|
||||
// NPC moves to fire
|
||||
if (npc.isNoRndWalk() && (npc.getX() == npc.getVariables().getInt("DESTINATION_X")) && (npc.getY() == npc.getVariables().getInt("DESTINATION_Y")))
|
||||
if (!npc.isRandomWalkingEnabled() && (npc.getX() == npc.getVariables().getInt("DESTINATION_X")) && (npc.getY() == npc.getVariables().getInt("DESTINATION_Y")))
|
||||
{
|
||||
npc.setRHandId(OHS_Weapon);
|
||||
startQuestTimer("fire_arrived", 3000, npc, null);
|
||||
@ -350,7 +350,7 @@ public final class SelMahumSquad extends AbstractNpcAI
|
||||
else if (CommonUtil.contains(SQUAD_LEADERS, npc.getId()))
|
||||
{
|
||||
npc.setDisplayEffect(3);
|
||||
npc.setIsNoRndWalk(false);
|
||||
npc.setRandomWalking(true);
|
||||
}
|
||||
return super.onSpawn(npc);
|
||||
}
|
||||
@ -385,7 +385,7 @@ public final class SelMahumSquad extends AbstractNpcAI
|
||||
{
|
||||
cancelQuestTimer("remove_effects", attacked, null);
|
||||
attacked.getVariables().remove("BUSY_STATE");
|
||||
attacked.setIsNoRndWalk(false);
|
||||
attacked.setRandomWalking(true);
|
||||
attacked.setDisplayEffect(MAHUM_EFFECT_NONE);
|
||||
if (attacked.getRightHandItem() == OHS_Weapon)
|
||||
{
|
||||
|
@ -75,7 +75,7 @@ public class FairyTrees extends AbstractNpcAI
|
||||
@Override
|
||||
public String onSpawn(L2Npc npc)
|
||||
{
|
||||
npc.setIsNoRndWalk(true);
|
||||
npc.setRandomWalking(false);
|
||||
npc.setIsImmobilized(true);
|
||||
return super.onSpawn(npc);
|
||||
}
|
||||
|
@ -144,7 +144,7 @@ public final class PrisonGuards extends AbstractNpcAI
|
||||
}
|
||||
else
|
||||
{
|
||||
npc.setIsNoRndWalk(true);
|
||||
npc.setRandomWalking(false);
|
||||
cancelQuestTimer("CHECK_HOME", npc, null);
|
||||
startQuestTimer("CHECK_HOME", 30000, npc, null);
|
||||
}
|
||||
|
@ -304,7 +304,7 @@ public final class DarkCloudMansion extends AbstractInstance
|
||||
StartRoom.npcList.add(thisnpc);
|
||||
if (noRndWalk)
|
||||
{
|
||||
thisnpc.npc.setIsNoRndWalk(true);
|
||||
thisnpc.npc.setRandomWalking(false);
|
||||
}
|
||||
|
||||
thisnpc = new DMCNpc();
|
||||
@ -312,7 +312,7 @@ public final class DarkCloudMansion extends AbstractInstance
|
||||
StartRoom.npcList.add(thisnpc);
|
||||
if (noRndWalk)
|
||||
{
|
||||
thisnpc.npc.setIsNoRndWalk(true);
|
||||
thisnpc.npc.setRandomWalking(false);
|
||||
}
|
||||
world.setParameter("StartRoom", StartRoom);
|
||||
}
|
||||
@ -327,7 +327,7 @@ public final class DarkCloudMansion extends AbstractInstance
|
||||
thisnpc.npc = addSpawn(BM[1], 147217, 180112, -6117, 0, false, 0, false, world.getInstanceId());
|
||||
if (noRndWalk)
|
||||
{
|
||||
thisnpc.npc.setIsNoRndWalk(true);
|
||||
thisnpc.npc.setRandomWalking(false);
|
||||
}
|
||||
Hall.npcList.add(thisnpc);
|
||||
|
||||
@ -335,7 +335,7 @@ public final class DarkCloudMansion extends AbstractInstance
|
||||
thisnpc.npc = addSpawn(BM[2], 147217, 180209, -6117, 0, false, 0, false, world.getInstanceId());
|
||||
if (noRndWalk)
|
||||
{
|
||||
thisnpc.npc.setIsNoRndWalk(true);
|
||||
thisnpc.npc.setRandomWalking(false);
|
||||
}
|
||||
Hall.npcList.add(thisnpc);
|
||||
|
||||
@ -343,7 +343,7 @@ public final class DarkCloudMansion extends AbstractInstance
|
||||
thisnpc.npc = addSpawn(BM[1], 148521, 180112, -6117, 0, false, 0, false, world.getInstanceId());
|
||||
if (noRndWalk)
|
||||
{
|
||||
thisnpc.npc.setIsNoRndWalk(true);
|
||||
thisnpc.npc.setRandomWalking(false);
|
||||
}
|
||||
Hall.npcList.add(thisnpc);
|
||||
|
||||
@ -351,7 +351,7 @@ public final class DarkCloudMansion extends AbstractInstance
|
||||
thisnpc.npc = addSpawn(BM[0], 148521, 180209, -6117, 0, false, 0, false, world.getInstanceId());
|
||||
if (noRndWalk)
|
||||
{
|
||||
thisnpc.npc.setIsNoRndWalk(true);
|
||||
thisnpc.npc.setRandomWalking(false);
|
||||
}
|
||||
Hall.npcList.add(thisnpc);
|
||||
|
||||
@ -359,7 +359,7 @@ public final class DarkCloudMansion extends AbstractInstance
|
||||
thisnpc.npc = addSpawn(BM[1], 148525, 180910, -6117, 0, false, 0, false, world.getInstanceId());
|
||||
if (noRndWalk)
|
||||
{
|
||||
thisnpc.npc.setIsNoRndWalk(true);
|
||||
thisnpc.npc.setRandomWalking(false);
|
||||
}
|
||||
Hall.npcList.add(thisnpc);
|
||||
|
||||
@ -367,7 +367,7 @@ public final class DarkCloudMansion extends AbstractInstance
|
||||
thisnpc.npc = addSpawn(BM[2], 148435, 180910, -6117, 0, false, 0, false, world.getInstanceId());
|
||||
if (noRndWalk)
|
||||
{
|
||||
thisnpc.npc.setIsNoRndWalk(true);
|
||||
thisnpc.npc.setRandomWalking(false);
|
||||
}
|
||||
Hall.npcList.add(thisnpc);
|
||||
|
||||
@ -375,7 +375,7 @@ public final class DarkCloudMansion extends AbstractInstance
|
||||
thisnpc.npc = addSpawn(BM[1], 147242, 180910, -6117, 0, false, 0, false, world.getInstanceId());
|
||||
if (noRndWalk)
|
||||
{
|
||||
thisnpc.npc.setIsNoRndWalk(true);
|
||||
thisnpc.npc.setRandomWalking(false);
|
||||
}
|
||||
Hall.npcList.add(thisnpc);
|
||||
|
||||
@ -383,7 +383,7 @@ public final class DarkCloudMansion extends AbstractInstance
|
||||
thisnpc.npc = addSpawn(BM[2], 147242, 180819, -6117, 0, false, 0, false, world.getInstanceId());
|
||||
if (noRndWalk)
|
||||
{
|
||||
thisnpc.npc.setIsNoRndWalk(true);
|
||||
thisnpc.npc.setRandomWalking(false);
|
||||
}
|
||||
Hall.npcList.add(thisnpc);
|
||||
|
||||
@ -406,7 +406,7 @@ public final class DarkCloudMansion extends AbstractInstance
|
||||
thisnpc.npc = addSpawn(HG[1], 147842, 179837, -6117, 0, false, 0, false, world.getInstanceId());
|
||||
if (noRndWalk)
|
||||
{
|
||||
thisnpc.npc.setIsNoRndWalk(true);
|
||||
thisnpc.npc.setRandomWalking(false);
|
||||
}
|
||||
FirstRoom.npcList.add(thisnpc);
|
||||
|
||||
@ -414,7 +414,7 @@ public final class DarkCloudMansion extends AbstractInstance
|
||||
thisnpc.npc = addSpawn(HG[0], 147711, 179708, -6117, 0, false, 0, false, world.getInstanceId());
|
||||
if (noRndWalk)
|
||||
{
|
||||
thisnpc.npc.setIsNoRndWalk(true);
|
||||
thisnpc.npc.setRandomWalking(false);
|
||||
}
|
||||
FirstRoom.npcList.add(thisnpc);
|
||||
|
||||
@ -422,7 +422,7 @@ public final class DarkCloudMansion extends AbstractInstance
|
||||
thisnpc.npc = addSpawn(HG[1], 147842, 179552, -6117, 0, false, 0, false, world.getInstanceId());
|
||||
if (noRndWalk)
|
||||
{
|
||||
thisnpc.npc.setIsNoRndWalk(true);
|
||||
thisnpc.npc.setRandomWalking(false);
|
||||
}
|
||||
FirstRoom.npcList.add(thisnpc);
|
||||
|
||||
@ -430,7 +430,7 @@ public final class DarkCloudMansion extends AbstractInstance
|
||||
thisnpc.npc = addSpawn(HG[0], 147964, 179708, -6117, 0, false, 0, false, world.getInstanceId());
|
||||
if (noRndWalk)
|
||||
{
|
||||
thisnpc.npc.setIsNoRndWalk(true);
|
||||
thisnpc.npc.setRandomWalking(false);
|
||||
}
|
||||
FirstRoom.npcList.add(thisnpc);
|
||||
|
||||
@ -511,37 +511,37 @@ public final class DarkCloudMansion extends AbstractInstance
|
||||
thisnpc.npc = addSpawn(BM[1], 148765, 180450, -6117, 0, false, 0, false, world.getInstanceId());
|
||||
if (noRndWalk)
|
||||
{
|
||||
thisnpc.npc.setIsNoRndWalk(true);
|
||||
thisnpc.npc.setRandomWalking(false);
|
||||
}
|
||||
ThirdRoom.npcList.add(thisnpc);
|
||||
thisnpc.npc = addSpawn(BM[2], 148865, 180190, -6117, 0, false, 0, false, world.getInstanceId());
|
||||
if (noRndWalk)
|
||||
{
|
||||
thisnpc.npc.setIsNoRndWalk(true);
|
||||
thisnpc.npc.setRandomWalking(false);
|
||||
}
|
||||
ThirdRoom.npcList.add(thisnpc);
|
||||
thisnpc.npc = addSpawn(BM[1], 148995, 180190, -6117, 0, false, 0, false, world.getInstanceId());
|
||||
if (noRndWalk)
|
||||
{
|
||||
thisnpc.npc.setIsNoRndWalk(true);
|
||||
thisnpc.npc.setRandomWalking(false);
|
||||
}
|
||||
ThirdRoom.npcList.add(thisnpc);
|
||||
thisnpc.npc = addSpawn(BM[0], 149090, 180450, -6117, 0, false, 0, false, world.getInstanceId());
|
||||
if (noRndWalk)
|
||||
{
|
||||
thisnpc.npc.setIsNoRndWalk(true);
|
||||
thisnpc.npc.setRandomWalking(false);
|
||||
}
|
||||
ThirdRoom.npcList.add(thisnpc);
|
||||
thisnpc.npc = addSpawn(BM[1], 148995, 180705, -6117, 0, false, 0, false, world.getInstanceId());
|
||||
if (noRndWalk)
|
||||
{
|
||||
thisnpc.npc.setIsNoRndWalk(true);
|
||||
thisnpc.npc.setRandomWalking(false);
|
||||
}
|
||||
ThirdRoom.npcList.add(thisnpc);
|
||||
thisnpc.npc = addSpawn(BM[2], 148865, 180705, -6117, 0, false, 0, false, world.getInstanceId());
|
||||
if (noRndWalk)
|
||||
{
|
||||
thisnpc.npc.setIsNoRndWalk(true);
|
||||
thisnpc.npc.setRandomWalking(false);
|
||||
}
|
||||
ThirdRoom.npcList.add(thisnpc);
|
||||
world.setParameter("ThirdRoom", ThirdRoom);
|
||||
@ -558,37 +558,37 @@ public final class DarkCloudMansion extends AbstractInstance
|
||||
thisnpc.npc = addSpawn(BM[1], 148765, 180450, -6117, 0, false, 0, false, world.getInstanceId());
|
||||
if (noRndWalk)
|
||||
{
|
||||
thisnpc.npc.setIsNoRndWalk(true);
|
||||
thisnpc.npc.setRandomWalking(false);
|
||||
}
|
||||
ThirdRoom.npcList.add(thisnpc);
|
||||
thisnpc.npc = addSpawn(BM[2], 148865, 180190, -6117, 0, false, 0, false, world.getInstanceId());
|
||||
if (noRndWalk)
|
||||
{
|
||||
thisnpc.npc.setIsNoRndWalk(true);
|
||||
thisnpc.npc.setRandomWalking(false);
|
||||
}
|
||||
ThirdRoom.npcList.add(thisnpc);
|
||||
thisnpc.npc = addSpawn(BM[1], 148995, 180190, -6117, 0, false, 0, false, world.getInstanceId());
|
||||
if (noRndWalk)
|
||||
{
|
||||
thisnpc.npc.setIsNoRndWalk(true);
|
||||
thisnpc.npc.setRandomWalking(false);
|
||||
}
|
||||
ThirdRoom.npcList.add(thisnpc);
|
||||
thisnpc.npc = addSpawn(BM[0], 149090, 180450, -6117, 0, false, 0, false, world.getInstanceId());
|
||||
if (noRndWalk)
|
||||
{
|
||||
thisnpc.npc.setIsNoRndWalk(true);
|
||||
thisnpc.npc.setRandomWalking(false);
|
||||
}
|
||||
ThirdRoom.npcList.add(thisnpc);
|
||||
thisnpc.npc = addSpawn(BM[1], 148995, 180705, -6117, 0, false, 0, false, world.getInstanceId());
|
||||
if (noRndWalk)
|
||||
{
|
||||
thisnpc.npc.setIsNoRndWalk(true);
|
||||
thisnpc.npc.setRandomWalking(false);
|
||||
}
|
||||
ThirdRoom.npcList.add(thisnpc);
|
||||
thisnpc.npc = addSpawn(BM[2], 148865, 180705, -6117, 0, false, 0, false, world.getInstanceId());
|
||||
if (noRndWalk)
|
||||
{
|
||||
thisnpc.npc.setIsNoRndWalk(true);
|
||||
thisnpc.npc.setRandomWalking(false);
|
||||
}
|
||||
ThirdRoom.npcList.add(thisnpc);
|
||||
world.setParameter("ThirdRoom2", ThirdRoom);
|
||||
@ -665,7 +665,7 @@ public final class DarkCloudMansion extends AbstractInstance
|
||||
{
|
||||
thisnpc = new DMCNpc();
|
||||
thisnpc.npc = addSpawn(BS[idx], x, 182145, -6117, 48810, false, 0, false, world.getInstanceId());
|
||||
thisnpc.npc.setIsNoRndWalk(true);
|
||||
thisnpc.npc.setRandomWalking(false);
|
||||
thisnpc.order = idx;
|
||||
thisnpc.status = temp[idx];
|
||||
thisnpc.count = 0;
|
||||
@ -717,7 +717,7 @@ public final class DarkCloudMansion extends AbstractInstance
|
||||
npc.golem = addSpawn(mobId, x, y, -6117, 0, false, 0, false, world.getInstanceId());
|
||||
if (noRndWalk)
|
||||
{
|
||||
npc.golem.setIsNoRndWalk(true);
|
||||
npc.golem.setRandomWalking(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -681,7 +681,7 @@ public final class FinalEmperialTomb extends AbstractInstance implements IGameXm
|
||||
npcList.add(npc);
|
||||
world.setParameter("npcList", npcList);
|
||||
}
|
||||
npc.setIsNoRndWalk(true);
|
||||
npc.setRandomWalking(false);
|
||||
if (npc.isInstanceTypes(InstanceType.L2Attackable))
|
||||
{
|
||||
((L2Attackable) npc).setSeeThroughSilentMove(true);
|
||||
|
@ -684,7 +684,7 @@ public final class Kamaloka extends AbstractInstance
|
||||
spawn.startRespawn();
|
||||
world.firstRoom.add(spawn); // store mobs spawns
|
||||
}
|
||||
npc.setIsNoRndWalk(true);
|
||||
npc.setRandomWalking(false);
|
||||
}
|
||||
}
|
||||
|
||||
@ -698,7 +698,7 @@ public final class Kamaloka extends AbstractInstance
|
||||
for (int[] spawn : spawns)
|
||||
{
|
||||
npc = addSpawn(npcs[0], spawn[0], spawn[1], spawn[2], 0, false, 0, false, world.getInstanceId());
|
||||
npc.setIsNoRndWalk(true);
|
||||
npc.setRandomWalking(false);
|
||||
world.secondRoom.add(npc.getObjectId());
|
||||
}
|
||||
}
|
||||
@ -707,7 +707,7 @@ public final class Kamaloka extends AbstractInstance
|
||||
if (MINIBOSS[index] != null)
|
||||
{
|
||||
npc = addSpawn(MINIBOSS[index][0], MINIBOSS[index][1], MINIBOSS[index][2], MINIBOSS[index][3], 0, false, 0, false, world.getInstanceId());
|
||||
npc.setIsNoRndWalk(true);
|
||||
npc.setRandomWalking(false);
|
||||
world.miniBoss = npc.getObjectId();
|
||||
}
|
||||
|
||||
|
@ -171,7 +171,7 @@ public final class Q00501_ProofOfClanAlliance extends Quest
|
||||
{
|
||||
final L2Npc box = addSpawn(npc, getRandom(BOX_OF_ATHREA_1, BOX_OF_ATHREA_5), loc, false, 300000);
|
||||
box.disableCoreAI(true);
|
||||
box.setIsNoRndWalk(true);
|
||||
box.setRandomWalking(false);
|
||||
}
|
||||
htmltext = event;
|
||||
}
|
||||
|
@ -279,6 +279,8 @@
|
||||
<xs:attribute name="targetable" type="xs:boolean" />
|
||||
<xs:attribute name="undying" type="xs:boolean" />
|
||||
<xs:attribute name="showName" type="xs:boolean" />
|
||||
<xs:attribute name="randomWalk" type="xs:boolean" />
|
||||
<xs:attribute name="randomAnimation" type="xs:boolean" />
|
||||
<xs:attribute name="flying" type="xs:boolean" />
|
||||
<xs:attribute name="canMove" type="xs:boolean" />
|
||||
<xs:attribute name="noSleepMode" type="xs:boolean" />
|
||||
|
@ -706,7 +706,7 @@ public class L2AttackableAI extends L2CharacterAI
|
||||
}
|
||||
}
|
||||
// Order to the L2MonsterInstance to random walk (1/100)
|
||||
else if ((npc.getSpawn() != null) && (Rnd.nextInt(RANDOM_WALK_RATE) == 0) && !npc.isNoRndWalk())
|
||||
else if ((npc.getSpawn() != null) && (Rnd.nextInt(RANDOM_WALK_RATE) == 0) && npc.isRandomWalkingEnabled())
|
||||
{
|
||||
int x1 = 0;
|
||||
int y1 = 0;
|
||||
|
@ -328,6 +328,8 @@ public class NpcData implements IGameXmlReader
|
||||
set.set("talkable", parseBoolean(attrs, "talkable"));
|
||||
set.set("undying", parseBoolean(attrs, "undying"));
|
||||
set.set("showName", parseBoolean(attrs, "showName"));
|
||||
set.set("randomWalk", parseBoolean(attrs, "randomWalk"));
|
||||
set.set("randomAnimation", parseBoolean(attrs, "randomAnimation"));
|
||||
set.set("flying", parseBoolean(attrs, "flying"));
|
||||
set.set("canMove", parseBoolean(attrs, "canMove"));
|
||||
set.set("noSleepMode", parseBoolean(attrs, "noSleepMode"));
|
||||
|
@ -105,8 +105,8 @@ public class NpcPersonalAIData
|
||||
}
|
||||
case "disableRandomWalk":
|
||||
{
|
||||
npc.setIsNoRndWalk((map.get(key) == 1));
|
||||
spawn.setIsNoRndWalk((map.get(key) == 1));
|
||||
npc.setRandomWalking((map.get(key) == 0));
|
||||
spawn.setRandomWalking((map.get(key) == 0));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -78,7 +78,7 @@ public class L2Spawn implements IPositionable, IIdentifiable, INamable
|
||||
private boolean _doRespawn = true;
|
||||
private static List<SpawnListener> _spawnListeners = new CopyOnWriteArrayList<>();
|
||||
private final Deque<L2Npc> _spawnedNpcs = new ConcurrentLinkedDeque<>();
|
||||
private boolean _isNoRndWalk = false; // Is no random walk
|
||||
private boolean _randomWalk = false; // Is random walk
|
||||
private int _spawnTemplateId = 0;
|
||||
|
||||
/** The task launching the function doSpawn() */
|
||||
@ -479,12 +479,6 @@ public class L2Spawn implements IPositionable, IIdentifiable, INamable
|
||||
npc.setShowSummonAnimation(isSummonSpawn);
|
||||
}
|
||||
|
||||
// Check for certain AI data, overriden in spawnlist
|
||||
if (_name != null)
|
||||
{
|
||||
NpcPersonalAIData.getInstance().initializeNpcParameters(npc, this, _name);
|
||||
}
|
||||
|
||||
return initializeNpcInstance(npc);
|
||||
}
|
||||
catch (Exception e)
|
||||
@ -553,7 +547,7 @@ public class L2Spawn implements IPositionable, IIdentifiable, INamable
|
||||
npc.getVariables().getSet().clear();
|
||||
}
|
||||
// Set is not random walk default value
|
||||
npc.setIsNoRndWalk(isNoRndWalk());
|
||||
npc.setRandomWalking(getRandomWalking());
|
||||
|
||||
// Set the heading of the L2NpcInstance (random heading if not defined)
|
||||
if (getHeading() == -1)
|
||||
@ -594,6 +588,12 @@ public class L2Spawn implements IPositionable, IIdentifiable, INamable
|
||||
|
||||
notifyNpcSpawned(npc);
|
||||
|
||||
// Check for overriden by spawnlist AIData
|
||||
if (_name != null)
|
||||
{
|
||||
NpcPersonalAIData.getInstance().initializeNpcParameters(npc, this, _name);
|
||||
}
|
||||
|
||||
_spawnedNpcs.add(npc);
|
||||
|
||||
// Increase the current number of L2NpcInstance managed by this L2Spawn
|
||||
@ -710,14 +710,14 @@ public class L2Spawn implements IPositionable, IIdentifiable, INamable
|
||||
_location.setInstanceId(instanceId);
|
||||
}
|
||||
|
||||
public final boolean isNoRndWalk()
|
||||
public final boolean getRandomWalking()
|
||||
{
|
||||
return _isNoRndWalk;
|
||||
return _randomWalk;
|
||||
}
|
||||
|
||||
public final void setIsNoRndWalk(boolean value)
|
||||
public final void setRandomWalking(boolean value)
|
||||
{
|
||||
_isNoRndWalk = value;
|
||||
_randomWalk = value;
|
||||
}
|
||||
|
||||
public void setSpawnTemplateId(int npcSpawnTemplateId)
|
||||
|
@ -192,7 +192,6 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
||||
private boolean _isParalyzed = false;
|
||||
private boolean _isPendingRevive = false;
|
||||
private boolean _isRunning = false;
|
||||
private boolean _isNoRndWalk = false; // Is no random walk
|
||||
protected boolean _showSummonAnimation = false;
|
||||
protected boolean _isTeleporting = false;
|
||||
private boolean _isInvul = false;
|
||||
@ -2634,16 +2633,6 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
||||
_lastSkillCast = skill;
|
||||
}
|
||||
|
||||
public final boolean isNoRndWalk()
|
||||
{
|
||||
return _isNoRndWalk;
|
||||
}
|
||||
|
||||
public final void setIsNoRndWalk(boolean value)
|
||||
{
|
||||
_isNoRndWalk = value;
|
||||
}
|
||||
|
||||
public final boolean isAfraid()
|
||||
{
|
||||
return isAffected(EffectFlag.FEAR);
|
||||
|
@ -134,6 +134,7 @@ public class L2Npc extends L2Character
|
||||
private static final int MINIMUM_SOCIAL_INTERVAL = 6000;
|
||||
/** Support for random animation switching */
|
||||
private boolean _isRandomAnimationEnabled = true;
|
||||
private boolean _isRandomWalkingEnabled = true;
|
||||
private boolean _isTalkable = getTemplate().isTalkable();
|
||||
private final boolean _isFakePlayer = getTemplate().isFakePlayer();
|
||||
|
||||
@ -311,6 +312,16 @@ public class L2Npc extends L2Character
|
||||
return !isFakePlayer() && _isRandomAnimationEnabled;
|
||||
}
|
||||
|
||||
public void setRandomWalking(boolean enabled)
|
||||
{
|
||||
_isRandomWalkingEnabled = enabled;
|
||||
}
|
||||
|
||||
public boolean isRandomWalkingEnabled()
|
||||
{
|
||||
return _isRandomWalkingEnabled;
|
||||
}
|
||||
|
||||
@Override
|
||||
public NpcStat getStat()
|
||||
{
|
||||
@ -1303,6 +1314,8 @@ public class L2Npc extends L2Character
|
||||
_soulshotamount = getTemplate().getSoulShot();
|
||||
_spiritshotamount = getTemplate().getSpiritShot();
|
||||
_killingBlowWeaponId = 0;
|
||||
_isRandomAnimationEnabled = getTemplate().isRandomAnimationEnabled();
|
||||
_isRandomWalkingEnabled = getTemplate().isRandomWalkEnabled();
|
||||
|
||||
if (isTeleporting())
|
||||
{
|
||||
|
@ -37,7 +37,7 @@ public final class L2ChestInstance extends L2MonsterInstance
|
||||
{
|
||||
super(template);
|
||||
setInstanceType(InstanceType.L2ChestInstance);
|
||||
setIsNoRndWalk(true);
|
||||
setRandomWalking(false);
|
||||
_specialDrop = false;
|
||||
}
|
||||
|
||||
|
@ -56,7 +56,7 @@ public final class L2GrandBossInstance extends L2MonsterInstance
|
||||
@Override
|
||||
public void onSpawn()
|
||||
{
|
||||
setIsNoRndWalk(true);
|
||||
setRandomWalking(false);
|
||||
super.onSpawn();
|
||||
}
|
||||
|
||||
|
@ -73,7 +73,7 @@ public class L2GuardInstance extends L2Attackable
|
||||
@Override
|
||||
public void onSpawn()
|
||||
{
|
||||
setIsNoRndWalk(true);
|
||||
setRandomWalking(false);
|
||||
super.onSpawn();
|
||||
|
||||
getAI().setIntention(CtrlIntention.AI_INTENTION_ACTIVE);
|
||||
|
@ -104,7 +104,7 @@ public class L2MonsterInstance extends L2Attackable
|
||||
{
|
||||
if (getLeader() != null)
|
||||
{
|
||||
setIsNoRndWalk(true);
|
||||
setRandomWalking(false);
|
||||
setIsRaidMinion(getLeader().isRaid());
|
||||
getLeader().getMinionList().onMinionSpawn(this);
|
||||
}
|
||||
|
@ -55,7 +55,7 @@ public class L2RaidBossInstance extends L2MonsterInstance
|
||||
@Override
|
||||
public void onSpawn()
|
||||
{
|
||||
setIsNoRndWalk(true);
|
||||
setRandomWalking(false);
|
||||
super.onSpawn();
|
||||
}
|
||||
|
||||
|
@ -73,6 +73,8 @@ public final class L2NpcTemplate extends L2CharTemplate implements IIdentifiable
|
||||
private boolean _talkable;
|
||||
private boolean _undying;
|
||||
private boolean _showName;
|
||||
private boolean _randomWalk;
|
||||
private boolean _randomAnimation;
|
||||
private boolean _flying;
|
||||
private boolean _fakePlayer;
|
||||
private boolean _fakePlayerTalkable;
|
||||
@ -144,6 +146,8 @@ public final class L2NpcTemplate extends L2CharTemplate implements IIdentifiable
|
||||
_talkable = set.getBoolean("talkable", true);
|
||||
_undying = set.getBoolean("undying", true);
|
||||
_showName = set.getBoolean("showName", true);
|
||||
_randomWalk = set.getBoolean("randomWalk", !_type.equals("L2Guard"));
|
||||
_randomAnimation = set.getBoolean("randomAnimation", true);
|
||||
_flying = set.getBoolean("flying", false);
|
||||
_fakePlayer = set.getBoolean("fakePlayer", false);
|
||||
_fakePlayerTalkable = set.getBoolean("fakePlayerTalkable", true);
|
||||
@ -367,6 +371,16 @@ public final class L2NpcTemplate extends L2CharTemplate implements IIdentifiable
|
||||
return _showName;
|
||||
}
|
||||
|
||||
public boolean isRandomWalkEnabled()
|
||||
{
|
||||
return _randomWalk;
|
||||
}
|
||||
|
||||
public boolean isRandomAnimationEnabled()
|
||||
{
|
||||
return _randomAnimation;
|
||||
}
|
||||
|
||||
public boolean isFlying()
|
||||
{
|
||||
return _flying;
|
||||
|
@ -436,7 +436,7 @@ public final class Instance
|
||||
spawnDat.setHeading(set.getInt("heading"));
|
||||
spawnDat.setRespawnDelay(set.getInt("respawn"), set.getInt("respawnRandom"));
|
||||
spawnDat.setInstanceId(getId());
|
||||
spawnDat.setIsNoRndWalk(set.getBoolean("allowRandomWalk"));
|
||||
spawnDat.setRandomWalking(set.getBoolean("allowRandomWalk"));
|
||||
final L2Npc spawned = spawnDat.doSpawn();
|
||||
if ((set.getInt("delay") >= 0) && (spawned instanceof L2Attackable))
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user