Finished Procella instance.
Contributed by robikbobik.
This commit is contained in:
@@ -16,7 +16,6 @@
|
|||||||
*/
|
*/
|
||||||
package instances.ResidenceOfKingProcella;
|
package instances.ResidenceOfKingProcella;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.enums.ChatType;
|
|
||||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.MonsterInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.MonsterInstance;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
@@ -43,7 +42,8 @@ public class ResidenceOfKingProcella extends AbstractInstance
|
|||||||
private static final int PROCELLA_STORM = 29115;
|
private static final int PROCELLA_STORM = 29115;
|
||||||
// Skills
|
// Skills
|
||||||
private static final SkillHolder HURRICANE_SUMMON = new SkillHolder(50042, 1); // When spawn Minion
|
private static final SkillHolder HURRICANE_SUMMON = new SkillHolder(50042, 1); // When spawn Minion
|
||||||
private static final SkillHolder HURRICANE_BOLT = new SkillHolder(50043, 1); // When player in Radius + para
|
private static final int HURRICANE_BOLT = 50043;
|
||||||
|
private static final SkillHolder HURRICANE_BOLT_LV_1 = new SkillHolder(50043, 1); // When player in Radius + para
|
||||||
// Misc
|
// Misc
|
||||||
private static final int TEMPLATE_ID = 197;
|
private static final int TEMPLATE_ID = 197;
|
||||||
private static int STORM_MAX_COUNT = 16; // TODO: Max is limit ?
|
private static int STORM_MAX_COUNT = 16; // TODO: Max is limit ?
|
||||||
@@ -70,7 +70,7 @@ public class ResidenceOfKingProcella extends AbstractInstance
|
|||||||
{
|
{
|
||||||
enterInstance(player, npc, TEMPLATE_ID);
|
enterInstance(player, npc, TEMPLATE_ID);
|
||||||
_procella = (RaidBossInstance) addSpawn(PROCELLA, 212862, 179828, -15489, 49151, false, 0, true, player.getInstanceId());
|
_procella = (RaidBossInstance) addSpawn(PROCELLA, 212862, 179828, -15489, 49151, false, 0, true, player.getInstanceId());
|
||||||
startQuestTimer("SPAWN_MINION", 20000, _procella, player);
|
startQuestTimer("SPAWN_MINION", 300000 + getRandom(-15000, 15000), _procella, player);
|
||||||
startQuestTimer("SPAWN_STORM", 5000, _procella, player);
|
startQuestTimer("SPAWN_STORM", 5000, _procella, player);
|
||||||
_procellaStormCount = 0;
|
_procellaStormCount = 0;
|
||||||
break;
|
break;
|
||||||
@@ -82,7 +82,7 @@ public class ResidenceOfKingProcella extends AbstractInstance
|
|||||||
_minion1 = (MonsterInstance) addSpawn(PROCELLA_GUARDIAN_1, 212663, 179421, -15486, 31011, true, 0, true, npc.getInstanceId());
|
_minion1 = (MonsterInstance) addSpawn(PROCELLA_GUARDIAN_1, 212663, 179421, -15486, 31011, true, 0, true, npc.getInstanceId());
|
||||||
_minion2 = (MonsterInstance) addSpawn(PROCELLA_GUARDIAN_2, 213258, 179822, -15486, 12001, true, 0, true, npc.getInstanceId());
|
_minion2 = (MonsterInstance) addSpawn(PROCELLA_GUARDIAN_2, 213258, 179822, -15486, 12001, true, 0, true, npc.getInstanceId());
|
||||||
_minion3 = (MonsterInstance) addSpawn(PROCELLA_GUARDIAN_3, 212558, 179974, -15486, 12311, true, 0, true, npc.getInstanceId());
|
_minion3 = (MonsterInstance) addSpawn(PROCELLA_GUARDIAN_3, 212558, 179974, -15486, 12311, true, 0, true, npc.getInstanceId());
|
||||||
startQuestTimer("HIDE_PROCELLA", 3000, _procella, null);
|
startQuestTimer("HIDE_PROCELLA", 1000, _procella, null);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -91,12 +91,11 @@ public class ResidenceOfKingProcella extends AbstractInstance
|
|||||||
if (_procellaStormCount < STORM_MAX_COUNT)
|
if (_procellaStormCount < STORM_MAX_COUNT)
|
||||||
{
|
{
|
||||||
_procella.useMagic(HURRICANE_SUMMON.getSkill());
|
_procella.useMagic(HURRICANE_SUMMON.getSkill());
|
||||||
|
|
||||||
final Npc procellaStorm = addSpawn(PROCELLA_STORM, _procella.getX() + getRandom(-500, 500), _procella.getY() + getRandom(-500, 500), _procella.getZ(), 31011, true, 0, true, npc.getInstanceId());
|
final Npc procellaStorm = addSpawn(PROCELLA_STORM, _procella.getX() + getRandom(-500, 500), _procella.getY() + getRandom(-500, 500), _procella.getZ(), 31011, true, 0, true, npc.getInstanceId());
|
||||||
procellaStorm.setRandomWalking(true);
|
procellaStorm.setRandomWalking(true);
|
||||||
_procellaStormCount++;
|
_procellaStormCount++;
|
||||||
startQuestTimer("SPAWN_STORM", 300000, _procella, null);
|
startQuestTimer("SPAWN_STORM", 60000, _procella, null);
|
||||||
startQuestTimer("CHECK_CHAR_INSIDE_RADIUS_NPC", 1000, procellaStorm, player);
|
startQuestTimer("CHECK_CHAR_INSIDE_RADIUS_NPC", 100, procellaStorm, player);// All time checking
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -105,32 +104,43 @@ public class ResidenceOfKingProcella extends AbstractInstance
|
|||||||
if (_procella.isInvisible())
|
if (_procella.isInvisible())
|
||||||
{
|
{
|
||||||
_procella.setInvisible(false);
|
_procella.setInvisible(false);
|
||||||
_procella.broadcastSay(ChatType.NPC_SHOUT, "Im invisible");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_procella.setInvisible(true);
|
_procella.setInvisible(true);
|
||||||
_procella.broadcastSay(ChatType.NPC_SHOUT, "Im visible");
|
startQuestTimer("SPAWN_MINION", 300000 + getRandom(-15000, 15000), _procella, player);
|
||||||
startQuestTimer("SPAWN_MINION", 300000, _procella, player);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "CHECK_CHAR_INSIDE_RADIUS_NPC":
|
case "CHECK_CHAR_INSIDE_RADIUS_NPC":
|
||||||
{
|
{
|
||||||
if ((player != null) && (player.isInsideRadius3D(npc, 200)))
|
final Instance world = npc.getInstanceWorld();
|
||||||
|
if (world != null)
|
||||||
{
|
{
|
||||||
npc.abortAttack();
|
final PlayerInstance plr = world.getPlayers().stream().findAny().get();
|
||||||
npc.abortCast();
|
if ((plr != null) && (plr.isInsideRadius3D(npc, 100)))
|
||||||
npc.setTarget(player);
|
|
||||||
if (SkillCaster.checkUseConditions(npc, HURRICANE_BOLT.getSkill()))
|
|
||||||
{
|
{
|
||||||
npc.doCast(HURRICANE_BOLT.getSkill());
|
npc.abortAttack();
|
||||||
|
npc.abortCast();
|
||||||
|
npc.setTarget(plr);
|
||||||
|
if (plr.getAffectedSkillLevel(HURRICANE_BOLT) == 1)
|
||||||
|
{
|
||||||
|
npc.abortCast();
|
||||||
|
startQuestTimer("CHECK_CHAR_INSIDE_RADIUS_NPC", 100, npc, player);// All time checking
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (SkillCaster.checkUseConditions(npc, HURRICANE_BOLT_LV_1.getSkill()))
|
||||||
|
{
|
||||||
|
npc.doCast(HURRICANE_BOLT_LV_1.getSkill());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
startQuestTimer("CHECK_CHAR_INSIDE_RADIUS_NPC", 100, npc, player);// All time checking
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
startQuestTimer("CHECK_CHAR_INSIDE_RADIUS_NPC", 100, npc, player);// All time checking
|
||||||
}
|
}
|
||||||
startQuestTimer("CHECK_CHAR_INSIDE_RADIUS_NPC", 10000, npc, player);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
startQuestTimer("CHECK_CHAR_INSIDE_RADIUS_NPC", 10000, npc, player);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -146,6 +156,9 @@ public class ResidenceOfKingProcella extends AbstractInstance
|
|||||||
final Instance world = npc.getInstanceWorld();
|
final Instance world = npc.getInstanceWorld();
|
||||||
if (world != null)
|
if (world != null)
|
||||||
{
|
{
|
||||||
|
cancelQuestTimer("SPAWN_MINION", npc, player);
|
||||||
|
cancelQuestTimer("SPAWN_STORM", npc, player);
|
||||||
|
cancelQuestTimer("CHECK_CHAR_INSIDE_RADIUS_NPC", npc, player);
|
||||||
world.finishInstance();
|
world.finishInstance();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -16,7 +16,6 @@
|
|||||||
*/
|
*/
|
||||||
package instances.ResidenceOfKingProcella;
|
package instances.ResidenceOfKingProcella;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.enums.ChatType;
|
|
||||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.MonsterInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.MonsterInstance;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
@@ -43,7 +42,8 @@ public class ResidenceOfKingProcella extends AbstractInstance
|
|||||||
private static final int PROCELLA_STORM = 29115;
|
private static final int PROCELLA_STORM = 29115;
|
||||||
// Skills
|
// Skills
|
||||||
private static final SkillHolder HURRICANE_SUMMON = new SkillHolder(50042, 1); // When spawn Minion
|
private static final SkillHolder HURRICANE_SUMMON = new SkillHolder(50042, 1); // When spawn Minion
|
||||||
private static final SkillHolder HURRICANE_BOLT = new SkillHolder(50043, 1); // When player in Radius + para
|
private static final int HURRICANE_BOLT = 50043;
|
||||||
|
private static final SkillHolder HURRICANE_BOLT_LV_1 = new SkillHolder(50043, 1); // When player in Radius + para
|
||||||
// Misc
|
// Misc
|
||||||
private static final int TEMPLATE_ID = 197;
|
private static final int TEMPLATE_ID = 197;
|
||||||
private static int STORM_MAX_COUNT = 16; // TODO: Max is limit ?
|
private static int STORM_MAX_COUNT = 16; // TODO: Max is limit ?
|
||||||
@@ -70,7 +70,7 @@ public class ResidenceOfKingProcella extends AbstractInstance
|
|||||||
{
|
{
|
||||||
enterInstance(player, npc, TEMPLATE_ID);
|
enterInstance(player, npc, TEMPLATE_ID);
|
||||||
_procella = (RaidBossInstance) addSpawn(PROCELLA, 212862, 179828, -15489, 49151, false, 0, true, player.getInstanceId());
|
_procella = (RaidBossInstance) addSpawn(PROCELLA, 212862, 179828, -15489, 49151, false, 0, true, player.getInstanceId());
|
||||||
startQuestTimer("SPAWN_MINION", 20000, _procella, player);
|
startQuestTimer("SPAWN_MINION", 300000 + getRandom(-15000, 15000), _procella, player);
|
||||||
startQuestTimer("SPAWN_STORM", 5000, _procella, player);
|
startQuestTimer("SPAWN_STORM", 5000, _procella, player);
|
||||||
_procellaStormCount = 0;
|
_procellaStormCount = 0;
|
||||||
break;
|
break;
|
||||||
@@ -82,7 +82,7 @@ public class ResidenceOfKingProcella extends AbstractInstance
|
|||||||
_minion1 = (MonsterInstance) addSpawn(PROCELLA_GUARDIAN_1, 212663, 179421, -15486, 31011, true, 0, true, npc.getInstanceId());
|
_minion1 = (MonsterInstance) addSpawn(PROCELLA_GUARDIAN_1, 212663, 179421, -15486, 31011, true, 0, true, npc.getInstanceId());
|
||||||
_minion2 = (MonsterInstance) addSpawn(PROCELLA_GUARDIAN_2, 213258, 179822, -15486, 12001, true, 0, true, npc.getInstanceId());
|
_minion2 = (MonsterInstance) addSpawn(PROCELLA_GUARDIAN_2, 213258, 179822, -15486, 12001, true, 0, true, npc.getInstanceId());
|
||||||
_minion3 = (MonsterInstance) addSpawn(PROCELLA_GUARDIAN_3, 212558, 179974, -15486, 12311, true, 0, true, npc.getInstanceId());
|
_minion3 = (MonsterInstance) addSpawn(PROCELLA_GUARDIAN_3, 212558, 179974, -15486, 12311, true, 0, true, npc.getInstanceId());
|
||||||
startQuestTimer("HIDE_PROCELLA", 3000, _procella, null);
|
startQuestTimer("HIDE_PROCELLA", 1000, _procella, null);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -91,12 +91,11 @@ public class ResidenceOfKingProcella extends AbstractInstance
|
|||||||
if (_procellaStormCount < STORM_MAX_COUNT)
|
if (_procellaStormCount < STORM_MAX_COUNT)
|
||||||
{
|
{
|
||||||
_procella.useMagic(HURRICANE_SUMMON.getSkill());
|
_procella.useMagic(HURRICANE_SUMMON.getSkill());
|
||||||
|
|
||||||
final Npc procellaStorm = addSpawn(PROCELLA_STORM, _procella.getX() + getRandom(-500, 500), _procella.getY() + getRandom(-500, 500), _procella.getZ(), 31011, true, 0, true, npc.getInstanceId());
|
final Npc procellaStorm = addSpawn(PROCELLA_STORM, _procella.getX() + getRandom(-500, 500), _procella.getY() + getRandom(-500, 500), _procella.getZ(), 31011, true, 0, true, npc.getInstanceId());
|
||||||
procellaStorm.setRandomWalking(true);
|
procellaStorm.setRandomWalking(true);
|
||||||
_procellaStormCount++;
|
_procellaStormCount++;
|
||||||
startQuestTimer("SPAWN_STORM", 300000, _procella, null);
|
startQuestTimer("SPAWN_STORM", 60000, _procella, null);
|
||||||
startQuestTimer("CHECK_CHAR_INSIDE_RADIUS_NPC", 1000, procellaStorm, player);
|
startQuestTimer("CHECK_CHAR_INSIDE_RADIUS_NPC", 100, procellaStorm, player);// All time checking
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -105,32 +104,43 @@ public class ResidenceOfKingProcella extends AbstractInstance
|
|||||||
if (_procella.isInvisible())
|
if (_procella.isInvisible())
|
||||||
{
|
{
|
||||||
_procella.setInvisible(false);
|
_procella.setInvisible(false);
|
||||||
_procella.broadcastSay(ChatType.NPC_SHOUT, "Im invisible");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_procella.setInvisible(true);
|
_procella.setInvisible(true);
|
||||||
_procella.broadcastSay(ChatType.NPC_SHOUT, "Im visible");
|
startQuestTimer("SPAWN_MINION", 300000 + getRandom(-15000, 15000), _procella, player);
|
||||||
startQuestTimer("SPAWN_MINION", 300000, _procella, player);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "CHECK_CHAR_INSIDE_RADIUS_NPC":
|
case "CHECK_CHAR_INSIDE_RADIUS_NPC":
|
||||||
{
|
{
|
||||||
if ((player != null) && (player.isInsideRadius3D(npc, 200)))
|
final Instance world = npc.getInstanceWorld();
|
||||||
|
if (world != null)
|
||||||
{
|
{
|
||||||
npc.abortAttack();
|
final PlayerInstance plr = world.getPlayers().stream().findAny().get();
|
||||||
npc.abortCast();
|
if ((plr != null) && (plr.isInsideRadius3D(npc, 100)))
|
||||||
npc.setTarget(player);
|
|
||||||
if (SkillCaster.checkUseConditions(npc, HURRICANE_BOLT.getSkill()))
|
|
||||||
{
|
{
|
||||||
npc.doCast(HURRICANE_BOLT.getSkill());
|
npc.abortAttack();
|
||||||
|
npc.abortCast();
|
||||||
|
npc.setTarget(plr);
|
||||||
|
if (plr.getAffectedSkillLevel(HURRICANE_BOLT) == 1)
|
||||||
|
{
|
||||||
|
npc.abortCast();
|
||||||
|
startQuestTimer("CHECK_CHAR_INSIDE_RADIUS_NPC", 100, npc, player);// All time checking
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (SkillCaster.checkUseConditions(npc, HURRICANE_BOLT_LV_1.getSkill()))
|
||||||
|
{
|
||||||
|
npc.doCast(HURRICANE_BOLT_LV_1.getSkill());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
startQuestTimer("CHECK_CHAR_INSIDE_RADIUS_NPC", 100, npc, player);// All time checking
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
startQuestTimer("CHECK_CHAR_INSIDE_RADIUS_NPC", 100, npc, player);// All time checking
|
||||||
}
|
}
|
||||||
startQuestTimer("CHECK_CHAR_INSIDE_RADIUS_NPC", 10000, npc, player);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
startQuestTimer("CHECK_CHAR_INSIDE_RADIUS_NPC", 10000, npc, player);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -146,6 +156,9 @@ public class ResidenceOfKingProcella extends AbstractInstance
|
|||||||
final Instance world = npc.getInstanceWorld();
|
final Instance world = npc.getInstanceWorld();
|
||||||
if (world != null)
|
if (world != null)
|
||||||
{
|
{
|
||||||
|
cancelQuestTimer("SPAWN_MINION", npc, player);
|
||||||
|
cancelQuestTimer("SPAWN_STORM", npc, player);
|
||||||
|
cancelQuestTimer("CHECK_CHAR_INSIDE_RADIUS_NPC", npc, player);
|
||||||
world.finishInstance();
|
world.finishInstance();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -16,7 +16,6 @@
|
|||||||
*/
|
*/
|
||||||
package instances.ResidenceOfKingProcella;
|
package instances.ResidenceOfKingProcella;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.enums.ChatType;
|
|
||||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.MonsterInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.MonsterInstance;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
@@ -43,7 +42,8 @@ public class ResidenceOfKingProcella extends AbstractInstance
|
|||||||
private static final int PROCELLA_STORM = 29115;
|
private static final int PROCELLA_STORM = 29115;
|
||||||
// Skills
|
// Skills
|
||||||
private static final SkillHolder HURRICANE_SUMMON = new SkillHolder(50042, 1); // When spawn Minion
|
private static final SkillHolder HURRICANE_SUMMON = new SkillHolder(50042, 1); // When spawn Minion
|
||||||
private static final SkillHolder HURRICANE_BOLT = new SkillHolder(50043, 1); // When player in Radius + para
|
private static final int HURRICANE_BOLT = 50043;
|
||||||
|
private static final SkillHolder HURRICANE_BOLT_LV_1 = new SkillHolder(50043, 1); // When player in Radius + para
|
||||||
// Misc
|
// Misc
|
||||||
private static final int TEMPLATE_ID = 197;
|
private static final int TEMPLATE_ID = 197;
|
||||||
private static int STORM_MAX_COUNT = 16; // TODO: Max is limit ?
|
private static int STORM_MAX_COUNT = 16; // TODO: Max is limit ?
|
||||||
@@ -70,7 +70,7 @@ public class ResidenceOfKingProcella extends AbstractInstance
|
|||||||
{
|
{
|
||||||
enterInstance(player, npc, TEMPLATE_ID);
|
enterInstance(player, npc, TEMPLATE_ID);
|
||||||
_procella = (RaidBossInstance) addSpawn(PROCELLA, 212862, 179828, -15489, 49151, false, 0, true, player.getInstanceId());
|
_procella = (RaidBossInstance) addSpawn(PROCELLA, 212862, 179828, -15489, 49151, false, 0, true, player.getInstanceId());
|
||||||
startQuestTimer("SPAWN_MINION", 20000, _procella, player);
|
startQuestTimer("SPAWN_MINION", 300000 + getRandom(-15000, 15000), _procella, player);
|
||||||
startQuestTimer("SPAWN_STORM", 5000, _procella, player);
|
startQuestTimer("SPAWN_STORM", 5000, _procella, player);
|
||||||
_procellaStormCount = 0;
|
_procellaStormCount = 0;
|
||||||
break;
|
break;
|
||||||
@@ -82,7 +82,7 @@ public class ResidenceOfKingProcella extends AbstractInstance
|
|||||||
_minion1 = (MonsterInstance) addSpawn(PROCELLA_GUARDIAN_1, 212663, 179421, -15486, 31011, true, 0, true, npc.getInstanceId());
|
_minion1 = (MonsterInstance) addSpawn(PROCELLA_GUARDIAN_1, 212663, 179421, -15486, 31011, true, 0, true, npc.getInstanceId());
|
||||||
_minion2 = (MonsterInstance) addSpawn(PROCELLA_GUARDIAN_2, 213258, 179822, -15486, 12001, true, 0, true, npc.getInstanceId());
|
_minion2 = (MonsterInstance) addSpawn(PROCELLA_GUARDIAN_2, 213258, 179822, -15486, 12001, true, 0, true, npc.getInstanceId());
|
||||||
_minion3 = (MonsterInstance) addSpawn(PROCELLA_GUARDIAN_3, 212558, 179974, -15486, 12311, true, 0, true, npc.getInstanceId());
|
_minion3 = (MonsterInstance) addSpawn(PROCELLA_GUARDIAN_3, 212558, 179974, -15486, 12311, true, 0, true, npc.getInstanceId());
|
||||||
startQuestTimer("HIDE_PROCELLA", 3000, _procella, null);
|
startQuestTimer("HIDE_PROCELLA", 1000, _procella, null);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -91,12 +91,11 @@ public class ResidenceOfKingProcella extends AbstractInstance
|
|||||||
if (_procellaStormCount < STORM_MAX_COUNT)
|
if (_procellaStormCount < STORM_MAX_COUNT)
|
||||||
{
|
{
|
||||||
_procella.useMagic(HURRICANE_SUMMON.getSkill());
|
_procella.useMagic(HURRICANE_SUMMON.getSkill());
|
||||||
|
|
||||||
final Npc procellaStorm = addSpawn(PROCELLA_STORM, _procella.getX() + getRandom(-500, 500), _procella.getY() + getRandom(-500, 500), _procella.getZ(), 31011, true, 0, true, npc.getInstanceId());
|
final Npc procellaStorm = addSpawn(PROCELLA_STORM, _procella.getX() + getRandom(-500, 500), _procella.getY() + getRandom(-500, 500), _procella.getZ(), 31011, true, 0, true, npc.getInstanceId());
|
||||||
procellaStorm.setRandomWalking(true);
|
procellaStorm.setRandomWalking(true);
|
||||||
_procellaStormCount++;
|
_procellaStormCount++;
|
||||||
startQuestTimer("SPAWN_STORM", 300000, _procella, null);
|
startQuestTimer("SPAWN_STORM", 60000, _procella, null);
|
||||||
startQuestTimer("CHECK_CHAR_INSIDE_RADIUS_NPC", 1000, procellaStorm, player);
|
startQuestTimer("CHECK_CHAR_INSIDE_RADIUS_NPC", 100, procellaStorm, player);// All time checking
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -105,32 +104,43 @@ public class ResidenceOfKingProcella extends AbstractInstance
|
|||||||
if (_procella.isInvisible())
|
if (_procella.isInvisible())
|
||||||
{
|
{
|
||||||
_procella.setInvisible(false);
|
_procella.setInvisible(false);
|
||||||
_procella.broadcastSay(ChatType.NPC_SHOUT, "Im invisible");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_procella.setInvisible(true);
|
_procella.setInvisible(true);
|
||||||
_procella.broadcastSay(ChatType.NPC_SHOUT, "Im visible");
|
startQuestTimer("SPAWN_MINION", 300000 + getRandom(-15000, 15000), _procella, player);
|
||||||
startQuestTimer("SPAWN_MINION", 300000, _procella, player);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "CHECK_CHAR_INSIDE_RADIUS_NPC":
|
case "CHECK_CHAR_INSIDE_RADIUS_NPC":
|
||||||
{
|
{
|
||||||
if ((player != null) && (player.isInsideRadius3D(npc, 200)))
|
final Instance world = npc.getInstanceWorld();
|
||||||
|
if (world != null)
|
||||||
{
|
{
|
||||||
npc.abortAttack();
|
final PlayerInstance plr = world.getPlayers().stream().findAny().get();
|
||||||
npc.abortCast();
|
if ((plr != null) && (plr.isInsideRadius3D(npc, 100)))
|
||||||
npc.setTarget(player);
|
|
||||||
if (SkillCaster.checkUseConditions(npc, HURRICANE_BOLT.getSkill()))
|
|
||||||
{
|
{
|
||||||
npc.doCast(HURRICANE_BOLT.getSkill());
|
npc.abortAttack();
|
||||||
|
npc.abortCast();
|
||||||
|
npc.setTarget(plr);
|
||||||
|
if (plr.getAffectedSkillLevel(HURRICANE_BOLT) == 1)
|
||||||
|
{
|
||||||
|
npc.abortCast();
|
||||||
|
startQuestTimer("CHECK_CHAR_INSIDE_RADIUS_NPC", 100, npc, player);// All time checking
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (SkillCaster.checkUseConditions(npc, HURRICANE_BOLT_LV_1.getSkill()))
|
||||||
|
{
|
||||||
|
npc.doCast(HURRICANE_BOLT_LV_1.getSkill());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
startQuestTimer("CHECK_CHAR_INSIDE_RADIUS_NPC", 100, npc, player);// All time checking
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
startQuestTimer("CHECK_CHAR_INSIDE_RADIUS_NPC", 100, npc, player);// All time checking
|
||||||
}
|
}
|
||||||
startQuestTimer("CHECK_CHAR_INSIDE_RADIUS_NPC", 10000, npc, player);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
startQuestTimer("CHECK_CHAR_INSIDE_RADIUS_NPC", 10000, npc, player);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -146,6 +156,9 @@ public class ResidenceOfKingProcella extends AbstractInstance
|
|||||||
final Instance world = npc.getInstanceWorld();
|
final Instance world = npc.getInstanceWorld();
|
||||||
if (world != null)
|
if (world != null)
|
||||||
{
|
{
|
||||||
|
cancelQuestTimer("SPAWN_MINION", npc, player);
|
||||||
|
cancelQuestTimer("SPAWN_STORM", npc, player);
|
||||||
|
cancelQuestTimer("CHECK_CHAR_INSIDE_RADIUS_NPC", npc, player);
|
||||||
world.finishInstance();
|
world.finishInstance();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user