Freya AI improvements.

This commit is contained in:
MobiusDev
2018-09-03 15:26:13 +00:00
parent 65b8374a32
commit 288c1cf4ad
5 changed files with 65 additions and 45 deletions

View File

@@ -277,6 +277,7 @@ public final class IceQueensCastleBattle extends AbstractInstance
{ {
final L2GrandBossInstance frey = (L2GrandBossInstance) addSpawn(FREYA_SPELLING, FREYA_SPELLING_SPAWN, false, 0, true, world.getId()); final L2GrandBossInstance frey = (L2GrandBossInstance) addSpawn(FREYA_SPELLING, FREYA_SPELLING_SPAWN, false, 0, true, world.getId());
frey.setIsInvul(true); frey.setIsInvul(true);
frey.setRandomWalking(false);
frey.disableCoreAI(true); frey.disableCoreAI(true);
manageTimer(world, 60, NpcStringId.TIME_REMAINING_UNTIL_NEXT_BATTLE); manageTimer(world, 60, NpcStringId.TIME_REMAINING_UNTIL_NEXT_BATTLE);
world.setStatus(2); world.setStatus(2);
@@ -338,6 +339,7 @@ public final class IceQueensCastleBattle extends AbstractInstance
} }
case "STAGE_3_MOVIE": case "STAGE_3_MOVIE":
{ {
freya.deleteMe();
manageMovie(world, Movie.SC_BOSS_FREYA_PHASECH_B); manageMovie(world, Movie.SC_BOSS_FREYA_PHASECH_B);
startQuestTimer("STAGE_3_START", 21500, controller, null); startQuestTimer("STAGE_3_START", 21500, controller, null);
break; break;
@@ -353,7 +355,6 @@ public final class IceQueensCastleBattle extends AbstractInstance
players.sendPacket(new OnEventTrigger(emmiterId, true)); players.sendPacket(new OnEventTrigger(emmiterId, true));
} }
} }
freya.deleteMe();
final L2GrandBossInstance frey = (L2GrandBossInstance) addSpawn((isHardMode ? FREYA_STAND_HARD : FREYA_STAND_EASY), FREYA_SPAWN, false, 0, true, world.getId()); final L2GrandBossInstance frey = (L2GrandBossInstance) addSpawn((isHardMode ? FREYA_STAND_HARD : FREYA_STAND_EASY), FREYA_SPAWN, false, 0, true, world.getId());
world.setStatus(4); world.setStatus(4);
world.setParameter("canSpawnMobs", true); world.setParameter("canSpawnMobs", true);
@@ -460,13 +461,6 @@ public final class IceQueensCastleBattle extends AbstractInstance
} }
break; break;
} }
case "FINISH_STAGE":
{
freya.teleToLocation(FREYA_CORPSE);
world.getNpc(SUPP_JINIA).deleteMe();
world.getNpc(SUPP_KEGOR).teleToLocation(KEGOR_FINISH);
break;
}
case "START_SPAWN": case "START_SPAWN":
{ {
for (L2Npc statues : getKnightStatues(world)) for (L2Npc statues : getKnightStatues(world))
@@ -1101,6 +1095,17 @@ public final class IceQueensCastleBattle extends AbstractInstance
case FREYA_STAND_HARD: case FREYA_STAND_HARD:
{ {
world.setParameter("isSupportActive", false); world.setParameter("isSupportActive", false);
npc.teleToLocation(FREYA_CORPSE);
final L2Npc jinia = world.getNpc(SUPP_JINIA);
final L2Npc kegor = world.getNpc(SUPP_KEGOR);
if (jinia != null)
{
world.getNpc(SUPP_JINIA).deleteMe();
}
if (kegor != null)
{
world.getNpc(SUPP_KEGOR).teleToLocation(KEGOR_FINISH);
}
manageMovie(world, Movie.SC_BOSS_FREYA_ENDING_A); manageMovie(world, Movie.SC_BOSS_FREYA_ENDING_A);
manageDespawnMinions(world); manageDespawnMinions(world);
world.finishInstance(); world.finishInstance();
@@ -1108,7 +1113,6 @@ public final class IceQueensCastleBattle extends AbstractInstance
cancelQuestTimer("GIVE_SUPPORT", controller, null); cancelQuestTimer("GIVE_SUPPORT", controller, null);
cancelQuestTimer("CAST_BLIZZARD", controller, null); cancelQuestTimer("CAST_BLIZZARD", controller, null);
cancelQuestTimer("FREYA_BUFF", controller, null); cancelQuestTimer("FREYA_BUFF", controller, null);
startQuestTimer("FINISH_STAGE", 16000, controller, null);
startQuestTimer("FINISH_WORLD", 300000, controller, null); startQuestTimer("FINISH_WORLD", 300000, controller, null);
break; break;
} }

View File

@@ -277,6 +277,7 @@ public final class IceQueensCastleBattle extends AbstractInstance
{ {
final L2GrandBossInstance frey = (L2GrandBossInstance) addSpawn(FREYA_SPELLING, FREYA_SPELLING_SPAWN, false, 0, true, world.getId()); final L2GrandBossInstance frey = (L2GrandBossInstance) addSpawn(FREYA_SPELLING, FREYA_SPELLING_SPAWN, false, 0, true, world.getId());
frey.setIsInvul(true); frey.setIsInvul(true);
frey.setRandomWalking(false);
frey.disableCoreAI(true); frey.disableCoreAI(true);
manageTimer(world, 60, NpcStringId.TIME_REMAINING_UNTIL_NEXT_BATTLE); manageTimer(world, 60, NpcStringId.TIME_REMAINING_UNTIL_NEXT_BATTLE);
world.setStatus(2); world.setStatus(2);
@@ -338,6 +339,7 @@ public final class IceQueensCastleBattle extends AbstractInstance
} }
case "STAGE_3_MOVIE": case "STAGE_3_MOVIE":
{ {
freya.deleteMe();
manageMovie(world, Movie.SC_BOSS_FREYA_PHASECH_B); manageMovie(world, Movie.SC_BOSS_FREYA_PHASECH_B);
startQuestTimer("STAGE_3_START", 21500, controller, null); startQuestTimer("STAGE_3_START", 21500, controller, null);
break; break;
@@ -353,7 +355,6 @@ public final class IceQueensCastleBattle extends AbstractInstance
players.sendPacket(new OnEventTrigger(emmiterId, true)); players.sendPacket(new OnEventTrigger(emmiterId, true));
} }
} }
freya.deleteMe();
final L2GrandBossInstance frey = (L2GrandBossInstance) addSpawn((isHardMode ? FREYA_STAND_HARD : FREYA_STAND_EASY), FREYA_SPAWN, false, 0, true, world.getId()); final L2GrandBossInstance frey = (L2GrandBossInstance) addSpawn((isHardMode ? FREYA_STAND_HARD : FREYA_STAND_EASY), FREYA_SPAWN, false, 0, true, world.getId());
world.setStatus(4); world.setStatus(4);
world.setParameter("canSpawnMobs", true); world.setParameter("canSpawnMobs", true);
@@ -460,13 +461,6 @@ public final class IceQueensCastleBattle extends AbstractInstance
} }
break; break;
} }
case "FINISH_STAGE":
{
freya.teleToLocation(FREYA_CORPSE);
world.getNpc(SUPP_JINIA).deleteMe();
world.getNpc(SUPP_KEGOR).teleToLocation(KEGOR_FINISH);
break;
}
case "START_SPAWN": case "START_SPAWN":
{ {
for (L2Npc statues : getKnightStatues(world)) for (L2Npc statues : getKnightStatues(world))
@@ -1101,6 +1095,17 @@ public final class IceQueensCastleBattle extends AbstractInstance
case FREYA_STAND_HARD: case FREYA_STAND_HARD:
{ {
world.setParameter("isSupportActive", false); world.setParameter("isSupportActive", false);
npc.teleToLocation(FREYA_CORPSE);
final L2Npc jinia = world.getNpc(SUPP_JINIA);
final L2Npc kegor = world.getNpc(SUPP_KEGOR);
if (jinia != null)
{
world.getNpc(SUPP_JINIA).deleteMe();
}
if (kegor != null)
{
world.getNpc(SUPP_KEGOR).teleToLocation(KEGOR_FINISH);
}
manageMovie(world, Movie.SC_BOSS_FREYA_ENDING_A); manageMovie(world, Movie.SC_BOSS_FREYA_ENDING_A);
manageDespawnMinions(world); manageDespawnMinions(world);
world.finishInstance(); world.finishInstance();
@@ -1108,7 +1113,6 @@ public final class IceQueensCastleBattle extends AbstractInstance
cancelQuestTimer("GIVE_SUPPORT", controller, null); cancelQuestTimer("GIVE_SUPPORT", controller, null);
cancelQuestTimer("CAST_BLIZZARD", controller, null); cancelQuestTimer("CAST_BLIZZARD", controller, null);
cancelQuestTimer("FREYA_BUFF", controller, null); cancelQuestTimer("FREYA_BUFF", controller, null);
startQuestTimer("FINISH_STAGE", 16000, controller, null);
startQuestTimer("FINISH_WORLD", 300000, controller, null); startQuestTimer("FINISH_WORLD", 300000, controller, null);
break; break;
} }

View File

@@ -277,6 +277,7 @@ public final class IceQueensCastleBattle extends AbstractInstance
{ {
final L2GrandBossInstance frey = (L2GrandBossInstance) addSpawn(FREYA_SPELLING, FREYA_SPELLING_SPAWN, false, 0, true, world.getId()); final L2GrandBossInstance frey = (L2GrandBossInstance) addSpawn(FREYA_SPELLING, FREYA_SPELLING_SPAWN, false, 0, true, world.getId());
frey.setIsInvul(true); frey.setIsInvul(true);
frey.setRandomWalking(false);
frey.disableCoreAI(true); frey.disableCoreAI(true);
manageTimer(world, 60, NpcStringId.TIME_REMAINING_UNTIL_NEXT_BATTLE); manageTimer(world, 60, NpcStringId.TIME_REMAINING_UNTIL_NEXT_BATTLE);
world.setStatus(2); world.setStatus(2);
@@ -338,6 +339,7 @@ public final class IceQueensCastleBattle extends AbstractInstance
} }
case "STAGE_3_MOVIE": case "STAGE_3_MOVIE":
{ {
freya.deleteMe();
manageMovie(world, Movie.SC_BOSS_FREYA_PHASECH_B); manageMovie(world, Movie.SC_BOSS_FREYA_PHASECH_B);
startQuestTimer("STAGE_3_START", 21500, controller, null); startQuestTimer("STAGE_3_START", 21500, controller, null);
break; break;
@@ -353,7 +355,6 @@ public final class IceQueensCastleBattle extends AbstractInstance
players.sendPacket(new OnEventTrigger(emmiterId, true)); players.sendPacket(new OnEventTrigger(emmiterId, true));
} }
} }
freya.deleteMe();
final L2GrandBossInstance frey = (L2GrandBossInstance) addSpawn((isHardMode ? FREYA_STAND_HARD : FREYA_STAND_EASY), FREYA_SPAWN, false, 0, true, world.getId()); final L2GrandBossInstance frey = (L2GrandBossInstance) addSpawn((isHardMode ? FREYA_STAND_HARD : FREYA_STAND_EASY), FREYA_SPAWN, false, 0, true, world.getId());
world.setStatus(4); world.setStatus(4);
world.setParameter("canSpawnMobs", true); world.setParameter("canSpawnMobs", true);
@@ -460,13 +461,6 @@ public final class IceQueensCastleBattle extends AbstractInstance
} }
break; break;
} }
case "FINISH_STAGE":
{
freya.teleToLocation(FREYA_CORPSE);
world.getNpc(SUPP_JINIA).deleteMe();
world.getNpc(SUPP_KEGOR).teleToLocation(KEGOR_FINISH);
break;
}
case "START_SPAWN": case "START_SPAWN":
{ {
for (L2Npc statues : getKnightStatues(world)) for (L2Npc statues : getKnightStatues(world))
@@ -1101,6 +1095,17 @@ public final class IceQueensCastleBattle extends AbstractInstance
case FREYA_STAND_HARD: case FREYA_STAND_HARD:
{ {
world.setParameter("isSupportActive", false); world.setParameter("isSupportActive", false);
npc.teleToLocation(FREYA_CORPSE);
final L2Npc jinia = world.getNpc(SUPP_JINIA);
final L2Npc kegor = world.getNpc(SUPP_KEGOR);
if (jinia != null)
{
world.getNpc(SUPP_JINIA).deleteMe();
}
if (kegor != null)
{
world.getNpc(SUPP_KEGOR).teleToLocation(KEGOR_FINISH);
}
manageMovie(world, Movie.SC_BOSS_FREYA_ENDING_A); manageMovie(world, Movie.SC_BOSS_FREYA_ENDING_A);
manageDespawnMinions(world); manageDespawnMinions(world);
world.finishInstance(); world.finishInstance();
@@ -1108,7 +1113,6 @@ public final class IceQueensCastleBattle extends AbstractInstance
cancelQuestTimer("GIVE_SUPPORT", controller, null); cancelQuestTimer("GIVE_SUPPORT", controller, null);
cancelQuestTimer("CAST_BLIZZARD", controller, null); cancelQuestTimer("CAST_BLIZZARD", controller, null);
cancelQuestTimer("FREYA_BUFF", controller, null); cancelQuestTimer("FREYA_BUFF", controller, null);
startQuestTimer("FINISH_STAGE", 16000, controller, null);
startQuestTimer("FINISH_WORLD", 300000, controller, null); startQuestTimer("FINISH_WORLD", 300000, controller, null);
break; break;
} }

View File

@@ -277,6 +277,7 @@ public final class IceQueensCastleBattle extends AbstractInstance
{ {
final L2GrandBossInstance frey = (L2GrandBossInstance) addSpawn(FREYA_SPELLING, FREYA_SPELLING_SPAWN, false, 0, true, world.getId()); final L2GrandBossInstance frey = (L2GrandBossInstance) addSpawn(FREYA_SPELLING, FREYA_SPELLING_SPAWN, false, 0, true, world.getId());
frey.setIsInvul(true); frey.setIsInvul(true);
frey.setRandomWalking(false);
frey.disableCoreAI(true); frey.disableCoreAI(true);
manageTimer(world, 60, NpcStringId.TIME_REMAINING_UNTIL_NEXT_BATTLE); manageTimer(world, 60, NpcStringId.TIME_REMAINING_UNTIL_NEXT_BATTLE);
world.setStatus(2); world.setStatus(2);
@@ -338,6 +339,7 @@ public final class IceQueensCastleBattle extends AbstractInstance
} }
case "STAGE_3_MOVIE": case "STAGE_3_MOVIE":
{ {
freya.deleteMe();
manageMovie(world, Movie.SC_BOSS_FREYA_PHASECH_B); manageMovie(world, Movie.SC_BOSS_FREYA_PHASECH_B);
startQuestTimer("STAGE_3_START", 21500, controller, null); startQuestTimer("STAGE_3_START", 21500, controller, null);
break; break;
@@ -353,7 +355,6 @@ public final class IceQueensCastleBattle extends AbstractInstance
players.sendPacket(new OnEventTrigger(emmiterId, true)); players.sendPacket(new OnEventTrigger(emmiterId, true));
} }
} }
freya.deleteMe();
final L2GrandBossInstance frey = (L2GrandBossInstance) addSpawn((isHardMode ? FREYA_STAND_HARD : FREYA_STAND_EASY), FREYA_SPAWN, false, 0, true, world.getId()); final L2GrandBossInstance frey = (L2GrandBossInstance) addSpawn((isHardMode ? FREYA_STAND_HARD : FREYA_STAND_EASY), FREYA_SPAWN, false, 0, true, world.getId());
world.setStatus(4); world.setStatus(4);
world.setParameter("canSpawnMobs", true); world.setParameter("canSpawnMobs", true);
@@ -460,13 +461,6 @@ public final class IceQueensCastleBattle extends AbstractInstance
} }
break; break;
} }
case "FINISH_STAGE":
{
freya.teleToLocation(FREYA_CORPSE);
world.getNpc(SUPP_JINIA).deleteMe();
world.getNpc(SUPP_KEGOR).teleToLocation(KEGOR_FINISH);
break;
}
case "START_SPAWN": case "START_SPAWN":
{ {
for (L2Npc statues : getKnightStatues(world)) for (L2Npc statues : getKnightStatues(world))
@@ -1101,6 +1095,17 @@ public final class IceQueensCastleBattle extends AbstractInstance
case FREYA_STAND_HARD: case FREYA_STAND_HARD:
{ {
world.setParameter("isSupportActive", false); world.setParameter("isSupportActive", false);
npc.teleToLocation(FREYA_CORPSE);
final L2Npc jinia = world.getNpc(SUPP_JINIA);
final L2Npc kegor = world.getNpc(SUPP_KEGOR);
if (jinia != null)
{
world.getNpc(SUPP_JINIA).deleteMe();
}
if (kegor != null)
{
world.getNpc(SUPP_KEGOR).teleToLocation(KEGOR_FINISH);
}
manageMovie(world, Movie.SC_BOSS_FREYA_ENDING_A); manageMovie(world, Movie.SC_BOSS_FREYA_ENDING_A);
manageDespawnMinions(world); manageDespawnMinions(world);
world.finishInstance(); world.finishInstance();
@@ -1108,7 +1113,6 @@ public final class IceQueensCastleBattle extends AbstractInstance
cancelQuestTimer("GIVE_SUPPORT", controller, null); cancelQuestTimer("GIVE_SUPPORT", controller, null);
cancelQuestTimer("CAST_BLIZZARD", controller, null); cancelQuestTimer("CAST_BLIZZARD", controller, null);
cancelQuestTimer("FREYA_BUFF", controller, null); cancelQuestTimer("FREYA_BUFF", controller, null);
startQuestTimer("FINISH_STAGE", 16000, controller, null);
startQuestTimer("FINISH_WORLD", 300000, controller, null); startQuestTimer("FINISH_WORLD", 300000, controller, null);
break; break;
} }

View File

@@ -294,6 +294,7 @@ public final class IceQueensCastleBattle extends AbstractInstance
{ {
final L2GrandBossInstance frey = (L2GrandBossInstance) addSpawn(FREYA_SPELLING, FREYA_SPELLING_SPAWN, false, 0, true, world.getInstanceId()); final L2GrandBossInstance frey = (L2GrandBossInstance) addSpawn(FREYA_SPELLING, FREYA_SPELLING_SPAWN, false, 0, true, world.getInstanceId());
frey.setIsInvul(true); frey.setIsInvul(true);
frey.setRandomWalking(false);
frey.disableCoreAI(true); frey.disableCoreAI(true);
manageTimer(world, 60, NpcStringId.TIME_REMAINING_UNTIL_NEXT_BATTLE); manageTimer(world, 60, NpcStringId.TIME_REMAINING_UNTIL_NEXT_BATTLE);
world.setStatus(2); world.setStatus(2);
@@ -355,6 +356,7 @@ public final class IceQueensCastleBattle extends AbstractInstance
} }
case "STAGE_3_MOVIE": case "STAGE_3_MOVIE":
{ {
freya.deleteMe();
manageMovie(world, Movie.SC_BOSS_FREYA_PHASECH_B); manageMovie(world, Movie.SC_BOSS_FREYA_PHASECH_B);
startQuestTimer("STAGE_3_START", 21500, controller, null); startQuestTimer("STAGE_3_START", 21500, controller, null);
break; break;
@@ -374,7 +376,6 @@ public final class IceQueensCastleBattle extends AbstractInstance
} }
} }
} }
freya.deleteMe();
final L2Npc frey = addSpawn((isHardMode ? FREYA_STAND_HARD : FREYA_STAND_EASY), FREYA_SPAWN, false, 0, true, world.getInstanceId()); final L2Npc frey = addSpawn((isHardMode ? FREYA_STAND_HARD : FREYA_STAND_EASY), FREYA_SPAWN, false, 0, true, world.getInstanceId());
world.setStatus(4); world.setStatus(4);
world.setParameter("canSpawnMobs", true); world.setParameter("canSpawnMobs", true);
@@ -479,13 +480,6 @@ public final class IceQueensCastleBattle extends AbstractInstance
} }
break; break;
} }
case "FINISH_STAGE":
{
freya.teleToLocation(FREYA_CORPSE);
world.getNpc(SUPP_JINIA).deleteMe();
world.getNpc(SUPP_KEGOR).teleToLocation(KEGOR_FINISH);
break;
}
case "START_SPAWN": case "START_SPAWN":
{ {
for (L2Npc statues : getKnightStatues(world)) for (L2Npc statues : getKnightStatues(world))
@@ -1142,6 +1136,17 @@ public final class IceQueensCastleBattle extends AbstractInstance
case FREYA_STAND_HARD: case FREYA_STAND_HARD:
{ {
world.setParameter("isSupportActive", false); world.setParameter("isSupportActive", false);
npc.teleToLocation(FREYA_CORPSE);
final L2Npc jinia = world.getNpc(SUPP_JINIA);
final L2Npc kegor = world.getNpc(SUPP_KEGOR);
if (jinia != null)
{
world.getNpc(SUPP_JINIA).deleteMe();
}
if (kegor != null)
{
world.getNpc(SUPP_KEGOR).teleToLocation(KEGOR_FINISH);
}
manageMovie(world, Movie.SC_BOSS_FREYA_ENDING_A); manageMovie(world, Movie.SC_BOSS_FREYA_ENDING_A);
manageDespawnMinions(world); manageDespawnMinions(world);
finishInstance(world); finishInstance(world);
@@ -1149,7 +1154,6 @@ public final class IceQueensCastleBattle extends AbstractInstance
cancelQuestTimer("GIVE_SUPPORT", controller, null); cancelQuestTimer("GIVE_SUPPORT", controller, null);
cancelQuestTimer("CAST_BLIZZARD", controller, null); cancelQuestTimer("CAST_BLIZZARD", controller, null);
cancelQuestTimer("FREYA_BUFF", controller, null); cancelQuestTimer("FREYA_BUFF", controller, null);
startQuestTimer("FINISH_STAGE", 16000, controller, null);
startQuestTimer("FINISH_WORLD", 300000, controller, null); startQuestTimer("FINISH_WORLD", 300000, controller, null);
break; break;
} }